/*! jQuery UI - v1.12.1 - 2021-03-02
* http://jqueryui.com
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
* Copyright jQuery Foundation and other contributors; Licensed MIT */@import url("https://fonts.googleapis.com/css?family=Lato:400,300,600,300italic,400italic&subset=latin");.ui-draggable-handle{touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after,.ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:alpha(opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;touch-action:none}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-sortable-handle{touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0}.ui-menu .ui-state-active,.ui-menu .ui-state-focus{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:active,.ui-button:hover,.ui-button:link,.ui-button:visited{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}button.ui-button::-moz-focus-inner,input.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup>.ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup>.ui-controlgroup-item.ui-visual-focus,.ui-controlgroup>.ui-controlgroup-item:focus{z-index:9999}.ui-controlgroup-vertical>.ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label+.ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label+.ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:97.6%}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-next,.ui-datepicker .ui-datepicker-prev{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-next-hover,.ui-datepicker .ui-datepicker-prev-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-next span,.ui-datepicker .ui-datepicker-prev span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:700;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td a,.ui-datepicker td span{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw,.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,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");height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:700;line-height:1.5;padding:2px .4em;margin:.5em 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;vertical-align:middle;margin:.2em 2em .2em .4em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif}.ui-widget,.ui-widget .ui-widget{font-size:1em}.ui-widget button,.ui-widget input,.ui-widget select,.ui-widget textarea{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:700}.ui-widget-header a{color:#333}.ui-button,.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,html .ui-button.ui-state-disabled:active,html .ui-button.ui-state-disabled:hover{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:400;color:#454545}.ui-button,.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button{color:#454545;text-decoration:none}.ui-button:focus,.ui-button:hover,.ui-state-focus,.ui-state-hover,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{border:1px solid #ccc;background:#ededed;font-weight:400;color:#2b2b2b}.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,a.ui-button:focus,a.ui-button:hover{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-button.ui-state-active:hover,.ui-button:active,.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active{border:1px solid #003eff;background:#007fff;font-weight:400;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error-text,.ui-state-error a,.ui-widget-content .ui-state-error-text,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error-text,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:700}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:alpha(opacity=70);font-weight:400}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:alpha(opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:alpha(opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(images/ui-icons_444444_256x240.png)}.ui-button:focus .ui-icon,.ui-button:hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-hover .ui-icon{background-image:url(images/ui-icons_555555_256x240.png)}.ui-button:active .ui-icon,.ui-state-active .ui-icon{background-image:url(images/ui-icons_ffffff_256x240.png)}.ui-button .ui-state-highlight.ui-icon,.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_777620_256x240.png)}.ui-state-error-text .ui-icon,.ui-state-error .ui-icon{background-image:url(images/ui-icons_cc0000_256x240.png)}.ui-button .ui-icon{background-image:url(images/ui-icons_777777_256x240.png)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-first,.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-left,.ui-corner-tl,.ui-corner-top{border-top-left-radius:3px}.ui-corner-all,.ui-corner-right,.ui-corner-top,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bl,.ui-corner-bottom,.ui-corner-left{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-br,.ui-corner-right{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:alpha(opacity=30)}.ui-widget-shadow{box-shadow:0 0 5px #666}
/*!
 * # Semantic UI - Reset
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */*,:after,:before{box-sizing:inherit}html{box-sizing:border-box}input[type=email],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;-moz-appearance:none}
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}
/*!
 * # Semantic UI - Site
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */body,html{height:100%}html{font-size:14px}body{margin:0;overflow-x:hidden;min-width:320px;background:#e9eaed;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87);font-smoothing:antialiased}body,h1,h2,h3,h4,h5{padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif}h1,h2,h3,h4,h5{line-height:1.28571429em;margin:calc(2rem - .14286em) 0 1rem;font-weight:400}h1{min-height:14px;min-height:1rem;font-size:28px;font-size:2rem}h2{font-size:23.999px;font-size:1.71428571rem}h3{font-size:18px;font-size:1.28571429rem}h4{font-size:14.999px;font-size:1.07142857rem}h5{font-size:14px;font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.7285em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#2c6a9e}a,a:hover{text-decoration:none}a:hover{color:#3277b2}::-webkit-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:hsla(0,0%,39.2%,.4);color:rgba(0,0,0,.87)}body ::-webkit-scrollbar{-webkit-appearance:none;width:10px;height:10px}body ::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:0}body ::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:rgba(0,0,0,.25);-webkit-transition:color .2s ease;transition:color .2s ease}body ::-webkit-scrollbar-thumb:window-inactive{background:rgba(0,0,0,.15)}body ::-webkit-scrollbar-thumb:hover{background:rgba(128,135,139,.8)}body .ui.inverted::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}body .ui.inverted::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}body .ui.inverted::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}body .ui.inverted::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}
/*!
 * # Semantic UI - Button
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.button{cursor:pointer;display:inline-block;min-height:1em;outline:none;border:none;vertical-align:baseline;background:#e0e1e2 none;color:rgba(0,0,0,.6);font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0 .25em 0 0;padding:.78571429em 1.5em;text-transform:none;text-shadow:none;font-weight:700;line-height:1em;font-style:normal;text-align:center;text-decoration:none;border-radius:.21428571rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;will-change:"";-webkit-tap-highlight-color:transparent}.ui.button,.ui.button:hover{box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.button:hover{background-color:#cacbcd;background-image:none;color:rgba(0,0,0,.8)}.ui.button:hover .icon{opacity:.85}.ui.button:focus{background-color:#cacbcd;color:rgba(0,0,0,.8);background-image:""!important;box-shadow:""!important}.ui.button:focus .icon{opacity:.85}.ui.active.button:active,.ui.button:active{background-color:#babbbc;background-image:"";color:rgba(0,0,0,.9);box-shadow:inset 0 0 0 1px transparent,none}.ui.active.button{box-shadow:inset 0 0 0 1px transparent}.ui.active.button,.ui.active.button:hover{color:rgba(0,0,0,.95)}.ui.active.button,.ui.active.button:active,.ui.active.button:hover{background-color:#c0c1c2;background-image:none}.ui.loading.loading.loading.loading.loading.loading.button{position:relative;cursor:default;text-shadow:none!important;color:transparent!important;opacity:1;pointer-events:auto;transition:all 0s linear,opacity .1s ease}.ui.loading.button:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.15)}.ui.loading.button:after,.ui.loading.button:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.button:after{-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#fff;box-shadow:0 0 0 1px transparent}.ui.labeled.icon.loading.button .icon{background-color:transparent;box-shadow:none}@-webkit-keyframes button-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes button-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.basic.loading.button:not(.inverted):before{border-color:rgba(0,0,0,.1)}.ui.basic.loading.button:not(.inverted):after{border-top-color:#767676}.ui.button:disabled,.ui.buttons .disabled.button,.ui.disabled.active.button,.ui.disabled.button,.ui.disabled.button:hover{cursor:default;opacity:.45!important;background-image:none!important;box-shadow:none!important;pointer-events:none!important}.ui.basic.buttons .ui.disabled.button{border-color:rgba(34,36,38,.5)}.ui.animated.button{position:relative;overflow:hidden;padding-right:0!important;vertical-align:middle;z-index:1}.ui.animated.button .content{will-change:transform,opacity}.ui.animated.button .visible.content{position:relative;margin-right:1.5em}.ui.animated.button .hidden.content{position:absolute;width:100%}.ui.animated.button .hidden.content,.ui.animated.button .visible.content{transition:right .3s ease 0s}.ui.animated.button .visible.content{left:auto;right:0}.ui.animated.button .hidden.content{top:50%;left:auto;right:-100%;margin-top:-.5em}.ui.animated.button:focus .visible.content,.ui.animated.button:hover .visible.content{left:auto;right:200%}.ui.animated.button:focus .hidden.content,.ui.animated.button:hover .hidden.content{left:auto;right:0}.ui.vertical.animated.button .hidden.content,.ui.vertical.animated.button .visible.content{transition:top .3s ease,transform .3s ease}.ui.vertical.animated.button .visible.content{transform:translateY(0);right:auto}.ui.vertical.animated.button .hidden.content{top:-50%;left:0;right:auto}.ui.vertical.animated.button:focus .visible.content,.ui.vertical.animated.button:hover .visible.content{transform:translateY(200%);right:auto}.ui.vertical.animated.button:focus .hidden.content,.ui.vertical.animated.button:hover .hidden.content{top:50%;right:auto}.ui.fade.animated.button .hidden.content,.ui.fade.animated.button .visible.content{transition:opacity .3s ease,transform .3s ease}.ui.fade.animated.button .visible.content{left:auto;right:auto;opacity:1;transform:scale(1)}.ui.fade.animated.button .hidden.content{opacity:0;left:0;right:auto;transform:scale(1.5)}.ui.fade.animated.button:focus .visible.content,.ui.fade.animated.button:hover .visible.content{left:auto;right:auto;opacity:0;transform:scale(.75)}.ui.fade.animated.button:focus .hidden.content,.ui.fade.animated.button:hover .hidden.content{left:0;right:auto;opacity:1;transform:scale(1)}.ui.inverted.button{box-shadow:inset 0 0 0 2px #fff!important;background:transparent none;color:#fff;text-shadow:none!important}.ui.inverted.buttons .button{margin:0 0 0 -2px}.ui.inverted.buttons .button:first-child{margin-left:0}.ui.inverted.vertical.buttons .button{margin:0 0 -2px}.ui.inverted.vertical.buttons .button:first-child{margin-top:0}.ui.inverted.button.active,.ui.inverted.button:focus,.ui.inverted.button:hover{background:#fff;box-shadow:inset 0 0 0 2px #fff!important;color:rgba(0,0,0,.8)}.ui.inverted.button.active:focus{background:#dcddde;box-shadow:inset 0 0 0 2px #dcddde!important;color:rgba(0,0,0,.8)}.ui.labeled.button:not(.icon){display:inline-flex;flex-direction:row;background:none!important;padding:0!important;border:none!important;box-shadow:none!important}.ui.labeled.button>.button{margin:0}.ui.labeled.button>.label{display:flex;align-items:center;margin:0 0 0 -1px!important;padding:"";font-size:1em;border-color:rgba(34,36,38,.15)}.ui.labeled.button>.tag.label:before{width:1.85em;height:1.85em}.ui.labeled.button:not([class*="left labeled"])>.button{border-top-right-radius:0;border-bottom-right-radius:0}.ui.labeled.button:not([class*="left labeled"])>.label,.ui[class*="left labeled"].button>.button{border-top-left-radius:0;border-bottom-left-radius:0}.ui[class*="left labeled"].button>.label{border-top-right-radius:0;border-bottom-right-radius:0}.ui.facebook.button{background-color:#3b5998;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.facebook.button:hover{background-color:#304d8a;color:#fff;text-shadow:none}.ui.facebook.button:active{background-color:#2d4373;color:#fff;text-shadow:none}.ui.twitter.button{background-color:#55acee;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.twitter.button:hover{background-color:#35a2f4;color:#fff;text-shadow:none}.ui.twitter.button:active{background-color:#2795e9;color:#fff;text-shadow:none}.ui.google.plus.button{background-color:#dd4b39;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.google.plus.button:hover{background-color:#e0321c;color:#fff;text-shadow:none}.ui.google.plus.button:active{background-color:#c23321;color:#fff;text-shadow:none}.ui.linkedin.button{background-color:#1f88be;color:#fff;text-shadow:none}.ui.linkedin.button:hover{background-color:#147baf;color:#fff;text-shadow:none}.ui.linkedin.button:active{background-color:#186992;color:#fff;text-shadow:none}.ui.youtube.button{background-color:red;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.youtube.button:hover{background-color:#e60000;color:#fff;text-shadow:none}.ui.youtube.button:active{background-color:#c00;color:#fff;text-shadow:none}.ui.instagram.button{background-color:#49769c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.instagram.button:hover{background-color:#3d698e;color:#fff;text-shadow:none}.ui.instagram.button:active{background-color:#395c79;color:#fff;text-shadow:none}.ui.pinterest.button{background-color:#bd081c;color:#fff;text-shadow:none;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pinterest.button:hover{background-color:#ac0013;color:#fff;text-shadow:none}.ui.pinterest.button:active{background-color:#8c0615;color:#fff;text-shadow:none}.ui.vk.button{background-color:#4d7198;color:#fff;background-image:none;box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.vk.button:hover{background-color:#41648a;color:#fff}.ui.vk.button:active{background-color:#3c5876;color:#fff}.ui.button>.icon:not(.button){height:.85714286em;opacity:.8;transition:opacity .1s ease;vertical-align:"";color:""}.ui.button:not(.icon)>.icon:not(.button):not(.dropdown),.ui.button>.icon:not(.button){margin:0 .42857143em 0 -.21428571em}.ui.button:not(.icon)>.right.icon:not(.button):not(.dropdown){margin:0 -.21428571em 0 .42857143em}.ui[class*="left floated"].button,.ui[class*="left floated"].buttons{float:left;margin-left:0;margin-right:.25em}.ui[class*="right floated"].button,.ui[class*="right floated"].buttons{float:right;margin-right:0;margin-left:.25em}.ui.compact.button,.ui.compact.buttons .button{padding:.58928571em 1.125em}.ui.compact.icon.button,.ui.compact.icon.buttons .button{padding:.58928571em}.ui.compact.labeled.icon.button,.ui.compact.labeled.icon.buttons .button{padding:.58928571em 3.69642857em}.ui.mini.button,.ui.mini.buttons .button,.ui.mini.buttons .or{font-size:11px;font-size:.78571429rem}.ui.tiny.button,.ui.tiny.buttons .button,.ui.tiny.buttons .or{font-size:12px;font-size:.85714286rem}.ui.small.button,.ui.small.buttons .button,.ui.small.buttons .or{font-size:13px;font-size:.92857143rem}.ui.button,.ui.buttons .button,.ui.buttons .or{font-size:14px;font-size:1rem}.ui.large.button,.ui.large.buttons .button,.ui.large.buttons .or{font-size:15.999px;font-size:1.14285714rem}.ui.big.button,.ui.big.buttons .button,.ui.big.buttons .or{font-size:18px;font-size:1.28571429rem}.ui.huge.button,.ui.huge.buttons .button,.ui.huge.buttons .or{font-size:20px;font-size:1.42857143rem}.ui.massive.button,.ui.massive.buttons .button,.ui.massive.buttons .or{font-size:23.999px;font-size:1.71428571rem}.ui.icon.button,.ui.icon.buttons .button{padding:.78571429em}.ui.icon.button>.icon,.ui.icon.buttons .button>.icon{opacity:.9;margin:0!important;vertical-align:top}.ui.basic.button,.ui.basic.buttons .button{background:transparent none!important;color:rgba(0,0,0,.6)!important;font-weight:400;border-radius:.21428571rem;text-transform:none;text-shadow:none!important;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.basic.buttons{box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem}.ui.basic.buttons .button{border-radius:0}.ui.basic.button:focus,.ui.basic.button:hover,.ui.basic.buttons .button:focus,.ui.basic.buttons .button:hover{background:#fff!important;color:rgba(0,0,0,.8)!important;box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.button:active,.ui.basic.buttons .button:active{background:#f8f8f8!important;color:rgba(0,0,0,.9)!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.active.button,.ui.basic.buttons .active.button{background:rgba(0,0,0,.05)!important;box-shadow:""!important;color:rgba(0,0,0,.95)!important}.ui.basic.active.button:hover,.ui.basic.buttons .active.button:hover{background-color:rgba(0,0,0,.05)}.ui.basic.buttons .button:hover{box-shadow:inset 0 0 0 1px rgba(34,36,38,.35),inset inset 0 0 0 0 rgba(34,36,38,.15)}.ui.basic.buttons .button:active{box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset inset 0 1px 4px 0 rgba(34,36,38,.15)}.ui.basic.buttons .active.button{box-shadow:""!important}.ui.basic.inverted.button,.ui.basic.inverted.buttons .button{background-color:transparent!important;color:#f9fafb!important;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important}.ui.basic.inverted.button:focus,.ui.basic.inverted.button:hover,.ui.basic.inverted.buttons .button:focus,.ui.basic.inverted.buttons .button:hover{color:#fff!important;box-shadow:inset 0 0 0 2px #fff!important}.ui.basic.inverted.button:active,.ui.basic.inverted.buttons .button:active{background-color:hsla(0,0%,100%,.08)!important;color:#fff!important;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.9)!important}.ui.basic.inverted.active.button,.ui.basic.inverted.buttons .active.button{background-color:hsla(0,0%,100%,.08);color:#fff;text-shadow:none;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.7)}.ui.basic.inverted.active.button:hover,.ui.basic.inverted.buttons .active.button:hover{background-color:hsla(0,0%,100%,.15);box-shadow:inset 0 0 0 2px #fff!important}.ui.basic.buttons .button{border-left:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.vertical.buttons .button{border-left:none;border-left-width:0;border-top:1px solid rgba(34,36,38,.15)}.ui.basic.vertical.buttons .button:first-child{border-top-width:0}.ui.labeled.icon.button,.ui.labeled.icon.buttons .button{position:relative;padding-left:4.07142857em!important;padding-right:1.5em!important}.ui.labeled.icon.button>.icon,.ui.labeled.icon.buttons>.button>.icon{position:absolute;height:100%;line-height:1;border-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit;text-align:center;margin:0;width:2.57142857em;background-color:rgba(0,0,0,.05);color:"";box-shadow:inset -1px 0 0 0 transparent;top:0;left:0}.ui[class*="right labeled"].icon.button{padding-right:4.07142857em!important;padding-left:1.5em!important}.ui[class*="right labeled"].icon.button>.icon{left:auto;right:0;border-radius:0;border-top-right-radius:inherit;border-bottom-right-radius:inherit;box-shadow:inset 1px 0 0 0 transparent}.ui.labeled.icon.button>.icon:after,.ui.labeled.icon.button>.icon:before,.ui.labeled.icon.buttons>.button>.icon:after,.ui.labeled.icon.buttons>.button>.icon:before{display:block;position:absolute;width:100%;top:50%;text-align:center;transform:translateY(-50%)}.ui.labeled.icon.buttons .button>.icon{border-radius:0}.ui.labeled.icon.buttons .button:first-child>.icon{border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem}.ui.labeled.icon.buttons .button:last-child>.icon{border-top-right-radius:2.999px;border-top-right-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.vertical.labeled.icon.buttons .button:first-child>.icon{border-radius:0;border-top-left-radius:2.999px;border-top-left-radius:.21428571rem}.ui.vertical.labeled.icon.buttons .button:last-child>.icon{border-radius:0;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem}.ui.fluid[class*="left labeled"].icon.button,.ui.fluid[class*="right labeled"].icon.button{padding-left:1.5em!important;padding-right:1.5em!important}.ui.button.toggle.active,.ui.buttons .button.toggle.active,.ui.toggle.buttons .active.button{background-color:#21ba45!important;box-shadow:none!important;text-shadow:none;color:#fff!important}.ui.button.toggle.active:hover{background-color:#16ab39!important;text-shadow:none;color:#fff!important}.ui.circular.button{border-radius:10em}.ui.circular.button>.icon{width:1em;vertical-align:baseline}.ui.buttons .or{position:relative;width:.3em;height:2.57142857em;z-index:3}.ui.buttons .or:before{position:absolute;text-align:center;border-radius:500rem;content:"or";top:50%;left:50%;background-color:#fff;text-shadow:none;margin-top:-.89285714em;margin-left:-.89285714em;width:1.78571429em;height:1.78571429em;line-height:1.78571429em;color:rgba(0,0,0,.4);font-style:normal;font-weight:700;box-shadow:inset 0 0 0 1px transparent}.ui.buttons .or[data-text]:before{content:attr(data-text)}.ui.fluid.buttons .or{width:0!important}.ui.fluid.buttons .or:after{display:none}.ui.attached.button{position:relative;display:block;margin:0;border-radius:0;box-shadow:0 0 0 1px rgba(34,36,38,.15)!important}.ui.attached.top.button{border-radius:.21428571rem .21428571rem 0 0}.ui.attached.bottom.button{border-radius:0 0 .21428571rem .21428571rem}.ui.left.attached.button{display:inline-block;border-left:none;text-align:right;padding-right:.75em;border-radius:.21428571rem 0 0 .21428571rem}.ui.right.attached.button{display:inline-block;text-align:left;padding-left:.75em;border-radius:0 .21428571rem .21428571rem 0}.ui.attached.buttons{position:relative;display:flex;border-radius:0;width:auto!important;z-index:2;margin-left:-1px;margin-right:-1px}.ui.attached.buttons .button{margin:0}.ui.attached.buttons .button:first-child,.ui.attached.buttons .button:last-child{border-radius:0}.ui[class*="top attached"].buttons{margin-bottom:-1px;border-radius:.21428571rem .21428571rem 0 0}.ui[class*="top attached"].buttons .button:first-child{border-radius:.21428571rem 0 0 0}.ui[class*="top attached"].buttons .button:last-child{border-radius:0 .21428571rem 0 0}.ui[class*="bottom attached"].buttons{margin-top:-1px;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="bottom attached"].buttons .button:first-child{border-radius:0 0 0 .21428571rem}.ui[class*="bottom attached"].buttons .button:last-child{border-radius:0 0 .21428571rem 0}.ui[class*="left attached"].buttons{display:inline-flex;margin-right:0;margin-left:-1px;border-radius:0 .21428571rem .21428571rem 0}.ui[class*="left attached"].buttons .button:first-child{margin-left:-1px;border-radius:0 .21428571rem 0 0}.ui[class*="left attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 .21428571rem 0}.ui[class*="right attached"].buttons{display:inline-flex;margin-left:0;margin-right:-1px;border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="right attached"].buttons .button:first-child{margin-left:-1px;border-radius:.21428571rem 0 0 0}.ui[class*="right attached"].buttons .button:last-child{margin-left:-1px;border-radius:0 0 0 .21428571rem}.ui.fluid.button,.ui.fluid.buttons{width:100%}.ui.fluid.button{display:block}.ui.two.buttons{width:100%}.ui.two.buttons>.button{width:50%}.ui.three.buttons{width:100%}.ui.three.buttons>.button{width:33.333%}.ui.four.buttons{width:100%}.ui.four.buttons>.button{width:25%}.ui.five.buttons{width:100%}.ui.five.buttons>.button{width:20%}.ui.six.buttons{width:100%}.ui.six.buttons>.button{width:16.666%}.ui.seven.buttons{width:100%}.ui.seven.buttons>.button{width:14.285%}.ui.eight.buttons{width:100%}.ui.eight.buttons>.button{width:12.5%}.ui.nine.buttons{width:100%}.ui.nine.buttons>.button{width:11.11%}.ui.ten.buttons{width:100%}.ui.ten.buttons>.button{width:10%}.ui.eleven.buttons{width:100%}.ui.eleven.buttons>.button{width:9.09%}.ui.twelve.buttons{width:100%}.ui.twelve.buttons>.button{width:8.3333%}.ui.fluid.vertical.buttons,.ui.fluid.vertical.buttons>.button{display:flex;width:auto}.ui.two.vertical.buttons>.button{height:50%}.ui.three.vertical.buttons>.button{height:33.333%}.ui.four.vertical.buttons>.button{height:25%}.ui.five.vertical.buttons>.button{height:20%}.ui.six.vertical.buttons>.button{height:16.666%}.ui.seven.vertical.buttons>.button{height:14.285%}.ui.eight.vertical.buttons>.button{height:12.5%}.ui.nine.vertical.buttons>.button{height:11.11%}.ui.ten.vertical.buttons>.button{height:10%}.ui.eleven.vertical.buttons>.button{height:9.09%}.ui.twelve.vertical.buttons>.button{height:8.3333%}.ui.black.button,.ui.black.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.black.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.black.button:hover,.ui.black.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.black.button:focus,.ui.black.buttons .button:focus{background-color:#2f3032;color:#fff;text-shadow:none}.ui.black.button:active,.ui.black.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.black.active.button,.ui.black.button .active.button:active,.ui.black.buttons .active.button,.ui.black.buttons .active.button:active{background-color:#0f0f10;color:#fff;text-shadow:none}.ui.basic.black.button,.ui.basic.black.buttons .button{box-shadow:inset 0 0 0 1px #1b1c1d!important;color:#1b1c1d!important}.ui.basic.black.button:hover,.ui.basic.black.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #27292a!important;color:#27292a!important}.ui.basic.black.button:focus,.ui.basic.black.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #2f3032!important;color:#27292a!important}.ui.basic.black.active.button,.ui.basic.black.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #0f0f10!important;color:#343637!important}.ui.basic.black.button:active,.ui.basic.black.buttons .button:active{box-shadow:inset 0 0 0 1px #343637!important;color:#343637!important}.ui.buttons:not(.vertical)>.basic.black.button:not(:first-child){margin-left:-1px}.ui.inverted.black.button,.ui.inverted.black.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5!important;color:#fff}.ui.inverted.black.button.active,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .button.active,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.black.active.button,.ui.inverted.black.button:active,.ui.inverted.black.button:focus,.ui.inverted.black.button:hover,.ui.inverted.black.buttons .active.button,.ui.inverted.black.buttons .button:active,.ui.inverted.black.buttons .button:focus,.ui.inverted.black.buttons .button:hover{background-color:#000}.ui.inverted.black.basic.button,.ui.inverted.black.basic.buttons .button,.ui.inverted.black.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.black.basic.button:hover,.ui.inverted.black.basic.buttons .button:hover,.ui.inverted.black.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #000!important;color:#fff!important}.ui.inverted.black.basic.button:focus,.ui.inverted.black.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #000!important;color:#545454!important}.ui.inverted.black.basic.active.button,.ui.inverted.black.basic.button:active,.ui.inverted.black.basic.buttons .active.button,.ui.inverted.black.basic.buttons .button:active,.ui.inverted.black.buttons .basic.active.button,.ui.inverted.black.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #000!important;color:#fff!important}.ui.grey.button,.ui.grey.buttons .button{background-color:#767676;color:#fff;text-shadow:none;background-image:none}.ui.grey.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.grey.button:hover,.ui.grey.buttons .button:hover{background-color:#838383;color:#fff;text-shadow:none}.ui.grey.button:focus,.ui.grey.buttons .button:focus{background-color:#8a8a8a;color:#fff;text-shadow:none}.ui.grey.button:active,.ui.grey.buttons .button:active{background-color:#909090;color:#fff;text-shadow:none}.ui.grey.active.button,.ui.grey.button .active.button:active,.ui.grey.buttons .active.button,.ui.grey.buttons .active.button:active{background-color:#696969;color:#fff;text-shadow:none}.ui.basic.grey.button,.ui.basic.grey.buttons .button{box-shadow:inset 0 0 0 1px #767676!important;color:#767676!important}.ui.basic.grey.button:hover,.ui.basic.grey.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #838383!important;color:#838383!important}.ui.basic.grey.button:focus,.ui.basic.grey.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #8a8a8a!important;color:#838383!important}.ui.basic.grey.active.button,.ui.basic.grey.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #696969!important;color:#909090!important}.ui.basic.grey.button:active,.ui.basic.grey.buttons .button:active{box-shadow:inset 0 0 0 1px #909090!important;color:#909090!important}.ui.buttons:not(.vertical)>.basic.grey.button:not(:first-child){margin-left:-1px}.ui.inverted.grey.button,.ui.inverted.grey.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d4d4d5!important;color:#fff}.ui.inverted.grey.button.active,.ui.inverted.grey.button:active,.ui.inverted.grey.button:focus,.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button.active,.ui.inverted.grey.buttons .button:active,.ui.inverted.grey.buttons .button:focus,.ui.inverted.grey.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.grey.button:hover,.ui.inverted.grey.buttons .button:hover{background-color:#cfd0d2}.ui.inverted.grey.button:focus,.ui.inverted.grey.buttons .button:focus{background-color:#c7c9cb}.ui.inverted.grey.active.button,.ui.inverted.grey.buttons .active.button{background-color:#cfd0d2}.ui.inverted.grey.button:active,.ui.inverted.grey.buttons .button:active{background-color:#c2c4c5}.ui.inverted.grey.basic.button,.ui.inverted.grey.basic.buttons .button,.ui.inverted.grey.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.grey.basic.button:hover,.ui.inverted.grey.basic.buttons .button:hover,.ui.inverted.grey.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #cfd0d2!important;color:#fff!important}.ui.inverted.grey.basic.button:focus,.ui.inverted.grey.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c7c9cb!important;color:#dcddde!important}.ui.inverted.grey.basic.active.button,.ui.inverted.grey.basic.buttons .active.button,.ui.inverted.grey.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cfd0d2!important;color:#fff!important}.ui.inverted.grey.basic.button:active,.ui.inverted.grey.basic.buttons .button:active,.ui.inverted.grey.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #c2c4c5!important;color:#fff!important}.ui.brown.button,.ui.brown.buttons .button{background-color:#a5673f;color:#fff;text-shadow:none;background-image:none}.ui.brown.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.brown.button:hover,.ui.brown.buttons .button:hover{background-color:#975b33;color:#fff;text-shadow:none}.ui.brown.button:focus,.ui.brown.buttons .button:focus{background-color:#90532b;color:#fff;text-shadow:none}.ui.brown.button:active,.ui.brown.buttons .button:active{background-color:#805031;color:#fff;text-shadow:none}.ui.brown.active.button,.ui.brown.button .active.button:active,.ui.brown.buttons .active.button,.ui.brown.buttons .active.button:active{background-color:#995a31;color:#fff;text-shadow:none}.ui.basic.brown.button,.ui.basic.brown.buttons .button{box-shadow:inset 0 0 0 1px #a5673f!important;color:#a5673f!important}.ui.basic.brown.button:hover,.ui.basic.brown.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #975b33!important;color:#975b33!important}.ui.basic.brown.button:focus,.ui.basic.brown.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #90532b!important;color:#975b33!important}.ui.basic.brown.active.button,.ui.basic.brown.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #995a31!important;color:#805031!important}.ui.basic.brown.button:active,.ui.basic.brown.buttons .button:active{box-shadow:inset 0 0 0 1px #805031!important;color:#805031!important}.ui.buttons:not(.vertical)>.basic.brown.button:not(:first-child){margin-left:-1px}.ui.inverted.brown.button,.ui.inverted.brown.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d67c1c!important;color:#d67c1c}.ui.inverted.brown.button.active,.ui.inverted.brown.button:active,.ui.inverted.brown.button:focus,.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button.active,.ui.inverted.brown.buttons .button:active,.ui.inverted.brown.buttons .button:focus,.ui.inverted.brown.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.brown.button:hover,.ui.inverted.brown.buttons .button:hover{background-color:#c86f11}.ui.inverted.brown.button:focus,.ui.inverted.brown.buttons .button:focus{background-color:#c16808}.ui.inverted.brown.active.button,.ui.inverted.brown.buttons .active.button{background-color:#cc6f0d}.ui.inverted.brown.button:active,.ui.inverted.brown.buttons .button:active{background-color:#a96216}.ui.inverted.brown.basic.button,.ui.inverted.brown.basic.buttons .button,.ui.inverted.brown.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.brown.basic.button:hover,.ui.inverted.brown.basic.buttons .button:hover,.ui.inverted.brown.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #c86f11!important;color:#d67c1c!important}.ui.inverted.brown.basic.button:focus,.ui.inverted.brown.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #c16808!important;color:#d67c1c!important}.ui.inverted.brown.basic.active.button,.ui.inverted.brown.basic.buttons .active.button,.ui.inverted.brown.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #cc6f0d!important;color:#d67c1c!important}.ui.inverted.brown.basic.button:active,.ui.inverted.brown.basic.buttons .button:active,.ui.inverted.brown.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #a96216!important;color:#d67c1c!important}.ui.blue.button,.ui.blue.buttons .button{background-color:#2c6a9e;color:#fff;text-shadow:none;background-image:none}.ui.blue.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.blue.button:hover,.ui.blue.buttons .button:hover{background-color:#215d8f;color:#fff;text-shadow:none}.ui.blue.button:focus,.ui.blue.buttons .button:focus{background-color:#1a5587;color:#fff;text-shadow:none}.ui.blue.button:active,.ui.blue.buttons .button:active{background-color:#214f76;color:#fff;text-shadow:none}.ui.blue.active.button,.ui.blue.button .active.button:active,.ui.blue.buttons .active.button,.ui.blue.buttons .active.button:active{background-color:#1f5d92;color:#fff;text-shadow:none}.ui.basic.blue.button,.ui.basic.blue.buttons .button{box-shadow:inset 0 0 0 1px #2c6a9e!important;color:#2c6a9e!important}.ui.basic.blue.button:hover,.ui.basic.blue.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #215d8f!important;color:#215d8f!important}.ui.basic.blue.button:focus,.ui.basic.blue.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #1a5587!important;color:#215d8f!important}.ui.basic.blue.active.button,.ui.basic.blue.buttons .active.button{background:transparent!important}.ui.basic.blue.button:active,.ui.basic.blue.buttons .button:active{box-shadow:inset 0 0 0 1px #214f76!important;color:#214f76!important}.ui.buttons:not(.vertical)>.basic.blue.button:not(:first-child){margin-left:-1px}.ui.inverted.blue.button,.ui.inverted.blue.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #5391c5!important;color:#5391c5}.ui.inverted.blue.button.active,.ui.inverted.blue.button:active,.ui.inverted.blue.button:focus,.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button.active,.ui.inverted.blue.buttons .button:active,.ui.inverted.blue.buttons .button:focus,.ui.inverted.blue.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.blue.button:hover,.ui.inverted.blue.buttons .button:hover{background-color:#3a85c5}.ui.inverted.blue.button:focus,.ui.inverted.blue.buttons .button:focus{background-color:#307ebf}.ui.inverted.blue.active.button,.ui.inverted.blue.buttons .active.button{background-color:#3786c8}.ui.inverted.blue.button:active,.ui.inverted.blue.buttons .button:active{background-color:#3a77ab}.ui.inverted.blue.basic.button,.ui.inverted.blue.basic.buttons .button,.ui.inverted.blue.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.blue.basic.button:hover,.ui.inverted.blue.basic.buttons .button:hover,.ui.inverted.blue.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #3a85c5!important;color:#5391c5!important}.ui.inverted.blue.basic.button:focus,.ui.inverted.blue.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #307ebf!important;color:#5391c5!important}.ui.inverted.blue.basic.active.button,.ui.inverted.blue.basic.buttons .active.button,.ui.inverted.blue.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3786c8!important;color:#5391c5!important}.ui.inverted.blue.basic.button:active,.ui.inverted.blue.basic.buttons .button:active,.ui.inverted.blue.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3a77ab!important;color:#5391c5!important}.ui.green.button,.ui.green.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.green.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.green.button:hover,.ui.green.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.green.button:focus,.ui.green.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.green.button:active,.ui.green.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.green.active.button,.ui.green.button .active.button:active,.ui.green.buttons .active.button,.ui.green.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.green.button,.ui.basic.green.buttons .button{box-shadow:inset 0 0 0 1px #21ba45!important;color:#21ba45!important}.ui.basic.green.button:hover,.ui.basic.green.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #16ab39!important;color:#16ab39!important}.ui.basic.green.button:focus,.ui.basic.green.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #0ea432!important;color:#16ab39!important}.ui.basic.green.active.button,.ui.basic.green.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #13ae38!important;color:#198f35!important}.ui.basic.green.button:active,.ui.basic.green.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35!important;color:#198f35!important}.ui.buttons:not(.vertical)>.basic.green.button:not(:first-child){margin-left:-1px}.ui.inverted.green.button,.ui.inverted.green.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #2ecc40!important;color:#2ecc40}.ui.inverted.green.button.active,.ui.inverted.green.button:active,.ui.inverted.green.button:focus,.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button.active,.ui.inverted.green.buttons .button:active,.ui.inverted.green.buttons .button:focus,.ui.inverted.green.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.green.button:hover,.ui.inverted.green.buttons .button:hover{background-color:#22be34}.ui.inverted.green.button:focus,.ui.inverted.green.buttons .button:focus{background-color:#19b82b}.ui.inverted.green.active.button,.ui.inverted.green.buttons .active.button{background-color:#1fc231}.ui.inverted.green.button:active,.ui.inverted.green.buttons .button:active{background-color:#25a233}.ui.inverted.green.basic.button,.ui.inverted.green.basic.buttons .button,.ui.inverted.green.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.green.basic.button:hover,.ui.inverted.green.basic.buttons .button:hover,.ui.inverted.green.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #22be34!important;color:#2ecc40!important}.ui.inverted.green.basic.button:focus,.ui.inverted.green.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #19b82b!important;color:#2ecc40!important}.ui.inverted.green.basic.active.button,.ui.inverted.green.basic.buttons .active.button,.ui.inverted.green.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #1fc231!important;color:#2ecc40!important}.ui.inverted.green.basic.button:active,.ui.inverted.green.basic.buttons .button:active,.ui.inverted.green.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #25a233!important;color:#2ecc40!important}.ui.orange.button,.ui.orange.buttons .button{background-color:#f2711c;color:#fff;text-shadow:none;background-image:none}.ui.orange.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.orange.button:hover,.ui.orange.buttons .button:hover{background-color:#f26202;color:#fff;text-shadow:none}.ui.orange.button:focus,.ui.orange.buttons .button:focus{background-color:#e55b00;color:#fff;text-shadow:none}.ui.orange.button:active,.ui.orange.buttons .button:active{background-color:#cf590c;color:#fff;text-shadow:none}.ui.orange.active.button,.ui.orange.button .active.button:active,.ui.orange.buttons .active.button,.ui.orange.buttons .active.button:active{background-color:#f56100;color:#fff;text-shadow:none}.ui.basic.orange.button,.ui.basic.orange.buttons .button{box-shadow:inset 0 0 0 1px #f2711c!important;color:#f2711c!important}.ui.basic.orange.button:hover,.ui.basic.orange.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #f26202!important;color:#f26202!important}.ui.basic.orange.button:focus,.ui.basic.orange.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #e55b00!important;color:#f26202!important}.ui.basic.orange.active.button,.ui.basic.orange.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #f56100!important;color:#cf590c!important}.ui.basic.orange.button:active,.ui.basic.orange.buttons .button:active{box-shadow:inset 0 0 0 1px #cf590c!important;color:#cf590c!important}.ui.buttons:not(.vertical)>.basic.orange.button:not(:first-child){margin-left:-1px}.ui.inverted.orange.button,.ui.inverted.orange.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff851b!important;color:#ff851b}.ui.inverted.orange.button.active,.ui.inverted.orange.button:active,.ui.inverted.orange.button:focus,.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button.active,.ui.inverted.orange.buttons .button:active,.ui.inverted.orange.buttons .button:focus,.ui.inverted.orange.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.orange.button:hover,.ui.inverted.orange.buttons .button:hover{background-color:#ff7701}.ui.inverted.orange.button:focus,.ui.inverted.orange.buttons .button:focus{background-color:#f17000}.ui.inverted.orange.active.button,.ui.inverted.orange.buttons .active.button{background-color:#ff7701}.ui.inverted.orange.button:active,.ui.inverted.orange.buttons .button:active{background-color:#e76b00}.ui.inverted.orange.basic.button,.ui.inverted.orange.basic.buttons .button,.ui.inverted.orange.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.orange.basic.button:hover,.ui.inverted.orange.basic.buttons .button:hover,.ui.inverted.orange.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff7701!important;color:#ff851b!important}.ui.inverted.orange.basic.button:focus,.ui.inverted.orange.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f17000!important;color:#ff851b!important}.ui.inverted.orange.basic.active.button,.ui.inverted.orange.basic.buttons .active.button,.ui.inverted.orange.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff7701!important;color:#ff851b!important}.ui.inverted.orange.basic.button:active,.ui.inverted.orange.basic.buttons .button:active,.ui.inverted.orange.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #e76b00!important;color:#ff851b!important}.ui.pink.button,.ui.pink.buttons .button{background-color:#e03997;color:#fff;text-shadow:none;background-image:none}.ui.pink.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.pink.button:hover,.ui.pink.buttons .button:hover{background-color:#e61a8d;color:#fff;text-shadow:none}.ui.pink.button:focus,.ui.pink.buttons .button:focus{background-color:#e10f85;color:#fff;text-shadow:none}.ui.pink.button:active,.ui.pink.buttons .button:active{background-color:#c71f7e;color:#fff;text-shadow:none}.ui.pink.active.button,.ui.pink.button .active.button:active,.ui.pink.buttons .active.button,.ui.pink.buttons .active.button:active{background-color:#ea158d;color:#fff;text-shadow:none}.ui.basic.pink.button,.ui.basic.pink.buttons .button{box-shadow:inset 0 0 0 1px #e03997!important;color:#e03997!important}.ui.basic.pink.button:hover,.ui.basic.pink.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #e61a8d!important;color:#e61a8d!important}.ui.basic.pink.button:focus,.ui.basic.pink.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #e10f85!important;color:#e61a8d!important}.ui.basic.pink.active.button,.ui.basic.pink.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #ea158d!important;color:#c71f7e!important}.ui.basic.pink.button:active,.ui.basic.pink.buttons .button:active{box-shadow:inset 0 0 0 1px #c71f7e!important;color:#c71f7e!important}.ui.buttons:not(.vertical)>.basic.pink.button:not(:first-child){margin-left:-1px}.ui.inverted.pink.button,.ui.inverted.pink.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff8edf!important;color:#ff8edf}.ui.inverted.pink.button.active,.ui.inverted.pink.button:active,.ui.inverted.pink.button:focus,.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button.active,.ui.inverted.pink.buttons .button:active,.ui.inverted.pink.buttons .button:focus,.ui.inverted.pink.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.pink.button:hover,.ui.inverted.pink.buttons .button:hover{background-color:#ff74d8}.ui.inverted.pink.button:focus,.ui.inverted.pink.buttons .button:focus{background-color:#ff65d3}.ui.inverted.pink.active.button,.ui.inverted.pink.buttons .active.button{background-color:#ff74d8}.ui.inverted.pink.button:active,.ui.inverted.pink.buttons .button:active{background-color:#ff5bd1}.ui.inverted.pink.basic.button,.ui.inverted.pink.basic.buttons .button,.ui.inverted.pink.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.pink.basic.button:hover,.ui.inverted.pink.basic.buttons .button:hover,.ui.inverted.pink.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff74d8!important;color:#ff8edf!important}.ui.inverted.pink.basic.button:focus,.ui.inverted.pink.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff65d3!important;color:#ff8edf!important}.ui.inverted.pink.basic.active.button,.ui.inverted.pink.basic.buttons .active.button,.ui.inverted.pink.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff74d8!important;color:#ff8edf!important}.ui.inverted.pink.basic.button:active,.ui.inverted.pink.basic.buttons .button:active,.ui.inverted.pink.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff5bd1!important;color:#ff8edf!important}.ui.violet.button,.ui.violet.buttons .button{background-color:#6435c9;color:#fff;text-shadow:none;background-image:none}.ui.violet.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.violet.button:hover,.ui.violet.buttons .button:hover{background-color:#5829bb;color:#fff;text-shadow:none}.ui.violet.button:focus,.ui.violet.buttons .button:focus{background-color:#4f20b5;color:#fff;text-shadow:none}.ui.violet.button:active,.ui.violet.buttons .button:active{background-color:#502aa1;color:#fff;text-shadow:none}.ui.violet.active.button,.ui.violet.button .active.button:active,.ui.violet.buttons .active.button,.ui.violet.buttons .active.button:active{background-color:#5626bf;color:#fff;text-shadow:none}.ui.basic.violet.button,.ui.basic.violet.buttons .button{box-shadow:inset 0 0 0 1px #6435c9!important;color:#6435c9!important}.ui.basic.violet.button:hover,.ui.basic.violet.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #5829bb!important;color:#5829bb!important}.ui.basic.violet.button:focus,.ui.basic.violet.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #4f20b5!important;color:#5829bb!important}.ui.basic.violet.active.button,.ui.basic.violet.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #5626bf!important;color:#502aa1!important}.ui.basic.violet.button:active,.ui.basic.violet.buttons .button:active{box-shadow:inset 0 0 0 1px #502aa1!important;color:#502aa1!important}.ui.buttons:not(.vertical)>.basic.violet.button:not(:first-child){margin-left:-1px}.ui.inverted.violet.button,.ui.inverted.violet.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #a291fb!important;color:#a291fb}.ui.inverted.violet.button.active,.ui.inverted.violet.button:active,.ui.inverted.violet.button:focus,.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button.active,.ui.inverted.violet.buttons .button:active,.ui.inverted.violet.buttons .button:focus,.ui.inverted.violet.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.violet.button:hover,.ui.inverted.violet.buttons .button:hover{background-color:#8a73ff}.ui.inverted.violet.button:focus,.ui.inverted.violet.buttons .button:focus{background-color:#7d64ff}.ui.inverted.violet.active.button,.ui.inverted.violet.buttons .active.button{background-color:#8a73ff}.ui.inverted.violet.button:active,.ui.inverted.violet.buttons .button:active{background-color:#7860f9}.ui.inverted.violet.basic.button,.ui.inverted.violet.basic.buttons .button,.ui.inverted.violet.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.violet.basic.button:hover,.ui.inverted.violet.basic.buttons .button:hover,.ui.inverted.violet.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #8a73ff!important;color:#a291fb!important}.ui.inverted.violet.basic.button:focus,.ui.inverted.violet.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #7d64ff!important;color:#a291fb!important}.ui.inverted.violet.basic.active.button,.ui.inverted.violet.basic.buttons .active.button,.ui.inverted.violet.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #8a73ff!important;color:#a291fb!important}.ui.inverted.violet.basic.button:active,.ui.inverted.violet.basic.buttons .button:active,.ui.inverted.violet.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #7860f9!important;color:#a291fb!important}.ui.purple.button,.ui.purple.buttons .button{background-color:#a333c8;color:#fff;text-shadow:none;background-image:none}.ui.purple.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.purple.button:hover,.ui.purple.buttons .button:hover{background-color:#9627ba;color:#fff;text-shadow:none}.ui.purple.button:focus,.ui.purple.buttons .button:focus{background-color:#8f1eb4;color:#fff;text-shadow:none}.ui.purple.button:active,.ui.purple.buttons .button:active{background-color:#82299f;color:#fff;text-shadow:none}.ui.purple.active.button,.ui.purple.button .active.button:active,.ui.purple.buttons .active.button,.ui.purple.buttons .active.button:active{background-color:#9724be;color:#fff;text-shadow:none}.ui.basic.purple.button,.ui.basic.purple.buttons .button{box-shadow:inset 0 0 0 1px #a333c8!important;color:#a333c8!important}.ui.basic.purple.button:hover,.ui.basic.purple.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #9627ba!important;color:#9627ba!important}.ui.basic.purple.button:focus,.ui.basic.purple.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #8f1eb4!important;color:#9627ba!important}.ui.basic.purple.active.button,.ui.basic.purple.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #9724be!important;color:#82299f!important}.ui.basic.purple.button:active,.ui.basic.purple.buttons .button:active{box-shadow:inset 0 0 0 1px #82299f!important;color:#82299f!important}.ui.buttons:not(.vertical)>.basic.purple.button:not(:first-child){margin-left:-1px}.ui.inverted.purple.button,.ui.inverted.purple.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #dc73ff!important;color:#dc73ff}.ui.inverted.purple.button.active,.ui.inverted.purple.button:active,.ui.inverted.purple.button:focus,.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button.active,.ui.inverted.purple.buttons .button:active,.ui.inverted.purple.buttons .button:focus,.ui.inverted.purple.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.purple.button:hover,.ui.inverted.purple.buttons .button:hover{background-color:#d65aff}.ui.inverted.purple.button:focus,.ui.inverted.purple.buttons .button:focus{background-color:#d24aff}.ui.inverted.purple.active.button,.ui.inverted.purple.buttons .active.button{background-color:#d65aff}.ui.inverted.purple.button:active,.ui.inverted.purple.buttons .button:active{background-color:#cf40ff}.ui.inverted.purple.basic.button,.ui.inverted.purple.basic.buttons .button,.ui.inverted.purple.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.purple.basic.button:hover,.ui.inverted.purple.basic.buttons .button:hover,.ui.inverted.purple.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #d65aff!important;color:#dc73ff!important}.ui.inverted.purple.basic.button:focus,.ui.inverted.purple.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #d24aff!important;color:#dc73ff!important}.ui.inverted.purple.basic.active.button,.ui.inverted.purple.basic.buttons .active.button,.ui.inverted.purple.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #d65aff!important;color:#dc73ff!important}.ui.inverted.purple.basic.button:active,.ui.inverted.purple.basic.buttons .button:active,.ui.inverted.purple.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cf40ff!important;color:#dc73ff!important}.ui.red.button,.ui.red.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.red.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.red.button:hover,.ui.red.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.red.button:focus,.ui.red.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.red.button:active,.ui.red.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.red.active.button,.ui.red.button .active.button:active,.ui.red.buttons .active.button,.ui.red.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.red.button,.ui.basic.red.buttons .button{box-shadow:inset 0 0 0 1px #db2828!important;color:#db2828!important}.ui.basic.red.button:hover,.ui.basic.red.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #d01919!important;color:#d01919!important}.ui.basic.red.button:focus,.ui.basic.red.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #ca1010!important;color:#d01919!important}.ui.basic.red.active.button,.ui.basic.red.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #d41515!important;color:#b21e1e!important}.ui.basic.red.button:active,.ui.basic.red.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e!important;color:#b21e1e!important}.ui.buttons:not(.vertical)>.basic.red.button:not(:first-child){margin-left:-1px}.ui.inverted.red.button,.ui.inverted.red.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ff695e!important;color:#ff695e}.ui.inverted.red.button.active,.ui.inverted.red.button:active,.ui.inverted.red.button:focus,.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button.active,.ui.inverted.red.buttons .button:active,.ui.inverted.red.buttons .button:focus,.ui.inverted.red.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.red.button:hover,.ui.inverted.red.buttons .button:hover{background-color:#ff5144}.ui.inverted.red.button:focus,.ui.inverted.red.buttons .button:focus{background-color:#ff4335}.ui.inverted.red.active.button,.ui.inverted.red.buttons .active.button{background-color:#ff5144}.ui.inverted.red.button:active,.ui.inverted.red.buttons .button:active{background-color:#ff392b}.ui.inverted.red.basic.button,.ui.inverted.red.basic.buttons .button,.ui.inverted.red.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.red.basic.button:hover,.ui.inverted.red.basic.buttons .button:hover,.ui.inverted.red.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ff5144!important;color:#ff695e!important}.ui.inverted.red.basic.button:focus,.ui.inverted.red.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #ff4335!important;color:#ff695e!important}.ui.inverted.red.basic.active.button,.ui.inverted.red.basic.buttons .active.button,.ui.inverted.red.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ff5144!important;color:#ff695e!important}.ui.inverted.red.basic.button:active,.ui.inverted.red.basic.buttons .button:active,.ui.inverted.red.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ff392b!important;color:#ff695e!important}.ui.teal.button,.ui.teal.buttons .button{background-color:#00b5ad;color:#fff;text-shadow:none;background-image:none}.ui.teal.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.teal.button:hover,.ui.teal.buttons .button:hover{background-color:#009c95;color:#fff;text-shadow:none}.ui.teal.button:focus,.ui.teal.buttons .button:focus{background-color:#008c86;color:#fff;text-shadow:none}.ui.teal.button:active,.ui.teal.buttons .button:active{background-color:#00827c;color:#fff;text-shadow:none}.ui.teal.active.button,.ui.teal.button .active.button:active,.ui.teal.buttons .active.button,.ui.teal.buttons .active.button:active{background-color:#009c95;color:#fff;text-shadow:none}.ui.basic.teal.button,.ui.basic.teal.buttons .button{box-shadow:inset 0 0 0 1px #00b5ad!important;color:#00b5ad!important}.ui.basic.teal.button:hover,.ui.basic.teal.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #009c95!important;color:#009c95!important}.ui.basic.teal.button:focus,.ui.basic.teal.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #008c86!important;color:#009c95!important}.ui.basic.teal.active.button,.ui.basic.teal.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #009c95!important;color:#00827c!important}.ui.basic.teal.button:active,.ui.basic.teal.buttons .button:active{box-shadow:inset 0 0 0 1px #00827c!important;color:#00827c!important}.ui.buttons:not(.vertical)>.basic.teal.button:not(:first-child){margin-left:-1px}.ui.inverted.teal.button,.ui.inverted.teal.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #6dffff!important;color:#6dffff}.ui.inverted.teal.button.active,.ui.inverted.teal.button:active,.ui.inverted.teal.button:focus,.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button.active,.ui.inverted.teal.buttons .button:active,.ui.inverted.teal.buttons .button:focus,.ui.inverted.teal.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.teal.button:hover,.ui.inverted.teal.buttons .button:hover{background-color:#54ffff}.ui.inverted.teal.button:focus,.ui.inverted.teal.buttons .button:focus{background-color:#4ff}.ui.inverted.teal.active.button,.ui.inverted.teal.buttons .active.button{background-color:#54ffff}.ui.inverted.teal.button:active,.ui.inverted.teal.buttons .button:active{background-color:#3affff}.ui.inverted.teal.basic.button,.ui.inverted.teal.basic.buttons .button,.ui.inverted.teal.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.teal.basic.button:hover,.ui.inverted.teal.basic.buttons .button:hover,.ui.inverted.teal.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #54ffff!important;color:#6dffff!important}.ui.inverted.teal.basic.button:focus,.ui.inverted.teal.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #4ff!important;color:#6dffff!important}.ui.inverted.teal.basic.active.button,.ui.inverted.teal.basic.buttons .active.button,.ui.inverted.teal.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #54ffff!important;color:#6dffff!important}.ui.inverted.teal.basic.button:active,.ui.inverted.teal.basic.buttons .button:active,.ui.inverted.teal.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3affff!important;color:#6dffff!important}.ui.olive.button,.ui.olive.buttons .button{background-color:#b5cc18;color:#fff;text-shadow:none;background-image:none}.ui.olive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.olive.button:hover,.ui.olive.buttons .button:hover{background-color:#a7bd0d;color:#fff;text-shadow:none}.ui.olive.button:focus,.ui.olive.buttons .button:focus{background-color:#a0b605;color:#fff;text-shadow:none}.ui.olive.button:active,.ui.olive.buttons .button:active{background-color:#8d9e13;color:#fff;text-shadow:none}.ui.olive.active.button,.ui.olive.button .active.button:active,.ui.olive.buttons .active.button,.ui.olive.buttons .active.button:active{background-color:#aac109;color:#fff;text-shadow:none}.ui.basic.olive.button,.ui.basic.olive.buttons .button{box-shadow:inset 0 0 0 1px #b5cc18!important;color:#b5cc18!important}.ui.basic.olive.button:hover,.ui.basic.olive.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #a7bd0d!important;color:#a7bd0d!important}.ui.basic.olive.button:focus,.ui.basic.olive.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #a0b605!important;color:#a7bd0d!important}.ui.basic.olive.active.button,.ui.basic.olive.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #aac109!important;color:#8d9e13!important}.ui.basic.olive.button:active,.ui.basic.olive.buttons .button:active{box-shadow:inset 0 0 0 1px #8d9e13!important;color:#8d9e13!important}.ui.buttons:not(.vertical)>.basic.olive.button:not(:first-child){margin-left:-1px}.ui.inverted.olive.button,.ui.inverted.olive.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #d9e778!important;color:#d9e778}.ui.inverted.olive.button.active,.ui.inverted.olive.button:active,.ui.inverted.olive.button:focus,.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button.active,.ui.inverted.olive.buttons .button:active,.ui.inverted.olive.buttons .button:focus,.ui.inverted.olive.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.olive.button:hover,.ui.inverted.olive.buttons .button:hover{background-color:#d8ea5c}.ui.inverted.olive.button:focus,.ui.inverted.olive.buttons .button:focus{background-color:#daef47}.ui.inverted.olive.active.button,.ui.inverted.olive.buttons .active.button{background-color:#daed59}.ui.inverted.olive.button:active,.ui.inverted.olive.buttons .button:active{background-color:#cddf4d}.ui.inverted.olive.basic.button,.ui.inverted.olive.basic.buttons .button,.ui.inverted.olive.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.olive.basic.button:hover,.ui.inverted.olive.basic.buttons .button:hover,.ui.inverted.olive.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #d8ea5c!important;color:#d9e778!important}.ui.inverted.olive.basic.button:focus,.ui.inverted.olive.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #daef47!important;color:#d9e778!important}.ui.inverted.olive.basic.active.button,.ui.inverted.olive.basic.buttons .active.button,.ui.inverted.olive.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #daed59!important;color:#d9e778!important}.ui.inverted.olive.basic.button:active,.ui.inverted.olive.basic.buttons .button:active,.ui.inverted.olive.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #cddf4d!important;color:#d9e778!important}.ui.yellow.button,.ui.yellow.buttons .button{background-color:#fbbd08;color:#fff;text-shadow:none;background-image:none}.ui.yellow.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.yellow.button:hover,.ui.yellow.buttons .button:hover{background-color:#eaae00;color:#fff;text-shadow:none}.ui.yellow.button:focus,.ui.yellow.buttons .button:focus{background-color:#daa300;color:#fff;text-shadow:none}.ui.yellow.button:active,.ui.yellow.buttons .button:active{background-color:#cd9903;color:#fff;text-shadow:none}.ui.yellow.active.button,.ui.yellow.button .active.button:active,.ui.yellow.buttons .active.button,.ui.yellow.buttons .active.button:active{background-color:#eaae00;color:#fff;text-shadow:none}.ui.basic.yellow.button,.ui.basic.yellow.buttons .button{box-shadow:inset 0 0 0 1px #fbbd08!important;color:#fbbd08!important}.ui.basic.yellow.button:hover,.ui.basic.yellow.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #eaae00!important;color:#eaae00!important}.ui.basic.yellow.button:focus,.ui.basic.yellow.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #daa300!important;color:#eaae00!important}.ui.basic.yellow.active.button,.ui.basic.yellow.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #eaae00!important;color:#cd9903!important}.ui.basic.yellow.button:active,.ui.basic.yellow.buttons .button:active{box-shadow:inset 0 0 0 1px #cd9903!important;color:#cd9903!important}.ui.buttons:not(.vertical)>.basic.yellow.button:not(:first-child){margin-left:-1px}.ui.inverted.yellow.button,.ui.inverted.yellow.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #ffe21f!important;color:#ffe21f}.ui.inverted.yellow.button.active,.ui.inverted.yellow.button:active,.ui.inverted.yellow.button:focus,.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button.active,.ui.inverted.yellow.buttons .button:active,.ui.inverted.yellow.buttons .button:focus,.ui.inverted.yellow.buttons .button:hover{box-shadow:none!important;color:rgba(0,0,0,.6)}.ui.inverted.yellow.button:hover,.ui.inverted.yellow.buttons .button:hover{background-color:#ffdf05}.ui.inverted.yellow.button:focus,.ui.inverted.yellow.buttons .button:focus{background-color:#f5d500}.ui.inverted.yellow.active.button,.ui.inverted.yellow.buttons .active.button{background-color:#ffdf05}.ui.inverted.yellow.button:active,.ui.inverted.yellow.buttons .button:active{background-color:#ebcd00}.ui.inverted.yellow.basic.button,.ui.inverted.yellow.basic.buttons .button,.ui.inverted.yellow.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.yellow.basic.button:hover,.ui.inverted.yellow.basic.buttons .button:hover,.ui.inverted.yellow.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #ffdf05!important;color:#ffe21f!important}.ui.inverted.yellow.basic.button:focus,.ui.inverted.yellow.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #f5d500!important;color:#ffe21f!important}.ui.inverted.yellow.basic.active.button,.ui.inverted.yellow.basic.buttons .active.button,.ui.inverted.yellow.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #ffdf05!important;color:#ffe21f!important}.ui.inverted.yellow.basic.button:active,.ui.inverted.yellow.basic.buttons .button:active,.ui.inverted.yellow.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #ebcd00!important;color:#ffe21f!important}.ui.primary.button,.ui.primary.buttons .button{background-color:#2c6a9e;color:#fff;text-shadow:none;background-image:none}.ui.primary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.primary.button:hover,.ui.primary.buttons .button:hover{background-color:#215d8f;color:#fff;text-shadow:none}.ui.primary.button:focus,.ui.primary.buttons .button:focus{background-color:#1a5587;color:#fff;text-shadow:none}.ui.primary.button:active,.ui.primary.buttons .button:active{background-color:#214f76;color:#fff;text-shadow:none}.ui.primary.active.button,.ui.primary.button .active.button:active,.ui.primary.buttons .active.button,.ui.primary.buttons .active.button:active{background-color:#1f5d92;color:#fff;text-shadow:none}.ui.basic.primary.button,.ui.basic.primary.buttons .button{box-shadow:inset 0 0 0 1px #2c6a9e!important;color:#2c6a9e!important}.ui.basic.primary.button:hover,.ui.basic.primary.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #215d8f!important;color:#215d8f!important}.ui.basic.primary.button:focus,.ui.basic.primary.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #1a5587!important;color:#215d8f!important}.ui.basic.primary.active.button,.ui.basic.primary.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #1f5d92!important;color:#214f76!important}.ui.basic.primary.button:active,.ui.basic.primary.buttons .button:active{box-shadow:inset 0 0 0 1px #214f76!important;color:#214f76!important}.ui.inverted.primary.button,.ui.inverted.primary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #5391c5!important;color:#5391c5}.ui.inverted.primary.button.active,.ui.inverted.primary.button:active,.ui.inverted.primary.button:focus,.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button.active,.ui.inverted.primary.buttons .button:active,.ui.inverted.primary.buttons .button:focus,.ui.inverted.primary.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.primary.button:hover,.ui.inverted.primary.buttons .button:hover{background-color:#3a85c5}.ui.inverted.primary.button:focus,.ui.inverted.primary.buttons .button:focus{background-color:#307ebf}.ui.inverted.primary.active.button,.ui.inverted.primary.buttons .active.button{background-color:#3786c8}.ui.inverted.primary.button:active,.ui.inverted.primary.buttons .button:active{background-color:#3a77ab}.ui.inverted.primary.basic.button,.ui.inverted.primary.basic.buttons .button,.ui.inverted.primary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.primary.basic.button:hover,.ui.inverted.primary.basic.buttons .button:hover,.ui.inverted.primary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #3a85c5!important;color:#5391c5!important}.ui.inverted.primary.basic.button:focus,.ui.inverted.primary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #307ebf!important;color:#5391c5!important}.ui.inverted.primary.basic.active.button,.ui.inverted.primary.basic.buttons .active.button,.ui.inverted.primary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #3786c8!important;color:#5391c5!important}.ui.inverted.primary.basic.button:active,.ui.inverted.primary.basic.buttons .button:active,.ui.inverted.primary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #3a77ab!important;color:#5391c5!important}.ui.secondary.button,.ui.secondary.buttons .button{background-color:#1b1c1d;color:#fff;text-shadow:none;background-image:none}.ui.secondary.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.secondary.button:hover,.ui.secondary.buttons .button:hover{background-color:#27292a;color:#fff;text-shadow:none}.ui.secondary.button:focus,.ui.secondary.buttons .button:focus{background-color:#2e3032;color:#fff;text-shadow:none}.ui.secondary.button:active,.ui.secondary.buttons .button:active{background-color:#343637;color:#fff;text-shadow:none}.ui.secondary.active.button,.ui.secondary.button .active.button:active,.ui.secondary.buttons .active.button,.ui.secondary.buttons .active.button:active{background-color:#27292a;color:#fff;text-shadow:none}.ui.basic.secondary.button,.ui.basic.secondary.buttons .button{box-shadow:inset 0 0 0 1px #1b1c1d!important;color:#1b1c1d!important}.ui.basic.secondary.button:hover,.ui.basic.secondary.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #27292a!important;color:#27292a!important}.ui.basic.secondary.button:focus,.ui.basic.secondary.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #2e3032!important;color:#27292a!important}.ui.basic.secondary.active.button,.ui.basic.secondary.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #27292a!important;color:#343637!important}.ui.basic.secondary.button:active,.ui.basic.secondary.buttons .button:active{box-shadow:inset 0 0 0 1px #343637!important;color:#343637!important}.ui.inverted.secondary.button,.ui.inverted.secondary.buttons .button{background-color:transparent;box-shadow:inset 0 0 0 2px #545454!important;color:#545454}.ui.inverted.secondary.button.active,.ui.inverted.secondary.button:active,.ui.inverted.secondary.button:focus,.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button.active,.ui.inverted.secondary.buttons .button:active,.ui.inverted.secondary.buttons .button:focus,.ui.inverted.secondary.buttons .button:hover{box-shadow:none!important;color:#fff}.ui.inverted.secondary.button:hover,.ui.inverted.secondary.buttons .button:hover{background-color:#616161}.ui.inverted.secondary.button:focus,.ui.inverted.secondary.buttons .button:focus{background-color:#686868}.ui.inverted.secondary.active.button,.ui.inverted.secondary.buttons .active.button{background-color:#616161}.ui.inverted.secondary.button:active,.ui.inverted.secondary.buttons .button:active{background-color:#6e6e6e}.ui.inverted.secondary.basic.button,.ui.inverted.secondary.basic.buttons .button,.ui.inverted.secondary.buttons .basic.button{background-color:transparent;box-shadow:inset 0 0 0 2px hsla(0,0%,100%,.5)!important;color:#fff!important}.ui.inverted.secondary.basic.button:hover,.ui.inverted.secondary.basic.buttons .button:hover,.ui.inverted.secondary.buttons .basic.button:hover{box-shadow:inset 0 0 0 2px #616161!important;color:#545454!important}.ui.inverted.secondary.basic.button:focus,.ui.inverted.secondary.basic.buttons .button:focus{box-shadow:inset 0 0 0 2px #686868!important;color:#545454!important}.ui.inverted.secondary.basic.active.button,.ui.inverted.secondary.basic.buttons .active.button,.ui.inverted.secondary.buttons .basic.active.button{box-shadow:inset 0 0 0 2px #616161!important;color:#545454!important}.ui.inverted.secondary.basic.button:active,.ui.inverted.secondary.basic.buttons .button:active,.ui.inverted.secondary.buttons .basic.button:active{box-shadow:inset 0 0 0 2px #6e6e6e!important;color:#545454!important}.ui.positive.button,.ui.positive.buttons .button{background-color:#21ba45;color:#fff;text-shadow:none;background-image:none}.ui.positive.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.positive.button:hover,.ui.positive.buttons .button:hover{background-color:#16ab39;color:#fff;text-shadow:none}.ui.positive.button:focus,.ui.positive.buttons .button:focus{background-color:#0ea432;color:#fff;text-shadow:none}.ui.positive.button:active,.ui.positive.buttons .button:active{background-color:#198f35;color:#fff;text-shadow:none}.ui.positive.active.button,.ui.positive.button .active.button:active,.ui.positive.buttons .active.button,.ui.positive.buttons .active.button:active{background-color:#13ae38;color:#fff;text-shadow:none}.ui.basic.positive.button,.ui.basic.positive.buttons .button{box-shadow:inset 0 0 0 1px #21ba45!important;color:#21ba45!important}.ui.basic.positive.button:hover,.ui.basic.positive.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #16ab39!important;color:#16ab39!important}.ui.basic.positive.button:focus,.ui.basic.positive.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #0ea432!important;color:#16ab39!important}.ui.basic.positive.active.button,.ui.basic.positive.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #13ae38!important;color:#198f35!important}.ui.basic.positive.button:active,.ui.basic.positive.buttons .button:active{box-shadow:inset 0 0 0 1px #198f35!important;color:#198f35!important}.ui.negative.button,.ui.negative.buttons .button{background-color:#db2828;color:#fff;text-shadow:none;background-image:none}.ui.negative.button{box-shadow:inset 0 0 0 0 rgba(34,36,38,.15)}.ui.negative.button:hover,.ui.negative.buttons .button:hover{background-color:#d01919;color:#fff;text-shadow:none}.ui.negative.button:focus,.ui.negative.buttons .button:focus{background-color:#ca1010;color:#fff;text-shadow:none}.ui.negative.button:active,.ui.negative.buttons .button:active{background-color:#b21e1e;color:#fff;text-shadow:none}.ui.negative.active.button,.ui.negative.button .active.button:active,.ui.negative.buttons .active.button,.ui.negative.buttons .active.button:active{background-color:#d41515;color:#fff;text-shadow:none}.ui.basic.negative.button,.ui.basic.negative.buttons .button{box-shadow:inset 0 0 0 1px #db2828!important;color:#db2828!important}.ui.basic.negative.button:hover,.ui.basic.negative.buttons .button:hover{background:transparent!important;box-shadow:inset 0 0 0 1px #d01919!important;color:#d01919!important}.ui.basic.negative.button:focus,.ui.basic.negative.buttons .button:focus{background:transparent!important;box-shadow:inset 0 0 0 1px #ca1010!important;color:#d01919!important}.ui.basic.negative.active.button,.ui.basic.negative.buttons .active.button{background:transparent!important;box-shadow:inset 0 0 0 1px #d41515!important;color:#b21e1e!important}.ui.basic.negative.button:active,.ui.basic.negative.buttons .button:active{box-shadow:inset 0 0 0 1px #b21e1e!important;color:#b21e1e!important}.ui.buttons:not(.vertical)>.basic.primary.button:not(:first-child){margin-left:-1px}.ui.buttons{display:inline-flex;flex-direction:row;font-size:0;vertical-align:baseline;margin:0 .25em 0 0}.ui.buttons:not(.basic):not(.inverted){box-shadow:none}.ui.buttons:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.buttons .button{flex:1 0 auto;border-radius:0;margin:0}.ui.buttons:not(.basic):not(.inverted)>.button,.ui.buttons>.ui.button:not(.basic):not(.inverted){box-shadow:inset 0 0 0 1px transparent,inset 0 0 0 0 rgba(34,36,38,.15)}.ui.buttons .button:first-child{border-left:none;margin-left:0;border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem}.ui.buttons .button:last-child{border-top-right-radius:2.999px;border-top-right-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.vertical.buttons{display:inline-flex;flex-direction:column}.ui.vertical.buttons .button{display:block;float:none;width:100%;margin:0;box-shadow:none;border-radius:0}.ui.vertical.buttons .button:first-child{border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-top-right-radius:2.999px;border-top-right-radius:.21428571rem}.ui.vertical.buttons .button:last-child{margin-bottom:0;border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.vertical.buttons .button:only-child{border-radius:.21428571rem}.ui.basic.blue.active.button,.ui.basic.blue.buttons .active.button{background:rgba(44,106,158,.1)!important;box-shadow:inset 0 0 0 1px #1f5d92!important;color:#214f76!important}
/*!
 * # Semantic UI - Container
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{margin-left:.5em!important;margin-right:.5em!important}.ui.container,.ui.grid.container,.ui.relaxed.grid.container,.ui.very.relaxed.grid.container{width:auto!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.container{width:calc(100% - .5rem);margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(100% - .5rem)!important}.ui.relaxed.grid.container{width:calc(100% + 2.5rem)!important}.ui.very.relaxed.grid.container{width:calc(100% + 4.5rem)!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.container{width:calc(100% - 1rem - 17px);margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(100% - 1rem)!important}.ui.relaxed.grid.container{width:calc(100% + 2rem - 17px)!important}.ui.very.relaxed.grid.container{width:calc(100% + 4rem - 17px)!important}}@media only screen and (min-width:1200px){.ui.container{width:calc(100% - 1rem - 17px);margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(100% - 1rem)!important}.ui.relaxed.grid.container{width:calc(100% + 2rem - 17px)!important}.ui.very.relaxed.grid.container{width:calc(100% + 4rem - 17px)!important}}.ui.text.container{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;max-width:700px!important;line-height:1.5;font-size:15.999px;font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}
/*!
 * # Semantic UI - Divider
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid rgba(34,36,38,.15);border-bottom:1px solid hsla(0,0%,100%,.1)}.ui.grid>.column+.divider,.ui.grid>.row>.column+.divider{left:auto}.ui.horizontal.divider{display:table;white-space:nowrap;height:auto;margin:"";line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{content:"";display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.horizontal.divider:before{background-position:right 1em top 50%}.ui.horizontal.divider:after{background-position:left 1em top 50%}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:"";z-index:3;border-left:1px solid rgba(34,36,38,.15);border-right:1px solid hsla(0,0%,100%,.1);width:0;height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{display:table;white-space:nowrap;height:auto;margin:"";overflow:hidden;line-height:1;text-align:center;position:static;top:0;left:0;transform:none}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{position:static;left:0;border-left:none;border-right:none;content:"";display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{background-position:right 1em top 50%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{background-position:left 1em top 50%}}.ui.divider>.icon{margin:0;font-size:14px;font-size:1rem;height:1em;vertical-align:middle}.ui.hidden.divider{border-color:transparent!important}.ui.hidden.divider:after,.ui.hidden.divider:before{display:none}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#fff}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-color:rgba(34,36,38,.15) hsla(0,0%,100%,.15) hsla(0,0%,100%,.15) rgba(34,36,38,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.divider{font-size:14px;font-size:1rem}.ui.horizontal.divider:after,.ui.horizontal.divider:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC")}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC")}}
/*!
 * # Semantic UI - Flag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */i.flag:not(.icon){line-height:11px;vertical-align:baseline;margin:0 .5em 0 0;text-decoration:inherit;speak:none;font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden}i.flag:not(.icon),i.flag:not(.icon):before{display:inline-block;width:16px;height:11px}i.flag:not(.icon):before{content:"";background:url(/assets/images/flags.png) no-repeat -108px -1976px}i.flag.ad:before,i.flag.andorra:before{background-position:0 0}i.flag.ae:before,i.flag.uae:before,i.flag.united.arab.emirates:before{background-position:0 -26px}i.flag.af:before,i.flag.afghanistan:before{background-position:0 -52px}i.flag.ag:before,i.flag.antigua:before{background-position:0 -78px}i.flag.ai:before,i.flag.anguilla:before{background-position:0 -104px}i.flag.al:before,i.flag.albania:before{background-position:0 -130px}i.flag.am:before,i.flag.armenia:before{background-position:0 -156px}i.flag.an:before,i.flag.netherlands.antilles:before{background-position:0 -182px}i.flag.angola:before,i.flag.ao:before{background-position:0 -208px}i.flag.ar:before,i.flag.argentina:before{background-position:0 -234px}i.flag.american.samoa:before,i.flag.as:before{background-position:0 -260px}i.flag.at:before,i.flag.austria:before{background-position:0 -286px}i.flag.au:before,i.flag.australia:before{background-position:0 -312px}i.flag.aruba:before,i.flag.aw:before{background-position:0 -338px}i.flag.aland.islands:before,i.flag.ax:before{background-position:0 -364px}i.flag.az:before,i.flag.azerbaijan:before{background-position:0 -390px}i.flag.ba:before,i.flag.bosnia:before{background-position:0 -416px}i.flag.barbados:before,i.flag.bb:before{background-position:0 -442px}i.flag.bangladesh:before,i.flag.bd:before{background-position:0 -468px}i.flag.be:before,i.flag.belgium:before{background-position:0 -494px}i.flag.bf:before,i.flag.burkina.faso:before{background-position:0 -520px}i.flag.bg:before,i.flag.bulgaria:before{background-position:0 -546px}i.flag.bahrain:before,i.flag.bh:before{background-position:0 -572px}i.flag.bi:before,i.flag.burundi:before{background-position:0 -598px}i.flag.benin:before,i.flag.bj:before{background-position:0 -624px}i.flag.bermuda:before,i.flag.bm:before{background-position:0 -650px}i.flag.bn:before,i.flag.brunei:before{background-position:0 -676px}i.flag.bo:before,i.flag.bolivia:before{background-position:0 -702px}i.flag.br:before,i.flag.brazil:before{background-position:0 -728px}i.flag.bahamas:before,i.flag.bs:before{background-position:0 -754px}i.flag.bhutan:before,i.flag.bt:before{background-position:0 -780px}i.flag.bouvet.island:before,i.flag.bv:before{background-position:0 -806px}i.flag.botswana:before,i.flag.bw:before{background-position:0 -832px}i.flag.belarus:before,i.flag.by:before{background-position:0 -858px}i.flag.belize:before,i.flag.bz:before{background-position:0 -884px}i.flag.ca:before,i.flag.canada:before{background-position:0 -910px}i.flag.cc:before,i.flag.cocos.islands:before{background-position:0 -962px}i.flag.cd:before,i.flag.congo:before{background-position:0 -988px}i.flag.central.african.republic:before,i.flag.cf:before{background-position:0 -1014px}i.flag.cg:before,i.flag.congo.brazzaville:before{background-position:0 -1040px}i.flag.ch:before,i.flag.switzerland:before{background-position:0 -1066px}i.flag.ci:before,i.flag.cote.divoire:before{background-position:0 -1092px}i.flag.ck:before,i.flag.cook.islands:before{background-position:0 -1118px}i.flag.chile:before,i.flag.cl:before{background-position:0 -1144px}i.flag.cameroon:before,i.flag.cm:before{background-position:0 -1170px}i.flag.china:before,i.flag.cn:before{background-position:0 -1196px}i.flag.co:before,i.flag.colombia:before{background-position:0 -1222px}i.flag.costa.rica:before,i.flag.cr:before{background-position:0 -1248px}i.flag.cs:before,i.flag.serbia:before{background-position:0 -1274px}i.flag.cu:before,i.flag.cuba:before{background-position:0 -1300px}i.flag.cape.verde:before,i.flag.cv:before{background-position:0 -1326px}i.flag.christmas.island:before,i.flag.cx:before{background-position:0 -1352px}i.flag.cy:before,i.flag.cyprus:before{background-position:0 -1378px}i.flag.cz:before,i.flag.czech.republic:before{background-position:0 -1404px}i.flag.de:before,i.flag.germany:before{background-position:0 -1430px}i.flag.dj:before,i.flag.djibouti:before{background-position:0 -1456px}i.flag.denmark:before,i.flag.dk:before{background-position:0 -1482px}i.flag.dm:before,i.flag.dominica:before{background-position:0 -1508px}i.flag.do:before,i.flag.dominican.republic:before{background-position:0 -1534px}i.flag.algeria:before,i.flag.dz:before{background-position:0 -1560px}i.flag.ec:before,i.flag.ecuador:before{background-position:0 -1586px}i.flag.ee:before,i.flag.estonia:before{background-position:0 -1612px}i.flag.eg:before,i.flag.egypt:before{background-position:0 -1638px}i.flag.eh:before,i.flag.western.sahara:before{background-position:0 -1664px}i.flag.england:before,i.flag.gb.eng:before{background-position:0 -1690px}i.flag.er:before,i.flag.eritrea:before{background-position:0 -1716px}i.flag.es:before,i.flag.spain:before{background-position:0 -1742px}i.flag.et:before,i.flag.ethiopia:before{background-position:0 -1768px}i.flag.eu:before,i.flag.european.union:before{background-position:0 -1794px}i.flag.fi:before,i.flag.finland:before{background-position:0 -1846px}i.flag.fiji:before,i.flag.fj:before{background-position:0 -1872px}i.flag.falkland.islands:before,i.flag.fk:before{background-position:0 -1898px}i.flag.fm:before,i.flag.micronesia:before{background-position:0 -1924px}i.flag.faroe.islands:before,i.flag.fo:before{background-position:0 -1950px}i.flag.fr:before,i.flag.france:before{background-position:0 -1976px}i.flag.ga:before,i.flag.gabon:before{background-position:-36px 0}i.flag.gb:before,i.flag.uk:before,i.flag.united.kingdom:before{background-position:-36px -26px}i.flag.gd:before,i.flag.grenada:before{background-position:-36px -52px}i.flag.ge:before,i.flag.georgia:before{background-position:-36px -78px}i.flag.french.guiana:before,i.flag.gf:before{background-position:-36px -104px}i.flag.gh:before,i.flag.ghana:before{background-position:-36px -130px}i.flag.gi:before,i.flag.gibraltar:before{background-position:-36px -156px}i.flag.gl:before,i.flag.greenland:before{background-position:-36px -182px}i.flag.gambia:before,i.flag.gm:before{background-position:-36px -208px}i.flag.gn:before,i.flag.guinea:before{background-position:-36px -234px}i.flag.gp:before,i.flag.guadeloupe:before{background-position:-36px -260px}i.flag.equatorial.guinea:before,i.flag.gq:before{background-position:-36px -286px}i.flag.gr:before,i.flag.greece:before{background-position:-36px -312px}i.flag.gs:before,i.flag.sandwich.islands:before{background-position:-36px -338px}i.flag.gt:before,i.flag.guatemala:before{background-position:-36px -364px}i.flag.gu:before,i.flag.guam:before{background-position:-36px -390px}i.flag.guinea-bissau:before,i.flag.gw:before{background-position:-36px -416px}i.flag.guyana:before,i.flag.gy:before{background-position:-36px -442px}i.flag.hk:before,i.flag.hong.kong:before{background-position:-36px -468px}i.flag.heard.island:before,i.flag.hm:before{background-position:-36px -494px}i.flag.hn:before,i.flag.honduras:before{background-position:-36px -520px}i.flag.croatia:before,i.flag.hr:before{background-position:-36px -546px}i.flag.haiti:before,i.flag.ht:before{background-position:-36px -572px}i.flag.hu:before,i.flag.hungary:before{background-position:-36px -598px}i.flag.id:before,i.flag.indonesia:before{background-position:-36px -624px}i.flag.ie:before,i.flag.ireland:before{background-position:-36px -650px}i.flag.il:before,i.flag.israel:before{background-position:-36px -676px}i.flag.in:before,i.flag.india:before{background-position:-36px -702px}i.flag.indian.ocean.territory:before,i.flag.io:before{background-position:-36px -728px}i.flag.iq:before,i.flag.iraq:before{background-position:-36px -754px}i.flag.ir:before,i.flag.iran:before{background-position:-36px -780px}i.flag.iceland:before,i.flag.is:before{background-position:-36px -806px}i.flag.it:before,i.flag.italy:before{background-position:-36px -832px}i.flag.jamaica:before,i.flag.jm:before{background-position:-36px -858px}i.flag.jo:before,i.flag.jordan:before{background-position:-36px -884px}i.flag.japan:before,i.flag.jp:before{background-position:-36px -910px}i.flag.ke:before,i.flag.kenya:before{background-position:-36px -936px}i.flag.kg:before,i.flag.kyrgyzstan:before{background-position:-36px -962px}i.flag.cambodia:before,i.flag.kh:before{background-position:-36px -988px}i.flag.ki:before,i.flag.kiribati:before{background-position:-36px -1014px}i.flag.comoros:before,i.flag.km:before{background-position:-36px -1040px}i.flag.kn:before,i.flag.saint.kitts.and.nevis:before{background-position:-36px -1066px}i.flag.kp:before,i.flag.north.korea:before{background-position:-36px -1092px}i.flag.kr:before,i.flag.south.korea:before{background-position:-36px -1118px}i.flag.kuwait:before,i.flag.kw:before{background-position:-36px -1144px}i.flag.cayman.islands:before,i.flag.ky:before{background-position:-36px -1170px}i.flag.kazakhstan:before,i.flag.kz:before{background-position:-36px -1196px}i.flag.la:before,i.flag.laos:before{background-position:-36px -1222px}i.flag.lb:before,i.flag.lebanon:before{background-position:-36px -1248px}i.flag.lc:before,i.flag.saint.lucia:before{background-position:-36px -1274px}i.flag.li:before,i.flag.liechtenstein:before{background-position:-36px -1300px}i.flag.lk:before,i.flag.sri.lanka:before{background-position:-36px -1326px}i.flag.liberia:before,i.flag.lr:before{background-position:-36px -1352px}i.flag.lesotho:before,i.flag.ls:before{background-position:-36px -1378px}i.flag.lithuania:before,i.flag.lt:before{background-position:-36px -1404px}i.flag.lu:before,i.flag.luxembourg:before{background-position:-36px -1430px}i.flag.latvia:before,i.flag.lv:before{background-position:-36px -1456px}i.flag.libya:before,i.flag.ly:before{background-position:-36px -1482px}i.flag.ma:before,i.flag.morocco:before{background-position:-36px -1508px}i.flag.mc:before,i.flag.monaco:before{background-position:-36px -1534px}i.flag.md:before,i.flag.moldova:before{background-position:-36px -1560px}i.flag.me:before,i.flag.montenegro:before{background-position:-36px -1586px}i.flag.madagascar:before,i.flag.mg:before{background-position:-36px -1613px}i.flag.marshall.islands:before,i.flag.mh:before{background-position:-36px -1639px}i.flag.macedonia:before,i.flag.mk:before{background-position:-36px -1665px}i.flag.mali:before,i.flag.ml:before{background-position:-36px -1691px}i.flag.burma:before,i.flag.mm:before,i.flag.myanmar:before{background-position:-73px -1821px}i.flag.mn:before,i.flag.mongolia:before{background-position:-36px -1743px}i.flag.macau:before,i.flag.mo:before{background-position:-36px -1769px}i.flag.mp:before,i.flag.northern.mariana.islands:before{background-position:-36px -1795px}i.flag.martinique:before,i.flag.mq:before{background-position:-36px -1821px}i.flag.mauritania:before,i.flag.mr:before{background-position:-36px -1847px}i.flag.montserrat:before,i.flag.ms:before{background-position:-36px -1873px}i.flag.malta:before,i.flag.mt:before{background-position:-36px -1899px}i.flag.mauritius:before,i.flag.mu:before{background-position:-36px -1925px}i.flag.maldives:before,i.flag.mv:before{background-position:-36px -1951px}i.flag.malawi:before,i.flag.mw:before{background-position:-36px -1977px}i.flag.mexico:before,i.flag.mx:before{background-position:-72px 0}i.flag.malaysia:before,i.flag.my:before{background-position:-72px -26px}i.flag.mozambique:before,i.flag.mz:before{background-position:-72px -52px}i.flag.na:before,i.flag.namibia:before{background-position:-72px -78px}i.flag.nc:before,i.flag.new.caledonia:before{background-position:-72px -104px}i.flag.ne:before,i.flag.niger:before{background-position:-72px -130px}i.flag.nf:before,i.flag.norfolk.island:before{background-position:-72px -156px}i.flag.ng:before,i.flag.nigeria:before{background-position:-72px -182px}i.flag.ni:before,i.flag.nicaragua:before{background-position:-72px -208px}i.flag.netherlands:before,i.flag.nl:before{background-position:-72px -234px}i.flag.no:before,i.flag.norway:before{background-position:-72px -260px}i.flag.nepal:before,i.flag.np:before{background-position:-72px -286px}i.flag.nauru:before,i.flag.nr:before{background-position:-72px -312px}i.flag.niue:before,i.flag.nu:before{background-position:-72px -338px}i.flag.new.zealand:before,i.flag.nz:before{background-position:-72px -364px}i.flag.om:before,i.flag.oman:before{background-position:-72px -390px}i.flag.pa:before,i.flag.panama:before{background-position:-72px -416px}i.flag.pe:before,i.flag.peru:before{background-position:-72px -442px}i.flag.french.polynesia:before,i.flag.pf:before{background-position:-72px -468px}i.flag.new.guinea:before,i.flag.pg:before{background-position:-72px -494px}i.flag.ph:before,i.flag.philippines:before{background-position:-72px -520px}i.flag.pakistan:before,i.flag.pk:before{background-position:-72px -546px}i.flag.pl:before,i.flag.poland:before{background-position:-72px -572px}i.flag.pm:before,i.flag.saint.pierre:before{background-position:-72px -598px}i.flag.pitcairn.islands:before,i.flag.pn:before{background-position:-72px -624px}i.flag.pr:before,i.flag.puerto.rico:before{background-position:-72px -650px}i.flag.palestine:before,i.flag.ps:before{background-position:-72px -676px}i.flag.portugal:before,i.flag.pt:before{background-position:-72px -702px}i.flag.palau:before,i.flag.pw:before{background-position:-72px -728px}i.flag.paraguay:before,i.flag.py:before{background-position:-72px -754px}i.flag.qa:before,i.flag.qatar:before{background-position:-72px -780px}i.flag.re:before,i.flag.reunion:before{background-position:-72px -806px}i.flag.ro:before,i.flag.romania:before{background-position:-72px -832px}i.flag.rs:before,i.flag.serbia:before{background-position:-72px -858px}i.flag.ru:before,i.flag.russia:before{background-position:-72px -884px}i.flag.rw:before,i.flag.rwanda:before{background-position:-72px -910px}i.flag.sa:before,i.flag.saudi.arabia:before{background-position:-72px -936px}i.flag.sb:before,i.flag.solomon.islands:before{background-position:-72px -962px}i.flag.sc:before,i.flag.seychelles:before{background-position:-72px -988px}i.flag.gb.sct:before,i.flag.scotland:before{background-position:-72px -1014px}i.flag.sd:before,i.flag.sudan:before{background-position:-72px -1040px}i.flag.se:before,i.flag.sweden:before{background-position:-72px -1066px}i.flag.sg:before,i.flag.singapore:before{background-position:-72px -1092px}i.flag.saint.helena:before,i.flag.sh:before{background-position:-72px -1118px}i.flag.si:before,i.flag.slovenia:before{background-position:-72px -1144px}i.flag.jan.mayen:before,i.flag.sj:before,i.flag.svalbard:before{background-position:-72px -1170px}i.flag.sk:before,i.flag.slovakia:before{background-position:-72px -1196px}i.flag.sierra.leone:before,i.flag.sl:before{background-position:-72px -1222px}i.flag.san.marino:before,i.flag.sm:before{background-position:-72px -1248px}i.flag.senegal:before,i.flag.sn:before{background-position:-72px -1274px}i.flag.so:before,i.flag.somalia:before{background-position:-72px -1300px}i.flag.sr:before,i.flag.suriname:before{background-position:-72px -1326px}i.flag.sao.tome:before,i.flag.st:before{background-position:-72px -1352px}i.flag.el.salvador:before,i.flag.sv:before{background-position:-72px -1378px}i.flag.sy:before,i.flag.syria:before{background-position:-72px -1404px}i.flag.swaziland:before,i.flag.sz:before{background-position:-72px -1430px}i.flag.caicos.islands:before,i.flag.tc:before{background-position:-72px -1456px}i.flag.chad:before,i.flag.td:before{background-position:-72px -1482px}i.flag.french.territories:before,i.flag.tf:before{background-position:-72px -1508px}i.flag.tg:before,i.flag.togo:before{background-position:-72px -1534px}i.flag.th:before,i.flag.thailand:before{background-position:-72px -1560px}i.flag.tajikistan:before,i.flag.tj:before{background-position:-72px -1586px}i.flag.tk:before,i.flag.tokelau:before{background-position:-72px -1612px}i.flag.timorleste:before,i.flag.tl:before{background-position:-72px -1638px}i.flag.tm:before,i.flag.turkmenistan:before{background-position:-72px -1664px}i.flag.tn:before,i.flag.tunisia:before{background-position:-72px -1690px}i.flag.to:before,i.flag.tonga:before{background-position:-72px -1716px}i.flag.tr:before,i.flag.turkey:before{background-position:-72px -1742px}i.flag.trinidad:before,i.flag.tt:before{background-position:-72px -1768px}i.flag.tuvalu:before,i.flag.tv:before{background-position:-72px -1794px}i.flag.taiwan:before,i.flag.tw:before{background-position:-72px -1820px}i.flag.tanzania:before,i.flag.tz:before{background-position:-72px -1846px}i.flag.ua:before,i.flag.ukraine:before{background-position:-72px -1872px}i.flag.ug:before,i.flag.uganda:before{background-position:-72px -1898px}i.flag.um:before,i.flag.us.minor.islands:before{background-position:-72px -1924px}i.flag.america:before,i.flag.united.states:before,i.flag.us:before{background-position:-72px -1950px}i.flag.uruguay:before,i.flag.uy:before{background-position:-72px -1976px}i.flag.uz:before,i.flag.uzbekistan:before{background-position:-108px 0}i.flag.va:before,i.flag.vatican.city:before{background-position:-108px -26px}i.flag.saint.vincent:before,i.flag.vc:before{background-position:-108px -52px}i.flag.ve:before,i.flag.venezuela:before{background-position:-108px -78px}i.flag.british.virgin.islands:before,i.flag.vg:before{background-position:-108px -104px}i.flag.us.virgin.islands:before,i.flag.vi:before{background-position:-108px -130px}i.flag.vietnam:before,i.flag.vn:before{background-position:-108px -156px}i.flag.vanuatu:before,i.flag.vu:before{background-position:-108px -182px}i.flag.gb.wls:before,i.flag.wales:before{background-position:-108px -208px}i.flag.wallis.and.futuna:before,i.flag.wf:before{background-position:-108px -234px}i.flag.samoa:before,i.flag.ws:before{background-position:-108px -260px}i.flag.ye:before,i.flag.yemen:before{background-position:-108px -286px}i.flag.mayotte:before,i.flag.yt:before{background-position:-108px -312px}i.flag.south.africa:before,i.flag.za:before{background-position:-108px -338px}i.flag.zambia:before,i.flag.zm:before{background-position:-108px -364px}i.flag.zimbabwe:before,i.flag.zw:before{background-position:-108px -390px}
/*!
 * # Semantic UI - Header
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.header{border:none;margin:calc(2rem - .14286em) 0 1rem;padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:400;line-height:1.28571429em;text-transform:none;color:rgba(0,0,0,.87)}.ui.header:first-child{margin-top:-.14285714em}.ui.header:last-child{margin-bottom:0}.ui.header .sub.header{display:block;font-weight:400;padding:0;margin:0;line-height:1.2em;color:rgba(0,0,0,.6)}.ui.header>.icon{display:table-cell;opacity:1;font-size:1.5em;padding-top:0;vertical-align:middle}.ui.header .icon:only-child{display:inline-block;padding:0;margin-right:.75rem}.ui.header>.image:not(.icon),.ui.header>img{display:inline-block;margin-top:.14285714em;width:2.5em;height:auto;vertical-align:middle}.ui.header>.image:not(.icon):only-child,.ui.header>img:only-child{margin-right:.75rem}.ui.header .content{display:inline-block;vertical-align:top}.ui.header>.icon+.content,.ui.header>.image+.content,.ui.header>img+.content{padding-left:.75rem;vertical-align:middle}.ui.header>.icon+.content{display:table-cell}.ui.header .ui.label{font-size:"";margin-left:.5rem;vertical-align:middle}.ui.header+p{margin-top:0}h1.ui.header{font-size:28px;font-size:2rem}h2.ui.header{font-size:23.999px;font-size:1.71428571rem}h3.ui.header{font-size:18px;font-size:1.28571429rem}h4.ui.header{font-size:14.999px;font-size:1.07142857rem}h5.ui.header{font-size:14px;font-size:1rem}h1.ui.header .sub.header,h2.ui.header .sub.header{font-size:15.999px;font-size:1.14285714rem}h3.ui.header .sub.header,h4.ui.header .sub.header{font-size:14px;font-size:1rem}h5.ui.header .sub.header{font-size:13px;font-size:.92857143rem}.ui.huge.header{min-height:1em;font-size:2em}.ui.large.header{font-size:1.71428571em}.ui.medium.header{font-size:1.28571429em}.ui.small.header{font-size:1.07142857em}.ui.tiny.header{font-size:1em}.ui.huge.header .sub.header,.ui.large.header .sub.header{font-size:15.999px;font-size:1.14285714rem}.ui.header .sub.header,.ui.small.header .sub.header{font-size:14px;font-size:1rem}.ui.tiny.header .sub.header{font-size:13px;font-size:.92857143rem}.ui.sub.header{padding:0;margin-bottom:.14285714rem;font-weight:700;text-transform:uppercase;color:""}.ui.small.sub.header{font-size:.78571429em}.ui.sub.header{font-size:.85714286em}.ui.large.sub.header{font-size:.92857143em}.ui.huge.sub.header{font-size:1em}.ui.icon.header{display:inline-block;text-align:center;margin:2rem 0 1rem}.ui.icon.header:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.icon.header:first-child{margin-top:0}.ui.icon.header .icon{float:none;width:auto;height:auto;line-height:1;font-size:3em;margin:0 auto .5rem;opacity:1}.ui.icon.header .content,.ui.icon.header .icon{display:block;padding:0}.ui.icon.header .circular.icon,.ui.icon.header .square.icon{font-size:2em}.ui.block.icon.header .icon{margin-bottom:0}.ui.icon.header.aligned{margin-left:auto;margin-right:auto;display:block}.ui.disabled.header{opacity:.45}.ui.inverted.header{color:#fff}.ui.inverted.header .sub.header{color:hsla(0,0%,100%,.8)}.ui.inverted.attached.header{border-color:transparent}.ui.inverted.attached.header,.ui.inverted.block.header{background:#545454 linear-gradient(transparent,rgba(0,0,0,.05));box-shadow:none}.ui.inverted.block.header{border-bottom:none}.ui.red.header{color:#db2828!important}a.ui.red.header:hover{color:#d01919!important}.ui.red.dividing.header{border-bottom:2px solid #db2828}.ui.inverted.red.header{color:#ff695e!important}a.ui.inverted.red.header:hover{color:#ff5144!important}.ui.orange.header{color:#f2711c!important}a.ui.orange.header:hover{color:#f26202!important}.ui.orange.dividing.header{border-bottom:2px solid #f2711c}.ui.inverted.orange.header{color:#ff851b!important}a.ui.inverted.orange.header:hover{color:#ff7701!important}.ui.olive.header{color:#b5cc18!important}a.ui.olive.header:hover{color:#a7bd0d!important}.ui.olive.dividing.header{border-bottom:2px solid #b5cc18}.ui.inverted.olive.header{color:#d9e778!important}a.ui.inverted.olive.header:hover{color:#d8ea5c!important}.ui.yellow.header{color:#fbbd08!important}a.ui.yellow.header:hover{color:#eaae00!important}.ui.yellow.dividing.header{border-bottom:2px solid #fbbd08}.ui.inverted.yellow.header{color:#ffe21f!important}a.ui.inverted.yellow.header:hover{color:#ffdf05!important}.ui.green.header{color:#21ba45!important}a.ui.green.header:hover{color:#16ab39!important}.ui.green.dividing.header{border-bottom:2px solid #21ba45}.ui.inverted.green.header{color:#2ecc40!important}a.ui.inverted.green.header:hover{color:#22be34!important}.ui.teal.header{color:#00b5ad!important}a.ui.teal.header:hover{color:#009c95!important}.ui.teal.dividing.header{border-bottom:2px solid #00b5ad}.ui.inverted.teal.header{color:#6dffff!important}a.ui.inverted.teal.header:hover{color:#54ffff!important}.ui.blue.header{color:#2c6a9e!important}a.ui.blue.header:hover{color:#215d8f!important}.ui.blue.dividing.header{border-bottom:2px solid #2c6a9e}.ui.inverted.blue.header{color:#5391c5!important}a.ui.inverted.blue.header:hover{color:#3a85c5!important}.ui.violet.header{color:#6435c9!important}a.ui.violet.header:hover{color:#5829bb!important}.ui.violet.dividing.header{border-bottom:2px solid #6435c9}.ui.inverted.violet.header{color:#a291fb!important}a.ui.inverted.violet.header:hover{color:#8a73ff!important}.ui.purple.header{color:#a333c8!important}a.ui.purple.header:hover{color:#9627ba!important}.ui.purple.dividing.header{border-bottom:2px solid #a333c8}.ui.inverted.purple.header{color:#dc73ff!important}a.ui.inverted.purple.header:hover{color:#d65aff!important}.ui.pink.header{color:#e03997!important}a.ui.pink.header:hover{color:#e61a8d!important}.ui.pink.dividing.header{border-bottom:2px solid #e03997}.ui.inverted.pink.header{color:#ff8edf!important}a.ui.inverted.pink.header:hover{color:#ff74d8!important}.ui.brown.header{color:#a5673f!important}a.ui.brown.header:hover{color:#975b33!important}.ui.brown.dividing.header{border-bottom:2px solid #a5673f}.ui.inverted.brown.header{color:#d67c1c!important}a.ui.inverted.brown.header:hover{color:#c86f11!important}.ui.grey.header{color:#767676!important}a.ui.grey.header:hover{color:#838383!important}.ui.grey.dividing.header{border-bottom:2px solid #767676}.ui.inverted.grey.header{color:#dcddde!important}a.ui.inverted.grey.header:hover{color:#cfd0d2!important}.ui.left.aligned.header{text-align:left}.ui.right.aligned.header{text-align:right}.ui.center.aligned.header,.ui.centered.header{text-align:center}.ui.justified.header{text-align:justify}.ui.justified.header:after{display:inline-block;content:"";width:100%}.ui.floated.header,.ui[class*="left floated"].header{float:left;margin-top:0;margin-right:.5em}.ui[class*="right floated"].header{float:right;margin-top:0;margin-left:.5em}.ui.fitted.header{padding:0}.ui.dividing.header{border-bottom:1px solid rgba(34,36,38,.15)}.ui.dividing.header,.ui.dividing.header .sub.header{padding-bottom:.21428571rem}.ui.dividing.header .icon{margin-bottom:0}.ui.inverted.dividing.header{border-bottom-color:hsla(0,0%,100%,.1)}.ui.block.header{background:#f3f4f5;padding:.78571429rem 1rem;box-shadow:none;border:1px solid #d4d4d5;border-radius:.21428571rem}.ui.tiny.block.header{font-size:12px;font-size:.85714286rem}.ui.small.block.header{font-size:13px;font-size:.92857143rem}.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:14px;font-size:1rem}.ui.large.block.header{font-size:15.999px;font-size:1.14285714rem}.ui.huge.block.header{font-size:20px;font-size:1.42857143rem}.ui.attached.header{background:#fff;padding:.78571429rem 1rem;margin-left:-1px;margin-right:-1px;box-shadow:none;border:1px solid #d4d4d5}.ui.attached.block.header{background:#f3f4f5}.ui.attached:not(.top):not(.bottom).header{margin-top:0;margin-bottom:0;border-top:none;border-radius:0}.ui.top.attached.header{margin-bottom:0;border-radius:.21428571rem .21428571rem 0 0}.ui.bottom.attached.header{margin-top:0;border-top:none;border-radius:0 0 .21428571rem .21428571rem}.ui.tiny.attached.header{font-size:.85714286em}.ui.small.attached.header{font-size:.92857143em}.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:1em}.ui.large.attached.header{font-size:1.14285714em}.ui.huge.attached.header{font-size:1.42857143em}.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6){font-size:1.28571429em}
/*!
 * # Semantic UI - Icon
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */@font-face{font-family:Icons;src:url(/assets/fonts/icons.eot);src:url(/assets/fonts/icons.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/icons.woff2) format("woff2"),url(/assets/fonts/icons.woff) format("woff"),url(/assets/fonts/icons.ttf) format("truetype"),url(/assets/fonts/icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon{display:inline-block;opacity:1;margin:0 .25rem 0 0;width:1.18em;height:1em;font-family:Icons;font-style:normal;font-weight:400;text-decoration:inherit;text-align:center;speak:none;font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-backface-visibility:hidden;backface-visibility:hidden}i.icon:before{background:none!important}i.icon.loading{height:1em;line-height:1;-webkit-animation:icon-loading 2s linear infinite;animation:icon-loading 2s linear infinite}@-webkit-keyframes icon-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes icon-loading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}i.emphasized.icon,i.icon.active,i.icon.hover{opacity:1!important}i.disabled.icon{opacity:.45!important}i.fitted.icon{width:auto;margin:0!important}i.link.icon,i.link.icons{cursor:pointer;opacity:.8;transition:opacity .1s ease}i.link.icon:hover,i.link.icons:hover{opacity:1!important}i.circular.icon{border-radius:500em!important;line-height:1!important;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1);width:2em!important;height:2em!important}i.circular.inverted.icon{border:none;box-shadow:none}i.flipped.icon,i.horizontally.flipped.icon{transform:scaleX(-1)}i.vertically.flipped.icon{transform:scaleY(-1)}i.clockwise.rotated.icon,i.right.rotated.icon,i.rotated.icon{transform:rotate(90deg)}i.counterclockwise.rotated.icon,i.left.rotated.icon{transform:rotate(-90deg)}i.bordered.icon{line-height:1;vertical-align:baseline;width:2em;height:2em;padding:.5em 0!important;box-shadow:inset 0 0 0 .1em rgba(0,0,0,.1)}i.bordered.inverted.icon{border:none;box-shadow:none}i.inverted.bordered.icon,i.inverted.circular.icon{background-color:#1b1c1d!important;color:#fff!important}i.inverted.icon{color:#fff}i.red.icon{color:#db2828!important}i.inverted.red.icon{color:#ff695e!important}i.inverted.bordered.red.icon,i.inverted.circular.red.icon{background-color:#db2828!important;color:#fff!important}i.orange.icon{color:#f2711c!important}i.inverted.orange.icon{color:#ff851b!important}i.inverted.bordered.orange.icon,i.inverted.circular.orange.icon{background-color:#f2711c!important;color:#fff!important}i.yellow.icon{color:#fbbd08!important}i.inverted.yellow.icon{color:#ffe21f!important}i.inverted.bordered.yellow.icon,i.inverted.circular.yellow.icon{background-color:#fbbd08!important;color:#fff!important}i.olive.icon{color:#b5cc18!important}i.inverted.olive.icon{color:#d9e778!important}i.inverted.bordered.olive.icon,i.inverted.circular.olive.icon{background-color:#b5cc18!important;color:#fff!important}i.green.icon{color:#21ba45!important}i.inverted.green.icon{color:#2ecc40!important}i.inverted.bordered.green.icon,i.inverted.circular.green.icon{background-color:#21ba45!important;color:#fff!important}i.teal.icon{color:#00b5ad!important}i.inverted.teal.icon{color:#6dffff!important}i.inverted.bordered.teal.icon,i.inverted.circular.teal.icon{background-color:#00b5ad!important;color:#fff!important}i.blue.icon{color:#2c6a9e!important}i.inverted.blue.icon{color:#5391c5!important}i.inverted.bordered.blue.icon,i.inverted.circular.blue.icon{background-color:#2c6a9e!important;color:#fff!important}i.violet.icon{color:#6435c9!important}i.inverted.violet.icon{color:#a291fb!important}i.inverted.bordered.violet.icon,i.inverted.circular.violet.icon{background-color:#6435c9!important;color:#fff!important}i.purple.icon{color:#a333c8!important}i.inverted.purple.icon{color:#dc73ff!important}i.inverted.bordered.purple.icon,i.inverted.circular.purple.icon{background-color:#a333c8!important;color:#fff!important}i.pink.icon{color:#e03997!important}i.inverted.pink.icon{color:#ff8edf!important}i.inverted.bordered.pink.icon,i.inverted.circular.pink.icon{background-color:#e03997!important;color:#fff!important}i.brown.icon{color:#a5673f!important}i.inverted.brown.icon{color:#d67c1c!important}i.inverted.bordered.brown.icon,i.inverted.circular.brown.icon{background-color:#a5673f!important;color:#fff!important}i.grey.icon{color:#767676!important}i.inverted.grey.icon{color:#dcddde!important}i.inverted.bordered.grey.icon,i.inverted.circular.grey.icon{background-color:#767676!important;color:#fff!important}i.black.icon{color:#1b1c1d!important}i.inverted.black.icon{color:#545454!important}i.inverted.bordered.black.icon,i.inverted.circular.black.icon{background-color:#1b1c1d!important;color:#fff!important}i.mini.icon,i.mini.icons{line-height:1;font-size:.4em}i.tiny.icon,i.tiny.icons{line-height:1;font-size:.5em}i.small.icon,i.small.icons{line-height:1;font-size:.75em}i.icon,i.icons{font-size:1em}i.large.icon,i.large.icons{line-height:1;vertical-align:middle;font-size:1.5em}i.big.icon,i.big.icons{line-height:1;vertical-align:middle;font-size:2em}i.huge.icon,i.huge.icons{line-height:1;vertical-align:middle;font-size:4em}i.massive.icon,i.massive.icons{line-height:1;vertical-align:middle;font-size:8em}i.icons{display:inline-block;position:relative;line-height:1}i.icons .icon{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);margin:0}i.icons .icon:first-child{position:static;width:auto;height:auto;vertical-align:top;transform:none;margin-right:.25rem}i.icons .corner.icon{top:auto;left:auto;right:0;bottom:0;transform:none;font-size:.45em;text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}i.icons .top.right.corner.icon{top:0;left:auto;right:0;bottom:auto}i.icons .top.left.corner.icon{top:0;left:0;right:auto;bottom:auto}i.icons .bottom.left.corner.icon{top:auto;left:0;right:auto;bottom:0}i.icons .bottom.right.corner.icon{top:auto;left:auto;right:0;bottom:0}i.icons .inverted.corner.icon{text-shadow:-1px -1px 0 #1b1c1d,1px -1px 0 #1b1c1d,-1px 1px 0 #1b1c1d,1px 1px 0 #1b1c1d}i.icon.linkedin.in:before{content:"\f0e1"}i.icon.zoom.in:before{content:"\f00e"}i.icon.zoom.out:before{content:"\f010"}i.icon.sign.in:before{content:"\f2f6"}i.icon.in.cart:before{content:"\f218"}i.icon.log.out:before,i.icon.sign.out:before{content:"\f2f5"}i.icon.\35 00px:before{content:"\f26e"}i.icon.accessible.icon:before{content:"\f368"}i.icon.accusoft:before{content:"\f369"}i.icon.address.book:before{content:"\f2b9"}i.icon.address.card:before{content:"\f2bb"}i.icon.adjust:before{content:"\f042"}i.icon.adn:before{content:"\f170"}i.icon.adversal:before{content:"\f36a"}i.icon.affiliatetheme:before{content:"\f36b"}i.icon.algolia:before{content:"\f36c"}i.icon.align.center:before{content:"\f037"}i.icon.align.justify:before{content:"\f039"}i.icon.align.left:before{content:"\f036"}i.icon.align.right:before{content:"\f038"}i.icon.amazon:before{content:"\f270"}i.icon.amazon.pay:before{content:"\f42c"}i.icon.ambulance:before{content:"\f0f9"}i.icon.american.sign.language.interpreting:before{content:"\f2a3"}i.icon.amilia:before{content:"\f36d"}i.icon.anchor:before{content:"\f13d"}i.icon.android:before{content:"\f17b"}i.icon.angellist:before{content:"\f209"}i.icon.angle.double.down:before{content:"\f103"}i.icon.angle.double.left:before{content:"\f100"}i.icon.angle.double.right:before{content:"\f101"}i.icon.angle.double.up:before{content:"\f102"}i.icon.angle.down:before{content:"\f107"}i.icon.angle.left:before{content:"\f104"}i.icon.angle.right:before{content:"\f105"}i.icon.angle.up:before{content:"\f106"}i.icon.angrycreative:before{content:"\f36e"}i.icon.angular:before{content:"\f420"}i.icon.app.store:before{content:"\f36f"}i.icon.app.store.ios:before{content:"\f370"}i.icon.apper:before{content:"\f371"}i.icon.apple:before{content:"\f179"}i.icon.apple.pay:before{content:"\f415"}i.icon.archive:before{content:"\f187"}i.icon.arrow.alternate.circle.down:before{content:"\f358"}i.icon.arrow.alternate.circle.left:before{content:"\f359"}i.icon.arrow.alternate.circle.right:before{content:"\f35a"}i.icon.arrow.alternate.circle.up:before{content:"\f35b"}i.icon.arrow.circle.down:before{content:"\f0ab"}i.icon.arrow.circle.left:before{content:"\f0a8"}i.icon.arrow.circle.right:before{content:"\f0a9"}i.icon.arrow.circle.up:before{content:"\f0aa"}i.icon.arrow.down:before{content:"\f063"}i.icon.arrow.left:before{content:"\f060"}i.icon.arrow.right:before{content:"\f061"}i.icon.arrow.up:before{content:"\f062"}i.icon.arrows.alternate:before{content:"\f0b2"}i.icon.arrows.alternate.horizontal:before{content:"\f337"}i.icon.arrows.alternate.vertical:before{content:"\f338"}i.icon.assistive.listening.systems:before{content:"\f2a2"}i.icon.asterisk:before{content:"\f069"}i.icon.asymmetrik:before{content:"\f372"}i.icon.at:before{content:"\f1fa"}i.icon.audible:before{content:"\f373"}i.icon.audio.description:before{content:"\f29e"}i.icon.autoprefixer:before{content:"\f41c"}i.icon.avianex:before{content:"\f374"}i.icon.aviato:before{content:"\f421"}i.icon.aws:before{content:"\f375"}i.icon.backward:before{content:"\f04a"}i.icon.balance.scale:before{content:"\f24e"}i.icon.ban:before{content:"\f05e"}i.icon.band.aid:before{content:"\f462"}i.icon.bandcamp:before{content:"\f2d5"}i.icon.barcode:before{content:"\f02a"}i.icon.bars:before{content:"\f0c9"}i.icon.baseball.ball:before{content:"\f433"}i.icon.basketball.ball:before{content:"\f434"}i.icon.bath:before{content:"\f2cd"}i.icon.battery.empty:before{content:"\f244"}i.icon.battery.full:before{content:"\f240"}i.icon.battery.half:before{content:"\f242"}i.icon.battery.quarter:before{content:"\f243"}i.icon.battery.three.quarters:before{content:"\f241"}i.icon.bed:before{content:"\f236"}i.icon.beer:before{content:"\f0fc"}i.icon.behance:before{content:"\f1b4"}i.icon.behance.square:before{content:"\f1b5"}i.icon.bell:before{content:"\f0f3"}i.icon.bell.slash:before{content:"\f1f6"}i.icon.bicycle:before{content:"\f206"}i.icon.bimobject:before{content:"\f378"}i.icon.binoculars:before{content:"\f1e5"}i.icon.birthday.cake:before{content:"\f1fd"}i.icon.bitbucket:before{content:"\f171"}i.icon.bitcoin:before{content:"\f379"}i.icon.bity:before{content:"\f37a"}i.icon.black.tie:before{content:"\f27e"}i.icon.blackberry:before{content:"\f37b"}i.icon.blind:before{content:"\f29d"}i.icon.blogger:before{content:"\f37c"}i.icon.blogger.b:before{content:"\f37d"}i.icon.bluetooth:before{content:"\f293"}i.icon.bluetooth.b:before{content:"\f294"}i.icon.bold:before{content:"\f032"}i.icon.bolt:before{content:"\f0e7"}i.icon.bomb:before{content:"\f1e2"}i.icon.book:before{content:"\f02d"}i.icon.bookmark:before{content:"\f02e"}i.icon.bowling.ball:before{content:"\f436"}i.icon.box:before{content:"\f466"}i.icon.boxes:before{content:"\f468"}i.icon.braille:before{content:"\f2a1"}i.icon.briefcase:before{content:"\f0b1"}i.icon.btc:before{content:"\f15a"}i.icon.bug:before{content:"\f188"}i.icon.building:before{content:"\f1ad"}i.icon.bullhorn:before{content:"\f0a1"}i.icon.bullseye:before{content:"\f140"}i.icon.buromobelexperte:before{content:"\f37f"}i.icon.bus:before{content:"\f207"}i.icon.buysellads:before{content:"\f20d"}i.icon.calculator:before{content:"\f1ec"}i.icon.calendar:before{content:"\f133"}i.icon.calendar.alternate:before{content:"\f073"}i.icon.calendar.check:before{content:"\f274"}i.icon.calendar.minus:before{content:"\f272"}i.icon.calendar.plus:before{content:"\f271"}i.icon.calendar.times:before{content:"\f273"}i.icon.camera:before{content:"\f030"}i.icon.camera.retro:before{content:"\f083"}i.icon.car:before{content:"\f1b9"}i.icon.caret.down:before{content:"\f0d7"}i.icon.caret.left:before{content:"\f0d9"}i.icon.caret.right:before{content:"\f0da"}i.icon.caret.square.down:before{content:"\f150"}i.icon.caret.square.left:before{content:"\f191"}i.icon.caret.square.right:before{content:"\f152"}i.icon.caret.square.up:before{content:"\f151"}i.icon.caret.up:before{content:"\f0d8"}i.icon.cart.arrow.down:before{content:"\f218"}i.icon.cart.plus:before{content:"\f217"}i.icon.cc.amazon.pay:before{content:"\f42d"}i.icon.cc.amex:before{content:"\f1f3"}i.icon.cc.apple.pay:before{content:"\f416"}i.icon.cc.diners.club:before{content:"\f24c"}i.icon.cc.discover:before{content:"\f1f2"}i.icon.cc.jcb:before{content:"\f24b"}i.icon.cc.mastercard:before{content:"\f1f1"}i.icon.cc.paypal:before{content:"\f1f4"}i.icon.cc.stripe:before{content:"\f1f5"}i.icon.cc.visa:before{content:"\f1f0"}i.icon.centercode:before{content:"\f380"}i.icon.certificate:before{content:"\f0a3"}i.icon.chart.area:before{content:"\f1fe"}i.icon.chart.bar:before{content:"\f080"}i.icon.chart.line:before{content:"\f201"}i.icon.chart.pie:before{content:"\f200"}i.icon.check:before{content:"\f00c"}i.icon.check.circle:before{content:"\f058"}i.icon.check.square:before{content:"\f14a"}i.icon.chess:before{content:"\f439"}i.icon.chess.bishop:before{content:"\f43a"}i.icon.chess.board:before{content:"\f43c"}i.icon.chess.king:before{content:"\f43f"}i.icon.chess.knight:before{content:"\f441"}i.icon.chess.pawn:before{content:"\f443"}i.icon.chess.queen:before{content:"\f445"}i.icon.chess.rook:before{content:"\f447"}i.icon.chevron.circle.down:before{content:"\f13a"}i.icon.chevron.circle.left:before{content:"\f137"}i.icon.chevron.circle.right:before{content:"\f138"}i.icon.chevron.circle.up:before{content:"\f139"}i.icon.chevron.down:before{content:"\f078"}i.icon.chevron.left:before{content:"\f053"}i.icon.chevron.right:before{content:"\f054"}i.icon.chevron.up:before{content:"\f077"}i.icon.child:before{content:"\f1ae"}i.icon.chrome:before{content:"\f268"}i.icon.circle:before{content:"\f111"}i.icon.circle.notch:before{content:"\f1ce"}i.icon.clipboard:before{content:"\f328"}i.icon.clipboard.check:before{content:"\f46c"}i.icon.clipboard.list:before{content:"\f46d"}i.icon.clock:before{content:"\f017"}i.icon.clone:before{content:"\f24d"}i.icon.closed.captioning:before{content:"\f20a"}i.icon.cloud:before{content:"\f0c2"}i.icon.cloudscale:before{content:"\f383"}i.icon.cloudsmith:before{content:"\f384"}i.icon.cloudversify:before{content:"\f385"}i.icon.code:before{content:"\f121"}i.icon.code.branch:before{content:"\f126"}i.icon.codepen:before{content:"\f1cb"}i.icon.codiepie:before{content:"\f284"}i.icon.coffee:before{content:"\f0f4"}i.icon.cog:before{content:"\f013"}i.icon.cogs:before{content:"\f085"}i.icon.columns:before{content:"\f0db"}i.icon.comment:before{content:"\f075"}i.icon.comment.alternate:before{content:"\f27a"}i.icon.comments:before{content:"\f086"}i.icon.compass:before{content:"\f14e"}i.icon.compress:before{content:"\f066"}i.icon.connectdevelop:before{content:"\f20e"}i.icon.contao:before{content:"\f26d"}i.icon.copy:before{content:"\f0c5"}i.icon.copyright:before{content:"\f1f9"}i.icon.cpanel:before{content:"\f388"}i.icon.creative.commons:before{content:"\f25e"}i.icon.credit.card:before{content:"\f09d"}i.icon.crop:before{content:"\f125"}i.icon.crosshairs:before{content:"\f05b"}i.icon.css3:before{content:"\f13c"}i.icon.css3.alternate:before{content:"\f38b"}i.icon.cube:before{content:"\f1b2"}i.icon.cubes:before{content:"\f1b3"}i.icon.cut:before{content:"\f0c4"}i.icon.cuttlefish:before{content:"\f38c"}i.icon.d.and.d:before{content:"\f38d"}i.icon.dashcube:before{content:"\f210"}i.icon.database:before{content:"\f1c0"}i.icon.deaf:before{content:"\f2a4"}i.icon.delicious:before{content:"\f1a5"}i.icon.deploydog:before{content:"\f38e"}i.icon.deskpro:before{content:"\f38f"}i.icon.desktop:before{content:"\f108"}i.icon.deviantart:before{content:"\f1bd"}i.icon.digg:before{content:"\f1a6"}i.icon.digital.ocean:before{content:"\f391"}i.icon.discord:before{content:"\f392"}i.icon.discourse:before{content:"\f393"}i.icon.dna:before{content:"\f471"}i.icon.dochub:before{content:"\f394"}i.icon.docker:before{content:"\f395"}i.icon.dollar.sign:before{content:"\f155"}i.icon.dolly:before{content:"\f472"}i.icon.dolly.flatbed:before{content:"\f474"}i.icon.dot.circle:before{content:"\f192"}i.icon.download:before{content:"\f019"}i.icon.draft2digital:before{content:"\f396"}i.icon.dribbble:before{content:"\f17d"}i.icon.dribbble.square:before{content:"\f397"}i.icon.dropbox:before{content:"\f16b"}i.icon.drupal:before{content:"\f1a9"}i.icon.dyalog:before{content:"\f399"}i.icon.earlybirds:before{content:"\f39a"}i.icon.edge:before{content:"\f282"}i.icon.edit:before{content:"\f044"}i.icon.eject:before{content:"\f052"}i.icon.elementor:before{content:"\f430"}i.icon.ellipsis.horizontal:before{content:"\f141"}i.icon.ellipsis.vertical:before{content:"\f142"}i.icon.ember:before{content:"\f423"}i.icon.empire:before{content:"\f1d1"}i.icon.envelope:before{content:"\f0e0"}i.icon.envelope.open:before{content:"\f2b6"}i.icon.envelope.square:before{content:"\f199"}i.icon.envira:before{content:"\f299"}i.icon.eraser:before{content:"\f12d"}i.icon.erlang:before{content:"\f39d"}i.icon.ethereum:before{content:"\f42e"}i.icon.etsy:before{content:"\f2d7"}i.icon.euro.sign:before{content:"\f153"}i.icon.exchange.alternate:before{content:"\f362"}i.icon.exclamation:before{content:"\f12a"}i.icon.exclamation.circle:before{content:"\f06a"}i.icon.exclamation.triangle:before{content:"\f071"}i.icon.expand:before{content:"\f065"}i.icon.expand.arrows.alternate:before{content:"\f31e"}i.icon.expeditedssl:before{content:"\f23e"}i.icon.external.alternate:before{content:"\f35d"}i.icon.external.square.alternate:before{content:"\f360"}i.icon.eye:before{content:"\f06e"}i.icon.eye.dropper:before{content:"\f1fb"}i.icon.eye.slash:before{content:"\f070"}i.icon.facebook:before{content:"\f09a"}i.icon.facebook.f:before{content:"\f39e"}i.icon.facebook.messenger:before{content:"\f39f"}i.icon.facebook.square:before{content:"\f082"}i.icon.fast.backward:before{content:"\f049"}i.icon.fast.forward:before{content:"\f050"}i.icon.fax:before{content:"\f1ac"}i.icon.female:before{content:"\f182"}i.icon.fighter.jet:before{content:"\f0fb"}i.icon.file:before{content:"\f15b"}i.icon.file.alternate:before{content:"\f15c"}i.icon.file.archive:before{content:"\f1c6"}i.icon.file.audio:before{content:"\f1c7"}i.icon.file.code:before{content:"\f1c9"}i.icon.file.excel:before{content:"\f1c3"}i.icon.file.image:before{content:"\f1c5"}i.icon.file.pdf:before{content:"\f1c1"}i.icon.file.powerpoint:before{content:"\f1c4"}i.icon.file.video:before{content:"\f1c8"}i.icon.file.word:before{content:"\f1c2"}i.icon.film:before{content:"\f008"}i.icon.filter:before{content:"\f0b0"}i.icon.fire:before{content:"\f06d"}i.icon.fire.extinguisher:before{content:"\f134"}i.icon.firefox:before{content:"\f269"}i.icon.first.aid:before{content:"\f479"}i.icon.first.order:before{content:"\f2b0"}i.icon.firstdraft:before{content:"\f3a1"}i.icon.flag:before{content:"\f024"}i.icon.flag.checkered:before{content:"\f11e"}i.icon.flask:before{content:"\f0c3"}i.icon.flickr:before{content:"\f16e"}i.icon.flipboard:before{content:"\f44d"}i.icon.fly:before{content:"\f417"}i.icon.folder:before{content:"\f07b"}i.icon.folder.open:before{content:"\f07c"}i.icon.font:before{content:"\f031"}i.icon.font.awesome:before{content:"\f2b4"}i.icon.font.awesome.alternate:before{content:"\f35c"}i.icon.font.awesome.flag:before{content:"\f425"}i.icon.fonticons:before{content:"\f280"}i.icon.fonticons.fi:before{content:"\f3a2"}i.icon.football.ball:before{content:"\f44e"}i.icon.fort.awesome:before{content:"\f286"}i.icon.fort.awesome.alternate:before{content:"\f3a3"}i.icon.forumbee:before{content:"\f211"}i.icon.forward:before{content:"\f04e"}i.icon.foursquare:before{content:"\f180"}i.icon.free.code.camp:before{content:"\f2c5"}i.icon.freebsd:before{content:"\f3a4"}i.icon.frown:before{content:"\f119"}i.icon.futbol:before{content:"\f1e3"}i.icon.gamepad:before{content:"\f11b"}i.icon.gavel:before{content:"\f0e3"}i.icon.gem:before{content:"\f3a5"}i.icon.genderless:before{content:"\f22d"}i.icon.get.pocket:before{content:"\f265"}i.icon.gg:before{content:"\f260"}i.icon.gg.circle:before{content:"\f261"}i.icon.gift:before{content:"\f06b"}i.icon.git:before{content:"\f1d3"}i.icon.git.square:before{content:"\f1d2"}i.icon.github:before{content:"\f09b"}i.icon.github.alternate:before{content:"\f113"}i.icon.github.square:before{content:"\f092"}i.icon.gitkraken:before{content:"\f3a6"}i.icon.gitlab:before{content:"\f296"}i.icon.gitter:before{content:"\f426"}i.icon.glass.martini:before{content:"\f000"}i.icon.glide:before{content:"\f2a5"}i.icon.glide.g:before{content:"\f2a6"}i.icon.globe:before{content:"\f0ac"}i.icon.gofore:before{content:"\f3a7"}i.icon.golf.ball:before{content:"\f450"}i.icon.goodreads:before{content:"\f3a8"}i.icon.goodreads.g:before{content:"\f3a9"}i.icon.google:before{content:"\f1a0"}i.icon.google.drive:before{content:"\f3aa"}i.icon.google.play:before{content:"\f3ab"}i.icon.google.plus:before{content:"\f2b3"}i.icon.google.plus.g:before{content:"\f0d5"}i.icon.google.plus.square:before{content:"\f0d4"}i.icon.google.wallet:before{content:"\f1ee"}i.icon.graduation.cap:before{content:"\f19d"}i.icon.gratipay:before{content:"\f184"}i.icon.grav:before{content:"\f2d6"}i.icon.gripfire:before{content:"\f3ac"}i.icon.grunt:before{content:"\f3ad"}i.icon.gulp:before{content:"\f3ae"}i.icon.h.square:before{content:"\f0fd"}i.icon.hacker.news:before{content:"\f1d4"}i.icon.hacker.news.square:before{content:"\f3af"}i.icon.hand.lizard:before{content:"\f258"}i.icon.hand.paper:before{content:"\f256"}i.icon.hand.peace:before{content:"\f25b"}i.icon.hand.point.down:before{content:"\f0a7"}i.icon.hand.point.left:before{content:"\f0a5"}i.icon.hand.point.right:before{content:"\f0a4"}i.icon.hand.point.up:before{content:"\f0a6"}i.icon.hand.pointer:before{content:"\f25a"}i.icon.hand.rock:before{content:"\f255"}i.icon.hand.scissors:before{content:"\f257"}i.icon.hand.spock:before{content:"\f259"}i.icon.handshake:before{content:"\f2b5"}i.icon.hashtag:before{content:"\f292"}i.icon.hdd:before{content:"\f0a0"}i.icon.heading:before{content:"\f1dc"}i.icon.headphones:before{content:"\f025"}i.icon.heart:before{content:"\f004"}i.icon.heartbeat:before{content:"\f21e"}i.icon.hips:before{content:"\f452"}i.icon.hire.a.helper:before{content:"\f3b0"}i.icon.history:before{content:"\f1da"}i.icon.hockey.puck:before{content:"\f453"}i.icon.home:before{content:"\f015"}i.icon.hooli:before{content:"\f427"}i.icon.hospital:before{content:"\f0f8"}i.icon.hospital.symbol:before{content:"\f47e"}i.icon.hotjar:before{content:"\f3b1"}i.icon.hourglass:before{content:"\f254"}i.icon.hourglass.end:before{content:"\f253"}i.icon.hourglass.half:before{content:"\f252"}i.icon.hourglass.start:before{content:"\f251"}i.icon.houzz:before{content:"\f27c"}i.icon.html5:before{content:"\f13b"}i.icon.hubspot:before{content:"\f3b2"}i.icon.i.cursor:before{content:"\f246"}i.icon.id.badge:before{content:"\f2c1"}i.icon.id.card:before{content:"\f2c2"}i.icon.image:before{content:"\f03e"}i.icon.images:before{content:"\f302"}i.icon.imdb:before{content:"\f2d8"}i.icon.inbox:before{content:"\f01c"}i.icon.indent:before{content:"\f03c"}i.icon.industry:before{content:"\f275"}i.icon.info:before{content:"\f129"}i.icon.info.circle:before{content:"\f05a"}i.icon.instagram:before{content:"\f16d"}i.icon.internet.explorer:before{content:"\f26b"}i.icon.ioxhost:before{content:"\f208"}i.icon.italic:before{content:"\f033"}i.icon.itunes:before{content:"\f3b4"}i.icon.itunes.note:before{content:"\f3b5"}i.icon.jenkins:before{content:"\f3b6"}i.icon.joget:before{content:"\f3b7"}i.icon.joomla:before{content:"\f1aa"}i.icon.js:before{content:"\f3b8"}i.icon.js.square:before{content:"\f3b9"}i.icon.jsfiddle:before{content:"\f1cc"}i.icon.key:before{content:"\f084"}i.icon.keyboard:before{content:"\f11c"}i.icon.keycdn:before{content:"\f3ba"}i.icon.kickstarter:before{content:"\f3bb"}i.icon.kickstarter.k:before{content:"\f3bc"}i.icon.korvue:before{content:"\f42f"}i.icon.language:before{content:"\f1ab"}i.icon.laptop:before{content:"\f109"}i.icon.laravel:before{content:"\f3bd"}i.icon.lastfm:before{content:"\f202"}i.icon.lastfm.square:before{content:"\f203"}i.icon.leaf:before{content:"\f06c"}i.icon.leanpub:before{content:"\f212"}i.icon.lemon:before{content:"\f094"}i.icon.less:before{content:"\f41d"}i.icon.level.down.alternate:before{content:"\f3be"}i.icon.level.up.alternate:before{content:"\f3bf"}i.icon.life.ring:before{content:"\f1cd"}i.icon.lightbulb:before{content:"\f0eb"}i.icon.linechat:before{content:"\f3c0"}i.icon.linkedin:before{content:"\f08c"}i.icon.linkedin.alt:before{content:"\f0e1"}i.icon.linode:before{content:"\f2b8"}i.icon.linux:before{content:"\f17c"}i.icon.lira.sign:before{content:"\f195"}i.icon.list:before{content:"\f03a"}i.icon.list.alternate:before{content:"\f022"}i.icon.list.ol:before{content:"\f0cb"}i.icon.list.ul:before{content:"\f0ca"}i.icon.location.arrow:before{content:"\f124"}i.icon.lock:before{content:"\f023"}i.icon.lock.open:before{content:"\f3c1"}i.icon.long.arrow.alternate.down:before{content:"\f309"}i.icon.long.arrow.alternate.left:before{content:"\f30a"}i.icon.long.arrow.alternate.right:before{content:"\f30b"}i.icon.long.arrow.alternate.up:before{content:"\f30c"}i.icon.low.vision:before{content:"\f2a8"}i.icon.lyft:before{content:"\f3c3"}i.icon.magento:before{content:"\f3c4"}i.icon.magic:before{content:"\f0d0"}i.icon.magnet:before{content:"\f076"}i.icon.male:before{content:"\f183"}i.icon.map:before{content:"\f279"}i.icon.map.marker:before{content:"\f041"}i.icon.map.marker.alternate:before{content:"\f3c5"}i.icon.map.pin:before{content:"\f276"}i.icon.map.signs:before{content:"\f277"}i.icon.mars:before{content:"\f222"}i.icon.mars.double:before{content:"\f227"}i.icon.mars.stroke:before{content:"\f229"}i.icon.mars.stroke.horizontal:before{content:"\f22b"}i.icon.mars.stroke.vertical:before{content:"\f22a"}i.icon.maxcdn:before{content:"\f136"}i.icon.medapps:before{content:"\f3c6"}i.icon.medium:before{content:"\f23a"}i.icon.medium.m:before{content:"\f3c7"}i.icon.medkit:before{content:"\f0fa"}i.icon.medrt:before{content:"\f3c8"}i.icon.meetup:before{content:"\f2e0"}i.icon.meh:before{content:"\f11a"}i.icon.mercury:before{content:"\f223"}i.icon.microchip:before{content:"\f2db"}i.icon.microphone:before{content:"\f130"}i.icon.microphone.slash:before{content:"\f131"}i.icon.microsoft:before{content:"\f3ca"}i.icon.minus:before{content:"\f068"}i.icon.minus.circle:before{content:"\f056"}i.icon.minus.square:before{content:"\f146"}i.icon.mix:before{content:"\f3cb"}i.icon.mixcloud:before{content:"\f289"}i.icon.mizuni:before{content:"\f3cc"}i.icon.mobile:before{content:"\f10b"}i.icon.mobile.alternate:before{content:"\f3cd"}i.icon.modx:before{content:"\f285"}i.icon.monero:before{content:"\f3d0"}i.icon.money.bill.alternate:before{content:"\f3d1"}i.icon.moon:before{content:"\f186"}i.icon.motorcycle:before{content:"\f21c"}i.icon.mouse.pointer:before{content:"\f245"}i.icon.music:before{content:"\f001"}i.icon.napster:before{content:"\f3d2"}i.icon.neuter:before{content:"\f22c"}i.icon.newspaper:before{content:"\f1ea"}i.icon.nintendo.switch:before{content:"\f418"}i.icon.node:before{content:"\f419"}i.icon.node.js:before{content:"\f3d3"}i.icon.npm:before{content:"\f3d4"}i.icon.ns8:before{content:"\f3d5"}i.icon.nutritionix:before{content:"\f3d6"}i.icon.object.group:before{content:"\f247"}i.icon.object.ungroup:before{content:"\f248"}i.icon.odnoklassniki:before{content:"\f263"}i.icon.odnoklassniki.square:before{content:"\f264"}i.icon.opencart:before{content:"\f23d"}i.icon.openid:before{content:"\f19b"}i.icon.opera:before{content:"\f26a"}i.icon.optin.monster:before{content:"\f23c"}i.icon.osi:before{content:"\f41a"}i.icon.outdent:before{content:"\f03b"}i.icon.page4:before{content:"\f3d7"}i.icon.pagelines:before{content:"\f18c"}i.icon.paint.brush:before{content:"\f1fc"}i.icon.palfed:before{content:"\f3d8"}i.icon.pallet:before{content:"\f482"}i.icon.paper.plane:before{content:"\f1d8"}i.icon.paperclip:before{content:"\f0c6"}i.icon.paragraph:before{content:"\f1dd"}i.icon.paste:before{content:"\f0ea"}i.icon.patreon:before{content:"\f3d9"}i.icon.pause:before{content:"\f04c"}i.icon.pause.circle:before{content:"\f28b"}i.icon.paw:before{content:"\f1b0"}i.icon.paypal:before{content:"\f1ed"}i.icon.pen.square:before{content:"\f14b"}i.icon.pencil.alternate:before{content:"\f303"}i.icon.percent:before{content:"\f295"}i.icon.periscope:before{content:"\f3da"}i.icon.phabricator:before{content:"\f3db"}i.icon.phoenix.framework:before{content:"\f3dc"}i.icon.phone:before{content:"\f095"}i.icon.phone.square:before{content:"\f098"}i.icon.phone.volume:before{content:"\f2a0"}i.icon.php:before{content:"\f457"}i.icon.pied.piper:before{content:"\f2ae"}i.icon.pied.piper.alternate:before{content:"\f1a8"}i.icon.pied.piper.pp:before{content:"\f1a7"}i.icon.pills:before{content:"\f484"}i.icon.pinterest:before{content:"\f0d2"}i.icon.pinterest.p:before{content:"\f231"}i.icon.pinterest.square:before{content:"\f0d3"}i.icon.plane:before{content:"\f072"}i.icon.play:before{content:"\f04b"}i.icon.play.circle:before{content:"\f144"}i.icon.playstation:before{content:"\f3df"}i.icon.plug:before{content:"\f1e6"}i.icon.plus:before{content:"\f067"}i.icon.plus.circle:before{content:"\f055"}i.icon.plus.square:before{content:"\f0fe"}i.icon.podcast:before{content:"\f2ce"}i.icon.pound.sign:before{content:"\f154"}i.icon.power.off:before{content:"\f011"}i.icon.print:before{content:"\f02f"}i.icon.product.hunt:before{content:"\f288"}i.icon.pushed:before{content:"\f3e1"}i.icon.puzzle.piece:before{content:"\f12e"}i.icon.python:before{content:"\f3e2"}i.icon.qq:before{content:"\f1d6"}i.icon.qrcode:before{content:"\f029"}i.icon.question:before{content:"\f128"}i.icon.question.circle:before{content:"\f059"}i.icon.quidditch:before{content:"\f458"}i.icon.quinscape:before{content:"\f459"}i.icon.quora:before{content:"\f2c4"}i.icon.quote.left:before{content:"\f10d"}i.icon.quote.right:before{content:"\f10e"}i.icon.random:before{content:"\f074"}i.icon.ravelry:before{content:"\f2d9"}i.icon.react:before{content:"\f41b"}i.icon.rebel:before{content:"\f1d0"}i.icon.recycle:before{content:"\f1b8"}i.icon.redriver:before{content:"\f3e3"}i.icon.reddit:before{content:"\f1a1"}i.icon.reddit.alien:before{content:"\f281"}i.icon.reddit.square:before{content:"\f1a2"}i.icon.redo:before{content:"\f01e"}i.icon.redo.alternate:before{content:"\f2f9"}i.icon.registered:before{content:"\f25d"}i.icon.rendact:before{content:"\f3e4"}i.icon.renren:before{content:"\f18b"}i.icon.reply:before{content:"\f3e5"}i.icon.reply.all:before{content:"\f122"}i.icon.replyd:before{content:"\f3e6"}i.icon.resolving:before{content:"\f3e7"}i.icon.retweet:before{content:"\f079"}i.icon.road:before{content:"\f018"}i.icon.rocket:before{content:"\f135"}i.icon.rocketchat:before{content:"\f3e8"}i.icon.rockrms:before{content:"\f3e9"}i.icon.rss:before{content:"\f09e"}i.icon.rss.square:before{content:"\f143"}i.icon.ruble.sign:before{content:"\f158"}i.icon.rupee.sign:before{content:"\f156"}i.icon.safari:before{content:"\f267"}i.icon.sass:before{content:"\f41e"}i.icon.save:before{content:"\f0c7"}i.icon.schlix:before{content:"\f3ea"}i.icon.scribd:before{content:"\f28a"}i.icon.search:before{content:"\f002"}i.icon.search.minus:before{content:"\f010"}i.icon.search.plus:before{content:"\f00e"}i.icon.searchengin:before{content:"\f3eb"}i.icon.sellcast:before{content:"\f2da"}i.icon.sellsy:before{content:"\f213"}i.icon.server:before{content:"\f233"}i.icon.servicestack:before{content:"\f3ec"}i.icon.share:before{content:"\f064"}i.icon.share.alternate:before{content:"\f1e0"}i.icon.share.alternate.square:before{content:"\f1e1"}i.icon.share.square:before{content:"\f14d"}i.icon.shekel.sign:before{content:"\f20b"}i.icon.shield.alternate:before{content:"\f3ed"}i.icon.ship:before{content:"\f21a"}i.icon.shipping.fast:before{content:"\f48b"}i.icon.shirtsinbulk:before{content:"\f214"}i.icon.shopping.bag:before{content:"\f290"}i.icon.shopping.basket:before{content:"\f291"}i.icon.shopping.cart:before{content:"\f07a"}i.icon.shower:before{content:"\f2cc"}i.icon.sign.language:before{content:"\f2a7"}i.icon.signal:before{content:"\f012"}i.icon.simplybuilt:before{content:"\f215"}i.icon.sistrix:before{content:"\f3ee"}i.icon.sitemap:before{content:"\f0e8"}i.icon.skyatlas:before{content:"\f216"}i.icon.skype:before{content:"\f17e"}i.icon.slack:before{content:"\f198"}i.icon.slack.hash:before{content:"\f3ef"}i.icon.sliders.horizontal:before{content:"\f1de"}i.icon.slideshare:before{content:"\f1e7"}i.icon.smile:before{content:"\f118"}i.icon.snapchat:before{content:"\f2ab"}i.icon.snapchat.ghost:before{content:"\f2ac"}i.icon.snapchat.square:before{content:"\f2ad"}i.icon.snowflake:before{content:"\f2dc"}i.icon.sort:before{content:"\f0dc"}i.icon.sort.alphabet.down:before{content:"\f15d"}i.icon.sort.alphabet.up:before{content:"\f15e"}i.icon.sort.amount.down:before{content:"\f160"}i.icon.sort.amount.up:before{content:"\f161"}i.icon.sort.down:before{content:"\f0dd"}i.icon.sort.numeric.down:before{content:"\f162"}i.icon.sort.numeric.up:before{content:"\f163"}i.icon.sort.up:before{content:"\f0de"}i.icon.soundcloud:before{content:"\f1be"}i.icon.space.shuttle:before{content:"\f197"}i.icon.speakap:before{content:"\f3f3"}i.icon.spinner:before{content:"\f110"}i.icon.spotify:before{content:"\f1bc"}i.icon.square:before{content:"\f0c8"}i.icon.square.full:before{content:"\f45c"}i.icon.stack.exchange:before{content:"\f18d"}i.icon.stack.overflow:before{content:"\f16c"}i.icon.star:before{content:"\f005"}i.icon.star.half:before{content:"\f089"}i.icon.staylinked:before{content:"\f3f5"}i.icon.steam:before{content:"\f1b6"}i.icon.steam.square:before{content:"\f1b7"}i.icon.steam.symbol:before{content:"\f3f6"}i.icon.step.backward:before{content:"\f048"}i.icon.step.forward:before{content:"\f051"}i.icon.stethoscope:before{content:"\f0f1"}i.icon.sticker.mule:before{content:"\f3f7"}i.icon.sticky.note:before{content:"\f249"}i.icon.stop:before{content:"\f04d"}i.icon.stop.circle:before{content:"\f28d"}i.icon.stopwatch:before{content:"\f2f2"}i.icon.strava:before{content:"\f428"}i.icon.street.view:before{content:"\f21d"}i.icon.strikethrough:before{content:"\f0cc"}i.icon.stripe:before{content:"\f429"}i.icon.stripe.s:before{content:"\f42a"}i.icon.studiovinari:before{content:"\f3f8"}i.icon.stumbleupon:before{content:"\f1a4"}i.icon.stumbleupon.circle:before{content:"\f1a3"}i.icon.subscript:before{content:"\f12c"}i.icon.subway:before{content:"\f239"}i.icon.suitcase:before{content:"\f0f2"}i.icon.sun:before{content:"\f185"}i.icon.superpowers:before{content:"\f2dd"}i.icon.superscript:before{content:"\f12b"}i.icon.supple:before{content:"\f3f9"}i.icon.sync:before{content:"\f021"}i.icon.sync.alternate:before{content:"\f2f1"}i.icon.syringe:before{content:"\f48e"}i.icon.table:before{content:"\f0ce"}i.icon.table.tennis:before{content:"\f45d"}i.icon.tablet:before{content:"\f10a"}i.icon.tablet.alternate:before{content:"\f3fa"}i.icon.tachometer.alternate:before{content:"\f3fd"}i.icon.tag:before{content:"\f02b"}i.icon.tags:before{content:"\f02c"}i.icon.tasks:before{content:"\f0ae"}i.icon.taxi:before{content:"\f1ba"}i.icon.telegram:before{content:"\f2c6"}i.icon.telegram.plane:before{content:"\f3fe"}i.icon.tencent.weibo:before{content:"\f1d5"}i.icon.terminal:before{content:"\f120"}i.icon.text.height:before{content:"\f034"}i.icon.text.width:before{content:"\f035"}i.icon.th:before{content:"\f00a"}i.icon.th.large:before{content:"\f009"}i.icon.th.list:before{content:"\f00b"}i.icon.themeisle:before{content:"\f2b2"}i.icon.thermometer:before{content:"\f491"}i.icon.thermometer.empty:before{content:"\f2cb"}i.icon.thermometer.full:before{content:"\f2c7"}i.icon.thermometer.half:before{content:"\f2c9"}i.icon.thermometer.quarter:before{content:"\f2ca"}i.icon.thermometer.three.quarters:before{content:"\f2c8"}i.icon.thumbs.down:before{content:"\f165"}i.icon.thumbs.up:before{content:"\f164"}i.icon.thumbtack:before{content:"\f08d"}i.icon.ticket.alternate:before{content:"\f3ff"}i.icon.times:before{content:"\f00d"}i.icon.times.circle:before{content:"\f057"}i.icon.tint:before{content:"\f043"}i.icon.toggle.off:before{content:"\f204"}i.icon.toggle.on:before{content:"\f205"}i.icon.trademark:before{content:"\f25c"}i.icon.train:before{content:"\f238"}i.icon.transgender:before{content:"\f224"}i.icon.transgender.alternate:before{content:"\f225"}i.icon.trash:before{content:"\f1f8"}i.icon.trash.alternate:before{content:"\f2ed"}i.icon.tree:before{content:"\f1bb"}i.icon.trello:before{content:"\f181"}i.icon.tripadvisor:before{content:"\f262"}i.icon.trophy:before{content:"\f091"}i.icon.truck:before{content:"\f0d1"}i.icon.tty:before{content:"\f1e4"}i.icon.tumblr:before{content:"\f173"}i.icon.tumblr.square:before{content:"\f174"}i.icon.tv:before{content:"\f26c"}i.icon.twitch:before{content:"\f1e8"}i.icon.twitter:before{content:"\f099"}i.icon.twitter.square:before{content:"\f081"}i.icon.typo3:before{content:"\f42b"}i.icon.uber:before{content:"\f402"}i.icon.uikit:before{content:"\f403"}i.icon.umbrella:before{content:"\f0e9"}i.icon.underline:before{content:"\f0cd"}i.icon.undo:before{content:"\f0e2"}i.icon.undo.alternate:before{content:"\f2ea"}i.icon.uniregistry:before{content:"\f404"}i.icon.universal.access:before{content:"\f29a"}i.icon.university:before{content:"\f19c"}i.icon.unlink:before{content:"\f127"}i.icon.unlock:before{content:"\f09c"}i.icon.unlock.alternate:before{content:"\f13e"}i.icon.untappd:before{content:"\f405"}i.icon.upload:before{content:"\f093"}i.icon.usb:before{content:"\f287"}i.icon.user:before{content:"\f007"}i.icon.user.circle:before{content:"\f2bd"}i.icon.user.md:before{content:"\f0f0"}i.icon.user.plus:before{content:"\f234"}i.icon.user.secret:before{content:"\f21b"}i.icon.user.times:before{content:"\f235"}i.icon.users:before{content:"\f0c0"}i.icon.ussunnah:before{content:"\f407"}i.icon.utensil.spoon:before{content:"\f2e5"}i.icon.utensils:before{content:"\f2e7"}i.icon.vaadin:before{content:"\f408"}i.icon.venus:before{content:"\f221"}i.icon.venus.double:before{content:"\f226"}i.icon.venus.mars:before{content:"\f228"}i.icon.viacoin:before{content:"\f237"}i.icon.viadeo:before{content:"\f2a9"}i.icon.viadeo.square:before{content:"\f2aa"}i.icon.viber:before{content:"\f409"}i.icon.video:before{content:"\f03d"}i.icon.vimeo:before{content:"\f40a"}i.icon.vimeo.square:before{content:"\f194"}i.icon.vimeo.v:before{content:"\f27d"}i.icon.vine:before{content:"\f1ca"}i.icon.vk:before{content:"\f189"}i.icon.vnv:before{content:"\f40b"}i.icon.volleyball.ball:before{content:"\f45f"}i.icon.volume.down:before{content:"\f027"}i.icon.volume.off:before{content:"\f026"}i.icon.volume.up:before{content:"\f028"}i.icon.vuejs:before{content:"\f41f"}i.icon.warehouse:before{content:"\f494"}i.icon.weibo:before{content:"\f18a"}i.icon.weight:before{content:"\f496"}i.icon.weixin:before{content:"\f1d7"}i.icon.whatsapp:before{content:"\f232"}i.icon.whatsapp.square:before{content:"\f40c"}i.icon.wheelchair:before{content:"\f193"}i.icon.whmcs:before{content:"\f40d"}i.icon.wifi:before{content:"\f1eb"}i.icon.wikipedia.w:before{content:"\f266"}i.icon.window.close:before{content:"\f410"}i.icon.window.maximize:before{content:"\f2d0"}i.icon.window.minimize:before{content:"\f2d1"}i.icon.window.restore:before{content:"\f2d2"}i.icon.windows:before{content:"\f17a"}i.icon.won.sign:before{content:"\f159"}i.icon.wordpress:before{content:"\f19a"}i.icon.wordpress.simple:before{content:"\f411"}i.icon.wpbeginner:before{content:"\f297"}i.icon.wpexplorer:before{content:"\f2de"}i.icon.wpforms:before{content:"\f298"}i.icon.wrench:before{content:"\f0ad"}i.icon.xbox:before{content:"\f412"}i.icon.xing:before{content:"\f168"}i.icon.xing.square:before{content:"\f169"}i.icon.y.combinator:before{content:"\f23b"}i.icon.yahoo:before{content:"\f19e"}i.icon.yandex:before{content:"\f413"}i.icon.yandex.international:before{content:"\f414"}i.icon.yelp:before{content:"\f1e9"}i.icon.yen.sign:before{content:"\f157"}i.icon.yoast:before{content:"\f2b1"}i.icon.youtube:before{content:"\f167"}i.icon.youtube.square:before{content:"\f431"}i.icon.chess.rock:before{content:"\f447"}i.icon.ordered.list:before{content:"\f0cb"}i.icon.unordered.list:before{content:"\f0ca"}i.icon.user.doctor:before{content:"\f0f0"}i.icon.shield:before{content:"\f3ed"}i.icon.puzzle:before{content:"\f12e"}i.icon.credit.card.amazon.pay:before{content:"\f42d"}i.icon.credit.card.american.express:before{content:"\f1f3"}i.icon.credit.card.diners.club:before{content:"\f24c"}i.icon.credit.card.discover:before{content:"\f1f2"}i.icon.credit.card.jcb:before{content:"\f24b"}i.icon.credit.card.mastercard:before{content:"\f1f1"}i.icon.credit.card.paypal:before{content:"\f1f4"}i.icon.credit.card.stripe:before{content:"\f1f5"}i.icon.credit.card.visa:before{content:"\f1f0"}i.icon.add.circle:before{content:"\f055"}i.icon.add.square:before{content:"\f0fe"}i.icon.add.to.calendar:before{content:"\f271"}i.icon.add.to.cart:before{content:"\f217"}i.icon.add.user:before{content:"\f234"}i.icon.add:before{content:"\f067"}i.icon.alarm.mute:before{content:"\f1f6"}i.icon.alarm:before{content:"\f0f3"}i.icon.ald:before,i.icon.als:before{content:"\f2a2"}i.icon.american.express.card:before,i.icon.american.express:before,i.icon.amex:before{content:"\f1f3"}i.icon.announcement:before{content:"\f0a1"}i.icon.area.chart:before,i.icon.area.graph:before{content:"\f1fe"}i.icon.arrow.down.cart:before{content:"\f218"}i.icon.asexual:before{content:"\f22d"}i.icon.asl.interpreting:before,i.icon.asl:before{content:"\f2a3"}i.icon.assistive.listening.devices:before{content:"\f2a2"}i.icon.attach:before{content:"\f0c6"}i.icon.attention:before{content:"\f06a"}i.icon.balance:before{content:"\f24e"}i.icon.bar:before{content:"\f0fc"}i.icon.bathtub:before{content:"\f2cd"}i.icon.battery.four:before{content:"\f240"}i.icon.battery.high:before{content:"\f241"}i.icon.battery.low:before{content:"\f243"}i.icon.battery.medium:before{content:"\f242"}i.icon.battery.one:before{content:"\f243"}i.icon.battery.three:before{content:"\f241"}i.icon.battery.two:before{content:"\f242"}i.icon.battery.zero:before{content:"\f244"}i.icon.birthday:before{content:"\f1fd"}i.icon.block.layout:before{content:"\f009"}i.icon.bluetooth.alternative:before{content:"\f294"}i.icon.broken.chain:before{content:"\f127"}i.icon.browser:before{content:"\f022"}i.icon.call.square:before{content:"\f098"}i.icon.call:before{content:"\f095"}i.icon.cancel:before{content:"\f00d"}i.icon.cart:before{content:"\f07a"}i.icon.cc:before{content:"\f20a"}i.icon.chain:before{content:"\f0c1"}i.icon.chat:before{content:"\f075"}i.icon.checked.calendar:before{content:"\f274"}i.icon.checkmark:before{content:"\f00c"}i.icon.circle.notched:before{content:"\f1ce"}i.icon.close:before{content:"\f00d"}i.icon.cny:before{content:"\f157"}i.icon.cocktail:before{content:"\f000"}i.icon.commenting:before{content:"\f27a"}i.icon.computer:before{content:"\f108"}i.icon.configure:before{content:"\f0ad"}i.icon.content:before{content:"\f0c9"}i.icon.deafness:before{content:"\f2a4"}i.icon.delete.calendar:before{content:"\f273"}i.icon.delete:before{content:"\f00d"}i.icon.detective:before{content:"\f21b"}i.icon.diners.club.card:before,i.icon.diners.club:before{content:"\f24c"}i.icon.discover.card:before,i.icon.discover:before{content:"\f1f2"}i.icon.discussions:before{content:"\f086"}i.icon.doctor:before{content:"\f0f0"}i.icon.dollar:before{content:"\f155"}i.icon.dont:before{content:"\f05e"}i.icon.dribble:before{content:"\f17d"}i.icon.drivers.license:before{content:"\f2c2"}i.icon.dropdown:before{content:"\f0d7"}i.icon.eercast:before{content:"\f2da"}i.icon.emergency:before{content:"\f0f9"}i.icon.envira.gallery:before{content:"\f299"}i.icon.erase:before{content:"\f12d"}i.icon.eur:before,i.icon.euro:before{content:"\f153"}i.icon.eyedropper:before{content:"\f1fb"}i.icon.fa:before{content:"\f2b4"}i.icon.factory:before{content:"\f275"}i.icon.favorite:before{content:"\f005"}i.icon.feed:before{content:"\f09e"}i.icon.female.homosexual:before{content:"\f226"}i.icon.file.text:before{content:"\f15c"}i.icon.find:before{content:"\f1e5"}i.icon.first.aid:before{content:"\f0fa"}i.icon.five.hundred.pixels:before{content:"\f26e"}i.icon.fork:before{content:"\f126"}i.icon.game:before{content:"\f11b"}i.icon.gay:before{content:"\f227"}i.icon.gbp:before{content:"\f154"}i.icon.gittip:before{content:"\f184"}i.icon.google.plus.circle:before,i.icon.google.plus.official:before{content:"\f2b3"}i.icon.grab:before{content:"\f255"}i.icon.graduation:before{content:"\f19d"}i.icon.grid.layout:before{content:"\f00a"}i.icon.group:before{content:"\f0c0"}i.icon.h:before{content:"\f0fd"}i.icon.hand.victory:before{content:"\f25b"}i.icon.handicap:before{content:"\f193"}i.icon.hard.of.hearing:before{content:"\f2a4"}i.icon.header:before{content:"\f1dc"}i.icon.help.circle:before{content:"\f059"}i.icon.help:before{content:"\f128"}i.icon.heterosexual:before{content:"\f228"}i.icon.hide:before{content:"\f070"}i.icon.hotel:before{content:"\f236"}i.icon.hourglass.four:before,i.icon.hourglass.full:before{content:"\f254"}i.icon.hourglass.one:before{content:"\f251"}i.icon.hourglass.three:before{content:"\f253"}i.icon.hourglass.two:before{content:"\f252"}i.icon.idea:before{content:"\f0eb"}i.icon.ils:before{content:"\f20b"}i.icon.in-cart:before{content:"\f218"}i.icon.inr:before{content:"\f156"}i.icon.intergender:before,i.icon.intersex:before{content:"\f224"}i.icon.japan.credit.bureau.card:before,i.icon.japan.credit.bureau:before,i.icon.jcb:before{content:"\f24b"}i.icon.jpy:before{content:"\f157"}i.icon.krw:before{content:"\f159"}i.icon.lab:before{content:"\f0c3"}i.icon.law:before{content:"\f24e"}i.icon.legal:before{content:"\f0e3"}i.icon.lesbian:before{content:"\f226"}i.icon.lightning:before{content:"\f0e7"}i.icon.like:before{content:"\f004"}i.icon.line.graph:before{content:"\f201"}i.icon.linkedin.square:before{content:"\f08c"}i.icon.linkify:before{content:"\f0c1"}i.icon.lira:before{content:"\f195"}i.icon.list.layout:before{content:"\f00b"}i.icon.magnify:before{content:"\f00e"}i.icon.mail.forward:before{content:"\f064"}i.icon.mail.square:before{content:"\f199"}i.icon.mail:before{content:"\f0e0"}i.icon.male.homosexual:before{content:"\f227"}i.icon.man:before{content:"\f222"}i.icon.marker:before{content:"\f041"}i.icon.mars.alternate:before{content:"\f229"}i.icon.mars.horizontal:before{content:"\f22b"}i.icon.mars.vertical:before{content:"\f22a"}i.icon.mastercard.card:before,i.icon.mastercard:before{content:"\f1f1"}i.icon.microsoft.edge:before{content:"\f282"}i.icon.military:before{content:"\f0fb"}i.icon.ms.edge:before{content:"\f282"}i.icon.mute:before{content:"\f131"}i.icon.new.pied.piper:before{content:"\f2ae"}i.icon.non.binary.transgender:before{content:"\f223"}i.icon.numbered.list:before{content:"\f0cb"}i.icon.optinmonster:before{content:"\f23c"}i.icon.options:before{content:"\f1de"}i.icon.other.gender.horizontal:before{content:"\f22b"}i.icon.other.gender.vertical:before{content:"\f22a"}i.icon.other.gender:before{content:"\f229"}i.icon.payment:before{content:"\f09d"}i.icon.paypal.card:before{content:"\f1f4"}i.icon.pencil.square:before{content:"\f14b"}i.icon.photo:before{content:"\f030"}i.icon.picture:before{content:"\f03e"}i.icon.pie.chart:before,i.icon.pie.graph:before{content:"\f200"}i.icon.pied.piper.hat:before{content:"\f2ae"}i.icon.pin:before{content:"\f08d"}i.icon.plus.cart:before{content:"\f217"}i.icon.pocket:before{content:"\f265"}i.icon.point:before{content:"\f041"}i.icon.pointing.down:before{content:"\f0a7"}i.icon.pointing.left:before{content:"\f0a5"}i.icon.pointing.right:before{content:"\f0a4"}i.icon.pointing.up:before{content:"\f0a6"}i.icon.pound:before{content:"\f154"}i.icon.power.cord:before{content:"\f1e6"}i.icon.power:before{content:"\f011"}i.icon.privacy:before{content:"\f084"}i.icon.r.circle:before{content:"\f25d"}i.icon.rain:before{content:"\f0e9"}i.icon.record:before{content:"\f03d"}i.icon.refresh:before{content:"\f021"}i.icon.remove.circle:before{content:"\f057"}i.icon.remove.from.calendar:before{content:"\f272"}i.icon.remove.user:before{content:"\f235"}i.icon.remove:before{content:"\f00d"}i.icon.repeat:before{content:"\f01e"}i.icon.rmb:before{content:"\f157"}i.icon.rouble:before,i.icon.rub:before,i.icon.ruble:before{content:"\f158"}i.icon.rupee:before{content:"\f156"}i.icon.s15:before{content:"\f2cd"}i.icon.selected.radio:before{content:"\f192"}i.icon.send:before{content:"\f1d8"}i.icon.setting:before{content:"\f013"}i.icon.settings:before{content:"\f085"}i.icon.shekel:before,i.icon.sheqel:before{content:"\f20b"}i.icon.shipping:before{content:"\f0d1"}i.icon.shop:before{content:"\f07a"}i.icon.shuffle:before{content:"\f074"}i.icon.shutdown:before{content:"\f011"}i.icon.sidebar:before{content:"\f0c9"}i.icon.signing:before{content:"\f2a7"}i.icon.signup:before{content:"\f044"}i.icon.sliders:before{content:"\f1de"}i.icon.soccer:before{content:"\f1e3"}i.icon.sort.alphabet.ascending:before{content:"\f15d"}i.icon.sort.alphabet.descending:before{content:"\f15e"}i.icon.sort.ascending:before{content:"\f0de"}i.icon.sort.content.ascending:before{content:"\f160"}i.icon.sort.content.descending:before{content:"\f161"}i.icon.sort.descending:before{content:"\f0dd"}i.icon.sort.numeric.ascending:before{content:"\f162"}i.icon.sort.numeric.descending:before{content:"\f163"}i.icon.sound:before{content:"\f025"}i.icon.spy:before{content:"\f21b"}i.icon.stripe.card:before{content:"\f1f5"}i.icon.student:before{content:"\f19d"}i.icon.talk:before{content:"\f27a"}i.icon.target:before{content:"\f140"}i.icon.teletype:before{content:"\f1e4"}i.icon.television:before{content:"\f26c"}i.icon.text.cursor:before{content:"\f246"}i.icon.text.telephone:before{content:"\f1e4"}i.icon.theme.isle:before{content:"\f2b2"}i.icon.theme:before{content:"\f043"}i.icon.thermometer:before{content:"\f2c7"}i.icon.thumb.tack:before{content:"\f08d"}i.icon.time:before{content:"\f017"}i.icon.tm:before{content:"\f25c"}i.icon.toggle.down:before{content:"\f150"}i.icon.toggle.left:before{content:"\f191"}i.icon.toggle.right:before{content:"\f152"}i.icon.toggle.up:before{content:"\f151"}i.icon.translate:before{content:"\f1ab"}i.icon.travel:before{content:"\f0b1"}i.icon.treatment:before{content:"\f0f1"}i.icon.triangle.down:before{content:"\f0d7"}i.icon.triangle.left:before{content:"\f0d9"}i.icon.triangle.right:before{content:"\f0da"}i.icon.triangle.up:before{content:"\f0d8"}i.icon.try:before{content:"\f195"}i.icon.unhide:before{content:"\f06e"}i.icon.unlinkify:before{content:"\f127"}i.icon.unmute:before{content:"\f130"}i.icon.usd:before{content:"\f155"}i.icon.user.cancel:before,i.icon.user.close:before,i.icon.user.delete:before,i.icon.user.x:before{content:"\f235"}i.icon.vcard:before{content:"\f2bb"}i.icon.video.camera:before{content:"\f03d"}i.icon.video.play:before{content:"\f144"}i.icon.visa.card:before,i.icon.visa:before{content:"\f1f0"}i.icon.volume.control.phone:before{content:"\f2a0"}i.icon.wait:before{content:"\f017"}i.icon.warning.circle:before{content:"\f06a"}i.icon.warning.sign:before{content:"\f071"}i.icon.warning:before{content:"\f12a"}i.icon.wechat:before{content:"\f1d7"}i.icon.wi-fi:before{content:"\f1eb"}i.icon.wikipedia:before{content:"\f266"}i.icon.winner:before{content:"\f091"}i.icon.wizard:before{content:"\f0d0"}i.icon.woman:before{content:"\f221"}i.icon.won:before{content:"\f159"}i.icon.wordpress.beginner:before{content:"\f297"}i.icon.wordpress.forms:before{content:"\f298"}i.icon.world:before{content:"\f0ac"}i.icon.write.square:before{content:"\f14b"}i.icon.x:before{content:"\f00d"}i.icon.yc:before,i.icon.ycombinator:before{content:"\f23b"}i.icon.yen:before{content:"\f157"}i.icon.zip:before{content:"\f187"}i.icon.zoom-in:before{content:"\f00e"}i.icon.zoom-out:before{content:"\f010"}i.icon.zoom:before{content:"\f00e"}i.icon.bitbucket.square:before{content:"\f171"}i.icon.checkmark.box:before{content:"\f14a"}i.icon.circle.thin:before{content:"\f111"}i.icon.cloud.download:before{content:"\f381"}i.icon.cloud.upload:before{content:"\f382"}i.icon.compose:before{content:"\f303"}i.icon.conversation:before{content:"\f086"}i.icon.credit.card.alternative:before{content:"\f09d"}i.icon.currency:before{content:"\f3d1"}i.icon.dashboard:before{content:"\f3fd"}i.icon.diamond:before{content:"\f3a5"}i.icon.disk:before{content:"\f0a0"}i.icon.exchange:before{content:"\f362"}i.icon.external.share:before{content:"\f14d"}i.icon.external.square:before{content:"\f360"}i.icon.external:before{content:"\f35d"}i.icon.facebook.official:before{content:"\f082"}i.icon.food:before{content:"\f2e7"}i.icon.hourglass.zero:before{content:"\f253"}i.icon.level.down:before{content:"\f3be"}i.icon.level.up:before{content:"\f3bf"}i.icon.logout:before{content:"\f2f5"}i.icon.meanpath:before{content:"\f0c8"}i.icon.money:before{content:"\f3d1"}i.icon.move:before{content:"\f0b2"}i.icon.pencil:before{content:"\f303"}i.icon.protect:before{content:"\f023"}i.icon.radio:before{content:"\f192"}i.icon.remove.bookmark:before{content:"\f02e"}i.icon.resize.horizontal:before{content:"\f337"}i.icon.resize.vertical:before{content:"\f338"}i.icon.sign-in:before{content:"\f2f6"}i.icon.sign-out:before{content:"\f2f5"}i.icon.spoon:before{content:"\f2e5"}i.icon.star.half.empty:before,i.icon.star.half.full:before{content:"\f089"}i.icon.ticket:before{content:"\f3ff"}i.icon.times.rectangle:before{content:"\f410"}i.icon.write:before{content:"\f303"}i.icon.youtube.play:before{content:"\f167"}@font-face{font-family:outline-icons;src:url(/assets/fonts/outline-icons.eot);src:url(/assets/fonts/outline-icons.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/outline-icons.woff2) format("woff2"),url(/assets/fonts/outline-icons.woff) format("woff"),url(/assets/fonts/outline-icons.ttf) format("truetype"),url(/assets/fonts/outline-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.outline{font-family:outline-icons}i.icon.address.book.outline:before{content:"\f2b9"}i.icon.address.card.outline:before{content:"\f2bb"}i.icon.arrow.alternate.circle.down.outline:before{content:"\f358"}i.icon.arrow.alternate.circle.left.outline:before{content:"\f359"}i.icon.arrow.alternate.circle.right.outline:before{content:"\f35a"}i.icon.arrow.alternate.circle.up.outline:before{content:"\f35b"}i.icon.bell.outline:before{content:"\f0f3"}i.icon.bell.slash.outline:before{content:"\f1f6"}i.icon.bookmark.outline:before{content:"\f02e"}i.icon.building.outline:before{content:"\f1ad"}i.icon.calendar.outline:before{content:"\f133"}i.icon.calendar.alternate.outline:before{content:"\f073"}i.icon.calendar.check.outline:before{content:"\f274"}i.icon.calendar.minus.outline:before{content:"\f272"}i.icon.calendar.plus.outline:before{content:"\f271"}i.icon.calendar.times.outline:before{content:"\f273"}i.icon.caret.square.down.outline:before{content:"\f150"}i.icon.caret.square.left.outline:before{content:"\f191"}i.icon.caret.square.right.outline:before{content:"\f152"}i.icon.caret.square.up.outline:before{content:"\f151"}i.icon.chart.bar.outline:before{content:"\f080"}i.icon.check.circle.outline:before{content:"\f058"}i.icon.check.square.outline:before{content:"\f14a"}i.icon.circle.outline:before{content:"\f111"}i.icon.clipboard.outline:before{content:"\f328"}i.icon.clock.outline:before{content:"\f017"}i.icon.clone.outline:before{content:"\f24d"}i.icon.closed.captioning.outline:before{content:"\f20a"}i.icon.comment.outline:before{content:"\f075"}i.icon.comment.alternate.outline:before{content:"\f27a"}i.icon.comments.outline:before{content:"\f086"}i.icon.compass.outline:before{content:"\f14e"}i.icon.copy.outline:before{content:"\f0c5"}i.icon.copyright.outline:before{content:"\f1f9"}i.icon.credit.card.outline:before{content:"\f09d"}i.icon.dot.circle.outline:before{content:"\f192"}i.icon.edit.outline:before{content:"\f044"}i.icon.envelope.outline:before{content:"\f0e0"}i.icon.envelope.open.outline:before{content:"\f2b6"}i.icon.eye.slash.outline:before{content:"\f070"}i.icon.file.outline:before{content:"\f15b"}i.icon.file.alternate.outline:before{content:"\f15c"}i.icon.file.archive.outline:before{content:"\f1c6"}i.icon.file.audio.outline:before{content:"\f1c7"}i.icon.file.code.outline:before{content:"\f1c9"}i.icon.file.excel.outline:before{content:"\f1c3"}i.icon.file.image.outline:before{content:"\f1c5"}i.icon.file.pdf.outline:before{content:"\f1c1"}i.icon.file.powerpoint.outline:before{content:"\f1c4"}i.icon.file.video.outline:before{content:"\f1c8"}i.icon.file.word.outline:before{content:"\f1c2"}i.icon.flag.outline:before{content:"\f024"}i.icon.folder.outline:before{content:"\f07b"}i.icon.folder.open.outline:before{content:"\f07c"}i.icon.frown.outline:before{content:"\f119"}i.icon.futbol.outline:before{content:"\f1e3"}i.icon.gem.outline:before{content:"\f3a5"}i.icon.hand.lizard.outline:before{content:"\f258"}i.icon.hand.paper.outline:before{content:"\f256"}i.icon.hand.peace.outline:before{content:"\f25b"}i.icon.hand.point.down.outline:before{content:"\f0a7"}i.icon.hand.point.left.outline:before{content:"\f0a5"}i.icon.hand.point.right.outline:before{content:"\f0a4"}i.icon.hand.point.up.outline:before{content:"\f0a6"}i.icon.hand.pointer.outline:before{content:"\f25a"}i.icon.hand.rock.outline:before{content:"\f255"}i.icon.hand.scissors.outline:before{content:"\f257"}i.icon.hand.spock.outline:before{content:"\f259"}i.icon.handshake.outline:before{content:"\f2b5"}i.icon.hdd.outline:before{content:"\f0a0"}i.icon.heart.outline:before{content:"\f004"}i.icon.hospital.outline:before{content:"\f0f8"}i.icon.hourglass.outline:before{content:"\f254"}i.icon.id.badge.outline:before{content:"\f2c1"}i.icon.id.card.outline:before{content:"\f2c2"}i.icon.image.outline:before{content:"\f03e"}i.icon.images.outline:before{content:"\f302"}i.icon.keyboard.outline:before{content:"\f11c"}i.icon.lemon.outline:before{content:"\f094"}i.icon.life.ring.outline:before{content:"\f1cd"}i.icon.lightbulb.outline:before{content:"\f0eb"}i.icon.list.alternate.outline:before{content:"\f022"}i.icon.map.outline:before{content:"\f279"}i.icon.meh.outline:before{content:"\f11a"}i.icon.minus.square.outline:before{content:"\f146"}i.icon.money.bill.alternate.outline:before{content:"\f3d1"}i.icon.moon.outline:before{content:"\f186"}i.icon.newspaper.outline:before{content:"\f1ea"}i.icon.object.group.outline:before{content:"\f247"}i.icon.object.ungroup.outline:before{content:"\f248"}i.icon.paper.plane.outline:before{content:"\f1d8"}i.icon.pause.circle.outline:before{content:"\f28b"}i.icon.play.circle.outline:before{content:"\f144"}i.icon.plus.square.outline:before{content:"\f0fe"}i.icon.question.circle.outline:before{content:"\f059"}i.icon.registered.outline:before{content:"\f25d"}i.icon.save.outline:before{content:"\f0c7"}i.icon.share.square.outline:before{content:"\f14d"}i.icon.smile.outline:before{content:"\f118"}i.icon.snowflake.outline:before{content:"\f2dc"}i.icon.square.outline:before{content:"\f0c8"}i.icon.star.outline:before{content:"\f005"}i.icon.star.half.outline:before{content:"\f089"}i.icon.sticky.note.outline:before{content:"\f249"}i.icon.stop.circle.outline:before{content:"\f28d"}i.icon.sun.outline:before{content:"\f185"}i.icon.thumbs.down.outline:before{content:"\f165"}i.icon.thumbs.up.outline:before{content:"\f164"}i.icon.times.circle.outline:before{content:"\f057"}i.icon.trash.alternate.outline:before{content:"\f2ed"}i.icon.user.outline:before{content:"\f007"}i.icon.user.circle.outline:before{content:"\f2bd"}i.icon.window.close.outline:before{content:"\f410"}i.icon.window.maximize.outline:before{content:"\f2d0"}i.icon.window.minimize.outline:before{content:"\f2d1"}i.icon.window.restore.outline:before{content:"\f2d2"}i.icon.disk.outline:before{content:"\f0a0"}i.icon.heart.empty,i.icon.star.empty{font-family:outline-icons}i.icon.heart.empty:before{content:"\f004"}i.icon.star.empty:before{content:"\f089"}@font-face{font-family:brand-icons;src:url(/assets/fonts/brand-icons.eot);src:url(/assets/fonts/brand-icons.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/brand-icons.woff2) format("woff2"),url(/assets/fonts/brand-icons.woff) format("woff"),url(/assets/fonts/brand-icons.ttf) format("truetype"),url(/assets/fonts/brand-icons.svg#icons) format("svg");font-style:normal;font-weight:400;font-variant:normal;text-decoration:inherit;text-transform:none}i.icon.\35 00px,i.icon.accessible.icon,i.icon.accusoft,i.icon.adn,i.icon.adversal,i.icon.affiliatetheme,i.icon.algolia,i.icon.amazon,i.icon.amazon.pay,i.icon.amilia,i.icon.android,i.icon.angellist,i.icon.angrycreative,i.icon.angular,i.icon.app.store,i.icon.app.store.ios,i.icon.apper,i.icon.apple,i.icon.apple.pay,i.icon.asymmetrik,i.icon.audible,i.icon.autoprefixer,i.icon.avianex,i.icon.aviato,i.icon.aws,i.icon.bandcamp,i.icon.behance,i.icon.behance.square,i.icon.bimobject,i.icon.bitbucket,i.icon.bitcoin,i.icon.bity,i.icon.black.tie,i.icon.blackberry,i.icon.blogger,i.icon.blogger.b,i.icon.bluetooth,i.icon.bluetooth.b,i.icon.btc,i.icon.buromobelexperte,i.icon.buysellads,i.icon.cc.amazon.pay,i.icon.cc.amex,i.icon.cc.apple.pay,i.icon.cc.diners.club,i.icon.cc.discover,i.icon.cc.jcb,i.icon.cc.mastercard,i.icon.cc.paypal,i.icon.cc.stripe,i.icon.cc.visa,i.icon.centercode,i.icon.chrome,i.icon.cloudscale,i.icon.cloudsmith,i.icon.cloudversify,i.icon.codepen,i.icon.codiepie,i.icon.connectdevelop,i.icon.contao,i.icon.cpanel,i.icon.creative.commons,i.icon.css3,i.icon.css3.alternate,i.icon.cuttlefish,i.icon.d.and.d,i.icon.dashcube,i.icon.delicious,i.icon.deploydog,i.icon.deskpro,i.icon.deviantart,i.icon.digg,i.icon.digital.ocean,i.icon.discord,i.icon.discourse,i.icon.dochub,i.icon.docker,i.icon.draft2digital,i.icon.dribbble,i.icon.dribbble.square,i.icon.dropbox,i.icon.drupal,i.icon.dyalog,i.icon.earlybirds,i.icon.edge,i.icon.elementor,i.icon.ember,i.icon.empire,i.icon.envira,i.icon.erlang,i.icon.ethereum,i.icon.etsy,i.icon.expeditedssl,i.icon.facebook,i.icon.facebook.f,i.icon.facebook.messenger,i.icon.facebook.square,i.icon.firefox,i.icon.first.order,i.icon.firstdraft,i.icon.flickr,i.icon.flipboard,i.icon.fly,i.icon.font.awesome,i.icon.font.awesome.alternate,i.icon.font.awesome.flag,i.icon.fonticons,i.icon.fonticons.fi,i.icon.fort.awesome,i.icon.fort.awesome.alternate,i.icon.forumbee,i.icon.foursquare,i.icon.free.code.camp,i.icon.freebsd,i.icon.get.pocket,i.icon.gg,i.icon.gg.circle,i.icon.git,i.icon.git.square,i.icon.github,i.icon.github.alternate,i.icon.github.square,i.icon.gitkraken,i.icon.gitlab,i.icon.gitter,i.icon.glide,i.icon.glide.g,i.icon.gofore,i.icon.goodreads,i.icon.goodreads.g,i.icon.google,i.icon.google.drive,i.icon.google.play,i.icon.google.plus,i.icon.google.plus.g,i.icon.google.plus.square,i.icon.google.wallet,i.icon.gratipay,i.icon.grav,i.icon.gripfire,i.icon.grunt,i.icon.gulp,i.icon.hacker.news,i.icon.hacker.news.square,i.icon.hips,i.icon.hire.a.helper,i.icon.hooli,i.icon.hotjar,i.icon.houzz,i.icon.html5,i.icon.hubspot,i.icon.imdb,i.icon.instagram,i.icon.internet.explorer,i.icon.ioxhost,i.icon.itunes,i.icon.itunes.note,i.icon.jenkins,i.icon.joget,i.icon.joomla,i.icon.js,i.icon.js.square,i.icon.jsfiddle,i.icon.keycdn,i.icon.kickstarter,i.icon.kickstarter.k,i.icon.korvue,i.icon.laravel,i.icon.lastfm,i.icon.lastfm.square,i.icon.leanpub,i.icon.less,i.icon.linechat,i.icon.linkedin,i.icon.linkedin.alternate,i.icon.linkedin.in,i.icon.linode,i.icon.linux,i.icon.lyft,i.icon.magento,i.icon.maxcdn,i.icon.medapps,i.icon.medium,i.icon.medium.m,i.icon.medrt,i.icon.meetup,i.icon.microsoft,i.icon.mix,i.icon.mixcloud,i.icon.mizuni,i.icon.modx,i.icon.monero,i.icon.napster,i.icon.nintendo.switch,i.icon.node,i.icon.node.js,i.icon.npm,i.icon.ns8,i.icon.nutritionix,i.icon.odnoklassniki,i.icon.odnoklassniki.square,i.icon.opencart,i.icon.openid,i.icon.opera,i.icon.optin.monster,i.icon.osi,i.icon.page4,i.icon.pagelines,i.icon.palfed,i.icon.patreon,i.icon.paypal,i.icon.periscope,i.icon.phabricator,i.icon.phoenix.framework,i.icon.php,i.icon.pied.piper,i.icon.pied.piper.alternate,i.icon.pied.piper.pp,i.icon.pinterest,i.icon.pinterest.p,i.icon.pinterest.square,i.icon.playstation,i.icon.product.hunt,i.icon.pushed,i.icon.python,i.icon.qq,i.icon.quinscape,i.icon.quora,i.icon.ravelry,i.icon.react,i.icon.rebel,i.icon.reddit,i.icon.reddit.alien,i.icon.reddit.square,i.icon.redriver,i.icon.rendact,i.icon.renren,i.icon.replyd,i.icon.resolving,i.icon.rocketchat,i.icon.rockrms,i.icon.safari,i.icon.sass,i.icon.schlix,i.icon.scribd,i.icon.searchengin,i.icon.sellcast,i.icon.sellsy,i.icon.servicestack,i.icon.shirtsinbulk,i.icon.simplybuilt,i.icon.sistrix,i.icon.skyatlas,i.icon.skype,i.icon.slack,i.icon.slack.hash,i.icon.slideshare,i.icon.snapchat,i.icon.snapchat.ghost,i.icon.snapchat.square,i.icon.soundcloud,i.icon.speakap,i.icon.spotify,i.icon.stack.exchange,i.icon.stack.overflow,i.icon.staylinked,i.icon.steam,i.icon.steam.square,i.icon.steam.symbol,i.icon.sticker.mule,i.icon.strava,i.icon.stripe,i.icon.stripe.s,i.icon.studiovinari,i.icon.stumbleupon,i.icon.stumbleupon.circle,i.icon.superpowers,i.icon.supple,i.icon.telegram,i.icon.telegram.plane,i.icon.tencent.weibo,i.icon.themeisle,i.icon.trello,i.icon.tripadvisor,i.icon.tumblr,i.icon.tumblr.square,i.icon.twitch,i.icon.twitter,i.icon.twitter.square,i.icon.typo3,i.icon.uber,i.icon.uikit,i.icon.uniregistry,i.icon.untappd,i.icon.usb,i.icon.ussunnah,i.icon.vaadin,i.icon.viacoin,i.icon.viadeo,i.icon.viadeo.square,i.icon.viber,i.icon.vimeo,i.icon.vimeo.square,i.icon.vimeo.v,i.icon.vine,i.icon.vk,i.icon.vnv,i.icon.vuejs,i.icon.wechat,i.icon.weibo,i.icon.weixin,i.icon.whatsapp,i.icon.whatsapp.square,i.icon.whmcs,i.icon.wikipedia.w,i.icon.windows,i.icon.wordpress,i.icon.wordpress.simple,i.icon.wpbeginner,i.icon.wpexplorer,i.icon.wpforms,i.icon.xbox,i.icon.xing,i.icon.xing.square,i.icon.y.combinator,i.icon.yahoo,i.icon.yandex,i.icon.yandex.international,i.icon.yelp,i.icon.yoast,i.icon.youtube,i.icon.youtube.square{font-family:brand-icons}
/*!
 * # Semantic UI - Image
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block}.ui.image img,.ui.image svg{display:block;max-width:100%;height:auto}.ui.hidden.image,.ui.hidden.images{display:none}.ui.hidden.transition.image,.ui.hidden.transition.images{display:block;visibility:hidden}.ui.images>.hidden.transition{display:inline-block;visibility:hidden}.ui.disabled.image,.ui.disabled.images{cursor:default;opacity:.45}.ui.inline.image,.ui.inline.image img,.ui.inline.image svg{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.images .image,.ui.top.aligned.image svg{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.images .image,.ui.middle.aligned.image svg{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.images .image,.ui.bottom.aligned.image svg{display:inline-block;vertical-align:bottom}.ui.rounded.image,.ui.rounded.image>*,.ui.rounded.images .image,.ui.rounded.images .image>*{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.images .image,.ui.bordered.images img,.ui.bordered.images svg,.ui.bordered.image svg,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image>*,.ui.circular.images .image,.ui.circular.images .image>*{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.images,.ui.fluid.images img,.ui.fluid.images svg,.ui.fluid.image svg{display:block;width:100%;height:auto}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.images svg,.ui.avatar.image svg{margin-right:.25em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.spaced.image{display:inline-block!important;margin-left:.5em;margin-right:.5em}.ui[class*="left spaced"].image{margin-left:.5em;margin-right:0}.ui[class*="right spaced"].image{margin-left:0;margin-right:.5em}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image,.ui.centered.images{margin-left:auto;margin-right:auto}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img,.ui.mini.images svg{width:35px;height:auto;font-size:11px;font-size:.78571429rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.images svg{width:80px;height:auto;font-size:12px;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img,.ui.small.images svg{width:150px;height:auto;font-size:13px;font-size:.92857143rem}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img,.ui.medium.images svg{width:300px;height:auto;font-size:14px;font-size:1rem}.ui.large.image,.ui.large.images .image,.ui.large.images img,.ui.large.images svg{width:450px;height:auto;font-size:15.999px;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img,.ui.big.images svg{width:600px;height:auto;font-size:18px;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img,.ui.huge.images svg{width:800px;height:auto;font-size:20px;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img,.ui.massive.images svg{width:960px;height:auto;font-size:23.999px;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem}.ui.images .image,.ui.images>img,.ui.images>svg{display:inline-block;margin:0 .25rem .5rem}
/*!
 * # Semantic UI - Input
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.input{position:relative;font-weight:400;font-style:normal;display:inline-flex;color:rgba(0,0,0,.87)}.ui.input>input{margin:0;max-width:100%;flex:1 0 auto;outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-align:left;line-height:1.21428571em;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;padding:.67857143em 1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);border-radius:.21428571rem;transition:box-shadow .1s ease,border-color .1s ease;box-shadow:none}.ui.input>input::-webkit-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.input>input::-moz-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.input>input:-ms-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.disabled.input,.ui.input:not(.disabled) input[disabled]{opacity:.45}.ui.disabled.input>input,.ui.input:not(.disabled) input[disabled]{pointer-events:none}.ui.input.down input,.ui.input>input:active{border-color:rgba(0,0,0,.3);background:#fafafa;color:rgba(0,0,0,.87);box-shadow:none}.ui.loading.loading.input>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.loading.input>i.icon:after,.ui.loading.loading.input>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.loading.input>i.icon:after{-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}.ui.input.focus>input,.ui.input>input:focus{border-color:#85b7d9;background:#fff;color:rgba(0,0,0,.8);box-shadow:none}.ui.input.focus>input::-webkit-input-placeholder,.ui.input>input:focus::-webkit-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.focus>input::-moz-placeholder,.ui.input>input:focus::-moz-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.focus>input:-ms-input-placeholder,.ui.input>input:focus:-ms-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.input.error>input{background-color:#fff6f6;border-color:#e0b4b4;color:#9f3a38;box-shadow:none}.ui.input.error>input::-webkit-input-placeholder{color:#e7bdbc}.ui.input.error>input::-moz-placeholder{color:#e7bdbc}.ui.input.error>input:-ms-input-placeholder{color:#e7bdbc!important}.ui.input.error>input:focus::-webkit-input-placeholder{color:#da9796}.ui.input.error>input:focus::-moz-placeholder{color:#da9796}.ui.input.error>input:focus:-ms-input-placeholder{color:#da9796!important}.ui.transparent.input>input{border-color:transparent!important;background-color:transparent!important;padding:0!important;box-shadow:none!important;border-radius:0!important}.ui.transparent.icon.input>i.icon{width:1.1em}.ui.transparent.icon.input>input{padding-left:0!important;padding-right:2em!important}.ui.transparent[class*="left icon"].input>input{padding-left:2em!important;padding-right:0!important}.ui.transparent.inverted.input{color:#fff}.ui.transparent.inverted.input>input{color:inherit}.ui.transparent.inverted.input>input::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}.ui.transparent.inverted.input>input::-moz-placeholder{color:hsla(0,0%,100%,.5)}.ui.transparent.inverted.input>input:-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.ui.icon.input>i.icon{cursor:default;position:absolute;line-height:1;text-align:center;top:0;right:0;margin:0;height:100%;width:2.67142857em;opacity:.5;border-radius:0 .21428571rem .21428571rem 0;transition:opacity .3s ease}.ui.icon.input>i.icon:not(.link){pointer-events:none}.ui.icon.input>input{padding-right:2.67142857em!important}.ui.icon.input>i.icon:after,.ui.icon.input>i.icon:before{left:0;position:absolute;text-align:center;top:50%;width:100%;margin-top:-.5em}.ui.icon.input>i.link.icon{cursor:pointer}.ui.icon.input>i.circular.icon{top:.35em;right:.5em}.ui[class*="left icon"].input>i.icon{right:auto;left:1px;border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="left icon"].input>i.circular.icon{right:auto;left:.5em}.ui[class*="left icon"].input>input{padding-left:2.67142857em!important;padding-right:1em!important}.ui.icon.input>input:focus~i.icon{opacity:1}.ui.labeled.input>.label{flex:0 0 auto;margin:0;font-size:1em}.ui.labeled.input>.label:not(.corner){padding-top:.78571429em;padding-bottom:.78571429em}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child+input{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:transparent}.ui.labeled.input:not([class*="corner labeled"]) .label:first-child+input:focus{border-left-color:#85b7d9}.ui[class*="right labeled"].input>input{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right-color:transparent!important}.ui[class*="right labeled"].input>input+.label{border-top-left-radius:0;border-bottom-left-radius:0}.ui[class*="right labeled"].input>input:focus{border-right-color:#85b7d9!important}.ui.labeled.input .corner.label{top:1px;right:1px;font-size:.64285714em;border-radius:0 .21428571rem 0 0}.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input>input{padding-right:2.5em!important}.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"])>input{padding-right:3.25em!important}.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"])>.icon{margin-right:1.25em}.ui[class*="left corner labeled"].labeled.input>input{padding-left:2.5em!important}.ui[class*="left corner labeled"].icon.input>input{padding-left:3.25em!important}.ui[class*="left corner labeled"].icon.input>.icon{margin-left:1.25em}.ui.input>.ui.corner.label{top:1px;right:1px}.ui.input>.ui.left.corner.label{right:auto;left:1px}.ui.action.input>.button,.ui.action.input>.buttons{display:flex;align-items:center;flex:0 0 auto}.ui.action.input>.button,.ui.action.input>.buttons>.button{padding-top:.78571429em;padding-bottom:.78571429em;margin:0}.ui.action.input:not([class*="left action"])>input{border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-right-color:transparent!important}.ui.action.input:not([class*="left action"])>.button:not(:first-child),.ui.action.input:not([class*="left action"])>.buttons:not(:first-child)>.button,.ui.action.input:not([class*="left action"])>.dropdown:not(:first-child){border-radius:0}.ui.action.input:not([class*="left action"])>.button:last-child,.ui.action.input:not([class*="left action"])>.buttons:last-child>.button,.ui.action.input:not([class*="left action"])>.dropdown:last-child{border-radius:0 .21428571rem .21428571rem 0}.ui.action.input:not([class*="left action"])>input:focus{border-right-color:#85b7d9!important}.ui[class*="left action"].input>input{border-top-left-radius:0!important;border-bottom-left-radius:0!important;border-left-color:transparent!important}.ui[class*="left action"].input>.button,.ui[class*="left action"].input>.buttons>.button,.ui[class*="left action"].input>.dropdown{border-radius:0}.ui[class*="left action"].input>.button:first-child,.ui[class*="left action"].input>.buttons:first-child>.button,.ui[class*="left action"].input>.dropdown:first-child{border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="left action"].input>input:focus{border-left-color:#85b7d9!important}.ui.inverted.input>input{border:none}.ui.fluid.input{display:flex}.ui.fluid.input>input{width:0!important}.ui.mini.input{font-size:.78571429em}.ui.small.input{font-size:.92857143em}.ui.input{font-size:1em}.ui.large.input{font-size:1.14285714em}.ui.big.input{font-size:1.28571429em}.ui.huge.input{font-size:1.42857143em}.ui.massive.input{font-size:1.71428571em}
/*!
 * # Semantic UI - Label
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.label{display:inline-block;line-height:1;vertical-align:baseline;margin:0 .14285714em;background-color:#e8e8e8;background-image:none;padding:.5833em .833em;color:rgba(0,0,0,.6);text-transform:none;font-weight:700;border:0 solid transparent;border-radius:.21428571rem;transition:background .1s ease}.ui.label:first-child{margin-left:0}.ui.label:last-child{margin-right:0}.ui.label>a,a.ui.label{cursor:pointer}.ui.label>a{color:inherit;opacity:.5;transition:opacity .1s ease}.ui.label>a:hover{opacity:1}.ui.label>img{width:auto!important;vertical-align:middle;height:2.1666em!important}.ui.label>.icon{width:auto;margin:0 .75em 0 0}.ui.label>.detail{display:inline-block;vertical-align:top;font-weight:700;margin-left:1em;opacity:.8}.ui.label>.detail .icon{margin:0 .25em 0 0}.ui.label>.close.icon,.ui.label>.delete.icon{cursor:pointer;margin-right:0;margin-left:.5em;font-size:.92857143em;opacity:.5;transition:background .1s ease}.ui.label>.delete.icon:hover{opacity:1}.ui.labels>.label{margin:0 .5em .5em 0}.ui.header>.ui.label{margin-top:-.29165em}.ui.attached.segment>.ui.top.left.attached.label,.ui.bottom.attached.segment>.ui.top.left.attached.label{border-top-left-radius:0}.ui.attached.segment>.ui.top.right.attached.label,.ui.bottom.attached.segment>.ui.top.right.attached.label{border-top-right-radius:0}.ui.top.attached.segment>.ui.bottom.left.attached.label{border-bottom-left-radius:0}.ui.top.attached.segment>.ui.bottom.right.attached.label{border-bottom-right-radius:0}.ui.top.attached.label+[class*="right floated"]+*,.ui.top.attached.label:first-child+:not(.attached){margin-top:2rem!important}.ui.bottom.attached.label:first-child~:last-child:not(.attached){margin-top:0;margin-bottom:2rem!important}.ui.image.label{width:auto!important;margin-top:0;margin-bottom:0;max-width:9999px;vertical-align:baseline;text-transform:none;background:#e8e8e8;padding:.5833em .833em .5833em .5em;border-radius:.21428571rem;box-shadow:none}.ui.image.label img{display:inline-block;vertical-align:top;height:2.1666em;margin:-.5833em .5em -.5833em -.5em;border-radius:.21428571rem 0 0 .21428571rem}.ui.image.label .detail{background:rgba(0,0,0,.1);margin:-.5833em -.833em -.5833em .5em;padding:.5833em .833em;border-radius:0 .21428571rem .21428571rem 0}.ui.tag.label,.ui.tag.labels .label{margin-left:1em;position:relative;padding-left:1.5em;padding-right:1.5em;border-radius:0 .21428571rem .21428571rem 0;transition:none}.ui.tag.label:before,.ui.tag.labels .label:before{position:absolute;transform:translateY(-50%) translateX(50%) rotate(-45deg);top:50%;right:100%;content:"";background-color:inherit;background-image:none;width:1.56em;height:1.56em;transition:none}.ui.tag.label:after,.ui.tag.labels .label:after{position:absolute;content:"";top:50%;left:-.25em;margin-top:-.25em;background-color:#fff!important;width:.5em;height:.5em;box-shadow:0 -1px 1px 0 rgba(0,0,0,.3);border-radius:500rem}.ui.corner.label{margin:0;padding:0;text-align:center;border-color:#e8e8e8;width:4em;height:4em;z-index:1}.ui.corner.label,.ui.corner.label:after{position:absolute;top:0;right:0;transition:border-color .1s ease;background-color:transparent!important}.ui.corner.label:after{content:"";z-index:-1;width:0;height:0;border-color:transparent;border-style:solid;border-width:0 4em 4em 0;border-right-color:inherit}.ui.corner.label .icon{cursor:default;position:relative;top:.64285714em;left:.78571429em;font-size:1.14285714em;margin:0}.ui.left.corner.label,.ui.left.corner.label:after{right:auto;left:0}.ui.left.corner.label:after{border-color:transparent;border-style:solid;border-width:4em 4em 0 0;border-top-color:inherit}.ui.left.corner.label .icon{left:-.78571429em}.ui.segment>.ui.corner.label{top:-1px;right:-1px}.ui.segment>.ui.left.corner.label{right:auto;left:-1px}.ui.ribbon.label{position:relative;margin:0;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;border-radius:0 .21428571rem .21428571rem 0;border-color:rgba(0,0,0,.15)}.ui.ribbon.label:after{position:absolute;content:"";top:100%;left:0;background-color:transparent!important;border-color:transparent;border-style:solid;border-width:0 1.2em 1.2em 0;border-right-color:inherit;width:0;height:0}.ui.ribbon.label{left:-2.2rem;margin-right:-1.2em;padding-left:2.2rem;padding-right:1.2em}.ui[class*="right ribbon"].label{left:102.2%;padding-left:1.2em;padding-right:2.2rem;text-align:left;transform:translateX(-100%);border-radius:.21428571rem 0 0 .21428571rem}.ui[class*="right ribbon"].label:after{left:auto;right:0;border-color:transparent;border-style:solid;border-width:1.2em 1.2em 0 0;border-top-color:inherit}.ui.card .image>.ribbon.label,.ui.image>.ribbon.label{position:absolute;top:14px;top:1rem}.ui.card .image>.ui.ribbon.label,.ui.image>.ui.ribbon.label{left:-1.15rem}.ui.card .image>.ui[class*="right ribbon"].label,.ui.image>.ui[class*="right ribbon"].label{left:101.15%;padding-left:.833em}.ui.table td>.ui.ribbon.label{left:-1.98571em}.ui.table td>.ui[class*="right ribbon"].label{left:101.98571%;padding-left:.833em}.ui.attached.label,.ui[class*="top attached"].label{width:100%;position:absolute;margin:0;top:0;left:0;padding:.75em 1em;border-radius:.21428571rem .21428571rem 0 0}.ui[class*="bottom attached"].label{top:auto;bottom:0;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="top left attached"].label{width:auto;margin-top:0!important;border-radius:.21428571rem 0 .21428571rem 0}.ui[class*="top right attached"].label{width:auto;left:auto;right:0;border-radius:0 .21428571rem 0 .21428571rem}.ui[class*="bottom left attached"].label{width:auto;top:auto;bottom:0;border-radius:0 .21428571rem 0 .21428571rem}.ui[class*="bottom right attached"].label{top:auto;bottom:0;left:auto;right:0;width:auto;border-radius:.21428571rem 0 .21428571rem 0}.ui.label.disabled{opacity:.5}a.ui.label:hover,a.ui.labels .label:hover{background-color:#e0e0e0;border-color:#e0e0e0;background-image:none;color:rgba(0,0,0,.8)}.ui.labels a.label:hover:before,a.ui.label:hover:before{color:rgba(0,0,0,.8)}.ui.active.label{border-color:#d0d0d0}.ui.active.label,.ui.active.label:before{background-color:#d0d0d0;background-image:none;color:rgba(0,0,0,.95)}a.ui.active.label:hover,a.ui.labels .active.label:hover{border-color:#c8c8c8}.ui.labels a.active.label:ActiveHover:before,a.ui.active.label:ActiveHover:before,a.ui.active.label:hover,a.ui.labels .active.label:hover{background-color:#c8c8c8;background-image:none;color:rgba(0,0,0,.95)}.ui.label.visible:not(.dropdown),.ui.labels.visible .label{display:inline-block!important}.ui.label.hidden,.ui.labels.hidden .label{display:none!important}.ui.red.label,.ui.red.labels .label{background-color:#db2828!important;border-color:#db2828!important;color:#fff!important}.ui.red.labels .label:hover,a.ui.red.label:hover{background-color:#d01919!important;border-color:#d01919!important;color:#fff!important}.ui.red.corner.label,.ui.red.corner.label:hover{background-color:transparent!important}.ui.red.ribbon.label{border-color:#b21e1e!important}.ui.basic.red.label{background:none #fff!important;color:#db2828!important;border-color:#db2828!important}.ui.basic.red.labels a.label:hover,a.ui.basic.red.label:hover{background-color:#fff!important;color:#d01919!important;border-color:#d01919!important}.ui.orange.label,.ui.orange.labels .label{background-color:#f2711c!important;border-color:#f2711c!important;color:#fff!important}.ui.orange.labels .label:hover,a.ui.orange.label:hover{background-color:#f26202!important;border-color:#f26202!important;color:#fff!important}.ui.orange.corner.label,.ui.orange.corner.label:hover{background-color:transparent!important}.ui.orange.ribbon.label{border-color:#cf590c!important}.ui.basic.orange.label{background:none #fff!important;color:#f2711c!important;border-color:#f2711c!important}.ui.basic.orange.labels a.label:hover,a.ui.basic.orange.label:hover{background-color:#fff!important;color:#f26202!important;border-color:#f26202!important}.ui.yellow.label,.ui.yellow.labels .label{background-color:#fbbd08!important;border-color:#fbbd08!important;color:#fff!important}.ui.yellow.labels .label:hover,a.ui.yellow.label:hover{background-color:#eaae00!important;border-color:#eaae00!important;color:#fff!important}.ui.yellow.corner.label,.ui.yellow.corner.label:hover{background-color:transparent!important}.ui.yellow.ribbon.label{border-color:#cd9903!important}.ui.basic.yellow.label{background:none #fff!important;color:#fbbd08!important;border-color:#fbbd08!important}.ui.basic.yellow.labels a.label:hover,a.ui.basic.yellow.label:hover{background-color:#fff!important;color:#eaae00!important;border-color:#eaae00!important}.ui.olive.label,.ui.olive.labels .label{background-color:#b5cc18!important;border-color:#b5cc18!important;color:#fff!important}.ui.olive.labels .label:hover,a.ui.olive.label:hover{background-color:#a7bd0d!important;border-color:#a7bd0d!important;color:#fff!important}.ui.olive.corner.label,.ui.olive.corner.label:hover{background-color:transparent!important}.ui.olive.ribbon.label{border-color:#198f35!important}.ui.basic.olive.label{background:none #fff!important;color:#b5cc18!important;border-color:#b5cc18!important}.ui.basic.olive.labels a.label:hover,a.ui.basic.olive.label:hover{background-color:#fff!important;color:#a7bd0d!important;border-color:#a7bd0d!important}.ui.green.label,.ui.green.labels .label{background-color:#21ba45!important;border-color:#21ba45!important;color:#fff!important}.ui.green.labels .label:hover,a.ui.green.label:hover{background-color:#16ab39!important;border-color:#16ab39!important;color:#fff!important}.ui.green.corner.label,.ui.green.corner.label:hover{background-color:transparent!important}.ui.green.ribbon.label{border-color:#198f35!important}.ui.basic.green.label{background:none #fff!important;color:#21ba45!important;border-color:#21ba45!important}.ui.basic.green.labels a.label:hover,a.ui.basic.green.label:hover{background-color:#fff!important;color:#16ab39!important;border-color:#16ab39!important}.ui.teal.label,.ui.teal.labels .label{background-color:#00b5ad!important;border-color:#00b5ad!important;color:#fff!important}.ui.teal.labels .label:hover,a.ui.teal.label:hover{background-color:#009c95!important;border-color:#009c95!important;color:#fff!important}.ui.teal.corner.label,.ui.teal.corner.label:hover{background-color:transparent!important}.ui.teal.ribbon.label{border-color:#00827c!important}.ui.basic.teal.label{background:none #fff!important;color:#00b5ad!important;border-color:#00b5ad!important}.ui.basic.teal.labels a.label:hover,a.ui.basic.teal.label:hover{background-color:#fff!important;color:#009c95!important;border-color:#009c95!important}.ui.blue.label,.ui.blue.labels .label{background-color:#2c6a9e!important;border-color:#2c6a9e!important;color:#fff!important}.ui.blue.labels .label:hover,a.ui.blue.label:hover{background-color:#215d8f!important;border-color:#215d8f!important;color:#fff!important}.ui.blue.corner.label,.ui.blue.corner.label:hover{background-color:transparent!important}.ui.blue.ribbon.label{border-color:#214f76!important}.ui.basic.blue.label{background:none #fff!important;color:#2c6a9e!important;border-color:#2c6a9e!important}.ui.basic.blue.labels a.label:hover,a.ui.basic.blue.label:hover{background-color:#fff!important;color:#215d8f!important;border-color:#215d8f!important}.ui.violet.label,.ui.violet.labels .label{background-color:#6435c9!important;border-color:#6435c9!important;color:#fff!important}.ui.violet.labels .label:hover,a.ui.violet.label:hover{background-color:#5829bb!important;border-color:#5829bb!important;color:#fff!important}.ui.violet.corner.label,.ui.violet.corner.label:hover{background-color:transparent!important}.ui.violet.ribbon.label{border-color:#502aa1!important}.ui.basic.violet.label{background:none #fff!important;color:#6435c9!important;border-color:#6435c9!important}.ui.basic.violet.labels a.label:hover,a.ui.basic.violet.label:hover{background-color:#fff!important;color:#5829bb!important;border-color:#5829bb!important}.ui.purple.label,.ui.purple.labels .label{background-color:#a333c8!important;border-color:#a333c8!important;color:#fff!important}.ui.purple.labels .label:hover,a.ui.purple.label:hover{background-color:#9627ba!important;border-color:#9627ba!important;color:#fff!important}.ui.purple.corner.label,.ui.purple.corner.label:hover{background-color:transparent!important}.ui.purple.ribbon.label{border-color:#82299f!important}.ui.basic.purple.label{background:none #fff!important;color:#a333c8!important;border-color:#a333c8!important}.ui.basic.purple.labels a.label:hover,a.ui.basic.purple.label:hover{background-color:#fff!important;color:#9627ba!important;border-color:#9627ba!important}.ui.pink.label,.ui.pink.labels .label{background-color:#e03997!important;border-color:#e03997!important;color:#fff!important}.ui.pink.labels .label:hover,a.ui.pink.label:hover{background-color:#e61a8d!important;border-color:#e61a8d!important;color:#fff!important}.ui.pink.corner.label,.ui.pink.corner.label:hover{background-color:transparent!important}.ui.pink.ribbon.label{border-color:#c71f7e!important}.ui.basic.pink.label{background:none #fff!important;color:#e03997!important;border-color:#e03997!important}.ui.basic.pink.labels a.label:hover,a.ui.basic.pink.label:hover{background-color:#fff!important;color:#e61a8d!important;border-color:#e61a8d!important}.ui.brown.label,.ui.brown.labels .label{background-color:#a5673f!important;border-color:#a5673f!important;color:#fff!important}.ui.brown.labels .label:hover,a.ui.brown.label:hover{background-color:#975b33!important;border-color:#975b33!important;color:#fff!important}.ui.brown.corner.label,.ui.brown.corner.label:hover{background-color:transparent!important}.ui.brown.ribbon.label{border-color:#805031!important}.ui.basic.brown.label{background:none #fff!important;color:#a5673f!important;border-color:#a5673f!important}.ui.basic.brown.labels a.label:hover,a.ui.basic.brown.label:hover{background-color:#fff!important;color:#975b33!important;border-color:#975b33!important}.ui.grey.label,.ui.grey.labels .label{background-color:#767676!important;border-color:#767676!important;color:#fff!important}.ui.grey.labels .label:hover,a.ui.grey.label:hover{background-color:#838383!important;border-color:#838383!important;color:#fff!important}.ui.grey.corner.label,.ui.grey.corner.label:hover{background-color:transparent!important}.ui.grey.ribbon.label{border-color:#805031!important}.ui.basic.grey.label{background:none #fff!important;color:#767676!important;border-color:#767676!important}.ui.basic.grey.labels a.label:hover,a.ui.basic.grey.label:hover{background-color:#fff!important;color:#838383!important;border-color:#838383!important}.ui.black.label,.ui.black.labels .label{background-color:#1b1c1d!important;border-color:#1b1c1d!important;color:#fff!important}.ui.black.labels .label:hover,a.ui.black.label:hover{background-color:#27292a!important;border-color:#27292a!important;color:#fff!important}.ui.black.corner.label,.ui.black.corner.label:hover{background-color:transparent!important}.ui.black.ribbon.label{border-color:#805031!important}.ui.basic.black.label{background:none #fff!important;color:#1b1c1d!important;border-color:#1b1c1d!important}.ui.basic.black.labels a.label:hover,a.ui.basic.black.label:hover{background-color:#fff!important;color:#27292a!important;border-color:#27292a!important}.ui.basic.label{background:none #fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);box-shadow:none}a.ui.basic.label:hover{text-decoration:none;background:none #fff;color:#3277b2;box-shadow:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.pointing.label:before{border-color:inherit}.ui.fluid.labels>.label,.ui.label.fluid{width:100%;box-sizing:border-box}.ui.inverted.label,.ui.inverted.labels .label{color:hsla(0,0%,100%,.9)!important}.ui.horizontal.label,.ui.horizontal.labels .label{margin:0 .5em 0 0;padding:.4em .833em;min-width:3em;text-align:center}.ui.circular.label,.ui.circular.labels .label{min-width:2em;min-height:2em;padding:.5em!important;line-height:1em;text-align:center;border-radius:500rem}.ui.empty.circular.label,.ui.empty.circular.labels .label{min-width:0;min-height:0;overflow:hidden;width:.5em;height:.5em;vertical-align:baseline}.ui.pointing.label{position:relative}.ui.attached.pointing.label{position:absolute}.ui.pointing.label:before{background-color:inherit;background-image:inherit;border:0 solid;border-color:inherit;position:absolute;content:"";transform:rotate(45deg);background-image:none;z-index:2;width:.6666em;height:.6666em;transition:background .1s ease}.ui.pointing.label,.ui[class*="pointing above"].label{margin-top:1em}.ui.pointing.label:before,.ui[class*="pointing above"].label:before{border-width:1px 0 0 1px;transform:translateX(-50%) translateY(-50%) rotate(45deg);top:0;left:50%}.ui[class*="bottom pointing"].label,.ui[class*="pointing below"].label{margin-top:0;margin-bottom:1em}.ui[class*="bottom pointing"].label:before,.ui[class*="pointing below"].label:before{border-width:0 1px 1px 0;top:auto;right:auto;transform:translateX(-50%) translateY(-50%) rotate(45deg);top:100%;left:50%}.ui[class*="left pointing"].label{margin-top:0;margin-left:.6666em}.ui[class*="left pointing"].label:before{border-width:0 0 1px 1px;transform:translateX(-50%) translateY(-50%) rotate(45deg);bottom:auto;right:auto;top:50%;left:0}.ui[class*="right pointing"].label{margin-top:0;margin-right:.6666em}.ui[class*="right pointing"].label:before{border-width:1px 1px 0 0;transform:translateX(50%) translateY(-50%) rotate(45deg);top:50%;right:0;bottom:auto;left:auto}.ui.basic.pointing.label:before,.ui.basic[class*="pointing above"].label:before{margin-top:-1px}.ui.basic[class*="bottom pointing"].label:before,.ui.basic[class*="pointing below"].label:before{bottom:auto;top:100%;margin-top:1px}.ui.basic[class*="left pointing"].label:before{top:50%;left:-1px}.ui.basic[class*="right pointing"].label:before{top:50%;right:-1px}.ui.floating.label{position:absolute;z-index:100;top:-1em;left:100%;margin:0 0 0 -1.5em!important}.ui.mini.label,.ui.mini.labels .label{font-size:8.999px;font-size:.64285714rem}.ui.tiny.label,.ui.tiny.labels .label{font-size:9.999px;font-size:.71428571rem}.ui.small.label,.ui.small.labels .label{font-size:11px;font-size:.78571429rem}.ui.label,.ui.labels .label{font-size:12px;font-size:.85714286rem}.ui.large.label,.ui.large.labels .label{font-size:14px;font-size:1rem}.ui.big.label,.ui.big.labels .label{font-size:18px;font-size:1.28571429rem}.ui.huge.label,.ui.huge.labels .label{font-size:20px;font-size:1.42857143rem}.ui.massive.label,.ui.massive.labels .label{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - List
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.list,ol.ui.list,ul.ui.list{list-style-type:none;margin:1em 0;padding:0}.ui.list:first-child,ol.ui.list:first-child,ul.ui.list:first-child{margin-top:0;padding-top:0}.ui.list:last-child,ol.ui.list:last-child,ul.ui.list:last-child{margin-bottom:0;padding-bottom:0}.ui.list .list>.item,.ui.list>.item,ol.ui.list li,ul.ui.list li{display:list-item;table-layout:fixed;list-style-type:none;list-style-position:outside;padding:.21428571em 0;line-height:1.14285714em}.ui.list>.item:after,.ui.list>.list>.item,ol.ui.list>li:first-child:after,ul.ui.list>li:first-child:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.list .list>.item:first-child,.ui.list>.item:first-child,ol.ui.list li:first-child,ul.ui.list li:first-child{padding-top:0}.ui.list .list>.item:last-child,.ui.list>.item:last-child,ol.ui.list li:last-child,ul.ui.list li:last-child{padding-bottom:0}.ui.list .list,ol.ui.list ol,ul.ui.list ul{clear:both;margin:0;padding:.75em 0 .25em .5em}.ui.list .list>.item,ol.ui.list ol li,ul.ui.list ul li{padding:.14285714em 0;line-height:inherit}.ui.list .list>.item>i.icon,.ui.list>.item>i.icon{display:table-cell;margin:0;padding-top:0;padding-right:.28571429em;vertical-align:top;transition:color .1s ease}.ui.list .list>.item>i.icon:only-child,.ui.list>.item>i.icon:only-child{display:inline-block;vertical-align:top}.ui.list .list>.item>.image,.ui.list>.item>.image{display:table-cell;background-color:transparent;margin:0;vertical-align:top}.ui.list .list>.item>.image:not(:only-child):not(img),.ui.list>.item>.image:not(:only-child):not(img){padding-right:.5em}.ui.list .list>.item>.image img,.ui.list>.item>.image img{vertical-align:top}.ui.list .list>.item>.image:only-child,.ui.list .list>.item>img.image,.ui.list>.item>.image:only-child,.ui.list>.item>img.image{display:inline-block}.ui.list .list>.item>.content,.ui.list>.item>.content{line-height:1.14285714em}.ui.list .list>.item>.icon+.content,.ui.list .list>.item>.image+.content,.ui.list>.item>.icon+.content,.ui.list>.item>.image+.content{display:table-cell;width:100%;padding:0 0 0 .5em;vertical-align:top}.ui.list .list>.item>img.image+.content,.ui.list>.item>img.image+.content{display:inline-block;width:auto}.ui.list .list>.item>.content>.list,.ui.list>.item>.content>.list{margin-left:0;padding-left:0}.ui.list .list>.item .header,.ui.list>.item .header{display:block;margin:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.87)}.ui.list .list>.item .description,.ui.list>.item .description{display:block;color:rgba(0,0,0,.7)}.ui.list .list>.item a,.ui.list>.item a{cursor:pointer}.ui.list .list>a.item,.ui.list>a.item{cursor:pointer;color:#2c6a9e}.ui.list .list>a.item:hover,.ui.list>a.item:hover{color:#3277b2}.ui.list .list>a.item i.icon,.ui.list>a.item i.icon{color:rgba(0,0,0,.4)}.ui.list .list>.item a.header,.ui.list>.item a.header{cursor:pointer;color:#2c6a9e!important}.ui.list .list>.item a.header:hover,.ui.list>.item a.header:hover{color:#3277b2!important}.ui[class*="left floated"].list{float:left}.ui[class*="right floated"].list{float:right}.ui.list .list>.item [class*="left floated"],.ui.list>.item [class*="left floated"]{float:left;margin:0 1em 0 0}.ui.list .list>.item [class*="right floated"],.ui.list>.item [class*="right floated"]{float:right;margin:0 0 0 1em}.ui.menu .ui.list .list>.item,.ui.menu .ui.list>.item{display:list-item;table-layout:fixed;background-color:transparent;list-style-type:none;list-style-position:outside;padding:.21428571em 0;line-height:1.14285714em}.ui.menu .ui.list .list>.item:before,.ui.menu .ui.list>.item:before{border:none;background:none}.ui.menu .ui.list .list>.item:first-child,.ui.menu .ui.list>.item:first-child{padding-top:0}.ui.menu .ui.list .list>.item:last-child,.ui.menu .ui.list>.item:last-child{padding-bottom:0}.ui.horizontal.list{display:inline-block;font-size:0}.ui.horizontal.list>.item{display:inline-block;margin-left:1em;font-size:14px;font-size:1rem}.ui.horizontal.list:not(.celled)>.item:first-child{margin-left:0!important;padding-left:0!important}.ui.horizontal.list .list{padding-left:0;padding-bottom:0}.ui.horizontal.list .list>.item>.content,.ui.horizontal.list .list>.item>.icon,.ui.horizontal.list .list>.item>.image,.ui.horizontal.list>.item>.content,.ui.horizontal.list>.item>.icon,.ui.horizontal.list>.item>.image{vertical-align:middle}.ui.horizontal.list>.item:first-child,.ui.horizontal.list>.item:last-child{padding-top:.21428571em;padding-bottom:.21428571em}.ui.horizontal.list>.item>i.icon{margin:0;padding:0 .25em 0 0}.ui.horizontal.list>.item>.icon,.ui.horizontal.list>.item>.icon+.content{float:none;display:inline-block}.ui.list .list>.disabled.item,.ui.list>.disabled.item{pointer-events:none;color:rgba(40,40,40,.3)!important}.ui.inverted.list .list>.disabled.item,.ui.inverted.list>.disabled.item{color:hsla(0,0%,88.2%,.3)!important}.ui.list .list>a.item:hover .icon,.ui.list>a.item:hover .icon{color:rgba(0,0,0,.87)}.ui.inverted.list .list>a.item>.icon,.ui.inverted.list>a.item>.icon{color:hsla(0,0%,100%,.7)}.ui.inverted.list .list>.item .header,.ui.inverted.list>.item .header{color:hsla(0,0%,100%,.9)}.ui.inverted.list .list>.item .description,.ui.inverted.list>.item .description{color:hsla(0,0%,100%,.7)}.ui.inverted.list .list>a.item,.ui.inverted.list>a.item{cursor:pointer;color:hsla(0,0%,100%,.9)}.ui.inverted.list .list>a.item:hover,.ui.inverted.list>a.item:hover{color:#3277b2}.ui.inverted.list .item a:not(.ui){color:hsla(0,0%,100%,.9)!important}.ui.inverted.list .item a:not(.ui):hover{color:#3277b2!important}.ui.list [class*="top aligned"],.ui.list[class*="top aligned"] .content,.ui.list[class*="top aligned"] .image{vertical-align:top!important}.ui.list [class*="middle aligned"],.ui.list[class*="middle aligned"] .content,.ui.list[class*="middle aligned"] .image{vertical-align:middle!important}.ui.list [class*="bottom aligned"],.ui.list[class*="bottom aligned"] .content,.ui.list[class*="bottom aligned"] .image{vertical-align:bottom!important}.ui.link.list .item,.ui.link.list .item a:not(.ui),.ui.link.list a.item{color:rgba(0,0,0,.4);transition:color .1s ease}.ui.link.list.list .item a:not(.ui):hover,.ui.link.list.list a.item:hover{color:rgba(0,0,0,.8)}.ui.link.list.list .item a:not(.ui):active,.ui.link.list.list a.item:active{color:rgba(0,0,0,.9)}.ui.link.list.list .active.item,.ui.link.list.list .active.item a:not(.ui){color:rgba(0,0,0,.95)}.ui.inverted.link.list .item,.ui.inverted.link.list .item a:not(.ui),.ui.inverted.link.list a.item{color:hsla(0,0%,100%,.5)}.ui.inverted.link.list.list .active.item a:not(.ui),.ui.inverted.link.list.list .item a:not(.ui):active,.ui.inverted.link.list.list .item a:not(.ui):hover,.ui.inverted.link.list.list a.active.item,.ui.inverted.link.list.list a.item:active,.ui.inverted.link.list.list a.item:hover{color:#fff}.ui.selection.list .list>.item,.ui.selection.list>.item{cursor:pointer;background:transparent;padding:.5em;margin:0;color:rgba(0,0,0,.4);border-radius:.5em;transition:color .1s ease,padding-left .1s ease,background-color .1s ease}.ui.selection.list .list>.item:last-child,.ui.selection.list>.item:last-child{margin-bottom:0}.ui.selection.list.list>.item:hover,.ui.selection.list>.item:hover{background:rgba(0,0,0,.03);color:rgba(0,0,0,.8)}.ui.selection.list .list>.item:active,.ui.selection.list>.item:active{background:rgba(0,0,0,.05);color:rgba(0,0,0,.9)}.ui.selection.list .list>.item.active,.ui.selection.list>.item.active{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.inverted.selection.list>.item{background:transparent;color:hsla(0,0%,100%,.5)}.ui.inverted.selection.list>.item:hover{background:hsla(0,0%,100%,.02);color:#fff}.ui.inverted.selection.list>.item.active,.ui.inverted.selection.list>.item:active{background:hsla(0,0%,100%,.08);color:#fff}.ui.celled.selection.list .list>.item,.ui.celled.selection.list>.item,.ui.divided.selection.list .list>.item,.ui.divided.selection.list>.item{border-radius:0}.ui.animated.list>.item{transition:color .25s ease .1s,padding-left .25s ease .1s,background-color .25s ease .1s}.ui.animated.list:not(.horizontal)>.item:hover{padding-left:1em}.ui.fitted.list:not(.selection) .list>.item,.ui.fitted.list:not(.selection)>.item{padding-left:0;padding-right:0}.ui.fitted.selection.list .list>.item,.ui.fitted.selection.list>.item{margin-left:-.5em;margin-right:-.5em}.ui.bulleted.list,ul.ui.list{margin-left:1.25rem}.ui.bulleted.list .list>.item,.ui.bulleted.list>.item,ul.ui.list li{position:relative}.ui.bulleted.list .list>.item:before,.ui.bulleted.list>.item:before,ul.ui.list li:before{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;position:absolute;top:auto;left:auto;font-weight:400;margin-left:-1.25rem;content:"•";opacity:1;color:inherit;vertical-align:top}.ui.bulleted.list .list>a.item:before,.ui.bulleted.list>a.item:before,ul.ui.list li:before{color:rgba(0,0,0,.87)}.ui.bulleted.list .list,ul.ui.list ul{padding-left:1.25rem}.ui.horizontal.bulleted.list,ul.ui.horizontal.bulleted.list{margin-left:0}.ui.horizontal.bulleted.list>.item,ul.ui.horizontal.bulleted.list li{margin-left:1.75rem}.ui.horizontal.bulleted.list>.item:first-child,ul.ui.horizontal.bulleted.list li:first-child{margin-left:0}.ui.horizontal.bulleted.list>.item:before,ul.ui.horizontal.bulleted.list li:before{color:rgba(0,0,0,.87)}.ui.horizontal.bulleted.list>.item:first-child:before,ul.ui.horizontal.bulleted.list li:first-child:before{display:none}.ui.ordered.list,.ui.ordered.list .list,ol.ui.list,ol.ui.list ol{counter-reset:ordered;margin-left:1.25rem;list-style-type:none}.ui.ordered.list .list>.item,.ui.ordered.list>.item,ol.ui.list li{list-style-type:none;position:relative}.ui.ordered.list .list>.item:before,.ui.ordered.list>.item:before,ol.ui.list li:before{position:absolute;top:auto;left:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;margin-left:-1.25rem;counter-increment:ordered;content:counters(ordered,".") " ";text-align:right;color:rgba(0,0,0,.87);vertical-align:middle;opacity:.8}.ui.ordered.inverted.list .list>.item:before,.ui.ordered.inverted.list>.item:before,ol.ui.inverted.list li:before{color:hsla(0,0%,100%,.7)}.ui.ordered.list>.item[data-value],.ui.ordered.list>.list>.item[data-value]{content:attr(data-value)}ol.ui.list li[value]:before{content:attr(value)}.ui.ordered.list .list,ol.ui.list ol{margin-left:1em}.ui.ordered.list .list>.item:before,ol.ui.list ol li:before{margin-left:-2em}.ui.ordered.horizontal.list,ol.ui.horizontal.list{margin-left:0}.ui.ordered.horizontal.list .list>.item:before,.ui.ordered.horizontal.list>.item:before,ol.ui.horizontal.list li:before{position:static;margin:0 .5em 0 0}.ui.divided.list>.item{border-top:1px solid rgba(34,36,38,.15)}.ui.divided.list .item .list>.item,.ui.divided.list .list>.item,.ui.divided.list .list>.item:first-child,.ui.divided.list>.item:first-child{border-top:none}.ui.divided.list:not(.horizontal) .list>.item:first-child{border-top-width:1px}.ui.divided.bulleted.list .list,.ui.divided.bulleted.list:not(.horizontal){margin-left:0;padding-left:0}.ui.divided.bulleted.list>.item:not(.horizontal){padding-left:1.25rem}.ui.divided.ordered.list{margin-left:0}.ui.divided.ordered.list .list>.item,.ui.divided.ordered.list>.item{padding-left:1.25rem}.ui.divided.ordered.list .item .list{margin-left:0;margin-right:0;padding-bottom:.21428571em}.ui.divided.ordered.list .item .list>.item{padding-left:1em}.ui.divided.selection.list .list>.item,.ui.divided.selection.list>.item{margin:0;border-radius:0}.ui.divided.horizontal.list{margin-left:0}.ui.divided.horizontal.list>.item:not(:first-child){padding-left:.5em}.ui.divided.horizontal.list>.item:not(:last-child){padding-right:.5em}.ui.divided.horizontal.list>.item{border-top:none;border-left:1px solid rgba(34,36,38,.15);margin:0;line-height:.6}.ui.horizontal.divided.list>.item:first-child{border-left:none}.ui.divided.inverted.horizontal.list>.item,.ui.divided.inverted.list>.item,.ui.divided.inverted.list>.list{border-color:hsla(0,0%,100%,.1)}.ui.celled.list>.item,.ui.celled.list>.list{border-top:1px solid rgba(34,36,38,.15);padding-left:.5em;padding-right:.5em}.ui.celled.list>.item:last-child{border-bottom:1px solid rgba(34,36,38,.15)}.ui.celled.list>.item:first-child,.ui.celled.list>.item:last-child{padding-top:.21428571em;padding-bottom:.21428571em}.ui.celled.list .item .list>.item{border-width:0}.ui.celled.list .list>.item:first-child{border-top-width:0}.ui.celled.bulleted.list{margin-left:0}.ui.celled.bulleted.list .list>.item,.ui.celled.bulleted.list>.item{padding-left:1.25rem}.ui.celled.bulleted.list .item .list{margin-left:-1.25rem;margin-right:-1.25rem;padding-bottom:.21428571em}.ui.celled.ordered.list{margin-left:0}.ui.celled.ordered.list .list>.item,.ui.celled.ordered.list>.item{padding-left:1.25rem}.ui.celled.ordered.list .item .list{margin-left:0;margin-right:0;padding-bottom:.21428571em}.ui.celled.ordered.list .list>.item{padding-left:1em}.ui.horizontal.celled.list{margin-left:0}.ui.horizontal.celled.list .list>.item,.ui.horizontal.celled.list>.item{border-top:none;border-left:1px solid rgba(34,36,38,.15);margin:0;padding-left:.5em;padding-right:.5em;line-height:.6}.ui.horizontal.celled.list .list>.item:last-child,.ui.horizontal.celled.list>.item:last-child{border-bottom:none;border-right:1px solid rgba(34,36,38,.15)}.ui.celled.inverted.horizontal.list .list>.item,.ui.celled.inverted.horizontal.list>.item,.ui.celled.inverted.list>.item,.ui.celled.inverted.list>.list{border-color:1px solid hsla(0,0%,100%,.1)}.ui.relaxed.list:not(.horizontal)>.item:not(:first-child){padding-top:.42857143em}.ui.relaxed.list:not(.horizontal)>.item:not(:last-child){padding-bottom:.42857143em}.ui.horizontal.relaxed.list .list>.item:not(:first-child),.ui.horizontal.relaxed.list>.item:not(:first-child){padding-left:1rem}.ui.horizontal.relaxed.list .list>.item:not(:last-child),.ui.horizontal.relaxed.list>.item:not(:last-child){padding-right:1rem}.ui[class*="very relaxed"].list:not(.horizontal)>.item:not(:first-child){padding-top:.85714286em}.ui[class*="very relaxed"].list:not(.horizontal)>.item:not(:last-child){padding-bottom:.85714286em}.ui.horizontal[class*="very relaxed"].list .list>.item:not(:first-child),.ui.horizontal[class*="very relaxed"].list>.item:not(:first-child){padding-left:1.5rem}.ui.horizontal[class*="very relaxed"].list .list>.item:not(:last-child),.ui.horizontal[class*="very relaxed"].list>.item:not(:last-child){padding-right:1.5rem}.ui.mini.list{font-size:.78571429em}.ui.tiny.list{font-size:.85714286em}.ui.small.list{font-size:.92857143em}.ui.list{font-size:1em}.ui.large.list{font-size:1.14285714em}.ui.big.list{font-size:1.28571429em}.ui.huge.list{font-size:1.42857143em}.ui.massive.list{font-size:1.71428571em}.ui.mini.horizontal.list .list>.item,.ui.mini.horizontal.list>.item{font-size:11px;font-size:.78571429rem}.ui.tiny.horizontal.list .list>.item,.ui.tiny.horizontal.list>.item{font-size:12px;font-size:.85714286rem}.ui.small.horizontal.list .list>.item,.ui.small.horizontal.list>.item{font-size:13px;font-size:.92857143rem}.ui.horizontal.list .list>.item,.ui.horizontal.list>.item{font-size:14px;font-size:1rem}.ui.large.horizontal.list .list>.item,.ui.large.horizontal.list>.item{font-size:15.999px;font-size:1.14285714rem}.ui.big.horizontal.list .list>.item,.ui.big.horizontal.list>.item{font-size:18px;font-size:1.28571429rem}.ui.huge.horizontal.list .list>.item,.ui.huge.horizontal.list>.item{font-size:20px;font-size:1.42857143rem}.ui.massive.horizontal.list .list>.item,.ui.massive.horizontal.list>.item{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Loader
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;transform:translateX(-50%) translateY(-50%)}.ui.loader:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after,.ui.loader:before{position:absolute;content:"";top:0;left:50%;width:100%;height:100%}.ui.loader:after{-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}@-webkit-keyframes loader{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes loader{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.mini.loader:after,.ui.mini.loader:before{width:14px;width:1rem;height:14px;height:1rem;margin:0 0 0 -.5rem}.ui.tiny.loader:after,.ui.tiny.loader:before{width:15.999px;width:1.14285714rem;height:15.999px;height:1.14285714rem;margin:0 0 0 -.57142857rem}.ui.small.loader:after,.ui.small.loader:before{width:23.999px;width:1.71428571rem;height:23.999px;height:1.71428571rem;margin:0 0 0 -.85714286rem}.ui.loader:after,.ui.loader:before{width:32px;width:2.28571429rem;height:32px;height:2.28571429rem;margin:0 0 0 -1.14285714rem}.ui.large.loader:after,.ui.large.loader:before{width:48px;width:3.42857143rem;height:48px;height:3.42857143rem;margin:0 0 0 -1.71428571rem}.ui.big.loader:after,.ui.big.loader:before{width:51.999px;width:3.71428571rem;height:51.999px;height:3.71428571rem;margin:0 0 0 -1.85714286rem}.ui.huge.loader:after,.ui.huge.loader:before{width:57.999px;width:4.14285714rem;height:57.999px;height:4.14285714rem;margin:0 0 0 -2.07142857rem}.ui.massive.loader:after,.ui.massive.loader:before{width:63.999px;width:4.57142857rem;height:63.999px;height:4.57142857rem;margin:0 0 0 -2.28571429rem}.ui.dimmer .loader{display:block}.ui.dimmer .ui.loader{color:hsla(0,0%,100%,.9)}.ui.dimmer .ui.loader:before{border-color:hsla(0,0%,100%,.15)}.ui.dimmer .ui.loader:after{border-color:#fff transparent transparent}.ui.inverted.dimmer .ui.loader{color:rgba(0,0,0,.87)}.ui.inverted.dimmer .ui.loader:before{border-color:rgba(0,0,0,.1)}.ui.inverted.dimmer .ui.loader:after{border-color:#767676 transparent transparent}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.indeterminate.loader:after{animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:14px;width:1rem;height:14px;height:1rem;font-size:.78571429em}.ui.inverted.dimmer .ui.tiny.loader,.ui.tiny.loader{width:15.999px;width:1.14285714rem;height:15.999px;height:1.14285714rem;font-size:.85714286em}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:23.999px;width:1.71428571rem;height:23.999px;height:1.71428571rem;font-size:.92857143em}.ui.inverted.dimmer .ui.loader,.ui.loader{width:32px;width:2.28571429rem;height:32px;height:2.28571429rem;font-size:1em}.ui.inverted.dimmer .ui.large.loader,.ui.large.loader{width:48px;width:3.42857143rem;height:48px;height:3.42857143rem;font-size:1.14285714em}.ui.big.loader,.ui.inverted.dimmer .ui.big.loader{width:51.999px;width:3.71428571rem;height:51.999px;height:3.71428571rem;font-size:1.28571429em}.ui.huge.loader,.ui.inverted.dimmer .ui.huge.loader{width:57.999px;width:4.14285714rem;height:57.999px;height:4.14285714rem;font-size:1.42857143em}.ui.inverted.dimmer .ui.massive.loader,.ui.massive.loader{width:63.999px;width:4.57142857rem;height:63.999px;height:4.57142857rem;font-size:1.71428571em}.ui.mini.text.loader{min-width:14px;min-width:1rem;padding-top:1.78571429rem}.ui.tiny.text.loader{min-width:15.999px;min-width:1.14285714rem;padding-top:1.92857143rem}.ui.small.text.loader{min-width:23.999px;min-width:1.71428571rem;padding-top:2.5rem}.ui.text.loader{min-width:32px;min-width:2.28571429rem;padding-top:3.07142857rem}.ui.large.text.loader{min-width:48px;min-width:3.42857143rem;padding-top:4.21428571rem}.ui.big.text.loader{min-width:51.999px;min-width:3.71428571rem;padding-top:4.5rem}.ui.huge.text.loader{min-width:57.999px;min-width:4.14285714rem;padding-top:4.92857143rem}.ui.massive.text.loader{min-width:63.999px;min-width:4.57142857rem;padding-top:5.35714286rem}.ui.inverted.loader{color:hsla(0,0%,100%,.9)}.ui.inverted.loader:before{border-color:hsla(0,0%,100%,.15)}.ui.inverted.loader:after{border-top-color:#fff}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.centered.inline.loader.active,.ui.centered.inline.loader.visible{display:block;margin-left:auto;margin-right:auto}
/*!
 * # Semantic UI - Loader
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.placeholder{position:static;overflow:hidden;-webkit-animation:placeholderShimmer 2s linear;animation:placeholderShimmer 2s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;background-color:#fff;background-image:linear-gradient(90deg,rgba(0,0,0,.08) 0,rgba(0,0,0,.15) 15%,rgba(0,0,0,.08) 30%);background-size:1200px 100%;max-width:420px;max-width:30rem}@-webkit-keyframes placeholderShimmer{0%{background-position:-1200px 0}to{background-position:1200px 0}}@keyframes placeholderShimmer{0%{background-position:-1200px 0}to{background-position:1200px 0}}.ui.placeholder+.ui.placeholder{margin-top:2rem;-webkit-animation-delay:.15s;animation-delay:.15s}.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.3s;animation-delay:.3s}.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.45s;animation-delay:.45s}.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder+.ui.placeholder{-webkit-animation-delay:.6s;animation-delay:.6s}.ui.placeholder,.ui.placeholder .image.header:after,.ui.placeholder .line,.ui.placeholder .line:after,.ui.placeholder>:before{background-color:#fff}.ui.placeholder .image:not(.header):not(.ui){height:100px}.ui.placeholder .square.image:not(.header){height:0;overflow:hidden;padding-top:100%}.ui.placeholder .rectangular.image:not(.header){height:0;overflow:hidden;padding-top:75%}.ui.placeholder .line{position:relative;height:.85714286em}.ui.placeholder .line:after,.ui.placeholder .line:before{top:100%;position:absolute;content:"";background-color:inherit}.ui.placeholder .line:before{left:0}.ui.placeholder .line:after{right:0}.ui.placeholder .line{margin-bottom:.5em}.ui.placeholder .line:after,.ui.placeholder .line:before{height:.5em}.ui.placeholder .line:not(:first-child){margin-top:.5em}.ui.placeholder .header{position:relative;overflow:hidden}.ui.placeholder .line:first-child:after{width:0}.ui.placeholder .line:nth-child(2):after{width:50%}.ui.placeholder .line:nth-child(3):after{width:10%}.ui.placeholder .line:nth-child(4):after{width:35%}.ui.placeholder .line:nth-child(5):after{width:65%}.ui.placeholder .header .line{margin-bottom:.64285714em}.ui.placeholder .header .line:after,.ui.placeholder .header .line:before{height:.64285714em}.ui.placeholder .header .line:not(:first-child){margin-top:.64285714em}.ui.placeholder .header .line:after{width:20%}.ui.placeholder .header .line:nth-child(2):after{width:60%}.ui.placeholder .image.header .line{margin-left:3em}.ui.placeholder .image.header .line:before{width:9.999px;width:.71428571rem}.ui.placeholder .image.header:after{display:block;height:.85714286em;content:"";margin-left:3em}.ui.placeholder .header .line:first-child,.ui.placeholder .image .line:first-child,.ui.placeholder .paragraph .line:first-child{height:.01px}.ui.placeholder .header:not(:first-child):before,.ui.placeholder .image:not(:first-child):before,.ui.placeholder .paragraph:not(:first-child):before{height:1.42857143em;content:"";display:block}.ui.inverted.placeholder{background-image:linear-gradient(90deg,hsla(0,0%,100%,.08) 0,hsla(0,0%,100%,.14) 15%,hsla(0,0%,100%,.08) 30%)}.ui.inverted.placeholder,.ui.inverted.placeholder .image.header:after,.ui.inverted.placeholder .line,.ui.inverted.placeholder .line:after,.ui.inverted.placeholder>:before{background-color:#1b1c1d}.ui.placeholder .full.line.line.line:after{width:0}.ui.placeholder .very.long.line.line.line:after{width:10%}.ui.placeholder .long.line.line.line:after{width:35%}.ui.placeholder .medium.line.line.line:after{width:50%}.ui.placeholder .short.line.line.line:after{width:65%}.ui.placeholder .very.short.line.line.line:after{width:80%}.ui.fluid.placeholder{max-width:none}
/*!
 * # Semantic UI - Rail
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.rail{position:absolute;top:0;width:300px;height:100%}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%}.ui.left.internal.rail,.ui.right.rail{right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid rgba(34,36,38,.15)}.ui.right.dividing.rail{border-left:1px solid rgba(34,36,38,.15);padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:calc(300px + 1em)}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:calc(300px + .5em)}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.mini.rail{font-size:11px;font-size:.78571429rem}.ui.tiny.rail{font-size:12px;font-size:.85714286rem}.ui.small.rail{font-size:13px;font-size:.92857143rem}.ui.rail{font-size:14px;font-size:1rem}.ui.large.rail{font-size:15.999px;font-size:1.14285714rem}.ui.big.rail{font-size:18px;font-size:1.28571429rem}.ui.huge.rail{font-size:20px;font-size:1.42857143rem}.ui.massive.rail{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Reveal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.reveal{display:inherit;position:relative!important;font-size:0!important}.ui.reveal>.visible.content{position:absolute!important;top:0!important;left:0!important;z-index:3!important;transition:all .5s ease .1s}.ui.reveal>.hidden.content{position:relative!important;z-index:2!important}.ui.active.reveal .visible.content,.ui.reveal:hover .visible.content{z-index:4!important}.ui.slide.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;width:100%;white-space:normal;float:left;margin:0;transition:transform .5s ease .1s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important;transform:translateX(100%)!important}.ui.slide.active.reveal>.visible.content,.ui.slide.reveal:hover>.visible.content{transform:translateX(-100%)!important}.ui.slide.active.reveal>.hidden.content,.ui.slide.reveal:hover>.hidden.content,.ui.slide.right.reveal>.visible.content{transform:translateX(0)!important}.ui.slide.right.reveal>.hidden.content{transform:translateX(-100%)!important}.ui.slide.right.active.reveal>.visible.content,.ui.slide.right.reveal:hover>.visible.content{transform:translateX(100%)!important}.ui.slide.right.active.reveal>.hidden.content,.ui.slide.right.reveal:hover>.hidden.content{transform:translateX(0)!important}.ui.slide.up.reveal>.hidden.content{transform:translateY(100%)!important}.ui.slide.up.active.reveal>.visible.content,.ui.slide.up.reveal:hover>.visible.content{transform:translateY(-100%)!important}.ui.slide.up.active.reveal>.hidden.content,.ui.slide.up.reveal:hover>.hidden.content{transform:translateY(0)!important}.ui.slide.down.reveal>.hidden.content{transform:translateY(-100%)!important}.ui.slide.down.active.reveal>.visible.content,.ui.slide.down.reveal:hover>.visible.content{transform:translateY(100%)!important}.ui.slide.down.active.reveal>.hidden.content,.ui.slide.down.reveal:hover>.hidden.content{transform:translateY(0)!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.active.reveal>.visible.content,.ui.fade.reveal:hover>.visible.content{opacity:0}.ui.move.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.move.reveal>.content{display:block;float:left;white-space:normal;margin:0;transition:transform .5s cubic-bezier(.175,.885,.32,1) .1s}.ui.move.reveal>.visible.content{position:relative!important}.ui.move.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important}.ui.move.active.reveal>.visible.content,.ui.move.reveal:hover>.visible.content{transform:translateX(-100%)!important}.ui.move.right.active.reveal>.visible.content,.ui.move.right.reveal:hover>.visible.content{transform:translateX(100%)!important}.ui.move.up.active.reveal>.visible.content,.ui.move.up.reveal:hover>.visible.content{transform:translateY(-100%)!important}.ui.move.down.active.reveal>.visible.content,.ui.move.down.reveal:hover>.visible.content{transform:translateY(100%)!important}.ui.rotate.reveal>.visible.content{transition-duration:.5s;transform:rotate(0deg)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{transform-origin:bottom right}.ui.rotate.active.reveal>.visible.content,.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.active.reveal>.visible.content,.ui.rotate.right.reveal:hover>.visible.content{transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{transform-origin:bottom left}.ui.rotate.left.active.reveal>.visible.content,.ui.rotate.left.reveal:hover>.visible.content{transform:rotate(-110deg)}.ui.disabled.reveal:hover>.visible.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.hidden.content{display:none!important}.ui.reveal>.ui.ribbon.label{z-index:5}.ui.visible.reveal{overflow:visible}.ui.instant.reveal>.content{transition-delay:0s!important}.ui.reveal>.content{font-size:14px!important;font-size:1rem!important}
/*!
 * # Semantic UI - Segment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.segment{position:relative;background:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15);margin:1rem 0;padding:1em;border-radius:.21428571rem;border:none}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.vertical.segment{margin:0;padding-left:0;padding-right:0;background:none transparent;border-radius:0;box-shadow:none;border:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.segment:last-child{border-bottom:none}.ui.inverted.segment>.ui.header{color:#fff}.ui[class*="bottom attached"].segment>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui[class*="top attached"].segment>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.grid>.row>.ui.segment.column,.ui.grid>.ui.segment.column,.ui.page.grid.segment{padding-top:2em;padding-bottom:2em}.ui.grid.segment{margin:1rem 0;border-radius:.21428571rem}.ui.basic.table.segment{background:#fff;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15)}.ui[class*="very basic"].table.segment{padding:1em}.ui.placeholder.segment{display:flex;flex-direction:column;justify-content:center;align-items:stretch;max-width:none;-webkit-animation:none;animation:none;overflow:visible;padding:1em;min-height:252px;min-height:18rem;background:#f9fafb;border-color:rgba(34,36,38,.15);box-shadow:inset 0 2px 25px 0 rgba(34,36,38,.05)}.ui.placeholder.segment .button,.ui.placeholder.segment textarea{display:block}.ui.placeholder.segment .button,.ui.placeholder.segment .column .button,.ui.placeholder.segment .column .field,.ui.placeholder.segment .column>.ui.input,.ui.placeholder.segment .column textarea,.ui.placeholder.segment .field,.ui.placeholder.segment>.ui.input,.ui.placeholder.segment textarea{max-width:210px;max-width:15rem;margin-left:auto;margin-right:auto}.ui.placeholder.segment>.inline{align-self:center}.ui.placeholder.segment>.inline>.button{display:inline-block;width:auto;margin:0 .35714286rem 0 0}.ui.placeholder.segment>.inline>.button:last-child{margin-right:0}.ui.piled.segment,.ui.piled.segments{margin:3em 0;box-shadow:"";z-index:auto}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before,.ui.piled.segments:after,.ui.piled.segments:before{background-color:#fff;visibility:visible;content:"";display:block;height:100%;left:0;position:absolute;width:100%;border:none;box-shadow:""}.ui.piled.segment:before,.ui.piled.segments:before{transform:rotate(-1.2deg);top:0;z-index:-2}.ui.piled.segment:after,.ui.piled.segments:after{transform:rotate(1.2deg);top:0;z-index:-1}.ui[class*="top attached"].piled.segment{margin-top:3em;margin-bottom:0}.ui.piled.segment[class*="top attached"]:first-child{margin-top:0}.ui.piled.segment[class*="bottom attached"]{margin-top:0;margin-bottom:3em}.ui.piled.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.stacked.segment{padding-bottom:1.4em}.ui.stacked.segment:after,.ui.stacked.segment:before,.ui.stacked.segments:after,.ui.stacked.segments:before{content:"";position:absolute;bottom:-3px;left:0;border-top:1px solid rgba(34,36,38,.15);background:rgba(0,0,0,.03);width:100%;height:6px;visibility:visible}.ui.stacked.segment:before,.ui.stacked.segments:before{display:none}.ui.tall.stacked.segment:before,.ui.tall.stacked.segments:before{display:block;bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before,.ui.stacked.inverted.segments:after,.ui.stacked.inverted.segments:before{background-color:rgba(0,0,0,.03);border-top:1px solid rgba(34,36,38,.35)}.ui.padded.segment{padding:1.5em}.ui[class*="very padded"].segment{padding:3em}.ui.padded.segment.vertical.segment,.ui[class*="very padded"].vertical.segment{padding-left:0;padding-right:0}.ui.compact.segment{display:table}.ui.compact.segments{display:inline-flex}.ui.compact.segments .segment,.ui.segments .compact.segment{display:block;flex:0 1 auto}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.segment,.ui.raised.segments{box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.segments{flex-direction:column;position:relative;margin:1rem 0;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15);border-radius:.21428571rem}.ui.segments:first-child{margin-top:0}.ui.segments:last-child{margin-bottom:0}.ui.segments>.segment{top:0;bottom:0;border-radius:0;margin:0;width:auto;box-shadow:none;border:none}.ui.segments:not(.horizontal)>.segment:first-child{border-top:none;margin-top:0;bottom:0;margin-bottom:0;top:0;border-radius:.21428571rem .21428571rem 0 0}.ui.segments:not(.horizontal)>.segment:last-child{top:0;bottom:0;margin-top:0;margin-bottom:0;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15),none;border-radius:0 0 .21428571rem .21428571rem}.ui.segments:not(.horizontal)>.segment:only-child{border-radius:.21428571rem}.ui.segments>.ui.segments{border-top:none;margin:1rem}.ui.segments>.segments:first-child{border-top:none}.ui.segments>.segment+.segments:not(.horizontal){margin-top:0}.ui.horizontal.segments{display:flex;flex-direction:row;background-color:transparent;border-radius:0;padding:0;background-color:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15);margin:1rem 0;border-radius:.21428571rem;border:none}.ui.horizontal.segments>.segment,.ui.segments>.horizontal.segments{margin:0;background-color:transparent;border-radius:0;box-shadow:none;border:none}.ui.horizontal.segments>.segment{flex:1 1 auto;-ms-flex:1 1 0px;min-width:0;border-left:1px solid rgba(34,36,38,.15)}.ui.segments>.horizontal.segments:first-child{border-top:none}.ui.horizontal.segments>.segment:first-child{border-left:none}.ui.disabled.segment{opacity:.45;color:rgba(40,40,40,.3)}.ui.loading.segment{position:relative;cursor:default;pointer-events:none;text-shadow:none!important;color:transparent!important;transition:all 0s linear}.ui.loading.segment:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;border-radius:.21428571rem;z-index:100}.ui.loading.segment:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}@-webkit-keyframes segment-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes segment-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.basic.segment{background:none transparent;box-shadow:none;border:none;border-radius:0}.ui.clearing.segment:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.red.segment:not(.inverted){border-top:2px solid #db2828!important}.ui.inverted.red.segment{background-color:#db2828!important;color:#fff!important}.ui.orange.segment:not(.inverted){border-top:2px solid #f2711c!important}.ui.inverted.orange.segment{background-color:#f2711c!important;color:#fff!important}.ui.yellow.segment:not(.inverted){border-top:2px solid #fbbd08!important}.ui.inverted.yellow.segment{background-color:#fbbd08!important;color:#fff!important}.ui.olive.segment:not(.inverted){border-top:2px solid #b5cc18!important}.ui.inverted.olive.segment{background-color:#b5cc18!important;color:#fff!important}.ui.green.segment:not(.inverted){border-top:2px solid #21ba45!important}.ui.inverted.green.segment{background-color:#21ba45!important;color:#fff!important}.ui.teal.segment:not(.inverted){border-top:2px solid #00b5ad!important}.ui.inverted.teal.segment{background-color:#00b5ad!important;color:#fff!important}.ui.blue.segment:not(.inverted){border-top:2px solid #2c6a9e!important}.ui.inverted.blue.segment{background-color:#2c6a9e!important;color:#fff!important}.ui.violet.segment:not(.inverted){border-top:2px solid #6435c9!important}.ui.inverted.violet.segment{background-color:#6435c9!important;color:#fff!important}.ui.purple.segment:not(.inverted){border-top:2px solid #a333c8!important}.ui.inverted.purple.segment{background-color:#a333c8!important;color:#fff!important}.ui.pink.segment:not(.inverted){border-top:2px solid #e03997!important}.ui.inverted.pink.segment{background-color:#e03997!important;color:#fff!important}.ui.brown.segment:not(.inverted){border-top:2px solid #a5673f!important}.ui.inverted.brown.segment{background-color:#a5673f!important;color:#fff!important}.ui.grey.segment:not(.inverted){border-top:2px solid #767676!important}.ui.inverted.grey.segment{background-color:#767676!important;color:#fff!important}.ui.black.segment:not(.inverted){border-top:2px solid #1b1c1d!important}.ui.inverted.black.segment{background-color:#1b1c1d!important;color:#fff!important}.ui[class*="left aligned"].segment{text-align:left}.ui[class*="right aligned"].segment{text-align:right}.ui[class*="center aligned"].segment{text-align:center}.ui.floated.segment,.ui[class*="left floated"].segment{float:left;margin-right:1em}.ui[class*="right floated"].segment{float:right;margin-left:1em}.ui.inverted.segment{border:none;box-shadow:none}.ui.inverted.segment,.ui.primary.inverted.segment{background:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.inverted.segment .segment{color:rgba(0,0,0,.87)}.ui.inverted.segment .inverted.segment{color:hsla(0,0%,100%,.9)}.ui.inverted.attached.segment{border-color:#555}.ui.secondary.segment{background:#f3f4f5;color:rgba(0,0,0,.6)}.ui.secondary.inverted.segment{background:#4c4f52 linear-gradient(hsla(0,0%,100%,.2),hsla(0,0%,100%,.2));color:hsla(0,0%,100%,.8)}.ui.tertiary.segment{background:#dcddde;color:rgba(0,0,0,.6)}.ui.tertiary.inverted.segment{background:#717579 linear-gradient(hsla(0,0%,100%,.35),hsla(0,0%,100%,.35));color:hsla(0,0%,100%,.8)}.ui.attached.segment{top:0;bottom:0;border-radius:0;margin:0 -1px;width:102%;max-width:102%;box-shadow:none;border:1px solid #d4d4d5}.ui.attached:not(.message)+.ui.attached.segment:not(.top){border-top:none}.ui[class*="top attached"].segment{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.21428571rem .21428571rem 0 0}.ui.segment[class*="top attached"]:first-child{margin-top:0}.ui.segment[class*="bottom attached"]{bottom:0;margin-top:0;top:0;margin-bottom:1rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15),none;border-radius:0 0 .21428571rem .21428571rem}.ui.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.mini.segment,.ui.mini.segments .segment{font-size:11px;font-size:.78571429rem}.ui.tiny.segment,.ui.tiny.segments .segment{font-size:12px;font-size:.85714286rem}.ui.small.segment,.ui.small.segments .segment{font-size:13px;font-size:.92857143rem}.ui.segment,.ui.segments .segment{font-size:14px;font-size:1rem}.ui.large.segment,.ui.large.segments .segment{font-size:15.999px;font-size:1.14285714rem}.ui.big.segment,.ui.big.segments .segment{font-size:18px;font-size:1.28571429rem}.ui.huge.segment,.ui.huge.segments .segment{font-size:20px;font-size:1.42857143rem}.ui.massive.segment,.ui.massive.segments .segment{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Step
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.steps{display:inline-flex;flex-direction:row;align-items:stretch;margin:1em 0;background:"";box-shadow:none;line-height:1.14285714em;border-radius:.21428571rem;border:1px solid rgba(34,36,38,.15)}.ui.steps:first-child{margin-top:0}.ui.steps:last-child{margin-bottom:0}.ui.steps .step{position:relative;display:flex;flex:1 0 auto;flex-wrap:wrap;flex-direction:row;vertical-align:middle;align-items:center;justify-content:center;margin:0;padding:1.14285714em 2em;background:#fff;color:rgba(0,0,0,.87);box-shadow:none;border-radius:0;border:none;border-right:1px solid rgba(34,36,38,.15)}.ui.steps .step,.ui.steps .step:after{transition:background-color .1s ease,opacity .1s ease,color .1s ease,box-shadow .1s ease}.ui.steps .step:after{display:none;position:absolute;z-index:2;content:"";top:50%;right:0;background-color:#fff;width:1.14285714em;height:1.14285714em;border:solid rgba(34,36,38,.15);border-width:0 1px 1px 0;transform:translateY(-50%) translateX(50%) rotate(-45deg)}.ui.steps .step:first-child{padding-left:2em;border-radius:.21428571rem 0 0 .21428571rem}.ui.steps .step:last-child{border-radius:0 .21428571rem .21428571rem 0;border-right:none;margin-right:0}.ui.steps .step:only-child{border-radius:.21428571rem}.ui.steps .step .title{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.14285714em;font-weight:700}.ui.steps .step>.title{width:100%}.ui.steps .step .description{font-weight:400;font-size:.92857143em;color:rgba(0,0,0,.87)}.ui.steps .step>.description{width:100%}.ui.steps .step .title~.description{margin-top:.25em}.ui.steps .step>.icon{line-height:1;font-size:2.5em;margin:0 1rem 0 0}.ui.steps .step>.icon,.ui.steps .step>.icon~.content{display:block;flex:0 1 auto;align-self:middle}.ui.steps .step>.icon~.content{flex-grow:1 0 auto}.ui.steps:not(.vertical) .step>.icon{width:auto}.ui.steps .link.step,.ui.steps a.step{cursor:pointer}.ui.ordered.steps{counter-reset:ordered}.ui.ordered.steps .step:before{position:static;text-align:center;content:counters(ordered,".");margin-right:1rem;font-size:2.5em;counter-increment:ordered;font-family:inherit;font-weight:700}.ui.ordered.steps .step:before,.ui.ordered.steps .step>*{display:block;align-self:middle}.ui.vertical.steps{display:inline-flex;flex-direction:column;overflow:visible}.ui.vertical.steps .step{justify-content:flex-start;border-radius:0;padding:1.14285714em 2em;border-right:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.steps .step:first-child{padding:1.14285714em 2em;border-radius:.21428571rem .21428571rem 0 0}.ui.vertical.steps .step:last-child{border-bottom:none;border-radius:0 0 .21428571rem .21428571rem}.ui.vertical.steps .step:only-child{border-radius:.21428571rem}.ui.vertical.steps .step:after{top:50%;right:0;border-width:0 1px 1px 0;display:none}.ui.vertical.steps .active.step:after{display:block}.ui.vertical.steps .step:last-child:after{display:none}.ui.vertical.steps .active.step:last-child:after{display:block}@media only screen and (max-width:767px){.ui.steps:not(.unstackable){display:inline-flex;overflow:visible;flex-direction:column}.ui.steps:not(.unstackable) .step{width:100%!important;flex-direction:column;border-radius:0;padding:1.14285714em 2em}.ui.steps:not(.unstackable) .step:first-child{padding:1.14285714em 2em;border-radius:.21428571rem .21428571rem 0 0}.ui.steps:not(.unstackable) .step:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.steps:not(.unstackable) .step:after{display:none!important}.ui.steps:not(.unstackable) .step .content{text-align:center}.ui.ordered.steps:not(.unstackable) .step:before,.ui.steps:not(.unstackable) .step>.icon{margin:0 0 1rem}}.ui.steps .link.step:hover,.ui.steps .link.step:hover:after,.ui.steps a.step:hover,.ui.steps a.step:hover:after{background:#f9fafb;color:rgba(0,0,0,.8)}.ui.steps .link.step:active,.ui.steps .link.step:active:after,.ui.steps a.step:active,.ui.steps a.step:active:after{background:#f3f4f5;color:rgba(0,0,0,.9)}.ui.steps .step.active{cursor:auto;background:#f3f4f5}.ui.steps .step.active:after{background:#f3f4f5}.ui.steps .step.active .title{color:#2c6a9e}.ui.ordered.steps .step.active:before,.ui.steps .active.step .icon{color:rgba(0,0,0,.85)}.ui.steps .active.step:after,.ui.steps .step:after{display:block}.ui.steps .active.step:last-child:after,.ui.steps .step:last-child:after{display:none}.ui.steps .link.active.step:hover,.ui.steps .link.active.step:hover:after,.ui.steps a.active.step:hover,.ui.steps a.active.step:hover:after{cursor:pointer;background:#dcddde;color:rgba(0,0,0,.87)}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>.icon:before{color:#21ba45}.ui.steps .disabled.step{cursor:auto;background:#fff;pointer-events:none}.ui.steps .disabled.step,.ui.steps .disabled.step .description,.ui.steps .disabled.step .title{color:rgba(40,40,40,.3)}.ui.steps .disabled.step:after{background:#fff}@media only screen and (max-width:991px){.ui[class*="tablet stackable"].steps{display:inline-flex;overflow:visible;flex-direction:column}.ui[class*="tablet stackable"].steps .step{flex-direction:column;border-radius:0;padding:1.14285714em 2em}.ui[class*="tablet stackable"].steps .step:first-child{padding:1.14285714em 2em;border-radius:.21428571rem .21428571rem 0 0}.ui[class*="tablet stackable"].steps .step:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui[class*="tablet stackable"].steps .step:after{display:none!important}.ui[class*="tablet stackable"].steps .step .content{text-align:center}.ui[class*="tablet stackable"].ordered.steps .step:before,.ui[class*="tablet stackable"].steps .step>.icon{margin:0 0 1rem}}.ui.fluid.steps{display:flex;width:100%}.ui.attached.steps{width:102%!important;margin:0 -1px;max-width:102%;border-radius:.21428571rem .21428571rem 0 0}.ui.attached.steps .step:first-child{border-radius:.21428571rem 0 0 0}.ui.attached.steps .step:last-child{border-radius:0 .21428571rem 0 0}.ui.bottom.attached.steps{margin:0 -1px;border-radius:0 0 .21428571rem .21428571rem}.ui.bottom.attached.steps .step:first-child{border-radius:0 0 0 .21428571rem}.ui.bottom.attached.steps .step:last-child{border-radius:0 0 .21428571rem 0}.ui.eight.steps,.ui.five.steps,.ui.four.steps,.ui.one.steps,.ui.seven.steps,.ui.six.steps,.ui.three.steps,.ui.two.steps{width:100%}.ui.eight.steps>.step,.ui.five.steps>.step,.ui.four.steps>.step,.ui.one.steps>.step,.ui.seven.steps>.step,.ui.six.steps>.step,.ui.three.steps>.step,.ui.two.steps>.step{flex-wrap:nowrap}.ui.one.steps>.step{width:100%}.ui.two.steps>.step{width:50%}.ui.three.steps>.step{width:33.333%}.ui.four.steps>.step{width:25%}.ui.five.steps>.step{width:20%}.ui.six.steps>.step{width:16.666%}.ui.seven.steps>.step{width:14.285%}.ui.eight.steps>.step{width:12.5%}.ui.mini.step,.ui.mini.steps .step{font-size:11px;font-size:.78571429rem}.ui.tiny.step,.ui.tiny.steps .step{font-size:12px;font-size:.85714286rem}.ui.small.step,.ui.small.steps .step{font-size:13px;font-size:.92857143rem}.ui.step,.ui.steps .step{font-size:14px;font-size:1rem}.ui.large.step,.ui.large.steps .step{font-size:15.999px;font-size:1.14285714rem}.ui.big.step,.ui.big.steps .step{font-size:18px;font-size:1.28571429rem}.ui.huge.step,.ui.huge.steps .step{font-size:20px;font-size:1.42857143rem}.ui.massive.step,.ui.massive.steps .step{font-size:23.999px;font-size:1.71428571rem}@font-face{font-family:Step;src:url(data:application/x-font-ttf;charset=utf-8;;base64,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) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}.ui.ordered.steps .step.completed:before,.ui.steps .step.completed>.icon:before{font-family:Step;content:"\e800"}
/*!
 * # Semantic UI - Breadcrumb
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.breadcrumb{line-height:1;display:inline-block;margin:0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#2c6a9e}.ui.breadcrumb a:hover{color:#3277b2}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:11px;font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:12px;font-size:.85714286rem}.ui.small.breadcrumb{font-size:13px;font-size:.92857143rem}.ui.breadcrumb{font-size:14px;font-size:1rem}.ui.large.breadcrumb{font-size:15.999px;font-size:1.14285714rem}.ui.big.breadcrumb{font-size:18px;font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:20px;font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Form
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.form{position:relative;max-width:100%}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field:last-child,.ui.form .fields:last-child .field{margin-bottom:0}.ui.form .fields .field{clear:both;margin:0}.ui.form .field>label{display:block;margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url],.ui.form textarea{width:100%;vertical-align:top}.ui.form ::-webkit-datetime-edit,.ui.form ::-webkit-inner-spin-button{height:1.21428571em}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url]{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;margin:0;outline:none;-webkit-appearance:none;tap-highlight-color:hsla(0,0%,100%,0);line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease}.ui.form textarea{margin:0;-webkit-appearance:none;tap-highlight-color:hsla(0,0%,100%,0);padding:.78571429em 1em;background:#fff;border:1px solid rgba(34,36,38,.15);outline:none;color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:inset 0 0 0 0 transparent;transition:color .1s ease,border-color .1s ease;font-size:1em;line-height:1.2857;resize:vertical}.ui.form textarea:not([rows]){height:12em;min-height:8em;max-height:24em}.ui.form input[type=checkbox],.ui.form textarea{vertical-align:top}.ui.form input.attached{width:auto}.ui.form select{display:block;height:auto;width:100%;background:#fff;border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem;box-shadow:inset 0 0 0 0 transparent;padding:.62em 1em;color:rgba(0,0,0,.87);transition:color .1s ease,border-color .1s ease}.ui.form .field>.selection.dropdown{width:100%}.ui.form .field>.selection.dropdown>.dropdown.icon{float:right}.ui.form .inline.field>.selection.dropdown,.ui.form .inline.fields .field>.selection.dropdown{width:auto}.ui.form .inline.field>.selection.dropdown>.dropdown.icon,.ui.form .inline.fields .field>.selection.dropdown>.dropdown.icon{float:none}.ui.form .field .ui.input,.ui.form .fields .field .ui.input,.ui.form .wide.field .ui.input{width:100%}.ui.form .inline.field:not(.wide) .ui.input,.ui.form .inline.fields .field:not(.wide) .ui.input{width:auto;vertical-align:middle}.ui.form .field .ui.input input,.ui.form .fields .field .ui.input input{width:auto}.ui.form .eight.fields .ui.input input,.ui.form .five.fields .ui.input input,.ui.form .four.fields .ui.input input,.ui.form .nine.fields .ui.input input,.ui.form .seven.fields .ui.input input,.ui.form .six.fields .ui.input input,.ui.form .ten.fields .ui.input input,.ui.form .three.fields .ui.input input,.ui.form .two.fields .ui.input input,.ui.form .wide.field .ui.input input{flex:1 0 auto;width:0}.ui.form .error.message,.ui.form .success.message,.ui.form .warning.message{display:none}.ui.form .message:first-child{margin-top:0}.ui.form .field .prompt.label{white-space:normal;background:#fff!important;border:1px solid #e0b4b4!important;color:#9f3a38!important}.ui.form .inline.field .prompt,.ui.form .inline.fields .field .prompt{vertical-align:top;margin:-.25em 0 -.5em .5em}.ui.form .inline.field .prompt:before,.ui.form .inline.fields .field .prompt:before{border-width:0 0 1px 1px;bottom:auto;right:auto;top:50%;left:0}.ui.form .field.field input:-webkit-autofill{box-shadow:inset 0 0 0 100px ivory!important;border-color:#e5dfa1!important}.ui.form .field.field input:-webkit-autofill:focus{box-shadow:inset 0 0 0 100px ivory!important;border-color:#d5c315!important}.ui.form .error.error input:-webkit-autofill{box-shadow:inset 0 0 0 100px #fffaf0!important;border-color:#e0b4b4!important}.ui.form ::-webkit-input-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :-ms-input-placeholder{color:hsla(0,0%,74.9%,.87)!important}.ui.form ::-moz-placeholder{color:hsla(0,0%,74.9%,.87)}.ui.form :focus::-webkit-input-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form :focus:-ms-input-placeholder{color:hsla(0,0%,45.1%,.87)!important}.ui.form :focus::-moz-placeholder{color:hsla(0,0%,45.1%,.87)}.ui.form .error ::-webkit-input-placeholder{color:#e7bdbc}.ui.form .error :-ms-input-placeholder{color:#e7bdbc!important}.ui.form .error ::-moz-placeholder{color:#e7bdbc}.ui.form .error :focus::-webkit-input-placeholder{color:#da9796}.ui.form .error :focus:-ms-input-placeholder{color:#da9796!important}.ui.form .error :focus::-moz-placeholder{color:#da9796}.ui.form input:not([type]):focus,.ui.form input[type=date]:focus,.ui.form input[type=datetime-local]:focus,.ui.form input[type=email]:focus,.ui.form input[type=file]:focus,.ui.form input[type=number]:focus,.ui.form input[type=password]:focus,.ui.form input[type=search]:focus,.ui.form input[type=tel]:focus,.ui.form input[type=text]:focus,.ui.form input[type=time]:focus,.ui.form input[type=url]:focus,.ui.form textarea:focus{color:rgba(0,0,0,.95);border-color:#85b7d9;border-radius:.21428571rem;background:#fff;box-shadow:inset 0 0 0 0 rgba(34,36,38,.35)}.ui.form textarea:focus{-webkit-appearance:none}.ui.form.success .success.message:not(:empty){display:block}.ui.form.success .compact.success.message:not(:empty){display:inline-block}.ui.form.success .icon.success.message:not(:empty){display:flex}.ui.form.warning .warning.message:not(:empty){display:block}.ui.form.warning .compact.warning.message:not(:empty){display:inline-block}.ui.form.warning .icon.warning.message:not(:empty){display:flex}.ui.form.error .error.message:not(:empty){display:block}.ui.form.error .compact.error.message:not(:empty){display:inline-block}.ui.form.error .icon.error.message:not(:empty){display:flex}.ui.form .field.error .input,.ui.form .field.error label,.ui.form .fields.error .field .input,.ui.form .fields.error .field label{color:#9f3a38}.ui.form .field.error .corner.label,.ui.form .fields.error .field .corner.label{border-color:#9f3a38;color:#fff}.ui.form .field.error input:not([type]),.ui.form .field.error input[type=date],.ui.form .field.error input[type=datetime-local],.ui.form .field.error input[type=email],.ui.form .field.error input[type=file],.ui.form .field.error input[type=number],.ui.form .field.error input[type=password],.ui.form .field.error input[type=search],.ui.form .field.error input[type=tel],.ui.form .field.error input[type=text],.ui.form .field.error input[type=time],.ui.form .field.error input[type=url],.ui.form .field.error select,.ui.form .field.error textarea,.ui.form .fields.error .field input:not([type]),.ui.form .fields.error .field input[type=date],.ui.form .fields.error .field input[type=datetime-local],.ui.form .fields.error .field input[type=email],.ui.form .fields.error .field input[type=file],.ui.form .fields.error .field input[type=number],.ui.form .fields.error .field input[type=password],.ui.form .fields.error .field input[type=search],.ui.form .fields.error .field input[type=tel],.ui.form .fields.error .field input[type=text],.ui.form .fields.error .field input[type=time],.ui.form .fields.error .field input[type=url],.ui.form .fields.error .field select,.ui.form .fields.error .field textarea{background:#fff6f6;border-color:#e0b4b4;color:#9f3a38;border-radius:"";box-shadow:none}.ui.form .field.error input:not([type]):focus,.ui.form .field.error input[type=date]:focus,.ui.form .field.error input[type=datetime-local]:focus,.ui.form .field.error input[type=email]:focus,.ui.form .field.error input[type=file]:focus,.ui.form .field.error input[type=number]:focus,.ui.form .field.error input[type=password]:focus,.ui.form .field.error input[type=search]:focus,.ui.form .field.error input[type=tel]:focus,.ui.form .field.error input[type=text]:focus,.ui.form .field.error input[type=time]:focus,.ui.form .field.error input[type=url]:focus,.ui.form .field.error select:focus,.ui.form .field.error textarea:focus{background:#fff6f6;border-color:#e0b4b4;color:#9f3a38;-webkit-appearance:none;box-shadow:none}.ui.form .field.error select{-webkit-appearance:menulist-button}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown .item,.ui.form .field.error .ui.dropdown .text,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown .item{background:#fff6f6;color:#9f3a38}.ui.form .field.error .ui.dropdown,.ui.form .field.error .ui.dropdown:hover,.ui.form .fields.error .field .ui.dropdown,.ui.form .fields.error .field .ui.dropdown:hover{border-color:#e0b4b4!important}.ui.form .field.error .ui.dropdown:hover .menu,.ui.form .fields.error .field .ui.dropdown:hover .menu{border-color:#e0b4b4}.ui.form .field.error .ui.multiple.selection.dropdown>.label,.ui.form .fields.error .field .ui.multiple.selection.dropdown>.label{background-color:#eacbcb;color:#9f3a38}.ui.form .field.error .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown .menu .selected.item,.ui.form .fields.error .field .ui.dropdown .menu .item:hover,.ui.form .fields.error .field .ui.dropdown .menu .selected.item{background-color:#fbe7e7}.ui.form .field.error .ui.dropdown .menu .active.item,.ui.form .fields.error .field .ui.dropdown .menu .active.item{background-color:#fdcfcf!important}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label{color:#9f3a38}.ui.form .field.error .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.error .checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.error .field .checkbox:not(.toggle):not(.slider) label:before{background:#fff6f6;border-color:#e0b4b4}.ui.form .field.error .checkbox .box:after,.ui.form .field.error .checkbox label:after,.ui.form .fields.error .field .checkbox .box:after,.ui.form .fields.error .field .checkbox label:after{color:#9f3a38}.ui.form .disabled.field,.ui.form .disabled.fields .field,.ui.form .field :disabled{pointer-events:none;opacity:.45}.ui.form .field.disabled>label,.ui.form .fields.disabled>label{opacity:.45}.ui.form .field.disabled :disabled{opacity:1}.ui.loading.form{position:relative;cursor:default;pointer-events:none}.ui.loading.form:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;z-index:100}.ui.loading.form:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:form-spin .6s linear;animation:form-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}@-webkit-keyframes form-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes form-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.form .required.field>.checkbox:after,.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>label:after{margin:-.2em 0 0 .2em;content:"*";color:#db2828}.ui.form .required.field>label:after,.ui.form .required.fields.grouped>label:after,.ui.form .required.fields:not(.grouped)>.field>label:after{display:inline-block;vertical-align:top}.ui.form .required.field>.checkbox:after,.ui.form .required.fields:not(.grouped)>.field>.checkbox:after{position:absolute;top:0;left:100%}.ui.form .inverted.segment .ui.checkbox .box,.ui.form .inverted.segment .ui.checkbox label,.ui.form .inverted.segment label,.ui.inverted.form .inline.field>label,.ui.inverted.form .inline.field>p,.ui.inverted.form .inline.fields .field>label,.ui.inverted.form .inline.fields .field>p,.ui.inverted.form .inline.fields>label,.ui.inverted.form .ui.checkbox .box,.ui.inverted.form .ui.checkbox label,.ui.inverted.form label{color:hsla(0,0%,100%,.9)}.ui.inverted.form input:not([type]),.ui.inverted.form input[type=date],.ui.inverted.form input[type=datetime-local],.ui.inverted.form input[type=email],.ui.inverted.form input[type=file],.ui.inverted.form input[type=number],.ui.inverted.form input[type=password],.ui.inverted.form input[type=search],.ui.inverted.form input[type=tel],.ui.inverted.form input[type=text],.ui.inverted.form input[type=time],.ui.inverted.form input[type=url]{background:#fff;border-color:hsla(0,0%,100%,.1);color:rgba(0,0,0,.87);box-shadow:none}.ui.form .grouped.fields{display:block;margin:0 0 1em}.ui.form .grouped.fields:last-child{margin-bottom:0}.ui.form .grouped.fields>label{margin:0 0 .28571429rem;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form .grouped.fields .field,.ui.form .grouped.inline.fields .field{display:block;margin:.5em 0;padding:0}.ui.form .fields{display:flex;flex-direction:row;margin:0 -.5em 1em}.ui.form .fields>.field{flex:0 1 auto;padding-left:.5em;padding-right:.5em}.ui.form .fields>.field:first-child{border-left:none;box-shadow:none}.ui.form .two.fields>.field,.ui.form .two.fields>.fields{width:50%}.ui.form .three.fields>.field,.ui.form .three.fields>.fields{width:33.33333333%}.ui.form .four.fields>.field,.ui.form .four.fields>.fields{width:25%}.ui.form .five.fields>.field,.ui.form .five.fields>.fields{width:20%}.ui.form .six.fields>.field,.ui.form .six.fields>.fields{width:16.66666667%}.ui.form .seven.fields>.field,.ui.form .seven.fields>.fields{width:14.28571429%}.ui.form .eight.fields>.field,.ui.form .eight.fields>.fields{width:12.5%}.ui.form .nine.fields>.field,.ui.form .nine.fields>.fields{width:11.11111111%}.ui.form .ten.fields>.field,.ui.form .ten.fields>.fields{width:10%}@media only screen and (max-width:767px){.ui.form .fields{flex-wrap:wrap}.ui.form:not(.unstackable) .eight.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .eight.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .nine.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .nine.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .seven.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .seven.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .six.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .six.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .ten.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .ten.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) [class*="equal width"].fields:not(.unstackable)>.field,.ui[class*="equal width"].form:not(.unstackable) .fields>.field{width:100%!important;margin:0 0 1em}}.ui.form .fields .wide.field{width:6.25%;padding-left:.5em;padding-right:.5em}.ui.form .one.wide.field{width:6.25%!important}.ui.form .two.wide.field{width:12.5%!important}.ui.form .three.wide.field{width:18.75%!important}.ui.form .four.wide.field{width:25%!important}.ui.form .five.wide.field{width:31.25%!important}.ui.form .six.wide.field{width:37.5%!important}.ui.form .seven.wide.field{width:43.75%!important}.ui.form .eight.wide.field{width:50%!important}.ui.form .nine.wide.field{width:56.25%!important}.ui.form .ten.wide.field{width:62.5%!important}.ui.form .eleven.wide.field{width:68.75%!important}.ui.form .twelve.wide.field{width:75%!important}.ui.form .thirteen.wide.field{width:81.25%!important}.ui.form .fourteen.wide.field{width:87.5%!important}.ui.form .fifteen.wide.field{width:93.75%!important}.ui.form .sixteen.wide.field{width:100%!important}@media only screen and (max-width:767px){.ui.form:not(.unstackable) .fields:not(.unstackable)>.eight.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.eleven.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.fifteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.five.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.four.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.fourteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.nine.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.seven.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.six.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.sixteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.ten.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.thirteen.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.three.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.twelve.wide.field,.ui.form:not(.unstackable) .fields:not(.unstackable)>.two.wide.field,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .five.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .four.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .three.fields:not(.unstackable)>.fields,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.field,.ui.form:not(.unstackable) .two.fields:not(.unstackable)>.fields{width:100%!important}.ui.form .fields{margin-bottom:0}}.ui.form [class*="equal width"].fields>.field,.ui[class*="equal width"].form .fields>.field{width:100%;flex:1 1 auto}.ui.form .inline.fields{margin:0 0 1em;align-items:center}.ui.form .inline.fields .field{margin:0;padding:0 1em 0 0}.ui.form .inline.field>label,.ui.form .inline.field>p,.ui.form .inline.fields .field>label,.ui.form .inline.fields .field>p,.ui.form .inline.fields>label{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:baseline;font-size:.92857143em;font-weight:700;color:rgba(0,0,0,.87);text-transform:none}.ui.form .inline.fields>label{margin:.035714em 1em 0 0}.ui.form .inline.field>input,.ui.form .inline.field>select,.ui.form .inline.fields .field>input,.ui.form .inline.fields .field>select{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form .inline.field>:first-child,.ui.form .inline.fields .field>:first-child{margin:0 .85714286em 0 0}.ui.form .inline.field>:only-child,.ui.form .inline.fields .field>:only-child{margin:0}.ui.form .inline.fields .wide.field{display:flex;align-items:center}.ui.form .inline.fields .wide.field>input,.ui.form .inline.fields .wide.field>select{width:100%}.ui.mini.form{font-size:11px;font-size:.78571429rem}.ui.tiny.form{font-size:12px;font-size:.85714286rem}.ui.small.form{font-size:13px;font-size:.92857143rem}.ui.form{font-size:14px;font-size:1rem}.ui.large.form{font-size:15.999px;font-size:1.14285714rem}.ui.big.form{font-size:18px;font-size:1.28571429rem}.ui.huge.form{font-size:20px;font-size:1.42857143rem}.ui.massive.form{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Grid
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.grid{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch;padding:0;margin:-1rem}.ui.relaxed.grid{margin-left:-1.5rem;margin-right:-1.5rem}.ui[class*="very relaxed"].grid{margin-left:-2.5rem;margin-right:-2.5rem}.ui.grid+.grid{margin-top:1rem}.ui.grid>.column:not(.row),.ui.grid>.row>.column{position:relative;display:inline-block;width:6.25%;padding-left:1rem;padding-right:1rem;vertical-align:top}.ui.grid>*{padding-left:1rem;padding-right:1rem}.ui.grid>.row{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:inherit;align-items:stretch;width:100%!important;padding:1rem 0}.ui.grid>.column:not(.row){padding-top:1rem;padding-bottom:1rem}.ui.grid>.row>.column{margin-top:0;margin-bottom:0}.ui.grid>.row>.column>img,.ui.grid>.row>img{max-width:100%}.ui.grid>.ui.grid:first-child{margin-top:0}.ui.grid>.ui.grid:last-child{margin-bottom:0}.ui.aligned.grid .column>.segment:not(.compact):not(.attached),.ui.grid .aligned.row>.column>.segment:not(.compact):not(.attached){width:100%}.ui.grid .row+.ui.divider{flex-grow:1;margin:1rem}.ui.grid .column+.ui.vertical.divider{height:49%}.ui.grid>.column:last-child>.horizontal.segment,.ui.grid>.row>.column:last-child>.horizontal.segment{box-shadow:none}@media only screen and (max-width:767px){.ui.page.grid{width:auto;padding-left:0;padding-right:0;margin-left:0;margin-right:0}}@media only screen and (min-width:768px) and (max-width:991px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:2em;padding-right:2em}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:3%;padding-right:3%}}@media only screen and (min-width:1200px) and (max-width:1919px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:15%;padding-right:15%}}@media only screen and (min-width:1920px){.ui.page.grid{width:auto;margin-left:0;margin-right:0;padding-left:23%;padding-right:23%}}.ui.grid>.column:only-child,.ui.grid>.row>.column:only-child,.ui[class*="one column"].grid>.column:not(.row),.ui[class*="one column"].grid>.row>.column{width:100%}.ui[class*="two column"].grid>.column:not(.row),.ui[class*="two column"].grid>.row>.column{width:50%}.ui[class*="three column"].grid>.column:not(.row),.ui[class*="three column"].grid>.row>.column{width:33.33333333%}.ui[class*="four column"].grid>.column:not(.row),.ui[class*="four column"].grid>.row>.column{width:25%}.ui[class*="five column"].grid>.column:not(.row),.ui[class*="five column"].grid>.row>.column{width:20%}.ui[class*="six column"].grid>.column:not(.row),.ui[class*="six column"].grid>.row>.column{width:16.66666667%}.ui[class*="seven column"].grid>.column:not(.row),.ui[class*="seven column"].grid>.row>.column{width:14.28571429%}.ui[class*="eight column"].grid>.column:not(.row),.ui[class*="eight column"].grid>.row>.column{width:12.5%}.ui[class*="nine column"].grid>.column:not(.row),.ui[class*="nine column"].grid>.row>.column{width:11.11111111%}.ui[class*="ten column"].grid>.column:not(.row),.ui[class*="ten column"].grid>.row>.column{width:10%}.ui[class*="eleven column"].grid>.column:not(.row),.ui[class*="eleven column"].grid>.row>.column{width:9.09090909%}.ui[class*="twelve column"].grid>.column:not(.row),.ui[class*="twelve column"].grid>.row>.column{width:8.33333333%}.ui[class*="thirteen column"].grid>.column:not(.row),.ui[class*="thirteen column"].grid>.row>.column{width:7.69230769%}.ui[class*="fourteen column"].grid>.column:not(.row),.ui[class*="fourteen column"].grid>.row>.column{width:7.14285714%}.ui[class*="fifteen column"].grid>.column:not(.row),.ui[class*="fifteen column"].grid>.row>.column{width:6.66666667%}.ui[class*="sixteen column"].grid>.column:not(.row),.ui[class*="sixteen column"].grid>.row>.column{width:6.25%}.ui.grid>[class*="one column"].row>.column{width:100%!important}.ui.grid>[class*="two column"].row>.column{width:50%!important}.ui.grid>[class*="three column"].row>.column{width:33.33333333%!important}.ui.grid>[class*="four column"].row>.column{width:25%!important}.ui.grid>[class*="five column"].row>.column{width:20%!important}.ui.grid>[class*="six column"].row>.column{width:16.66666667%!important}.ui.grid>[class*="seven column"].row>.column{width:14.28571429%!important}.ui.grid>[class*="eight column"].row>.column{width:12.5%!important}.ui.grid>[class*="nine column"].row>.column{width:11.11111111%!important}.ui.grid>[class*="ten column"].row>.column{width:10%!important}.ui.grid>[class*="eleven column"].row>.column{width:9.09090909%!important}.ui.grid>[class*="twelve column"].row>.column{width:8.33333333%!important}.ui.grid>[class*="thirteen column"].row>.column{width:7.69230769%!important}.ui.grid>[class*="fourteen column"].row>.column{width:7.14285714%!important}.ui.grid>[class*="fifteen column"].row>.column{width:6.66666667%!important}.ui.grid>[class*="sixteen column"].row>.column{width:6.25%!important}.ui.celled.page.grid{box-shadow:none}.ui.column.grid>[class*="one wide"].column,.ui.grid>.column.row>[class*="one wide"].column,.ui.grid>.row>[class*="one wide"].column,.ui.grid>[class*="one wide"].column{width:6.25%!important}.ui.column.grid>[class*="two wide"].column,.ui.grid>.column.row>[class*="two wide"].column,.ui.grid>.row>[class*="two wide"].column,.ui.grid>[class*="two wide"].column{width:12.5%!important}.ui.column.grid>[class*="three wide"].column,.ui.grid>.column.row>[class*="three wide"].column,.ui.grid>.row>[class*="three wide"].column,.ui.grid>[class*="three wide"].column{width:18.75%!important}.ui.column.grid>[class*="four wide"].column,.ui.grid>.column.row>[class*="four wide"].column,.ui.grid>.row>[class*="four wide"].column,.ui.grid>[class*="four wide"].column{width:25%!important}.ui.column.grid>[class*="five wide"].column,.ui.grid>.column.row>[class*="five wide"].column,.ui.grid>.row>[class*="five wide"].column,.ui.grid>[class*="five wide"].column{width:31.25%!important}.ui.column.grid>[class*="six wide"].column,.ui.grid>.column.row>[class*="six wide"].column,.ui.grid>.row>[class*="six wide"].column,.ui.grid>[class*="six wide"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide"].column,.ui.grid>.column.row>[class*="seven wide"].column,.ui.grid>.row>[class*="seven wide"].column,.ui.grid>[class*="seven wide"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide"].column,.ui.grid>.column.row>[class*="eight wide"].column,.ui.grid>.row>[class*="eight wide"].column,.ui.grid>[class*="eight wide"].column{width:50%!important}.ui.column.grid>[class*="nine wide"].column,.ui.grid>.column.row>[class*="nine wide"].column,.ui.grid>.row>[class*="nine wide"].column,.ui.grid>[class*="nine wide"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide"].column,.ui.grid>.column.row>[class*="ten wide"].column,.ui.grid>.row>[class*="ten wide"].column,.ui.grid>[class*="ten wide"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide"].column,.ui.grid>.column.row>[class*="eleven wide"].column,.ui.grid>.row>[class*="eleven wide"].column,.ui.grid>[class*="eleven wide"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide"].column,.ui.grid>.column.row>[class*="twelve wide"].column,.ui.grid>.row>[class*="twelve wide"].column,.ui.grid>[class*="twelve wide"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide"].column,.ui.grid>.column.row>[class*="thirteen wide"].column,.ui.grid>.row>[class*="thirteen wide"].column,.ui.grid>[class*="thirteen wide"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide"].column,.ui.grid>.column.row>[class*="fourteen wide"].column,.ui.grid>.row>[class*="fourteen wide"].column,.ui.grid>[class*="fourteen wide"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide"].column,.ui.grid>.column.row>[class*="fifteen wide"].column,.ui.grid>.row>[class*="fifteen wide"].column,.ui.grid>[class*="fifteen wide"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide"].column,.ui.grid>.column.row>[class*="sixteen wide"].column,.ui.grid>.row>[class*="sixteen wide"].column,.ui.grid>[class*="sixteen wide"].column{width:100%!important}@media only screen and (min-width:320px) and (max-width:767px){.ui.column.grid>[class*="one wide mobile"].column,.ui.grid>.column.row>[class*="one wide mobile"].column,.ui.grid>.row>[class*="one wide mobile"].column,.ui.grid>[class*="one wide mobile"].column{width:6.25%!important}.ui.column.grid>[class*="two wide mobile"].column,.ui.grid>.column.row>[class*="two wide mobile"].column,.ui.grid>.row>[class*="two wide mobile"].column,.ui.grid>[class*="two wide mobile"].column{width:12.5%!important}.ui.column.grid>[class*="three wide mobile"].column,.ui.grid>.column.row>[class*="three wide mobile"].column,.ui.grid>.row>[class*="three wide mobile"].column,.ui.grid>[class*="three wide mobile"].column{width:18.75%!important}.ui.column.grid>[class*="four wide mobile"].column,.ui.grid>.column.row>[class*="four wide mobile"].column,.ui.grid>.row>[class*="four wide mobile"].column,.ui.grid>[class*="four wide mobile"].column{width:25%!important}.ui.column.grid>[class*="five wide mobile"].column,.ui.grid>.column.row>[class*="five wide mobile"].column,.ui.grid>.row>[class*="five wide mobile"].column,.ui.grid>[class*="five wide mobile"].column{width:31.25%!important}.ui.column.grid>[class*="six wide mobile"].column,.ui.grid>.column.row>[class*="six wide mobile"].column,.ui.grid>.row>[class*="six wide mobile"].column,.ui.grid>[class*="six wide mobile"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide mobile"].column,.ui.grid>.column.row>[class*="seven wide mobile"].column,.ui.grid>.row>[class*="seven wide mobile"].column,.ui.grid>[class*="seven wide mobile"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide mobile"].column,.ui.grid>.column.row>[class*="eight wide mobile"].column,.ui.grid>.row>[class*="eight wide mobile"].column,.ui.grid>[class*="eight wide mobile"].column{width:50%!important}.ui.column.grid>[class*="nine wide mobile"].column,.ui.grid>.column.row>[class*="nine wide mobile"].column,.ui.grid>.row>[class*="nine wide mobile"].column,.ui.grid>[class*="nine wide mobile"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide mobile"].column,.ui.grid>.column.row>[class*="ten wide mobile"].column,.ui.grid>.row>[class*="ten wide mobile"].column,.ui.grid>[class*="ten wide mobile"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide mobile"].column,.ui.grid>.column.row>[class*="eleven wide mobile"].column,.ui.grid>.row>[class*="eleven wide mobile"].column,.ui.grid>[class*="eleven wide mobile"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide mobile"].column,.ui.grid>.column.row>[class*="twelve wide mobile"].column,.ui.grid>.row>[class*="twelve wide mobile"].column,.ui.grid>[class*="twelve wide mobile"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide mobile"].column,.ui.grid>.column.row>[class*="thirteen wide mobile"].column,.ui.grid>.row>[class*="thirteen wide mobile"].column,.ui.grid>[class*="thirteen wide mobile"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide mobile"].column,.ui.grid>.column.row>[class*="fourteen wide mobile"].column,.ui.grid>.row>[class*="fourteen wide mobile"].column,.ui.grid>[class*="fourteen wide mobile"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide mobile"].column,.ui.grid>.column.row>[class*="fifteen wide mobile"].column,.ui.grid>.row>[class*="fifteen wide mobile"].column,.ui.grid>[class*="fifteen wide mobile"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide mobile"].column,.ui.grid>.column.row>[class*="sixteen wide mobile"].column,.ui.grid>.row>[class*="sixteen wide mobile"].column,.ui.grid>[class*="sixteen wide mobile"].column{width:100%!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.column.grid>[class*="one wide tablet"].column,.ui.grid>.column.row>[class*="one wide tablet"].column,.ui.grid>.row>[class*="one wide tablet"].column,.ui.grid>[class*="one wide tablet"].column{width:6.25%!important}.ui.column.grid>[class*="two wide tablet"].column,.ui.grid>.column.row>[class*="two wide tablet"].column,.ui.grid>.row>[class*="two wide tablet"].column,.ui.grid>[class*="two wide tablet"].column{width:12.5%!important}.ui.column.grid>[class*="three wide tablet"].column,.ui.grid>.column.row>[class*="three wide tablet"].column,.ui.grid>.row>[class*="three wide tablet"].column,.ui.grid>[class*="three wide tablet"].column{width:18.75%!important}.ui.column.grid>[class*="four wide tablet"].column,.ui.grid>.column.row>[class*="four wide tablet"].column,.ui.grid>.row>[class*="four wide tablet"].column,.ui.grid>[class*="four wide tablet"].column{width:25%!important}.ui.column.grid>[class*="five wide tablet"].column,.ui.grid>.column.row>[class*="five wide tablet"].column,.ui.grid>.row>[class*="five wide tablet"].column,.ui.grid>[class*="five wide tablet"].column{width:31.25%!important}.ui.column.grid>[class*="six wide tablet"].column,.ui.grid>.column.row>[class*="six wide tablet"].column,.ui.grid>.row>[class*="six wide tablet"].column,.ui.grid>[class*="six wide tablet"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide tablet"].column,.ui.grid>.column.row>[class*="seven wide tablet"].column,.ui.grid>.row>[class*="seven wide tablet"].column,.ui.grid>[class*="seven wide tablet"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide tablet"].column,.ui.grid>.column.row>[class*="eight wide tablet"].column,.ui.grid>.row>[class*="eight wide tablet"].column,.ui.grid>[class*="eight wide tablet"].column{width:50%!important}.ui.column.grid>[class*="nine wide tablet"].column,.ui.grid>.column.row>[class*="nine wide tablet"].column,.ui.grid>.row>[class*="nine wide tablet"].column,.ui.grid>[class*="nine wide tablet"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide tablet"].column,.ui.grid>.column.row>[class*="ten wide tablet"].column,.ui.grid>.row>[class*="ten wide tablet"].column,.ui.grid>[class*="ten wide tablet"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide tablet"].column,.ui.grid>.column.row>[class*="eleven wide tablet"].column,.ui.grid>.row>[class*="eleven wide tablet"].column,.ui.grid>[class*="eleven wide tablet"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide tablet"].column,.ui.grid>.column.row>[class*="twelve wide tablet"].column,.ui.grid>.row>[class*="twelve wide tablet"].column,.ui.grid>[class*="twelve wide tablet"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide tablet"].column,.ui.grid>.column.row>[class*="thirteen wide tablet"].column,.ui.grid>.row>[class*="thirteen wide tablet"].column,.ui.grid>[class*="thirteen wide tablet"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide tablet"].column,.ui.grid>.column.row>[class*="fourteen wide tablet"].column,.ui.grid>.row>[class*="fourteen wide tablet"].column,.ui.grid>[class*="fourteen wide tablet"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide tablet"].column,.ui.grid>.column.row>[class*="fifteen wide tablet"].column,.ui.grid>.row>[class*="fifteen wide tablet"].column,.ui.grid>[class*="fifteen wide tablet"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide tablet"].column,.ui.grid>.column.row>[class*="sixteen wide tablet"].column,.ui.grid>.row>[class*="sixteen wide tablet"].column,.ui.grid>[class*="sixteen wide tablet"].column{width:100%!important}}@media only screen and (min-width:992px){.ui.column.grid>[class*="one wide computer"].column,.ui.grid>.column.row>[class*="one wide computer"].column,.ui.grid>.row>[class*="one wide computer"].column,.ui.grid>[class*="one wide computer"].column{width:6.25%!important}.ui.column.grid>[class*="two wide computer"].column,.ui.grid>.column.row>[class*="two wide computer"].column,.ui.grid>.row>[class*="two wide computer"].column,.ui.grid>[class*="two wide computer"].column{width:12.5%!important}.ui.column.grid>[class*="three wide computer"].column,.ui.grid>.column.row>[class*="three wide computer"].column,.ui.grid>.row>[class*="three wide computer"].column,.ui.grid>[class*="three wide computer"].column{width:18.75%!important}.ui.column.grid>[class*="four wide computer"].column,.ui.grid>.column.row>[class*="four wide computer"].column,.ui.grid>.row>[class*="four wide computer"].column,.ui.grid>[class*="four wide computer"].column{width:25%!important}.ui.column.grid>[class*="five wide computer"].column,.ui.grid>.column.row>[class*="five wide computer"].column,.ui.grid>.row>[class*="five wide computer"].column,.ui.grid>[class*="five wide computer"].column{width:31.25%!important}.ui.column.grid>[class*="six wide computer"].column,.ui.grid>.column.row>[class*="six wide computer"].column,.ui.grid>.row>[class*="six wide computer"].column,.ui.grid>[class*="six wide computer"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide computer"].column,.ui.grid>.column.row>[class*="seven wide computer"].column,.ui.grid>.row>[class*="seven wide computer"].column,.ui.grid>[class*="seven wide computer"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide computer"].column,.ui.grid>.column.row>[class*="eight wide computer"].column,.ui.grid>.row>[class*="eight wide computer"].column,.ui.grid>[class*="eight wide computer"].column{width:50%!important}.ui.column.grid>[class*="nine wide computer"].column,.ui.grid>.column.row>[class*="nine wide computer"].column,.ui.grid>.row>[class*="nine wide computer"].column,.ui.grid>[class*="nine wide computer"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide computer"].column,.ui.grid>.column.row>[class*="ten wide computer"].column,.ui.grid>.row>[class*="ten wide computer"].column,.ui.grid>[class*="ten wide computer"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide computer"].column,.ui.grid>.column.row>[class*="eleven wide computer"].column,.ui.grid>.row>[class*="eleven wide computer"].column,.ui.grid>[class*="eleven wide computer"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide computer"].column,.ui.grid>.column.row>[class*="twelve wide computer"].column,.ui.grid>.row>[class*="twelve wide computer"].column,.ui.grid>[class*="twelve wide computer"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide computer"].column,.ui.grid>.column.row>[class*="thirteen wide computer"].column,.ui.grid>.row>[class*="thirteen wide computer"].column,.ui.grid>[class*="thirteen wide computer"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide computer"].column,.ui.grid>.column.row>[class*="fourteen wide computer"].column,.ui.grid>.row>[class*="fourteen wide computer"].column,.ui.grid>[class*="fourteen wide computer"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide computer"].column,.ui.grid>.column.row>[class*="fifteen wide computer"].column,.ui.grid>.row>[class*="fifteen wide computer"].column,.ui.grid>[class*="fifteen wide computer"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide computer"].column,.ui.grid>.column.row>[class*="sixteen wide computer"].column,.ui.grid>.row>[class*="sixteen wide computer"].column,.ui.grid>[class*="sixteen wide computer"].column{width:100%!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.ui.column.grid>[class*="one wide large screen"].column,.ui.grid>.column.row>[class*="one wide large screen"].column,.ui.grid>.row>[class*="one wide large screen"].column,.ui.grid>[class*="one wide large screen"].column{width:6.25%!important}.ui.column.grid>[class*="two wide large screen"].column,.ui.grid>.column.row>[class*="two wide large screen"].column,.ui.grid>.row>[class*="two wide large screen"].column,.ui.grid>[class*="two wide large screen"].column{width:12.5%!important}.ui.column.grid>[class*="three wide large screen"].column,.ui.grid>.column.row>[class*="three wide large screen"].column,.ui.grid>.row>[class*="three wide large screen"].column,.ui.grid>[class*="three wide large screen"].column{width:18.75%!important}.ui.column.grid>[class*="four wide large screen"].column,.ui.grid>.column.row>[class*="four wide large screen"].column,.ui.grid>.row>[class*="four wide large screen"].column,.ui.grid>[class*="four wide large screen"].column{width:25%!important}.ui.column.grid>[class*="five wide large screen"].column,.ui.grid>.column.row>[class*="five wide large screen"].column,.ui.grid>.row>[class*="five wide large screen"].column,.ui.grid>[class*="five wide large screen"].column{width:31.25%!important}.ui.column.grid>[class*="six wide large screen"].column,.ui.grid>.column.row>[class*="six wide large screen"].column,.ui.grid>.row>[class*="six wide large screen"].column,.ui.grid>[class*="six wide large screen"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide large screen"].column,.ui.grid>.column.row>[class*="seven wide large screen"].column,.ui.grid>.row>[class*="seven wide large screen"].column,.ui.grid>[class*="seven wide large screen"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide large screen"].column,.ui.grid>.column.row>[class*="eight wide large screen"].column,.ui.grid>.row>[class*="eight wide large screen"].column,.ui.grid>[class*="eight wide large screen"].column{width:50%!important}.ui.column.grid>[class*="nine wide large screen"].column,.ui.grid>.column.row>[class*="nine wide large screen"].column,.ui.grid>.row>[class*="nine wide large screen"].column,.ui.grid>[class*="nine wide large screen"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide large screen"].column,.ui.grid>.column.row>[class*="ten wide large screen"].column,.ui.grid>.row>[class*="ten wide large screen"].column,.ui.grid>[class*="ten wide large screen"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide large screen"].column,.ui.grid>.column.row>[class*="eleven wide large screen"].column,.ui.grid>.row>[class*="eleven wide large screen"].column,.ui.grid>[class*="eleven wide large screen"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide large screen"].column,.ui.grid>.column.row>[class*="twelve wide large screen"].column,.ui.grid>.row>[class*="twelve wide large screen"].column,.ui.grid>[class*="twelve wide large screen"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide large screen"].column,.ui.grid>.column.row>[class*="thirteen wide large screen"].column,.ui.grid>.row>[class*="thirteen wide large screen"].column,.ui.grid>[class*="thirteen wide large screen"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide large screen"].column,.ui.grid>.column.row>[class*="fourteen wide large screen"].column,.ui.grid>.row>[class*="fourteen wide large screen"].column,.ui.grid>[class*="fourteen wide large screen"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide large screen"].column,.ui.grid>.column.row>[class*="fifteen wide large screen"].column,.ui.grid>.row>[class*="fifteen wide large screen"].column,.ui.grid>[class*="fifteen wide large screen"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide large screen"].column,.ui.grid>.column.row>[class*="sixteen wide large screen"].column,.ui.grid>.row>[class*="sixteen wide large screen"].column,.ui.grid>[class*="sixteen wide large screen"].column{width:100%!important}}@media only screen and (min-width:1920px){.ui.column.grid>[class*="one wide widescreen"].column,.ui.grid>.column.row>[class*="one wide widescreen"].column,.ui.grid>.row>[class*="one wide widescreen"].column,.ui.grid>[class*="one wide widescreen"].column{width:6.25%!important}.ui.column.grid>[class*="two wide widescreen"].column,.ui.grid>.column.row>[class*="two wide widescreen"].column,.ui.grid>.row>[class*="two wide widescreen"].column,.ui.grid>[class*="two wide widescreen"].column{width:12.5%!important}.ui.column.grid>[class*="three wide widescreen"].column,.ui.grid>.column.row>[class*="three wide widescreen"].column,.ui.grid>.row>[class*="three wide widescreen"].column,.ui.grid>[class*="three wide widescreen"].column{width:18.75%!important}.ui.column.grid>[class*="four wide widescreen"].column,.ui.grid>.column.row>[class*="four wide widescreen"].column,.ui.grid>.row>[class*="four wide widescreen"].column,.ui.grid>[class*="four wide widescreen"].column{width:25%!important}.ui.column.grid>[class*="five wide widescreen"].column,.ui.grid>.column.row>[class*="five wide widescreen"].column,.ui.grid>.row>[class*="five wide widescreen"].column,.ui.grid>[class*="five wide widescreen"].column{width:31.25%!important}.ui.column.grid>[class*="six wide widescreen"].column,.ui.grid>.column.row>[class*="six wide widescreen"].column,.ui.grid>.row>[class*="six wide widescreen"].column,.ui.grid>[class*="six wide widescreen"].column{width:37.5%!important}.ui.column.grid>[class*="seven wide widescreen"].column,.ui.grid>.column.row>[class*="seven wide widescreen"].column,.ui.grid>.row>[class*="seven wide widescreen"].column,.ui.grid>[class*="seven wide widescreen"].column{width:43.75%!important}.ui.column.grid>[class*="eight wide widescreen"].column,.ui.grid>.column.row>[class*="eight wide widescreen"].column,.ui.grid>.row>[class*="eight wide widescreen"].column,.ui.grid>[class*="eight wide widescreen"].column{width:50%!important}.ui.column.grid>[class*="nine wide widescreen"].column,.ui.grid>.column.row>[class*="nine wide widescreen"].column,.ui.grid>.row>[class*="nine wide widescreen"].column,.ui.grid>[class*="nine wide widescreen"].column{width:56.25%!important}.ui.column.grid>[class*="ten wide widescreen"].column,.ui.grid>.column.row>[class*="ten wide widescreen"].column,.ui.grid>.row>[class*="ten wide widescreen"].column,.ui.grid>[class*="ten wide widescreen"].column{width:62.5%!important}.ui.column.grid>[class*="eleven wide widescreen"].column,.ui.grid>.column.row>[class*="eleven wide widescreen"].column,.ui.grid>.row>[class*="eleven wide widescreen"].column,.ui.grid>[class*="eleven wide widescreen"].column{width:68.75%!important}.ui.column.grid>[class*="twelve wide widescreen"].column,.ui.grid>.column.row>[class*="twelve wide widescreen"].column,.ui.grid>.row>[class*="twelve wide widescreen"].column,.ui.grid>[class*="twelve wide widescreen"].column{width:75%!important}.ui.column.grid>[class*="thirteen wide widescreen"].column,.ui.grid>.column.row>[class*="thirteen wide widescreen"].column,.ui.grid>.row>[class*="thirteen wide widescreen"].column,.ui.grid>[class*="thirteen wide widescreen"].column{width:81.25%!important}.ui.column.grid>[class*="fourteen wide widescreen"].column,.ui.grid>.column.row>[class*="fourteen wide widescreen"].column,.ui.grid>.row>[class*="fourteen wide widescreen"].column,.ui.grid>[class*="fourteen wide widescreen"].column{width:87.5%!important}.ui.column.grid>[class*="fifteen wide widescreen"].column,.ui.grid>.column.row>[class*="fifteen wide widescreen"].column,.ui.grid>.row>[class*="fifteen wide widescreen"].column,.ui.grid>[class*="fifteen wide widescreen"].column{width:93.75%!important}.ui.column.grid>[class*="sixteen wide widescreen"].column,.ui.grid>.column.row>[class*="sixteen wide widescreen"].column,.ui.grid>.row>[class*="sixteen wide widescreen"].column,.ui.grid>[class*="sixteen wide widescreen"].column{width:100%!important}}.ui.centered.grid,.ui.centered.grid>.row,.ui.grid>.centered.row{text-align:center;justify-content:center}.ui.centered.grid>.column:not(.aligned):not(.justified):not(.row),.ui.centered.grid>.row>.column:not(.aligned):not(.justified),.ui.grid .centered.row>.column:not(.aligned):not(.justified){text-align:left}.ui.grid>.centered.column,.ui.grid>.row>.centered.column{display:block;margin-left:auto;margin-right:auto}.ui.grid>.relaxed.row>.column,.ui.relaxed.grid>.column:not(.row),.ui.relaxed.grid>.row>.column{padding-left:1.5rem;padding-right:1.5rem}.ui.grid>[class*="very relaxed"].row>.column,.ui[class*="very relaxed"].grid>.column:not(.row),.ui[class*="very relaxed"].grid>.row>.column{padding-left:2.5rem;padding-right:2.5rem}.ui.grid .relaxed.row+.ui.divider,.ui.relaxed.grid .row+.ui.divider{margin-left:1.5rem;margin-right:1.5rem}.ui.grid [class*="very relaxed"].row+.ui.divider,.ui[class*="very relaxed"].grid .row+.ui.divider{margin-left:2.5rem;margin-right:2.5rem}.ui.padded.grid:not(.vertically):not(.horizontally){margin:0!important}[class*="horizontally padded"].ui.grid{margin-left:0!important;margin-right:0!important}[class*="vertically padded"].ui.grid{margin-top:0!important;margin-bottom:0!important}.ui.grid [class*="left floated"].column{margin-right:auto}.ui.grid [class*="right floated"].column{margin-left:auto}.ui.divided.grid:not([class*="vertically divided"])>.column:not(.row),.ui.divided.grid:not([class*="vertically divided"])>.row>.column{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="vertically divided"].grid>.column:not(.row),.ui[class*="vertically divided"].grid>.row>.column{margin-top:1rem;margin-bottom:1rem;padding-top:0;padding-bottom:0}.ui[class*="vertically divided"].grid>.row{margin-top:0;margin-bottom:0}.ui.divided.grid:not([class*="vertically divided"])>.column:first-child,.ui.divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:none}.ui[class*="vertically divided"].grid>.row:first-child>.column{margin-top:0}.ui.grid>.divided.row>.column{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui.grid>.divided.row>.column:first-child{box-shadow:none}.ui[class*="vertically divided"].grid>.row{position:relative}.ui[class*="vertically divided"].grid>.row:before{position:absolute;content:"";top:0;left:0;width:98%;height:1px;margin:0 1rem;box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.padded.divided.grid:not(.vertically):not(.horizontally),[class*="horizontally padded"].ui.divided.grid{width:100%}.ui[class*="vertically divided"].grid>.row:first-child:before{box-shadow:none}.ui.inverted.divided.grid:not([class*="vertically divided"])>.column:not(.row),.ui.inverted.divided.grid:not([class*="vertically divided"])>.row>.column{box-shadow:-1px 0 0 0 hsla(0,0%,100%,.1)}.ui.inverted.divided.grid:not([class*="vertically divided"])>.column:not(.row):first-child,.ui.inverted.divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:none}.ui.inverted[class*="vertically divided"].grid>.row:before{box-shadow:0 -1px 0 0 hsla(0,0%,100%,.1)}.ui.relaxed[class*="vertically divided"].grid>.row:before{margin-left:1.5rem;margin-right:1.5rem;width:97%}.ui[class*="very relaxed"][class*="vertically divided"].grid>.row:before{margin-left:2.5rem;margin-right:2.5rem;width:95%}.ui.celled.grid{width:100%;margin:1em 0;box-shadow:0 0 0 1px #d4d4d5}.ui.celled.grid>.row{width:100%!important;margin:0;padding:0;box-shadow:0 -1px 0 0 #d4d4d5}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{box-shadow:-1px 0 0 0 #d4d4d5}.ui.celled.grid>.column:first-child,.ui.celled.grid>.row>.column:first-child{box-shadow:none}.ui.celled.grid>.column:not(.row),.ui.celled.grid>.row>.column{padding:1em}.ui.relaxed.celled.grid>.column:not(.row),.ui.relaxed.celled.grid>.row>.column{padding:1.5em}.ui[class*="very relaxed"].celled.grid>.column:not(.row),.ui[class*="very relaxed"].celled.grid>.row>.column{padding:2em}.ui[class*="internally celled"].grid{box-shadow:none;margin:0}.ui[class*="internally celled"].grid>.row:first-child,.ui[class*="internally celled"].grid>.row>.column:first-child{box-shadow:none}.ui.grid>.row>[class*="top aligned"].column,.ui.grid>[class*="top aligned"].column:not(.row),.ui.grid>[class*="top aligned"].row>.column,.ui[class*="top aligned"].grid>.column:not(.row),.ui[class*="top aligned"].grid>.row>.column{flex-direction:column;vertical-align:top;align-self:flex-start!important}.ui.grid>.row>[class*="middle aligned"].column,.ui.grid>[class*="middle aligned"].column:not(.row),.ui.grid>[class*="middle aligned"].row>.column,.ui[class*="middle aligned"].grid>.column:not(.row),.ui[class*="middle aligned"].grid>.row>.column{flex-direction:column;vertical-align:middle;align-self:center!important}.ui.grid>.row>[class*="bottom aligned"].column,.ui.grid>[class*="bottom aligned"].column:not(.row),.ui.grid>[class*="bottom aligned"].row>.column,.ui[class*="bottom aligned"].grid>.column:not(.row),.ui[class*="bottom aligned"].grid>.row>.column{flex-direction:column;vertical-align:bottom;align-self:flex-end!important}.ui.grid>.row>.stretched.column,.ui.grid>.stretched.column:not(.row),.ui.grid>.stretched.row>.column,.ui.stretched.grid>.column,.ui.stretched.grid>.row>.column{display:inline-flex!important;align-self:stretch;flex-direction:column}.ui.grid>.row>.stretched.column>*,.ui.grid>.stretched.column:not(.row)>*,.ui.grid>.stretched.row>.column>*,.ui.stretched.grid>.column>*,.ui.stretched.grid>.row>.column>*{flex-grow:1}.ui.grid>.row>[class*="left aligned"].column.column,.ui.grid>[class*="left aligned"].column.column,.ui.grid>[class*="left aligned"].row>.column,.ui[class*="left aligned"].grid>.column,.ui[class*="left aligned"].grid>.row>.column{text-align:left;align-self:inherit}.ui.grid>.row>[class*="center aligned"].column.column,.ui.grid>[class*="center aligned"].column.column,.ui.grid>[class*="center aligned"].row>.column,.ui[class*="center aligned"].grid>.column,.ui[class*="center aligned"].grid>.row>.column{text-align:center;align-self:inherit}.ui[class*="center aligned"].grid{justify-content:center}.ui.grid>.row>[class*="right aligned"].column.column,.ui.grid>[class*="right aligned"].column.column,.ui.grid>[class*="right aligned"].row>.column,.ui[class*="right aligned"].grid>.column,.ui[class*="right aligned"].grid>.row>.column{text-align:right;align-self:inherit}.ui.grid>.justified.column.column,.ui.grid>.justified.row>.column,.ui.grid>.row>.justified.column.column,.ui.justified.grid>.column,.ui.justified.grid>.row>.column{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.ui.grid>.row>.black.column,.ui.grid>.row>.blue.column,.ui.grid>.row>.brown.column,.ui.grid>.row>.green.column,.ui.grid>.row>.grey.column,.ui.grid>.row>.olive.column,.ui.grid>.row>.orange.column,.ui.grid>.row>.pink.column,.ui.grid>.row>.purple.column,.ui.grid>.row>.red.column,.ui.grid>.row>.teal.column,.ui.grid>.row>.violet.column,.ui.grid>.row>.yellow.column{margin-top:-1rem;margin-bottom:-1rem;padding-top:1rem;padding-bottom:1rem}.ui.grid>.red.column,.ui.grid>.red.row,.ui.grid>.row>.red.column{background-color:#db2828!important;color:#fff}.ui.grid>.orange.column,.ui.grid>.orange.row,.ui.grid>.row>.orange.column{background-color:#f2711c!important;color:#fff}.ui.grid>.row>.yellow.column,.ui.grid>.yellow.column,.ui.grid>.yellow.row{background-color:#fbbd08!important;color:#fff}.ui.grid>.olive.column,.ui.grid>.olive.row,.ui.grid>.row>.olive.column{background-color:#b5cc18!important;color:#fff}.ui.grid>.green.column,.ui.grid>.green.row,.ui.grid>.row>.green.column{background-color:#21ba45!important;color:#fff}.ui.grid>.row>.teal.column,.ui.grid>.teal.column,.ui.grid>.teal.row{background-color:#00b5ad!important;color:#fff}.ui.grid>.blue.column,.ui.grid>.blue.row,.ui.grid>.row>.blue.column{background-color:#2c6a9e!important;color:#fff}.ui.grid>.row>.violet.column,.ui.grid>.violet.column,.ui.grid>.violet.row{background-color:#6435c9!important;color:#fff}.ui.grid>.purple.column,.ui.grid>.purple.row,.ui.grid>.row>.purple.column{background-color:#a333c8!important;color:#fff}.ui.grid>.pink.column,.ui.grid>.pink.row,.ui.grid>.row>.pink.column{background-color:#e03997!important;color:#fff}.ui.grid>.brown.column,.ui.grid>.brown.row,.ui.grid>.row>.brown.column{background-color:#a5673f!important;color:#fff}.ui.grid>.grey.column,.ui.grid>.grey.row,.ui.grid>.row>.grey.column{background-color:#767676!important;color:#fff}.ui.grid>.black.column,.ui.grid>.black.row,.ui.grid>.row>.black.column{background-color:#1b1c1d!important;color:#fff}.ui.grid>[class*="equal width"].row>.column,.ui[class*="equal width"].grid>.column:not(.row),.ui[class*="equal width"].grid>.row>.column{display:inline-block;flex-grow:1}.ui.grid>[class*="equal width"].row>.wide.column,.ui[class*="equal width"].grid>.row>.wide.column,.ui[class*="equal width"].grid>.wide.column{flex-grow:0}@media only screen and (max-width:767px){.ui.grid>[class*="mobile reversed"].row,.ui[class*="mobile reversed"].grid,.ui[class*="mobile reversed"].grid>.row{flex-direction:row-reverse}.ui.stackable[class*="mobile reversed"],.ui[class*="mobile vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="mobile reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="mobile vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="mobile vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="mobile reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="mobile reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:768px) and (max-width:991px){.ui.grid>[class*="tablet reversed"].row,.ui[class*="tablet reversed"].grid,.ui[class*="tablet reversed"].grid>.row{flex-direction:row-reverse}.ui[class*="tablet vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="tablet reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="tablet vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="tablet vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="tablet reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="tablet reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:992px){.ui.grid>[class*="computer reversed"].row,.ui[class*="computer reversed"].grid,.ui[class*="computer reversed"].grid>.row{flex-direction:row-reverse}.ui[class*="computer vertically reversed"].grid{flex-direction:column-reverse}.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.column:first-child,.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:first-child{box-shadow:-1px 0 0 0 rgba(34,36,38,.15)}.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.column:last-child,.ui[class*="computer reversed"].divided.grid:not([class*="vertically divided"])>.row>.column:last-child{box-shadow:none}.ui.grid[class*="vertically divided"][class*="computer vertically reversed"]>.row:first-child:before{box-shadow:0 -1px 0 0 rgba(34,36,38,.15)}.ui.grid[class*="vertically divided"][class*="computer vertically reversed"]>.row:last-child:before{box-shadow:none}.ui[class*="computer reversed"].celled.grid>.row>.column:first-child{box-shadow:-1px 0 0 0 #d4d4d5}.ui[class*="computer reversed"].celled.grid>.row>.column:last-child{box-shadow:none}}@media only screen and (min-width:768px) and (max-width:991px){.ui.doubling.grid{width:auto}.ui.doubling.grid>.row,.ui.grid>.doubling.row{margin:0!important;padding:0!important}.ui.doubling.grid>.row>.column,.ui.grid>.doubling.row>.column{display:inline-block!important;padding-top:1rem!important;padding-bottom:1rem!important;box-shadow:none!important;margin:0}.ui.grid>[class*="two column"].doubling.row.row>.column,.ui[class*="two column"].doubling.grid>.column:not(.row),.ui[class*="two column"].doubling.grid>.row>.column{width:100%!important}.ui.grid>[class*="four column"].doubling.row.row>.column,.ui.grid>[class*="three column"].doubling.row.row>.column,.ui[class*="four column"].doubling.grid>.column:not(.row),.ui[class*="four column"].doubling.grid>.row>.column,.ui[class*="three column"].doubling.grid>.column:not(.row),.ui[class*="three column"].doubling.grid>.row>.column{width:50%!important}.ui.grid>[class*="five column"].doubling.row.row>.column,.ui.grid>[class*="seven column"].doubling.row.row>.column,.ui.grid>[class*="six column"].doubling.row.row>.column,.ui[class*="five column"].doubling.grid>.column:not(.row),.ui[class*="five column"].doubling.grid>.row>.column,.ui[class*="seven column"].doubling.grid>.column:not(.row),.ui[class*="seven column"].doubling.grid>.row>.column,.ui[class*="six column"].doubling.grid>.column:not(.row),.ui[class*="six column"].doubling.grid>.row>.column{width:33.33333333%!important}.ui.grid>[class*="eight column"].doubling.row.row>.column,.ui.grid>[class*="nine column"].doubling.row.row>.column,.ui[class*="eight column"].doubling.grid>.column:not(.row),.ui[class*="eight column"].doubling.grid>.row>.column,.ui[class*="nine column"].doubling.grid>.column:not(.row),.ui[class*="nine column"].doubling.grid>.row>.column{width:25%!important}.ui.grid>[class*="eleven column"].doubling.row.row>.column,.ui.grid>[class*="ten column"].doubling.row.row>.column,.ui[class*="eleven column"].doubling.grid>.column:not(.row),.ui[class*="eleven column"].doubling.grid>.row>.column,.ui[class*="ten column"].doubling.grid>.column:not(.row),.ui[class*="ten column"].doubling.grid>.row>.column{width:20%!important}.ui.grid>[class*="thirteen column"].doubling.row.row>.column,.ui.grid>[class*="twelve column"].doubling.row.row>.column,.ui[class*="thirteen column"].doubling.grid>.column:not(.row),.ui[class*="thirteen column"].doubling.grid>.row>.column,.ui[class*="twelve column"].doubling.grid>.column:not(.row),.ui[class*="twelve column"].doubling.grid>.row>.column{width:16.66666667%!important}.ui.grid>[class*="fifteen column"].doubling.row.row>.column,.ui.grid>[class*="fourteen column"].doubling.row.row>.column,.ui[class*="fifteen column"].doubling.grid>.column:not(.row),.ui[class*="fifteen column"].doubling.grid>.row>.column,.ui[class*="fourteen column"].doubling.grid>.column:not(.row),.ui[class*="fourteen column"].doubling.grid>.row>.column{width:14.28571429%!important}.ui.grid>[class*="sixteen column"].doubling.row.row>.column,.ui[class*="sixteen column"].doubling.grid>.column:not(.row),.ui[class*="sixteen column"].doubling.grid>.row>.column{width:12.5%!important}}@media only screen and (max-width:767px){.ui.doubling.grid>.row,.ui.grid>.doubling.row{margin:0!important;padding:0!important}.ui.doubling.grid>.row>.column,.ui.grid>.doubling.row>.column{padding-top:1rem!important;padding-bottom:1rem!important;margin:0!important;box-shadow:none!important}.ui.grid>[class*="two column"].doubling:not(.stackable).row.row>.column,.ui[class*="two column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="two column"].doubling:not(.stackable).grid>.row>.column{width:100%!important}.ui.grid>[class*="eight column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="five column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="four column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="seven column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="six column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="three column"].doubling:not(.stackable).row.row>.column,.ui[class*="eight column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="eight column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="five column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="five column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="four column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="four column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="seven column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="seven column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="six column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="six column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="three column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="three column"].doubling:not(.stackable).grid>.row>.column{width:50%!important}.ui.grid>[class*="eleven column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="nine column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="ten column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="thirteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="twelve column"].doubling:not(.stackable).row.row>.column,.ui[class*="eleven column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="eleven column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="nine column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="nine column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="ten column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="ten column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="thirteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="thirteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="twelve column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="twelve column"].doubling:not(.stackable).grid>.row>.column{width:33.33333333%!important}.ui.grid>[class*="fifteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="fourteen column"].doubling:not(.stackable).row.row>.column,.ui.grid>[class*="sixteen column"].doubling:not(.stackable).row.row>.column,.ui[class*="fifteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="fifteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="fourteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="fourteen column"].doubling:not(.stackable).grid>.row>.column,.ui[class*="sixteen column"].doubling:not(.stackable).grid>.column:not(.row),.ui[class*="sixteen column"].doubling:not(.stackable).grid>.row>.column{width:25%!important}}@media only screen and (max-width:767px){.ui.stackable.grid{width:auto;margin-left:0!important;margin-right:0!important}.ui.grid>.stackable.stackable.row>.column,.ui.stackable.grid>.column.grid>.column,.ui.stackable.grid>.column.row>.column,.ui.stackable.grid>.column:not(.row),.ui.stackable.grid>.row>.column,.ui.stackable.grid>.row>.wide.column,.ui.stackable.grid>.wide.column{width:100%!important;margin:0!important;box-shadow:none!important;padding:1rem .5rem!important}.ui.stackable.grid:not(.vertically)>.row{margin:0;padding:0}.ui.container>.ui.stackable.grid>.column,.ui.container>.ui.stackable.grid>.row>.column{padding-left:0!important;padding-right:0!important}.ui.grid .ui.stackable.grid,.ui.segment:not(.vertical) .ui.stackable.page.grid{margin-left:-.5rem!important;margin-right:-.5rem!important}.ui.stackable.celled.grid>.column:not(.row):first-child,.ui.stackable.celled.grid>.row:first-child>.column:first-child,.ui.stackable.divided.grid>.column:not(.row):first-child,.ui.stackable.divided.grid>.row:first-child>.column:first-child{border-top:none!important}.ui.inverted.stackable.celled.grid>.column:not(.row),.ui.inverted.stackable.celled.grid>.row>.column,.ui.inverted.stackable.divided.grid>.column:not(.row),.ui.inverted.stackable.divided.grid>.row>.column{border-top:1px solid hsla(0,0%,100%,.1)}.ui.stackable.celled.grid>.column:not(.row),.ui.stackable.celled.grid>.row>.column,.ui.stackable.divided:not(.vertically).grid>.column:not(.row),.ui.stackable.divided:not(.vertically).grid>.row>.column{border-top:1px solid rgba(34,36,38,.15);box-shadow:none!important;padding-top:2rem!important;padding-bottom:2rem!important}.ui.stackable.celled.grid>.row{box-shadow:none!important}.ui.stackable.divided:not(.vertically).grid>.column:not(.row),.ui.stackable.divided:not(.vertically).grid>.row>.column{padding-left:0!important;padding-right:0!important}}@media only screen and (max-width:767px){.ui.grid.grid.grid>.row>[class*="computer only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].row:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="tablet only"].column:not(.mobile),.ui.grid.grid.grid>[class*="tablet only"].row:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="computer only"].grid.grid.grid:not(.mobile),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="tablet only"].grid.grid.grid:not(.mobile),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.grid.grid.grid>.row>[class*="computer only"].column:not(.tablet),.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.tablet),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="computer only"].column:not(.tablet),.ui.grid.grid.grid>[class*="computer only"].row:not(.tablet),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.tablet),.ui.grid.grid.grid>[class*="mobile only"].row:not(.tablet),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="computer only"].grid.grid.grid:not(.tablet),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.tablet),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.grid.grid.grid>.row>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="large screen only"].row:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="large screen only"].grid.grid.grid:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui.grid.grid.grid>[class*="widescreen only"].column:not(.mobile),.ui.grid.grid.grid>[class*="widescreen only"].row:not(.mobile),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer),.ui[class*="widescreen only"].grid.grid.grid:not(.mobile){display:none!important}}@media only screen and (min-width:1920px){.ui.grid.grid.grid>.row>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>.row>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].column:not(.computer),.ui.grid.grid.grid>[class*="mobile only"].row:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].column:not(.computer),.ui.grid.grid.grid>[class*="tablet only"].row:not(.computer),.ui[class*="mobile only"].grid.grid.grid:not(.computer),.ui[class*="tablet only"].grid.grid.grid:not(.computer){display:none!important}}.ui.menu{display:flex;margin:1rem 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;background:#fff;font-weight:400;border:1px solid rgba(34,36,38,.15);box-shadow:0 1px 1px 0 rgba(34,36,38,.15);border-radius:.21428571rem;min-height:2.85714286em}.ui.menu:after{content:"";display:block;height:0;clear:both;visibility:hidden}.ui.menu:first-child{margin-top:0}.ui.menu:last-child{margin-bottom:0}.ui.menu .menu{margin:0}.ui.menu:not(.vertical)>.menu{display:flex}.ui.menu:not(.vertical) .item{display:flex;align-items:center}.ui.menu .item{position:relative;vertical-align:middle;line-height:1;text-decoration:none;-webkit-tap-highlight-color:transparent;flex:0 0 auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:none;padding:.92857143em 1.14285714em;text-transform:none;color:rgba(0,0,0,.87);font-weight:400;transition:background .1s ease,box-shadow .1s ease,color .1s ease}.ui.menu>.item:first-child{border-radius:.21428571rem 0 0 .21428571rem}.ui.menu .item:before{position:absolute;content:"";top:0;right:0;height:100%;width:1px;background:rgba(34,36,38,.1)}.ui.menu .item>a:not(.ui),.ui.menu .item>p:only-child,.ui.menu .text.item>*{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu .item>i.icon{opacity:.9;float:none;margin:0 .35714286em 0 0}.ui.menu:not(.vertical) .item>.button{position:relative;top:0;margin:-.5em 0;padding-bottom:.78571429em;padding-top:.78571429em;font-size:1em}.ui.menu>.container,.ui.menu>.grid{display:flex;align-items:inherit;flex-direction:inherit}.ui.menu .item>.input{width:100%}.ui.menu:not(.vertical) .item>.input{position:relative;top:0;margin:-.5em 0}.ui.menu .item>.input input{font-size:1em;padding-top:.57142857em;padding-bottom:.57142857em}.ui.menu .header.item,.ui.vertical.menu .header.item{margin:0;background:"";text-transform:normal;font-weight:700}.ui.vertical.menu .item>.header:not(.ui){margin:0 0 .5em;font-size:1em;font-weight:700}.ui.menu .item>i.dropdown.icon{padding:0;float:right;margin:0 0 0 1em}.ui.menu .dropdown.item .menu{min-width:99%;border-radius:0 0 .21428571rem .21428571rem;background:#fff;margin:0;box-shadow:0 1px 3px 0 rgba(0,0,0,.08);flex-direction:column!important}.ui.menu .ui.dropdown .menu>.item{margin:0;text-align:left;font-size:1em!important;padding:.78571429em 1.14285714em!important;background:transparent!important;color:rgba(0,0,0,.87)!important;text-transform:none!important;font-weight:400!important;box-shadow:none!important;transition:none!important}.ui.menu .ui.dropdown .menu>.item:hover,.ui.menu .ui.dropdown .menu>.selected.item{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown .menu>.active.item{background:rgba(0,0,0,.03)!important;font-weight:700!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown.item .menu .item:not(.filtered){display:block}.ui.menu .ui.dropdown .menu>.item .icon:not(.dropdown){display:inline-block;font-size:1em!important;float:none;margin:0 .75em 0 0!important}.ui.secondary.menu .dropdown.item>.menu,.ui.text.menu .dropdown.item>.menu{border-radius:.21428571rem;margin-top:.35714286em}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.inverted.menu .search.dropdown.item>.search,.ui.inverted.menu .search.dropdown.item>.text{color:hsla(0,0%,100%,.9)}.ui.vertical.menu .dropdown.item>.icon{float:right;content:"\f0da";margin-left:1em}.ui.vertical.menu .dropdown.item .menu{left:100%;min-width:0;margin:0;box-shadow:0 1px 3px 0 rgba(0,0,0,.08);border-radius:0 .21428571rem .21428571rem .21428571rem}.ui.vertical.menu .dropdown.item.upward .menu{bottom:0}.ui.vertical.menu .dropdown.item:not(.upward) .menu{top:0}.ui.vertical.menu .active.dropdown.item{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.menu .dropdown.active.item{box-shadow:none}.ui.item.menu .dropdown .menu .item{width:100%}.ui.menu .item>.label{background:#999;color:#fff;margin-left:1em;padding:.3em .78571429em}.ui.vertical.menu .item>.label{background:#999;color:#fff;margin-top:-.15em;margin-bottom:-.15em;padding:.3em .78571429em}.ui.menu .item>.floating.label{padding:.3em .78571429em}.ui.menu .item>img:not(.ui){display:inline-block;vertical-align:middle;margin:-.3em 0;width:2.5em}.ui.vertical.menu .item>img:not(.ui):only-child{display:block;max-width:100%;width:auto}.ui.menu .list .item:before{background:none!important}.ui.vertical.sidebar.menu>.item:first-child:before{display:block!important}.ui.vertical.sidebar.menu>.item:before{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.menu>.ui.container{width:100%!important;margin-left:0!important;margin-right:0!important}}@media only screen and (min-width:768px){.ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.item:not(.right):not(.borderless):first-child{border-left:1px solid rgba(34,36,38,.1)}}.ui.link.menu .item:hover,.ui.menu .dropdown.item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover{cursor:pointer;background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.menu .active.item{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);font-weight:400;box-shadow:none}.ui.menu .active.item>i.icon{opacity:1}.ui.menu .active.item:hover,.ui.vertical.menu .active.item:hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{cursor:default!important;background-color:transparent!important;color:rgba(40,40,40,.3)!important}.ui.menu:not(.vertical) .left.item,.ui.menu:not(.vertical) :not(.dropdown)>.left.menu{display:flex;margin-right:auto!important}.ui.menu:not(.vertical) .right.item,.ui.menu:not(.vertical) .right.menu{display:flex;margin-left:auto!important}.ui.menu .right.item:before,.ui.menu .right.menu>.item:before{right:auto;left:0}.ui.vertical.menu{display:block;flex-direction:column;background:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15)}.ui.vertical.menu .item{display:block;background:none;border-top:none;border-right:none}.ui.vertical.menu>.item:first-child{border-radius:.21428571rem .21428571rem 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.vertical.menu .item>.label{float:right;text-align:center}.ui.vertical.menu .item>i.icon{width:1.18em;float:right;margin:0 0 0 .5em}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 .5em 0 0}.ui.vertical.menu .item:before{position:absolute;content:"";top:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.vertical.menu .item:first-child:before{display:none!important}.ui.vertical.menu .item>.menu{margin:.5em -1.14285714em 0}.ui.vertical.menu .menu .item{background:none;padding:.5em 1.33333333em;font-size:.85714286em;color:rgba(0,0,0,.5)}.ui.vertical.menu .item .menu .link.item:hover,.ui.vertical.menu .item .menu a.item:hover{color:rgba(0,0,0,.85)}.ui.vertical.menu .menu .item:before{display:none}.ui.vertical.menu .active.item{background:rgba(0,0,0,.05);border-radius:0;box-shadow:none}.ui.vertical.menu>.active.item:first-child{border-radius:.21428571rem .21428571rem 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.vertical.menu>.active.item:only-child{border-radius:.21428571rem}.ui.vertical.menu .active.item .menu .active.item{border-left:none}.ui.vertical.menu .item .menu .active.item{background-color:transparent;font-weight:700;color:rgba(0,0,0,.95)}.ui.tabular.menu{border-radius:0;box-shadow:none!important;background:none transparent;border:none;border-bottom:1px solid #d4d4d5}.ui.tabular.fluid.menu{width:102%!important}.ui.tabular.menu .item{background:transparent;border:1px solid transparent;border-top:2px solid transparent;border-bottom:none;padding:.92857143em 1.42857143em;color:rgba(0,0,0,.87)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-top-width:1px;border-color:#d4d4d5;font-weight:700;margin-bottom:-1px;box-shadow:none;border-radius:.21428571rem .21428571rem 0 0!important}.ui.tabular.menu+.attached:not(.top).segment,.ui.tabular.menu+.attached:not(.top).segment+.attached:not(.top).segment{border-top:none;margin-left:0;margin-top:0;margin-right:0;width:100%}.top.attached.segment+.ui.bottom.tabular.menu{position:relative;width:102%;left:-1px}.ui.bottom.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-top:1px solid #d4d4d5}.ui.bottom.tabular.menu .item{background:none;border:1px solid transparent;border-top:none}.ui.bottom.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:-1px 0 0;border-radius:0 0 .21428571rem .21428571rem!important}.ui.vertical.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-right:1px solid #d4d4d5}.ui.vertical.tabular.menu .item{background:none;border:1px solid transparent;border-right:none}.ui.vertical.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 -1px 0 0;border-radius:.21428571rem 0 0 .21428571rem!important}.ui.vertical.right.tabular.menu{background:none transparent;border-radius:0;box-shadow:none!important;border-bottom:none;border-right:none;border-left:1px solid #d4d4d5}.ui.vertical.right.tabular.menu .item{background:none;border:1px solid transparent;border-left:none}.ui.vertical.right.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 0 0 -1px;border-radius:0 .21428571rem .21428571rem 0!important}.ui.tabular.menu .active.dropdown.item{margin-bottom:0;border:1px solid transparent;border-top:2px solid transparent;border-bottom:none}.ui.pagination.menu{margin:0;display:inline-flex;vertical-align:middle}.ui.pagination.menu .item:last-child{border-radius:0 .21428571rem .21428571rem 0}.ui.pagination.menu .item:last-child:before{display:none}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu .active.item{border-top:none;padding-top:.92857143em;background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95);box-shadow:none}.ui.secondary.menu{background:none;margin-left:-.35714286em;margin-right:-.35714286em;border-radius:0;border:none;box-shadow:none}.ui.secondary.menu .item{align-self:center;box-shadow:none;border:none;padding:.78571429em .92857143em;margin:0 .35714286em;background:none;transition:color .1s ease;border-radius:.21428571rem}.ui.secondary.menu .item:before{display:none!important}.ui.secondary.menu .header.item{border-radius:0;border-right:none;background:none transparent}.ui.secondary.menu .item>img:not(.ui){margin:0}.ui.secondary.menu .dropdown.item:hover,.ui.secondary.menu .link.item:hover,.ui.secondary.menu a.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.menu .active.item{border-radius:.21428571rem}.ui.secondary.menu .active.item,.ui.secondary.menu .active.item:hover{box-shadow:none;background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.inverted.menu .link.item,.ui.secondary.inverted.menu a.item{color:hsla(0,0%,100%,.7)!important}.ui.secondary.inverted.menu .dropdown.item:hover,.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{background:hsla(0,0%,100%,.08);color:#fff!important}.ui.secondary.inverted.menu .active.item{background:hsla(0,0%,100%,.15);color:#fff!important}.ui.secondary.item.menu{margin-left:0;margin-right:0}.ui.secondary.item.menu .item:last-child{margin-right:0}.ui.secondary.attached.menu{box-shadow:none}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu{margin:0 -.92857143em}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 1.33333333em}.ui.secondary.vertical.menu>.item{border:none;margin:0 0 .35714286em;border-radius:.21428571rem!important}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.secondary.inverted.menu,.ui.vertical.secondary.menu .item>.menu .item{background-color:transparent}.ui.secondary.pointing.menu{margin-left:0;margin-right:0;border-bottom:2px solid rgba(34,36,38,.15)}.ui.secondary.pointing.menu .item{border-radius:0;align-self:flex-end;margin:0 0 -2px;padding:.85714286em 1.14285714em;border-bottom:2px solid transparent;transition:color .1s ease}.ui.secondary.pointing.menu .header.item{color:rgba(0,0,0,.85)!important}.ui.secondary.pointing.menu .text.item{box-shadow:none!important}.ui.secondary.pointing.menu .item:after{display:none}.ui.secondary.pointing.menu .dropdown.item:hover,.ui.secondary.pointing.menu .link.item:hover,.ui.secondary.pointing.menu a.item:hover{background-color:transparent;color:rgba(0,0,0,.87)}.ui.secondary.pointing.menu .dropdown.item:active,.ui.secondary.pointing.menu .link.item:active,.ui.secondary.pointing.menu a.item:active{background-color:transparent;border-color:rgba(34,36,38,.15)}.ui.secondary.pointing.menu .active.item{background-color:transparent;box-shadow:none;font-weight:700}.ui.secondary.pointing.menu .active.item,.ui.secondary.pointing.menu .active.item:hover{border-color:#1b1c1d;color:rgba(0,0,0,.95)}.ui.secondary.pointing.menu .active.dropdown.item{border-color:transparent}.ui.secondary.vertical.pointing.menu{border-bottom-width:0;border-right:2px solid rgba(34,36,38,.15)}.ui.secondary.vertical.pointing.menu .item{border-bottom:none;border-radius:0!important;margin:0 -2px 0 0;border-right:2px solid transparent}.ui.secondary.vertical.pointing.menu .active.item{border-color:#1b1c1d}.ui.secondary.inverted.pointing.menu{border-color:hsla(0,0%,100%,.1);border-width:2px;border-color:rgba(34,36,38,.15)}.ui.secondary.inverted.pointing.menu .item{color:hsla(0,0%,100%,.9)}.ui.secondary.inverted.pointing.menu .header.item{color:#fff!important}.ui.secondary.inverted.pointing.menu .link.item:hover,.ui.secondary.inverted.pointing.menu a.item:hover{color:rgba(0,0,0,.95)}.ui.secondary.inverted.pointing.menu .active.item{border-color:#fff;color:#fff}.ui.text.menu{background:none transparent;border-radius:0;box-shadow:none;border:none;margin:1em -.5em}.ui.text.menu .item{border-radius:0;box-shadow:none;align-self:center;margin:0;padding:.35714286em .5em;font-weight:400;color:rgba(0,0,0,.6);transition:opacity .1s ease}.ui.text.menu .item:before,.ui.text.menu .menu .item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(0,0,0,.85);font-size:.92857143em;text-transform:uppercase;font-weight:700}.ui.text.item.menu .item,.ui.text.menu .item>img:not(.ui){margin:0}.ui.vertical.text.menu{margin:1em 0}.ui.vertical.text.menu:first-child{margin-top:0}.ui.vertical.text.menu:last-child{margin-bottom:0}.ui.vertical.text.menu .item{margin:.57142857em 0;padding-left:0;padding-right:0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 .35714286em 0 0}.ui.vertical.text.menu .header.item{margin:.57142857em 0 .71428571em}.ui.vertical.text.menu .item:not(.dropdown)>.menu{margin:0}.ui.vertical.text.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{border:none;box-shadow:none;font-weight:400;color:rgba(0,0,0,.95)}.ui.text.menu .active.item,.ui.text.menu .active.item:hover{background-color:transparent}.ui.text.attached.menu,.ui.text.pointing.menu .active.item:after{box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .active.item,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover{background-color:transparent!important}.ui.fluid.text.menu{margin-left:0;margin-right:0}.ui.vertical.icon.menu{display:inline-block;width:auto}.ui.icon.menu .item{height:auto;text-align:center;color:#1b1c1d}.ui.icon.menu .item>.icon:not(.dropdown){margin:0;opacity:1}.ui.icon.menu .icon:before{opacity:1}.ui.menu .icon.item>.icon{width:auto;margin:0 auto}.ui.vertical.icon.menu .item>.icon:not(.dropdown){display:block;opacity:1;margin:0 auto;float:none}.ui.inverted.icon.menu .item{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu .item{min-width:6em;flex-direction:column}.ui.labeled.icon.menu .item>.icon:not(.dropdown){height:1em;display:block;font-size:1.71428571em!important;margin:0 auto .5rem!important}.ui.fluid.labeled.icon.menu>.item{min-width:0}@media only screen and (max-width:767px){.ui.stackable.menu{flex-direction:column}.ui.stackable.menu .item{width:100%!important}.ui.stackable.menu .item:before{position:absolute;content:"";top:auto;bottom:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.stackable.menu .left.item,.ui.stackable.menu .left.menu{margin-right:0!important}.ui.stackable.menu .right.item,.ui.stackable.menu .right.menu{margin-left:0!important}.ui.stackable.menu .left.menu,.ui.stackable.menu .right.menu{flex-direction:column}}.ui.menu .red.active.item,.ui.red.menu .active.item{border-color:#db2828!important;color:#db2828!important}.ui.menu .orange.active.item,.ui.orange.menu .active.item{border-color:#f2711c!important;color:#f2711c!important}.ui.menu .yellow.active.item,.ui.yellow.menu .active.item{border-color:#fbbd08!important;color:#fbbd08!important}.ui.menu .olive.active.item,.ui.olive.menu .active.item{border-color:#b5cc18!important;color:#b5cc18!important}.ui.green.menu .active.item,.ui.menu .green.active.item{border-color:#21ba45!important;color:#21ba45!important}.ui.menu .teal.active.item,.ui.teal.menu .active.item{border-color:#00b5ad!important;color:#00b5ad!important}.ui.blue.menu .active.item,.ui.menu .blue.active.item{border-color:#2c6a9e!important;color:#2c6a9e!important}.ui.menu .violet.active.item,.ui.violet.menu .active.item{border-color:#6435c9!important;color:#6435c9!important}.ui.menu .purple.active.item,.ui.purple.menu .active.item{border-color:#a333c8!important;color:#a333c8!important}.ui.menu .pink.active.item,.ui.pink.menu .active.item{border-color:#e03997!important;color:#e03997!important}.ui.brown.menu .active.item,.ui.menu .brown.active.item{border-color:#a5673f!important;color:#a5673f!important}.ui.grey.menu .active.item,.ui.menu .grey.active.item{border-color:#767676!important;color:#767676!important}.ui.inverted.menu{border:0 solid transparent;background:#1b1c1d;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a:not(.ui){background:transparent;color:hsla(0,0%,100%,.9)}.ui.inverted.menu .item.menu{background:transparent}.ui.inverted.menu .item:before,.ui.vertical.inverted.menu .item:before{background:hsla(0,0%,100%,.08)}.ui.vertical.inverted.menu .menu .item,.ui.vertical.inverted.menu .menu .item a:not(.ui){color:hsla(0,0%,100%,.5)}.ui.inverted.menu .header.item{margin:0;background:transparent;box-shadow:none}.ui.inverted.menu .item.disabled,.ui.inverted.menu .item.disabled:hover{color:hsla(0,0%,88.2%,.3)}.ui.inverted.menu .dropdown.item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.link.inverted.menu .item:hover{background:hsla(0,0%,100%,.08);color:#fff}.ui.vertical.inverted.menu .item .menu .link.item:hover,.ui.vertical.inverted.menu .item .menu a.item:hover{background:transparent;color:#fff}.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background:hsla(0,0%,100%,.08);color:#fff}.ui.inverted.menu .active.item{background:hsla(0,0%,100%,.15);color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background:transparent;color:#fff}.ui.inverted.pointing.menu .active.item:after{background:#28608e!important;margin:0!important;box-shadow:none!important;border:none!important}.ui.inverted.menu .active.item:hover{background:hsla(0,0%,100%,.15);color:#fff!important}.ui.inverted.pointing.menu .active.item:hover:after{background:#28608e!important}.ui.floated.menu{float:left;margin:0 .5rem 0 0}.ui.floated.menu .item:last-child:before{display:none}.ui.right.floated.menu{float:right;margin:0 0 0 .5rem}.ui.inverted.menu .red.active.item,.ui.inverted.red.menu{background-color:#db2828}.ui.inverted.red.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.red.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .orange.active.item,.ui.inverted.orange.menu{background-color:#f2711c}.ui.inverted.orange.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.orange.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .yellow.active.item,.ui.inverted.yellow.menu{background-color:#fbbd08}.ui.inverted.yellow.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.yellow.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .olive.active.item,.ui.inverted.olive.menu{background-color:#b5cc18}.ui.inverted.olive.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.olive.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.green.menu,.ui.inverted.menu .green.active.item{background-color:#21ba45}.ui.inverted.green.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.green.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .teal.active.item,.ui.inverted.teal.menu{background-color:#00b5ad}.ui.inverted.teal.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.teal.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.blue.menu,.ui.inverted.menu .blue.active.item{background-color:#2c6a9e}.ui.inverted.blue.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.blue.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .violet.active.item,.ui.inverted.violet.menu{background-color:#6435c9}.ui.inverted.violet.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.violet.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .purple.active.item,.ui.inverted.purple.menu{background-color:#a333c8}.ui.inverted.purple.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.purple.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .pink.active.item,.ui.inverted.pink.menu{background-color:#e03997}.ui.inverted.pink.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.pink.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.brown.menu,.ui.inverted.menu .brown.active.item{background-color:#a5673f}.ui.inverted.brown.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.brown.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.grey.menu,.ui.inverted.menu .grey.active.item{background-color:#767676}.ui.inverted.grey.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.grey.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.92857143em;padding-bottom:.92857143em}.ui.menu .vertically.fitted.item,.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item{padding-left:1.14285714em;padding-right:1.14285714em}.ui.borderless.menu .item .menu .item:before,.ui.borderless.menu .item:before,.ui.menu .borderless.item:before{background:none!important}.ui.compact.menu{display:inline-flex;margin:0;vertical-align:middle}.ui.compact.vertical.menu{display:inline-block}.ui.compact.menu .item:last-child{border-radius:0 .21428571rem .21428571rem 0}.ui.compact.menu .item:last-child:before{display:none}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child:before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;text-align:center;justify-content:center}.ui.attached.item.menu{margin:0 -1px!important}.ui.item.menu .item:last-child:before{display:none}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:101;margin:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.fixed.menu,.ui[class*="top fixed"].menu{top:0;left:0;right:auto;bottom:auto}.ui[class*="top fixed"].menu{border-top:none;border-left:none;border-right:none}.ui[class*="right fixed"].menu{border-top:none;border-bottom:none;border-right:none;top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui[class*="bottom fixed"].menu{border-bottom:none;border-left:none;border-right:none;bottom:0;left:0;top:auto;right:auto}.ui[class*="left fixed"].menu{border-top:none;border-bottom:none;border-left:none;top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .item:after{visibility:hidden;position:absolute;content:"";top:100%;left:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);background:none;margin:.5px 0 0;width:.57142857em;height:.57142857em;border:1px solid #d4d4d5;border-top:none;border-left:none;z-index:2;transition:background .1s ease}.ui.vertical.pointing.menu .item:after{position:absolute;top:50%;right:0;bottom:auto;left:auto;transform:translateX(50%) translateY(-50%) rotate(45deg);margin:0 -.5px 0 0;border:1px solid #d4d4d5;border-bottom:none;border-left:none}.ui.pointing.menu .active.item:after{visibility:visible}.ui.pointing.menu .active.dropdown.item:after{visibility:hidden}.ui.pointing.menu .active.item .menu .active.item:after,.ui.pointing.menu .dropdown.active.item:after{display:none}.ui.pointing.menu .active.item:after,.ui.pointing.menu .active.item:hover:after,.ui.vertical.pointing.menu .active.item:after,.ui.vertical.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#fff}.ui.attached.menu{top:0;bottom:0;border-radius:0;margin:0 -1px;width:102%;max-width:102%;box-shadow:none}.ui.attached+.ui.attached.menu:not(.top){border-top:none}.ui[class*="top attached"].menu{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.21428571rem .21428571rem 0 0}.ui.menu[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].menu{bottom:0;margin-top:0;top:0;margin-bottom:1rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),none;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="bottom attached"].menu:last-child{margin-bottom:0}.ui.top.attached.menu>.item:first-child{border-radius:.21428571rem 0 0 0}.ui.bottom.attached.menu>.item:first-child{border-radius:0 0 0 .21428571rem}.ui.attached.menu:not(.tabular){border:1px solid #d4d4d5}.ui.attached.inverted.menu{border:none}.ui.attached.tabular.menu{margin-left:0;margin-right:0;width:100%}.ui.mini.menu{font-size:11px;font-size:.78571429rem}.ui.mini.vertical.menu{width:126px;width:9rem}.ui.tiny.menu{font-size:12px;font-size:.85714286rem}.ui.tiny.vertical.menu{width:154px;width:11rem}.ui.small.menu{font-size:13px;font-size:.92857143rem}.ui.small.vertical.menu{width:182px;width:13rem}.ui.menu{font-size:14px;font-size:1rem}.ui.vertical.menu{width:210px;width:15rem}.ui.large.menu{font-size:14.999px;font-size:1.07142857rem}.ui.large.vertical.menu{width:252px;width:18rem}.ui.huge.menu{font-size:16.999px;font-size:1.21428571rem}.ui.huge.vertical.menu{width:308px;width:22rem}.ui.big.menu{font-size:15.999px;font-size:1.14285714rem}.ui.big.vertical.menu{width:280px;width:20rem}.ui.massive.menu{font-size:18px;font-size:1.28571429rem}.ui.massive.vertical.menu{width:350px;width:25rem}
/*!
 * # Semantic UI - Message
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.message{position:relative;min-height:1em;margin:1em 0;background:#f8f8f9;padding:1em 1.5em;line-height:1.4285em;color:rgba(0,0,0,.87);transition:opacity .1s ease,color .1s ease,background .1s ease,box-shadow .1s ease;border-radius:.21428571rem;box-shadow:inset 0 0 0 1px rgba(34,36,38,.22),0 0 0 0 transparent}.ui.message:first-child{margin-top:0}.ui.message:last-child{margin-bottom:0}.ui.message .header{display:block;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;margin:-.14285714em 0 0}.ui.message .header:not(.ui){font-size:1.14285714em}.ui.message p{opacity:.85;margin:.75em 0}.ui.message p:first-child{margin-top:0}.ui.message p:last-child{margin-bottom:0}.ui.message .header+p{margin-top:.25em}.ui.message .list:not(.ui){text-align:left;padding:0;opacity:.85;list-style-position:inside;margin:.5em 0 0}.ui.message .list:not(.ui):first-child{margin-top:0}.ui.message .list:not(.ui):last-child{margin-bottom:0}.ui.message .list:not(.ui) li{position:relative;list-style-type:none;margin:0 0 .3em 1em;padding:0}.ui.message .list:not(.ui) li:before{position:absolute;content:"•";left:-1em;height:100%;vertical-align:baseline}.ui.message .list:not(.ui) li:last-child{margin-bottom:0}.ui.message>.icon{margin-right:.6em}.ui.message>.close.icon{cursor:pointer;position:absolute;margin:0;top:.78575em;right:.5em;opacity:.7;transition:opacity .1s ease}.ui.message>.close.icon:hover{opacity:1}.ui.message>:first-child{margin-top:0}.ui.message>:last-child{margin-bottom:0}.ui.dropdown .menu>.message{margin:0 -1px}.ui.visible.visible.visible.visible.message{display:block}.ui.icon.visible.visible.visible.visible.message{display:flex}.ui.hidden.hidden.hidden.hidden.message{display:none}.ui.compact.message{display:inline-block}.ui.compact.icon.message{display:inline-flex}.ui.attached.message{margin-bottom:-1px;border-radius:.21428571rem .21428571rem 0 0;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15);margin-left:-1px;margin-right:-1px}.ui.attached+.ui.attached.message:not(.top):not(.bottom){margin-top:-1px;border-radius:0}.ui.bottom.attached.message{margin-top:-1px;border-radius:0 0 .21428571rem .21428571rem;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15),0 1px 1px 0 rgba(34,36,38,.15)}.ui.bottom.attached.message:not(:last-child){margin-bottom:1em}.ui.attached.icon.message{width:auto}.ui.icon.message{display:flex;width:100%;align-items:center}.ui.icon.message>.icon:not(.close){display:block;flex:0 0 auto;width:auto;line-height:1;vertical-align:middle;font-size:3em;opacity:.8}.ui.icon.message>.content{display:block;flex:1 1 auto;vertical-align:middle}.ui.icon.message .icon:not(.close)+.content{padding-left:0}.ui.icon.message .circular.icon{width:1em}.ui.floating.message{box-shadow:inset 0 0 0 1px rgba(34,36,38,.22),0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.black.message{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.positive.message{background-color:#fcfff5;color:#2c662d}.ui.attached.positive.message,.ui.positive.message{box-shadow:inset 0 0 0 1px #a3c293,0 0 0 0 transparent}.ui.positive.message .header{color:#1a531b}.ui.negative.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.negative.message,.ui.negative.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 0 0 0 transparent}.ui.negative.message .header{color:#912d2b}.ui.info.message{background-color:#f8ffff;color:#276f86}.ui.attached.info.message,.ui.info.message{box-shadow:inset 0 0 0 1px #a9d5de,0 0 0 0 transparent}.ui.info.message .header{color:#0e566c}.ui.warning.message{background-color:#fffaf3;color:#573a08}.ui.attached.warning.message,.ui.warning.message{box-shadow:inset 0 0 0 1px #c9ba9b,0 0 0 0 transparent}.ui.warning.message .header{color:#794b02}.ui.error.message{background-color:#fff6f6;color:#9f3a38}.ui.attached.error.message,.ui.error.message{box-shadow:inset 0 0 0 1px #e0b4b4,0 0 0 0 transparent}.ui.error.message .header{color:#912d2b}.ui.success.message{background-color:#fcfff5;color:#2c662d}.ui.attached.success.message,.ui.success.message{box-shadow:inset 0 0 0 1px #a3c293,0 0 0 0 transparent}.ui.success.message .header{color:#1a531b}.ui.black.message,.ui.inverted.message{background-color:#1b1c1d;color:hsla(0,0%,100%,.9)}.ui.red.message{background-color:#ffe8e6;color:#db2828;box-shadow:inset 0 0 0 1px #db2828,0 0 0 0 transparent}.ui.red.message .header{color:#c82121}.ui.orange.message{background-color:#ffedde;color:#f2711c;box-shadow:inset 0 0 0 1px #f2711c,0 0 0 0 transparent}.ui.orange.message .header{color:#e7640d}.ui.yellow.message{background-color:#fff8db;color:#b58105;box-shadow:inset 0 0 0 1px #b58105,0 0 0 0 transparent}.ui.yellow.message .header{color:#9c6f04}.ui.olive.message{background-color:#fbfdef;color:#8abc1e;box-shadow:inset 0 0 0 1px #8abc1e,0 0 0 0 transparent}.ui.olive.message .header{color:#7aa61a}.ui.green.message{background-color:#e5f9e7;color:#1ebc30;box-shadow:inset 0 0 0 1px #1ebc30,0 0 0 0 transparent}.ui.green.message .header{color:#1aa62a}.ui.teal.message{background-color:#e1f7f7;color:#10a3a3;box-shadow:inset 0 0 0 1px #10a3a3,0 0 0 0 transparent}.ui.teal.message .header{color:#0e8c8c}.ui.blue.message{background-color:#dff0ff;color:#2c6a9e;box-shadow:inset 0 0 0 1px #2c6a9e,0 0 0 0 transparent}.ui.blue.message .header{color:#265d8a}.ui.violet.message{background-color:#eae7ff;color:#6435c9;box-shadow:inset 0 0 0 1px #6435c9,0 0 0 0 transparent}.ui.violet.message .header{color:#5a30b5}.ui.purple.message{background-color:#f6e7ff;color:#a333c8;box-shadow:inset 0 0 0 1px #a333c8,0 0 0 0 transparent}.ui.purple.message .header{color:#922eb4}.ui.pink.message{background-color:#ffe3fb;color:#e03997;box-shadow:inset 0 0 0 1px #e03997,0 0 0 0 transparent}.ui.pink.message .header{color:#dd238b}.ui.brown.message{background-color:#f1e2d3;color:#a5673f;box-shadow:inset 0 0 0 1px #a5673f,0 0 0 0 transparent}.ui.brown.message .header{color:#935b38}.ui.mini.message{font-size:.78571429em}.ui.tiny.message{font-size:.85714286em}.ui.small.message{font-size:.92857143em}.ui.message{font-size:1em}.ui.large.message{font-size:1.14285714em}.ui.big.message{font-size:1.28571429em}.ui.huge.message{font-size:1.42857143em}.ui.massive.message{font-size:1.71428571em}
/*!
 * # Semantic UI - Table
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.table{width:100%;background:#fff;margin:1em 0;border:1px solid rgba(34,36,38,.15);box-shadow:none;border-radius:.21428571rem;text-align:left;color:rgba(0,0,0,.87);border-collapse:separate;border-spacing:0}.ui.table:first-child{margin-top:0}.ui.table:last-child{margin-bottom:0}.ui.table td,.ui.table th{transition:background .1s ease,color .1s ease}.ui.table thead{box-shadow:none}.ui.table thead th{cursor:auto;background:#f9fafb;text-align:inherit;color:rgba(0,0,0,.87);padding:.92857143em .78571429em;vertical-align:inherit;font-style:none;font-weight:700;text-transform:none;border-bottom:1px solid rgba(34,36,38,.1);border-left:none}.ui.table thead tr>th:first-child{border-left:none}.ui.table thead tr:first-child>th:first-child{border-radius:.21428571rem 0 0 0}.ui.table thead tr:first-child>th:last-child{border-radius:0 .21428571rem 0 0}.ui.table thead tr:first-child>th:only-child{border-radius:.21428571rem .21428571rem 0 0}.ui.table tfoot{box-shadow:none}.ui.table tfoot th{cursor:auto;border-top:1px solid rgba(34,36,38,.15);background:#f9fafb;text-align:inherit;color:rgba(0,0,0,.87);padding:.78571429em;vertical-align:middle;font-style:normal;font-weight:400;text-transform:none}.ui.table tfoot tr>th:first-child{border-left:none}.ui.table tfoot tr:first-child>th:first-child{border-radius:0 0 0 .21428571rem}.ui.table tfoot tr:first-child>th:last-child{border-radius:0 0 .21428571rem 0}.ui.table tfoot tr:first-child>th:only-child{border-radius:0 0 .21428571rem .21428571rem}.ui.table tr td{border-top:1px solid rgba(34,36,38,.1)}.ui.table tr:first-child td{border-top:none}.ui.table tbody+tbody tr:first-child td{border-top:1px solid rgba(34,36,38,.1)}.ui.table td{padding:.78571429em;text-align:inherit}.ui.table>.icon{vertical-align:baseline}.ui.table>.icon:only-child{margin:0}.ui.table.segment{padding:0}.ui.table.segment:after{display:none}.ui.table.segment.stacked:after{display:block}@media only screen and (max-width:767px){.ui.table:not(.unstackable){width:100%}.ui.table:not(.unstackable) tbody,.ui.table:not(.unstackable) tr,.ui.table:not(.unstackable) tr>td,.ui.table:not(.unstackable) tr>th{width:auto!important;display:block!important}.ui.table:not(.unstackable){padding:0}.ui.table:not(.unstackable) tfoot,.ui.table:not(.unstackable) thead{display:block}.ui.table:not(.unstackable) tr{padding-top:1em;padding-bottom:1em;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1)!important}.ui.table:not(.unstackable) tr>td,.ui.table:not(.unstackable) tr>th{background:none;border:none!important;padding:.25em .75em!important;box-shadow:none!important}.ui.table:not(.unstackable) td:first-child,.ui.table:not(.unstackable) th:first-child{font-weight:700}.ui.definition.table:not(.unstackable) thead th:first-child{box-shadow:none!important}}.ui.table td .image,.ui.table td .image img,.ui.table th .image,.ui.table th .image img{max-width:none}.ui.structured.table{border-collapse:collapse}.ui.structured.table thead th{border-left:none;border-right:none}.ui.structured.sortable.table thead th{border-left:1px solid rgba(34,36,38,.15);border-right:1px solid rgba(34,36,38,.15)}.ui.structured.basic.table th{border-left:none;border-right:none}.ui.structured.celled.table tr td,.ui.structured.celled.table tr th{border-left:1px solid rgba(34,36,38,.1);border-right:1px solid rgba(34,36,38,.1)}.ui.definition.table thead:not(.full-width) th:first-child{pointer-events:none;background:transparent;font-weight:400;color:rgba(0,0,0,.4);box-shadow:-1px -1px 0 1px #fff}.ui.definition.table tfoot:not(.full-width) th:first-child{pointer-events:none;background:transparent;font-weight:rgba(0,0,0,.4);color:normal;box-shadow:1px 1px 0 1px #fff}.ui.celled.definition.table thead:not(.full-width) th:first-child{box-shadow:0 -1px 0 1px #fff}.ui.celled.definition.table tfoot:not(.full-width) th:first-child{box-shadow:0 1px 0 1px #fff}.ui.definition.table tr td.definition,.ui.definition.table tr td:first-child:not(.ignored){background:rgba(0,0,0,.03);font-weight:700;color:rgba(0,0,0,.95);text-transform:"";box-shadow:"";text-align:"";font-size:1em;padding-left:"";padding-right:""}.ui.definition.table td:nth-child(2),.ui.definition.table tfoot:not(.full-width) th:nth-child(2),.ui.definition.table thead:not(.full-width) th:nth-child(2){border-left:1px solid rgba(34,36,38,.15)}.ui.table td.positive,.ui.table tr.positive{box-shadow:inset 0 0 0 #a3c293;background:#fcfff5!important;color:#2c662d!important}.ui.table td.negative,.ui.table tr.negative{box-shadow:inset 0 0 0 #e0b4b4;background:#fff6f6!important;color:#9f3a38!important}.ui.table td.error,.ui.table tr.error{box-shadow:inset 0 0 0 #e0b4b4;background:#fff6f6!important;color:#9f3a38!important}.ui.table td.warning,.ui.table tr.warning{box-shadow:inset 0 0 0 #c9ba9b;background:#fffaf3!important;color:#573a08!important}.ui.table td.active,.ui.table tr.active{box-shadow:inset 0 0 0 rgba(0,0,0,.87);background:#e0e0e0!important;color:rgba(0,0,0,.87)!important}.ui.table tr.disabled:hover,.ui.table tr.disabled td,.ui.table tr:hover td.disabled,.ui.table tr td.disabled{pointer-events:none;color:rgba(40,40,40,.3)}@media only screen and (max-width:991px){.ui[class*="tablet stackable"].table,.ui[class*="tablet stackable"].table tbody,.ui[class*="tablet stackable"].table tr,.ui[class*="tablet stackable"].table tr>td,.ui[class*="tablet stackable"].table tr>th{width:100%!important;display:block!important}.ui[class*="tablet stackable"].table{padding:0}.ui[class*="tablet stackable"].table tfoot,.ui[class*="tablet stackable"].table thead{display:block}.ui[class*="tablet stackable"].table tr{padding-top:1em;padding-bottom:1em;box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.1)!important}.ui[class*="tablet stackable"].table tr>td,.ui[class*="tablet stackable"].table tr>th{background:none;border:none!important;padding:.25em .75em;box-shadow:none!important}.ui.definition[class*="tablet stackable"].table thead th:first-child{box-shadow:none!important}}.ui.table[class*="left aligned"],.ui.table [class*="left aligned"]{text-align:left}.ui.table[class*="center aligned"],.ui.table [class*="center aligned"]{text-align:center}.ui.table[class*="right aligned"],.ui.table [class*="right aligned"]{text-align:right}.ui.table[class*="top aligned"],.ui.table [class*="top aligned"]{vertical-align:top}.ui.table[class*="middle aligned"],.ui.table [class*="middle aligned"]{vertical-align:middle}.ui.table[class*="bottom aligned"],.ui.table [class*="bottom aligned"]{vertical-align:bottom}.ui.table td.collapsing,.ui.table th.collapsing{width:1px;white-space:nowrap}.ui.fixed.table{table-layout:fixed}.ui.fixed.table td,.ui.fixed.table th{overflow:hidden;text-overflow:ellipsis}.ui.selectable.table tbody tr:hover,.ui.table tbody tr td.selectable:hover{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.inverted.table tbody tr td.selectable:hover,.ui.selectable.inverted.table tbody tr:hover{background:hsla(0,0%,100%,.08)!important;color:#fff!important}.ui.table tbody tr td.selectable{padding:0}.ui.table tbody tr td.selectable>a:not(.ui){display:block;color:inherit;padding:.78571429em}.ui.selectable.table tr.error:hover,.ui.selectable.table tr:hover td.error,.ui.table tr td.selectable.error:hover{background:#ffe7e7!important;color:#943634!important}.ui.selectable.table tr.warning:hover,.ui.selectable.table tr:hover td.warning,.ui.table tr td.selectable.warning:hover{background:#fff4e4!important;color:#493107!important}.ui.selectable.table tr.active:hover,.ui.selectable.table tr:hover td.active,.ui.table tr td.selectable.active:hover{background:#e0e0e0!important;color:rgba(0,0,0,.87)!important}.ui.selectable.table tr.positive:hover,.ui.selectable.table tr:hover td.positive,.ui.table tr td.selectable.positive:hover{background:#f7ffe6!important;color:#275b28!important}.ui.selectable.table tr.negative:hover,.ui.selectable.table tr:hover td.negative,.ui.table tr td.selectable.negative:hover{background:#ffe7e7!important;color:#943634!important}.ui.attached.table{top:0;bottom:0;border-radius:0;margin:0 -1px;width:102%;max-width:102%;box-shadow:none;border:1px solid #d4d4d5}.ui.attached+.ui.attached.table:not(.top){border-top:none}.ui[class*="top attached"].table{bottom:0;margin-bottom:0;top:0;margin-top:1em;border-radius:.21428571rem .21428571rem 0 0}.ui.table[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].table{bottom:0;margin-top:0;top:0;margin-bottom:1em;box-shadow:none,none;border-radius:0 0 .21428571rem .21428571rem}.ui[class*="bottom attached"].table:last-child{margin-bottom:0}.ui.striped.table>tr:nth-child(2n),.ui.striped.table tbody tr:nth-child(2n){background-color:rgba(0,0,50,.02)}.ui.inverted.striped.table>tr:nth-child(2n),.ui.inverted.striped.table tbody tr:nth-child(2n){background-color:hsla(0,0%,100%,.05)}.ui.striped.selectable.selectable.selectable.table tbody tr.active:hover{background:#efefef!important;color:rgba(0,0,0,.95)!important}.ui.table[class*="single line"],.ui.table [class*="single line"]{white-space:nowrap}.ui.red.table{border-top:.2em solid #db2828}.ui.inverted.red.table{background-color:#db2828!important;color:#fff!important}.ui.orange.table{border-top:.2em solid #f2711c}.ui.inverted.orange.table{background-color:#f2711c!important;color:#fff!important}.ui.yellow.table{border-top:.2em solid #fbbd08}.ui.inverted.yellow.table{background-color:#fbbd08!important;color:#fff!important}.ui.olive.table{border-top:.2em solid #b5cc18}.ui.inverted.olive.table{background-color:#b5cc18!important;color:#fff!important}.ui.green.table{border-top:.2em solid #21ba45}.ui.inverted.green.table{background-color:#21ba45!important;color:#fff!important}.ui.teal.table{border-top:.2em solid #00b5ad}.ui.inverted.teal.table{background-color:#00b5ad!important;color:#fff!important}.ui.blue.table{border-top:.2em solid #2c6a9e}.ui.inverted.blue.table{background-color:#2c6a9e!important;color:#fff!important}.ui.violet.table{border-top:.2em solid #6435c9}.ui.inverted.violet.table{background-color:#6435c9!important;color:#fff!important}.ui.purple.table{border-top:.2em solid #a333c8}.ui.inverted.purple.table{background-color:#a333c8!important;color:#fff!important}.ui.pink.table{border-top:.2em solid #e03997}.ui.inverted.pink.table{background-color:#e03997!important;color:#fff!important}.ui.brown.table{border-top:.2em solid #a5673f}.ui.inverted.brown.table{background-color:#a5673f!important;color:#fff!important}.ui.grey.table{border-top:.2em solid #767676}.ui.inverted.grey.table{background-color:#767676!important;color:#fff!important}.ui.black.table{border-top:.2em solid #1b1c1d}.ui.inverted.black.table{background-color:#1b1c1d!important;color:#fff!important}.ui.one.column.table td{width:100%}.ui.two.column.table td{width:50%}.ui.three.column.table td{width:33.33333333%}.ui.four.column.table td{width:25%}.ui.five.column.table td{width:20%}.ui.six.column.table td{width:16.66666667%}.ui.seven.column.table td{width:14.28571429%}.ui.eight.column.table td{width:12.5%}.ui.nine.column.table td{width:11.11111111%}.ui.ten.column.table td{width:10%}.ui.eleven.column.table td{width:9.09090909%}.ui.twelve.column.table td{width:8.33333333%}.ui.thirteen.column.table td{width:7.69230769%}.ui.fourteen.column.table td{width:7.14285714%}.ui.fifteen.column.table td{width:6.66666667%}.ui.sixteen.column.table td,.ui.table td.one.wide,.ui.table th.one.wide{width:6.25%}.ui.table td.two.wide,.ui.table th.two.wide{width:12.5%}.ui.table td.three.wide,.ui.table th.three.wide{width:18.75%}.ui.table td.four.wide,.ui.table th.four.wide{width:25%}.ui.table td.five.wide,.ui.table th.five.wide{width:31.25%}.ui.table td.six.wide,.ui.table th.six.wide{width:37.5%}.ui.table td.seven.wide,.ui.table th.seven.wide{width:43.75%}.ui.table td.eight.wide,.ui.table th.eight.wide{width:50%}.ui.table td.nine.wide,.ui.table th.nine.wide{width:56.25%}.ui.table td.ten.wide,.ui.table th.ten.wide{width:62.5%}.ui.table td.eleven.wide,.ui.table th.eleven.wide{width:68.75%}.ui.table td.twelve.wide,.ui.table th.twelve.wide{width:75%}.ui.table td.thirteen.wide,.ui.table th.thirteen.wide{width:81.25%}.ui.table td.fourteen.wide,.ui.table th.fourteen.wide{width:87.5%}.ui.table td.fifteen.wide,.ui.table th.fifteen.wide{width:93.75%}.ui.table td.sixteen.wide,.ui.table th.sixteen.wide{width:100%}.ui.sortable.table thead th{cursor:pointer;white-space:nowrap;border-left:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87)}.ui.sortable.table thead th:first-child{border-left:none}.ui.sortable.table thead th.sorted,.ui.sortable.table thead th.sorted:hover{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.sortable.table thead th:after{display:none;font-style:normal;font-weight:400;text-decoration:inherit;content:"";height:1em;width:auto;opacity:.8;margin:0 0 0 .5em;font-family:Icons}.ui.sortable.table thead th.ascending:after{content:"\f0d8"}.ui.sortable.table thead th.descending:after{content:"\f0d7"}.ui.sortable.table th.disabled:hover{cursor:auto;color:rgba(40,40,40,.3)}.ui.sortable.table thead th:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.8)}.ui.sortable.table thead th.sorted{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.sortable.table thead th.sorted:after{display:inline-block}.ui.sortable.table thead th.sorted:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.inverted.sortable.table thead th.sorted{background:hsla(0,0%,100%,.15) linear-gradient(transparent,rgba(0,0,0,.05));color:#fff}.ui.inverted.sortable.table thead th:hover{background:hsla(0,0%,100%,.08) linear-gradient(transparent,rgba(0,0,0,.05));color:#fff}.ui.inverted.sortable.table thead th{border-left-color:transparent;border-right-color:transparent}.ui.inverted.table{background:#333;color:hsla(0,0%,100%,.9);border:none}.ui.inverted.table th{background-color:rgba(0,0,0,.15);color:hsla(0,0%,100%,.9)!important}.ui.inverted.table th,.ui.inverted.table tr td{border-color:hsla(0,0%,100%,.1)!important}.ui.inverted.table tr.disabled:hover td,.ui.inverted.table tr.disabled td,.ui.inverted.table tr:hover td.disabled,.ui.inverted.table tr td.disabled{pointer-events:none;color:hsla(0,0%,88.2%,.3)}.ui.inverted.definition.table tfoot:not(.full-width) th:first-child,.ui.inverted.definition.table thead:not(.full-width) th:first-child{background:#fff}.ui.inverted.definition.table tr td:first-child{background:hsla(0,0%,100%,.02);color:#fff}.ui.collapsing.table{width:auto}.ui.basic.table{background:transparent;border:1px solid rgba(34,36,38,.15);box-shadow:none}.ui.basic.table tfoot,.ui.basic.table thead{box-shadow:none}.ui.basic.table th{background:transparent;border-left:none}.ui.basic.table tbody tr{border-bottom:1px solid rgba(0,0,0,.1)}.ui.basic.table td{background:transparent}.ui.basic.striped.table tbody tr:nth-child(2n){background-color:rgba(0,0,0,.05)!important}.ui[class*="very basic"].table{border:none}.ui[class*="very basic"].table:not(.sortable):not(.striped) td,.ui[class*="very basic"].table:not(.sortable):not(.striped) th{padding:""}.ui[class*="very basic"].table:not(.sortable):not(.striped) td:first-child,.ui[class*="very basic"].table:not(.sortable):not(.striped) th:first-child{padding-left:0}.ui[class*="very basic"].table:not(.sortable):not(.striped) td:last-child,.ui[class*="very basic"].table:not(.sortable):not(.striped) th:last-child{padding-right:0}.ui[class*="very basic"].table:not(.sortable):not(.striped) thead tr:first-child th{padding-top:0}.ui.celled.table tr td,.ui.celled.table tr th{border-left:1px solid rgba(34,36,38,.1)}.ui.celled.table tr td:first-child,.ui.celled.table tr th:first-child{border-left:none}.ui.padded.table th{padding-left:1em;padding-right:1em}.ui.padded.table td,.ui.padded.table th{padding:1em}.ui[class*="very padded"].table th{padding-left:1.5em;padding-right:1.5em}.ui[class*="very padded"].table td{padding:1.5em}.ui.compact.table th{padding-left:.7em;padding-right:.7em}.ui.compact.table td{padding:.5em .7em}.ui[class*="very compact"].table th{padding-left:.6em;padding-right:.6em}.ui[class*="very compact"].table td{padding:.4em .6em}.ui.small.table{font-size:.9em}.ui.table{font-size:1em}.ui.large.table{font-size:1.1em}
/*!
 * # Semantic UI - Ad
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2013 Contributors
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child,.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;transform:translateX(-50%) translateY(-50%);content:"Ad";color:#fff;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.card,.ui.cards>.card{max-width:100%;position:relative;display:flex;flex-direction:column;width:290px;min-height:0;background:#fff;padding:0;border:none;border-radius:.21428571rem;box-shadow:0 1px 3px 0 #d4d4d5,0 0 0 1px #d4d4d5;transition:box-shadow .1s ease,transform .1s ease;z-index:""}.ui.card{margin:1em 0}.ui.card a,.ui.cards>.card a{cursor:pointer}.ui.card:first-child{margin-top:0}.ui.card:last-child{margin-bottom:0}.ui.cards{display:flex;margin:-.875em -.5em;flex-wrap:wrap}.ui.cards>.card{display:flex;margin:.875em .5em;float:none}.ui.card:after,.ui.cards:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.cards~.ui.cards{margin-top:.875em}.ui.card>:first-child,.ui.cards>.card>:first-child{border-radius:.21428571rem .21428571rem 0 0!important;border-top:none!important}.ui.card>:last-child,.ui.cards>.card>:last-child{border-radius:0 0 .21428571rem .21428571rem!important}.ui.card>:only-child,.ui.cards>.card>:only-child{border-radius:.21428571rem!important}.ui.card>.image,.ui.cards>.card>.image{position:relative;display:block;flex:0 0 auto;padding:0;background:rgba(0,0,0,.05)}.ui.card>.image>img,.ui.cards>.card>.image>img{display:block;width:100%;height:auto;border-radius:inherit}.ui.card>.image:not(.ui)>img,.ui.cards>.card>.image:not(.ui)>img{border:none}.ui.card>.content,.ui.cards>.card>.content{flex-grow:1;border:none;border-top:1px solid rgba(34,36,38,.1);background:none;margin:0;padding:1em;box-shadow:none;font-size:1em;border-radius:0}.ui.card>.content:after,.ui.cards>.card>.content:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.card>.content>.header,.ui.cards>.card>.content>.header{display:block;margin:"";font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;color:rgba(0,0,0,.85)}.ui.card>.content>.header:not(.ui),.ui.cards>.card>.content>.header:not(.ui){font-weight:700;font-size:1.28571429em;margin-top:-.21425em;line-height:1.28571429em}.ui.card>.content>.header+.description,.ui.card>.content>.meta+.description,.ui.cards>.card>.content>.header+.description,.ui.cards>.card>.content>.meta+.description{margin-top:.5em}.ui.card [class*="left floated"],.ui.cards>.card [class*="left floated"]{float:left}.ui.card [class*="right floated"],.ui.cards>.card [class*="right floated"]{float:right}.ui.card [class*="left aligned"],.ui.cards>.card [class*="left aligned"]{text-align:left}.ui.card [class*="center aligned"],.ui.cards>.card [class*="center aligned"]{text-align:center}.ui.card [class*="right aligned"],.ui.cards>.card [class*="right aligned"]{text-align:right}.ui.card .content img,.ui.cards>.card .content img{display:inline-block;vertical-align:middle;width:""}.ui.card .avatar img,.ui.card img.avatar,.ui.cards>.card .avatar img,.ui.cards>.card img.avatar{width:2em;height:2em;border-radius:500rem}.ui.card>.content>.description,.ui.cards>.card>.content>.description{clear:both;color:rgba(0,0,0,.68)}.ui.card>.content p,.ui.cards>.card>.content p{margin:0 0 .5em}.ui.card>.content p:last-child,.ui.cards>.card>.content p:last-child{margin-bottom:0}.ui.card .meta,.ui.cards>.card .meta{font-size:1em;color:rgba(0,0,0,.4)}.ui.card .meta *,.ui.cards>.card .meta *{margin-right:.3em}.ui.card .meta :last-child,.ui.cards>.card .meta :last-child{margin-right:0}.ui.card .meta [class*="right floated"],.ui.cards>.card .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.card>.content a:not(.ui),.ui.cards>.card>.content a:not(.ui){color:"";transition:color .1s ease}.ui.card>.content a:not(.ui):hover,.ui.cards>.card>.content a:not(.ui):hover{color:""}.ui.card>.content>a.header,.ui.cards>.card>.content>a.header{color:rgba(0,0,0,.85)}.ui.card>.content>a.header:hover,.ui.cards>.card>.content>a.header:hover{color:#3277b2}.ui.card .meta>a:not(.ui),.ui.cards>.card .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.card .meta>a:not(.ui):hover,.ui.cards>.card .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.card>.button,.ui.card>.buttons,.ui.cards>.card>.button,.ui.cards>.card>.buttons{margin:0 -1px;width:calc(100% + 2px)}.ui.card .dimmer,.ui.cards>.card .dimmer{background-color:"";z-index:10}.ui.card>.content .star.icon,.ui.cards>.card>.content .star.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.card>.content .star.icon:hover,.ui.cards>.card>.content .star.icon:hover{opacity:1;color:#ffb70a}.ui.card>.content .active.star.icon,.ui.cards>.card>.content .active.star.icon{color:#ffe623}.ui.card>.content .like.icon,.ui.cards>.card>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.card>.content .like.icon:hover,.ui.cards>.card>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.card>.content .active.like.icon,.ui.cards>.card>.content .active.like.icon{color:#ff2733}.ui.card>.extra,.ui.cards>.card>.extra{max-width:100%;min-height:0!important;flex-grow:0;border-top:1px solid rgba(0,0,0,.05)!important;position:static;background:none;width:auto;margin:0;padding:.75em 1em;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease}.ui.card>.extra a:not(.ui),.ui.cards>.card>.extra a:not(.ui){color:rgba(0,0,0,.4)}.ui.card>.extra a:not(.ui):hover,.ui.cards>.card>.extra a:not(.ui):hover{color:#3277b2}.ui.link.cards .raised.card:hover,.ui.link.raised.card:hover,.ui.raised.cards a.card:hover,a.ui.raised.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 4px 0 rgba(34,36,38,.15),0 2px 10px 0 rgba(34,36,38,.25)}.ui.raised.card,.ui.raised.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.centered.cards{justify-content:center}.ui.centered.card{margin-left:auto;margin-right:auto}.ui.fluid.card{width:100%;max-width:9999px}.ui.cards a.card,.ui.link.card,.ui.link.cards .card,a.ui.card{transform:none}.ui.cards a.card:hover,.ui.link.card:hover,.ui.link.cards .card:hover,a.ui.card:hover{cursor:pointer;z-index:5;background:#fff;border:none;box-shadow:0 1px 3px 0 #bcbdbd,0 0 0 1px #d4d4d5;transform:translateY(-3px)}.ui.cards>.red.card,.ui.red.card,.ui.red.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #db2828,0 1px 3px 0 #d4d4d5}.ui.cards>.red.card:hover,.ui.red.card:hover,.ui.red.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #d01919,0 1px 3px 0 #bcbdbd}.ui.cards>.orange.card,.ui.orange.card,.ui.orange.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #f2711c,0 1px 3px 0 #d4d4d5}.ui.cards>.orange.card:hover,.ui.orange.card:hover,.ui.orange.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #f26202,0 1px 3px 0 #bcbdbd}.ui.cards>.yellow.card,.ui.yellow.card,.ui.yellow.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #fbbd08,0 1px 3px 0 #d4d4d5}.ui.cards>.yellow.card:hover,.ui.yellow.card:hover,.ui.yellow.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #eaae00,0 1px 3px 0 #bcbdbd}.ui.cards>.olive.card,.ui.olive.card,.ui.olive.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #b5cc18,0 1px 3px 0 #d4d4d5}.ui.cards>.olive.card:hover,.ui.olive.card:hover,.ui.olive.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a7bd0d,0 1px 3px 0 #bcbdbd}.ui.cards>.green.card,.ui.green.card,.ui.green.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #21ba45,0 1px 3px 0 #d4d4d5}.ui.cards>.green.card:hover,.ui.green.card:hover,.ui.green.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #16ab39,0 1px 3px 0 #bcbdbd}.ui.cards>.teal.card,.ui.teal.card,.ui.teal.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #00b5ad,0 1px 3px 0 #d4d4d5}.ui.cards>.teal.card:hover,.ui.teal.card:hover,.ui.teal.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #009c95,0 1px 3px 0 #bcbdbd}.ui.blue.card,.ui.blue.cards>.card,.ui.cards>.blue.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #2c6a9e,0 1px 3px 0 #d4d4d5}.ui.blue.card:hover,.ui.blue.cards>.card:hover,.ui.cards>.blue.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #215d8f,0 1px 3px 0 #bcbdbd}.ui.cards>.violet.card,.ui.violet.card,.ui.violet.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #6435c9,0 1px 3px 0 #d4d4d5}.ui.cards>.violet.card:hover,.ui.violet.card:hover,.ui.violet.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #5829bb,0 1px 3px 0 #bcbdbd}.ui.cards>.purple.card,.ui.purple.card,.ui.purple.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a333c8,0 1px 3px 0 #d4d4d5}.ui.cards>.purple.card:hover,.ui.purple.card:hover,.ui.purple.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #9627ba,0 1px 3px 0 #bcbdbd}.ui.cards>.pink.card,.ui.pink.card,.ui.pink.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #e03997,0 1px 3px 0 #d4d4d5}.ui.cards>.pink.card:hover,.ui.pink.card:hover,.ui.pink.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #e61a8d,0 1px 3px 0 #bcbdbd}.ui.brown.card,.ui.brown.cards>.card,.ui.cards>.brown.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #a5673f,0 1px 3px 0 #d4d4d5}.ui.brown.card:hover,.ui.brown.cards>.card:hover,.ui.cards>.brown.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #975b33,0 1px 3px 0 #bcbdbd}.ui.cards>.grey.card,.ui.grey.card,.ui.grey.cards>.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #767676,0 1px 3px 0 #d4d4d5}.ui.cards>.grey.card:hover,.ui.grey.card:hover,.ui.grey.cards>.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #838383,0 1px 3px 0 #bcbdbd}.ui.black.card,.ui.black.cards>.card,.ui.cards>.black.card{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #1b1c1d,0 1px 3px 0 #d4d4d5}.ui.black.card:hover,.ui.black.cards>.card:hover,.ui.cards>.black.card:hover{box-shadow:0 0 0 1px #d4d4d5,0 2px 0 0 #27292a,0 1px 3px 0 #bcbdbd}.ui.one.cards{margin-left:0;margin-right:0}.ui.one.cards>.card{width:100%}.ui.two.cards{margin-left:-1em;margin-right:-1em}.ui.two.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.three.cards{margin-left:-1em;margin-right:-1em}.ui.three.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.four.cards{margin-left:-.75em;margin-right:-.75em}.ui.four.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.five.cards{margin-left:-.75em;margin-right:-.75em}.ui.five.cards>.card{width:calc(20% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.six.cards{margin-left:-.75em;margin-right:-.75em}.ui.six.cards>.card{width:calc(16.66667% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.seven.cards{margin-left:-.5em;margin-right:-.5em}.ui.seven.cards>.card{width:calc(14.28571% - 1em);margin-left:.5em;margin-right:.5em}.ui.eight.cards{margin-left:-.5em;margin-right:-.5em}.ui.eight.cards>.card{width:calc(12.5% - 1em);margin-left:.5em;margin-right:.5em;font-size:11px}.ui.nine.cards{margin-left:-.5em;margin-right:-.5em}.ui.nine.cards>.card{width:calc(11.11111% - 1em);margin-left:.5em;margin-right:.5em;font-size:10px}.ui.ten.cards{margin-left:-.5em;margin-right:-.5em}.ui.ten.cards>.card{width:calc(10% - 1em);margin-left:.5em;margin-right:.5em}@media only screen and (max-width:767px){.ui.two.doubling.cards{margin-left:0;margin-right:0}.ui.two.doubling.cards>.card{width:100%;margin-left:0;margin-right:0}.ui.three.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.three.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.four.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.four.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.five.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.five.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.six.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.six.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.seven.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.seven.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.eight.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.nine.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.nine.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.ten.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.ten.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}}@media only screen and (min-width:768px) and (max-width:991px){.ui.two.doubling.cards{margin-left:0;margin-right:0}.ui.two.doubling.cards>.card{width:100%;margin-left:0;margin-right:0}.ui.three.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.three.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.four.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.four.doubling.cards>.card{width:calc(50% - 2em);margin-left:1em;margin-right:1em}.ui.five.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.five.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.six.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.six.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-1em;margin-right:-1em}.ui.eight.doubling.cards>.card{width:calc(33.33333% - 2em);margin-left:1em;margin-right:1em}.ui.eight.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.eight.doubling.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.nine.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.nine.doubling.cards>.card{width:calc(25% - 1.5em);margin-left:.75em;margin-right:.75em}.ui.ten.doubling.cards{margin-left:-.75em;margin-right:-.75em}.ui.ten.doubling.cards>.card{width:calc(20% - 1.5em);margin-left:.75em;margin-right:.75em}}@media only screen and (max-width:767px){.ui.stackable.cards{display:block!important}.ui.stackable.cards .card:first-child{margin-top:0!important}.ui.stackable.cards>.card{display:block!important;height:auto!important;margin:1em;padding:0!important;width:calc(100% - 2em)!important}}.ui.cards>.card{font-size:1em}
/*!
 * # Semantic UI - Comment
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:none;margin:.5em 0 0;padding:.5em 0 0;border:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments .comment .comments .comment{border:none;background:none}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.87);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#3277b2}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.87);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment .comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;box-shadow:-1px 0 0 rgba(34,36,38,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;transition:opacity .2s ease;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.mini.comments{font-size:11px;font-size:.78571429rem}.ui.tiny.comments{font-size:12px;font-size:.85714286rem}.ui.small.comments{font-size:13px;font-size:.92857143rem}.ui.comments{font-size:14px;font-size:1rem}.ui.large.comments{font-size:15.999px;font-size:1.14285714rem}.ui.big.comments{font-size:18px;font-size:1.28571429rem}.ui.huge.comments{font-size:20px;font-size:1.42857143rem}.ui.massive.comments{font-size:23.999px;font-size:1.71428571rem}
/*!
 * # Semantic UI - Feed
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.feed{margin:1em 0}.ui.feed:first-child{margin-top:0}.ui.feed:last-child{margin-bottom:0}.ui.feed>.event{display:flex;flex-direction:row;width:100%;padding:.21428571rem 0;margin:0;background:none;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:block;flex:0 0 auto;width:2.5em;height:auto;align-self:stretch;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:none;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{margin:.5em 0 .35714286em 1.14285714em}.ui.feed>.event>.content{display:block;flex:1 1 auto;align-self:stretch;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;font-weight:400;font-size:1em;font-style:normal;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:10em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:10em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.85714286em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:none;padding:0;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:0;border-left:none;font-size:1em;max-width:500px;line-height:1.4285em}.ui.feed>.event>.content .meta{display:inline-block;font-size:.85714286em;margin:.5em 0 0;background:none;border:none;border-radius:0;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:"";color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:"";transition:color .2s ease}.ui.feed>.event>.content .meta .like:hover .icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like .icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child:after{display:none}.ui.feed>.event>.content .meta>.icon,.ui.feed>.event>.content .meta a{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);transition:color .1s ease}.ui.feed>.event>.content .meta>.icon:hover,.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover .icon{color:rgba(0,0,0,.95)}.ui.small.feed{font-size:13px;font-size:.92857143rem}.ui.feed{font-size:14px;font-size:1rem}.ui.large.feed{font-size:15.999px;font-size:1.14285714rem}
/*!
 * # Semantic UI - Item
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.items>.item{display:flex;margin:1em 0;width:100%;min-height:0;background:transparent;padding:0;border:none;border-radius:0;box-shadow:none;transition:box-shadow .1s ease;z-index:""}.ui.items>.item a{cursor:pointer}.ui.items{margin:1.5em 0}.ui.items:first-child{margin-top:0!important}.ui.items:last-child{margin-bottom:0!important}.ui.items>.item:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item:first-child{margin-top:0}.ui.items>.item:last-child{margin-bottom:0}.ui.items>.item>.image{position:relative;flex:0 0 auto;display:block;float:none;margin:0;padding:0;max-height:"";align-self:top}.ui.items>.item>.image>img{display:block;width:100%;height:auto;border-radius:.125rem;border:none}.ui.items>.item>.image:only-child>img{border-radius:0}.ui.items>.item>.content{display:block;flex:1 1 auto;background:none;margin:0;padding:0;box-shadow:none;font-size:1em;border:none;border-radius:0}.ui.items>.item>.content:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image+.content{min-width:0;width:auto;display:block;margin-left:0;align-self:top;padding-left:1.5em}.ui.items>.item>.content>.header{display:inline-block;margin:-.21425em 0 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.85)}.ui.items>.item>.content>.header:not(.ui){font-size:1.28571429em}.ui.items>.item [class*="left floated"]{float:left}.ui.items>.item [class*="right floated"]{float:right}.ui.items>.item .content img{align-self:middle;width:""}.ui.items>.item .avatar img,.ui.items>.item img.avatar{width:"";height:"";border-radius:500rem}.ui.items>.item>.content>.description{margin-top:.6em;max-width:auto;font-size:1em;line-height:1.4285em;color:rgba(0,0,0,.87)}.ui.items>.item>.content p{margin:0 0 .5em}.ui.items>.item>.content p:last-child{margin-bottom:0}.ui.items>.item .meta{margin:.5em 0;font-size:1em;line-height:1em;color:rgba(0,0,0,.6)}.ui.items>.item .meta *{margin-right:.3em}.ui.items>.item .meta :last-child{margin-right:0}.ui.items>.item .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.items>.item>.content a:not(.ui){color:"";transition:color .1s ease}.ui.items>.item>.content a:not(.ui):hover{color:""}.ui.items>.item>.content>a.header{color:rgba(0,0,0,.85)}.ui.items>.item>.content>a.header:hover{color:#3277b2}.ui.items>.item .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.items>.item .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.items>.item>.content .favorite.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .favorite.icon:hover{opacity:1;color:#ffb70a}.ui.items>.item>.content .active.favorite.icon{color:#ffe623}.ui.items>.item>.content .like.icon{cursor:pointer;opacity:.75;transition:color .1s ease}.ui.items>.item>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.items>.item>.content .active.like.icon{color:#ff2733}.ui.items>.item .extra{display:block;position:relative;background:none;margin:.5rem 0 0;width:100%;padding:0;top:0;left:0;color:rgba(0,0,0,.4);box-shadow:none;transition:color .1s ease;border-top:none}.ui.items>.item .extra>*{margin:.25rem .5rem .25rem 0}.ui.items>.item .extra>[class*="right floated"]{margin:.25rem 0 .25rem .5rem}.ui.items>.item .extra:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image:not(.ui){width:175px}@media only screen and (min-width:768px) and (max-width:991px){.ui.items>.item{margin:1em 0}.ui.items>.item>.image:not(.ui){width:150px}.ui.items>.item>.image+.content{display:block;padding:0 0 0 1em}}@media only screen and (max-width:767px){.ui.items:not(.unstackable)>.item{flex-direction:column;margin:2em 0}.ui.items:not(.unstackable)>.item>.image{display:block;margin-left:auto;margin-right:auto}.ui.items:not(.unstackable)>.item>.image,.ui.items:not(.unstackable)>.item>.image>img{max-width:100%!important;width:auto!important;max-height:250px!important}.ui.items:not(.unstackable)>.item>.image+.content{display:block;padding:1.5em 0 0}}.ui.items>.item>.image+[class*="top aligned"].content{align-self:flex-start}.ui.items>.item>.image+[class*="middle aligned"].content{align-self:center}.ui.items>.item>.image+[class*="bottom aligned"].content{align-self:flex-end}.ui.relaxed.items>.item{margin:1.5em 0}.ui[class*="very relaxed"].items>.item{margin:2em 0}.ui.divided.items>.item{border-top:1px solid rgba(34,36,38,.15);margin:0;padding:1em 0}.ui.divided.items>.item:first-child{border-top:none;margin-top:0!important;padding-top:0!important}.ui.divided.items>.item:last-child{margin-bottom:0!important;padding-bottom:0!important}.ui.relaxed.divided.items>.item{margin:0;padding:1.5em 0}.ui[class*="very relaxed"].divided.items>.item{margin:0;padding:2em 0}.ui.items a.item:hover,.ui.link.items>.item:hover{cursor:pointer}.ui.items a.item:hover .content .header,.ui.link.items>.item:hover .content .header{color:#3277b2}.ui.items>.item{font-size:1em}@media only screen and (max-width:767px){.ui.unstackable.items>.item>.image,.ui.unstackable.items>.item>.image>img{width:125px!important}}
/*!
 * # Semantic UI - Statistic
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.statistic{display:inline-flex;flex-direction:column;margin:1em 0;max-width:auto}.ui.statistic+.ui.statistic{margin:0 0 0 1.4em}.ui.statistic:first-child{margin-top:0}.ui.statistic:last-child{margin-bottom:0}.ui.statistics{align-items:flex-start;flex-wrap:wrap}.ui.statistics>.statistic{display:inline-flex;flex:0 1 auto;flex-direction:column;margin:0 0 1em 1.4em;max-width:auto}.ui.statistics{display:flex;margin:1em -1.4em -1em}.ui.statistics:after{display:block;content:" ";height:0;clear:both;overflow:hidden;visibility:hidden}.ui.statistics:first-child{margin-top:0}.ui.statistic>.value,.ui.statistics .statistic>.value{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.8em;font-weight:400;line-height:1em;color:#1b1c1d;text-transform:uppercase;text-align:left}.ui.statistic>.label,.ui.statistics .statistic>.label{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.9em;font-weight:700;color:rgba(0,0,0,.87);text-transform:uppercase;text-align:left}.ui.statistic>.label~.value,.ui.statistic>.value~.label,.ui.statistics .statistic>.label~.value,.ui.statistics .statistic>.value~.label{margin-top:0}.ui.statistic>.value .icon,.ui.statistics .statistic>.value .icon{opacity:1;width:auto;margin:0}.ui.statistic>.text.value,.ui.statistics .statistic>.text.value{line-height:1em;min-height:2em;font-weight:700;text-align:center}.ui.statistic>.text.value+.label,.ui.statistics .statistic>.text.value+.label{text-align:center}.ui.statistic>.value img,.ui.statistics .statistic>.value img{max-height:42px;max-height:3rem;vertical-align:baseline}.ui.ten.statistics{margin:0 0 -1em}.ui.ten.statistics .statistic{min-width:10%;margin:0 0 1em}.ui.nine.statistics{margin:0 0 -1em}.ui.nine.statistics .statistic{min-width:11.11111111%;margin:0 0 1em}.ui.eight.statistics{margin:0 0 -1em}.ui.eight.statistics .statistic{min-width:12.5%;margin:0 0 1em}.ui.seven.statistics{margin:0 0 -1em}.ui.seven.statistics .statistic{min-width:14.28571429%;margin:0 0 1em}.ui.six.statistics{margin:0 0 -1em}.ui.six.statistics .statistic{min-width:16.66666667%;margin:0 0 1em}.ui.five.statistics{margin:0 0 -1em}.ui.five.statistics .statistic{min-width:20%;margin:0 0 1em}.ui.four.statistics{margin:0 0 -1em}.ui.four.statistics .statistic{min-width:25%;margin:0 0 1em}.ui.three.statistics{margin:0 0 -1em}.ui.three.statistics .statistic{min-width:33.33333333%;margin:0 0 1em}.ui.two.statistics{margin:0 0 -1em}.ui.two.statistics .statistic{min-width:50%;margin:0 0 1em}.ui.one.statistics{margin:0 0 -1em}.ui.one.statistics .statistic{min-width:100%;margin:0 0 1em}.ui.horizontal.statistic{flex-direction:row;align-items:center}.ui.horizontal.statistics{flex-direction:column;margin:0;max-width:none}.ui.horizontal.statistics .statistic{flex-direction:row;align-items:center;max-width:none;margin:1em 0}.ui.horizontal.statistic>.text.value,.ui.horizontal.statistics>.statistic>.text.value{min-height:0!important}.ui.horizontal.statistic>.value .icon,.ui.horizontal.statistics .statistic>.value .icon{width:1.18em}.ui.horizontal.statistic>.value,.ui.horizontal.statistics .statistic>.value{display:inline-block;vertical-align:middle}.ui.horizontal.statistic>.label,.ui.horizontal.statistics .statistic>.label{display:inline-block;vertical-align:middle;margin:0 0 0 .75em}.ui.red.statistic>.value,.ui.red.statistics .statistic>.value,.ui.statistics .red.statistic>.value{color:#db2828}.ui.orange.statistic>.value,.ui.orange.statistics .statistic>.value,.ui.statistics .orange.statistic>.value{color:#f2711c}.ui.statistics .yellow.statistic>.value,.ui.yellow.statistic>.value,.ui.yellow.statistics .statistic>.value{color:#fbbd08}.ui.olive.statistic>.value,.ui.olive.statistics .statistic>.value,.ui.statistics .olive.statistic>.value{color:#b5cc18}.ui.green.statistic>.value,.ui.green.statistics .statistic>.value,.ui.statistics .green.statistic>.value{color:#21ba45}.ui.statistics .teal.statistic>.value,.ui.teal.statistic>.value,.ui.teal.statistics .statistic>.value{color:#00b5ad}.ui.blue.statistic>.value,.ui.blue.statistics .statistic>.value,.ui.statistics .blue.statistic>.value{color:#2c6a9e}.ui.statistics .violet.statistic>.value,.ui.violet.statistic>.value,.ui.violet.statistics .statistic>.value{color:#6435c9}.ui.purple.statistic>.value,.ui.purple.statistics .statistic>.value,.ui.statistics .purple.statistic>.value{color:#a333c8}.ui.pink.statistic>.value,.ui.pink.statistics .statistic>.value,.ui.statistics .pink.statistic>.value{color:#e03997}.ui.brown.statistic>.value,.ui.brown.statistics .statistic>.value,.ui.statistics .brown.statistic>.value{color:#a5673f}.ui.grey.statistic>.value,.ui.grey.statistics .statistic>.value,.ui.statistics .grey.statistic>.value{color:#767676}.ui.inverted.statistic .value,.ui.inverted.statistics .statistic>.value{color:#fff}.ui.inverted.statistic .label,.ui.inverted.statistics .statistic>.label{color:hsla(0,0%,100%,.9)}.ui.inverted.red.statistic>.value,.ui.inverted.red.statistics .statistic>.value,.ui.statistics .inverted.red.statistic>.value{color:#ff695e}.ui.inverted.orange.statistic>.value,.ui.inverted.orange.statistics .statistic>.value,.ui.statistics .inverted.orange.statistic>.value{color:#ff851b}.ui.inverted.yellow.statistic>.value,.ui.inverted.yellow.statistics .statistic>.value,.ui.statistics .inverted.yellow.statistic>.value{color:#ffe21f}.ui.inverted.olive.statistic>.value,.ui.inverted.olive.statistics .statistic>.value,.ui.statistics .inverted.olive.statistic>.value{color:#d9e778}.ui.inverted.green.statistic>.value,.ui.inverted.green.statistics .statistic>.value,.ui.statistics .inverted.green.statistic>.value{color:#2ecc40}.ui.inverted.teal.statistic>.value,.ui.inverted.teal.statistics .statistic>.value,.ui.statistics .inverted.teal.statistic>.value{color:#6dffff}.ui.inverted.blue.statistic>.value,.ui.inverted.blue.statistics .statistic>.value,.ui.statistics .inverted.blue.statistic>.value{color:#5391c5}.ui.inverted.violet.statistic>.value,.ui.inverted.violet.statistics .statistic>.value,.ui.statistics .inverted.violet.statistic>.value{color:#a291fb}.ui.inverted.purple.statistic>.value,.ui.inverted.purple.statistics .statistic>.value,.ui.statistics .inverted.purple.statistic>.value{color:#dc73ff}.ui.inverted.pink.statistic>.value,.ui.inverted.pink.statistics .statistic>.value,.ui.statistics .inverted.pink.statistic>.value{color:#ff8edf}.ui.inverted.brown.statistic>.value,.ui.inverted.brown.statistics .statistic>.value,.ui.statistics .inverted.brown.statistic>.value{color:#d67c1c}.ui.inverted.grey.statistic>.value,.ui.inverted.grey.statistics .statistic>.value,.ui.statistics .inverted.grey.statistic>.value{color:#dcddde}.ui[class*="left floated"].statistic{float:left;margin:0 2em 1em 0}.ui[class*="right floated"].statistic{float:right;margin:0 0 1em 2em}.ui.floated.statistic:last-child{margin-bottom:0}.ui.mini.horizontal.statistic>.value,.ui.mini.horizontal.statistics .statistic>.value,.ui.mini.statistic>.value,.ui.mini.statistics .statistic>.value{font-size:21px!important;font-size:1.5rem!important}.ui.mini.statistic>.text.value,.ui.mini.statistics .statistic>.text.value{font-size:14px!important;font-size:1rem!important}.ui.tiny.horizontal.statistic>.value,.ui.tiny.horizontal.statistics .statistic>.value,.ui.tiny.statistic>.value,.ui.tiny.statistics .statistic>.value{font-size:28px!important;font-size:2rem!important}.ui.tiny.statistic>.text.value,.ui.tiny.statistics .statistic>.text.value{font-size:14px!important;font-size:1rem!important}.ui.small.statistic>.value,.ui.small.statistics .statistic>.value{font-size:42px!important;font-size:3rem!important}.ui.small.horizontal.statistic>.value,.ui.small.horizontal.statistics .statistic>.value{font-size:28px!important;font-size:2rem!important}.ui.small.statistic>.text.value,.ui.small.statistics .statistic>.text.value{font-size:14px!important;font-size:1rem!important}.ui.statistic>.value,.ui.statistics .statistic>.value{font-size:1.8em!important}.ui.horizontal.statistic>.value,.ui.horizontal.statistics .statistic>.value{font-size:42px!important;font-size:3rem!important}.ui.statistic>.text.value,.ui.statistics .statistic>.text.value{font-size:28px!important;font-size:2rem!important}.ui.large.statistic>.value,.ui.large.statistics .statistic>.value{font-size:70px!important;font-size:5rem!important}.ui.large.horizontal.statistic>.value,.ui.large.horizontal.statistics .statistic>.value{font-size:56px!important;font-size:4rem!important}.ui.large.statistic>.text.value,.ui.large.statistics .statistic>.text.value{font-size:35px!important;font-size:2.5rem!important}.ui.huge.statistic>.value,.ui.huge.statistics .statistic>.value{font-size:84px!important;font-size:6rem!important}.ui.huge.horizontal.statistic>.value,.ui.huge.horizontal.statistics .statistic>.value{font-size:70px!important;font-size:5rem!important}.ui.huge.statistic>.text.value,.ui.huge.statistics .statistic>.text.value{font-size:35px!important;font-size:2.5rem!important}
/*!
 * # Semantic UI - Accordion
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.accordion,.ui.accordion .accordion{max-width:100%}.ui.accordion .accordion{margin:1em 0 0;padding:0}.ui.accordion .accordion .title,.ui.accordion .title{cursor:pointer}.ui.accordion .title:not(.ui){padding:.5em 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1em;color:rgba(0,0,0,.87)}.ui.accordion .accordion .title~.content,.ui.accordion .title~.content{display:none}.ui.accordion:not(.styled) .accordion .title~.content:not(.ui),.ui.accordion:not(.styled) .title~.content:not(.ui){margin:"";padding:.5em 0 1em}.ui.accordion:not(.styled) .title~.content:not(.ui):last-child{padding-bottom:0}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{display:inline-block;float:none;opacity:1;width:1.25em;height:1em;margin:0 .25rem 0 0;padding:0;font-size:1em;transition:transform .1s ease,opacity .1s ease;vertical-align:baseline;transform:none}.ui.accordion.menu .item .title{display:block;padding:0}.ui.accordion.menu .item .title>.dropdown.icon{float:right;margin:.21425em 0 0 1em;transform:rotate(180deg)}.ui.accordion .ui.header .dropdown.icon{font-size:1em;margin:0 .25rem 0 0}.ui.accordion .accordion .active.title .dropdown.icon,.ui.accordion .active.title .dropdown.icon,.ui.accordion.menu .item .active.title>.dropdown.icon{transform:rotate(90deg)}.ui.styled.accordion{width:600px}.ui.styled.accordion,.ui.styled.accordion .accordion{border-radius:.21428571rem;background:#fff;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),0 0 0 0 rgba(34,36,38,.15)}.ui.styled.accordion .accordion .title,.ui.styled.accordion .title{margin:0;padding:.75em 1em;color:rgba(0,0,0,.4);font-weight:700;border-top:1px solid rgba(34,36,38,.15);transition:background .1s ease,color .1s ease}.ui.styled.accordion .accordion .title:first-child,.ui.styled.accordion>.title:first-child{border-top:none}.ui.styled.accordion .accordion .content,.ui.styled.accordion .content{margin:0;padding:.5em 1em 1.5em}.ui.styled.accordion .accordion .content{padding:.5em 1em 1.5em}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .accordion .title:hover,.ui.styled.accordion .active.title,.ui.styled.accordion .title:hover{background:transparent;color:rgba(0,0,0,.87)}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .active.title{background:transparent;color:rgba(0,0,0,.95)}.ui.accordion .accordion .active.content,.ui.accordion .active.content{display:block}.ui.fluid.accordion,.ui.fluid.accordion .accordion{width:100%}.ui.inverted.accordion .title:not(.ui){color:hsla(0,0%,100%,.9)}@font-face{font-family:Accordion;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("woff");font-weight:400;font-style:normal}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{font-family:Accordion;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center}.ui.accordion .accordion .title .dropdown.icon:before,.ui.accordion .title .dropdown.icon:before{content:"\f0da"}
/*!
 * # Semantic UI - Checkbox
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.checkbox{position:relative;display:inline-block;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:none;vertical-align:baseline;font-style:normal;min-height:17px;font-size:14px;font-size:1rem;line-height:17px;min-width:17px}.ui.checkbox input[type=checkbox],.ui.checkbox input[type=radio]{cursor:pointer;position:absolute;top:0;left:0;opacity:0!important;outline:none;z-index:3;width:17px;height:17px}.ui.checkbox .box,.ui.checkbox label{cursor:auto;position:relative;display:block;padding-left:1.85714em;outline:none;font-size:1em}.ui.checkbox .box:before,.ui.checkbox label:before{content:"";background:#fff;border-radius:.21428571rem;border:1px solid #d4d4d5}.ui.checkbox .box:after,.ui.checkbox .box:before,.ui.checkbox label:after,.ui.checkbox label:before{position:absolute;top:0;left:0;width:17px;height:17px;transition:border .1s ease,opacity .1s ease,transform .1s ease,box-shadow .1s ease}.ui.checkbox .box:after,.ui.checkbox label:after{font-size:14px;text-align:center;opacity:0;color:rgba(0,0,0,.87)}.ui.checkbox+label,.ui.checkbox label{color:rgba(0,0,0,.87);transition:color .1s ease}.ui.checkbox+label{vertical-align:middle}.ui.checkbox .box:hover:before,.ui.checkbox label:hover:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox+label:hover,.ui.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.checkbox .box:active:before,.ui.checkbox label:active:before{background:#f9fafb;border-color:rgba(34,36,38,.35)}.ui.checkbox .box:active:after,.ui.checkbox input:active~label,.ui.checkbox label:active:after{color:rgba(0,0,0,.95)}.ui.checkbox input:focus~.box:before,.ui.checkbox input:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:focus~.box:after,.ui.checkbox input:focus~label,.ui.checkbox input:focus~label:after{color:rgba(0,0,0,.95)}.ui.checkbox input:checked~.box:before,.ui.checkbox input:checked~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.checkbox input:not([type=radio]):indeterminate~.box:before,.ui.checkbox input:not([type=radio]):indeterminate~label:before{background:#fff;border-color:rgba(34,36,38,.35)}.ui.checkbox input:not([type=radio]):indeterminate~.box:after,.ui.checkbox input:not([type=radio]):indeterminate~label:after{opacity:1;color:rgba(0,0,0,.95)}.ui.checkbox input:checked:focus~.box:before,.ui.checkbox input:checked:focus~label:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:before,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:before{background:#fff;border-color:#96c8da}.ui.checkbox input:checked:focus~.box:after,.ui.checkbox input:checked:focus~label:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~.box:after,.ui.checkbox input:not([type=radio]):indeterminate:focus~label:after{color:rgba(0,0,0,.95)}.ui.read-only.checkbox,.ui.read-only.checkbox label{cursor:default}.ui.checkbox input[disabled]~.box:after,.ui.checkbox input[disabled]~label,.ui.disabled.checkbox .box:after,.ui.disabled.checkbox label{cursor:default!important;opacity:.5;color:#000}.ui.checkbox input.hidden{z-index:-1}.ui.checkbox input.hidden+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.radio.checkbox{min-height:15px}.ui.radio.checkbox .box,.ui.radio.checkbox label{padding-left:1.85714em}.ui.radio.checkbox .box:before,.ui.radio.checkbox label:before{content:"";transform:none;width:15px;height:15px;border-radius:500rem;top:1px;left:0}.ui.radio.checkbox .box:after,.ui.radio.checkbox label:after{border:none;content:""!important;line-height:15px;top:1px;left:0;width:15px;height:15px;border-radius:500rem;transform:scale(.46666667);background-color:rgba(0,0,0,.87)}.ui.radio.checkbox input:focus~.box:before,.ui.radio.checkbox input:focus~label:before{background-color:#fff}.ui.radio.checkbox input:focus~.box:after,.ui.radio.checkbox input:focus~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:indeterminate~.box:after,.ui.radio.checkbox input:indeterminate~label:after{opacity:0}.ui.radio.checkbox input:checked~.box:before,.ui.radio.checkbox input:checked~label:before{background-color:#fff}.ui.radio.checkbox input:checked~.box:after,.ui.radio.checkbox input:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.radio.checkbox input:focus:checked~.box:before,.ui.radio.checkbox input:focus:checked~label:before{background-color:#fff}.ui.radio.checkbox input:focus:checked~.box:after,.ui.radio.checkbox input:focus:checked~label:after{background-color:rgba(0,0,0,.95)}.ui.slider.checkbox{min-height:17.5px;min-height:1.25rem}.ui.slider.checkbox input{width:49px;width:3.5rem;height:17.5px;height:1.25rem}.ui.slider.checkbox .box,.ui.slider.checkbox label{padding-left:4.5rem;line-height:14px;line-height:1rem;color:rgba(0,0,0,.4)}.ui.slider.checkbox .box:before,.ui.slider.checkbox label:before{display:block;position:absolute;content:"";border:none!important;left:0;z-index:1;top:5.6px;top:.4rem;background-color:rgba(0,0,0,.05);width:49px;width:3.5rem;height:2.999px;height:.21428571rem;transform:none;border-radius:500rem;transition:background .3s ease}.ui.slider.checkbox .box:after,.ui.slider.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));position:absolute;content:""!important;opacity:1;z-index:2;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15);width:21px;width:1.5rem;height:21px;height:1.5rem;top:-3.5px;top:-.25rem;left:0;transform:none;border-radius:500rem;transition:left .3s ease}.ui.slider.checkbox input:focus~.box:before,.ui.slider.checkbox input:focus~label:before{background-color:rgba(0,0,0,.15);border:none}.ui.slider.checkbox .box:hover,.ui.slider.checkbox label:hover{color:rgba(0,0,0,.8)}.ui.slider.checkbox .box:hover:before,.ui.slider.checkbox label:hover:before{background:rgba(0,0,0,.15)}.ui.slider.checkbox input:checked~.box,.ui.slider.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:checked~.box:before,.ui.slider.checkbox input:checked~label:before{background-color:#545454!important}.ui.slider.checkbox input:checked~.box:after,.ui.slider.checkbox input:checked~label:after{left:28px;left:2rem}.ui.slider.checkbox input:focus:checked~.box,.ui.slider.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.slider.checkbox input:focus:checked~.box:before,.ui.slider.checkbox input:focus:checked~label:before{background-color:#000!important}.ui.toggle.checkbox{min-height:21px;min-height:1.5rem}.ui.toggle.checkbox input{width:49px;width:3.5rem;height:21px;height:1.5rem}.ui.toggle.checkbox .box,.ui.toggle.checkbox label{min-height:21px;min-height:1.5rem;padding-left:4.5rem;color:rgba(0,0,0,.87)}.ui.toggle.checkbox label{padding-top:.15em}.ui.toggle.checkbox .box:before,.ui.toggle.checkbox label:before{display:block;position:absolute;content:"";z-index:1;transform:none;border:none;top:0;background:rgba(0,0,0,.05);box-shadow:none;width:49px;width:3.5rem;height:21px;height:1.5rem;border-radius:500rem}.ui.toggle.checkbox .box:after,.ui.toggle.checkbox label:after{background:#fff linear-gradient(transparent,rgba(0,0,0,.05));position:absolute;content:""!important;opacity:1;z-index:2;border:none;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15);width:21px;width:1.5rem;height:21px;height:1.5rem;top:0;left:0;border-radius:500rem;transition:background .3s ease,left .3s ease}.ui.toggle.checkbox input~.box:after,.ui.toggle.checkbox input~label:after{left:-.7px;left:-.05rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox .box:hover:before,.ui.toggle.checkbox input:focus~.box:before,.ui.toggle.checkbox input:focus~label:before,.ui.toggle.checkbox label:hover:before{background-color:rgba(0,0,0,.15);border:none}.ui.toggle.checkbox input:checked~.box,.ui.toggle.checkbox input:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:checked~.box:before,.ui.toggle.checkbox input:checked~label:before{background-color:#2c6a9e!important}.ui.toggle.checkbox input:checked~.box:after,.ui.toggle.checkbox input:checked~label:after{left:30.099px;left:2.15rem;box-shadow:0 1px 1px 0 rgba(34,36,38,.15),inset 0 0 0 1px rgba(34,36,38,.15)}.ui.toggle.checkbox input:focus:checked~.box,.ui.toggle.checkbox input:focus:checked~label{color:rgba(0,0,0,.95)!important}.ui.toggle.checkbox input:focus:checked~.box:before,.ui.toggle.checkbox input:focus:checked~label:before{background-color:#1a5587!important}.ui.fitted.checkbox .box,.ui.fitted.checkbox label{padding-left:0!important}.ui.fitted.slider.checkbox,.ui.fitted.toggle.checkbox{width:49px;width:3.5rem}@font-face{font-family:Checkbox;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format("truetype")}.ui.checkbox .box:after,.ui.checkbox label:after{font-family:Checkbox}.ui.checkbox input:checked~.box:after,.ui.checkbox input:checked~label:after{content:"\e800"}.ui.checkbox input:indeterminate~.box:after,.ui.checkbox input:indeterminate~label:after{font-size:12px;content:"\e801"}
/*!
 * # Semantic UI - Dimmer
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.dimmable:not(body){position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;padding:1em;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;transition:background-color .5s linear;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;color:#fff}.ui.segment>.ui.dimmer{border-radius:inherit!important}.ui.dimmer:not(.inverted)::-webkit-scrollbar-track{background:hsla(0,0%,100%,.1)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.25)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive{background:hsla(0,0%,100%,.15)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.35)}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:flex;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.dimmed.dimmable>.ui.animating.legacy.dimmer,.dimmed.dimmable>.ui.visible.legacy.dimmer,.ui.active.legacy.dimmer{display:block}.ui[class*="top aligned"].dimmer{justify-content:flex-start}.ui[class*="bottom aligned"].dimmer{justify-content:flex-end}.ui.page.dimmer{position:fixed;transform-style:"";perspective:2000px;transform-origin:center center}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.blurring.dimmable>:not(.dimmer){filter:blur(0) grayscale(0);transition:filter .8s ease}.blurring.dimmed.dimmable>:not(.dimmer){filter:blur(5px) grayscale(.7)}.blurring.dimmable>.dimmer{background-color:rgba(0,0,0,.6)}.blurring.dimmable>.inverted.dimmer{background-color:hsla(0,0%,100%,.6)}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:hsla(0,0%,100%,.85)}.ui.inverted.dimmer>.content>*{color:#fff}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;width:0;height:0%;z-index:-100;background-color:transparent}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:hsla(0,0%,100%,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:hsla(0,0%,100%,.85)}
/*!
 * # Semantic UI - Dropdown
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.dropdown{cursor:pointer;position:relative;display:inline-block;outline:none;text-align:left;transition:box-shadow .1s ease,width .1s ease;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui.dropdown .menu{cursor:auto;position:absolute;display:none;outline:none;top:100%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;margin:0;padding:0;background:#fff;font-size:1em;text-shadow:none;text-align:left;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem;transition:opacity .1s ease;z-index:11;will-change:transform,opacity}.ui.dropdown .menu>*{white-space:nowrap}.ui.dropdown>input:not(.search):first-child,.ui.dropdown>select{display:none!important}.ui.dropdown>.dropdown.icon{position:relative;font-size:.85714286em;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon{width:auto;float:right;margin:0 0 0 1em}.ui.dropdown .menu>.item .dropdown.icon+.text{margin-right:1em}.ui.dropdown>.text{display:inline-block;transition:none}.ui.dropdown .menu>.item{position:relative;cursor:pointer;display:block;height:auto;text-align:left;border:none;line-height:1em;color:rgba(0,0,0,.87);padding:.78571429rem 1.14285714rem!important;font-size:14px;font-size:1rem;text-transform:none;font-weight:400;box-shadow:none;-webkit-touch-callout:none}.ui.dropdown .menu>.item:first-child{border-top-width:0}.ui.dropdown .menu .item>[class*="right floated"],.ui.dropdown>.text>[class*="right floated"]{float:right!important;margin-right:0!important;margin-left:1em!important}.ui.dropdown .menu .item>[class*="left floated"],.ui.dropdown>.text>[class*="left floated"]{float:left!important;margin-left:0!important;margin-right:1em!important}.ui.dropdown .menu .item>.flag.floated,.ui.dropdown .menu .item>.icon.floated,.ui.dropdown .menu .item>.image.floated,.ui.dropdown .menu .item>img.floated{margin-top:0}.ui.dropdown .menu>.header{margin:1rem 0 .75rem;padding:0 1.14285714rem;color:rgba(0,0,0,.85);font-size:.78571429em;font-weight:700;text-transform:uppercase}.ui.dropdown .menu>.divider{border-top:1px solid rgba(34,36,38,.1);height:0;margin:.5em 0}.ui.dropdown.dropdown .menu>.input{width:auto;display:flex;margin:1.14285714rem .78571429rem;min-width:140px;min-width:10rem}.ui.dropdown .menu>.header+.input{margin-top:0}.ui.dropdown .menu>.input:not(.transparent) input{padding:.5em 1em}.ui.dropdown .menu>.input:not(.transparent) .button,.ui.dropdown .menu>.input:not(.transparent) .icon,.ui.dropdown .menu>.input:not(.transparent) .label{padding-top:.5em;padding-bottom:.5em}.ui.dropdown .menu>.item>.description,.ui.dropdown>.text>.description{float:right;margin:0 0 0 1em;color:rgba(0,0,0,.4)}.ui.dropdown .menu>.message{padding:.78571429rem 1.14285714rem;font-weight:400}.ui.dropdown .menu>.message:not(.ui){color:rgba(0,0,0,.4)}.ui.dropdown .menu .menu{top:0!important;left:100%;right:auto;margin:0 0 0 -.5em!important;border-radius:.21428571rem!important;z-index:21!important}.ui.dropdown .menu .menu:after{display:none}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.icon,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.icon,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>img{margin-top:0}.ui.dropdown .menu>.item>.flag,.ui.dropdown .menu>.item>.icon,.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>.label,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.flag,.ui.dropdown>.text>.icon,.ui.dropdown>.text>.image,.ui.dropdown>.text>.label,.ui.dropdown>.text>img{margin-left:0;float:none;margin-right:.78571429rem}.ui.dropdown .menu>.item>.image,.ui.dropdown .menu>.item>img,.ui.dropdown>.text>.image,.ui.dropdown>.text>img{display:inline-block;vertical-align:top;width:auto;margin-top:-.5em;margin-bottom:-.5em;max-height:2em}.ui.dropdown .ui.menu>.item:before,.ui.menu .ui.dropdown .menu>.item:before{display:none}.ui.menu .ui.dropdown .menu .active.item{border-left:none}.ui.buttons>.ui.dropdown:last-child .menu,.ui.menu .right.dropdown.item .menu,.ui.menu .right.menu .dropdown:last-child .menu{left:auto;right:0}.ui.label.dropdown .menu{min-width:100%}.ui.dropdown.icon.button>.dropdown.icon{margin:0}.ui.button.dropdown .menu{min-width:100%}.ui.selection.dropdown{cursor:pointer;word-wrap:break-word;line-height:1em;white-space:normal;outline:0;transform:rotate(0deg);min-width:14em;min-height:2.71428571em;background:#fff;display:inline-block;padding:.78571429em 2.1em .78571429em 1em;color:rgba(0,0,0,.87);box-shadow:none;border:1px solid rgba(34,36,38,.15);border-radius:.21428571rem;transition:box-shadow .1s ease,width .1s ease}.ui.selection.dropdown.active,.ui.selection.dropdown.visible{z-index:10}select.ui.dropdown{height:38px;padding:.5em;border:1px solid rgba(34,36,38,.15);visibility:visible}.ui.selection.dropdown>.delete.icon,.ui.selection.dropdown>.dropdown.icon,.ui.selection.dropdown>.search.icon{cursor:pointer;position:absolute;width:auto;height:auto;line-height:1.21428571em;top:.78571429em;right:1em;z-index:3;margin:-.78571429em;padding:.91666667em;opacity:.8;transition:opacity .1s ease}.ui.compact.selection.dropdown{min-width:0}.ui.selection.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch;border-top-width:0!important;width:auto;outline:none;margin:0 -1px;min-width:calc(100% + 2px);width:calc(100% + 2px);border-radius:0 0 .21428571rem .21428571rem;box-shadow:0 2px 3px 0 rgba(34,36,38,.15);transition:opacity .1s ease}.ui.selection.dropdown .menu:after,.ui.selection.dropdown .menu:before{display:none}.ui.selection.dropdown .menu>.message{padding:.78571429rem 1.14285714rem}@media only screen and (max-width:767px){.ui.selection.dropdown .menu{max-height:8.01428571rem}}@media only screen and (min-width:768px){.ui.selection.dropdown .menu{max-height:10.68571429rem}}@media only screen and (min-width:992px){.ui.selection.dropdown .menu{max-height:16.02857143rem}}@media only screen and (min-width:1920px){.ui.selection.dropdown .menu{max-height:21.37142857rem}}.ui.selection.dropdown .menu>.item{border-top:1px solid #fafafa;padding:.78571429rem 1.14285714rem!important;white-space:normal;word-wrap:normal}.ui.selection.dropdown .menu>.hidden.addition.item{display:none}.ui.selection.dropdown:hover{border-color:rgba(34,36,38,.35);box-shadow:none}.ui.selection.active.dropdown,.ui.selection.active.dropdown .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.dropdown:focus{border-color:#96c8da;box-shadow:none}.ui.selection.dropdown:focus .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.selection.visible.dropdown>.text:not(.default){font-weight:400;color:rgba(0,0,0,.8)}.ui.selection.active.dropdown:hover,.ui.selection.active.dropdown:hover .menu{border-color:#96c8da;box-shadow:0 2px 3px 0 rgba(34,36,38,.15)}.ui.active.selection.dropdown>.dropdown.icon,.ui.visible.selection.dropdown>.dropdown.icon{opacity:"";z-index:3}.ui.active.selection.dropdown{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.active.empty.selection.dropdown{border-radius:.21428571rem!important;box-shadow:none!important}.ui.active.empty.selection.dropdown .menu{border:none!important;box-shadow:none!important}.ui.search.dropdown{min-width:""}.ui.search.dropdown>input.search{background:none transparent!important;border:none!important;box-shadow:none!important;cursor:text;top:0;left:1px;width:100%;outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);padding:inherit;position:absolute;z-index:2}.ui.search.dropdown>.text{cursor:text;position:relative;left:1px;z-index:3}.ui.search.selection.dropdown>input.search,.ui.search.selection.dropdown>span.sizer{line-height:1.21428571em;padding:.67857143em 2.1em .67857143em 1em}.ui.search.selection.dropdown>span.sizer{display:none;white-space:pre}.ui.search.dropdown.active>input.search,.ui.search.dropdown.visible>input.search{cursor:auto}.ui.search.dropdown.active>.text,.ui.search.dropdown.visible>.text{pointer-events:none}.ui.active.search.dropdown input.search:focus+.text .flag,.ui.active.search.dropdown input.search:focus+.text .icon{opacity:.45}.ui.active.search.dropdown input.search:focus+.text{color:hsla(0,0%,45.1%,.87)!important}.ui.search.dropdown .menu{overflow-x:hidden;overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}@media only screen and (max-width:767px){.ui.search.dropdown .menu{max-height:8.01428571rem}}@media only screen and (min-width:768px){.ui.search.dropdown .menu{max-height:10.68571429rem}}@media only screen and (min-width:992px){.ui.search.dropdown .menu{max-height:16.02857143rem}}@media only screen and (min-width:1920px){.ui.search.dropdown .menu{max-height:21.37142857rem}}.ui.multiple.dropdown{padding:.22619048em 2.1em .22619048em .35714286em}.ui.multiple.dropdown .menu{cursor:auto}.ui.multiple.search.dropdown,.ui.multiple.search.dropdown>input.search{cursor:text}.ui.multiple.dropdown>.label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;vertical-align:top;white-space:normal;font-size:1em;padding:.35714286em .78571429em;margin:.14285714rem .28571429rem .14285714rem 0;box-shadow:inset 0 0 0 1px rgba(34,36,38,.15)}.ui.multiple.dropdown .dropdown.icon{margin:"";padding:""}.ui.multiple.dropdown>.text{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.dropdown>.label~input.search{margin-left:.14285714em!important}.ui.multiple.dropdown>.label~.text{display:none}.ui.multiple.search.dropdown>.text{display:inline-block;position:absolute;top:0;left:0;padding:inherit;margin:.45238095em 0 .45238095em .64285714em;line-height:1.21428571em}.ui.multiple.search.dropdown>.label~.text{display:none}.ui.multiple.search.dropdown>input.search{position:static;padding:0;max-width:100%;margin:.45238095em 0 .45238095em .64285714em;width:2.2em;line-height:1.21428571em}.ui.inline.dropdown{cursor:pointer;display:inline-block;color:inherit}.ui.inline.dropdown .dropdown.icon{margin:0 .21428571em;vertical-align:baseline}.ui.inline.dropdown>.text{font-weight:700}.ui.inline.dropdown .menu{cursor:auto;margin-top:.21428571em;border-radius:.21428571rem}.ui.dropdown .menu .active.item{background:transparent;font-weight:700;color:rgba(0,0,0,.95);box-shadow:none;z-index:12}.ui.dropdown .menu>.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);z-index:13}.ui.loading.dropdown>i.icon{height:1em!important}.ui.loading.selection.dropdown>i.icon{padding:1.5em 1.28571429em!important}.ui.loading.dropdown>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.dropdown>i.icon:after,.ui.loading.dropdown>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.dropdown>i.icon:after{box-shadow:0 0 0 1px transparent;-webkit-animation:dropdown-spin .6s linear;animation:dropdown-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676}.ui.loading.dropdown.button>i.icon:after,.ui.loading.dropdown.button>i.icon:before{display:none}@-webkit-keyframes dropdown-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes dropdown-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui.default.dropdown:not(.button)>.text,.ui.dropdown:not(.button)>.default.text{color:hsla(0,0%,74.9%,.87)}.ui.default.dropdown:not(.button)>input:focus~.text,.ui.dropdown:not(.button)>input:focus~.default.text{color:hsla(0,0%,45.1%,.87)}.ui.loading.dropdown>.text{transition:none}.ui.dropdown .loading.menu{display:block;visibility:hidden;z-index:-1}.ui.dropdown>.loading.menu{left:0!important;right:auto!important}.ui.dropdown>.menu .loading.menu{left:100%!important;right:auto!important}.ui.dropdown .menu .selected.item,.ui.dropdown.selected{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.dropdown>.filtered.text{visibility:hidden}.ui.dropdown .filtered.item{display:none!important}.ui.dropdown.error,.ui.dropdown.error>.default.text,.ui.dropdown.error>.text{color:#9f3a38}.ui.selection.dropdown.error{background:#fff6f6;border-color:#e0b4b4}.ui.dropdown.error>.menu,.ui.dropdown.error>.menu .menu,.ui.selection.dropdown.error:hover{border-color:#e0b4b4}.ui.dropdown.error>.menu>.item{color:#9f3a38}.ui.multiple.selection.error.dropdown>.label{border-color:#e0b4b4}.ui.dropdown.error>.menu>.item:hover{background-color:#fff2f2}.ui.dropdown.error>.menu .active.item{background-color:#fdcfcf}.ui.dropdown>.clear.dropdown.icon{opacity:.8;transition:opacity .1s ease}.ui.dropdown>.clear.dropdown.icon:hover{opacity:1}.ui.disabled.dropdown,.ui.dropdown .menu>.disabled.item{cursor:default;pointer-events:none;opacity:.45}.ui.dropdown .menu{left:0}.ui.dropdown .menu .right.menu,.ui.dropdown .right.menu>.menu{left:100%!important;right:auto!important;border-radius:.21428571rem!important}.ui.dropdown>.left.menu{left:auto!important;right:0!important}.ui.dropdown .menu .left.menu,.ui.dropdown>.left.menu .menu{left:auto;right:100%;margin:0 -.5em 0 0!important;border-radius:.21428571rem!important}.ui.dropdown .item .left.dropdown.icon,.ui.dropdown .left.menu .item .dropdown.icon{width:auto;float:left;margin:0}.ui.dropdown .item .left.dropdown.icon+.text,.ui.dropdown .left.menu .item .dropdown.icon+.text{margin-left:1em;margin-right:0}.ui.upward.dropdown>.menu{top:auto;bottom:100%;box-shadow:0 0 3px 0 rgba(0,0,0,.08);border-radius:.21428571rem .21428571rem 0 0}.ui.dropdown .upward.menu{top:auto!important;bottom:0!important}.ui.simple.upward.active.dropdown,.ui.simple.upward.dropdown:hover{border-radius:.21428571rem .21428571rem 0 0!important}.ui.upward.dropdown.button:not(.pointing):not(.floating).active{border-radius:.21428571rem .21428571rem 0 0}.ui.upward.selection.dropdown .menu{border-top-width:1px!important;border-bottom-width:0!important;box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.upward.selection.dropdown:hover{box-shadow:0 0 2px 0 rgba(0,0,0,.05)}.ui.active.upward.selection.dropdown,.ui.upward.selection.dropdown.visible{border-radius:0 0 .21428571rem .21428571rem!important}.ui.upward.selection.dropdown.visible{box-shadow:0 0 3px 0 rgba(0,0,0,.08)}.ui.upward.active.selection.dropdown:hover{box-shadow:0 0 3px 0 rgba(0,0,0,.05)}.ui.upward.active.selection.dropdown:hover .menu{box-shadow:0 -2px 3px 0 rgba(0,0,0,.08)}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-x:hidden;overflow-y:auto}.ui.scrolling.dropdown .menu{overflow-x:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-overflow-scrolling:touch}.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{overflow-y:auto;min-width:100%!important;width:auto!important}.ui.dropdown .scrolling.menu{position:static;box-shadow:none!important;border-radius:0!important;margin:0!important;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.dropdown .scrolling.menu .item:first-child,.ui.dropdown .scrolling.menu>.item.item.item,.ui.scrolling.dropdown .menu .item.item.item,.ui.scrolling.dropdown .menu .item:first-child{border-top:none}.ui.dropdown>.animating.menu .scrolling.menu,.ui.dropdown>.visible.menu .scrolling.menu{display:block}@media (-ms-high-contrast:none){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{min-width:83%}}@media only screen and (max-width:767px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:10.28571429rem}}@media only screen and (min-width:768px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:15.42857143rem}}@media only screen and (min-width:992px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}@media only screen and (min-width:1920px){.ui.dropdown .scrolling.menu,.ui.scrolling.dropdown .menu{max-height:20.57142857rem}}.ui.simple.dropdown .menu:after,.ui.simple.dropdown .menu:before{display:none}.ui.simple.dropdown .menu{position:absolute;display:block;overflow:hidden;top:-9999px!important;opacity:0;width:0;height:0;transition:opacity .1s ease}.ui.simple.active.dropdown,.ui.simple.dropdown:hover{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.ui.simple.active.dropdown>.menu,.ui.simple.dropdown:hover>.menu{overflow:visible;width:auto;height:auto;top:100%!important;opacity:1}.ui.simple.dropdown:hover>.menu>.item:hover>.menu,.ui.simple.dropdown>.menu>.item:active>.menu{overflow:visible;width:auto;height:auto;top:0!important;left:100%!important;opacity:1}.ui.simple.disabled.dropdown:hover .menu{display:none;height:0;width:0;overflow:hidden}.ui.simple.visible.dropdown>.menu{display:block}.ui.fluid.dropdown{display:block;width:100%;min-width:0}.ui.fluid.dropdown>.dropdown.icon{float:right}.ui.floating.dropdown .menu{left:0;right:auto;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)!important;border-radius:.21428571rem!important}.ui.floating.dropdown>.menu{margin-top:.5em!important;border-radius:.21428571rem!important}.ui.pointing.dropdown>.menu{top:100%;margin-top:.78571429rem;border-radius:.21428571rem}.ui.pointing.dropdown>.menu:after{display:block;position:absolute;pointer-events:none;content:"";visibility:visible;transform:rotate(45deg);width:.5em;height:.5em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15);background:#fff;z-index:2;top:-.25em;left:50%;margin:0 0 0 -.25em}.ui.top.left.pointing.dropdown>.menu{top:100%;bottom:auto;left:0;right:auto;margin:1em 0 0}.ui.top.left.pointing.dropdown>.menu:after{top:-.25em;left:1em;right:auto;margin:0;transform:rotate(45deg)}.ui.top.right.pointing.dropdown>.menu{top:100%;bottom:auto;right:0;left:auto;margin:1em 0 0}.ui.top.pointing.dropdown>.left.menu:after,.ui.top.right.pointing.dropdown>.menu:after{top:-.25em;left:auto!important;right:1em!important;margin:0;transform:rotate(45deg)}.ui.left.pointing.dropdown>.menu{top:0;left:100%;right:auto;margin:0 0 0 1em}.ui.left.pointing.dropdown>.menu:after{top:1em;left:-.25em;margin:0;transform:rotate(-45deg)}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu{left:auto!important;right:100%!important;margin:0 1em 0 0}.ui.left:not(.top):not(.bottom).pointing.dropdown>.left.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.right.pointing.dropdown>.menu{top:0;left:auto;right:100%;margin:0 1em 0 0}.ui.right.pointing.dropdown>.menu:after{top:1em;left:auto;right:-.25em;margin:0;transform:rotate(135deg)}.ui.bottom.pointing.dropdown>.menu{top:auto;bottom:100%;left:0;right:auto;margin:0 0 1em}.ui.bottom.pointing.dropdown>.menu:after{top:auto;bottom:-.25em;right:auto;margin:0;transform:rotate(-135deg)}.ui.bottom.pointing.dropdown>.menu .menu{top:auto!important;bottom:0!important}.ui.bottom.left.pointing.dropdown>.menu{left:0;right:auto}.ui.bottom.left.pointing.dropdown>.menu:after{left:1em;right:auto}.ui.bottom.right.pointing.dropdown>.menu{right:0;left:auto}.ui.bottom.right.pointing.dropdown>.menu:after{left:auto;right:1em}.ui.pointing.upward.dropdown .menu,.ui.top.pointing.upward.dropdown .menu{top:auto!important;bottom:100%!important;margin:0 0 .78571429rem;border-radius:.21428571rem}.ui.pointing.upward.dropdown .menu:after,.ui.top.pointing.upward.dropdown .menu:after{top:100%!important;bottom:auto!important;box-shadow:1px 1px 0 0 rgba(34,36,38,.15);margin:-.25em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 1em 0 0}.ui.right.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu{top:auto!important;bottom:0!important;margin:0 0 0 1em}.ui.left.pointing.upward.dropdown:not(.top):not(.bottom) .menu:after{top:auto!important;bottom:0!important;margin:0 0 1em;box-shadow:-1px -1px 0 0 rgba(34,36,38,.15)}@font-face{font-family:Dropdown;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAVgAA8AAAAACFAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAchGgaq0dERUYAAAF0AAAAHAAAAB4AJwAPT1MvMgAAAZAAAABDAAAAVnW4TJdjbWFwAAAB1AAAAEsAAAFS8CcaqmN2dCAAAAIgAAAABAAAAAQAEQFEZ2FzcAAAAiQAAAAIAAAACP//AANnbHlmAAACLAAAAQoAAAGkrRHP9WhlYWQAAAM4AAAAMAAAADYPK8YyaGhlYQAAA2gAAAAdAAAAJANCAb1obXR4AAADiAAAACIAAAAiCBkAOGxvY2EAAAOsAAAAFAAAABQBnAIybWF4cAAAA8AAAAAfAAAAIAEVAF5uYW1lAAAD4AAAATAAAAKMFGlj5HBvc3QAAAUQAAAARgAAAHJoedjqd2ViZgAABVgAAAAGAAAABrO7W5UAAAABAAAAANXulPUAAAAA1r4hgAAAAADXu2Q1eNpjYGRgYOABYjEgZmJgBEIOIGYB8xgAA/YAN3jaY2BktGOcwMDKwMI4jTGNgYHBHUp/ZZBkaGFgYGJgZWbACgLSXFMYHFT/fLjFeOD/AQY9xjMMbkBhRpAcAN48DQYAeNpjYGBgZoBgGQZGBhDwAfIYwXwWBgMgzQGETAwMqn8+8H649f8/lHX9//9b7Pzf+fWgusCAkY0BzmUE6gHpQwGMDMMeAACbxg7SAAARAUQAAAAB//8AAnjadZBPSsNAGMXfS+yMqYgOhpSuSlKadmUhiVEhEMQzFF22m17BbbvzCh5BXCUn6EG8gjeQ4DepwYo4i+/ffL95j4EDA+CFC7jQuKyIeVHrI3wkleq9F7XrSInKteOeHdda8bOoaeepSc00NWPz/LRec9G8GabyGtEdF7h19z033GAMTK7zbM42xNEZpzYof0RtQ5CUHAQJ73OtVyutc+3b7Ou//b8XNlsPx3jgjUifABdhEohKJJL5iM5p39uqc7X1+sRQSqmGrUVhlsJ4lpmEUVwyT8SUYtg0P9DyNzPADDs+tjrGV6KRCRfsui3eHcL4/p8ZXvfMlcnEU+CLv7hDykOP+AKTPTxbAAB42mNgZGBgAGKuf5KP4vltvjLIMzGAwLV9ig0g+vruFFMQzdjACOJzMIClARh0CTJ42mNgZGBgPPD/AJD8wgAEjA0MjAyogAMAbOQEAQAAAAC7ABEAAAAAAKoAAAH0AAABgAAAAUAACAFAAAgAwAAXAAAAAAAAACoAKgAqADIAbACGAKAAugDSeNpjYGRgYOBkUGFgYgABEMkFhAwM/xn0QAIADdUBdAB42qWQvUoDQRSFv3GjaISUQaymSmGxJoGAsRC0iPYLsU50Y6IxrvlRtPCJJKUPIBb+PIHv4EN4djKuKAqCDHfmu+feOdwZoMCUAJNbAlYUMzaUlM14jjxbngOq7HnOia89z1Pk1vMCa9x7ztPkzfMyJbPj+ZGi6Xp+omxuPD+zaD7meaFg7mb8GrBqHmhwxoAxlm0uiRkpP9X5m26pKRoMxTGR1D49Dv/Yb/91o6l8qL6eu5n2hZQzn68utR9m3FU2cB4t9cdSLG2utI+44Eh/P9bqKO+oJ/WxmXssj77YkrjasZQD6SFddythk3Wtzrf+UF2p076Udla1VNzsERP3kkjVRKel7mp1udXYcHtZSlV7RfmJe1GiFWveluaeKD5/MuJcSk8Tpm/vvwPIbmJleNpjYGKAAFYG7ICTgYGRiZGZkYWRlZGNkZ2Rg5GTLT2nsiDDEEIZsZfmZRqZujmDaDcDAxcI7WIOpS2gtCWUdgQAZkcSmQAAAAFblbO6AAA=) format("woff");font-weight:400;font-style:normal}.ui.dropdown>.dropdown.icon{font-family:Dropdown;line-height:1;height:1em;width:1.23em;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center;width:auto}.ui.dropdown>.dropdown.icon:before{content:"\f0d7"}.ui.dropdown .menu .item .dropdown.icon:before{content:"\f0da"}.ui.dropdown .item .left.dropdown.icon:before,.ui.dropdown .left.menu .item .dropdown.icon:before{content:"\f0d9"}.ui.vertical.menu .dropdown.item>.dropdown.icon:before{content:"\f0da"}.ui.dropdown>.clear.icon:before{content:"\f00d"}
/*!
 * # Semantic UI - Video
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.embed>.embed{display:none}.ui.embed>.placeholder{display:block;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.icon,.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;width:100%;height:100%}.ui.embed>.icon{z-index:2}.ui.embed>.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:"";background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;transition:opacity .5s ease}.ui.embed>.icon:before{position:absolute;top:50%;left:50%;z-index:4;transform:translateX(-50%) translateY(-50%);color:#fff;font-size:84px;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed .icon:hover:after{background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed .icon:hover:before{color:#fff}.ui.active.embed>.icon,.ui.active.embed>.placeholder{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%}
/*!
 * # Semantic UI - Modal
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.modal{position:absolute;display:none;z-index:1001;text-align:left;background:#fff;border:none;box-shadow:1px 3px 3px 0 rgba(0,0,0,.2),1px 3px 15px 2px rgba(0,0,0,.2);transform-origin:50% 25%;flex:0 0 auto;border-radius:.21428571rem;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;will-change:top,left,margin,transform,opacity}.ui.modal>.icon:first-child+*,.ui.modal>:first-child:not(.icon){border-top-left-radius:2.999px;border-top-left-radius:.21428571rem;border-top-right-radius:2.999px;border-top-right-radius:.21428571rem}.ui.modal>:last-child{border-bottom-left-radius:2.999px;border-bottom-left-radius:.21428571rem;border-bottom-right-radius:2.999px;border-bottom-right-radius:.21428571rem}.ui.modal>.close{cursor:pointer;position:absolute;top:-35px;top:-2.5rem;right:-35px;right:-2.5rem;z-index:1;opacity:.8;font-size:1.25em;color:#fff;width:31.5px;width:2.25rem;height:31.5px;height:2.25rem;padding:.625rem 0 0}.ui.modal>.close:hover{opacity:1}.ui.modal>.header{display:block;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;background:#fff;margin:0;padding:1.25rem 1.5rem;box-shadow:none;color:rgba(0,0,0,.85);border-bottom:1px solid rgba(34,36,38,.15)}.ui.modal>.header:not(.ui){font-size:20px;font-size:1.42857143rem;line-height:1.28571429em;font-weight:700}.ui.modal>.content{display:block;width:100%;font-size:1em;line-height:1.4;padding:1.5rem;background:#fff}.ui.modal>.image.content{display:flex;flex-direction:row}.ui.modal>.content>.image{display:block;flex:0 1 auto;width:"";align-self:top}.ui.modal>[class*="top aligned"]{align-self:top}.ui.modal>[class*="middle aligned"]{align-self:middle}.ui.modal>[class*=stretched]{align-self:stretch}.ui.modal>.content>.description{display:block;flex:1 0 auto;min-width:0;align-self:top}.ui.modal>.content>.icon+.description,.ui.modal>.content>.image+.description{flex:0 1 auto;min-width:"";width:auto;padding-left:2em}.ui.modal>.content>.image>i.icon{margin:0;opacity:1;width:auto;line-height:1;font-size:112px;font-size:8rem}.ui.modal>.actions{background:#f9fafb;padding:1rem;border-top:1px solid rgba(34,36,38,.15);text-align:right}.ui.modal .actions>.button{margin-left:.75em}@media only screen and (max-width:767px){.ui.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.modal{width:850px;margin:0}}@media only screen and (min-width:1200px){.ui.modal{width:900px;margin:0}}@media only screen and (min-width:1920px){.ui.modal{width:950px;margin:0}}@media only screen and (max-width:991px){.ui.modal>.header{padding-right:2.25rem}.ui.modal>.close{top:1.0535rem;right:1rem;color:rgba(0,0,0,.87)}}@media only screen and (max-width:767px){.ui.modal>.header{padding:.75rem 2.25rem .75rem 1rem!important}.ui.modal>.content{display:block;padding:1rem!important}.ui.modal>.close{top:.5rem!important;right:.5rem!important}.ui.modal .image.content{flex-direction:column}.ui.modal .content>.image{display:block;max-width:100%;margin:0 auto!important;text-align:center;padding:0 0 1rem!important}.ui.modal>.content>.image>i.icon{font-size:5rem;text-align:center}.ui.modal .content>.description{display:block;width:100%!important;margin:0!important;padding:1rem 0!important;box-shadow:none}.ui.modal>.actions{padding:1rem 1rem 0!important}.ui.modal .actions>.button,.ui.modal .actions>.buttons{margin-bottom:1rem}}.ui.inverted.dimmer>.ui.modal{box-shadow:1px 3px 10px 2px rgba(0,0,0,.2)}.ui.basic.modal{border:none;border-radius:0;box-shadow:none!important;color:#fff}.ui.basic.modal,.ui.basic.modal>.actions,.ui.basic.modal>.content,.ui.basic.modal>.header{background-color:transparent}.ui.basic.modal>.header{color:#fff}.ui.basic.modal>.close{top:14px;top:1rem;right:21px;right:1.5rem}.ui.inverted.dimmer>.basic.modal{color:rgba(0,0,0,.87)}.ui.inverted.dimmer>.ui.basic.modal>.header{color:rgba(0,0,0,.85)}.ui.legacy.modal,.ui.legacy.page.dimmer>.ui.modal{top:50%;left:50%}.ui.legacy.page.dimmer>.ui.scrolling.modal,.ui.page.dimmer>.ui.scrolling.legacy.modal,.ui.top.aligned.dimmer>.ui.legacy.modal,.ui.top.aligned.legacy.page.dimmer>.ui.modal{top:auto}@media only screen and (max-width:991px){.ui.basic.modal>.close{color:#fff}}.ui.loading.modal{display:block;visibility:hidden;z-index:-1}.ui.active.modal{display:block}.modals.dimmer[class*="top aligned"] .modal{margin:5vh auto}@media only screen and (max-width:767px){.modals.dimmer[class*="top aligned"] .modal{margin:1rem auto}}.legacy.modals.dimmer[class*="top aligned"]{padding-top:5vh}@media only screen and (max-width:767px){.legacy.modals.dimmer[class*="top aligned"]{padding-top:1rem}}.scrolling.dimmable.dimmed{overflow:hidden}.scrolling.dimmable>.dimmer{justify-content:flex-start}.scrolling.dimmable.dimmed>.dimmer{overflow:auto;-webkit-overflow-scrolling:touch}.scrolling.dimmable>.dimmer{position:fixed}.modals.dimmer .ui.scrolling.modal{margin:1rem auto}.scrolling.undetached.dimmable.dimmed{overflow:auto;-webkit-overflow-scrolling:touch}.scrolling.undetached.dimmable.dimmed>.dimmer{overflow:hidden}.scrolling.undetached.dimmable .ui.scrolling.modal{position:absolute;left:50%;margin-top:1rem!important}.ui.modal .scrolling.content{max-height:70vh;overflow:auto}.ui.fullscreen.modal{width:95%!important;margin:1em auto}.ui.fullscreen.modal>.header{padding-right:2.25rem}.ui.fullscreen.modal>.close{top:14.749px;top:1.0535rem;right:14px;right:1rem;color:rgba(0,0,0,.87)}.ui.modal{font-size:14px;font-size:1rem}.ui.mini.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767px){.ui.mini.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.mini.modal{width:35.2%;margin:0}}@media only screen and (min-width:992px){.ui.mini.modal{width:340px;margin:0}}@media only screen and (min-width:1200px){.ui.mini.modal{width:360px;margin:0}}@media only screen and (min-width:1920px){.ui.mini.modal{width:380px;margin:0}}@media only screen and (max-width:767px){.ui.tiny.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.tiny.modal{width:52.8%;margin:0}}@media only screen and (min-width:992px){.ui.tiny.modal{width:510px;margin:0}}@media only screen and (min-width:1200px){.ui.tiny.modal{width:540px;margin:0}}@media only screen and (min-width:1920px){.ui.tiny.modal{width:570px;margin:0}}.ui.small.modal>.header:not(.ui){font-size:1.3em}@media only screen and (max-width:767px){.ui.small.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.small.modal{width:70.4%;margin:0}}@media only screen and (min-width:992px){.ui.small.modal{width:680px;margin:0}}@media only screen and (min-width:1200px){.ui.small.modal{width:720px;margin:0}}@media only screen and (min-width:1920px){.ui.small.modal{width:760px;margin:0}}.ui.large.modal>.header{font-size:1.6em}@media only screen and (max-width:767px){.ui.large.modal{width:95%;margin:0}}@media only screen and (min-width:768px){.ui.large.modal{width:88%;margin:0}}@media only screen and (min-width:992px){.ui.large.modal{width:1020px;margin:0}}@media only screen and (min-width:1200px){.ui.large.modal{width:1080px;margin:0}}@media only screen and (min-width:1920px){.ui.large.modal{width:1140px;margin:0}}
/*!
 * # Semantic UI - Nag
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:14px;font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .21428571rem .21428571rem;transition:background .2s ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.21428571rem .21428571rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f3f4f5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.bottom.nags .nag:last-child{border-radius:.21428571rem .21428571rem 0 0}
/*!
 * # Semantic UI - Popup
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.popup{display:none;position:absolute;top:0;right:0;min-width:-webkit-min-content;min-width:-moz-min-content;min-width:min-content;z-index:1900;border:1px solid #d4d4d5;line-height:1.4285em;max-width:250px;background:#fff;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.popup>.header{padding:0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1.14285714em;line-height:1.2;font-weight:700}.ui.popup>.header+.content{padding-top:.5em}.ui.popup:before{position:absolute;content:"";width:.71428571em;height:.71428571em;background:#fff;transform:rotate(45deg);z-index:2;box-shadow:1px 1px 0 0 #bababc}[data-tooltip]{position:relative}[data-tooltip]:before{content:"";width:.71428571em;height:.71428571em;transform:rotate(45deg);z-index:2;box-shadow:1px 1px 0 0 #bababc}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;position:absolute;font-size:14px;font-size:1rem;background:#fff}[data-tooltip]:after{content:attr(data-tooltip);text-transform:none;text-align:left;white-space:nowrap;border:1px solid #d4d4d5;line-height:1.4285em;max-width:none;padding:.833em 1em;font-weight:400;font-style:normal;color:rgba(0,0,0,.87);border-radius:.21428571rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);z-index:1}[data-tooltip]:not([data-position]):before{top:auto;right:auto;bottom:100%;left:50%;background:#fff;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-tooltip]:not([data-position]):after{left:50%;transform:translateX(-50%);bottom:100%;margin-bottom:.5em}[data-tooltip]:after,[data-tooltip]:before{pointer-events:none;visibility:hidden}[data-tooltip]:before{opacity:0;transform:rotate(45deg) scale(0)!important;transform-origin:center top;transition:all .1s ease}[data-tooltip]:after{opacity:1;transform-origin:center bottom;transition:all .1s ease}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;pointer-events:auto}[data-tooltip]:hover:before{transform:rotate(45deg) scale(1)!important;opacity:1}[data-tooltip]:after,[data-tooltip][data-position="bottom center"]:after,[data-tooltip][data-position="top center"]:after{transform:translateX(-50%) scale(0)!important}[data-tooltip]:hover:after,[data-tooltip][data-position="bottom center"]:hover:after{transform:translateX(-50%) scale(1)!important}[data-tooltip][data-position="left center"]:after,[data-tooltip][data-position="right center"]:after{transform:translateY(-50%) scale(0)!important}[data-tooltip][data-position="left center"]:hover:after,[data-tooltip][data-position="right center"]:hover:after{transform:translateY(-50%) scale(1)!important}[data-tooltip][data-position="bottom left"]:after,[data-tooltip][data-position="bottom right"]:after,[data-tooltip][data-position="top left"]:after,[data-tooltip][data-position="top right"]:after{transform:scale(0)!important}[data-tooltip][data-position="bottom left"]:hover:after,[data-tooltip][data-position="bottom right"]:hover:after,[data-tooltip][data-position="top left"]:hover:after,[data-tooltip][data-position="top right"]:hover:after{transform:scale(1)!important}[data-tooltip][data-inverted]:before{box-shadow:none!important;background:#1b1c1d}[data-tooltip][data-inverted]:after{background:#1b1c1d;color:#fff;border:none;box-shadow:none}[data-tooltip][data-inverted]:after .header{background-color:none;color:#fff}[data-position="top center"][data-tooltip]:after{top:auto;right:auto;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:.5em}[data-position="top center"][data-tooltip]:before{top:auto;right:auto;bottom:100%;left:50%;background:#fff;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="top left"][data-tooltip]:after{top:auto;right:auto;left:0;bottom:100%;margin-bottom:.5em}[data-position="top left"][data-tooltip]:before{top:auto;right:auto;bottom:100%;left:1em;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="top right"][data-tooltip]:after{top:auto;left:auto;right:0;bottom:100%;margin-bottom:.5em}[data-position="top right"][data-tooltip]:before{top:auto;left:auto;bottom:100%;right:1em;margin-left:-.07142857rem;margin-bottom:.14285714rem}[data-position="bottom center"][data-tooltip]:after{bottom:auto;right:auto;left:50%;top:100%;transform:translateX(-50%);margin-top:.5em}[data-position="bottom center"][data-tooltip]:before{bottom:auto;right:auto;top:100%;left:50%;margin-left:-.07142857rem;margin-top:.14285714rem}[data-position="bottom left"][data-tooltip]:after{left:0;top:100%;margin-top:.5em}[data-position="bottom left"][data-tooltip]:before{bottom:auto;right:auto;top:100%;left:1em;margin-left:-.07142857rem;margin-top:.14285714rem}[data-position="bottom right"][data-tooltip]:after{right:0;top:100%;margin-top:.5em}[data-position="bottom right"][data-tooltip]:before{bottom:auto;left:auto;top:100%;right:1em;margin-left:-.14285714rem;margin-top:.07142857rem}[data-position="left center"][data-tooltip]:after{right:100%;top:50%;margin-right:.5em;transform:translateY(-50%)}[data-position="left center"][data-tooltip]:before{right:100%;top:50%;margin-top:-.14285714rem;margin-right:-.07142857rem}[data-position="right center"][data-tooltip]:after{left:100%;top:50%;margin-left:.5em;transform:translateY(-50%)}[data-position="right center"][data-tooltip]:before{left:100%;top:50%;margin-top:-.07142857rem;margin-left:.14285714rem}[data-position~=bottom][data-tooltip]:before{background:#fff;box-shadow:-1px -1px 0 0 #bababc}[data-position="left center"][data-tooltip]:before{background:#fff;box-shadow:1px -1px 0 0 #bababc}[data-position="right center"][data-tooltip]:before{background:#fff;box-shadow:-1px 1px 0 0 #bababc}[data-position~=top][data-tooltip]:before{background:#fff}[data-inverted][data-position~=bottom][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px -1px 0 0 #bababc}[data-inverted][data-position="left center"][data-tooltip]:before{background:#1b1c1d;box-shadow:1px -1px 0 0 #bababc}[data-inverted][data-position="right center"][data-tooltip]:before{background:#1b1c1d;box-shadow:-1px 1px 0 0 #bababc}[data-inverted][data-position~=top][data-tooltip]:before{background:#1b1c1d}[data-position~=bottom][data-tooltip]:before{transform-origin:center bottom}[data-position~=bottom][data-tooltip]:after{transform-origin:center top}[data-position="left center"][data-tooltip]:before{transform-origin:top center}[data-position="left center"][data-tooltip]:after,[data-position="right center"][data-tooltip]:before{transform-origin:right center}[data-position="right center"][data-tooltip]:after{transform-origin:left center}.ui.popup{margin:0}.ui.top.popup{margin:0 0 .71428571em}.ui.top.left.popup{transform-origin:left bottom}.ui.top.center.popup{transform-origin:center bottom}.ui.top.right.popup{transform-origin:right bottom}.ui.left.center.popup{margin:0 .71428571em 0 0;transform-origin:right 50%}.ui.right.center.popup{margin:0 0 0 .71428571em;transform-origin:left 50%}.ui.bottom.popup{margin:.71428571em 0 0}.ui.bottom.left.popup{transform-origin:left top}.ui.bottom.center.popup{transform-origin:center top}.ui.bottom.right.popup{transform-origin:right top}.ui.bottom.center.popup:before{margin-left:-.30714286em;top:-.30714286em;left:50%;right:auto;bottom:auto;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.left.popup{margin-left:0}.ui.bottom.left.popup:before{top:-.30714286em;left:1em;right:auto;bottom:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.bottom.right.popup{margin-right:0}.ui.bottom.right.popup:before{top:-.30714286em;right:1em;bottom:auto;left:auto;margin-left:0;box-shadow:-1px -1px 0 0 #bababc}.ui.top.center.popup:before{top:auto;right:auto;bottom:-.30714286em;left:50%;margin-left:-.30714286em}.ui.top.left.popup{margin-left:0}.ui.top.left.popup:before{bottom:-.30714286em;left:1em;top:auto;right:auto;margin-left:0}.ui.top.right.popup{margin-right:0}.ui.top.right.popup:before{bottom:-.30714286em;right:1em;top:auto;left:auto;margin-left:0}.ui.left.center.popup:before{top:50%;right:-.30714286em;bottom:auto;left:auto;margin-top:-.30714286em;box-shadow:1px -1px 0 0 #bababc}.ui.right.center.popup:before{top:50%;left:-.30714286em;bottom:auto;right:auto;margin-top:-.30714286em;box-shadow:-1px 1px 0 0 #bababc}.ui.bottom.popup:before,.ui.left.center.popup:before,.ui.right.center.popup:before,.ui.top.popup:before{background:#fff}.ui.inverted.bottom.popup:before,.ui.inverted.left.center.popup:before,.ui.inverted.right.center.popup:before,.ui.inverted.top.popup:before{background:#1b1c1d}.ui.popup>.ui.grid:not(.padded){width:calc(100% + 1.75rem);margin:-.7rem -.875rem}.ui.loading.popup{display:block;visibility:hidden;z-index:-1}.ui.animating.popup,.ui.visible.popup{display:block}.ui.visible.popup{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.basic.popup:before{display:none}.ui.wide.popup{max-width:350px}.ui[class*="very wide"].popup{max-width:550px}@media only screen and (max-width:767px){.ui.wide.popup,.ui[class*="very wide"].popup{max-width:250px}}.ui.fluid.popup{width:100%;max-width:none}.ui.inverted.popup{background:#1b1c1d;color:#fff;border:none;box-shadow:none}.ui.inverted.popup .header{background-color:none;color:#fff}.ui.inverted.popup:before{background-color:#1b1c1d;box-shadow:none!important}.ui.flowing.popup{max-width:none}.ui.mini.popup{font-size:11px;font-size:.78571429rem}.ui.tiny.popup{font-size:12px;font-size:.85714286rem}.ui.small.popup{font-size:13px;font-size:.92857143rem}.ui.popup{font-size:14px;font-size:1rem}.ui.large.popup{font-size:15.999px;font-size:1.14285714rem}.ui.huge.popup{font-size:20px;font-size:1.42857143rem}
/*!
 * # Semantic UI - Progress Bar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.progress{position:relative;display:block;max-width:100%;border:none;margin:1em 0 2.5em;box-shadow:none;background:rgba(0,0,0,.1);padding:0;border-radius:.21428571rem}.ui.progress:first-child{margin:0 0 2.5em}.ui.progress:last-child{margin:0 0 1.5em}.ui.progress .bar{display:block;line-height:1;position:relative;width:0;min-width:2em;background:#888;border-radius:.21428571rem;transition:width .1s ease,background-color .1s ease}.ui.progress .bar>.progress{white-space:nowrap;width:auto;font-size:.92857143em;top:50%;right:.5em;left:auto;color:hsla(0,0%,100%,.7);margin-top:-.5em;text-align:left}.ui.progress .bar>.progress,.ui.progress>.label{position:absolute;bottom:auto;text-shadow:none;font-weight:700}.ui.progress>.label{width:100%;font-size:1em;top:100%;right:auto;left:0;color:rgba(0,0,0,.87);margin-top:.2em;text-align:center;transition:color .4s ease}.ui.indicating.progress[data-percent^="1"] .bar,.ui.indicating.progress[data-percent^="2"] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent^="3"] .bar{background-color:#efbc72}.ui.indicating.progress[data-percent^="4"] .bar,.ui.indicating.progress[data-percent^="5"] .bar{background-color:#e6bb48}.ui.indicating.progress[data-percent^="6"] .bar{background-color:#ddc928}.ui.indicating.progress[data-percent^="7"] .bar,.ui.indicating.progress[data-percent^="8"] .bar{background-color:#b4d95c}.ui.indicating.progress[data-percent^="9"] .bar,.ui.indicating.progress[data-percent^="100"] .bar{background-color:#66da81}.ui.indicating.progress[data-percent^="1"] .label,.ui.indicating.progress[data-percent^="2"] .label,.ui.indicating.progress[data-percent^="3"] .label,.ui.indicating.progress[data-percent^="4"] .label,.ui.indicating.progress[data-percent^="5"] .label,.ui.indicating.progress[data-percent^="6"] .label,.ui.indicating.progress[data-percent^="7"] .label,.ui.indicating.progress[data-percent^="8"] .label,.ui.indicating.progress[data-percent^="9"] .label,.ui.indicating.progress[data-percent^="100"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent="1"] .bar,.ui.indicating.progress[data-percent="2"] .bar,.ui.indicating.progress[data-percent="3"] .bar,.ui.indicating.progress[data-percent="4"] .bar,.ui.indicating.progress[data-percent="5"] .bar,.ui.indicating.progress[data-percent="6"] .bar,.ui.indicating.progress[data-percent="7"] .bar,.ui.indicating.progress[data-percent="8"] .bar,.ui.indicating.progress[data-percent="9"] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent="1"] .label,.ui.indicating.progress[data-percent="2"] .label,.ui.indicating.progress[data-percent="3"] .label,.ui.indicating.progress[data-percent="4"] .label,.ui.indicating.progress[data-percent="5"] .label,.ui.indicating.progress[data-percent="6"] .label,.ui.indicating.progress[data-percent="7"] .label,.ui.indicating.progress[data-percent="8"] .label,.ui.indicating.progress[data-percent="9"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress.success .label{color:#1a531b}.ui.progress.success .bar{background-color:#21ba45!important}.ui.progress.success .bar,.ui.progress.success .bar:after{-webkit-animation:none!important;animation:none!important}.ui.progress.success>.label{color:#1a531b}.ui.progress.warning .bar{background-color:#f2c037!important}.ui.progress.warning .bar,.ui.progress.warning .bar:after{-webkit-animation:none!important;animation:none!important}.ui.progress.warning>.label{color:#794b02}.ui.progress.error .bar{background-color:#db2828!important}.ui.progress.error .bar,.ui.progress.error .bar:after{-webkit-animation:none!important;animation:none!important}.ui.progress.error>.label{color:#912d2b}.ui.active.progress .bar{position:relative;min-width:2em}.ui.active.progress .bar:after{content:"";opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;border-radius:.21428571rem;-webkit-animation:progress-active 2s ease infinite;animation:progress-active 2s ease infinite}@-webkit-keyframes progress-active{0%{opacity:.3;width:0}to{opacity:0;width:100%}}@keyframes progress-active{0%{opacity:.3;width:0}to{opacity:0;width:100%}}.ui.disabled.progress{opacity:.35}.ui.disabled.progress .bar,.ui.disabled.progress .bar:after{-webkit-animation:none!important;animation:none!important}.ui.inverted.progress{background:hsla(0,0%,100%,.08);border:none}.ui.inverted.progress .bar{background:#888}.ui.inverted.progress .bar>.progress{color:#f9fafb}.ui.inverted.progress>.label{color:#fff}.ui.inverted.progress.success>.label{color:#21ba45}.ui.inverted.progress.warning>.label{color:#f2c037}.ui.inverted.progress.error>.label{color:#db2828}.ui.progress.attached{background:transparent;position:relative;border:none;margin:0}.ui.progress.attached,.ui.progress.attached .bar{display:block;height:2.8px;height:.2rem;padding:0;overflow:hidden;border-radius:0 0 .21428571rem .21428571rem}.ui.progress.attached .bar{border-radius:0}.ui.progress.top.attached,.ui.progress.top.attached .bar{top:0;border-radius:.21428571rem .21428571rem 0 0}.ui.progress.top.attached .bar{border-radius:0}.ui.card>.ui.attached.progress,.ui.segment>.ui.attached.progress{position:absolute;top:auto;left:0;bottom:100%;width:100%}.ui.card>.ui.bottom.attached.progress,.ui.segment>.ui.bottom.attached.progress{top:100%;bottom:auto}.ui.red.progress .bar{background-color:#db2828}.ui.red.inverted.progress .bar{background-color:#ff695e}.ui.orange.progress .bar{background-color:#f2711c}.ui.orange.inverted.progress .bar{background-color:#ff851b}.ui.yellow.progress .bar{background-color:#fbbd08}.ui.yellow.inverted.progress .bar{background-color:#ffe21f}.ui.olive.progress .bar{background-color:#b5cc18}.ui.olive.inverted.progress .bar{background-color:#d9e778}.ui.green.progress .bar{background-color:#21ba45}.ui.green.inverted.progress .bar{background-color:#2ecc40}.ui.teal.progress .bar{background-color:#00b5ad}.ui.teal.inverted.progress .bar{background-color:#6dffff}.ui.blue.progress .bar{background-color:#2c6a9e}.ui.blue.inverted.progress .bar{background-color:#5391c5}.ui.violet.progress .bar{background-color:#6435c9}.ui.violet.inverted.progress .bar{background-color:#a291fb}.ui.purple.progress .bar{background-color:#a333c8}.ui.purple.inverted.progress .bar{background-color:#dc73ff}.ui.pink.progress .bar{background-color:#e03997}.ui.pink.inverted.progress .bar{background-color:#ff8edf}.ui.brown.progress .bar{background-color:#a5673f}.ui.brown.inverted.progress .bar{background-color:#d67c1c}.ui.grey.progress .bar{background-color:#767676}.ui.grey.inverted.progress .bar{background-color:#dcddde}.ui.black.progress .bar{background-color:#1b1c1d}.ui.black.inverted.progress .bar{background-color:#545454}.ui.tiny.progress{font-size:12px;font-size:.85714286rem}.ui.tiny.progress .bar{height:.5em}.ui.small.progress{font-size:13px;font-size:.92857143rem}.ui.small.progress .bar{height:1em}.ui.progress{font-size:14px;font-size:1rem}.ui.progress .bar{height:1.75em}.ui.large.progress{font-size:15.999px;font-size:1.14285714rem}.ui.large.progress .bar{height:2.5em}.ui.big.progress{font-size:18px;font-size:1.28571429rem}.ui.big.progress .bar{height:3.5em}
/*!
 * # Semantic UI - Rating
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.rating{display:inline-flex;white-space:nowrap;vertical-align:baseline}.ui.rating:last-child{margin-right:0}.ui.rating .icon{padding:0;margin:0;flex:1 0 auto;cursor:pointer;width:1.25em;height:auto;transition:opacity .1s ease,background .1s ease,text-shadow .1s ease,color .1s ease;background:transparent;color:rgba(0,0,0,.15)}.ui.rating .active.icon{background:transparent;color:rgba(0,0,0,.85)}.ui.rating .icon.selected,.ui.rating .icon.selected.active{background:transparent;color:rgba(0,0,0,.87)}.ui.star.rating .icon{width:1.25em;height:auto;background:transparent;color:rgba(0,0,0,.15);text-shadow:none}.ui.star.rating .active.icon{background:transparent!important;color:#ffe623!important;text-shadow:0 -1px 0 #ddc507,-1px 0 0 #ddc507,0 1px 0 #ddc507,1px 0 0 #ddc507!important}.ui.star.rating .icon.selected,.ui.star.rating .icon.selected.active{background:transparent!important;color:#fc0!important;text-shadow:0 -1px 0 #e6a200,-1px 0 0 #e6a200,0 1px 0 #e6a200,1px 0 0 #e6a200!important}.ui.heart.rating .icon{width:1.4em;height:auto;background:transparent;color:rgba(0,0,0,.15);text-shadow:none!important}.ui.heart.rating .active.icon{background:transparent!important;color:#ff6d75!important;text-shadow:0 -1px 0 #cd0707,-1px 0 0 #cd0707,0 1px 0 #cd0707,1px 0 0 #cd0707!important}.ui.heart.rating .icon.selected,.ui.heart.rating .icon.selected.active{background:transparent!important;color:#ff3000!important;text-shadow:0 -1px 0 #aa0101,-1px 0 0 #aa0101,0 1px 0 #aa0101,1px 0 0 #aa0101!important}.ui.disabled.rating .icon{cursor:default}.ui.rating .icon.selected,.ui.rating.selected .active.icon,.ui.rating.selected .icon.selected{opacity:1}.ui.mini.rating{font-size:11px;font-size:.78571429rem}.ui.tiny.rating{font-size:12px;font-size:.85714286rem}.ui.small.rating{font-size:13px;font-size:.92857143rem}.ui.rating{font-size:14px;font-size:1rem}.ui.large.rating{font-size:15.999px;font-size:1.14285714rem}.ui.huge.rating{font-size:20px;font-size:1.42857143rem}.ui.massive.rating{font-size:28px;font-size:2rem}@font-face{font-family:Rating;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype"),url(data:application/font-woff;charset=utf-8;base64,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kIiRi5MI5vdUFfcni4vCBYufhJx8mn2ZepJ3i3aLeoR9fX18g3qLdwiLVAUO+yaLshWL+AQFi5GNkY+RjpCQj5KNj42PjI+LCPfAiwWPi4+Kj4mRiZCHj4aPhY2Fi4UIi/wEBYuEiYWHhoeGhoeFiIiKhoqHi4GLhI6EkQj7EvcN+xL7DQWEhYOIgouHi4eLh42EjoaPiJCHkImRi5IIDov3XRWLko2Rj5Kltq+vuKW4pbuZvYu9i7t9uHG4ca9npWCPhI2Fi4SLhYmEh4RxYGdoXnAIXnFbflmLWYtbmF6lXqZnrnG2h5KJkouRCLCLFaRkq2yxdLF0tH+4i7iLtJexorGiq6qksm64Z61goZZ3kXaLdItnfm1ycnJybX9oiwhoi22XcqRypH6pi6+LopGglp9gdWdpbl4I9xiwFYuHjIiOiI6IjoqPi4+LjoyOjo2OjY6Lj4ubkJmXl5eWmZGbi4+LjoyOjo2OjY6LjwiLj4mOiY6IjYiNh4tzi3eCenp6eoJ3i3MIDov3XRWLko2Sj5GouK+utqW3pbqYvouci5yJnIgIm6cFjY6NjI+LjIuNi42JjYqOio+JjomOiY6KjomOiY6JjoqNioyKjomMiYuHi4qLiouLCHdnbVVjQ2NDbVV3Zwh9cgWJiIiJiIuJi36SdJiIjYmOi46LjY+UlJlvl3KcdJ90oHeie6WHkYmSi5IIsIsVqlq0Z711CKGzBXqXfpqCnoKdhp6LoIuikaCWn2B1Z2luXgj3GLAVi4eMiI6IjoiOio+Lj4uOjI6OjY6NjouPi5uQmZeXl5aZkZuLj4uOjI6OjY6NjouPCIuPiY6JjoiNiI2Hi3OLd4J6enp6gneLcwji+10VoLAFtI+wmK2hrqKnqKKvdq1wp2uhCJ2rBZ1/nHycepx6mHqWeY+EjYWLhIuEiYWHhIR/gH1+fG9qaXJmeWV5Y4Jhiwi53BXb9yQFjIKMg4uEi3CDc3x1fHV3fHOBCA6L1BWL90sFi5WPlJKSkpKTj5aLCNmLBZKPmJqepJaZlZeVlY+Qj5ONl42WjpeOmI+YkZWTk5OSk46Vi5uLmYiYhZiFlIGSfgiSfo55i3WLeYd5gXgIvosFn4uchJl8mn2Seot3i3qGfIJ9jYSLhYuEi3yIfoR+i4eLh4uHi3eGen99i3CDdnt8CHt8dYNwiwhmiwV5i3mNeY95kHeRc5N1k36Ph4sIOYsFgIuDjoSShJKHlIuVCLCdFYuGjIePiI+Hj4mQi5CLj42Pj46OjY+LkIuQiZCIjoePh42Gi4aLh4mHh4eIioaLhgjUeRWUiwWNi46Lj4qOi4+KjYqOi4+Kj4mQio6KjYqNio+Kj4mQio6KjIqzfquEpIsIrosFr4uemouri5CKkYqQkY6QkI6SjpKNkouSi5KJkoiRlZWQlouYi5CKkImRiZGJj4iOCJGMkI+PlI+UjZKLkouViJODk4SSgo+CiwgmiwWLlpCalJ6UnpCbi5aLnoiYhJSFlH+QeYuGhoeDiYCJf4h/h3+IfoWBg4KHh4SCgH4Ii4qIiYiGh4aIh4mIiIiIh4eGh4aHh4eHiIiHiIeHiIiHiIeKh4mIioiLCIKLi/tLBQ6L90sVi/dLBYuVj5OSk5KSk46WiwjdiwWPi5iPoZOkk6CRnZCdj56Nn4sIq4sFpougg5x8m3yTd4txCIuJBZd8kHuLd4uHi4eLh5J+jn6LfIuEi4SJhZR9kHyLeot3hHp8fH19eoR3iwhYiwWVeI95i3mLdIh6hH6EfoKBfoV+hX2He4uBi4OPg5KFkYaTh5SHlYiTipOKk4qTiJMIiZSIkYiPgZSBl4CaeKR+moSPCD2LBYCLg4+EkoSSh5SLlQiw9zgVi4aMh4+Ij4ePiZCLkIuPjY+Pjo6Nj4uQi5CJkIiOh4+HjYaLhouHiYeHh4iKhouGCNT7OBWUiwWOi46Kj4mPio+IjoiPh4+IjoePiI+Hj4aPho6HjoiNiI6Hj4aOho6Ii4qWfpKDj4YIk4ORgY5+j36OgI1/jYCPg5CGnYuXj5GUkpSOmYuei5aGmoKfgp6GmouWCPCLBZSLlI+SkpOTjpOLlYuSiZKHlIeUho+Fi46PjY+NkY2RjJCLkIuYhpaBlY6RjZKLkgiLkomSiJKIkoaQhY6MkIyRi5CLm4aXgpOBkn6Pe4sIZosFcotrhGN9iouIioaJh4qHiomKiYqIioaKh4mHioiKiYuHioiLh4qIi4mLCIKLi/tLBQ77lIv3txWLkpCPlo0I9yOgzPcWBY6SkI+RiwiL/BL7FUcFh4mHioiLh4uIjImOiY6KjouPi4yLjYyOCKP3IyPwBYaQiZCLjwgOi/fFFYu1l6yjoqOjrZe2i5aLl4mYh5eHloWWhJaElIWShZOE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) format("woff");font-weight:400;font-style:normal}.ui.rating .icon{font-family:Rating;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center}.ui.rating .active.icon:before,.ui.rating .icon:before,.ui.star.rating .active.icon:before,.ui.star.rating .icon:before{content:"\f005"}.ui.star.rating .partial.icon:before{content:"\f006"}.ui.star.rating .partial.icon{content:"\f005"}.ui.heart.rating .active.icon:before,.ui.heart.rating .icon:before{content:"\f004"}
/*!
 * # Semantic UI - Search
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.search{position:relative}.ui.search>.prompt{margin:0;outline:none;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-shadow:none;font-style:normal;font-weight:400;line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid rgba(34,36,38,.15);color:rgba(0,0,0,.87);box-shadow:inset 0 0 0 0 transparent;transition:background-color .1s ease,color .1s ease,box-shadow .1s ease,border-color .1s ease}.ui.search .prompt{border-radius:500rem}.ui.search .prompt~.search.icon{cursor:pointer}.ui.search>.results{display:none;position:absolute;top:100%;left:0;transform-origin:center top;white-space:normal;text-align:left;text-transform:none;background:#fff;margin-top:.5em;width:19em;border-radius:.21428571rem;box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);border:1px solid #d4d4d5;z-index:998}.ui.search>.results>:first-child{border-radius:.21428571rem .21428571rem 0 0}.ui.search>.results>:last-child{border-radius:0 0 .21428571rem .21428571rem}.ui.search>.results .result{cursor:pointer;display:block;overflow:hidden;font-size:1em;padding:.85714286em 1.14285714em;color:rgba(0,0,0,.87);line-height:1.6;border-bottom:1px solid rgba(34,36,38,.1)}.ui.search>.results .result:last-child{border-bottom:none!important}.ui.search>.results .result .image{float:right;overflow:hidden;background:none;width:5em;height:3em;border-radius:.25em}.ui.search>.results .result .image img{display:block;width:auto;height:100%}.ui.search>.results .result .image+.content{margin:0 6em 0 0}.ui.search>.results .result .title{margin:-.14285714em 0 0;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-weight:700;font-size:1em;color:rgba(0,0,0,.85)}.ui.search>.results .result .description{margin-top:0;font-size:.85714286em;color:rgba(0,0,0,.4)}.ui.search>.results .result .price{float:right;color:#2c6a9e}.ui.search>.results>.message{padding:1em}.ui.search>.results>.message .header{font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:14px;font-size:1rem;font-weight:700;color:rgba(0,0,0,.87)}.ui.search>.results>.message .description{margin-top:.25rem;font-size:1em;color:rgba(0,0,0,.87)}.ui.search>.results>.action{display:block;border-top:none;background:#f3f4f5;padding:.92857143em 1em;color:rgba(0,0,0,.87);font-weight:700;text-align:center}.ui.search>.prompt:focus{border-color:rgba(34,36,38,.35);background:#fff;color:rgba(0,0,0,.95)}.ui.loading.search .input>i.icon:before{border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.search .input>i.icon:after,.ui.loading.search .input>i.icon:before{position:absolute;content:"";top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em}.ui.loading.search .input>i.icon:after{-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}.ui.category.search>.results .category .result:hover,.ui.search>.results .result:hover{background:#f9fafb}.ui.search .action:hover{background:#e0e0e0}.ui.category.search>.results .category.active{background:#f3f4f5}.ui.category.search>.results .category.active>.name{color:rgba(0,0,0,.87)}.ui.category.search>.results .category .result.active,.ui.search>.results .result.active{position:relative;border-left-color:rgba(34,36,38,.1);background:#f3f4f5;box-shadow:none}.ui.search>.results .result.active .description,.ui.search>.results .result.active .title{color:rgba(0,0,0,.85)}.ui.disabled.search{cursor:default;pointer-events:none;opacity:.45}.ui.search.selection .prompt{border-radius:.21428571rem}.ui.search.selection>.icon.input>.remove.icon{pointer-events:none;position:absolute;left:auto;opacity:0;color:"";top:0;right:0;transition:color .1s ease,opacity .1s ease}.ui.search.selection>.icon.input>.active.remove.icon{cursor:pointer;opacity:.8;pointer-events:auto}.ui.search.selection>.icon.input:not([class*="left icon"])>.icon~.remove.icon{right:1.85714em}.ui.search.selection>.icon.input>.remove.icon:hover{opacity:1;color:#db2828}.ui.category.search .results{width:28em}.ui.category.search .results.animating,.ui.category.search .results.visible{display:table}.ui.category.search>.results .category{display:table-row;background:#f3f4f5;box-shadow:none;transition:background .1s ease,border-color .1s ease}.ui.category.search>.results .category:last-child{border-bottom:none}.ui.category.search>.results .category:first-child .name+.result{border-radius:0 .21428571rem 0 0}.ui.category.search>.results .category:last-child .result:last-child{border-radius:0 0 .21428571rem 0}.ui.category.search>.results .category>.name{display:table-cell;text-overflow:ellipsis;width:100px;white-space:nowrap;background:transparent;font-family:Lato,Helvetica Neue,Arial,Helvetica,sans-serif;font-size:1em;padding:.4em 1em;font-weight:700;color:rgba(0,0,0,.4);border-bottom:1px solid rgba(34,36,38,.1)}.ui.category.search>.results .category .results{display:table-cell;background:#fff;border-left:1px solid rgba(34,36,38,.15);border-bottom:1px solid rgba(34,36,38,.1)}.ui.category.search>.results .category .result{border-bottom:1px solid rgba(34,36,38,.1);transition:background .1s ease,border-color .1s ease;padding:.85714286em 1.14285714em}.ui[class*="left aligned"].search>.results{right:auto;left:0}.ui[class*="right aligned"].search>.results{right:0;left:auto}.ui.fluid.search .results{width:100%}.ui.mini.search{font-size:.78571429em}.ui.small.search{font-size:.92857143em}.ui.search{font-size:1em}.ui.large.search{font-size:1.14285714em}.ui.big.search{font-size:1.28571429em}.ui.huge.search{font-size:1.42857143em}.ui.massive.search{font-size:1.71428571em}@media only screen and (max-width:767px){.ui.search .results{max-width:calc(100vw - 2rem)}}
/*!
 * # Semantic UI - Shape
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.shape{position:relative;vertical-align:top;display:inline-block;perspective:2000px;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape .sides{transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.87);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out}.ui.shape.animating .side{transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block}
/*!
 * # Semantic UI - Sidebar
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.sidebar{position:fixed;top:0;left:0;transition:none;will-change:transform;transform:translateZ(0);visibility:hidden;-webkit-overflow-scrolling:touch;height:100%!important;max-height:100%;border-radius:0!important;margin:0!important;overflow-y:auto!important;z-index:102}.ui.sidebar,.ui.sidebar>*{-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.left.sidebar{right:auto;left:0;transform:translate3d(-100%,0,0)}.ui.right.sidebar{right:0!important;left:auto!important;transform:translate3d(100%,0,0)}.ui.bottom.sidebar,.ui.top.sidebar{width:100%!important;height:auto!important}.ui.top.sidebar{top:0!important;bottom:auto!important;transform:translate3d(0,-100%,0)}.ui.bottom.sidebar{top:auto!important;bottom:0!important;transform:translate3d(0,100%,0)}.pushable{height:100%;overflow-x:hidden;padding:0!important}body.pushable{background:#545454!important}.pushable:not(body){transform:translateZ(0)}.pushable:not(body)>.fixed,.pushable:not(body)>.pusher:after,.pushable:not(body)>.ui.sidebar{position:absolute}.pushable>.fixed{position:fixed;will-change:transform;z-index:101}.pushable>.fixed,.pushable>.pusher{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .5s ease}.pushable>.pusher{position:relative;overflow:hidden;min-height:100%;z-index:2}body.pushable>.pusher{background:#e9eaed}.pushable>.pusher{background:inherit}.pushable>.pusher:after{position:fixed;top:0;right:0;content:"";background-color:rgba(0,0,0,.4);overflow:hidden;opacity:0;transition:opacity .5s;will-change:opacity;z-index:1000}.ui.sidebar.menu .item{border-radius:0!important}.pushable>.pusher.dimmed:after{width:100%!important;height:100%!important;opacity:1!important}.ui.animating.sidebar{visibility:visible}.ui.visible.sidebar{visibility:visible;transform:translateZ(0)}.ui.bottom.visible.sidebar,.ui.left.visible.sidebar,.ui.right.visible.sidebar,.ui.top.visible.sidebar{box-shadow:0 0 20px rgba(34,36,38,.15)}.ui.visible.left.sidebar~.fixed,.ui.visible.left.sidebar~.pusher{transform:translate3d(260px,0,0)}.ui.visible.right.sidebar~.fixed,.ui.visible.right.sidebar~.pusher{transform:translate3d(-260px,0,0)}.ui.visible.top.sidebar~.fixed,.ui.visible.top.sidebar~.pusher{transform:translate3d(0,36px,0)}.ui.visible.bottom.sidebar~.fixed,.ui.visible.bottom.sidebar~.pusher{transform:translate3d(0,-36px,0)}.ui.visible.left.sidebar~.ui.visible.right.sidebar~.fixed,.ui.visible.left.sidebar~.ui.visible.right.sidebar~.pusher,.ui.visible.right.sidebar~.ui.visible.left.sidebar~.fixed,.ui.visible.right.sidebar~.ui.visible.left.sidebar~.pusher{transform:translateZ(0)}.ui.thin.left.sidebar,.ui.thin.right.sidebar{width:150px}.ui[class*="very thin"].left.sidebar,.ui[class*="very thin"].right.sidebar{width:60px}.ui.left.sidebar,.ui.right.sidebar{width:260px}.ui.wide.left.sidebar,.ui.wide.right.sidebar{width:350px}.ui[class*="very wide"].left.sidebar,.ui[class*="very wide"].right.sidebar{width:475px}.ui.visible.thin.left.sidebar~.fixed,.ui.visible.thin.left.sidebar~.pusher{transform:translate3d(150px,0,0)}.ui.visible[class*="very thin"].left.sidebar~.fixed,.ui.visible[class*="very thin"].left.sidebar~.pusher{transform:translate3d(60px,0,0)}.ui.visible.wide.left.sidebar~.fixed,.ui.visible.wide.left.sidebar~.pusher{transform:translate3d(350px,0,0)}.ui.visible[class*="very wide"].left.sidebar~.fixed,.ui.visible[class*="very wide"].left.sidebar~.pusher{transform:translate3d(475px,0,0)}.ui.visible.thin.right.sidebar~.fixed,.ui.visible.thin.right.sidebar~.pusher{transform:translate3d(-150px,0,0)}.ui.visible[class*="very thin"].right.sidebar~.fixed,.ui.visible[class*="very thin"].right.sidebar~.pusher{transform:translate3d(-60px,0,0)}.ui.visible.wide.right.sidebar~.fixed,.ui.visible.wide.right.sidebar~.pusher{transform:translate3d(-350px,0,0)}.ui.visible[class*="very wide"].right.sidebar~.fixed,.ui.visible[class*="very wide"].right.sidebar~.pusher{transform:translate3d(-475px,0,0)}.ui.overlay.sidebar{z-index:102}.ui.left.overlay.sidebar{transform:translate3d(-100%,0,0)}.ui.right.overlay.sidebar{transform:translate3d(100%,0,0)}.ui.top.overlay.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.overlay.sidebar{transform:translate3d(0,100%,0)}.animating.ui.overlay.sidebar,.ui.visible.overlay.sidebar{transition:transform .5s ease}.ui.visible.bottom.overlay.sidebar,.ui.visible.left.overlay.sidebar,.ui.visible.right.overlay.sidebar,.ui.visible.top.overlay.sidebar{transform:translateZ(0)}.ui.visible.overlay.sidebar~.fixed,.ui.visible.overlay.sidebar~.pusher{transform:none!important}.ui.push.sidebar{transition:transform .5s ease;z-index:102}.ui.left.push.sidebar{transform:translate3d(-100%,0,0)}.ui.right.push.sidebar{transform:translate3d(100%,0,0)}.ui.top.push.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.push.sidebar{transform:translate3d(0,100%,0)}.ui.uncover.sidebar,.ui.visible.push.sidebar{transform:translateZ(0)}.ui.uncover.sidebar{z-index:1}.ui.visible.uncover.sidebar{transform:translateZ(0);transition:transform .5s ease}.ui.slide.along.sidebar{z-index:1}.ui.left.slide.along.sidebar{transform:translate3d(-50%,0,0)}.ui.right.slide.along.sidebar{transform:translate3d(50%,0,0)}.ui.top.slide.along.sidebar{transform:translate3d(0,-50%,0)}.ui.bottom.slide.along.sidebar{transform:translate3d(0,50%,0)}.ui.animating.slide.along.sidebar{transition:transform .5s ease}.ui.visible.slide.along.sidebar{transform:translateZ(0)}.ui.slide.out.sidebar{z-index:1}.ui.left.slide.out.sidebar{transform:translate3d(50%,0,0)}.ui.right.slide.out.sidebar{transform:translate3d(-50%,0,0)}.ui.top.slide.out.sidebar{transform:translate3d(0,50%,0)}.ui.bottom.slide.out.sidebar{transform:translate3d(0,-50%,0)}.ui.animating.slide.out.sidebar{transition:transform .5s ease}.ui.visible.slide.out.sidebar{transform:translateZ(0)}.ui.scale.down.sidebar{transition:transform .5s ease;z-index:102}.ui.left.scale.down.sidebar{transform:translate3d(-100%,0,0)}.ui.right.scale.down.sidebar{transform:translate3d(100%,0,0)}.ui.top.scale.down.sidebar{transform:translate3d(0,-100%,0)}.ui.bottom.scale.down.sidebar{transform:translate3d(0,100%,0)}.ui.scale.down.left.sidebar~.pusher{transform-origin:75% 50%}.ui.scale.down.right.sidebar~.pusher{transform-origin:25% 50%}.ui.scale.down.top.sidebar~.pusher{transform-origin:50% 75%}.ui.scale.down.bottom.sidebar~.pusher{transform-origin:50% 25%}.ui.animating.scale.down>.visible.ui.sidebar{transition:transform .5s ease}.ui.animating.scale.down.sidebar~.pusher,.ui.visible.scale.down.sidebar~.pusher{display:block!important;width:100%;height:100%;overflow:hidden!important}.ui.visible.scale.down.sidebar{transform:translateZ(0)}.ui.visible.scale.down.sidebar~.pusher{transform:scale(.75)}
/*!
 * # Semantic UI - Sticky
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.sticky{position:static;transition:none;z-index:800}.ui.sticky.bound{position:absolute;left:auto;right:auto}.ui.sticky.fixed{position:fixed;left:auto;right:auto}.ui.sticky.bound.top,.ui.sticky.fixed.top{top:0;bottom:auto}.ui.sticky.bound.bottom,.ui.sticky.fixed.bottom{top:auto;bottom:0}.ui.native.sticky{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky}
/*!
 * # Semantic UI - Tab
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:"";top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:"";top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid transparent;border-top-color:#767676;box-shadow:0 0 0 1px transparent}
/*!
 * # Semantic UI - Transition
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */.transition{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animating.transition{-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:visible!important}.loading.transition{position:absolute;top:-99999px;left:-99999px}.hidden.transition{display:none;visibility:hidden}.visible.transition{display:block!important;visibility:visible!important}.disabled.transition{-webkit-animation-play-state:paused;animation-play-state:paused}.looping.transition{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.transition.browse{-webkit-animation-duration:.5s;animation-duration:.5s}.transition.browse.in{-webkit-animation-name:browseIn;animation-name:browseIn}.transition.browse.left.out,.transition.browse.out{-webkit-animation-name:browseOutLeft;animation-name:browseOutLeft}.transition.browse.right.out{-webkit-animation-name:browseOutRight;animation-name:browseOutRight}@-webkit-keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@keyframes browseIn{0%{transform:scale(.8) translateZ(0);z-index:-1}10%{transform:scale(.8) translateZ(0);z-index:-1;opacity:.7}80%{transform:scale(1.05) translateZ(0);opacity:1;z-index:999}to{transform:scale(1) translateZ(0);z-index:999}}@-webkit-keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@keyframes browseOutLeft{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:-1;transform:translateX(-105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:-1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@-webkit-keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}@keyframes browseOutRight{0%{z-index:999;transform:translateX(0) rotateY(0deg) rotateX(0deg)}50%{z-index:1;transform:translateX(105%) rotateY(35deg) rotateX(10deg) translateZ(-10px)}80%{opacity:1}to{z-index:1;transform:translateX(0) rotateY(0deg) rotateX(0deg) translateZ(-10px);opacity:0}}.drop.transition{transform-origin:top center;-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:cubic-bezier(.34,1.61,.7,1);animation-timing-function:cubic-bezier(.34,1.61,.7,1)}.drop.transition.in{-webkit-animation-name:dropIn;animation-name:dropIn}.drop.transition.out{-webkit-animation-name:dropOut;animation-name:dropOut}@-webkit-keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes dropIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes dropOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}.transition.fade.in{-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition[class*="fade up"].in{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.transition[class*="fade down"].in{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.transition[class*="fade left"].in{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.transition[class*="fade right"].in{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}.transition.fade.out{-webkit-animation-name:fadeOut;animation-name:fadeOut}.transition[class*="fade up"].out{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.transition[class*="fade down"].out{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}.transition[class*="fade left"].out{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}.transition[class*="fade right"].out{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translateX(10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translateX(-10%)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@keyframes fadeOutUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5%)}}@-webkit-keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%)}}@-webkit-keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@keyframes fadeOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(5%)}}@-webkit-keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}@keyframes fadeOutRight{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-5%)}}.flip.transition.in,.flip.transition.out{-webkit-animation-duration:.6s;animation-duration:.6s}.horizontal.flip.transition.in{-webkit-animation-name:horizontalFlipIn;animation-name:horizontalFlipIn}.horizontal.flip.transition.out{-webkit-animation-name:horizontalFlipOut;animation-name:horizontalFlipOut}.vertical.flip.transition.in{-webkit-animation-name:verticalFlipIn;animation-name:verticalFlipIn}.vertical.flip.transition.out{-webkit-animation-name:verticalFlipOut;animation-name:verticalFlipOut}@-webkit-keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0deg);opacity:1}}@keyframes horizontalFlipIn{0%{transform:perspective(2000px) rotateY(-90deg);opacity:0}to{transform:perspective(2000px) rotateY(0deg);opacity:1}}@-webkit-keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0deg);opacity:1}}@keyframes verticalFlipIn{0%{transform:perspective(2000px) rotateX(-90deg);opacity:0}to{transform:perspective(2000px) rotateX(0deg);opacity:1}}@-webkit-keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0deg);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@keyframes horizontalFlipOut{0%{transform:perspective(2000px) rotateY(0deg);opacity:1}to{transform:perspective(2000px) rotateY(90deg);opacity:0}}@-webkit-keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0deg);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}@keyframes verticalFlipOut{0%{transform:perspective(2000px) rotateX(0deg);opacity:1}to{transform:perspective(2000px) rotateX(-90deg);opacity:0}}.scale.transition.in{-webkit-animation-name:scaleIn;animation-name:scaleIn}.scale.transition.out{-webkit-animation-name:scaleOut;animation-name:scaleOut}@-webkit-keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.transition.fly{-webkit-animation-duration:.6s;animation-duration:.6s;transition-timing-function:cubic-bezier(.215,.61,.355,1)}.transition.fly.in{-webkit-animation-name:flyIn;animation-name:flyIn}.transition[class*="fly up"].in{-webkit-animation-name:flyInUp;animation-name:flyInUp}.transition[class*="fly down"].in{-webkit-animation-name:flyInDown;animation-name:flyInDown}.transition[class*="fly left"].in{-webkit-animation-name:flyInLeft;animation-name:flyInLeft}.transition[class*="fly right"].in{-webkit-animation-name:flyInRight;animation-name:flyInRight}.transition.fly.out{-webkit-animation-name:flyOut;animation-name:flyOut}.transition[class*="fly up"].out{-webkit-animation-name:flyOutUp;animation-name:flyOutUp}.transition[class*="fly down"].out{-webkit-animation-name:flyOutDown;animation-name:flyOutDown}.transition[class*="fly left"].out{-webkit-animation-name:flyOutLeft;animation-name:flyOutLeft}.transition[class*="fly right"].out{-webkit-animation-name:flyOutRight;animation-name:flyOutRight}@-webkit-keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@keyframes flyIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{opacity:1;transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes flyInUp{0%{opacity:0;transform:translate3d(0,1500px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@-webkit-keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes flyInDown{0%{opacity:0;transform:translate3d(0,-1500px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@-webkit-keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes flyInLeft{0%{opacity:0;transform:translate3d(1500px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@-webkit-keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes flyInRight{0%{opacity:0;transform:translate3d(-1500px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@-webkit-keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@keyframes flyOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@-webkit-keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@keyframes flyOutUp{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@-webkit-keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes flyOutDown{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@-webkit-keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes flyOutRight{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@-webkit-keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes flyOutLeft{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}.transition.slide.in,.transition[class*="slide down"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:top center}.transition[class*="slide up"].in{-webkit-animation-name:slideInY;animation-name:slideInY;transform-origin:bottom center}.transition[class*="slide left"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:center right}.transition[class*="slide right"].in{-webkit-animation-name:slideInX;animation-name:slideInX;transform-origin:center left}.transition.slide.out,.transition[class*="slide down"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:top center}.transition[class*="slide up"].out{-webkit-animation-name:slideOutY;animation-name:slideOutY;transform-origin:bottom center}.transition[class*="slide left"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:center right}.transition[class*="slide right"].out{-webkit-animation-name:slideOutX;animation-name:slideOutX;transform-origin:center left}@-webkit-keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes slideInY{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@-webkit-keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes slideInX{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@-webkit-keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@keyframes slideOutY{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}@-webkit-keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes slideOutX{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.transition.swing{-webkit-animation-duration:.8s;animation-duration:.8s}.transition[class*="swing down"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:top center}.transition[class*="swing up"].in{-webkit-animation-name:swingInX;animation-name:swingInX;transform-origin:bottom center}.transition[class*="swing left"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:center right}.transition[class*="swing right"].in{-webkit-animation-name:swingInY;animation-name:swingInY;transform-origin:center left}.transition.swing.out,.transition[class*="swing down"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:top center}.transition[class*="swing up"].out{-webkit-animation-name:swingOutX;animation-name:swingOutX;transform-origin:bottom center}.transition[class*="swing left"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:center right}.transition[class*="swing right"].out{-webkit-animation-name:swingOutY;animation-name:swingOutY;transform-origin:center left}@-webkit-keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0deg)}}@keyframes swingInX{0%{transform:perspective(1000px) rotateX(90deg);opacity:0}40%{transform:perspective(1000px) rotateX(-30deg);opacity:1}60%{transform:perspective(1000px) rotateX(15deg)}80%{transform:perspective(1000px) rotateX(-7.5deg)}to{transform:perspective(1000px) rotateX(0deg)}}@-webkit-keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0deg)}}@keyframes swingInY{0%{transform:perspective(1000px) rotateY(-90deg);opacity:0}40%{transform:perspective(1000px) rotateY(30deg);opacity:1}60%{transform:perspective(1000px) rotateY(-17.5deg)}80%{transform:perspective(1000px) rotateY(7.5deg)}to{transform:perspective(1000px) rotateY(0deg)}}@-webkit-keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0deg)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@keyframes swingOutX{0%{transform:perspective(1000px) rotateX(0deg)}40%{transform:perspective(1000px) rotateX(-7.5deg)}60%{transform:perspective(1000px) rotateX(17.5deg)}80%{transform:perspective(1000px) rotateX(-30deg);opacity:1}to{transform:perspective(1000px) rotateX(90deg);opacity:0}}@-webkit-keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0deg)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}@keyframes swingOutY{0%{transform:perspective(1000px) rotateY(0deg)}40%{transform:perspective(1000px) rotateY(7.5deg)}60%{transform:perspective(1000px) rotateY(-10deg)}80%{transform:perspective(1000px) rotateY(30deg);opacity:1}to{transform:perspective(1000px) rotateY(-90deg);opacity:0}}.transition.zoom.in{-webkit-animation-name:zoomIn;animation-name:zoomIn}.transition.zoom.out{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes zoomIn{0%{opacity:1;transform:scale(0)}to{opacity:1;transform:scale(1)}}@-webkit-keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}@keyframes zoomOut{0%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(0)}}.flash.transition{-webkit-animation-name:flash;animation-name:flash}.flash.transition,.shake.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.shake.transition{-webkit-animation-name:shake;animation-name:shake}.bounce.transition{-webkit-animation-name:bounce;animation-name:bounce}.bounce.transition,.tada.transition{-webkit-animation-duration:.75s;animation-duration:.75s}.tada.transition{-webkit-animation-name:tada;animation-name:tada}.pulse.transition{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:pulse;animation-name:pulse}.jiggle.transition{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-name:jiggle;animation-name:jiggle}.transition.glow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:cubic-bezier(.19,1,.22,1);animation-timing-function:cubic-bezier(.19,1,.22,1);-webkit-animation-name:glow;animation-name:glow}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@-webkit-keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}@-webkit-keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-30px)}60%{transform:translateY(-15px)}}@-webkit-keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)}40%,60%,80%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@-webkit-keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@keyframes jiggle{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@-webkit-keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}@keyframes glow{0%{background-color:#fcfcfd}30%{background-color:#fff6cd}to{background-color:#fcfcfd}}.cs__tabs--maxWidth{margin-left:auto;margin-right:auto;max-width:1200px}.cs__tabs--vertical{display:flex}.cs__tabsWrapper{display:flex;box-shadow:2px 2px 10px hsla(0,0%,50.2%,.28)}@media only screen and (max-width:700px){.cs__tabsWrapper{flex-wrap:nowrap}}.cs__tabsWrapper--fixed{position:fixed;top:128px;left:0;width:100%;z-index:10;background-color:#fff}.cs__tabs--vertical .cs__tabsWrapper{flex:0 0 300px;flex-direction:column;justify-content:flex-start;align-items:flex-start}@media only screen and (max-width:700px){.cs__tabs--vertical .cs__tabsWrapper{flex:auto}}.cs__tabs--inverted .cs__tabsWrapper{background-color:#4c4c4c;padding:1em;color:#fff}.cs__tabItem{box-sizing:border-box;padding:1em;text-align:center;color:#929daf;overflow:hidden;text-overflow:ellipsis;display:block;cursor:pointer;transition:all .3s ease-in-out;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:1.25em;border-right:1px solid hsla(0,0%,50.2%,.3)}@media only screen and (max-width:700px){.cs__tabItem{font-size:1em;flex:auto;padding:.25em}}.cs__tabs--vertical .cs__tabItem{width:100%;text-align:left;border:0}.cs__tabs--inverted .cs__tabItem{color:#fff}.cs__tabs--inverted .cs__tabItem--sub{opacity:.8}.cs__tabs--inverted.cs__tabs--vertical .cs__tabItem--active{background-color:#536a8c;border-radius:5px;opacity:1}.cs__tabSection{width:100%}.cs__tabHead{padding:.5em;cursor:pointer}@media only screen and (max-width:700px){.cs__tabHead{font-size:1.2em}}.cs__tabItem--sub{height:0;padding:0 .5em 0 2em;font-size:.95em;transition:all .2s ease-in-out}@media only screen and (max-width:700px){.cs__tabItem--sub{font-size:1em}}.cs__tabSection.cs__tabSection--active .cs__tabItem--sub{padding:.5em .5em .5em 2em;height:auto}.cs__tabs--vertical .cs__tabItem--active{background-color:#ebf3ff}.cs__tabItem--active{background-color:#536a8c;color:#fff}.cs__tabHead:hover,.cs__tabItem:active,.cs__tabItem:focus,.cs__tabItem:hover{outline:0;opacity:.7}@media only screen and (max-width:700px){.cs__tab__contents{margin-top:1.5em}}.cs__tabs--vertical .cs__tab__contents{padding:2em}@media only screen and (max-width:700px){.cs__tabs--vertical .cs__tab__contents{display:none}}.cs__tab__content{overflow:hidden;opacity:0;height:0;transition:opacity .5s ease-in-out}.cs__tab__content--active{opacity:1;height:auto}.cs__table{border-radius:8px;border:1px solid rgba(0,0,0,.16);overflow:hidden}.cs__table table{width:100%;border-collapse:separate}.cs__table table th{font-size:1em;font-weight:700}.cs__table table td,.cs__table table th{padding:.5em}.cs__table table .cs__table__pillar--left{border-left:1px solid rgba(0,0,0,.16)}.cs__table table .cs__table__pillar--right{border-right:1px solid rgba(0,0,0,.16)}.cs__table table .cs__table__total{background-color:#ececec}.cs__table table .cs__table__total td,.cs__table table .cs__table__total th{border-top:1px solid rgba(0,0,0,.16)}.cs__table table thead{background-color:#f6f6f6}.cs__table table thead tr:not(last-child) td,.cs__table table thead tr:not(last-child) th{border-bottom:1px solid rgba(0,0,0,.16)}.cs__table table thead .cs__table__cell--invertedBlue{color:#3c92e1;background-color:#ecf6ff}.cs__table table tbody tr:first-child td,.cs__table table tbody tr:first-child th{border-top:1px solid rgba(0,0,0,.16)}.cs__table table tbody tr:last-child td,.cs__table table tbody tr:last-child th{border-bottom:1px solid rgba(0,0,0,.16)}.cs__table table tbody tr:nth-child(2n) td,.cs__table table tbody tr:nth-child(2n) th{background-color:#fafafa}.cs__table table tfoot{background-color:#ececec}.cs__table table .cs__table__cell--green{color:#13b713}.cs__table table .cs__table__cell--red{color:#ff3535}.cs__table table .cs__table__cell--num{text-align:right}.cs__table table .cs__table__text--alignLeft{text-align:left}.cs__table table .cs__table__cell--invertedBlue{font-weight:700;border-color:#3c92e1}.cs__table--centerAlign{text-align:center}.cs__table--marginTopBottom{margin:1em 0}@media only screen and (max-width:700px){.cs__table{overflow-x:scroll}.cs__table table{max-width:1200px}}.indices__slider{display:flex!important;align-items:center}#cs-indices-page .indices__slider.fixed{position:fixed!important;margin:0 .5em!important;width:calc(100% - 1.8em - 2px)!important;box-shadow:3px 3px 10px hsla(0,0%,50.2%,.3);height:75px!important;z-index:10}@media only screen and (max-width:700px){#cs-indices-page .indices__slider.fixed{position:static!important;width:100%!important;margin:0!important}}.indices__slider__slidesWrapper{position:relative;flex:0 0 calc(100% - 60px);height:75px;overflow:hidden}.indices__slider__slides{display:flex;align-items:center;position:absolute;left:0;top:0;width:100%;transition:left .25s}.indices__slider__slides .column{position:relative;min-width:14.3%;flex:0 0 14.3%;height:75px;background-color:#fff;padding:.5em}@media only screen and (max-width:767px){.indices__slider__slides .column{min-width:100%;flex:0 0 100%}}.indices__slider__slides .column .cs-index-container>a{display:flex;align-items:center;color:#000;font-weight:300}.indices__slider__slides .column .cs-index-container>a .indices__slider__name{font-size:1.3em}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart{position:relative;flex:0 0 40%}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .line{stroke-width:1.5px;stroke:#d4d4d5}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .area{opacity:0}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .x-grid,.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .y-grid{stroke:transparent}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .bg{stroke:transparent;fill:transparent}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart .tick text{opacity:0}.indices__slider__slides .column .cs-index-container>a .indices__slider__chart .cs-chart path:not(.line){stroke:transparent}.indices__slider__slides .column .cs-index-container>a .indices__slider__stats{flex:0 0 60%}.indices__slider__slides .column .cs-index-container>a .indices__slider__stats>div{white-space:nowrap}.indices__slider__slides .column .cs-index-container>a .indices__slider__points span:first-child{margin-right:5px}.indices__slider__slides .column .cs-index-container>a .green{color:#21ba45}.indices__slider__slides .column .cs-index-container>a .red{color:#db2828}.indices__slider__slides>.column:not(:last-child):before{content:"";position:absolute;border-left:1px dotted #c9c9c9;height:100%;right:0;top:0;z-index:11}@media only screen and (max-width:767px){.indices__slider__slides>.column:not(:last-child):before{display:none}}.indices__slider__controls{flex:0 0 30px;display:flex;align-items:center;justify-content:center;height:100%;background-color:#fff;cursor:pointer;transition:background-color .5s}.indices__slider__controls i{font-size:1.25em;margin:0;width:100%;display:flex;align-items:center;justify-content:center}.indices__slider__controls:hover{background-color:#f0f8ff}.cs-table th .icon.sort{float:right;margin-right:0;color:#999}.cs-table th:hover .icon.sort{color:#000}.cs-range-scale{font-size:.8em;text-align:left}.cs-range-scale .ui.header{margin-bottom:0}.cs-range-scale .bar{position:relative;height:8px;display:flex}.cs-range-scale .bar .point{height:8px;outline:1px solid #fff;flex:1 1 auto}.cs-range-scale .high,.cs-range-scale .low{font-weight:700}.cs-range-scale .high{float:right}.cs-range-scale .bar .caret{position:absolute;bottom:-10px;left:0;margin-left:-8px;font-size:1.3em}.cs-support-resistance{cursor:pointer;margin:0 .8em}.cs-support-resistance .rail{width:100%;height:40px;position:relative}.cs-support-resistance .rail .ui.popup{padding:.3em;background-color:#3a5b83;margin:0;right:unset;top:10px;left:0;text-align:center;z-index:auto;border-radius:5px;display:block}.cs-support-resistance .rail .ui.popup:before{background-color:#3a5b83}.cs-support-resistance .rail .icon{color:#000;position:absolute;top:0;margin:0;width:-webkit-min-content;width:-moz-min-content;width:min-content;font-size:18px;display:none}.cs-support-resistance .head{margin-left:-.8em;margin-bottom:1.6em}.cs-support-resistance .sr-bar{width:100%;background:linear-gradient(90deg,#f03635,#444657 50%,#3ac95c);height:15px;position:relative}.cs-support-resistance .sr-bar .point{top:-23.5px;width:45px;position:absolute;display:flex;flex-direction:column;align-items:center}.cs-support-resistance .sr-bar .point .title,.cs-support-resistance .sr-bar .point .value{text-align:center}.cs-support-resistance .sr-bar .point .title{color:#fff;border-radius:5px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:.8em}.cs-support-resistance .sr-bar .point .value{font-size:.65em}.cs-support-resistance .sr-bar .point.s2{left:-22.5px}.cs-support-resistance .sr-bar .point.s2 .title{background-color:#f63639}.cs-support-resistance .sr-bar .point.s1{left:calc(25% - 22.5px)}.cs-support-resistance .sr-bar .point.s1 .title{background-color:#bf4146}.cs-support-resistance .sr-bar .point.pp{left:calc(50% - 22.5px)}.cs-support-resistance .sr-bar .point.pp .title{background-color:#424655}.cs-support-resistance .sr-bar .point.r1{left:calc(75% - 22.5px)}.cs-support-resistance .sr-bar .point.r1 .title{background-color:#2f9e50}.cs-support-resistance .sr-bar .point.r2{left:calc(100% - 22.5px)}.cs-support-resistance .sr-bar .point.r2 .title{background-color:#32cb5b}.cs-support-resistance.show-pointer .rail{height:10px}.cs-support-resistance.show-pointer .rail .ui.popup{z-index:1;visibility:hidden;opacity:0;transition:visibility 0s,opacity .2s linear}.cs-support-resistance.show-pointer:hover .ui.popup{visibility:visible;opacity:1;transition:visibility 0s,opacity .2s linear}.cs-slider{padding:0 3em;position:relative}.cs-slider>i{position:absolute;font-size:2em;top:calc(50% - 15px);display:block;cursor:pointer;opacity:.7}.cs-slider>i.disabled{opacity:.1!important}.cs-slider>i:hover{opacity:1}.cs-slider>i.left{left:0}.cs-slider>i.right{right:0}.cs-slider .slider-rail .slide{margin:.5em 5px;min-width:calc(33.33% - 10px)}.cs-slider .slider-rail.two .slide{min-width:calc(50% - 10px)}.cs-slider .slider-rail.one .slide{min-width:calc(100% - 10px)}.cs-trend{padding:1em;border:1px solid #e2e2e2;font-weight:700}.cs-trend .red{color:red}.cs-trend .green{color:#25ba45}.cs-trend .ui.segment{min-height:0!important}@media only screen and (max-width:700px){.cs-trend{padding:.5em}.cs-trend .ui.header{font-size:1.2em}}.cs-header-wrapper{background:#fff;height:95px;width:100%;position:fixed;top:0;left:0;z-index:20}#cs-header{background-color:hsla(0,0%,100%,0);border:none;z-index:2;box-shadow:none;height:52px}#cs-header.cal{background-color:#029992}#cs-header .currency-rate{display:none;font-size:.8em;font-style:italic;margin-top:2px;color:#708090}#cs-header .currency-rate .rate{font-weight:700;color:#000}#cs-header .currency-rate.visible{display:block}#cs-header .ui.dropdown.cs-currency-dropdown{display:block;position:relative;padding:1.3em .5em .5em;z-index:1}#cs-header .ui.dropdown.cs-currency-dropdown img{width:17px;vertical-align:text-top;margin:0 .5em 0 0}#cs-header .ui.dropdown.cs-currency-dropdown:before{content:"Currency";position:absolute;top:3px;left:8px;font-size:.8em;color:#8a8989}#cs-header .ui.dropdown.cs-currency-dropdown.no-visiblitiy{visibility:hidden}#cs-header .cs-portal{margin:0;padding:1em .2em 1em .5em;font-weight:300}#cs-header-mobile{display:none;z-index:1000;border-radius:0}#cs-header-mobile .logo{background:url(/assets/images/logo-360.png) bottom;display:inline-block;background-size:35px 35px!important;width:35px;height:35px}#cs-header-mobile .mobile-btn{background:0;color:#fff;padding:0;font-size:1.5em}#cs-header-mobile .mobile-menu{display:none;position:absolute;z-index:900;width:100%;overflow-x:scroll;background-color:#1b5586;font-size:1.2em}#cs-header-mobile .mobile-menu .mobile__listItem{display:block;cursor:pointer;color:#fff;text-decoration:none;padding:1em}#cs-header-mobile .mobile-menu .mobile__listItem:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.17)}#cs-header-mobile .mobile-menu .mobile__listItem--dropdown{display:flex;justify-content:space-between}#cs-header-mobile .mobile-menu .mobile__listItem--disabled i,#cs-header-mobile .mobile-menu .mobile__listItem--hidden{display:none}#cs-header-mobile .mobile-menu .mobile__dropdownList{background-color:#54677b;max-height:0;overflow:hidden;transition:all .5s ease-in}#cs-header-mobile .mobile-menu .mobile__dropdownList--show{max-height:400px;transition:all .5s ease-out}#cs-header-mobile .mobile-menu .mobile__dropdownListItem{display:block;color:#fff;padding:1em}#cs-header-mobile .mobile-menu .mobile__dropdownList>.mobile__dropdownListItem:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.17)}#cs-header-mobile .mobile-menu .mobile__listItem--feedback{background:#43648c;text-align:center}#cs-header-mobile .mobile-menu .current__currency{display:flex;align-items:center;justify-content:flex-end}#cs-header-mobile .mobile-menu .ui.inverted.vertical.menu{width:100%;background:#1b5586}#cs-header-mobile .mobile-menu .item .sub-menu .item{border:0}#cs-header-mobile .mobile-menu .currency__flag{margin:0 .5em;display:flex}#cs-header-mobile .mobile-menu .currency__flag>img{height:20px}#cs-header-mobile .mobile-menu .currency__date,#cs-header-mobile .mobile-menu .currency__rate{font-size:.6em}#cs-header-mobile .mobile-menu .currency__date{margin:0 1em 0 .5em;opacity:.7}#cs-header-mobile .mobile-menu .mobile__listItem--currency{background-color:#585858}#cs-header-mobile .mobile-menu .mobile__dropdownList--currency{background-color:#868686}#cs-header-mobile .mobile-menu .mobile__dropdownListItem--currency{display:flex;justify-content:space-between}#cs-header-mobile .mobile-menu .mobile__dropdownListItem--currency.mobile__dropdownListItem--selected{background-color:#b3b3b3}#cs-header-mobile .search-bar,#cs-header-mobile .search-bar-menu{background-color:#1b5586;position:absolute;top:0;width:100%;z-index:1001}#cs-header-mobile .search-bar-menu .ui.input,#cs-header-mobile .search-bar-menu .ui.search,#cs-header-mobile .search-bar .ui.input,#cs-header-mobile .search-bar .ui.search{width:100%}#cs-header-mobile .search-bar-menu input,#cs-header-mobile .search-bar input{width:100%;border:none;border-bottom:1px solid hsla(0,0%,100%,.5);border-radius:0;background:none;padding-left:.4em;color:#fff;padding-top:.6em;padding-bottom:.5em;color:hsla(0,0%,100%,.5);height:35px}#cs-header-mobile .search-bar-menu .ui.input ::-moz-placeholder,#cs-header-mobile .search-bar .ui.input ::-moz-placeholder{color:hsla(0,0%,100%,.5)}#cs-header-mobile .search-bar-menu .ui.input :-ms-input-placeholder,#cs-header-mobile .search-bar .ui.input :-ms-input-placeholder{color:hsla(0,0%,100%,.5)}#cs-header-mobile .search-bar-menu .ui.input ::placeholder,#cs-header-mobile .search-bar .ui.input ::placeholder{color:hsla(0,0%,100%,.5)}.search-bar-menu{display:none;background:#2c6a9e!important}.search-bar-menu .ui.search .ui.input{width:90%!important}.search-bar-menu .ui.search .close.icon{font-size:1.3em;margin:0;width:9%}#cs-header .ui.grid{margin:0}#cs-header .item.logo-wrapper{padding:.5em .5em .2em .6em}#cs-footer .logo,#cs-header .logo{background:url(/assets/images/logo-360.png) bottom;display:inline-block}#cs-footer .logo.cal,#cs-header .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg)}#cs-header .logo{background-size:80px 80px;height:80px;margin-bottom:-40px;width:80px}#cs-header .logo.psx{background:url(/assets/images/psx.png) #fff bottom no-repeat;background-size:contain!important;border-radius:4px}#cs-footer .logo{background-size:90px 90px!important;width:90px!important;height:90px!important}#cs-header-menu{background-color:#1b5586;border-radius:0;margin:0;z-index:1}#cs-header-menu.cal{background-color:#017c77}#cs-header-mobile.cs-basic-menu{background:#2c6a9e}#cs-header-menu .ui.grid{margin:0}#cs-header-menu .item.home{margin-left:7em}#cs-header-menu.ui.inverted.menu .ui.dropdown .menu{background:#316591}#cs-header-menu.ui.inverted.menu .dropdown .menu .item{color:#fff!important}#cs-header-menu .item{font-size:15.4px;font-size:1.1rem}#cs-header-search{padding:0}#cs-header-search .ui.input input{border:none;border-radius:0;background:none;padding-left:.4em;color:#fff;padding-top:.6em;padding-bottom:.5em;max-width:160px}#cs-header-search .ui.input ::-moz-placeholder{color:#95b4cf}#cs-header-search .ui.input :-ms-input-placeholder{color:#95b4cf}#cs-header-search .ui.input ::placeholder{color:#95b4cf}#cs-header-menu.hide-research a[href="/client-research"],#cs-header-mobile.hide-research a[href="/client-research"]{display:none}#cs-header-menu .cs-currency-dropdown{width:190px;padding:.5em 1em!important;flex-wrap:wrap;display:none}#cs-header-menu .cs-currency-dropdown .currency-rate{flex:0 0 100%;display:none}#cs-header-menu .cs-currency-dropdown .currency-rate .date{opacity:.7}#cs-header-menu .cs-currency-dropdown .currency-rate.visible{display:block}@media only screen and (max-width:767px){#cs-header,#cs-header-menu{display:none}#cs-header-mobile{display:block}#cs-header-mobile .search-bar .ui.search .results{width:100%}}#cs-home .ui.ribbon.label{font-size:1.2em;left:-2rem}#cs-home .ui.ribbon.label:after{border-width:0 .9em .9em 0}#cs-home-stock{margin-top:0}#cs-home-stock.horizontal #cs-home-indices{width:40%}#cs-home-stock.horizontal #cs-home-performers{width:35%}#cs-home-stock.horizontal #cs-home-announcements{width:25%}#cs-home-performers .ui.tab.segment{padding:0;min-height:300px}#cs-home-commodities .ui.statistics .statistic>.value,#cs-home-forex .ui.statistics .statistic>.value,#cs-home-global .ui.statistics .statistic>.value{font-size:1.6em}#cs-home-calendar .ui.list>.item{padding-top:0;padding-bottom:.5em;padding-left:.3em;border-radius:4px;position:relative;transition-property:background;transition-duration:.3s;transition-timing-function:ease-in-out;cursor:pointer}#cs-home-calendar .ui.list>.item .header{line-height:2em;font-size:.9em;color:#767676;font-weight:400}#cs-home-calendar .circle{position:absolute;width:10px;height:10px;border-radius:5px;border:2px solid #2c6a9e;left:-1.392em;top:.54em;background:#fff;transition-property:background;transition-duration:.3s;transition-timing-function:ease-in-out}#cs-home-calendar .ui.list>.item .icon.external{opacity:0;transition:opacity .3s ease-in-out}#cs-home-calendar .ui.list>.item:hover{background:#eff7ff}#cs-home-calendar .ui.list>.item:hover .circle{background:#2c6a9e}#cs-home-calendar .ui.list>.item:hover .icon.external{opacity:1}.cs-modal-small{width:400px!important}@media only screen and (max-width:700px){.cs-modal-small .field{margin-bottom:.5em!important}.cs-modal-small .ui.facebook.button{margin:.9em!important;width:90%!important}}#signup-box form{padding-top:0!important}#signup-box .ui.red.message{display:none}#signup-box .ui.facebook.button{width:auto;margin:1.3em}#cs-feedback-modal #list{margin:1em 0;display:flex;overflow:scroll}#cs-feedback-modal #list span{margin:0 1em}#cs-feedback-modal #list span .thumb{width:150px}#top-fixed-nav{display:none;height:100px;background:#fff;box-shadow:0 0 0 1px #d4d4d5!important}#top-fixed-nav .logo{background-size:80px 80px!important;height:80px;margin:10px 10px 0 0;width:80px;background:url(/assets/images/logo-360.png) bottom;display:inline-block}#top-fixed-nav .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg)}#top-fixed-nav .logo.psx{background-image:url(/assets/images/psx.jpg)}#top-fixed-nav .cs-enterprise-logo{color:rgba(0,0,0,.87);font-size:20px;position:absolute;left:150px;top:42px;padding-left:27px;border-left:1px solid rgba(0,0,0,.87)}#top-fixed-nav .right.item.toc{display:none;margin-right:10px}#cs-signup-success-dialog h1,#cs-signup-success-dialog p{font-size:50px;text-align:center}#navbar-menu i{font-size:x-large;top:-119px!important;top:-8.5rem!important;right:21px!important;right:1.5rem!important}#navbar-menu .ui.menu.secondary{width:100%!important}#navbar-menu .ui.menu.secondary a.item{text-align:center}#navbar-menu .ui.menu.secondary .ui.inverted.button{width:100%}@media only screen and (max-width:700px){#top-fixed-nav{height:65px}#top-fixed-nav .cs-enterprise-logo{left:73px;top:23px;font-size:15px;padding-left:18px}#top-fixed-nav .right.menu .item{display:none}#top-fixed-nav .logo{margin-left:10px;background-size:45px 45px!important;width:45px;height:45px}#top-fixed-nav .right.item.toc{display:inline-block}}#cs-landing{background:#fff}#cs-landing #landing-chart{position:absolute;top:0;width:calc(100% + 40px);height:100%;left:-40px}#cs-landing #landing-chart svg{font:10px sans-serif;position:absolute}#cs-landing #landing-chart svg:first-of-type{background-color:#2c6a9e}#cs-landing #landing-chart .line{fill:none;stroke:#fff;stroke-width:1.5px}#cs-landing #landing-chart .axis line,#cs-landing #landing-chart .axis path{fill:none;stroke:#fff;shape-rendering:crispEdges}#cs-landing .ui.segment{border:0}#cs-landing .logo{background-size:80px 80px!important;height:80px;margin:0 40px -20px 0;width:80px;background:url(/assets/images/logo-360.png) bottom;display:inline-block}#cs-landing .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg);margin-right:12px}#cs-landing .logo.psx{background:url(/assets/images/psx.jpg) #fff bottom no-repeat;background-size:contain!important;border-radius:4px}#cs-landing #cs-footer .logo{background-size:90px 90px!important;width:90px!important;height:90px!important;margin:0}#cs-landing #cs-footer .logo.cal{background-image:url(/assets/images/logo-capitalanalytics.jpg)}#cs-landing #cs-footer .logo.psx{background:url(/assets/images/psx.png) #fff bottom no-repeat;background-size:contain!important;border-radius:4px}#cs-landing .cs-enterprise-logo{color:#fff;font-size:20px;position:absolute;left:150px;top:45px;padding-left:27px;border-left:1px solid #fff}#cs-landing .cs-discover{cursor:pointer;margin-top:40px}#cs-landing .cs-discover p{color:#fff;opacity:.5}#cs-landing .cs-discover .title{margin:0}#cs-landing .cs-discover .icon{font-size:20px}#cs-landing .cs-discover:hover p{opacity:1}#cs-landing .cs-discover:hover .icon i{-webkit-animation:bounce 2s infinite;animation:bounce 2s infinite}#cs-landing .hidden.menu{display:none}#cs-landing .ui.inverted.segment{background-color:#2c6a9e}#cs-landing .ui.secondary.inverted.pointing.menu{border-color:#2c6a9e}#cs-landing .masthead.segment{min-height:115px;padding:1em 0}#cs-landing .masthead .logo.item img{margin-right:1em}#cs-landing .masthead .ui.menu .ui.button{margin-left:.5em}#cs-landing .masthead h1.ui.header{margin-top:4em;margin-bottom:0;font-size:4em;font-weight:400}#cs-landing .masthead h2{font-size:1.7em;font-weight:400}#cs-landing .ui.vertical.stripe{padding:8em 0}#cs-landing .ui.vertical.stripe h3{font-size:2em}#cs-landing .ui.vertical.stripe .button+h3,#cs-landing .ui.vertical.stripe p+h3{margin-top:3em}#cs-landing .ui.vertical.stripe .floated.image{clear:both}#cs-landing .ui.vertical.stripe p{font-size:1.33em}#cs-landing .ui.vertical.stripe .horizontal.divider{margin:3em 0}#cs-landing .quote.stripe.segment{padding:0}#cs-landing .quote.stripe.segment .grid .column{padding-top:5em;padding-bottom:5em}#cs-landing .secondary.pointing.menu .toc.item{display:none}#cs-landing .segment-bottom-border{border-bottom:1px solid rgba(34,36,38,.15)!important}#cs-landing .cs-container-image{display:flex;align-items:center}#cs-landing .cs-container-image img{width:100%}#cs-landing #home-nav{min-height:0;height:10%;z-index:1;background-color:rgba(44,106,158,0)}#cs-landing #home-nav .ui.pointing.menu{border:0}#cs-landing #home-banner{position:relative;background-color:rgba(44,106,158,0);z-index:1;display:flex;align-items:center;height:90%}#cs-landing #home-banner .ui.inverted.header{margin:0;text-shadow:0 0 4px #0b3e69}#cs-landing #home-banner h2{text-shadow:0 0 4px #0b3e69}#cs-landing #home-banner .start-trial{margin:2em 0}#cs-landing #home-banner .cs-disclaimer-footer{position:absolute;bottom:0;left:0;margin:0;text-align:left;font-size:.8em;padding:1em;line-height:normal}#cs-landing #free-trial{border-bottom:1px solid rgba(34,36,38,.15);padding:4em}#cs-landing #free-trial p{font-weight:300;text-align:center}#cs-landing #free-trial input{width:100%;height:60px}#cs-landing #free-trial button{font-size:16px;width:100%;height:60px}#cs-landing .cs-container-text{width:1280px!important}#cs-landing .container-dark{background-color:#f9fafa}#cs-landing .cs-ent-row{width:100%!important}#cs-landing .cs-ent-row .column{padding:0}#cs-landing .cs-ent-row .column .image{height:660px;background-repeat:no-repeat;background-position-y:top;background-size:cover;background-position-x:left}#cs-landing .cs-ent-row .column .image-window{margin-top:6em;box-shadow:0 -5px 59px -15px #455d69}#cs-landing .cs-ent-row .column .image-window .image{height:400px}#cs-landing .cs-ent-row .column .image-window .window{display:none;height:30px;background-color:#798996;border-top-left-radius:7px}#cs-landing .cs-ent-row .description{display:flex;align-items:center;margin:0 auto;justify-content:center}#cs-landing .cs-ent-row .description .des-text h1{position:relative;max-width:450px;font-weight:lighter}#cs-landing .cs-ent-row .description .des-text p{font-weight:100;font-size:1.2em;line-height:1.7;color:#697782;max-width:450px}#cs-landing .cs-ent-row.cs-col-inverse{background-color:#f3f9f9}#cs-landing .cs-ent-row.cs-col-inverse .image-window .window{border-top-left-radius:0;border-top-right-radius:7px}#cs-landing .cs-ent-feature-1 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/office1.jpg);background-size:60% auto;background-attachment:fixed}#cs-landing .cs-ent-feature-2 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/macbookIphne.png);background-size:60% auto;background-attachment:fixed;background-position:right 25%}#cs-landing .cs-ent-feature-3 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/office2.jpg);background-size:60% auto;background-attachment:fixed;background-position:left 80%}#cs-landing .cs-ent-feature-4 .image{background-image:url(https://mention.com/wp-content/themes/mention/img/photos/iPhone2.png);background-size:10% auto;background-attachment:fixed;background-position:70%}#cs-landing .cs-companies-list .image{background-image:url(/assets/images/companies-list.jpg)}#cs-landing .cs-sector-overview .image{background-image:url(/assets/images/sector-overview.jpg)}#cs-landing .cs-company-snapshot .image{background-image:url(/assets/images/company-snapshot.jpg)}#cs-landing .cs-fundamental-indicators .image{background-image:url(/assets/images/fundamental-indicators.jpg)}#cs-landing .cs-financial-statements .image{background-image:url(/assets/images/financial-statements.jpg)}#cs-landing .cs-technical-charting .image{background-image:url(/assets/images/technical-charting-v2.png)}#cs-landing .cs-stock-screening .image{background-image:url(/assets/images/stock-screener.jpg)}#cs-landing .cs-live-data .image{background-image:url(/assets/images/live-data.jpg)}#cs-landing .cs-ent-location{height:400px}#cs-landing .cs-ent-location .description .des-text a{cursor:pointer}#cs-landing .cs-ent-location .description .des-text h1:before{display:none}#cs-landing .cs-ent-location .description .des-text h1{color:rgba(0,0,0,.87)}#cs-landing .cs-ent-location .description .des-text.address-one{padding:0 5em 0 11em;border-right:1px solid #e0e4ea}#cs-landing .cs-ent-location .description .des-text.address-two{padding:0 11em 0 5em}#cs-landing .cs-ent-location .image.nyc{background:url(https://mention.com/wp-content/themes/mention/img/photos/map-nyc.png);height:400px;background-repeat:no-repeat;background-position:50%;background-size:cover}#cs-landing .cs-ent-location .image.paris{background:url(https://mention.com/wp-content/themes/mention/img/photos/map-paris.png);height:400px;background-repeat:no-repeat;background-position:50%;background-size:cover}@media only screen and (max-width:700px){#cs-landing .cs-ent-location .description{display:block}#cs-landing .cs-ent-location .image.nyc,#cs-landing .cs-ent-location .image.paris{height:auto}#cs-landing .cs-ent-location .des-text{padding:20px 0!important}#cs-landing .cs-ent-location .address-one{border-bottom:1px solid #e0e4ea;border-right:0!important}}@media only screen and (max-width:700px){#cs-landing .ui.vertical.stripe{padding:1em 0!important}#cs-landing .ui.vertical.stripe .cs-media-heading .ui.header{font-size:2em!important;margin-top:3em}#cs-landing .ui.vertical.stripe .cs-media-heading p{font-size:1.2em;margin-bottom:5em}#cs-landing .cs-enterprise-logo{left:90px;top:30px}#cs-landing .logo{background-size:45px 45px!important;width:45px;height:45px}#cs-landing #free-trial{padding:4em 0}#cs-landing #cs-pricing .cs-pricing-heading p{width:90%!important}#cs-landing .ui.fixed.menu{display:none!important}#cs-landing .secondary.pointing.menu .item{display:none}#cs-landing .secondary.pointing.menu .toc.item{display:block}#cs-landing .masthead.segment{min-height:80px}#cs-landing .masthead h1.ui.header{font-size:2em;margin-top:1.5em}#cs-landing .masthead h2{margin-top:.5em;font-size:1.5em}#cs-landing .cs-container-text{width:auto!important;text-align:center}#cs-landing .cs-ent-row{height:auto}#cs-landing .cs-ent-row .column{padding-bottom:0!important}#cs-landing .cs-ent-row .image{width:100%;background-size:cover;background-attachment:scroll;background-position:50%}#cs-landing .cs-ent-row .image-window{margin:0!important}#cs-landing .cs-ent-row .image-window .window{border-top-left-radius:7px!important;border-top-right-radius:7px!important}#cs-landing .cs-ent-row .image-window .image{height:180px!important}#cs-landing .cs-ent-row .description .des-text{text-align:center;padding:0;margin-top:2em}#cs-landing .cs-ent-row.cs-col-inverse{flex-direction:column-reverse}#cs-landing .cs-ent-feature-4 .image{background-repeat:no-repeat;background-size:30% auto;background-position:50%}}#cs-landing .cs-media-monitoring p{color:#697782;font-weight:100}#cs-landing .cs-media-monitoring .ui.grid.container{max-width:1000px!important}#cs-landing .cs-media-monitoring .cs-media-heading h1.ui.header{font-size:3em;font-weight:lighter}#cs-landing .cs-media-monitoring .cs-media-heading p{width:66%;margin:0 auto}#cs-landing .cs-media-monitoring .cs-media-columns{margin-top:2em}#cs-landing .cs-media-monitoring .cs-media-columns .each-column{margin-bottom:2em}#cs-landing .cs-media-monitoring .cs-media-columns .each-column img{width:100%}#cs-landing .cs-media-monitoring .cs-media-columns .each-column h1 i{display:inline;padding:1em;margin:0;box-shadow:12px 15px 20px 0 rgba(46,61,73,.15);border-radius:50%}#cs-landing .cs-media-monitoring .cs-media-columns .each-column p{font-size:1.1em}#cs-landing .cs-media-monitoring .cs-media-columns .each-column .column-head{font-size:1.5em;margin-top:2em;margin-bottom:0;font-weight:lighter}@media only screen and (max-width:700px){#cs-landing .cs-media-monitoring .cs-media-heading p{width:100%;margin:0 auto}}#cs-landing .cs-media-monitoring.cs-company .ui.grid.container{max-width:1200px!important}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .ui.header{font-size:2em}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image{height:400px;background-repeat:no-repeat;background-size:contain}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image.image-1{background-image:url(/assets/images/cs-financials.jpg)}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image.image-2{background-image:url(/assets/images/cs-performance.jpg);background-position-x:100%}@media only screen and (max-width:700px){#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .ui.header{margin-top:1em!important}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics p{margin:0!important}#cs-landing .cs-media-monitoring.cs-company.cs-visual-analytics .image{height:auto;min-height:220px;max-height:400px;background-position-x:50%!important}}#cs-exp-features{background-color:#f9fafd}#cs-exp-features p{color:#697782}#cs-exp-features .ui.grid.container{max-width:1000px!important}#cs-exp-features .cs-media-columns{margin-top:60px}@media only screen and (max-width:700px){#cs-exp-features{text-align:center}#cs-exp-features .cs-media-columns{margin-top:0}#cs-exp-features .eight.wide.right.floated.column{display:none}}#cs-world-best p{color:#697782}#cs-world-best .ui.grid.container{width:100%!important}#cs-world-best .cs-world-overflow{overflow-x:scroll}#cs-world-best .cs-media-columns{height:390px;min-width:1700px!important}#cs-world-best .cs-media-columns .column{width:20%!important}#cs-world-best .each-column{border:1px solid #e2e2e2;padding:20% 10%;height:360px}#cs-world-best .each-column .image img{display:block;margin:0 auto;height:64px;width:64px;border-radius:64px}@media only screen and (max-width:700px){#cs-world-best .ui.grid.container{width:100%!important}}#cs-ent-request-demo{padding:11em 0!important;background-color:#1797dd}#cs-ent-request-demo .ui.header{color:#fff;margin-bottom:50px}#cs-pricing .ui.grid.container{max-width:1300px!important}#cs-pricing .cs-pricing-heading p{width:50%;margin:0 auto}#cs-pricing .cs-pricing-checkbox .color-blue{color:#2c6a9e}#cs-pricing .cs-pricing-checkbox .monthly{display:inline-block;margin-bottom:0;margin-right:30px}#cs-pricing .cs-pricing-checkbox .yearly{display:inline-block;margin-left:6em}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox .box{width:3em;height:3em}#cs-pricing .cs-pricing-checkbox label:before{width:5em;height:2.5em}#cs-pricing .cs-pricing-checkbox label:after{width:2.5em;height:2.5em}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox{height:2.5em;position:absolute}#cs-pricing .cs-pricing-checkbox .sixteen.wide.column{position:relative}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox input{width:5em;height:2.5em}#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox input:checked+label:after{left:2.5em}#cs-pricing .cs-pricing-columns .ui.segment{height:658px;padding:0;position:relative}#cs-pricing .cs-pricing-columns .heading.free{background-color:#fba92b}#cs-pricing .cs-pricing-columns .heading.standard{background-color:#56be8e}#cs-pricing .cs-pricing-columns .heading.gold{background-color:#3ea9f5}#cs-pricing .cs-pricing-columns .heading.platinum{background-color:#3769cc}#cs-pricing .cs-pricing-columns .heading{display:flex;align-items:center;justify-content:center;height:170px}#cs-pricing .cs-pricing-columns .heading p{font-style:italic;font-weight:300}#cs-pricing .cs-pricing-columns .heading h1,#cs-pricing .cs-pricing-columns .heading p{color:#fff}#cs-pricing .cs-pricing-columns .properties{padding:2em}#cs-pricing .cs-pricing-columns .properties p{font-size:1.2em!important;text-align:center;font-weight:300;line-height:2;padding-bottom:10px;margin:0 0 10px;border-bottom:1px solid #edeff1}#cs-pricing .cs-pricing-columns .choose-btn{padding:0 2em 2em;position:absolute;bottom:0;width:100%}#cs-pricing .cs-pricing-columns .choose-btn button{width:100%!important}#cs-pricing .cs-pricing-columns .choose-btn.free button{background-color:#fba92b}#cs-pricing .cs-pricing-columns .choose-btn.standard button{background-color:#56be8e}#cs-pricing .cs-pricing-columns .choose-btn.gold button{background-color:#3ea9f5}#cs-pricing .cs-pricing-columns .choose-btn.platinum button{background-color:#3769cc}@media only screen and (max-width:700px){#cs-pricing .cs-pricing-columns .ui.segment{height:auto}#cs-pricing .cs-pricing-columns .choose-btn{position:static}}@media only screen and (max-width:700px){#cs-pricing .cs-pricing-checkbox .ui.toggle.checkbox{position:inherit;display:inline-block;padding-top:10px;margin-left:10px}#cs-pricing .cs-pricing-checkbox .yearly{display:block;margin:0}#cs-pricing .cs-pricing-checkbox .monthly{display:inline-block;margin:0}}#cs-contact-us .ui.segments .ui.segment{flex:1}@media only screen and (max-width:700px){#cs-contact-us .ui.segments{display:block}}#cs-about-us{background:#fff;padding-bottom:1em}#cs-about-us .cs-about-statements{padding:4em 0;max-width:800px!important}#cs-about-us .cs-about-jumbotron .sixteen.wide.column{height:650px;background-image:url(/assets/images/about-cover.jpg);background-position:50%;background-size:cover;display:flex;align-items:center;justify-content:center}#cs-about-us .cs-about-jumbotron .sixteen.wide.column .ui.header{font-weight:400;font-size:3em}#cs-about-us .cs-about-team{background:#f0f8ff}#cs-about-us .cs-about-team .ui.text.container{max-width:1200px!important}#cs-about-us .cs-about-team .ui.cards{margin:0}#cs-about-us .cs-about-team .card{background:none;text-align:center;box-shadow:none;margin-bottom:4em;transition:all .2s ease-in;transform:scale(1)}#cs-about-us .cs-about-team .card img{border-radius:0}#cs-about-us .cs-about-team .card .meta{margin:1em}#cs-about-us .cs-about-team .card:hover{transition:all .2s ease-in;transform:scale(1.1)}#cs-about-us .cs-about-logos{max-width:900px!important;margin:1em auto 2em}#cs-about-us .cs-about-logos .column{display:flex!important;align-items:center}#cs-about-us .cs-about-logos .ui.image{transition:all .2s ease-in;transform:scale(1)}#cs-about-us .cs-about-memberships,#cs-about-us .cs-about-partners{max-width:600px!important}#cs-about-us .cs-about-partners .eight.wide.column{display:flex;align-items:center}#cs-about-us .cs-about-partners .ui.image{transition:all .2s ease-in;transform:scale(1)}#cs-about-us .cs-about-logos .ui.image:hover{transition:all .2s ease-in;transform:scale(1.2)}#cs-about-us h1.ui.header,#cs-about-us p{font-weight:300}#cs-about-us p{margin:0}@media only screen and (max-width:700px){#cs-about-us .cs-about-jumbotron{margin:0;width:100%!important;margin:0!important}#cs-about-us .cs-about-jumbotron .sixteen.wide.column{height:500px}#cs-about-us .cs-about-jumbotron .ui.header{font-size:2em!important;margin:.5em!important}#cs-about-us .card{width:100%}}@-webkit-keyframes ball-grid-beat{50%{opacity:.7}to{opacity:1}}@keyframes ball-grid-beat{50%{opacity:.7}to{opacity:1}}.ball-grid-beat{width:100px;height:100px;position:absolute;top:50%;left:50%;margin-top:-50px;margin-left:-50px;transition-property:opacity;transition-duration:1s;transition-timing-function:ease-in-out}.ball-grid-beat>div:first-child{-webkit-animation-delay:-.07s;animation-delay:-.07s;-webkit-animation-duration:1.53s;animation-duration:1.53s}.ball-grid-beat>div:nth-child(2){-webkit-animation-delay:.72s;animation-delay:.72s;-webkit-animation-duration:.94s;animation-duration:.94s}.ball-grid-beat>div:nth-child(3){-webkit-animation-delay:.11s;animation-delay:.11s;-webkit-animation-duration:1.25s;animation-duration:1.25s}.ball-grid-beat>div:nth-child(4){-webkit-animation-delay:.13s;animation-delay:.13s;-webkit-animation-duration:1.01s;animation-duration:1.01s}.ball-grid-beat>div:nth-child(5){-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ball-grid-beat>div:nth-child(6){-webkit-animation-delay:.18s;animation-delay:.18s;-webkit-animation-duration:.97s;animation-duration:.97s}.ball-grid-beat>div:nth-child(7){-webkit-animation-delay:-.09s;animation-delay:-.09s;-webkit-animation-duration:.67s;animation-duration:.67s}.ball-grid-beat>div:nth-child(8){-webkit-animation-delay:.42s;animation-delay:.42s;-webkit-animation-duration:.92s;animation-duration:.92s}.ball-grid-beat>div:nth-child(9){-webkit-animation-delay:.52s;animation-delay:.52s;-webkit-animation-duration:1.43s;animation-duration:1.43s}.ball-grid-beat>div{background-color:#fff;width:29%;height:29%;border-radius:100%;margin:2%;-webkit-animation-fill-mode:both;animation-fill-mode:both;display:inline-block;float:left;-webkit-animation-name:ball-grid-beat;animation-name:ball-grid-beat;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-delay:0;animation-delay:0}#cs-company .ui.header .cs-symbol{float:right;margin-top:.3em}@media only screen and (max-width:767px){#cs-company .ui.header .cs-symbol{margin:0;float:none}}@media only screen and (max-width:767px){#cs-company-overview .ui.stackable.grid .sixteen.wide.column,#cs-company>.sixteen.wide.column{padding-left:0!important;padding-right:0!important}}#cs-company-chart-mobile{display:none}#cs-company-chart-mobile .cs-chart-options-mobile{margin-top:.5em;padding:.2em 0;border-top:1px solid rgba(0,0,0,.19);border-bottom:1px solid rgba(0,0,0,.19)}#cs-company-chart-mobile .cs-chart-options-mobile .ui.menu{padding-left:5px}#cs-company-chart-mobile .cs-chart-options-mobile .ui.menu .item{margin:0}#cs-company-chart-mobile .cs-chart-mobile.dark .y.axis .tick text{stroke:#fff}#cs-company-chart-mobile .cs-chart-mobile.dark .x-grid,#cs-company-chart-mobile .cs-chart-mobile.dark .y-grid{stroke:rgba(126,127,128,.34)}#cs-company-chart-mobile .cs-chart-mobile.dark .line{stroke-width:.3px}#cs-company-chart-mobile .cs-chart-mobile.light .x-grid,#cs-company-chart-mobile .cs-chart-mobile.light .y-grid{stroke:hsla(0,0%,86.3%,.52)}#cs-company-chart-mobile .cs-chart-mobile.light .area{opacity:.7}#cs-company-chart-mobile .cs-chart-mobile.red linearGradient stop{stop-color:#db2828}#cs-company-chart-mobile .cs-chart-mobile.red .line{stroke:#db2828}#cs-company-chart-mobile .cs-chart-mobile.green linearGradient stop{stop-color:#21ba45}#cs-company-chart-mobile .cs-chart-mobile.green .line{stroke:#21ba45}#cs-company-chart-mobile .cs-chart-mobile{min-height:137px}@media only screen and (max-width:767px){#cs-company-chart-mobile{display:block}}#cs-company-stats-mobile{display:none}#cs-company-stats-mobile .column .ui.header{font-weight:300}#cs-company-stats-mobile #cs-company-price{display:flex;flex-flow:row wrap;justify-content:space-around}#cs-company-stats-mobile #cs-company-price .ui.header{width:50%;margin:0;font-size:1.7em;overflow:hidden;white-space:nowrap}#cs-company-stats-mobile #cs-company-price .update{width:100%;margin:.3em 0}@media only screen and (max-width:767px){#cs-company-stats-mobile{display:block}}#cs-company-indexes{text-align:right;margin-right:-.3em;margin-bottom:-.5em}#cs-company-indexes .ui.label{margin:0 .5em .5em 0;padding:.5em}@media only screen and (max-width:767px){#cs-company-indexes{float:none;display:block;margin-top:.5em;line-height:2}}#cs-company-defaulter .type>span{width:9px;overflow:hidden;display:inline-block;vertical-align:bottom;transition:width .5s}#cs-company-defaulter .type:hover>span{width:51px;transition:width .5s}#cs-company-detail .company-title>h2{margin:0 0 .2em;display:flex;align-items:center;justify-content:space-between}#cs-company-detail .company-title>h2>span{display:inline-flex;align-items:center}#cs-company-detail .company-type{font-size:1em}#cs-company-detail .ui.segment{width:50%}@media only screen and (max-width:767px){#cs-company-detail{display:none}#cs-company-detail .ui.horizontal.segments{flex-direction:column}#cs-company-detail .ui.horizontal.segments .ui.segment{width:100%}#cs-company-detail .ui.horizontal.segments .cs-chart-options .ui.secondary.menu{font-size:.8em}#cs-company-detail .ui.horizontal.segments .cs-chart-options .mobile-hide{display:none}}#cs-company-detail-mobile{display:none}#cs-company-detail-mobile .ui.header{font-weight:300;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media only screen and (max-width:767px){#cs-company-detail-mobile{display:block}}#cs-company-tabs{padding-top:0!important}#cs-company-tabs .attached{width:100%}#cs-company-tabs .ui.attached.title{display:none}#cs-company-tabs>.tab{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#cs-company-tabs>.attached.menu.fixed.top{top:0;box-shadow:0 7px 20px 0 rgba(46,61,73,.15);height:45px;width:calc(100% - 2.6em);left:1.35em;z-index:2}#cs-company-tabs>.tab.fixed{margin-top:45px}#cs-company-tabs .cs-analyst-recommend .heading,#cs-company-tabs .cs-forward-pe .heading{display:flex;align-items:center;justify-content:space-between}#cs-company-tabs .cs-analyst-recommend .heading h3,#cs-company-tabs .cs-forward-pe .heading h3{margin:0}#cs-company-tabs .cs-analyst-recommend table .period,#cs-company-tabs .cs-forward-pe table .period{color:#c3c1c1}#cs-company-tabs .cs-analyst-recommend table .passed,#cs-company-tabs .cs-forward-pe table .passed{position:relative;color:rgba(195,193,193,.65);background:#f0f0f0}#cs-company-tabs .cs-analyst-recommend table .passed tr td:first-child,#cs-company-tabs .cs-forward-pe table .passed tr td:first-child{width:170px}#cs-company-tabs .cs-history-recommend{position:relative}#cs-company-tabs .cs-history-recommend .period{color:#c3c1c1;margin-left:.5em}#cs-company-tabs .cs-history-recommend .open-pdf{cursor:pointer}#cs-company-tabs .cs-history-recommend .table-container{max-height:477px;overflow:scroll}#cs-company-tabs .cs-history-recommend .table-fixed-header{position:absolute;top:35px;left:0;width:100%;padding:1rem}@media only screen and (max-width:767px){#cs-company-tabs .cs-history-recommend .table-container .ui.table{min-width:1000px}#cs-company-tabs .cs-history-recommend .table-fixed-header{display:none}}#cs-company-tabs .cs-analyst-research{display:none}#cs-company-tabs .ui.tab[data-tab=research] .ui.popup{width:150px!important}#cs-company-tabs .tab[data-tab=performance] .title-cell{position:relative}@media only screen and (max-width:767px){#cs-company-tabs .content{overflow-y:scroll}#cs-company-tabs>.attached.menu{overflow:scroll;background-color:#fff!important;border-bottom:1px solid #ccc}#cs-company-tabs>.attached.menu .item:after,#cs-company-tabs>.attached.menu .item:before{display:none}#cs-company-tabs>.attached.menu .item{color:#000!important;background-color:#fff!important}#cs-company-tabs>.attached.menu .item.active{border-bottom:1px solid #707175}#cs-company-tabs .tab[data-tab=financials],#cs-company-tabs .tab[data-tab=performance]{overflow-x:scroll}#cs-company-tabs .ui.tab[data-tab=research] .column{padding-left:0!important;padding-right:0!important}}#cs-analyst-price-chart .bg{stroke:#fff;fill:#fff}#cs-analyst-price-chart .line{stroke-width:2px}#cs-analyst-price-chart .x-grid{stroke:#fff}#cs-analyst-price-chart .target{stroke-dasharray:5;stroke-width:2px;stroke:#9ea7ae}#cs-analyst-price-chart circle{fill:#9a9a9a}#cs-analyst-price-chart.target-price-chart .line{stroke:#a9a9a9}#cs-analyst-price-chart.target-price-chart .area{fill:none!important}#cs-overview-profile .sixteen.wide.column{display:none}#cs-overview-profile .eight.wide.column{width:100%!important}#cs-overview-profile .eight.wide.column .ui.definition.unstackable.table{margin-top:2em}#cs-company-price h1{font-size:2.2em;margin-bottom:0;font-weight:700}#cs-company-price h2.header{margin-top:.2em}#cs-company-price .ui.header>.icon{font-size:.9em;vertical-align:top}#cs-company-price .ui.header>.icon+.content{padding-left:0}#cs-company-price .ui.header.company-price-value span.green{color:#21ba45!important}#cs-company-price .ui.header.company-price-value span.red{color:#db2828!important}#cs-company-price h2.header span{font-size:.6em}#cs-company-price .update{color:#767676;font-size:.9em}#cs-company-stats{font-size:.85em;position:relative;min-height:95px}#cs-company-stats .ui.statistics{display:flex;flex-direction:column}#cs-company-stats .ui.statistics .statistic{margin:0 0 1em 1.4em}#cs-company-stats .ui.horizontal.segment{padding-left:0}#cs-company-profile{position:relative;padding-top:.14em}#cs-company-recommend .ui.accordion .title .ui.label{font-size:.7em;vertical-align:middle;margin-top:-1px}#cs-company-recommend .ui.accordion .title .dropdown.icon,#cs-company-recommend .ui.accordion .title .text{vertical-align:middle}#cs-company .cs-range-scale{margin-bottom:2em}.cs-financials-buttons{margin-bottom:.5em;display:flex;justify-content:space-between}.cs-financials-buttons .cs-financials-download{flex:auto;display:flex;align-items:center;justify-content:flex-end}.cs-financial-table{position:relative}.cs-financial-table .cs-table-fixed-header{display:none;position:fixed;top:45px;width:calc(100% - 8em);z-index:1}.cs-financial-table .cs-table-container.fixed-header .cs-table-fixed-header{display:block}.cs-financial-table .ui.definition.table{border-top:0;border-right:0}.cs-financial-table .ui.definition.table thead:not(.full-width) th:nth-child(2){border-left:none}.cs-financial-table .ui.definition.table thead th{position:relative;font-size:1.2em;line-height:1.3em;font-weight:900;text-align:center;border-left:none;background:none;color:#2c6a9e}.cs-financial-table .ui.definition.table thead th:hover .year .period{opacity:1;visibility:visible}.cs-financial-table .ui.definition.table thead th.year{text-align:right}.cs-financial-table .ui.definition.table thead th .year .period{position:absolute;top:-40px;border:1px solid #d3d3d3;padding:.5em;border-radius:4px;font-size:.8em;visibility:hidden;opacity:0;transition:all .2s;display:block;min-width:280px;right:-100px}.cs-financial-table .ui.definition.table thead th .year.quarterly .period{min-width:100px;right:-10px}.cs-financial-table .ui.definition.table thead th .year{text-align:center;color:#2c6a9e;font-weight:700;vertical-align:bottom;display:flex;align-items:center;justify-content:flex-end}.cs-financial-table .ui.definition.table thead th .year .quarter{color:#737176;margin-bottom:.1em;padding-bottom:.2em;border-bottom:1px solid #e2e2e2}.cs-financial-table .ui.definition.table thead th .year .year-end-date{font-size:.8em}.cs-financial-table .ui.definition.table thead th .year .cs-open-report{visibility:hidden;cursor:pointer;position:absolute;right:-.5em;z-index:1}.cs-financial-table .ui.definition.table thead th .year .cs-open-report i{margin:0 0 0 5px}.cs-financial-table .ui.definition.table tr td:last-child{border-right:1px solid rgba(34,36,38,.15)}.cs-financial-table .ui.definition.table tr.header-row td{background-color:#e4e4e4;font-weight:700}.cs-financial-table .ui.definition.table tr:not(.header-row) td{font-weight:500}.cs-financial-table .ui.definition.table thead:not(.full-width) th:first-child{font-size:1.4em;color:#2c6a9e;text-align:left;font-weight:700}.cs-financial-table .ui.definition.table .trend{position:relative}.cs-financial-table .ui.definition.table .change.red{color:#db2828}.cs-financial-table .ui.definition.table .change.green{color:#21ba45}.cs-financial-table .ui.definition.table .value--hidden{display:none}#cs-company-returns table{margin-top:0}#cs-company-returns th{padding:.5em .5em .2em;font-size:.9em;color:grey}#cs-company-returns .title-header{display:none}#cs-company-returns .cell{color:#fff;padding:.5em;border-left:2px solid #fff;width:15%}#cs-company-returns .cell.red{background-color:#db2828}#cs-company-returns .cell.green{background-color:#21ba45}#cs-company-returns .cs-time-frame{display:none}@media only screen and (max-width:767px){#cs-company-returns{padding:.5em 0 1.5em;border:1px solid rgba(34,36,38,.15);border-width:1px 0}#cs-company-returns .title-header{display:block}#cs-company-returns .title-cell{display:none}#cs-company-returns .cell{text-align:center}#cs-company-returns thead{display:none}#cs-company-returns .cs-time-frame{display:inline}}#cs-company-overview .cs-financial-table thead th,.ui.tab[data-tab=technical] .cs-financial-table thead th{font-size:.9em;padding-top:0;font-weight:700}#cs-company-overview .cs-financial-table .field,.ui.tab[data-tab=technical] .cs-financial-table .field{width:200px}#cs-company-overview .cs-financial-table td,.ui.tab[data-tab=technical] .cs-financial-table td{font-weight:700}#cs-company-fundamentals .title-cell{width:225px}#cs-company-fundamentals .range-cell{font-size:.8em;text-align:center;width:130px;position:relative}#cs-company-fundamentals .range-cell .cs-range-scale{margin-bottom:0;padding:10px 0}#cs-company-fundamentals .range-cell .cs-range-scale .bar,#cs-company-fundamentals .range-cell .cs-range-scale .bar .point{height:10px}#cs-company-fundamentals .range-cell .cs-range-scale .bar .caret{bottom:-7px;margin-left:-9px;font-size:1.6em}#cs-company-fundamentals .saperator{width:30px}#cs-company-fundamentals .mjx-chtml,#cs-company-fundamentals .MJXc-display{font-size:.8em;text-align:left!important}#cs-company-fundamentals .cs-info.ui.popup{padding-right:1.8em;max-width:none}#cs-company-fundamentals .cs-info.ui.popup .content{max-width:280px}#cs-company-fundamentals .cs-versus-info.ui.popup{font-size:.9em;width:200px}#cs-company-fundamentals .cs-versus-info.ui.popup .header{font-weight:700}#cs-company-fundamentals .cs-versus-info.ui.popup .content{background:#f2f2f2;border-radius:4px;padding:.4em .6em .2em;margin-top:.3em}@media only screen and (max-width:767px){#cs-company-fundamentals{width:1000px;font-size:.9em}#cs-company-fundamentals .ui.table td{padding:.2em .4em}#cs-company-fundamentals .title-cell{width:124px;font-size:.8em}}.cs-median-range .text{text-align:center}.cs-median-range .text>div{display:inline-block}.cs-median-range .text .min{float:left;text-align:left}.cs-median-range .text .max{float:right;text-align:right}.cs-median-range .text .num{font-weight:700;font-size:.9em}.cs-median-range .line{margin:10px 0 5px;height:1px;border-top:2px solid #ccc;width:100%;position:relative}.cs-median-range .line>div{position:absolute;width:1px;height:10px;border-left:2px solid #ccc;top:-6px}.cs-median-range .line .circle{width:10px;border-radius:5px;background:#767676;border:none;margin-left:-5px}.cs-median-range .line .min{left:0}.cs-median-range .line .max{right:0}.cs-median-range .line .median{left:50%}.cs-row-bar{width:32px;display:inline-block;height:16px;border-radius:2px;overflow:hidden;border:1px solid #ccc}.cs-row-bar .bar{height:14px}#cs-home-newsletter{padding-top:0}#cs-home-newsletter .ui.menu{border-radius:5px}#cs-home-newsletter .ui.form{font-size:1.1em}.cs-chart-options .ui.secondary.menu .active.item{background:#2c6a9e!important;color:#fff!important}#cs-company-announcements .date-cell{width:120px}#cs-company-announcements .announce__date__calenderView,#cs-company-announcements .company__selection{display:none}#cs-company-announcements #announce-calendar{display:none!important}@media only screen and (max-width:767px){#cs-company-announcements{overflow-x:scroll}#cs-company-announcements .ui.table{width:650px}#cs-company-announcements .ui.table td{padding:.2em .4em}#cs-company-announcements .announce__filters{position:static;padding:0}}.cs-financials-overview-buttons{float:right;display:inline-block}@media only screen and (max-width:767px){.cs-financials-overview-buttons{float:none;display:block}}#outerContainer #mainContainer div.toolbar{display:none!important}#outerContainer #mainContainer #viewerContainer{top:0!important}#cs-company-financials{position:relative}#cs-company-financials .fiscal-year{position:absolute;top:1em;font-size:1.3em;right:1em;color:#a4a4a4}@media only screen and (max-width:767px){#cs-company-financials .fiscal-year{position:static;margin:1em .7em 0}}#cs-target-eps-menu{position:absolute;top:-11px;right:2.5em}@media only screen and (max-width:767px){#cs-target-eps-menu{right:0}}#cs-pivot-points table tbody td{padding:.99em}@media only screen and (max-width:767px){#cs-equity-profile table{display:flex;align-items:center}#cs-equity-profile table thead{background-color:rgba(0,0,0,.03)}#cs-equity-profile table thead th{padding:1em!important;border-bottom:1px solid #e2e2e2!important}#cs-equity-profile table thead th:first-child{padding-top:0!important}#cs-equity-profile table thead th:last-child{padding-bottom:0!important;border-bottom:none!important}#cs-equity-profile table tbody td{padding:1em!important;border-bottom:1px solid #e2e2e2!important}#cs-equity-profile table tbody td:first-child{padding-top:0!important}#cs-equity-profile table tbody td:last-child{padding-bottom:0!important;border-bottom:none!important}}#cs-company-insider .insider-table table th{text-align:center}@media only screen and (max-width:767px){#cs-company-insider .insider-table{overflow-x:scroll}#cs-company-insider .insider-table table{min-width:1030px}}#cs-company-insider-header{padding:.5em;border:1px solid #e0e2e2}#cs-company-insider-header i{margin:0;font-size:1.3em}#cs-company-insider-header .green{color:#25ba45}#cs-company-insider-header .red{color:#db2830}#cs-company-insider-header .amount{font-weight:700;color:#7cb342}@media only screen and (max-width:767px){#cs-company-insider-header{font-size:1em;text-align:center;line-height:1.5;min-height:90px;display:flex;justify-content:center;align-items:center}}#cs-company-payout .ui.segment{padding:0}#cs-company-payout .cs-payout-nav{display:flex;align-items:center;justify-content:space-between}#cs-company-payout .cs-payout-nav .ui.menu{margin:0}#cs-company-payout .cs-payout-nav .ui.dropdown{width:450px}#cs-company-payout .disabled-cell{background-color:#e2e2e2;color:#a0a0a0}#cs-company-payout .danger-cell{color:#fff;background-color:#ff5858}#cs-company-payout .upcoming-cell{color:#fff;background-color:#3b5a81}#cs-company-payout .legends-values{display:flex;align-items:center;justify-content:space-between;margin:0 0 1em}#cs-company-payout .legends-values h1{margin:0}#cs-company-payout .ui.secondary.menu .item.active{background:#5a88b5;color:#fff}#cs-company-payout .cs-payout-table tbody{display:block;overflow-y:scroll;max-height:400px}#cs-company-payout .cs-payout-table tbody::-webkit-scrollbar{-webkit-appearance:none;width:7px;background-color:#c4c8cc}#cs-company-payout .cs-payout-table tbody::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(0,0,0,.5);-webkit-box-shadow:0 0 1px hsla(0,0%,100%,.5)}#cs-company-payout .cs-payout-table tr{display:flex}#cs-company-payout .cs-payout-table tr td,#cs-company-payout .cs-payout-table tr th{flex:1}#cs-company-payout .cs-payout-table thead{background-color:#c4c8cc}#cs-company-payout .cs-payout-table thead tr{width:calc(100% - 7px)}#cs-company-payout .cs-payout-table .image-icon{color:#2c6a9e}#cs-company-payout .cs-payout-table .pdf-icon{color:#df4142;margin-right:.5em}#cs-company-payout .cs-payout-chart-wrapper{min-height:250px}#cs-company-payout .cs-payout-chart-wrapper.loading:before,#cs-company-payout .cs-payout-tables-wrapper.loading:before{background:#fff}@media only screen and (max-width:767px){#cs-company-payout .cs-payout-chart-wrapper{min-height:130px}#cs-company-payout>.ui.grid{flex-direction:column-reverse}#cs-company-payout .cs-payout-table{width:800px}#cs-company-payout #cs-payout-historical-cash,#cs-company-payout #cs-payout-historical-others{overflow:scroll}}#cs-payout-trend .payout__trends{display:flex;justify-content:space-between}#cs-payout-trend .payout__trends>div{flex:0 0 32%}#cs-payout-trend .payout__trend{display:flex;align-items:center;justify-content:flex-start;flex-direction:column;padding:.5em;border-radius:5px;border:1px solid #5383b2;text-align:center;background-color:#5383b2;color:#fff}#cs-payout-trend .payout__trendTitle{font-size:.95em}#cs-payout-trend .payout__trendStat{font-size:2em;font-weight:700;margin:.25em 0;color:#dceeff;line-height:1.2}@media only screen and (max-width:767px){#cs-payout-trend .payout__trendStat{font-size:1.8em}}#cs-payout-trend-header .ui.header{padding:.5em;border:1px solid #e0e2e2;margin-bottom:1em}#cs-payout-trend-header .amount{color:#25ba45}.cs-payout-top-section--fixed{position:absolute;top:-9999px;left:-9999px;width:calc(100vw - 2em)}#cs-company-payout-chart{width:100%}@media only screen and (max-width:767px){#cs-company-payout-chart{width:calc(100vw - 2em)}}.cs__company__subHead{display:flex;align-items:center;justify-content:space-between;margin-top:1em}#cs-sectors{overflow:hidden;margin-top:96px;background:#2c6a9e;color:#fff;min-height:650px;position:relative;border-top:1px solid #2c6a9e}@media only screen and (max-width:767px){#cs-sectors{margin-top:0}}@media only screen and (max-width:767px){#cs-sectors.cs-sector-view #cs-sectors-header .ui.divider{display:none}#cs-sectors.cs-sector-view #cs-sectors-header .last-update{float:none}#cs-sectors.cs-sector-view #cs-sectors-header .value-text{float:none;text-align:left}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.companies{display:none!important}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.sector{width:50%!important}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.sector .text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#cs-sectors.cs-sector-view #cs-sectors-grid .cell.change,#cs-sectors.cs-sector-view #cs-sectors-grid .cell.market-cap{width:25%!important}}#cs-sectors.cs-companies-view{width:100%;overflow-x:scroll}@media only screen and (max-width:767px){#cs-sectors.cs-companies-view #cs-companies-grid.cs-grid,#cs-sectors.cs-companies-view #cs-sectors-header{width:1350px!important}#cs-sectors.cs-companies-view #cs-companies-grid .body,#cs-sectors.cs-companies-view #cs-companies-grid .head{width:100%!important}}#cs-sectors .ui.header{font-weight:light}#cs-sectors>.ui.container>.ui.segment.basic{padding:0}#cs-sectors-header{position:fixed;opacity:0;transition-property:opacity;transition-duration:.8s;transition-timing-function:ease-in-out;width:100%;z-index:10;background:#2c6a9e;padding:1em 0 0;top:96px}#cs-sectors-header .ui.header{width:100%}#cs-sectors-header .title{display:inline-block;width:16em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:-7px;text-transform:capitalize}#cs-sectors-header .indicator{float:right;font-size:.7em;margin-right:2em;font-weight:200;margin-top:2px}#cs-sectors-header .back{color:#fff;float:right;font-size:.8em;opacity:.8}#cs-sectors-header .back:hover{opacity:1}#cs-sectors-header .last-update{float:right;font-size:.5em;margin-top:.6em}#cs-sectors-header .value-text{float:right;font-size:.5em;font-style:italic;margin-top:0;text-align:right}@media only screen and (max-width:767px){#cs-sectors-header{padding:0;position:relative;top:62px}}#cs-sectors-header .ui.header{font-size:1.8em}.cs-grid{transition-property:opacity;transition-duration:.8s;transition-timing-function:ease-in-out;display:none;position:relative;margin-top:94px}.cs-grid .head{height:42px;position:fixed;width:100%;top:184px;background:#2c6a9e;z-index:11}.cs-grid .body{height:100px;transition-property:height;transition-duration:2s;transition-timing-function:ease-in-out;padding-top:38px}.cs-grid .row{opacity:0;transition-property:transform,opacity;transition-duration:1s;transition-timing-function:ease-in-out;position:absolute;width:100%;display:block;text-decoration:none}.cs-grid .cell{display:inline-block;line-height:2.2em;font-size:1.1em;width:8%;text-align:right;cursor:pointer;float:left;color:#fff}.cs-grid .cell .text{padding:0 4px}.cs-grid .head .cell{font-size:.9em;line-height:1.5em}.cs-grid .head .cell .subtext{font-size:.8em;color:#cdcdcd}.cs-grid .blink-me{-webkit-animation:blinker 1.5s linear infinite;animation:blinker 1.5s linear infinite}@-webkit-keyframes blinker{50%{opacity:0}}@keyframes blinker{50%{opacity:0}}.cs-grid .body .cell.sector,.cs-grid .head .cell.sector{width:24%;text-align:left}.cs-grid .body .cell .text{border:solid #2c6a9e;border-width:0 2px 0 0;text-transform:capitalize}.cs-grid .body .cell.sector{opacity:.8}.cs-grid .body .row:hover .cell.sector{background:#225a8a;opacity:1}.cs-grid .body .cell.change,.cs-grid .head .cell.change{width:6%}.cs-grid .body .cell.companies{width:61%;margin-left:1%;text-align:left;display:flex;flex-direction:row;flex-wrap:nowrap}.cs-grid .body .cell.companies .company{flex:1 1 auto;background-color:#ccc;overflow:hidden;opacity:.8}.cs-grid .body .cell.companies .company .text{padding-right:0}.cs-grid .body .cell.companies .company:hover{opacity:1}@media only screen and (max-width:767px){.cs-grid{margin-top:70px}.cs-grid .head{position:relative;top:0}}#cs-companies-grid .sector.cell{width:20%}#cs-companies-grid .sector.cell .text{width:98%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#cs-companies-grid .head{height:60px}#cs-companies-grid .body{padding-top:50px}#cs-companies-grid .cell{width:8.7%}#cs-companies-grid .head .cell{height:60px;position:relative}#cs-companies-grid .head .cell.group .line{height:100%;border-left:1px solid #fff;position:absolute;left:0;top:0}#cs-companies-grid .head .cell .heading{position:absolute;top:-3px;left:8px;white-space:nowrap;font-weight:700}#cs-companies-grid .head .cell .text{position:absolute;bottom:4px;width:100%;right:4px;line-height:1.2em}#cs-companies-grid .cell.market-cap{margin-left:1%}#cs-companies-grid .cell.markup{width:9%}@media only screen and (max-width:767px){#cs-companies-grid .body{padding-top:40px}}#cs-sectors-grid-popup{width:350px}#cs-sectors-grid-popup .ui.header{margin:0 0 .2em}#cs-sectors-grid-popup .desc,#cs-sectors-grid-popup .sector{font-size:.8em;color:#767676}#cs-sectors-grid-popup strong{font-weight:700}#cs-sectors-grid-popup .change{padding:.2em 0}#cs-sectors-grid-popup .red{color:#db2828}#cs-sectors-grid-popup .green{color:#21ba45}.cs-sector-treemap{background:#262931;border-top:1px solid #262931}.cs-sector-treemap .ui.menu{background:#363a46;margin:0 0 .5em;box-shadow:1px 1px 0 #111;border:none;border-radius:0}.cs-sector-treemap .menu.right{background-color:#708090}.cs-sector-treemap .ui.menu .dropdown.item{border-left:1px solid #000;color:#fff}.cs-sector-treemap .ui.menu .item{color:#ccd5e8;padding:.5em .7em}.cs-sector-treemap .ui.menu .dropdown.item:hover{color:#fff}.cs-sector-treemap .chart-wrapper{padding:0 1em}.cs-sector-treemap .info{color:#fff;font-size:11px;padding-left:20px;margin-left:26px;margin-top:18px;line-height:13px}.cs-sector-treemap .scale{float:right;color:#fff;font-size:11px;font-weight:400;line-height:24px;text-shadow:0 1px 0 rgba(0,0,0,.25);margin-top:18px;margin-bottom:10px;margin-right:26px}.cs-sector-treemap .scale div{cursor:default;display:inline-block;float:left;text-align:center;margin-left:1px;margin-bottom:7px}.cs-sector-treemap .scale{display:flex}.cs-sector-treemap .scale div{flex:1;float:none;padding:0 2px;white-space:nowrap}.cs-sector-treemap .beep{height:10px;position:relative;width:10px;display:inline-block;margin:-1px .7em 0 .5em}.cs-sector-treemap .beep .circle{position:absolute;width:8px;height:8px;left:50%;top:50%;transform:translate(-50%,-50%);background:#666;border-radius:6px}.cs-sector-treemap .beep.open .circle{-webkit-animation:beep 2s infinite;animation:beep 2s infinite;background:#64f341}.cs-sector-treemap .beep-text{color:#64f341;font-weight:700;overflow:hidden;width:0;transition-property:width;transition-duration:.5s;transition-timing-function:ease-in-out;font-size:1.1em}.cs-sector-treemap .beep-text.open{width:40px}@media only screen and (max-width:767px){.cs-sector-treemap .ui.menu{flex-wrap:wrap}.cs-sector-treemap .ui.menu .item{padding:.5em;font-size:12px}.cs-sector-treemap .menu.right{width:100%;margin-left:0;display:flex;flex-wrap:wrap}.cs-sector-treemap .ui.menu .dropdown.item{flex:1 1 auto;border-left:none;border-top:1px solid #000;justify-content:space-between}.cs-sector-treemap .chart-wrapper{padding:0 .5em}.cs-sector-treemap table,.cs-sector-treemap tbody,.cs-sector-treemap tr{display:block;width:100%}.cs-sector-treemap td.info{display:block}.cs-sector-treemap td.scale{display:flex}.cs-sector-treemap td.info,.cs-sector-treemap td.scale{width:100%;float:none;box-sizing:border-box}.cs-sector-treemap td.scale:last-child{margin-bottom:0}.cs-sector-treemap .info{padding-left:0;margin:12px .5em 0}.cs-sector-treemap .scale{margin:12px .5em 10px;font-size:9px;line-height:20px}.cs-sector-treemap .scale div{margin-left:0;margin-bottom:0;padding:0 1px}}@-webkit-keyframes beep{0%{box-shadow:0 0 0 0 rgba(12,150,10,.8)}80%{box-shadow:0 0 0 10px rgba(12,150,10,0)}to{box-shadow:0 0 0 0 rgba(12,150,10,0)}}@keyframes beep{0%{box-shadow:0 0 0 0 rgba(12,150,10,.8)}80%{box-shadow:0 0 0 10px rgba(12,150,10,0)}to{box-shadow:0 0 0 0 rgba(12,150,10,0)}}#cs-treemap-popup{width:280px;position:absolute;top:100%;left:100%;padding:1em;border:1px solid #333;border-radius:3px;background:#fff;z-index:10}#cs-treemap-popup table{width:100%}#cs-treemap-popup hr{border-bottom:0;background-color:grey}#cs-treemap-popup .right{text-align:right}#cs-treemap-popup .sector{font-size:.8em;color:#999}#cs-treemap-popup .name{color:#004892}#cs-treemap-popup .price,#cs-treemap-popup .symbol{font-weight:700;font-size:1.3em}#cs-treemap-popup .change{text-align:right}#cs-treemap-popup strong{font-weight:700}#cs-treemap-popup .red{color:#db2828}#cs-treemap-popup .green{color:#21ba45}#cs-treemap-popup td{padding:2px 0}svg{display:block}.axis{font-size:10px;stroke:#767676}.axis line,.axis path{fill:none;stroke:#dcddde;shape-rendering:crispEdges;stroke-width:1px}.axis text{stroke-width:.5px}.x-grid,.y-grid{fill:none;shape-rendering:crispEdges;stroke:#dcddde;stroke-width:1px}.line{fill:none;stroke:#1b5586;stroke-width:1px}.bar.positive{fill:#21ba45}.bar.negative{fill:#db2828}.circle{fill:#1b5586}.area{fill:#5391c5;stroke:none;opacity:.1}.bar{fill:#1b5586}.zeroline{fill:none;stroke:red;stroke-width:.5px;stroke-dasharray:5 5}.zerolinetext{fill:red}.overlay{fill:none;stroke:none;pointer-events:all}.focusLine{fill:none;stroke:#4682b4;stroke-width:.5px}.focusCircle{stroke:#fff}.focusCircleGlow{fill:#5391c5;opacity:.1}.cs-chart{position:relative;min-height:200px}@media only screen and (max-width:767px){.cs-chart{min-height:auto}}.cs-chart .ui.pointing.left.label{display:none;position:absolute;height:22px;font-size:10px;font-weight:400;width:54px;padding:5px 3px;text-align:center}.cs-chart-footnote{text-align:right;color:#888;font-size:.7em;font-style:italic}.cs-waterfall .axis.x line,.cs-waterfall .axis.x path{stroke:none}.cs-waterfall .axis.x text{font-size:11px}.cs-waterfall .x-grid{stroke-dasharray:5}.cs-timeseries .axis.y path{stroke:none}.cs-timeseries .volume{stroke:none;fill:#909090}.cs-chart-timeseries .ui.popup{transition-property:top,left;transition-duration:.08s;transition-timing-function:ease-in-out}.cs-chart-timeseries .ui.popup:before{position:relative;width:0!important;height:0!important;left:0!important;margin:0!important}.cs-chart-timeseries .focusLine{fill:none;stroke-width:1px}.cs-chart-timeseries .focusCircle{stroke:#fff}.cs-chart-timeseries .focusCircleGlow{opacity:.3}.cs-chart-timeseries.dark .bg{fill:#2c6a9e}.cs-chart-timeseries.dark .volume .bar{fill:#fff;opacity:.5}.cs-chart-timeseries.dark .axis path{stroke:none}.cs-chart-timeseries.dark .x-grid,.cs-chart-timeseries.dark .y-grid{stroke:#3575ab}.cs-chart-timeseries.dark .line{stroke:#ecf6ff}.cs-chart-timeseries.dark .axis text{stroke-width:.5px;font-size:12px;stroke:#9c9c9c}.cs-chart-timeseries.dark .axis line{stroke:none}.cs-chart-timeseries.dark .area{opacity:1}.cs-chart-timeseries.dark .focusLine{stroke:#fff;stroke-width:.5px}@media only screen and (max-width:767px){.cs-chart-timeseries.dark .axis text{font-size:10px}}.cs-chart-timeseries.light .bg{stroke:#dcdcdc;fill:#f9f9f9}.cs-chart-timeseries.light .x-grid,.cs-chart-timeseries.light .y-grid{stroke:#dcdcdc}.cs-chart-timeseries.light .focusLine{stroke:#767676;stroke-width:.5px}#cs-treemap rect{pointer-events:all;cursor:pointer;stroke:#262931}#cs-treemap .highlight rect{stroke:#ffd614}#cs-treemap .parent .label{color:#fff}#cs-treemap .highlight .label{color:#000}#cs-treemap text{fill:#fff;text-shadow:1px 1px 1px #000;font-weight:700;pointer-events:none}#cs-treemap .labelbody{background:transparent;min-width:100%;padding:0 1px 0 2px;font-size:12px;font-weight:400}#cs-treemap .highlight .labelbody{background:#ffd614}#cs-treemap .label{white-space:pre;overflow:hidden;text-overflow:ellipsis}#cs-treemap .cell{font-size:11px;cursor:pointer}.dual-axis-chart{position:relative}.dual-axis-chart .chart-tooltip{position:absolute;background-color:#fff;box-shadow:3px 3px 10px rgba(19,19,19,.12156863);border:1px solid #e2e2e2;border-radius:7px;font-size:.9em;padding-bottom:.3em;overflow:hidden;transition:.1s;min-width:180px}.dual-axis-chart .chart-tooltip .tool-x{padding:.3em;color:#fff;background-color:#289aef;text-align:center;font-weight:700;font-size:1em}.dual-axis-chart .chart-tooltip .tool-y{display:flex;align:center;justify-content:space-between;padding:.3em;line-height:1.4}.dual-axis-chart .chart-tooltip .tool-y .value{color:grey}.dual-axis-chart .chart-tooltip .tool-y .label{display:flex;align-items:center;font-weight:700}.dual-axis-chart .chart-tooltip .tool-y .tool-color-block{display:inline-block;height:15px;width:15px;margin-right:5px}.dual-axis-chart .bar-popup{position:absolute}.dual-axis-chart .bar-popup.top{top:1em}.dual-axis-chart .bar-popup.bottom{bottom:1em}.dual-axis-chart .bar-popup.left{left:1em}.dual-axis-chart .bar-popup.right{right:1em}.dual-axis-chart .bar-popup,.dual-axis-chart rect.bar:hover{transition:opacity .5s}.dual-axis-chart rect.bar.positive{fill:#499ca0}.dual-axis-chart rect.bar.negative{fill:#844991}.dual-axis-chart path.line{stroke:#289aef;stroke-width:2px}.dual-axis-chart .axis{font-size:.9em}.dual-axis-chart .axis line,.dual-axis-chart .axis path{fill:none;stroke:hsla(0,0%,100%,0);shape-rendering:crispEdges;stroke-width:1.5px;stroke-dasharray:9,7}.dual-axis-chart line.y-grid{fill:none;stroke:#dcddde;shape-rendering:crispEdges;stroke-width:1.5px;stroke-dasharray:2,4}.dual-axis-chart line.y-grid.zero-line{stroke:#b3b3b3;stroke-dasharray:0}.dual-axis-chart .x.axis.trim .tick:nth-child(2n){opacity:0!important}@media only screen and (max-width:767px){.dual-axis-chart .x.axis .tick text{transform:rotate(-45deg);font-size:.65em}}.sunburst__chart{font-family:Lato,Sans-serif;font-size:11px;position:relative}.sunburst__chart .section{stroke:hsla(0,0%,100%,.1)}.sunburst__chart .section:hover{opacity:.9;cursor:pointer}.sunburst__chart .hidden-arc{fill:none}.sunburst__chart text{pointer-events:none;dominant-baseline:middle;text-anchor:middle;fill:#fff}.sunburst__chart .sunburst-tooltip{min-width:200px;position:absolute;top:-9999px;left:-9999px;z-index:10;border:1px solid #57677f;border-radius:5px;display:none;background-color:#fff;padding:3px 5px;box-shadow:5px 5px 7px rgba(0,0,0,.1)}.sunburst__chart .sunburst-tooltip .title{font-weight:700;font-size:1.3em}.sunburst__chart .sunburst-tooltip .click-note{font-style:italic;font-size:.9em;text-align:center}#cs-media-options{min-height:500px;position:relative}#cs-technicals{background-color:#333}#cs-technicals-menu{margin:0;border-radius:0}#cs-technicals-menu .cs-display .dropdown{line-height:.9em}#cs-technicals-labels{margin:0;border-radius:0;background:#333;font-size:.9em}#cs-technicals-labels .item{padding:.5em;min-width:50px}#cs-technicals-labels .item[data-value=date]{min-width:74px}#cs-technicals-labels .item[data-value=volume]{min-width:80px}#cs-technicals-labels .item.time[data-value=date]{min-width:124px}#cs-technicals-labels .item .icon.close{margin:0 0 0 1em;cursor:pointer}#cs-technicals-labels .item .icon.close:hover{color:#fff}#cs-technicals-labels .ui.statistic{margin-bottom:0}#cs-technicals-labels .ui.statistic .label{font-size:.65em;line-height:1.5em}#cs-technicals-labels .ui.statistic .value{font-size:1em}#cs-technicals-chart{min-height:500px;padding:0}#cs-technicals .ui.fixed.sticky+.ui.container{margin-top:82px}.ui.fixed.sticky #cs-technicals-labels{box-shadow:0 2px 6px #000}.cs-chart-technicals text.version{fill:#555;font:8px sans-serif}.cs-chart-technicals .axis line,.cs-chart-technicals .axis path{fill:none;stroke:#bbb;shape-rendering:crispEdges}.cs-chart-technicals text{fill:#ddd}.cs-chart-technicals path{fill:none;stroke-width:1}.cs-chart-technicals .close path{stroke:#f6f6f6;stroke-width:1}.cs-chart-technicals path.candle{stroke:#000}.cs-chart-technicals path.candle.body{stroke-width:0}.cs-chart-technicals path.candle{fill:#777;stroke:#777}.cs-chart-technicals path.candle.up{fill:#0a0;stroke:#0a0}.cs-chart-technicals path.candle.down{fill:red;stroke:red}.cs-chart-technicals path.ohlc{stroke:#000;stroke-width:1}.cs-chart-technicals path.ohlc.up{stroke:#0a0}.cs-chart-technicals path.ohlc.down{stroke:red}.cs-chart-technicals .closeValue.annotation.up path{fill:#0a0}.cs-chart-technicals path.volume.up{fill:#4fc301}.cs-chart-technicals path.volume.down{fill:#ef2a2a}.cs-chart-technicals .indicator path.line{fill:none;stroke-width:1.5}.cs-chart-technicals button{position:absolute;right:110px;top:25px}.cs-chart-technicals path.macd{stroke:#aec7e8}.cs-chart-technicals path.signal{stroke:#f99}.cs-chart-technicals path.zero{stroke:#bbb;stroke-dasharray:0;stroke-opacity:.5}.cs-chart-technicals path.difference{fill:#777}.cs-chart-technicals path.rsi{stroke:#aec7e8}.cs-chart-technicals path.overbought,.cs-chart-technicals path.oversold{stroke:#f99;stroke-dasharray:5,5}.cs-chart-technicals path.middle,.cs-chart-technicals path.zero{stroke:#bbb;stroke-dasharray:5,5}.cs-chart-technicals .analysis circle,.cs-chart-technicals .analysis path{stroke:#ff0;stroke-width:.7}.cs-chart-technicals .interaction circle,.cs-chart-technicals .interaction path{pointer-events:all}.cs-chart-technicals .interaction .body{cursor:move}.cs-chart-technicals .trendlines .interaction .end,.cs-chart-technicals .trendlines .interaction .start{cursor:nwse-resize}.cs-chart-technicals .trendline circle{stroke-width:0;display:none}.cs-chart-technicals .mouseover .trendline path{stroke-width:1}.cs-chart-technicals .mouseover .trendline circle{stroke-width:1;fill:#ff0;display:inline}.cs-chart-technicals .supstance path{stroke-dasharray:2,2}.cs-chart-technicals .supstances .interaction path{pointer-events:all;cursor:ns-resize}.cs-chart-technicals .supstances .axisannotation{display:none}.cs-chart-technicals .supstances .mouseover .axisannotation{display:inline}.cs-chart-technicals .supstances .axisannotation path{fill:#806517;stroke:none}.cs-chart-technicals .mouseover .supstance path{stroke-width:1.5}.cs-chart-technicals .crosshair{cursor:crosshair}.cs-chart-technicals .crosshair path.wire{stroke:#555;stroke-dasharray:1,1}.cs-chart-technicals .crosshair .axisannotation path{fill:#777}.cs-chart-technicals .crosshair .axisannotation text{font-size:11px}.cs-chart-technicals .x-grid,.cs-chart-technicals .y-grid{stroke:#636363;stroke-width:.5px;opacity:1}
/*!
 * Stylesheet for the Date Range Picker, for use with Semantic UI
 *
 * Copyright 2013-2015 Dan Grossman ( http://www.dangrossman.info )
 * Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
 *
 * Built for http://www.improvely.com
 */.daterangepicker.dropdown-menu{max-width:none;display:none;z-index:3000;border:1px solid #ccc;box-shadow:0 0 5px #ccc}.daterangepicker.opensleft .calendar,.daterangepicker.opensleft .ranges{float:left;margin:4px}.daterangepicker.openscenter .calendar,.daterangepicker.openscenter .ranges,.daterangepicker.opensright .calendar,.daterangepicker.opensright .ranges{float:right;margin:4px}.daterangepicker.single .calendar,.daterangepicker.single .ranges{float:none}.daterangepicker .ranges{width:160px;text-align:left}.daterangepicker .ranges .range_inputs>div{float:left}.daterangepicker .ranges .range_inputs>div:nth-child(2){padding-left:11px}.daterangepicker .calendar{display:none;max-width:270px}.daterangepicker.show-calendar .calendar{display:block}.daterangepicker .calendar.single .calendar-date{border:none}.daterangepicker .calendar td,.daterangepicker .calendar th{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;white-space:nowrap;text-align:center;min-width:32px}.daterangepicker .daterangepicker_end_input label,.daterangepicker .daterangepicker_start_input label{color:#333;display:block;font-size:11px;font-weight:400;height:20px;line-height:20px;margin-bottom:2px;text-shadow:#fff 1px 1px 0;text-transform:uppercase;width:74px}.daterangepicker .ranges input{font-size:11px}.daterangepicker .ranges .input-mini{border:1px solid #ccc;border-radius:4px;color:#555;display:block;font-size:11px;height:30px;line-height:30px;vertical-align:middle;margin:0 0 10px;padding:0 6px;width:74px}.daterangepicker .ranges ul{list-style:none;margin:0;padding:0}.daterangepicker .ranges li{font-size:13px;background:#f5f5f5;border:1px solid #f5f5f5;color:#08c;padding:3px 12px;margin-bottom:8px;border-radius:5px;cursor:pointer}.daterangepicker .ranges li.active,.daterangepicker .ranges li:hover{background:#08c;border:1px solid #08c;color:#fff}.daterangepicker .calendar-date{border:1px solid #ddd;padding:4px;border-radius:4px;background:#fff}.daterangepicker .calendar-time{text-align:center;margin:8px auto 0;line-height:30px}.daterangepicker{position:absolute;background:#fff;top:100px;left:20px;padding:4px;margin-top:1px;border-radius:4px}.daterangepicker.opensleft:before{position:absolute;top:-7px;right:9px;display:inline-block;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.2);content:""}.daterangepicker.opensleft:after{position:absolute;top:-6px;right:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:""}.daterangepicker.openscenter:before{top:-7px;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.2)}.daterangepicker.openscenter:after,.daterangepicker.openscenter:before{position:absolute;left:0;right:0;width:0;margin-left:auto;margin-right:auto;display:inline-block;content:""}.daterangepicker.openscenter:after{top:-6px;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}.daterangepicker.opensright:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.2);content:""}.daterangepicker.opensright:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:""}.daterangepicker.dropup{margin-top:-5px}.daterangepicker.dropup:before{top:auto;bottom:-7px;border-bottom:initial;border-top:7px solid #ccc}.daterangepicker.dropup:after{top:auto;bottom:-6px;border-bottom:initial;border-top:6px solid #fff}.daterangepicker table{width:100%;margin:0}.daterangepicker td,.daterangepicker th{text-align:center;width:20px;height:20px;padding:5px;border-radius:4px;cursor:pointer;white-space:nowrap}.daterangepicker option.disabled,.daterangepicker td.disabled,.daterangepicker td.off{color:#999}.daterangepicker td.available:hover,.daterangepicker th.available:hover{background:#eee}.daterangepicker td.in-range{background:#ebf4f8;border-radius:0}.daterangepicker td.start-date{border-radius:4px 0 0 4px}.daterangepicker td.end-date{border-radius:0 4px 4px 0}.daterangepicker td.start-date.end-date{border-radius:4px}.daterangepicker td.active,.daterangepicker td.active:hover{background-color:#357ebd;border-color:#3071a9;color:#fff}.daterangepicker td.week,.daterangepicker th.week{font-size:80%;color:#ccc}.daterangepicker .ui.dropdown.monthselect,.daterangepicker .ui.dropdown.yearselect{font-size:12px;padding:5px;margin:0 5px 0 0;height:auto;cursor:default}.daterangepicker select.monthselect{margin-right:2%;width:auto}.daterangepicker select.yearselect{width:auto}.daterangepicker select.ui.dropdown.ampmselect,.daterangepicker select.ui.dropdown.hourselect,.daterangepicker select.ui.dropdown.minuteselect,.daterangepicker select.ui.dropdown.secondselect{padding:3px;height:2em}.daterangepicker .ui.dropdown.ampmselect,.daterangepicker .ui.dropdown.hourselect,.daterangepicker .ui.dropdown.minuteselect,.daterangepicker .ui.dropdown.secondselect{padding:5px}.daterangepicker .ui.dropdown.ampmselect>.text,.daterangepicker .ui.dropdown.hourselect>.text,.daterangepicker .ui.dropdown.minuteselect>.text,.daterangepicker .ui.dropdown.monthselect>.text,.daterangepicker .ui.dropdown.secondselect>.text,.daterangepicker .ui.dropdown.yearselect>.text{margin-right:1.25em}.daterangepicker .ui.dropdown.ampmselect>.dropdown.icon,.daterangepicker .ui.dropdown.hourselect>.dropdown.icon,.daterangepicker .ui.dropdown.minuteselect>.dropdown.icon,.daterangepicker .ui.dropdown.monthselect>.dropdown.icon,.daterangepicker .ui.dropdown.secondselect>.dropdown.icon,.daterangepicker .ui.dropdown.yearselect>.dropdown.icon{padding:.8em .15em .8em .8em}.daterangepicker_start_input{float:left}.daterangepicker_end_input{float:left;padding-left:11px}.daterangepicker th.month{width:auto;padding:0}.daterangepicker .next .right.arrow.icon,.daterangepicker .prev .left.arrow.icon{margin:0}.cs-dashboard-loader{position:absolute;top:0;left:0;height:100%;background:#fff;z-index:10;width:100%}#cs-recent-research .item .header{font-weight:300;margin-bottom:.3em}@media only screen and (max-width:767px){#cs-recent-research .item .header{font-size:1.25rem;font-weight:700}}@media only screen and (max-width:767px){#cs-recent-research .item .ui.label.tiny:not(.grey){display:none}}#cs-dashboard-news .image{margin-right:1em;height:100px;background-position:50%;background-size:cover}#cs-dashboard-news .content{padding:0;margin:auto}@media only screen and (max-width:767px){#cs-dashboard-news{display:none!important}#cs-dashboard-news img{width:100%!important;max-width:none;max-height:inherit;padding:0}#cs-dashboard-news .content{padding-top:1em}}#cs-dashboard-news-mobile{display:none}#cs-dashboard-news-mobile .content{padding:0;margin:auto}#cs-dashboard-news-mobile .news-image-title{display:flex}#cs-dashboard-news-mobile .news-image-title img{padding-right:1em;max-width:140px;max-height:100px}#cs-dashboard-news-mobile .news-image-title .content{font-size:1.3em;line-height:1.2}#cs-dashboard-news-mobile .news-image-title .content .header{color:#000}#cs-dashboard-news-mobile .news-image-title .content .extra{font-size:.7em}@media only screen and (max-width:767px){#cs-dashboard-news-mobile{display:block!important}}#cs-board-meeting-table,#cs-economy-table,#cs-financial-result-table{overflow-x:scroll;overflow-y:hidden;white-space:nowrap}#cs-dashboard-portfolio-settlement .cs-mobile-chart-labels{display:none;padding:0 .5em}#cs-dashboard-portfolio-settlement .cs-mobile-chart-labels p{margin:0;font-size:.7em;font-style:italic}#cs-dashboard-portfolio-settlement .cs-chart[time="3m"] .x.axis .tick:nth-child(odd) text{fill:hsla(0,0%,100%,0);stroke:hsla(0,0%,100%,0)}#cs-dashboard-portfolio-settlement .ui.popup{background-color:#fff!important}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup{min-width:275px}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item{display:flex;align-items:center;justify-content:center;padding:0}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p{margin:0}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p b{font-weight:700;font-size:1.3em}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p:first-child{text-align:left;width:70%;text-transform:capitalize}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p:last-child{text-align:right;width:30%}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p.red{color:#db2828}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item p.green{color:#21ba45}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item.total p:first-child{font-weight:700}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item.total p:last-child{border-top:1px solid grey;border-bottom:1px solid grey}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup p.date{text-align:center;font-style:italic}@media only screen and (max-width:767px){#cs-dashboard-portfolio-settlement .ui.popup{padding:.2em}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup{min-width:auto}#cs-dashboard-portfolio-settlement .ui.popup .cs-foreign-local-popup .item{font-size:.7em}}#cs-dashboard-portfolio-settlement .ui.pointing.menu .item{font-weight:300;color:#d4d4d5}#cs-dashboard-portfolio-settlement .ui.pointing.menu .item.active{color:#000}#cs-dashboard-portfolio-settlement .ui.tab{position:relative}#cs-dashboard-portfolio-settlement .cs-chart-options{border-top:1px solid #dcdcdc;padding:1em;margin-top:8px}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons{margin-right:25px}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons.mobile{display:none;margin:0}@media only screen and (max-width:767px){#cs-dashboard-portfolio-settlement .cs-chart-options .fourteen.wide.column{padding:0!important;display:flex;align-items:center;justify-content:center}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons.desktop{display:none}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-time-buttons.mobile{display:block;flex:auto}#cs-dashboard-portfolio-settlement .cs-chart-options .ui.button{padding:.5em}#cs-dashboard-portfolio-settlement .cs-chart-options .cs-client-type-buttons{flex:auto}#cs-dashboard-portfolio-settlement .cs-chart-options .ui.dropdown{width:100%;margin-top:1em}#cs-dashboard-portfolio-settlement .cs-chart-options .two.wide.column{padding:0!important}#cs-dashboard-portfolio-settlement .cs-chart-options .two.wide.column .ui.label{margin-top:1em}}@media only screen and (max-width:767px){#cs-dashboard-portfolio-settlement .cs-portfolio-settlement-menu{margin:0}#cs-dashboard-portfolio-settlement .cs-portfolio-settlement-menu .item{padding:.5em;max-width:100px;font-size:.8em}#cs-dashboard-portfolio-settlement .cs-mobile-chart-labels{display:flex;align-items:center;justify-content:space-between}#cs-dashboard-portfolio-settlement .cs__port__chart{overflow-x:scroll}#cs-dashboard-portfolio-settlement .cs-chart[time=one-day][type=local] .x.axis .tick:nth-child(odd) text{fill:hsla(0,0%,100%,0);stroke:hsla(0,0%,100%,0)}}#cs-dashboard-portfolio-settlement .dark{background:#000}#cs-dashboard-portfolio-settlement .dark text{fill:#fff}#cs-dashboard-portfolio-settlement .dark circle{fill:#ff0}#cs-dashboard-portfolio-settlement .dark .line{stroke:#90ccff}#cs-dashboard-settlement .bar{fill:#c0e2ff!important}#cs-dashboard-settlement .sub-bar{fill:#6ea4d2!important}#cs-dashboard-settlement .line{stroke:#ff7600!important}#cs-dashboard-foreign-local .cs-header{display:flex;align-items:center;justify-content:flex-end}#cs-dashboard-foreign-local .cs-header .ui.header{flex:auto}#cs-dashboard-foreign-local .cs-type-buttons{position:absolute;top:-65px}#cs-dashboard-foreign-local .ui.header{margin-top:0}#cs-dashboard-foreign-local .ui.segment{position:relative;height:100%}#cs-dashboard-foreign-local .zero-line{stroke:#d73027;stroke-width:3px;stroke-dasharray:15}@media only screen and (max-width:767px){#cs-dashboard-foreign-local .cs-type-buttons{top:-40px}#cs-dashboard-foreign-local .ui.segment{padding:1em .3em}#cs-dashboard-foreign-local .cs-header{margin-bottom:1em;padding:0 .5em}#cs-dashboard-foreign-local .cs-header .ui.button{padding:.5em}#cs-dashboard-foreign-local .cs-header .ui.header{font-size:1.5em;margin:0}}#cs-dashboard #cs-dashboard-time-stamp{position:absolute;right:1.5em;top:1.5em;display:flex;justify-content:flex-end}#cs-dashboard #cs-dashboard-time-stamp .indices__status{padding:0;font-size:1.5em}#cs-dashboard .ui.segment{box-shadow:7px 10px 20px 0 rgba(46,61,73,.15)}#cs-dashboard .ui.table td{padding:.5em 0}#cs-dashboard .cs-dashboard-tables{overflow-x:scroll;overflow-y:hidden;position:relative;min-height:85px}#cs-dashboard .cs-dashboard-tables .ui.table{background-color:#fff}#cs-dashboard .cs-dashboard-tables .ui.table th{background:grey;color:#fff;padding:1em 0}#cs-dashboard .cs-dashboard-tables .ui.table tr td:first-child{background-color:rgba(44,106,158,.06)}#cs-dashboard .cs-dashboard-tables .ui.table tr td:nth-child(2){color:#cc9e1c;background:rgba(204,158,28,.09)}#cs-dashboard .cs-dashboard-tables .ui.table tr td:nth-child(3){color:#21ba47;background-color:rgba(33,186,71,.05)}#cs-dashboard .cs-dashboard-tables .ui.table tr td:nth-child(4){color:#000;background-color:rgba(0,0,0,.08)}#cs-dashboard .column{padding:0 .5em}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile{margin-top:2em!important;display:none!important}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile .sixteen.wide.column{padding:0 1em!important}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile{margin-bottom:3em!important}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile .ui.statistic{margin-bottom:1em}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile .ui.statistic .label,#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile #cs-dashboard-summary-stats-mobile .ui.statistic .value{font-weight:300}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile .cs-range{height:55px}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile .title{display:flex;height:35px;align-items:center;font-size:.8em}#cs-dashboard #cs-dashboard-market-summary .ui.header{margin-top:0;font-weight:300}#cs-dashboard #cs-dashboard-market-summary .ui.segment{position:relative;height:100%}#cs-dashboard #cs-dashboard-market-summary .ui.grid.padded.stackable{padding-top:.5em}#cs-dashboard #cs-dashboard-market-summary .ui.secondary.menu{margin:0}#cs-dashboard #cs-dashboard-market-summary .cs-range{height:65px}#cs-dashboard #cs-dashboard-market-summary .cs-range h5{text-align:center;font-size:1.5em;font-weight:300}#cs-dashboard #cs-dashboard-market-summary .cs-range .high,#cs-dashboard #cs-dashboard-market-summary .cs-range .low{font-size:1em;font-weight:300}@media only screen and (max-width:767px){#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group{display:none}#cs-dashboard #cs-dashboard-market-summary .cs-stats-range-group.mobile{display:block!important}#cs-dashboard #cs-dashboard-market-summary .ui.header{font-size:1.5em}#cs-dashboard #cs-dashboard-market-summary .ui.grid.padded.stackable,#cs-dashboard #cs-dashboard-market-summary .ui.grid.padded.stackable .column{padding-top:0}}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table{width:100%}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table td{padding-top:0;padding-bottom:1em;border:none}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table td .label{font-weight:300}@media only screen and (max-width:767px){#cs-dashboard #cs-dashboard-summary-stats .ui.grid.padded.stackable{padding:0}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table{text-align:center}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table .statistic{width:100%;margin-left:0}#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table .statistic .label,#cs-dashboard #cs-dashboard-summary-stats .ui.very.basic.collapsing.table .statistic .value{text-align:center;font-weight:300}}#cs-dashboard #cs-dashboard-summary-chart{padding:0;box-shadow:none;height:auto!important;margin:1em 0}#cs-dashboard #cs-dashboard-summary-chart .line{stroke-width:1px}#cs-dashboard .cs-dashboard-summary-options.cs-summary-desktop{border-top:1px solid #dcdcdc;padding:1em .4em;margin-top:-3px}#cs-dashboard .cs-dashboard-summary-options.cs-summary-desktop .ui.secondary.menu .item{padding:.5em;margin:0 .1em}@media only screen and (max-width:767px){#cs-dashboard .cs-dashboard-summary-options.cs-summary-desktop{display:none}}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile{display:none}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile .ui.secondary.menu .item:first-child{margin-left:0!important}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile .ui.secondary.menu .item:last-child{margin-right:0!important}@media only screen and (max-width:767px){#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile{display:block}}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-indices{margin-top:0}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-time-opts{border-top:1px solid #dcdcdc;padding:.5em 0 0;margin-top:1em;margin-bottom:1em;border-bottom:1px solid #dcdcdc}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-time-opts .sixteen.wide.column{padding-bottom:.5em!important}#cs-dashboard .cs-dashboard-summary-options.cs-summary-mobile.cs-time-opts .ui.menu .item{padding:.5em}#cs-dashboard #cs-dashboard-performers .ui.basic.tab{overflow-x:scroll;overflow-y:hidden;white-space:nowrap}#cs-dashboard #cs-dashboard-performers .cs-loader{height:100%;z-index:5}#cs-dashboard #cs-dashboard-performers .cs-chart{margin-top:3.2em}@media only screen and (max-width:767px){#cs-dashboard #cs-dashboard-performers{height:auto}}@media only screen and (max-width:767px){#cs-dashboard{margin-top:1em!important}#cs-dashboard .cs-chart-timeseries.light .x-grid,#cs-dashboard .cs-chart-timeseries.light .y-grid{stroke:hsla(0,0%,85.9%,.42)}#cs-dashboard .column{padding-top:0!important}#cs-dashboard #cs-dashboard-time-stamp{margin:0;position:static;padding:0}}#cs-dashbard-analyst-opinion{margin-bottom:1em}#cs-recent-research .ui.list{overflow-y:scroll;overflow-x:hidden;padding:0 .5rem;max-height:542.5px;max-height:38.75rem}#cs-dashboard-research-tabs .hidden{display:none;width:0;overflow:hidden;padding:0}#cs-top-stocks{box-shadow:none;margin-bottom:1em;border-bottom:1px solid #dcdcdc;padding-bottom:1em}#cs-top-stocks .ui.grid{margin:0}#cs-top-stocks .ui.header{margin-bottom:.3em;font-size:1.5em}#cs-top-stocks .ui.header span{font-size:.5em}#cs-top-stocks .ui.header,#cs-top-stocks p{line-height:1}#cs-top-stocks p{color:#989898}#cs-top-stocks .list .list-item{display:flex;justify-content:space-between;align-items:center;box-shadow:0 0 1px grey;border-radius:5px;overflow:hidden;margin-bottom:.7em;background:#fff}#cs-top-stocks .list .list-item .value{font-size:1.3em;color:#fff;padding:.7em 0;background:grey;flex:0 0 86px;display:flex;align-items:center;justify-content:center}#cs-top-stocks .list .list-item .details{flex:auto;display:flex;align-items:center;justify-content:space-between;padding:0 .5em}#cs-top-stocks .list .list-item .details .close{text-align:right}#cs-top-stocks .list .list-item .details .symbol{color:#989898;font-size:1.15em;font-weight:700}#cs-top-stocks .list .list-item .details .change.red{color:red}#cs-top-stocks .list .list-item .details .change.green{color:#67cc38}#cs-top-stocks .column.di{padding-left:0}#cs-top-stocks .column.di .ui.header{color:#84786d}#cs-top-stocks .column.di .list .list-item .value{background:#84786d}#cs-top-stocks .column.per .ui.header{color:#b39430}#cs-top-stocks .column.per .list .list-item .value{background:#b39430}#cs-top-stocks .column.pr .ui.header{color:#14615f}#cs-top-stocks .column.pr .list .list-item .value{background:#14615f}#cs-top-stocks .column.vt{padding-right:0}#cs-top-stocks .column.vt .ui.header{color:#3f7fa6}#cs-top-stocks .column.vt .list .list-item .value{background:#3f7fa6}#cs-top-stocks .list .list-item:last-child{margin-bottom:0}@media only screen and (max-width:767px){#cs-top-stocks{margin-top:1em}#cs-top-stocks .column{margin-bottom:2em}}.cs-top-stocks-nav{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}.cs-top-stocks-nav .note{font-style:italic;font-size:.8em;color:grey;line-height:1}@media only screen and (max-width:767px){.cs-top-stocks-nav .note{margin-top:1em}.cs-top-stocks-nav #cs-stock-indices{width:100%}.cs-top-stocks-nav #cs-stock-indices .ui.button{flex:auto;padding:1em .5em}}.update__product__modal .header{text-align:center}.update__product__modal .content img{width:100%;border-radius:15px;margin:1em 0}.update__product__modal h3{display:flex;align-items:center;justify-content:space-between}@media only screen and (max-width:767px){.update__product__modal h3{flex-direction:column}.update__product__modal h3 .ui.button{margin-top:1em}}.stk__advert .ui.button{border-radius:8px;max-width:193.375px;max-width:13.8125rem;width:100%;padding:1rem;font-size:16.625px;font-size:1.1875rem;font-weight:500;text-transform:capitalize;line-height:17.5px;line-height:1.25rem}.stk__advert .ui.button.primary{background:linear-gradient(0deg,#264ce0,#264ce0),#0e5dbe}.stk__advert .ui.button.green{background:#3cc062}.stk__advert .ui.button:hover{opacity:.9}.stk__advert__widget{position:relative;padding:2.5rem 1.25rem}.stk__advert__widget .bg-1{position:absolute;background:linear-gradient(180deg,#09131c,#0c1823),linear-gradient(180deg,#f6f6f6,#fff);width:100%;height:100%;left:0;top:0;z-index:2;border-radius:2px}.stk__advert__widget .bg-2{z-index:1;position:absolute;background:linear-gradient(78.6deg,#3acdd9 8.47%,#264cdf 38.24%,#20ced9 73.88%,#3dc162 95.08%);border-radius:2px;width:calc(100% + 8px);height:calc(100% + 8px);left:-4px;top:-4px}.stk__advert__widget .bg-3{z-index:3;width:389px;height:196px;left:34px;top:164px;position:absolute;background:linear-gradient(0deg,rgba(0,0,0,.41),rgba(0,0,0,.41)),conic-gradient(from 180deg at 50% 50%,#20d0da 47deg,#264ce0 150deg,#3ec45f 297deg,#175cb9 1turn);box-shadow:400px 400px 400px;border-radius:9999px;filter:blur(200px)}.stk__advert__widget .content{position:relative;z-index:4;width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:21px;gap:1.5rem;text-align:center;flex-direction:column}.stk__advert__widget .heading{color:#fff;font-size:26.25px;font-size:1.875rem;line-height:35px;line-height:2.5rem;font-weight:700}.stk__advert__widget .sub-heading{color:#e0e9f2;font-size:14px;font-size:1rem;font-weight:400}.stk__advert__overlay{overflow:hidden;position:fixed;width:100%;z-index:11;bottom:0;left:0;padding:3.3rem 2.5rem;background:linear-gradient(180deg,#09131c,#0c1823),linear-gradient(180deg,#f6f6f6,#fff)}@media only screen and (max-width:767px){.stk__advert__overlay{display:none}}.stk__advert__overlay .content{display:grid;grid-template-columns:1fr 1fr;gap:21px;gap:1.5rem}.stk__advert__overlay .content__left{display:flex;align-items:flex-start;flex-direction:column;gap:21px;gap:1.5rem}.stk__advert__overlay .content__right{position:relative;display:flex;align-items:flex-end;justify-content:flex-end;padding-bottom:2rem;gap:15.75px;gap:1.125rem}.stk__advert__overlay .content__right:after{content:"";position:absolute;width:100%;height:100%;right:-60px;bottom:-30px;background:#000;box-shadow:400px 400px 400px;border-radius:9999px;filter:blur(100px);z-index:-1}.stk__advert__overlay .heading{color:#20ceda;background:linear-gradient(88.5deg,#20ceda .87%,#264edd 34.06%,#3dc260 66.74%,#175cb9 98.91%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:39.375px;font-size:2.8125rem;line-height:39.375px;line-height:2.8125rem;font-weight:700;word-wrap:break-word}.stk__advert__overlay .sub-heading{color:#e0e9f2;font-size:18.375px;font-size:1.3125rem;font-weight:400;line-height:25.375px;line-height:1.8125rem;word-wrap:break-word}.stk__advert__overlay .bg-view{border-top-left-radius:9px;border-top-right-radius:9px;border-left:4px solid #3acdd9;border-top:4px solid #3acdd9;border-right:4px solid #3acdd9;position:absolute;width:45%;top:84px;top:6rem;right:56px;right:4rem;z-index:-1}.stk__advert__overlay .ui.button.close{color:#505c7c!important;position:absolute;top:21px;top:1.5rem;right:21px;right:1.5rem;width:39.813px;width:2.8438rem;height:39.813px;height:2.8438rem;display:flex;align-items:center;justify-content:center;border:none!important;box-shadow:none!important}.ui.modal .close.icon{color:#d4d4d5!important}.ui.list a.item{cursor:default;padding:.5em;position:relative}.ui.list a.item .content{padding:0 1em 0 .5em}.ui.list a.item .header{font-weight:300;margin-bottom:.3em;padding-right:1em}.ui.list a.item .header:hover{color:#2c6aa0}.ui.list a.item .header,.ui.list a.item .label{cursor:pointer}.ui.list a.item .label:hover{opacity:.8}#cs-clientres .cs-embed{width:100%}@media only screen and (max-width:767px){#cs-clientres .cs-embed{overflow:scroll;height:500px;-webkit-overflow-scrolling:touch}}#cs-clientres .cs-research-preview{padding-top:0}@media only screen and (max-width:767px){#cs-clientres .cs-research-preview{height:auto;display:none}}#cs-clientres .cs-editor-segment{display:none}#cs-clientres .cs-editor-segment .cs-editor-note{display:flex;flex-direction:column;justify-content:center;align-items:center;height:80vh;text-align:center}#cs-clientres .cs-editor-segment .cs-editor-note h1{font-weight:100;font-size:3em}#cs-clientres .cs-editor-segment .cs-editor-note p{font-size:1.5em;font-weight:300;color:grey}#cs-clientres .cs-no-research{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}#cs-clientres .cs-no-research h1{font-weight:100;font-size:3em}#cs-clientres .cs-no-research.hide{display:none}#cs-clientres iframe{border:none}#cs-clientres .ui.accordion .title{font-size:1.5em;font-weight:300}#cs-clientres .ui.icon.buttons .ui.popup{padding:.5em;text-align:center}#cs-clientres .ui.accordion>.content{max-height:245px;overflow:scroll;background:hsla(0,0%,48.6%,.8);padding:.5em .5em 1.5em}.ui.modal i.close.icon{color:#fff;top:-2em;right:-1.5em}#cs-research-archive-modal .ui.list{max-height:450px;overflow:scroll}#cs-analyst-profile-modal .item{padding:3em}#cs-analyst-profile-modal .item .header{font-size:2em}#cs-analyst-profile-modal .item .ui.table tr td:first-child{font-weight:300}#cs-analyst-profile-modal .item .ui.table td{border:0}@media only screen and (max-width:767px){#cs-analyst-profile-modal .content{padding:0!important}#cs-analyst-profile-modal .content .item{padding:.5em!important}#cs-analyst-profile-modal .content .item .ui.image{max-width:120px!important;max-height:120px!important}#cs-analyst-profile-modal .content .item .header{float:none;text-align:center;display:block;font-size:1.5em}#cs-analyst-profile-modal .content .item #cs-edit-analyst-btn{float:none;width:100%;margin:1em 0}#cs-analyst-profile-modal .content .item .ui.table{margin:0}#cs-analyst-profile-modal .content .item .ui.table tr{padding:0 0 .5em}}#cs-report-name{margin:.5em 0;font-weight:300;display:inline-table;width:100%}#cs-upload-modal .dropzone{border:2px dashed #0087fe;font-size:2em;margin-top:1em}#cs-upload-modal .dropzone .dz-message{font-weight:300}#cs-upload-modal .dropzone .dz-filename{margin-top:3.5em}#cs-upload-modal .dropzone .dz-details{padding:1em}#cs-upload-modal .dropzone .dz-progress{top:40%}#cs-upload-modal .ui.toggle.checkbox .box:before,#cs-upload-modal .ui.toggle.checkbox label:before{background:#21ba45!important}#cs-upload-modal .ui.toggle.checkbox input:checked~.box:before,#cs-upload-modal .ui.toggle.checkbox input:checked~label:before,#cs-upload-modal .ui.toggle.checkbox input:focus:checked~.box:before,#cs-upload-modal .ui.toggle.checkbox input:focus:checked~label:before{background:#db2828!important}.cs-tag-generator{padding:.5em;border:1px solid rgba(34,36,38,.15)}.cs-tag-generator input{font-size:.9em!important;min-width:230px;display:inline-block;border:0!important;width:auto!important}.cs-tag-generator .tag-group{display:inline-block}#cs-edit-category-modal .ui.dividing.header{margin:1rem 0!important}#cs-edit-category-forms{max-height:370px;overflow:scroll;background:hsla(0,0%,50.2%,.11);padding:1em;box-shadow:inset 0 0 11px #a29e9e}#cs-add-category-btn{margin:1em 0 0}#cs-add-category-forms{padding:1em}#cs-manage-analyst-modal{width:400px}#cs-search-research-modal .ui.list{max-height:40vh;overflow-y:scroll}#cs-search-research-modal .content{min-height:415px}@media only screen and (max-width:767px){#cs-search-research-modal .ui.form .fifteen.wide.field{width:calc(100% - 70px)!important}#cs-search-research-modal .ui.form .one.wide.field{width:55px!important}}#cs-add-exp-modal .ui.form .ui.header{display:none;margin:0 0 1em;background:hsla(0,0%,82.7%,.49);padding:.7em;font-weight:300}.cs-opinion-modals:not(.cs-add-opinion):not(#cs-delete-opinion-modal):not(.cs-edit-opinion){width:500px!important}.cs-opinion-modals .ui.message{display:none}.cs-opinion-modals .actions .cs-skip-modal{background-color:hsla(0,0%,100%,0);margin:0}.cs-opinion-modals .ui.dropdown{min-width:100%}.cr__headRow{display:flex;align-items:center;justify-content:space-between}.cr__advSearch{background-color:#e9f2fa!important;box-shadow:inset 0 0 0 1px #2185d0,0 0 0 0 transparent!important}.cr__advSearch .ui.dividing.header{border-color:#2185d0}#cs-search-result{max-height:40vh;min-height:20vh;overflow:hidden;overflow-y:scroll;padding:0}@media only screen and (max-width:767px){#cs-search-result{overflow-x:scroll}}#cs-search-result table th i.sort{cursor:pointer;text-align:right;margin-right:0}#cs-search-result table th:not(.no-sort):after{width:14px!important;display:inline-block!important;content:"\f0dc"!important}#cs-search-result table th.ascending:after{content:"\f0d8"!important}#cs-search-result table th.descending:after{content:"\f0d7"!important}#cs-category-accordion .item__controls{display:flex;align-items:center;justify-content:center;position:absolute;top:7px;top:.5rem;right:7px;right:.5rem}#cs-category-accordion .item__controls>i{color:#fff}#cs-category-accordion .item__controls>i.close:hover{color:#db2828}#cs-category-accordion .item__controls>i.pencil:hover{color:#0087fe}@-webkit-keyframes passing-through{0%{opacity:0;transform:translateY(40px)}30%,70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}@keyframes passing-through{0%{opacity:0;transform:translateY(40px)}30%,70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}@-webkit-keyframes slide-in{0%{opacity:0;transform:translateY(40px)}30%{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translateY(40px)}30%{opacity:1;transform:translateY(0)}}@-webkit-keyframes pulse{0%{transform:scale(1)}10%{transform:scale(1.1)}20%{transform:scale(1)}}.dropzone,.dropzone *{box-sizing:border-box}.dropzone{min-height:150px;border:2px solid rgba(0,0,0,.3);background:#fff;padding:20px}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message *{cursor:pointer}.dropzone.dz-started .dz-message{display:none}.dropzone.dz-drag-hover{border-style:solid}.dropzone.dz-drag-hover .dz-message{opacity:.5}.dropzone .dz-message{text-align:center;margin:2em 0}.dropzone .dz-preview{position:relative;display:inline-block;vertical-align:top;margin:16px;min-height:100px}.dropzone .dz-preview:hover{z-index:1000}.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:20px;background:#999;background:linear-gradient(180deg,#eee,#ddd)}.dropzone .dz-preview.dz-file-preview .dz-details{opacity:1}.dropzone .dz-preview.dz-image-preview{background:#fff}.dropzone .dz-preview.dz-image-preview .dz-details{transition:opacity .2s linear}.dropzone .dz-preview .dz-remove{font-size:14px;text-align:center;display:block;cursor:pointer;border:none}.dropzone .dz-preview .dz-remove:hover{text-decoration:underline}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview .dz-details{z-index:20;position:absolute;top:0;left:0;opacity:0;font-size:13px;min-width:100%;max-width:100%;padding:2em 1em;text-align:center;color:rgba(0,0,0,.9);line-height:150%}.dropzone .dz-preview .dz-details .dz-size{margin-bottom:1em;font-size:16px}.dropzone .dz-preview .dz-details .dz-filename{white-space:nowrap}.dropzone .dz-preview .dz-details .dz-filename:hover span{border:1px solid hsla(0,0%,78.4%,.8);background-color:hsla(0,0%,100%,.8)}.dropzone .dz-preview .dz-details .dz-filename:not(:hover){overflow:hidden;text-overflow:ellipsis}.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span{border:1px solid transparent}.dropzone .dz-preview .dz-details .dz-filename span,.dropzone .dz-preview .dz-details .dz-size span{background-color:hsla(0,0%,100%,.4);padding:0 .4em;border-radius:3px}.dropzone .dz-preview:hover .dz-image img{transform:scale(1.05);filter:blur(8px)}.dropzone .dz-preview .dz-image{border-radius:20px;overflow:hidden;width:120px;height:120px;position:relative;display:block;z-index:10}.dropzone .dz-preview .dz-image img{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{-webkit-animation:passing-through 3s cubic-bezier(.77,0,.175,1);animation:passing-through 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview.dz-error .dz-error-mark{opacity:1;-webkit-animation:slide-in 3s cubic-bezier(.77,0,.175,1);animation:slide-in 3s cubic-bezier(.77,0,.175,1)}.dropzone .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark{pointer-events:none;opacity:0;z-index:500;position:absolute;display:block;top:50%;left:50%;margin-left:-27px;margin-top:-27px}.dropzone .dz-preview .dz-error-mark svg,.dropzone .dz-preview .dz-success-mark svg{display:block;width:54px;height:54px}.dropzone .dz-preview.dz-processing .dz-progress{opacity:1;transition:all .2s linear}.dropzone .dz-preview.dz-complete .dz-progress{opacity:0;transition:opacity .4s ease-in}.dropzone .dz-preview:not(.dz-processing) .dz-progress{-webkit-animation:pulse 6s ease infinite;animation:pulse 6s ease infinite}.dropzone .dz-preview .dz-progress{opacity:1;z-index:1000;pointer-events:none;position:absolute;height:16px;left:50%;top:50%;margin-top:-8px;width:80px;margin-left:-40px;background:hsla(0,0%,100%,.9);-webkit-transform:scale(1);border-radius:8px;overflow:hidden}.dropzone .dz-preview .dz-progress .dz-upload{background:#333;background:linear-gradient(180deg,#666,#444);position:absolute;top:0;left:0;bottom:0;width:0;transition:width .3s ease-in-out}.dropzone .dz-preview.dz-error .dz-error-message{display:block}.dropzone .dz-preview.dz-error:hover .dz-error-message{opacity:1;pointer-events:auto}.dropzone .dz-preview .dz-error-message{pointer-events:none;z-index:1000;position:absolute;display:block;display:none;opacity:0;transition:opacity .3s ease;border-radius:8px;font-size:13px;top:130px;left:-10px;width:140px;background:#be2626;background:linear-gradient(180deg,#be2626,#a92222);padding:.5em 1.2em;color:#fff}.dropzone .dz-preview .dz-error-message:after{content:"";position:absolute;top:-6px;left:64px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #be2626}#cs-pivot-points .ui.segment{min-height:650px}#cs-pivot-points .ui.header.dividing{border-color:#e2e2e2;padding-bottom:.3em}#cs-pivot-points .cs-pivot-tabs{margin:0}#cs-pivot-points .cs-support-resistance h5.head{visibility:hidden;height:0;margin-bottom:5px}#cs-pivot-points .cs-support-resistance .sr-bar .value{display:none}#cs-pivot-points .cs-support-resistance .point{top:-3.5px}#cs-pivot-points .ui.tab[data-tab=stocks]{position:relative}#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.index-filter{position:absolute;top:14px;right:220px}@media only screen and (max-width:700px){#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.index-filter{position:-webkit-sticky;position:sticky;width:100%;margin:1em 0}}#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.paging-type{position:absolute;top:14px;right:425px}@media only screen and (max-width:700px){#cs-pivot-points .ui.tab[data-tab=stocks] .ui.dropdown.paging-type{position:-webkit-sticky;position:sticky;width:100%;margin:1em 0}}#cs-pivot-points .cs-table thead th:first-child .ui.input{width:200px!important}@media only screen and (max-width:700px){#cs-pivot-points .cs-table thead th:first-child{text-align:left!important}#cs-pivot-points .cs-table thead th:first-child .ui.input{width:calc(100vw - 3.5em)!important}}#cs-historical-data .generate-excel{flex:auto;text-align:right;display:flex;align-items:flex-end;justify-content:flex-end}#cs-historical-data .cs-hd-table{display:none}#cs-historical-data .cs-hd-table>.ui.header{margin:0;background-color:#3175a7}#cs-historical-data .cs-table .ui.icon.input{width:auto!important}#cs-historical-data .cs-table table tbody tr td:first-child,#cs-historical-data .cs-table table tbody tr th:not(.aligned):first-child,#cs-historical-data .cs-table table thead tr td:first-child,#cs-historical-data .cs-table table thead tr th:not(.aligned):first-child{text-align:left}#cs-historical-data .cs-table table tbody tr td,#cs-historical-data .cs-table table tbody tr th:not(.aligned),#cs-historical-data .cs-table table thead tr td,#cs-historical-data .cs-table table thead tr th:not(.aligned){text-align:center}#cs-historical-data .cs-table table tbody tr .positive,#cs-historical-data .cs-table table thead tr .positive{color:green!important;background:none!important}#cs-historical-data .cs-table table tbody tr .negative,#cs-historical-data .cs-table table thead tr .negative{color:red!important;background:none!important}#cs-historical-data .ui.tab[data-tab=historical-data] .cs-table table{table-layout:fixed}#cs-historical-data .ui.tab[data-tab=historical-data] .cs-table table thead tr th:first-child,#cs-historical-data .ui.tab[data-tab=historical-data] .cs-table table thead tr th:nth-child(2){width:150px}#cs-insider-page .cs-insider-header{margin:.2em 0 .5em}@media only screen and (max-width:700px){#cs-insider-page .cs-insider-header{text-align:center;margin:.2em auto;font-size:1.2em;max-width:220px}}@media only screen and (max-width:700px){#cs-insider-page .cs-insider-chart-wrapper{padding:.5em}}#cs-insider-paginate{display:inline-flex}#cs-insider-transaction .cs-insider-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1em}#cs-insider-transaction .cs-insider-nav .ui.menu{background-color:#3c92df;margin:0}#cs-insider-transaction .cs-insider-nav .cs-insider-nav-filters{display:flex}#cs-insider-transaction .cs-insider-nav .cs-insider-nav-filters .trend-filters{margin-right:1em}@media only screen and (max-width:700px){#cs-insider-transaction .cs-insider-nav{flex-direction:column}#cs-insider-transaction .cs-insider-nav .ui.menu{width:100%}#cs-insider-transaction .cs-insider-nav .ui.menu .item{flex:1;justify-content:center}#cs-insider-transaction .cs-insider-nav .ui.dropdown{width:100%;margin-bottom:1em}#cs-insider-transaction .cs-insider-nav .cs-insider-nav-filters{flex-direction:column;margin-top:1em;width:100%}}#cs-insider-transaction .ui.accordion{border:1px solid #e2e2e2;font-size:1.2em;max-height:7500px}#cs-insider-transaction .ui.accordion .content.grey,#cs-insider-transaction .ui.accordion .title.grey{background-color:#fbfbfb}#cs-insider-transaction .ui.accordion .insider-trend-wrapper{display:flex;align-items:center;justify-content:space-between}#cs-insider-transaction .ui.accordion .insider-trend-wrapper .top-activity{font-style:italic;font-size:.9em}#cs-insider-transaction .ui.accordion .insider-trend-wrapper .top-activity span{font-weight:300}#cs-insider-transaction .ui.accordion .insider-trend{display:flex;align-items:center}#cs-insider-transaction .ui.accordion .title .ui.popup .content{padding:0}#cs-insider-transaction .ui.accordion .trend{margin-left:.5em}#cs-insider-transaction .ui.accordion .trend i{margin:0}#cs-insider-transaction .ui.accordion .trend .number{font-weight:300}#cs-insider-transaction .ui.accordion .content{display:flex;align-items:flex-start}#cs-insider-transaction .ui.accordion .content .table-wrapper{position:relative;flex:1}#cs-insider-transaction .ui.accordion .content .table-wrapper .static-table{background-color:#fff;max-height:64px;overflow-y:hidden;margin-left:.5em;transition:max-height .25s ease-out}#cs-insider-transaction .ui.accordion .content .table-wrapper table{font-size:.8em;display:table!important;margin:0}#cs-insider-transaction .ui.accordion .content .table-wrapper table thead th{font-size:.8em;padding:.2em .7em;background:#f1f1f1}#cs-insider-transaction .ui.accordion .content .table-wrapper table thead .name{width:25%}#cs-insider-transaction .ui.accordion .content .table-wrapper table tbody .name{text-transform:capitalize}@media only screen and (max-width:700px){#cs-insider-transaction .ui.accordion .content .table-wrapper table .name{width:auto}}@media only screen and (max-width:700px){#cs-insider-transaction .ui.accordion .content .table-wrapper{overflow-x:scroll}#cs-insider-transaction .ui.accordion .content .table-wrapper .static-table{width:1300px}}#cs-insider-transaction .ui.accordion .content .table-wrapper.expand .static-table{max-height:280px;transition:max-height .5s ease-in;overflow-y:scroll}@media only screen and (max-width:700px){#cs-insider-transaction .ui.accordion{max-height:6000px}#cs-insider-transaction .ui.accordion .insider-trend-wrapper{display:block}#cs-insider-transaction .ui.accordion .insider-trend-wrapper .top-activity{text-align:right;font-size:.8em;margin-top:.5em}}#cs-insider-transaction .cs-insider-table{text-align:center}@media only screen and (max-width:700px){#cs-insider-transaction{padding:.5em}#cs-insider-transaction .trend{font-size:.8em}#cs-insider-transaction .cs-insider-table{overflow-x:scroll}#cs-insider-transaction .cs-insider-table table{width:1450px}#cs-insider-transaction .cs-insider-table table .cs-insider-table__messageRow{display:inline-flex}#cs-insider-transaction .cs-insider-table table tbody tr td:first-child{white-space:nowrap}}#announce-calendar{background-color:#e9eaef;margin:0 -1.1em}.announce__filters{display:flex;align-items:flex-end}.announce__search__popup{display:none;height:38px;margin-left:.5em}.announce__search__popup .ui.button{height:100%;margin:0;display:flex;align-items:center;padding:.5em;font-size:.9em}.announce__date__calenderView{display:none;top:-10px;right:0;position:absolute;color:#719abc;border:1px solid;align-items:center;border-radius:5px;padding:3px;cursor:pointer;font-size:.9em}.announce__date__calenderView i{font-size:1.2em;width:15px;height:20px;margin-right:5px}.announce__date__calenderView--show{display:flex}@media only screen and (max-width:700px){.announce__date__calenderView{position:static;width:100%;justify-content:center;margin:1em 0 .5em;padding:.5em}}.announce__date__filters{display:flex;align-items:flex-end;justify-content:flex-end;padding-left:1em;border-left:5px solid #466fc5;margin-left:1em;position:relative}.announce__date__filters .field{display:flex;flex-direction:column;margin-right:.5em}.announce__date__filters .field label{margin-bottom:5px}.announce__date__filters>.field:last-child{margin:0}.announce__date__filters .daterange{width:135px}.announce__date__filters .two.fields{display:flex;align-items:flex-end;margin-right:5px;width:280px}.announce__date__filters .button{margin:0}@media only screen and (max-width:700px){.announce__date__filters{flex-wrap:wrap;border-left:none;padding:5px 0 0;margin:5px 0 0;justify-content:space-between;align-items:flex-end}.announce__date__filters .company__selection{width:100%}.announce__date__filters .field{margin-right:0;margin-bottom:5px;width:100%}.announce__date__filters .field .ui.input{width:100%}.announce__date__filters .two.fields{justify-content:space-between;width:100%}.announce__date__filters .two.fields .field{width:49%}.announce__date__filters .apply{margin-bottom:5px}}.announce__type__filter{margin-left:0!important;margin-bottom:0!important;flex:auto}.announce__type__filter .item{margin:0!important;height:100%;padding:2.5em 1.25em!important;background-color:#f1f1f3!important;color:#7c7c80!important;border-radius:0!important;text-transform:uppercase!important;letter-spacing:1.5px!important;font-size:.75em!important;font-weight:700!important}.announce__type__filter .item.active{background-color:#2b6a9e!important;color:#fff!important}.announce__calendar{display:flex}.announce__calendarControls{font-size:4em;font-weight:700;color:#5383b2;cursor:pointer;background-color:#fff;display:flex;align-items:center;justify-content:center;border-radius:7px;box-shadow:1px 1px 5px #e8e8e8;transition:all .5s}.announce__calendarControls:hover{background-color:#eef7ff}.announce__calendarControls--disabled{opacity:.5;cursor:not-allowed}.announce__calendarControls>i{height:.5em;width:50px}.announce__calendarItems{display:flex;justify-content:space-between;margin:0 8px;flex:auto;overflow:hidden;height:200px}.announce__calendarItems>div{flex:0 0 13.7%}.announce__calendarItems>div:not(:last-child){margin-right:8px}.announce__calendarItem{border:1px solid #e0e0e0;box-shadow:1px 1px 5px #e8e8e8;border-radius:8px;background-color:#fff;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;position:relative;overflow:hidden;transition:all 1s}.announce__calendarItem--selected{border:1px solid #9a9c9e;box-shadow:0 0 5px #9a9c9e}.announce__calendarItem--message{flex:0 0 100%!important;height:220px;display:flex;align-items:center;justify-content:center}.announce__calendarDate{font-size:3em;line-height:0;margin:0;display:flex;align-items:center;height:64px;background-color:#eef7ff;padding:15px 5px;position:relative}.announce__calendarItem--selected .announce__calendarDate{background-color:#11365b;color:#fff}.announce__calendarDate>div{height:100%}.announce__calendarDate--today:before{content:"TODAY";color:#fff;background-color:#d53c90;position:absolute;bottom:-8px;left:calc(50% - 25px);width:50px;text-align:center;padding:3px;font-size:11px;border-radius:15px;line-height:1;z-index:1}.announce__calendarItem>.ui.dividing.header{margin:.5em 0}.announce__calendarItem--selected>.ui.dividing.header{border-color:#5289ce}.announce__calendarDate>span{line-height:1}.announce__calender__dayNumber{font-weight:700;display:flex;align-items:center}.announce__calendar__monthDayWeek{display:flex;flex-direction:column;margin-left:5px}.announce__calendarText{flex:auto;min-height:75px;padding:15px 5px;position:relative}.announce__calendarText .ui.label{font-size:9.599px!important;font-size:.685714rem!important}.announce__calender__month{font-size:.4em;font-weight:700}.announce__calender__dayWeek,.announce__calender__month{height:20px;display:flex;align-items:center}.announce__calender__dayWeek{font-weight:300;font-size:.3em}.announce__calendarItem--selected .announce__calender__dayWeek{opacity:.7}.announce__calendarReporting{font-weight:700}.announce__typeNumbers{font-size:.75em;text-transform:uppercase;display:flex;align-items:center}.announce__calendarText>.announce__typeNumbers:not(last-child){margin-bottom:8px}.announce__typeNumberLabel{background-color:#000;color:#fff;border-radius:15px;width:30px;display:inline-block;text-align:center;margin-right:10px}.announce__typeNumberLabel--widthAuto{min-width:30px;width:auto;padding:0 5px}.announce__typeNumberLabel--purple{background-color:#893ad6}.announce__typeNumberLabel--orange{background-color:#d5653e}.announce__typeNumberLabel--teal{background-color:#38bcd4}.announce__typeNumberLabel--liteblue{background-color:#b1bad6}.announce__typeNumberLabel--seagreen{background-color:#35bf9f}.announce__typeNumberLabel--green{background-color:#18c314}.announce__typeNumberText{font-size:1.1em;line-height:1.2;font-weight:700}.announce__calendarEmpty{background:repeating-linear-gradient(-46deg,transparent,transparent 13px,rgba(0,0,0,.05) 0,rgba(0,0,0,.05) 17px);height:100%;min-height:95px;margin:-10px 0}.announce__calendarFooter{display:flex;align-items:center;justify-content:space-between;padding:5px;color:#637a92;background-color:#f7f7f7}.annoucement-table-wrapper{padding:0!important}.announce__modalImageWrapper{display:flex;justify-content:center;align-items:flex-start;overflow:scroll;background:#333;height:90vh}#announce-table table{border-left:0;border-right:0}#announce-table .announce__calendarEmpty{background:repeating-linear-gradient(-46deg,transparent,transparent 8px,rgba(0,0,0,.05) 0,rgba(0,0,0,.05) 12px);min-height:25px}#announce-table .announce__calendarEmpty--FR{min-height:55px}#announce-table .new{-webkit-animation:change-bg-new-color 10s;animation:change-bg-new-color 10s}#announce-table .info-message{padding:70px 0;text-align:center}#announce-table .updated{-webkit-animation:change-bg-update-color 10s;animation:change-bg-update-color 10s}#announce-table table{margin:0}#announce-table .ui.header{margin:0;padding:1em;font-weight:700}#announce-table .ui.striped.table>tr:nth-child(2n),#announce-table .ui.striped.table tbody tr:nth-child(2n){background-color:rgba(10,10,10,.05)}.announce__table--fixed tr{display:flex}.announce__table--fixed tr td,.announce__table--fixed tr th{display:flex;flex-direction:column;justify-content:center}.announce__table--fixed tr .announce__tableRow--fullWidth{flex:0 0 100%!important}.announce__table--fixedHeader thead{position:fixed;top:128px;width:calc(100% - 3em);z-index:102;box-shadow:3px 3px 10px hsla(0,0%,50.2%,.3)!important}.announce__table--fixed.announce__table--FR tr td,.announce__table--fixed.announce__table--FR tr th{flex:0 0 95px}.announce__table--fixed.announce__table--FR tr td:first-child,.announce__table--fixed.announce__table--FR tr th:first-child{flex:auto}.announce__table--fixed.announce__table--FR tr td:last-child,.announce__table--fixed.announce__table--FR tr td:nth-child(3),.announce__table--fixed.announce__table--FR tr td:nth-child(4),.announce__table--fixed.announce__table--FR tr th:last-child,.announce__table--fixed.announce__table--FR tr th:nth-child(3),.announce__table--fixed.announce__table--FR tr th:nth-child(4){flex:0 0 100px}.announce__table--fixed.announce__table--FR tr td:nth-child(2),.announce__table--fixed.announce__table--FR tr th:nth-child(2){flex:0 0 190px}.announce__table--fixed.announce__table--BRM tr td,.announce__table--fixed.announce__table--BRM tr th{flex:0 0 15%}.announce__table--fixed.announce__table--BRM tr td:first-child,.announce__table--fixed.announce__table--BRM tr th:first-child{flex:auto}.announce__table--fixed.announce__table--BRM tr td:last-child,.announce__table--fixed.announce__table--BRM tr th:last-child{flex:0 0 12%}.announce__table--fixed.announce__table--BRM tr td:nth-child(2),.announce__table--fixed.announce__table--BRM tr th:nth-child(2){flex:0 0 18%}.announce__table--fixed.announce__table--EOGM tr td,.announce__table--fixed.announce__table--EOGM tr th{flex:0 0 30%}.announce__table--fixed.announce__table--EOGM tr td:first-child,.announce__table--fixed.announce__table--EOGM tr th:first-child{flex:auto}.announce__table--fixed.announce__table--EOGM tr td:last-child,.announce__table--fixed.announce__table--EOGM tr th:last-child{flex:0 0 12%}.announce__table--fixed.announce__table--PYT tr td,.announce__table--fixed.announce__table--PYT tr th{flex:0 0 120px}.announce__table--fixed.announce__table--PYT tr td:first-child,.announce__table--fixed.announce__table--PYT tr th:first-child{flex:auto}.announce__table--fixed.announce__table--PYT tr td:last-child,.announce__table--fixed.announce__table--PYT tr th:last-child{flex:0 0 100px}.announce__table--fixed.announce__table--PYT tr td:nth-child(2),.announce__table--fixed.announce__table--PYT tr td:nth-child(8),.announce__table--fixed.announce__table--PYT tr th:nth-child(2),.announce__table--fixed.announce__table--PYT tr th:nth-child(8){flex:0 0 225px}.announce__tableRow{padding:0 .5em;display:flex;align-items:center}.announce__tableRowLeft{flex:0 0 400px}.announce__tableRowRight{flex:0 0 100px;margin-left:1em}.announce__tableRow__companyName,.announce__tableRow__title{font-weight:700;font-size:1em;margin-bottom:5px}.announce__tableRow__companyName{text-transform:uppercase;font-size:.9em}.announce__tableRow__posted{font-style:italic;font-weight:300;color:#2b6a9d;font-size:.8em;margin-top:.5em}.announce__tableRow__companyName>.ui.blue.label{min-width:65px;text-align:center;margin-right:.5em}.annoucement-table-wrapper:after{top:80px!important}.announce__tableRowCenter{flex:auto;padding:1em;border-left:5px solid #719abc;background-color:#d7edff;border-radius:5px;display:flex;justify-content:space-between;align-items:flex-end}.announce__tableRowCenter--purple{border-left:5px solid #893ad6;background-color:#e3d5f2}.announce__tableRowCenter--orange{border-left:5px solid #d5653e;background-color:#f9e2da}.announce__tableRowCenter--red{border-left:5px solid red;background-color:#f9e2da}.announce__tableRowCenter--teal{border-left:5px solid #38bcd4;background-color:#c2eff7}.announce__tableRowCenter--green{border-left:5px solid #18c314;background-color:#c8fdc6}.announce__tableRowCenter--gold{border-left:5px solid gold;background-color:#ffee91}.announce__tableRowCenter--olive{border-left:5px solid #cddc39;background-color:#faffc6}.announce__tableRow__subText{font-style:italic;font-weight:300}.announce__tableRow__optionWrapper{flex:0 0 100px;text-align:right}.announce__tableRow__options{line-height:1;font-size:.9em;color:#2c6a9e;cursor:pointer;margin-left:.5em}.announce__tableColDivider{border-left:1px solid #ababab!important}.announce__tableFiles--horizontal{display:flex}.announce__tableFiles>a:not(:last-child){cursor:pointer}.announce__tableFiles--vertical>a:not(:last-child){margin-bottom:1em}.announce__tableFiles--horizontal>a:not(:last-child){margin-right:1em}.announce__type__filter--mobile{display:none!important}.announce__tableHeader{display:flex;align-items:center;justify-content:space-between}.announce__tableLegends{padding:1em;display:flex;flex:auto;max-width:700px;font-size:.7em;justify-content:flex-end}.announce__tableLegends--mobile{display:none;margin-top:1em}.announce__tableLegends>div:not(:last-child){margin-right:5px}.announce__legend{display:flex;align-items:center;flex:auto}.announce__legend__text{opacity:.6;white-space:nowrap}.announce__legend__colorBlock{flex:0 0 13px;height:13px;margin-right:5px}.announce__tablePeriod{margin:.5em 0;color:grey}.announce__legend__colorBlock--purple{background-color:#893ad6}.announce__legend__colorBlock--orange{background-color:#d5653e}.announce__legend__colorBlock--red{background-color:red}.announce__legend__colorBlock--teal{background-color:#38bcd4}.announce__legend__colorBlock--green{background-color:#18c314}.announce__legend__colorBlock--gold{background-color:gold}.announce__legend__colorBlock--blue{background-color:#719abc}.announce__legend__colorBlock--olive{background-color:#cddc39}@-webkit-keyframes change-bg-new-color{0%{background-color:#fff1c8}to{background-color:#fff}}@keyframes change-bg-new-color{0%{background-color:#fff1c8}to{background-color:#fff}}@-webkit-keyframes change-bg-update-color{0%{background-color:#cbd9f1}to{background-color:#fff}}@keyframes change-bg-update-color{0%{background-color:#cbd9f1}to{background-color:#fff}}@media only screen and (max-width:1420px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.95em!important}.announce__type__filter{font-size:1em!important}}@media only screen and (max-width:1375px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.9em!important}}@media only screen and (max-width:1350px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.85em!important}.announce__type__filter{font-size:1.02em!important}}@media only screen and (max-width:1325px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.8em!important}.announce__type__filter{font-size:1.06em!important}}@media only screen and (max-width:1300px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.75em!important}.announce__type__filter{font-size:1.1em!important}}@media only screen and (max-width:1275px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.7em!important}.announce__type__filter{font-size:1.2em!important}}@media only screen and (max-width:1250px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.65em!important}.announce__type__filter{font-size:1.3em!important}}@media only screen and (max-width:1225px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.6em!important}.announce__type__filter{font-size:1.4em!important}}@media only screen and (max-width:1200px){.annoucement-calendar-wrapper,.annoucement-table-wrapper{font-size:.55em!important}.announce__type__filter{font-size:1.5em!important}}@media only screen and (max-width:700px){.announce__legend{flex:0 0 48%;margin-right:5px}.announce__search__popup{display:block}.announce__date__filters--desktop{display:none}.announce__tableLegends--mobile{display:flex}.announce__tableLegends--desktop{display:none}.annoucement-calendar-wrapper,.annoucement-table-wrapper,.announce__type__filter{font-size:1em!important}.announce__type__filter--desktop{display:none!important}.announce__type__filter--mobile{display:block!important;background-color:#2b6a9e!important;border:1px solid #2b6a9e!important}.announce__type__filter--mobile .text,.announce__type__filter--mobile i{color:#fff!important}.announce__type__filter--mobile .menu{border:1px solid #2b6a9e!important}.announce__type__filter--mobile .text{text-transform:uppercase!important;letter-spacing:1px!important}.announce__type__filter--mobile.ui.dropdown .menu>.item{padding:1.5em!important}.announce__type__filter--mobile.ui.dropdown .menu{max-height:unset}.announce__calendarControls{font-size:3em}.announce__calendarControls>i{width:30px;margin:0}.announce__calendarItems{overflow-x:scroll}.announce__calendarItems>div{flex:0 0 200px}.announce__tableRow{display:block}.announce__tableRowCenter{margin:1em 0}.announce__tableRowRight{margin-left:0;display:flex}#announce-table .ui.header{padding:.5em}.announce__tableHeader{flex-direction:column}.announce__tableLegends{flex-wrap:wrap;padding-top:0}.announce__legend{margin-bottom:.5em}.annoucement-calendar-wrapper:first-child{height:64px}.announce__filters{position:fixed;z-index:10;top:calc(100px - .5em);left:0;width:100%;padding:1em}.announce__filters .ui.button,.announce__filters .ui.dropdown{box-shadow:3px 2px 5px rgba(0,0,0,.25)}.announce__tableRow{padding:0}.announce__table--fixed.announce__table--BRM tr td,.announce__table--fixed.announce__table--EOGM tr td,.announce__table--fixed.announce__table--FR tr td,.announce__table--fixed.announce__table--PYT tr td{flex:auto!important}.announce__table--mobile .company-type{margin:0}.announce__table--mobile .announce__tableRow{display:flex;flex-wrap:wrap}.announce__table--mobile .announce__tableRowLeft,.announce__table--mobile .announce__tableRowRight{flex:auto}.announce__table--mobile .announce__tableRowLeft{flex:0 0 130px}.announce__table--mobile .announce__tablePeriod{text-align:center;flex:0 0 100%;font-size:1.2em;font-weight:700;color:#8eafca;margin-top:1em;text-align:left}.announce__table--mobile .announce__mobileTable{width:100%;overflow:hidden}.announce__table--mobile .announce__mobileTable>div{padding:.05em .25em;display:flex;align-items:center;justify-content:space-between}.announce__table--mobile .announce__mobileTable>div>span{color:grey}.announce__table--mobile .announce__mobileTable>div>span:first-child{font-weight:700;margin-right:.5em;color:#000;font-size:.9em}}#cs-indices-page .ui.loading.segment:after,#cs-indices-page .ui.loading.segment:before{z-index:10}#cs-indices-page>.column,#cs-indices-page>.row>.column{padding:.5rem;height:100%}#cs-indices-page>.row{padding:0}@media only screen and (max-width:700px){#cs-indices-page>.column,#cs-indices-page>.row>.column{height:auto;padding-left:0!important;padding-right:0!important}}.indices__menu__wrapper{margin-top:1em}.indices__menu__wrapper #cs-kse-indices{padding:0!important;height:75px!important;box-shadow:none;margin:.5em}@media only screen and (max-width:700px){.indices__menu__wrapper #cs-kse-indices{display:block}}.indices__menu>.column{position:relative;cursor:pointer}.indices__menu>.column:after{content:" ";position:absolute;width:100%;height:3px;bottom:0;left:0;background-color:#fff;transition:background-color .25s}.indices__menu>.column:hover:after{background-color:#b0d3f0}.indices__menu>.column.active:after{background-color:#2b6ba8}.indices__header{color:#585858;font-size:1.5em;border-bottom:1px solid;padding-bottom:.5em;margin-bottom:.5em}.indices__header--summary,.indices__header--tabs{display:flex;align-items:center;justify-content:space-between}.indices__headerTabs{border:3px solid #2b6ba8;border-radius:8px;overflow:hidden}.indices__headerTabs .ui.button{font-size:15.4px;font-size:1.1rem;background-color:#2b6ba8!important;min-height:auto;min-width:130px;padding:.6rem 1rem}.indices__headerTabs .ui.button.active{background-color:#fff!important;color:#2b6ba8!important}.indices__market__table{width:100%;margin-bottom:2em}.indices__market__table--noMargin{margin:0}.indices__market__table td{text-align:right;font-weight:700}.indices__market__table--horizontal td{border:1px solid #dadada}.indices__market__table--center td{text-align:center}.indices__market__table th{text-align:left;background-color:#f3f3f3;color:#717171}.indices__market__table--horizontal th{border:1px solid #dadada}.indices__market__table--center th{text-align:center}.indices__market__table td,.indices__market__table th{padding:7px;border-bottom:1px solid #e2e2e2}.indices__market__table--horizontal th{font-size:.8em;padding:2px}.indices__market__table .green{color:#42d044}.indices__market__table .red{color:#ff1b1b}.indices__volume__table .indices__market__table td,.indices__volume__table .indices__market__table th{width:50%}.indices__rangeScales{display:flex;align-items:center;justify-content:space-between;margin-bottom:2em}.indices__rangeScale{flex:0 0 49%}.indices__rangeScale .ui.header{text-align:center;font-size:16.8px;font-size:1.2rem}.indices__volume{display:flex}.indices__volume--marginBottom{margin-bottom:2em}.indices__volume>div{flex:0 0 50%;height:70px}.indices__chart .bar.positive{fill:#2fc798!important}.indices__chart .bar.negative{fill:#c72152!important}.indices__chart .tool-color-block.green{background-color:#2fc798}.indices__chart .tool-color-block.red{background-color:#c72152}.indices__chart text.bar-text{font-weight:300}.indices__chart text.bar-text.green{stroke:#2fc798}.indices__chart text.bar-text.red{stroke:#c72152}.indices__chart .y-grid{stroke:transparent!important}.indices__chart .tick text{opacity:0}.indices__chart .cs-sector-treemap{margin:0;border:none}.indices__chart .cs-sector-treemap .scale{margin:0;float:right}.indices__chart .cs-sector-treemap .scale div{margin:0}.indices__constituentTable tr{display:flex}.indices__constituentTable thead tr{background-color:#d8d8d8}.indices__constituentTable--fixed{padding-top:35px}.indices__constituentTable--fixed thead{position:fixed;top:202px;width:calc(100% - 4em);z-index:10;box-shadow:3px 3px 10px hsla(0,0%,50.2%,.3)!important}.indices__constituentTable tr td:not(:first-child),.indices__constituentTable tr th:not(:first-child){text-align:right}.indices__constituentTable tr td:first-child,.indices__constituentTable tr th:first-child{flex:auto}.indices__constituentTable tr td,.indices__constituentTable tr th{flex:0 0 107px}.indices__constituentTable thead tr th{cursor:pointer!important;border-radius:0!important;border-bottom:1px solid #b6b6bb!important;border-top:1px solid #b6b6bb!important;padding:.5em!important}.indices__constituentTable thead tr th:first-child{border-left:1px solid #b6b6bb!important}.indices__constituentTable thead tr th:last-child{border-right:1px solid #b6b6bb!important}.indices__tab{display:none}.indices__tab--active{display:block}.indices__symbol{margin-right:10px!important;min-width:80px;text-align:center}.indices__barStats{display:flex;align-items:center;font-size:1.3em;padding:0!important}.indices__barStat--symbol{text-align:left}.indices__barStats--green{box-shadow:5px 5px 0 #2fc798!important;border:1px solid #2fc798!important}.indices__barStats--red{box-shadow:5px 5px 0 #c72152!important;border:1px solid #c72152!important}.indices__barStat{padding:.5em;text-align:center;height:100%;min-width:90px}.indices__barStat__title{font-size:.7em;font-weight:300;margin-bottom:2px}.indices__barStats .indices__barStat:not(:first-child){border-left:1px solid #eaeaea}.indices__barStat__value--green{color:#2fc798}.indices__barStat__value--red{color:#c72152}.indices__barStat--name{font-size:.7em;font-weight:300;text-align:left}.indices__tab[data-tab=companies] .indices__constituentTable tr td:nth-child(2),.indices__tab[data-tab=companies] .indices__constituentTable tr td:nth-child(3),.indices__tab[data-tab=companies] .indices__constituentTable tr td:nth-child(4),.indices__tab[data-tab=companies] .indices__constituentTable tr th:nth-child(2),.indices__tab[data-tab=companies] .indices__constituentTable tr th:nth-child(3),.indices__tab[data-tab=companies] .indices__constituentTable tr th:nth-child(4){flex:0 0 125px}.indices__tab[data-tab=companies] .indices__constituentTable tr td:last-child,.indices__tab[data-tab=companies] .indices__constituentTable tr th:last-child{flex:0 0 155px}.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(2),.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(3),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(2),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(3){flex:0 0 125px}.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(4),.indices__tab[data-tab=sectors] .indices__constituentTable tr td:nth-child(5),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(4),.indices__tab[data-tab=sectors] .indices__constituentTable tr th:nth-child(5){flex:0 0 155px}#cs-indices-sunburst-chart,.indices__sector__chart{height:100%}.indices__performance__divider{margin:1em 0;height:1px;background-color:#c5c5c5}.indices__performance__title{font-weight:300;font-size:1.7em;margin:.5em 0;line-height:1}.indices__performance__title--dualMargin{margin:.7em 0}.indices__performance__statTitle{font-size:.8em;font-weight:300;margin-bottom:5px}.indices__performance__stats{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.indices__performance__stats>div{flex:0 0 50%}.indices__performance__stat{padding:.5em 0}.indices__performance__statValue{font-size:1.5em}.indices__performance__statValue i{width:auto}.indices__performance__statChange{margin-top:.5em;line-height:1}.indices__performance__statValue--red{color:#ff1b1b}.indices__performance__statValue--green{color:#42d044}.indices__performance__statValue--blue{color:#075283}.indices__performance__changePercent{font-size:.7em}.indices__performance__table{width:100%;table-layout:fixed}.indices__performance__table td,.indices__performance__table th{text-align:center;padding:.5em}.indices__performance__table th{font-size:.8em;background-color:#e4e4e4}.indices__performance__table td{font-weight:700;font-size:1.3em}.indices__performance__table td.green{color:#07720e}.indices__performance__table td.red{color:#f03828}.indices__performance__table td.blue{color:#075283}.indices__kseStats__table{width:100%;margin-bottom:2em}.indices__kseStats__table tr{display:flex}.indices__kseStats__table td,.indices__kseStats__table th{flex:1;text-align:left;padding:.8em 0;font-size:1.1em;background-image:linear-gradient(90deg,#333 40%,hsla(0,0%,100%,0) 0);background-position:bottom;background-size:3px 2px;background-repeat:repeat-x;display:flex;align-items:center;white-space:nowrap}.indices__kseStats__table th{color:#5f5d5e;justify-content:flex-start}.indices__kseStats__table td{color:#636263;justify-content:flex-end}.indices__kseStats__table tr td:nth-child(2){margin-right:10px}.indices__kseStats__table tr td:nth-child(3){margin-left:10px}.indices__kseStats__table .red{color:#ff1b1b}.indices__kseStats__table .green{color:#42d044}.indices__note{text-align:right;font-style:right;font-size:.8em;color:grey}.indices__status{display:flex;align-items:center}.indices__statusPulse{display:inline-block;margin-right:.5em;width:8px;height:8px;border-radius:50%;background:#57677f;cursor:pointer;box-shadow:0 0 0 rgba(204,169,44,.4);-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite}.indices__statusText{font-size:.8em;color:#57677f}.indices__status--live .indices__statusPulse{background:#30c79b;box-shadow:0 0 0 rgba(49,199,155,.4);-webkit-animation:pulseLive 2s infinite;animation:pulseLive 2s infinite}.indices__status--live .indices__statusText{color:#30c79b}.indices__status--close .indices__statusPulse{background:#cecece;box-shadow:0 0 0 #cecece;-webkit-animation:none;animation:none}.indices__status--close .indices__statusText{color:#cecece}.indices__menuMobile__wrapper{display:none!important;position:fixed!important;top:94px;z-index:-1;opacity:0;left:0;transition:all .5s}.indices__menuMobile__wrapper .dropdown{border-radius:0}@media only screen and (max-width:700px){.indices__menuMobile__wrapper{display:block!important}}.indices__menuMobile__wrapper--show{z-index:20;opacity:1}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(87,103,127,.4)}70%{box-shadow:0 0 0 10px rgba(87,103,127,0)}to{box-shadow:0 0 0 0 rgba(87,103,127,0)}}@-webkit-keyframes pulseLive{0%{box-shadow:0 0 0 0 rgba(49,199,155,.4)}70%{box-shadow:0 0 0 10px rgba(49,199,155,0)}to{box-shadow:0 0 0 0 rgba(49,199,155,0)}}@keyframes pulseLive{0%{box-shadow:0 0 0 0 rgba(49,199,155,.4)}70%{box-shadow:0 0 0 10px rgba(49,199,155,0)}to{box-shadow:0 0 0 0 rgba(49,199,155,0)}}@media only screen and (max-width:700px){.indices__performance__divider{margin:.5em 0}.indices__performance__statTitle{font-size:.75em;line-height:1}.indices__kseStats__table th{font-size:.9em}.indices__volume>div{flex:0 0 35%}.indices__volume__table{flex:0 0 65%!important}.indices__market__table th{font-size:.8em}.indices__header--tabs{flex-direction:column}.indices__header--tabs .indices__headerText{margin-bottom:.5em;font-size:.9em}.indices__headerTabs{width:100%}.indices__chart text.bar-text{font-size:.65em}.indices__barStats{font-size:1em;flex-direction:column}.indices__barStat{padding:2px;min-width:70px}.indices__barStat__title{margin-bottom:4px;line-height:1}.indices__barStat--name{display:none}.indices__barStat--symbol{text-align:center}.indices__barStat--mcap{display:none}.indices__constituentTable--fixed{padding-top:0}.indices__constituentTable--fixed thead{position:static}.indices__tab{width:100%;overflow-x:scroll}.indices__constituentTable{width:1250px!important}.indices__volume__table .indices__market__table td,.indices__volume__table .indices__market__table th{width:auto}.indices__dummy__wrapper{display:none!important}}#cs-help{background-color:#fff}#cs-help-tabs>.cs__tab__contents{margin-top:182px}.cs__help__content{font-size:1.2em}.cs__help__content h2{margin-top:0!important}.cs__help__content .urd{text-align:right;font-family:Urdu Nastaliq Unicode;font-size:1.2em}.cs__help__content ol.urd,.cs__help__content ul.urd{text-align:right;list-style-position:inside;direction:rtl}.cs__help__content .ui.header{font-weight:700}.cs__help__langBtn{width:100%;text-align:center;background-color:hsla(0,0%,100%,.15);padding:1em;border-radius:8px;margin-top:1em}.cs__help__langBtn .text{margin-bottom:1em}.cs__help__image{position:relative;border:1px solid #e2e2e2!important}.cs__help__imagePanel{position:absolute;right:15px;top:15px;transition:all .3s;opacity:0}.cs__help__image:hover .cs__help__imagePanel{opacity:1}.cs__help__uploadImage{position:relative}.cs__help__uploadImage input[type=file]{position:absolute;width:100%;height:100%;top:0;right:0;opacity:0}#cs-port-invest-page .cs-chart .negative{fill:#c72152}#cs-port-invest-page .cs-chart .positive{fill:#2fc798}#cs-port-invest-page .cs-type-buttons{position:static}#cs-port-invest-page .ui.grid{margin:-.5em}#cs-port-invest-page .ui.grid .column{padding:.5em}#cs-port-invest-page .cs__table table{border-collapse:collapse}#cs-port-invest-page .cs__table tbody tr td{width:80px}#cs-port-invest-page .indices__note{text-align:right}#cs-port-invest-page .indices__note .indices__note--mobile{display:none}@media only screen and (max-width:700px){#cs-port-invest-page .indices__note{text-align:center}#cs-port-invest-page .indices__note .indices__note--desktop{display:none}#cs-port-invest-page .indices__note .indices__note--mobile{display:block}}#cs-port-invest-page .mobile{display:none}@media only screen and (max-width:700px){#cs-port-invest-page{overflow:visible!important}#cs-port-invest-page .mobile{display:block}#cs-port-invest-page .desktop{display:none}}.cs__port__topPanel{position:fixed!important;width:97%;top:150px;height:auto!important;z-index:11;box-shadow:0 1px 1px 0 rgba(34,36,38,.5),0 0 0 0 rgba(34,36,38,.5)!important;margin:0!important}@media only screen and (max-width:700px){.cs__port__topPanel{width:100%}}.cs__port__topHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:1em}.cs__port__topHeader .ui.header{margin:0}@media only screen and (max-width:700px){.cs__port__topHeader{display:block;margin-bottom:1em}.cs__port__topHeader h1{text-align:center}}.cs__port__topHeaderButtons>div:not(first-child){margin-left:1em!important}@media only screen and (max-width:700px){.cs__port__topHeaderButtons>div:not(first-child){margin-left:0!important}}@media only screen and (max-width:700px){.cs__port__topHeaderButtons .ui.dropdown{display:block;margin-top:1em!important;margin-bottom:1em!important}}.cs__port__sectorChart{position:relative;width:100%;height:100%}.cs__port__sectorChart .red{color:#c72152}.cs__port__sectorChart .green{color:#2fc798}.cs__port__sectorChart .tooltip{position:absolute}.cs__port__sectorChart .axis line,.cs__port__sectorChart .axis path{shape-rendering:crispEdges}.cs__port__sectorChart div.tooltip{font-size:1.25em;text-align:right;padding:.5em;background:#fff;border:1px solid #d3d3d3;border-radius:8px;pointer-events:none;left:0;top:0;box-shadow:1px 1px 1px 0 rgba(34,36,38,.25)}@media only screen and (max-width:700px){.cs__port__chart .cs-chart{width:150%}.cs__port__sectorChart{min-height:300px}}#cs-client-portfolio{margin-top:127px!important}.cs-clport__menu{height:51px;margin-bottom:1em}.cs-clport__menu .ui.menu{margin-top:127px;z-index:1}.cs-clport__menu .ui.menu .ui.dropdown .text i.checkmark{display:none}.cs-clport__menu .ui.menu .ui.dropdown .item i.checkmark{color:#24d224;opacity:0}.cs-clport__menu .ui.menu .ui.dropdown .item.selected i.checkmark{opacity:1}.cs-clport__add-trade .ui.attached.segment,.cs-clport__add-valuations .ui.attached.segment,.cs-clport__create .ui.attached.segment{width:calc(100% + 2px)}.cs-clport__add-trade form.ui.attached.segment,.cs-clport__add-valuations form.ui.attached.segment,.cs-clport__create form.ui.attached.segment{border:1px solid #2c6a9e}.cs-clport__create-header{display:none}.cs-clport__create-header--show{display:block}.cs-clport__open-view-valuations{background-color:#2c6a9e!important;color:#fff!important}.cs-clport__open-add-trade,.cs-clport__open-add-valuations{background-color:#24d224!important;color:#fff!important}.cs-clport__open-create-portfolio{background-color:#ff5722!important;color:#fff!important}.cs-clport__select-company .menu .item span,.cs-clport__select-company .text span{font-style:italic;font-weight:300}.cs-clport__add-trade input[readonly]{background-color:rgba(240,248,255,.94)!important}.cs-clport__summary .cs-clport__summary__portValue .value{font-size:3em!important}.cs-clport__summary .statistic .value{text-transform:capitalize!important}.cs-clport__summary .six.wide.column{position:relative}.cs-clport__summary .six.wide.column .statistic .value{font-size:2.25em!important}.cs-clport__summary .six.wide.column:before{content:" ";position:absolute;left:-1em;top:0;height:90%;width:1px;background-color:#d1d1d1}.cs-clport__trade-table{margin-top:1.5em}.cs-clport__trade-table th i.sort{cursor:pointer;text-align:right;margin-right:0}.cs-clport__trade-table th:not(.no-sort):after{width:14px!important;display:inline-block!important;content:"\f0dc"!important}.cs-clport__trade-table th.ascending:after{content:"\f0d8"!important}.cs-clport__trade-table th.descending:after{content:"\f0d7"!important}#cs-portfolio-builder{margin-top:128px!important;margin-bottom:-1rem}.pb__body{padding:3rem 4.286rem;background-color:#fcfcfc;margin-bottom:-1rem}.pb__body--bg-blue{background:linear-gradient(182.31deg,#014089 1.52%,#092473 94.56%)}.pb__grid{display:flex}.pb__grid--spc-btw{justify-content:space-between}.pb__grid--flx-end{justify-content:flex-end}.pb__grid--algn-cntr{align-items:center}.pb__grid--nrml-spc{margin:-.5rem}.pb__grid--med-spc{margin:-.71428571rem}.pb__grid--vertical{flex-direction:column}.pb__grid--eq-box>div{flex:1}.pb__grid--nrml-spc>div{margin:.5rem}.pb__grid--med-spc>div{margin:.7142857142857143rem}.pb__grid--modal{padding:1.25rem 1.25rem 0}.pb__grid>.pb__grid__column--flex-2{flex:2}.pb__header{font-size:20px;font-size:1.4285714285714286rem;line-height:20px;line-height:1.4285714285714286rem}.pb__header--lg{font-size:27.02px;font-size:1.93rem;line-height:36.12px;line-height:2.58rem}.pb__btn{background-color:#f1f1f3;color:#7c7c80;border-radius:7px;padding:.57rem 1.14rem;cursor:pointer;box-shadow:0 .29rem .29rem rgba(0,0,0,.25);transition:opacity .25s;display:inline-block;min-width:86px;text-align:center}.pb__btn--min-wdth-56{min-width:56px}.pb__btn:hover{opacity:.75}.pb__btn>span{font-size:12.04px;font-size:.86rem}.pb__btn--fnt-med>span{font-size:14px;font-size:1rem}.pb__btn--fnt-smll>span{font-size:9px;font-size:.6428571428571429rem}.pb__btn--bg-orange{background-color:#f76014;color:#fff}.pb__btn--bg-white{background-color:#fff}.pb__btn--bg-red{background-color:#e71717;color:#fff}.pb__btn--bg-green{background-color:#07a595;color:#fff}.pb__btn--bg-blue{background-color:#114b9b;color:#fff}.pb__btn--txt--drkBlue{color:#114b9b}.pb__btn--txt--orange{color:#f76014}.pb__btn--no-shdw{box-shadow:none}.pb__btn--no-brdr-rad{border-radius:0}.pb__btn--brdr-drk-blue{border:1px solid #114b9b}.pb__btn--brdr-orange{border:1px solid #f76014}.pb__btn--disabled{cursor:default;pointer-events:none;opacity:.65}.pb__btn--loading{cursor:default;pointer-events:none;position:relative;color:transparent}.pb__btn--loading:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.5);width:100%;height:100%;z-index:14}.pb__btn--loading:after{position:absolute;content:"";top:calc(50% - .75rem);left:calc(50% - .75rem);width:21px;width:1.5rem;height:21px;height:1.5rem;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2rem solid hsla(0,0%,100%,.25);border-top-color:#fff;box-shadow:0 0 0 .07142857rem transparent;visibility:visible;z-index:101}.pb__btn--txt--drkBlue.pb__btn--bg-white.pb__btn--brdr-drk-blue.pb__btn--loading:before{background:#114b9b}.pb__btns{display:flex}.pb__btns--spc-btw{justify-content:space-between}.pb__btns--flx-end{justify-content:flex-end}.pb__btns>.pb__btn:not(:last-child){margin-right:.8571428571428571rem}.pb__btns--group>.pb__btn{margin:0!important}.pb__btns--group>.pb__btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.pb__btns--group>.pb__btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.pb__btns--group-full-wdth>.pb__btn{flex:1}.pb__section{display:none}.pb__section--active{display:block}table.pb__table{border-collapse:collapse;width:100%;border-radius:3px 3px 0 0}table.pb__table thead td,table.pb__table thead th{font-size:12px;font-size:.85714286rem;line-height:20px;line-height:1.4285714285714286rem;background-color:#ebebeb;padding:1.14285714rem}table.pb__table tbody td,table.pb__table tbody th{font-size:13px;font-size:.9285714285714286rem;line-height:20px;line-height:1.4285714285714286rem;background-color:#fff;padding:1.14285714rem}table.pb__table tbody tr:not(:last-child) td,table.pb__table tbody tr:not(:last-child) th{border-bottom:1px solid rgba(34,36,38,.1)}table.pb__table tbody tr td:not(:first-child),table.pb__table tbody tr th:not(:first-child),table.pb__table thead tr td:not(:first-child),table.pb__table thead tr th:not(:first-child){text-align:right}table.pb__table tbody tr td:first-child,table.pb__table tbody tr th:first-child,table.pb__table thead tr td:first-child,table.pb__table thead tr th:first-child{text-align:left}table.pb__table .pb__table__noData{font-size:14px;font-size:1rem;text-align:center!important;height:125px;height:8.928571428571429rem}.pb__segment{max-width:600px;margin-left:auto;margin-right:auto;background-color:#fff;border-radius:.21428571rem}.pb__segment--full-wdth{width:100%;max-width:none}.pb__segment__header{text-align:center;padding:1.1428571428571428rem 1rem}.pb__segment__header>span{font-size:23px;font-size:1.6428571428571428rem;line-height:31px;line-height:2.2142857142857144rem}.pb__segment__header--spc-btw{display:flex;align-items:center;justify-content:space-between}.pb__segment__header--spc-btw>span:last-child{font-size:13px;font-size:.9285714285714286rem}.pb__segment__headerMenu{display:flex;align-items:center;padding:1.1428571428571428rem 1rem}.pb__segment__headerMenu>.pb__segment__header{flex:auto;padding:0}.pb__segment__menu__toggle{width:34.938px;width:2.4955714285714286rem;height:34.938px;height:2.4955714285714286rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.pb__segment__menu__toggle>i{margin:0;line-height:1}.pb__segment__content{border-top:1px solid rgba(34,36,38,.1);border-bottom:1px solid rgba(34,36,38,.1)}.pb__segment__content--no-brdr{border:0!important}.pb__segment__actions,.pb__segment__content{padding:1rem}.pb__segment__actions .pb__btn{min-width:120px}.pb__create__stepsProgress{display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin-left:auto;margin-right:auto;position:relative;height:16px;height:1.1428571428571428rem;margin-bottom:2rem}.pb__create__progressRail{position:absolute;left:0;width:100%;top:calc(50% - .14286rem);height:4px;height:.2857142857142857rem;background-color:#6b8ac7}.pb__create__progressPoint{position:relative;height:100%;display:flex;align-items:center}.pb__create__progressPoint__dot{width:12px;width:.8571428571428571rem;height:12px;height:.8571428571428571rem;display:inline-block;border-radius:50%;background-color:#6b8ac7;border:.14285714rem solid hsla(0,0%,100%,0)}.pb__create__progressPoint--active>.pb__create__progressPoint__dot{width:16px;width:1.1428571428571428rem;height:16px;height:1.1428571428571428rem;background-color:#fff;border-color:#f76014}.pb__create__progressPoint--completed>.pb__create__progressPoint__dot{width:16px;width:1.1428571428571428rem;height:16px;height:1.1428571428571428rem;background-color:#f76014;border-color:#f76014;display:flex;align-items:center;justify-content:center}.pb__create__progressPoint--completed>.pb__create__progressPoint__dot:before{content:"\f00c";font-family:Icons;font-style:normal;color:#fff;font-size:11.2px;font-size:.8rem}.pb__create__progressPoint__text{width:120px;width:8.571428571428571rem;text-align:center;position:absolute;left:-3.85714rem;bottom:-21px;bottom:-1.5rem;color:#fff;font-size:12px;font-size:.8571428571428571rem;opacity:.65}.pb__create__progressPoint--active>.pb__create__progressPoint__text{opacity:1}.pb__create__step{display:none}.pb__create__step--active{display:block}.pb__pie__chart{margin:2.857142857142857rem auto 1.4285714285714286rem;width:182px;width:13rem;min-height:182px;min-height:13rem}.pb__pie__chart__labels{margin-top:1rem}.pb__pie__chart__label{text-align:center;font-size:12px;font-size:.8571428571428571rem;line-height:24px;line-height:1.7142857142857142rem}.pb__pie__chart__label span{display:inline-block;width:9.999px;width:.71428571rem;height:9.999px;height:.71428571rem;border-radius:.21428571rem;margin-right:.5rem}.pb__items>.pb__item:not(:last-child){margin-bottom:1.4285714285714286rem}.pb__item__title{font-size:12px;font-size:.8571428571428571rem;color:rgba(0,0,0,.65);line-height:20px;line-height:1.4285714285714286rem;margin-bottom:.5714285714285714rem}.pb__item__subText{font-size:14px;font-size:1rem}.pb__symbol__label{padding:.28571429rem .71428571rem;background-color:#033984;border-radius:.21428571rem;color:#fff;display:inline-block;cursor:pointer}.pb__symbol__label>span{font-size:12px;font-size:.85714286rem;line-height:12px;line-height:.85714286rem}.pb__criterias{display:flex}.pb__criterias>.pb__criteria:not(:last-child){margin-right:.28571429rem}.pb__criteria{padding:.28571429rem .71428571rem;border-radius:.21428571rem}.pb__criteria--high_yield{background-color:rgba(7,165,149,.2);color:#07a595}.pb__criteria--high_growth{background-color:rgba(80,115,184,.2);color:#5073b8}.pb__criteria--volatility{background-color:rgba(231,76,60,.2);color:#e74c3c}.pb__slider{position:relative}.pb__slider .ui-widget.ui-widget-content{background-color:#ccc;border-color:#ccc;border-radius:.28571429rem;height:4px;height:.28571429rem}.pb__slider .ui-widget-header{background-color:#f76014}.pb__slider .ui-button,.pb__slider .ui-state-default,.pb__slider .ui-widget-content .ui-state-default,.pb__slider .ui-widget-header .ui-state-default,.pb__slider html .ui-button.ui-state-disabled:active,.pb__slider html .ui-button.ui-state-disabled:hover{border:.14285714rem solid #f76014;background-color:#fff;border-radius:50%;outline:0;width:15.999px;width:1.14285714rem;height:15.999px;height:1.14285714rem;top:-7px;top:-.5rem}.pb__slider .pb__segment{position:absolute;width:344px;width:24.571428571428573rem;z-index:1}.pb__slider__rangeExtent{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-size:.85714286rem}.pb__box--mg-bt-lg{margin-bottom:4rem}.pb__box--mg-bt-med{margin-bottom:3rem}.pb__box--mg-bt-nrml{margin-bottom:1.8571428571428572rem}.pb__box--mg-bt-smll{margin-bottom:1.42857143rem}.pb__box--mg-bt-xs-smll{margin-bottom:.71428571rem}.pb__box--mg-tp-nrml{margin-top:1.8571428571428572rem}.pb__box--mg-tp-smll{margin-top:1.42857143rem}.pb__box--no-mg-bt{margin-bottom:0!important}.pb__box--no-pd{padding:0!important}.pb__box--shdw{box-shadow:7px 10px 20px rgba(46,61,73,.15)}.pb__box--hide{display:none}.pb__box--loading{position:relative}.pb__box--loading:before{position:absolute;content:"";top:0;left:0;background:hsla(0,0%,100%,.8);width:100%;height:100%;z-index:14}.pb__box--loading:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5rem 0 0 -1.5rem;width:42px;width:3rem;height:42px;height:3rem;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2rem solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 .07142857rem transparent;visibility:visible;z-index:101}.pb__text--clr-wht{color:#fff}.pb__text--clr-sl-wht{color:hsla(0,0%,100%,.87)}.pb__text--upcase{text-transform:uppercase}.pb__text--wrd-spc{letter-spacing:1.5px;letter-spacing:.10714285714285714rem}.pb__text--left-algn{text-align:left!important}.pb__text--rght-algn{text-align:right!important}.pb__text--cntr-algn{text-align:center!important}.pb__text--color-grey{color:#7c7c80}.pb__text--color-red{color:#e71717}.pb__temp--stocks-filters{padding:1rem;width:100%;margin:0!important}.pb__temp--stocks-filters.fields>.field{flex:1!important}.pb__event--value-allocate{width:150px}#cs-video-research{margin-top:128px!important;margin-bottom:-1rem}@media only screen and (max-width:700px){#cs-video-research{margin-top:5rem!important}}.vr__body{padding:2.143rem 1.42857143rem}.vr__body .ui.header{font-weight:300;display:inline-block;margin:.2rem 0 .5rem}@media only screen and (max-width:700px){.vr__body{overflow:hidden}.vr__body .vr__btn{padding:.5rem!important}}.vr__body--loading{position:relative;height:calc(100vh - 129px);overflow:hidden}.vr__body--loading:before{position:absolute;content:"";top:0;left:0;background:#fff;width:100%;height:100%;border-radius:.21428571rem;z-index:100}.vr__body--loading:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}.vr__btn{font-size:12px!important;font-size:.85714286rem!important;background-color:#264ce0!important;padding:.71428571rem 1.42857143rem!important;line-height:14px!important;line-height:1rem!important;transition:all .25s!important;color:#fff!important}.vr__btn--red{background-color:#f14f63!important}.vr__btn:hover{opacity:.8}.vr__videoItems{display:flex;margin:-.429rem}.vr__videoItems--ver{flex-wrap:wrap}@media only screen and (max-width:700px){.vr__videoItems--ver{display:block}.vr__videoItems--ver>.vr__videoItem{margin:1rem .375rem!important}}.vr__videoItems--horz{flex-direction:column}.vr__videoItem{background:#fff;box-shadow:0 2px 2px rgba(0,0,0,.06);border-radius:.357rem;display:flex;overflow:hidden;position:relative}@media only screen and (max-width:700px){.vr__videoItem{display:block}}.vr__videoItems--loading{height:300px;position:relative}.vr__videoItems--loading:before{position:absolute;content:"";top:0;left:0;background:#e9eaed;width:100%;height:100%;border-radius:.21428571rem;z-index:100}.vr__videoItems--loading:after{position:absolute;content:"";top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border:.2em solid rgba(0,0,0,.1);border-top-color:#767676;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}.vr__videoItems>.vr__videoItem{flex:0 0 15.92%;margin:.375rem;transition:all .25s}@media only screen and (max-width:1450px){.vr__videoItems>.vr__videoItem{flex:0 0 18.875%}}@media only screen and (max-width:1250px){.vr__videoItems>.vr__videoItem{flex:0 0 23.875%}}.vr__videoItems>.vr__videoItem:hover{box-shadow:0 6px 7px rgba(0,0,0,.2)}.vr__videoItems--ver>.vr__videoItem{display:block}.vr__videoItem__thumb{flex:0 0 427.875px;flex:0 0 30.5625rem;height:238px;height:17rem;position:relative;background-color:#0a2540;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden}@media only screen and (max-width:700px){.vr__videoItem__thumb{height:10.5rem}}.vr__videoItem__thumb>img{width:100%}.vr__videoItems--ver>.vr__videoItem .vr__videoItem__thumb{height:157.5px;height:11.25rem}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__thumb{height:95.375px;height:6.8125rem;flex:0 0 169.75px;flex:0 0 12.125rem}@media only screen and (max-width:700px){.vr__videoItems--horz>.vr__videoItem .vr__videoItem__thumb{height:10.5rem}}.vr__videoItem__time{color:#fff;font-size:12px;font-size:.85714286rem;line-height:12px;line-height:.85714286rem;background:#041424;border-radius:.21428571rem;padding:.357rem;position:absolute;bottom:6.006px;bottom:.429rem;right:6.006px;right:.429rem}.vr__videoItem__details{padding:1.42857143rem}@media only screen and (max-width:700px){.vr__videoItem__details{padding:.75rem}}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__details,.vr__videoItems--ver>.vr__videoItem .vr__videoItem__details{padding:1rem}.vr__videoItem__title{font-weight:700;font-size:23.996px;font-size:1.714rem;line-height:28px;line-height:2rem;color:#0a2540;cursor:pointer;display:block}@media only screen and (max-width:700px){.vr__videoItem__title{font-size:1.25rem}}.vr__videoItem__title:hover{color:#264ce0}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__title,.vr__videoItems--ver>.vr__videoItem .vr__videoItem__title{font-size:14px;font-size:1rem;line-height:15.999px;line-height:1.14285714rem}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__title{display:-webkit-box;-webkit-box-orient:vertical;text-overflow:ellipsis;white-space:normal;-webkit-line-clamp:1;overflow:hidden}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__labels{margin-top:.5rem!important}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__labels .ui.label{font-size:9.1px!important;font-size:.65rem!important}.vr__videoItems--horz>.vr__videoItem .vr__videoItem__meta{margin-bottom:0!important;margin-top:.25rem}.vr__videoItem__labels{margin-top:1rem!important}@media only screen and (max-width:700px){.vr__videoItem__labels{margin-top:.5rem!important}}.vr__videoItem__label.ui.label{background-color:#264ce0!important;font-size:12px!important;font-size:.85714286rem!important;line-height:12px!important;line-height:.85714286rem!important;padding:.28571429rem .357rem!important}.vr__videoItem__meta{font-size:12px;font-size:.85714286rem;line-height:12px;line-height:.85714286rem;margin:1rem 0}@media only screen and (max-width:700px){.vr__videoItem__meta{margin:.5rem 0}}.vr__videoItem__meta>span:not(:first-child){margin-left:.5rem}.vr__videoItems--ver>.vr__videoItem .vr__videoItem__meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:0!important}.vr__videoItem__desc{font-size:14px;font-size:1rem;line-height:20px;line-height:1.42857143rem;color:#505c7c}.vr__videoItem__desc .vr__videoItem__descText{margin-bottom:.5rem;min-height:58.8px;min-height:4.2rem}.vr__videoItem__desc .vr__videoItem__descText--hidden{overflow:hidden;height:58.8px;height:4.2rem;width:100%}.vr__videoItem__desc>a{margin-top:.5rem;cursor:pointer;text-transform:uppercase;color:#264ce0;font-size:11.9px;font-size:.85rem}.vr__videoItem__pin{font-size:20px!important;font-size:1.42857143rem!important;position:absolute;top:21.994px;top:1.571rem;right:25.004px;right:1.786rem;color:#76809b;cursor:pointer}.vr__videoItem__player{background-color:#0a2540;border-radius:.357rem;height:41.06776vw;overflow:hidden}@media only screen and (max-width:700px){.vr__videoItem__player{margin:auto -1.5rem;border-radius:0;height:57.14286vw}}.vr__playback__left .vr__videoItem__details{padding-left:0;padding-right:0}.vr__playback{display:flex}@media only screen and (max-width:700px){.vr__playback.ui.grid>.wide.column{padding-left:0!important;padding-right:0!important}}.vr__tabs__list{background:#fff;box-shadow:0 2px 2px rgba(0,0,0,.06);border-radius:.357rem;margin:1.42857143rem 0;display:flex;align-items:center;justify-content:space-between}@media only screen and (max-width:700px){.vr__tabs__list{display:block}}.vr__tabs__list>ul{display:flex;list-style:none;margin:0;overflow-x:scroll;padding:0 0 .125rem;position:relative;border-right:.0625rem solid #dededf}.vr__tabs__list>ul::-webkit-scrollbar{height:3.5px;height:.25rem;border-radius:.125rem}.vr__tabs__list>ul::-webkit-scrollbar-thumb{background:rgba(80,92,124,.25);border-radius:.125rem;opacity:.5}.vr__tabs__list>ul>*{font-size:14.994px;font-size:1.071rem;line-height:18.004px;line-height:1.286rem;padding:1.286rem 0;margin:0 1rem 0 1.42857143rem;color:#505c7c;cursor:pointer;border-bottom:.21428571rem solid #fff;transition:all .25s;position:relative;white-space:nowrap}.vr__tabs__list>ul>:hover{color:#264ce0}.vr__tabs__list>ul>li.vr__tab--active{color:#264ce0;border-bottom:.21428571rem solid #264ce0}.vr__tabs__list>ul>li>i.close{position:absolute;right:-16.099px;right:-1.15rem;top:19.25px;top:1.375rem;font-size:11.9px;font-size:.85rem;margin:0;opacity:0;transition:all .25s}.vr__tabs__list>ul>li:hover>i.close{opacity:1}.vr__search{margin:0 .85714286rem;flex:0 0 437.5px;flex:0 0 31.25rem}.vr__search .vr__btn{display:none}.vr__search .ui.input{height:39.375px;height:2.8125rem;margin-left:.5rem}@media only screen and (max-width:700px){.vr__search .ui.dropdown,.vr__search .ui.input{margin:.5rem 0 0;width:100%}.vr__search .ui.input{margin-bottom:.5rem}.vr__search .vr__btn{width:100%;margin-top:.5rem;display:block}}.vr__video__sort{width:230px}.vr__videoItem__options{position:absolute;left:7px;left:.5rem;top:7px;top:.5rem}.vr__videoItem__options .ui.button{background-color:#f14f63!important;padding:.5rem}.vr__videoItem__options .ui.button:hover{opacity:.75}.vr__videoItems--preview{margin-bottom:1rem}.vr__videoItems--preview>.vr__videoItem{flex:0 0 280px!important;flex:0 0 20rem!important}.vr__videoItems--preview .vr__videoItem__desc,.vr__videoItems--preview .vr__videoItem__options{display:none}.vr__analysts>.vr__analystItem:not(:last-child){margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e2e2e2}.vr__analystItem{display:flex;align-items:center;justify-content:space-between}.vr__analystItem__name{font-size:14px;font-size:1rem}#cs-etf .ui.loading.segment:after,#cs-etf .ui.loading.segment:before{z-index:10}#cs-etf>.ui.grid>.row{padding:0}#cs-etf>.ui.grid>.row>.column{padding:.5rem}#cs-etf .ui.segment:not(.tab){height:100%}@media only screen and (max-width:767px){#cs-etf .ui.segment:not(.tab){height:auto;min-height:auto}}#cs-etf .ui.segment.loading:not(.tab){min-height:300px}.etf__title{display:flex;align-items:center;justify-content:space-between}.etf__title .ui.header{margin:0}.etf__sector{margin-top:.5em}.etf__change,.etf__close{font-size:2em}.etf__close{color:#2c6a9e}.etf__change{display:inline-flex;align-items:center;margin:.5em 0}.etf__change--red{color:#db2828}.etf__change--green{color:#21ba45}.etf__summary .ui.statistics>.statistic{height:100%}.etf__summary .ui.statistics>.statistic:not(:last-child){border-right:1px solid #e2e2e2;padding-right:1em}.etf__summary .update{font-size:.9em;color:grey}.etf__range .head,.etf__range .ui.header{text-align:center;font-weight:700}.etf__chart{position:relative}.etf__chart__note{font-size:.75em;position:absolute;bottom:1em;right:1em}.etf__chart__options{margin-bottom:2em}.etf__chart__options .item.hidden{display:none!important}.etf__chart__empty{position:relative}.etf__chart__empty:before{content:"Can't Render Chart. Data is Empty!";position:absolute;width:100%;height:100%;left:0;top:0;background-color:hsla(0,0%,100%,.7);display:flex;align-items:center;justify-content:center}.etf__chart__options .ui.secondary.menu .active.item{background-color:#00b5ad;color:#fff!important}.etf__tabs{height:auto;padding:0!important;position:relative}.etf__tabs>.ui.menu{position:absolute;top:0;width:100%;z-index:2}.etf__tabs>.ui.menu.fixed{position:fixed;left:.8em;width:calc(100% - 1.6em)}.etf__tabs .ui.segment.tab{margin:0;min-height:70vh}.etf__tabs .ui.inverted.pointing.menu .active.item:after{background-color:#00a49d!important}.etf__tabs .ui.very.basic.table thead tr{outline:1px solid #bbb;font-weight:700;background-color:#e8e8e8}.etf__tabs .ui.very.basic.table thead tr th{padding-top:.5em;padding-bottom:.5em}.etf__tabs .ui.very.basic.table tbody tr:hover{background-color:rgba(0,230,221,.2)!important}.etf__tabs .ui.very.basic.table tfoot tr{background-color:#e8e8e8}.etf__tabs .ui.very.basic.table tfoot tr th{font-weight:700}.etf__tabs--error{min-height:300px;color:#282828!important}.etf__tabs--error:before{content:"Data Not Found!";font-size:2em;position:absolute;width:100%;height:100%;left:0;top:0;background-color:hsla(0,0%,100%,.7);display:flex;align-items:center;justify-content:center}.etf__tabs__text{font-size:1.3em;line-height:2;font-weight:200}.etf__symbol{margin-right:1em!important;min-width:60px;text-align:center}.etf__overview__stats{margin-bottom:2em}.etf__overview__sunburstChart{width:100%;min-height:200px}.etf__overview__sunburstChart .cs-sector-treemap,.etf__overview__sunburstChart .indices__note{display:none}.etf__overview__sectorHoldings{padding-top:110px}.etf__overview__holdings table,.etf__overview__sectorHoldings table{font-size:.9em!important}.etf__summary .etf__change,.etf__summary .etf__close{font-size:1.8em}.etf__summary .ui.statistics{font-size:.9em}.etf__company__holdings{margin-top:1em}.etf__company__holdings .ui.header{margin:0}.etf__company__holdings table tbody tr td:not(:first-child){width:130px}.etf__announcements .annoucement-calendar-wrapper,.etf__announcements .annoucement-table-wrapper{height:auto!important;min-height:unset!important;padding-top:0!important;padding-left:0!important;padding-right:0!important;box-shadow:unset!important}.etf__announcements #announce-calendar{display:none!important}.etf__message{height:100%;display:flex;align-items:center;justify-content:center}.etf__financials .fiscal-year{position:absolute;top:1em;font-size:1.3em;right:1em;color:#a4a4a4}.etf__company{display:inline-flex;align-items:flex-start}.etf__table__wrapper{margin-top:1em;width:100%;overflow-x:scroll}.etf__table__wrapper table{min-width:800px}.etf__chart .line{stroke-width:2px}.etf__chart__mobile{display:none}.etf__chart__colorBlock{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}@media only screen and (max-width:767px){#cs-etf>.ui.grid>.row>.column{padding:.5em 0!important}.etf__chart__column{display:none!important}.etf__tabs .ui.menu{width:100%;overflow-x:scroll}.etf__overview__sectorHoldings{padding-top:0}.etf__financials .ui.tab.segment{padding:0}.etf__financials .fiscal-year{position:static;margin:1em 0}.etf__announcements .announce__filters{position:static;padding:0}.etf__tabs .cs-table-container{width:100%;overflow-x:scroll}.etf__tabs .cs-table-container table{min-width:1100px}.etf__tabs #cs-company-fundamentals{width:100%}.etf__title .ui.label{margin-right:.5em;margin-left:0!important}.etf__title .ui.header{font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.etf__tabs>.ui.menu.fixed{left:0;width:100%;background-color:#fff}.etf__overview__stats{margin-top:4em}.etf__summary__mobile{margin-bottom:1em}.etf__summary__mobile .etf__price{display:flex;align-items:center;justify-content:space-between;font-weight:300;margin-bottom:.5em}.etf__summary__mobile .etf__price>div{margin:0}.etf__summary__mobile .update{color:grey}.etf__chart__mobile{display:block}.etf__chart__mobile .x-grid,.etf__chart__mobile .y-grid{stroke:hsla(0,0%,86.3%,.52)}.etf__chart__mobile .area{opacity:.7}.etf__chart__mobile .etf__chart--red linearGradient stop{stop-color:#db2828}.etf__chart__mobile .etf__chart--red .line{stroke:#db2828}.etf__chart__mobile .etf__chart--green linearGradient stop{stop-color:#21ba45}.etf__chart__mobile .etf__chart--green .line{stroke:#21ba45}.etf__chart__mobile .ui.segment{padding:0;box-shadow:none}.etf__chart__mobile .etf__chart__note{bottom:-2em;right:0}.etf__chart__mobile .etf__chart__options .ui.secondary.menu{padding:.5em 0;margin:.5em 0;border-top:1px solid #e2e2e2;border-bottom:1px solid #e2e2e2}.etf__chart__mobile .etf__chart__options .ui.secondary.menu .item{font-size:.9em}.etf__chart__mobile .etf__chart__options .ui.secondary.menu .item:hover{background-color:#01b5ad!important}.etf__chart__mobile .etf__chart__options .ui.secondary.menu .item.active{border-radius:3px}}.ap__text--code{color:#dc143c;background-color:#f1f1f1;padding-left:4px;padding-right:4px}.ap__text--noBreak{white-space:nowrap}.ap__text--txtUpCase{text-transform:uppercase}.ap__text--noMg{margin:0!important}.ap__image{display:flex;align-items:center;justify-content:center}.ap__image img{width:100%}.ap__sidebar{position:fixed;height:100%;width:300px;background-color:#2c70b3;top:0;left:0;padding:1em;color:#fff}.ap__sidebar__title{display:flex;align-items:center}.ap__sidebar__titleImage{flex:0 0 60px;margin-right:1em}.ap__sidebar__titleText{font-size:1.5em;font-weight:700}.ap__sidebar__accordion{padding:1em;background-color:hsla(0,0%,100%,.08);border-radius:8px;margin-top:1em;max-height:70vh;overflow-y:scroll}.ap__sidebar__accordion .title{position:relative}.ap__sidebar__accordion .title:before{content:" ";position:absolute;width:calc(100% + 1em);height:calc(100% + 1em);top:-.5em;left:-.5em;border-radius:8px;background-color:hsla(0,0%,100%,0);transition:background-color .25s}.ap__sidebar__accordion .title:hover:before{background-color:hsla(0,0%,100%,.1)}.ap__sidebar__accordion .ui.vertical.menu>.item:last-child{margin-bottom:0}.ap__sidebar__accordion .ui.vertical.menu>.item:first-child{margin-top:0}.ap__sidebar__accordion .ui.vertical.menu .item{transition:color .25s;cursor:pointer}.ap__sidebar__accordion .ui.vertical.menu .item .item[data-section]{padding-left:1em!important;border-left:2px solid hsla(0,0%,100%,.75)}.ap__sidebar__accordion .ui.vertical.menu .item:hover{color:#fff}.ap__content{width:calc(100vw - 300px);height:100vh;margin-left:300px;padding:1em}.ap__content>.ui.segment{height:100%;overflow-y:scroll}.ap__section,.ap__section__sub{display:none}.ap__section--active,.ap__section__sub--active{display:block}.ap__sidebar__nav{margin:1em 0;padding:1em;border-radius:8px;display:flex;background-color:#407cba;align-items:center;justify-content:space-between}.ap__sidebar__navItem{font-size:1em;color:hsla(0,0%,100%,.5);cursor:pointer;transition:color .25s}.ap__sidebar__navItem--active,.ap__sidebar__navItem:hover{color:#fff}.ap__table tbody tr:hover td{background-color:rgba(76,175,80,.06)!important}.ap__perfomanceTable thead th:first-child{color:#2d699e!important;font-size:1.5em;width:250px}.ap__perfomanceTable tr td.definition,.ap__perfomanceTable tr td:first-child:not(.ignored){background:#e5f3ff!important}.ap__messages{position:fixed;bottom:0;right:0;padding:1em;z-index:10001;max-width:1000px}.ap__imageUpload .two.column.wide{display:flex;align-items:center}.ap__imageUpload .ui.input{position:relative}.ap__imageUpload .ui.input:hover{opacity:.75}.ap__imageUpload input{opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.ap__personSection--details table tbody tr>td:first-child{width:250px}.ap__personSection--uploadImageForm{display:flex;align-items:flex-end;min-height:150px;max-height:150px}.ap__personSection--uploadImageForm .ui.image{height:150px;width:150px;overflow:hidden;margin-right:1rem;display:flex;justify-content:center;align-items:center;border:1px solid #e2e2e2}.ap__fileupload{overflow:hidden}.ap__fileupload .ui.button{position:relative}.ap__fileupload .ui.button input[type=file]{opacity:0;position:absolute;top:0;left:0;width:100%!important;height:100%;z-index:10}.ap__companyStatementLogs{padding:1rem;border-radius:.25rem;border:.0625rem solid #e2e2e2;margin:1rem 0}.ap__section[data-section=tracking-sheet] .ap__table{table-layout:fixed}.ap__section[data-section=tracking-sheet] .ap__table tbody>tr>td:first-child,.ap__section[data-section=tracking-sheet] .ap__table thead>tr>th:first-child{left:0;position:-webkit-sticky;position:sticky;width:175px;width:12.5rem;z-index:2;background-color:#fafafa!important}.ap__section[data-section=tracking-sheet] .ap__table td,.ap__section[data-section=tracking-sheet] .ap__table th{width:227.5px;width:16.25rem}.ap__sidebar__accordion::-webkit-scrollbar{width:8px}.ap__sidebar__accordion::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8);border-radius:6px}.ap__sidebar__accordion::-webkit-scrollbar-track{background-color:rgba(0,0,0,.2)}@font-face{font-family:Roboto Condensed;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/robotocondensed/v31/ieVo2ZhZI2eCN5jzbjEETS9weq8-_d6T_POl0fRJeyWyovBJ.ttf) format("truetype")}.cs-report-page .mmaks-table{font-size:16.099px!important;font-size:1.15rem!important;font-family:Helvetica}.cs-report-page .mmaks-table table{border-collapse:collapse}.cs-report-page .mmaks-table table thead th{color:#fff;background-color:#ff7b18;padding:.25rem;font-size:17.5px;font-size:1.25rem;height:50px}.cs-report-page .mmaks-table table tbody{text-align:left}.cs-report-page .mmaks-table table tbody tr td{font-weight:700;padding:.35rem;font-size:19.599px;font-size:1.4rem}.cs-report-page .mmaks-table table .total td{border-top:2px solid #000;border-bottom:2px solid #000}.cs-report-page .mmaks-table .header{display:flex;justify-content:space-between;align-items:center;font-weight:bolder}.cs-report-page .mmaks-table .footer{display:none}.cs-report-page .mmaks-table .footer>div{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0}.cs-report-page .mmaks-table .footer .note{font-size:9.799px;font-size:.7rem;line-height:1;color:grey;text-align:justify}.cs-report-page .mmaks-table .footer .note__padded{padding:0 .5rem}.cs-report-page .mmaks-table .footer .footer__logo>img{width:100%}.cs-report-page .mmaks-table .footer .footer__logo.footer__logo--mmaks{width:100px;flex:0 0 auto}.cs-report-page .mmaks-table .footer .footer__logo.footer__logo--cs{width:50px;flex:0 0 auto}.cs-report-page .mmaks-table.cell-borders table,.cs-report-page .mmaks-table.cell-borders td,.cs-report-page .mmaks-table.cell-borders th{border:1px solid grey}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tr>:first-child,.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tr>:nth-child(4){border-right:1px dotted grey}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr td:not(:first-child){text-align:right}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:nth-child(4){background-color:#d3d3d3}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--cumulative-activity table{width:100%;margin:3rem 0 2rem}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--cumulative-activity table tr>:first-child{border-right:1px dotted grey}.cs-report-page .mmaks-table.mmaks-table--fipiLipi .wrapper--cumulative-activity table tbody tr td:not(:first-child){text-align:right}.cs-report-page .cs-report__heroHeader{display:flex;align-items:center;justify-content:space-between}.cs-report-page .cs-report__heroHeader__collab{padding:1rem;display:none}.cs-report-page .cs-report__heroHeader__collab__logos{display:flex;align-items:center;height:43.75px;height:3.125rem}.cs-report-page .cs-report__heroHeader__collab__logos>img{height:100%}.cs-report-page .cs-report__heroHeader__collab__text{padding:.25rem;text-decoration:underline;color:#aeb0ae;width:122.5px;width:8.75rem;font-size:12.25px;font-size:.875rem;line-height:1.5}.cs-report-page .cs-report__heroHeader>div{flex:1}.cs-report-page .cs-report__heroHeader>.cs-report__heroHeader__collab{flex:none}.cs-report-page .cs-report__heroHeader__text{font-size:35px;font-size:2.5rem;line-height:38.5px;line-height:2.75rem;font-weight:900}.cs-report-page .cs-report__heroHeader__text--small{font-size:17.5px;font-size:1.25rem;line-height:18.2px;line-height:1.3rem}.cs-report-page .cs-report__heroHeader__text--flex{display:flex}.cs-report-page .cs-report__heroHeader__text--flex *{flex:1}.cs-report-page .cs-report__compTable table{width:100%;border-collapse:collapse}.cs-report-page .cs-report__compTable table tbody tr:nth-child(odd) td{background:#f2f2f2}.cs-report-page--mmaks .cs-report__heroHeader>.cs-report__heroHeader__collab--mmaks,.cs-report-page--mmaks .mmaks-table .footer--mmaks{display:block}.cs-report-page--mmaks .cs-report__heroHeader__text--mini{font-size:14px;font-size:1rem;line-height:16.099px;line-height:1.15rem}.cs-report-page--mmaks .cs-report__heroHeader .cs-report__heroHeader__text--small{margin-top:1rem}.cs-report-page--mmaks .cs-report__heroHeader__collab{padding:1rem}.cs-report-page--mmaks .cs-report__heroHeader__collab__logos{display:flex;align-items:center;height:43.75px;height:3.125rem}.cs-report-page--mmaks .cs-report__heroHeader__collab__logos>img{height:100%}.cs-report-page--mmaks .cs-report__heroHeader__collab__text{padding:.25rem;text-decoration:underline;color:#aeb0ae;width:122.5px;width:8.75rem;font-size:12.25px;font-size:.875rem;line-height:1.5}.cs-report-page--mmaks .cs-report__note{color:#b8b2b0;font-size:11.9px;font-size:.85rem}.cs-report-page--mmaks .cs-report__compTable table td,.cs-report-page--mmaks .cs-report__compTable table th{font-size:24.5px;font-size:1.75rem;text-align:center;padding:.4rem;height:28px;height:2rem}.cs-report-page--mmaks .cs-report__compTable table thead th{border-top:.25rem solid #e4813d}.cs-report-page--mmaks .cs-report__compTable table .cs-report__compTable__emptyRows{background-color:#fff;min-height:65.625px;min-height:4.6875rem;display:flex;align-items:center;justify-content:center}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--headBorderBottom table thead>tr:last-child>th{border-bottom:.25rem solid #e4813d}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--headlineHeight table th{line-height:31.5px;line-height:2.25rem}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--fontFamRoboto table{font-family:Roboto Condensed,sans-serif}.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--fontSizeMed table td,.cs-report-page--mmaks .cs-report__compTable.cs-report__compTable--fontSizeMed table th{font-size:18.9px;font-size:1.35rem}.cs-report-page--mra .mmaks-table .footer--summit,.cs-report-page--summit-leverage .mmaks-table .footer--summit,.cs-report-page--summit .mmaks-table .footer--summit{display:block}.cs-report-page--mra .mmaks-table table thead th,.cs-report-page--summit-leverage .mmaks-table table thead th,.cs-report-page--summit .mmaks-table table thead th{background-color:#0078c0}.cs-report-page--mra .mmaks-table .green,.cs-report-page--summit-leverage .mmaks-table .green,.cs-report-page--summit .mmaks-table .green{color:#15b73c}.cs-report-page--mra .mmaks-table .red,.cs-report-page--summit-leverage .mmaks-table .red,.cs-report-page--summit .mmaks-table .red{color:#c00000}.cs-report-page--mra .cs-report__heroHeader,.cs-report-page--summit-leverage .cs-report__heroHeader,.cs-report-page--summit .cs-report__heroHeader{padding:.5rem 1rem}.cs-report-page--mra .cs-report__heroHeader>.cs-report__heroHeader__collab--summit,.cs-report-page--summit-leverage .cs-report__heroHeader>.cs-report__heroHeader__collab--summit,.cs-report-page--summit .cs-report__heroHeader>.cs-report__heroHeader__collab--summit{display:block}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__collab__logos,.cs-report-page--summit-leverage .cs-report__heroHeader .cs-report__heroHeader__collab__logos,.cs-report-page--summit .cs-report__heroHeader .cs-report__heroHeader__collab__logos{height:56px;height:4rem;padding:0}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text,.cs-report-page--summit-leverage .cs-report__heroHeader .cs-report__heroHeader__text,.cs-report-page--summit .cs-report__heroHeader .cs-report__heroHeader__text{color:#0078c0;font-size:28px;font-size:2rem}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text--small,.cs-report-page--summit-leverage .cs-report__heroHeader .cs-report__heroHeader__text--small,.cs-report-page--summit .cs-report__heroHeader .cs-report__heroHeader__text--small{color:#d40619;font-size:14px;font-size:1rem}.cs-report-page--mra .cs-report__compTable table,.cs-report-page--summit-leverage .cs-report__compTable table,.cs-report-page--summit .cs-report__compTable table{width:100%;border-collapse:collapse}.cs-report-page--mra .cs-report__compTable table tr td,.cs-report-page--mra .cs-report__compTable table tr th,.cs-report-page--summit-leverage .cs-report__compTable table tr td,.cs-report-page--summit-leverage .cs-report__compTable table tr th,.cs-report-page--summit .cs-report__compTable table tr td,.cs-report-page--summit .cs-report__compTable table tr th{padding:.15rem;font-size:16.099px;font-size:1.15rem}.cs-report-page--mra .cs-report__compTable table thead tr:first-child th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr:first-child th,.cs-report-page--summit .cs-report__compTable table thead tr:first-child th{background-color:#0078c0;color:#fff}.cs-report-page--mra .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--summit .cs-report__compTable table thead tr:nth-child(2) th{background-color:#d0d0d0;color:#d40619}.cs-report-page--mra .cs-report__compTable--c2c,.cs-report-page--mra .cs-report__compTable--m2m,.cs-report-page--mra .mmaks-table .footer--summit,.cs-report-page--summit-leverage .cs-report__compTable--c2c,.cs-report-page--summit-leverage .cs-report__compTable--m2m,.cs-report-page--summit .cs-report__compTable--c2c,.cs-report-page--summit .cs-report__compTable--m2m{display:none}.cs-report-page--mra .mmaks-table .footer--mra{display:block}.cs-report-page--mra .mmaks-table table thead th{background-color:#79b9b9!important;padding:0;color:#000}.cs-report-page--mra .mmaks-table table td,.cs-report-page--mra .mmaks-table table th{font-size:17.5px!important;font-size:1.25rem!important;text-align:center!important;padding:.25rem!important}.cs-report-page--mra .mmaks-table table thead tr:first-child th{height:30px}.cs-report-page--mra .mmaks-table table tbody tr td:first-child,.cs-report-page--mra .mmaks-table table thead tr:nth-child(2) th{background-color:#d0d0d0!important;color:#000;text-align:center}.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:nth-child(4){background-color:#fff!important}.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:last-child,.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr>:nth-child(5){background-color:#e6e6e6!important}.cs-report-page--mra .mmaks-table.mmaks-table--fipiLipi .wrapper--fipi-lipi table tbody tr:nth-child(3)>td:not(:first-child){background-color:#cbe5e6!important}.cs-report-page--mra .cs-report__heroHeader>.cs-report__heroHeader__collab{display:none}.cs-report-page--mra .cs-report__heroHeader>.cs-report__heroHeader__collab--mra{display:block}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text{color:#79b9b9}.cs-report-page--mra .cs-report__heroHeader .cs-report__heroHeader__text--small{color:#000}.cs-report-page--mra .cs-report__compTable table thead tr:first-child th{background-color:#79b9b9}.cs-report-page--mra .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--mra .cs-report__compTable table thead tr th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr:nth-child(2) th,.cs-report-page--summit-leverage .cs-report__compTable table thead tr th{color:#000}.cs-report-page--mra .cs-report__compTable table tbody tr.sub-total-row td,.cs-report-page--summit-leverage .cs-report__compTable table tbody tr.sub-total-row td{background:#dcdbdb!important}.cs-report-page--mra .cs-report__compTable table tbody tr.total-row td,.cs-report-page--summit-leverage .cs-report__compTable table tbody tr.total-row td{background:#d0d0d0!important}#reports-screenshot-container{padding:1rem;position:fixed;top:200vh;left:200vw;background-color:#fff;z-index:20}#reports-screenshot-container>div*{background-color:transparent}.cs-clientRes .__heading,.cs-clientRes .__para{font-weight:300!important;display:inline-block;margin:0!important}@media only screen and (max-width:767px){.cs-clientRes .__heading,.cs-clientRes .__para{font-size:1.25rem!important}}.cs-clientRes .__group{display:flex}.cs-clientRes .__group.--alignCenter{align-items:center}.cs-clientRes .__group.--justifySpcBtw{justify-content:space-between}.cs-clientRes .__group.--justifyCenter{justify-content:center}.cs-clientRes .__group.--dirCol{flex-direction:column}.cs-clientRes .__group.--heightFitContent{height:100%}.cs-clientRes .__preview{height:77vh}@media only screen and (max-width:767px){.cs-clientRes .__preview{height:55vh}}.cs-clientRes .__preview .__iframe{width:100%;height:72vh;background:grey}@media only screen and (max-width:767px){.cs-clientRes .__preview .__iframe{height:50vh}}.cs-clientRes .__categories .ui.accordion>.title{font-size:1.5em;font-weight:300}.cs-clientRes .__categories .ui.accordion>.content{padding:0;background:hsla(0,0%,48.6%,.8)}.cs-clientRes .__categories .ui.accordion>.content .__list .list{padding:.5rem;max-height:262.5px;max-height:18.75rem;overflow-y:scroll}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item{display:flex;gap:2.1px;gap:.15rem;align-items:center}@media only screen and (max-width:767px){.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item>.content>.header{font-size:1.25rem;font-weight:700}}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item .item__controls{display:flex;gap:3.5px;gap:.25rem}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item .item__controls i{color:#fff}.cs-clientRes .__categories .ui.accordion>.content .__list .list>.item .item__controls i:hover{opacity:.75;cursor:pointer}.cs-clientRes .__categories .ui.accordion>.content .description{display:flex;flex-wrap:wrap;gap:3.5px;gap:.25rem}.cs-clientRes .__categories .ui.accordion>.content .description .ui.label{margin:0}@media only screen and (max-width:767px){.cs-clientRes .__categories .ui.accordion>.content .description .ui.label.tiny:not(.grey){display:none}}.cs-clientRes .__categories .ui.accordion>.content .__list{padding-top:.5rem}.cs-clientRes .__categories .ui.accordion .__archive{width:calc(100% - 1rem);margin-left:.5rem}#res-search-research .__searchResults{min-height:350px;min-height:25rem;max-height:350px;max-height:25rem;overflow-y:scroll;padding:0}#res-search-research .__searchResults th{position:-webkit-sticky;position:sticky;top:0;background-color:#fff}#res-search-research .__searchResults .__previewPdf{cursor:pointer}#res-search-research .__searchResults .__previewPdf:hover{text-decoration:underline}#res-search-research .__searchResults .__emptyMessage{text-align:center;color:#fff;background-color:rgba(0,0,0,.4)}#res-search-research .__searchResults table{min-width:994px;min-width:71rem}@media only screen and (max-width:767px){#res-search-research .__toggleFilters span{display:none}}#res-add-research-modal .__dropzone{border:2px dashed #0087fe;font-size:2em;margin-top:1.5rem;margin-bottom:0;min-height:175px;min-height:12.5rem}#res-add-research-modal .__dropzone .dz-message{font-weight:300}#res-add-research-modal .__dropzone .dz-filename{margin-top:3.5em}#res-add-research-modal .__dropzone .dz-details{padding:1em}#res-add-research-modal .__dropzone .dz-progress{top:40%}#res-add-research-modal .__dropzone .dz-preview{z-index:1}#res-add-research-modal .__dropzone .dz-preview .dz-error-message{top:154px!important;top:11rem!important}#res-add-research-target-modal{max-width:743.75px;max-width:53.125rem}#res-add-research-target-modal .__list{max-height:218.75px;max-height:15.625rem;overflow-y:scroll}#res-add-research-target-modal .__listItem{display:flex;align-items:center;justify-content:space-between;gap:3.5px;gap:.25rem;padding-right:.15rem}#res-add-research-target-modal .__listItem .__header{display:flex;gap:3.5px;gap:.25rem;align-items:center;font-size:11.9px;font-size:.85rem}#res-add-research-target-modal .__listItem .__header>a{min-width:49px;min-width:3.5rem;text-align:center;margin-right:.25rem}#res-add-research-target-modal .__contentWrapper{padding:0;box-shadow:none}#res-add-research-target-modal .__listItem:after{display:none}#res-add-analyst .__list,#res-manage-analysts .__list,#res-manage-categories .__list{max-height:262.5px;max-height:18.75rem;overflow-y:scroll}#res-add-analyst .__list .__item,#res-manage-analysts .__list .__item,#res-manage-categories .__list .__item{display:flex;align-items:center;justify-content:space-between}#res-add-analyst .__list .__item .content,#res-manage-analysts .__list .__item .content,#res-manage-categories .__list .__item .content{gap:3.5px;gap:.25rem;display:flex;align-items:center}#res-add-analyst .__list .__item:after,#res-manage-analysts .__list .__item:after,#res-manage-categories .__list .__item:after{display:none}#res-add-analyst .__segment,#res-manage-analysts .__segment,#res-manage-categories .__segment{padding:0;box-shadow:none}#disclaimer-box{width:500px;margin:0 0 0 -15em}#disclaimer-box .ui.segment{border:1px solid #dedede;height:400px;overflow-y:scroll}#disclaimer-box strong{font-weight:bolder}#disclaimer-box li,#disclaimer-box p{font-weight:lighter}#disclaimer-box li{line-height:1.5}@media only screen and (max-width:767px){#disclaimer-box{width:100%}#disclaimer-box .ui.segment{height:250px}}#cs-footer{background-color:#1b5586!important;padding:3em 0;font-weight:lighter}#cs-footer.cal{background-color:#029992!important}#cs-footer .ui.divider{margin:2rem 0}#cs-footer .cs-disclaimer-footer{text-align:left;font-size:.8em;line-height:normal}@media only screen and (max-width:767px){#cs-footer{padding:0;text-align:center}#cs-footer .column{border-top:1px solid #42729a;order:3}#cs-footer .cs-disclaimer-footer{padding:1em;text-align:justify}#cs-footer .cs-show-terms{margin-bottom:2em}#cs-footer .column.social-column{order:2}#cs-footer .column.footer-logo{order:1}}#cs-particles-js{overflow:hidden;position:absolute;width:100%;height:100%;background-color:#029992;background-image:url();background-repeat:no-repeat;background-size:cover;background-position:50% 50%}#csTicker{background:#4c4c4c;display:flex;height:34px;font-size:12px;color:#fff;overflow:hidden;position:relative;width:100%;z-index:15}#csTicker>.indices-wrapper{width:500px;position:relative;background:#333}#csTicker>.indices-wrapper>.border{position:absolute;right:-7px;height:42px;width:42px;background:#333;transform:skew(-22deg,0deg);border-right:1px solid #000;box-shadow:2px -2px 3px #000}#csTicker>.indices-wrapper>.indices{position:relative}#csTicker>.stocks-wrapper{width:calc(100% - 200px);overflow:hidden}#csTicker .item>.wrapper{padding:2px 7px;display:block;text-decoration:none;color:#fff}#csTicker .item .name{font-weight:900;line-height:1.3;color:#ccc}#csTicker .item .value{font-weight:100;line-height:1.3}#csTicker .item .cols{display:flex;justify-content:space-between;align-items:center}#csTicker .change-wrapper{font-size:1.3em;margin-left:10px;text-shadow:1px 1px 0 #111}#csTicker .indices{display:flex}#csTicker .indices .item{width:33.3333333%}#csTicker .stocks{display:flex}#csTicker .item{border-left:1px solid #1d1d1d}#csTicker .stocks .item{border-left:1px solid #404040}#csTicker .pos{color:#26d226}#csTicker .neg{color:#ff8686}@media only screen and (max-width:767px){#csTicker{top:60px!important}#csTicker>.indices-wrapper{width:130px}.item[data-symbol=ALLSHR],.item[data-symbol=KMIALLSHR]{display:none}#csTicker .indices .item{width:100%}#csTicker>.stocks-wrapper{width:calc(100% - 130px);overflow:hidden}#csTicker .item>.wrapper{padding:2px 5px}}#cs-notify{position:fixed;right:0;bottom:0;z-index:102}#cs-notify .notify-button-wrapper{display:none;padding:0 1em 1em;justify-content:flex-end}#cs-notify .notify-button-wrapper--show{display:flex;opacity:1}#cs-notify .notify-wrapper{padding:1em}@media only screen and (max-width:767px){#cs-notify .notify-wrapper{font-size:.85em}}#cs-notify .notify-wrapper>.ui.message:not(:last-child){opacity:.5}#cs-notify .notify-wrapper>.ui.message:hover{opacity:1}#cs-notify .notify-wrapper>.ui.message{overflow:hidden;position:relative;display:none;background-color:#fff;box-shadow:0 3px 20px rgba(0,0,0,.4588235294117647);width:400px;transition:opacity .5s}@media only screen and (max-width:767px){#cs-notify .notify-wrapper>.ui.message{width:100%}}#cs-notify .notify-wrapper>.ui.message .ui.segment{color:#000}@media only screen and (max-width:767px){#cs-notify .notify-wrapper>.ui.message .ui.segment{display:none}}#cs-notify .notify-wrapper>.ui.message .ui.label{margin-right:.5em;text-decoration:none}#cs-notify .notify-wrapper>.ui.message .loading-bar{background-color:#2c6aab;height:5px;position:absolute;bottom:0;left:0;width:100%;transition:all .2s ease-out}#cs-notify .notify-wrapper>.ui.message .type-pdf{display:flex;align-items:center;justify-content:space-between;margin-top:.5em}#cs-notify .notify-wrapper>.ui.message a{text-decoration:underline}#cs-notify .notify-wrapper>.ui.message p{margin:.5em 0}@media only screen and (max-width:767px){#cs-notify{width:100%}#cs-notify .header .name{display:none}}.cs-content{margin-top:0!important}@media only screen and (max-width:767px){.ui.container.grid.cs-content{margin-left:0!important;margin-right:0!important;margin-top:6.75em!important;overflow:hidden}.ui.container.grid.cs-content .sixteen.wide.column{padding:0}}.ui.table td.red,.ui.table th.red{color:#db2828}.ui.table td.green,.ui.table th.green{color:#21ba45}.ui.table td.blue,.ui.table th.blue{color:#2c6a9e}#cs-market-overview .ui.tab,#cs-market-performers .ui.tab{min-height:200px}@media only screen and (max-width:767px){#cs-summary .cs-chart-options .ui.button{padding-left:1em;padding-right:1em}#cs-summary .cs-chart-options .cs-chart-collapse{display:none}}#cs-summary-stats{position:relative;min-height:150px}@media only screen and (max-width:767px){#cs-summary-stats .ui.grid .column{padding:1em!important}}#cs-summary-stats .ui.horizontal.segment{padding-left:0}#cs-summary .cs-range-scale{margin-bottom:2em}#cs-trade-table tr.red td{color:#db2828}#cs-trade-table tr.green td{color:#21ba45}#cs-article-content{margin:1em 0;font-size:1.3em;line-height:1.6em}.ui.horizontal.label.cs-symbol-label{min-width:5em}#cs-announcements .cs-details.horizontal.list>.item{margin-right:1em;margin-left:0;min-width:120px}#cs-announcements .cs-details.horizontal.list>.item:first-child{border-left:1px solid rgba(34,36,38,.15);padding-left:.5em!important}#cs-announcements .cs-details.list>.item .description{font-size:.8em;color:#999}#cs-announcements .negative{color:#e60d0d}#cs-announcements .cs-table thead tr th[data-key=actions],#cs-announcements .cs-table thead tr th[data-key=date]{width:130px}#cs-announcements .cs-table thead tr th[data-key=name]{width:200px}#cs-announcements .cs-table thead tr th[data-key=verified]{width:80px}#cs-announcements .ui.tab[data-tab=financials] .cs-table thead tr th[data-key=details]{width:695px}#cs-announcements .cs-table thead tr th[data-key=link]{width:45px}#cs-announcements .cs-table tbody tr td .company{display:flex;align-items:center}#cs-announcements .cs-table tbody tr td .company .label{margin-right:.5em}#cs-announcements .cs-table .edit .ratio-fields{display:flex;align-items:center}#cs-announcements .cs-table .edit .ratio-fields input{width:70px}#cs-announcements .cs-table .edit .ratio-fields span{padding:0 .5em}@media only screen and (max-width:767px){#cs-announcements .ui.menu{width:100%}#cs-announcements .ui.tab.basic.segment{padding:0}}#cs-announcements #cs-announcements-filters{padding:1em;background:#eee;border:1px solid #ccc;border-radius:5px}#cs-companies .cs-table{min-height:500px;position:relative;margin-top:180px}#cs-companies .cs-table .list .description{color:rgba(0,0,0,.4);font-size:.8em;font-weight:700}@media only screen and (max-width:767px){#cs-companies .cs-table{margin:0}}#cs-companies .ball-grid-beat>div{background-color:#2c6a9e}#cs-companies-filters{position:fixed;z-index:1;top:128px;width:calc(100% - 5em);left:0;box-shadow:0 7px 20px 0 rgba(46,61,73,.15);margin:auto 2.5em .8em}#cs-companies-filters .ui.form input[type=number],#cs-companies-filters .ui.selection.dropdown{border:1px solid #1d527f}#cs-companies-filters .ui.selection.dropdown{width:100%}#cs-companies-filters .filter-options .field.hidden{display:none}#cs-companies-filters .filter-options .inline.fields .field>.ui.input{display:flex}#cs-companies-filters .filter-options .ui.dropdown>.text{font-size:.9em}#cs-companies-filters .filter-options .ui.selection.year.dropdown{width:8em;min-width:8em}#cs-companies-filters .filter-options .inline.fields{margin-bottom:0}#cs-companies-filters .filter-options .ui.green.label{background-color:#18a739!important;border-color:#18a739!important}#cs-companies-filters .ui.inverted.form .inline.fields .field>label{color:#fff}#cs-companies-filters .filters .ui.label{font-size:1em;font-weight:400}#cs-companies-filters .ui.image.label .detail{margin-left:0;margin-right:0;padding-left:.4em;padding-right:.4em;border-radius:0;opacity:.8;font-weight:700}@media only screen and (max-width:767px){#cs-companies-filters{position:inherit;margin:0;width:100%;box-shadow:none;top:0}#cs-companies-filters .filters .ui.label{line-height:1.4em;margin-left:0;margin-top:.3em}}@media only screen and (max-width:767px){.cs-table{overflow-x:scroll;width:100%}.cs-table table{width:800px!important}}.cs-opinion-list.dashboard{height:560px;height:40rem;overflow-y:scroll}.cs-opinion-list.research{display:flex;align-items:center;width:100%;overflow-x:hidden;flex-wrap:nowrap}.cs-opinion-list .opinion{border:1px solid #e2e2e2;border-radius:5px;padding:1em;margin:.5em 0 1em;background-color:#f4f4f4}.cs-opinion-list .opinion .row{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.cs-opinion-list .opinion .row .col{width:50%}.cs-opinion-list .opinion .row .col .head{color:#c3c1c1;font-size:.8em;margin:0}.cs-opinion-list .opinion .row .col .date{font-size:.8em;color:#c3c1c1}.cs-opinion-list .opinion .row.target-row{margin-top:.5em}.cs-opinion-list .opinion .company .symbol-file{display:flex;align-items:center;margin-bottom:.3em}.cs-opinion-list .opinion .company .symbol-file .symbol{font-size:1.2em;font-weight:700}.cs-opinion-list .opinion .company .symbol-file .open-pdf{margin-left:.5em;cursor:pointer}.cs-opinion-list .opinion .company .price{color:#28a5df}.cs-opinion-list .opinion .company .price span{margin-left:.5em}.cs-opinion-list .opinion .up-down{text-align:right}.cs-opinion-list .opinion .up-down .ui.label{margin-top:.3em}.cs-opinion-list .opinion .ui.label{text-transform:uppercase;color:#fff}.cs-opinion-list .opinion .ui.label.buy{background-color:#00b749}.cs-opinion-list .opinion .ui.label.sell{background-color:#e72c1c}.cs-opinion-list .opinion.buy{border-left:7px solid #00b749}.cs-opinion-list .opinion.sell{border-left:7px solid #e72c1c}.cs-opinion-list .opinion.hold{border-left:7px solid #2c6a9e}.cs-opinion-list .opinion.passed{opacity:.5}.cs-opinion-list.dashboard .opinion .row.target-row .col{width:auto}.company-type{display:inline-flex;margin-left:.5em;font-size:1.4em}.company-type .type{color:#fff;background-color:teal;position:relative;font-size:.5em;padding:0 .7em;border:1px solid #fff;text-align:right;border-radius:25px;line-height:2}.company-type .type.red{background-color:#db2828}@media not all and (min-resolution:0.001dpcm){.ui.modal i.close.icon{top:0;right:0}}.cs__loader{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fff}.cs__loader .sp{width:32px;height:32px}.cs__loader .sp-circle{border:4px solid rgba(0,0,0,.25);border-top-color:#000;border-radius:50%;-webkit-animation:spCircRot .6s linear infinite;animation:spCircRot .6s linear infinite}@-webkit-keyframes spCircRot{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes spCircRot{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}
/*# sourceMappingURL=data:application/json;base64,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Z0VBQ0Usd0RBQTRELENBQzdELEFBQ0Qsc0dBSUUsd0RBQTRELENBQzdELEFBQ0QscURBRUUsd0RBQTRELENBQzdELEFBQ0Qsb0VBRUUsd0RBQTRELENBQzdELEFBQ0QsdURBRUUsd0RBQTRELENBQzdELEFBQ0Qsb0JBQ0Usd0RBQTRELENBQzdELEFBRUQsZUFDRSw2QkFBK0IsQ0FDaEMsQUFDRCxtQkFDRSx1QkFBeUIsQ0FDMUIsQUFDRCxvQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSw0QkFBOEIsQ0FDL0IsQUFDRCxxQkFDRSw0QkFBOEIsQ0FDL0IsQUFDRCxxQkFDRSw0QkFBOEIsQ0FDL0IsQUFDRCxzQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCx1QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx1QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx1QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxtQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxvQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxtQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxvQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxtQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxvQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxtQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxvQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3QkFDRSw2QkFBK0IsQ0FDaEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx3QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx3QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx3QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCw4QkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCw4QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCw4QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCw4QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCx5QkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQkFDRSxnQ0FBa0MsQ0FDbkMsQUFDRCxpQkFDRSwyQkFBNkIsQ0FDOUIsQUFDRCxzQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxpQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxnQkFDRSwrQkFBaUMsQ0FDbEMsQUFDRCxp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Q0FDakMsQUFDRCx1Q0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCxzQ0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCxzQ0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCw2Q0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCxxQ0FFRSw0QkFBZ0MsQ0FDakMsQUFDRCx3REFFRSw2QkFBaUMsQ0FDbEMsQUFDRCxpREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCwyQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw0Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw0Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxzQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxvQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxnREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCxzQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw4Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxrREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw4Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCwyQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx3Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw4Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxvQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxnREFFRSw2QkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCw2Q0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxzQ0FFRSw2QkFBaUMsQ0FDbEMsQUFDRCxxQ0FFRSwyQkFBK0IsQ0FDaEMsQUFDRCwrREFHRSwrQkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCw2Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxpREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxnREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw2Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxREFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw4Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw2Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxnREFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyREFHRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3REFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSwyQkFBK0IsQ0FDaEMsQUFDRCx3Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCwwQ0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCx1Q0FFRSwrQkFBaUMsQ0FDbEMsQUFDRCw2Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw4Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxvQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxnREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxnREFFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwyQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx5Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx3Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxxQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCx1Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCxzQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwrQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCwwQ0FFRSxnQ0FBa0MsQ0FDbkMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxnRUFHRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwyQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx5Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw4Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxrREFFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxvQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCwwQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCw0Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx1Q0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxxQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCxzQ0FFRSxpQ0FBbUMsQ0FDcEMsQUFDRCx3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QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwwQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxpQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxrQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwyQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwyQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxrQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxpQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx3QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwwQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwwQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxpQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxnQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx1QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxnQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxnQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx1QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxnQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxrQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwyQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwyQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxrQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxrQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCwyQkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCwyQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxrQ0FDRSx1QkFBMEIsQ0FDM0IsQUFFRCxnQkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx1QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCx5QkFDRSwrQkFBaUMsQ0FDbEMsQUFFRCx5QkFDRSx1QkFBMEIsQ0FDM0IsQUFDRCxnQ0FDRSx1QkFBMEIs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QUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELGtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsK0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxnQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5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QUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxnQ0FDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELHdCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUlELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELHdDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5Q0FDRSxlQUFpQixDQUNsQixBQUNELHNDQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELG1DQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELHFC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LENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw4QkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELHFCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsdUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx3QkFDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsOEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHlCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQkFDRSxlQUFpQixDQUNsQixBQUNELHNCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELG1CQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx5QkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsd0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxxQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxvQkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELG1DQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0JBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQkFDRSxlQUFpQixDQUNsQixBQUNELG9CQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDZCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCx1QkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QseUJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQkFDRSxlQUFpQixDQUNsQixBQUNELHVCQUNFLGVBQWlCLENBQ2xCLEFB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LENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELG9DQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQkFDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsaUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELGtDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsc0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQ0FDRSxlQUFpQixDQUNsQixBQUNELHVDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsb0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxpQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw0QkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwrQkFDRSxlQUFpQixDQUNsQixBQUNELDhCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELCtCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsNEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxnQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QscUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwwQkFDRSxlQUFpQixDQUNsQixBQUNELDBCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCwyQ0FDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELHFDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELGtDQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQ0FDRSxlQUFpQixDQUNsQixBQUNELGlDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMkJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELDRCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCw2QkFDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0QsZ0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQ0FDRSxlQUFpQixDQUNsQixBQUNELGtDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsMEJBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxrQ0FDRSxlQUFpQixDQUNsQixBQUNELGdDQUNFLGVBQWlCLENBQ2xCLEFBQ0QsbUNBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxzQ0FDRSxlQUFpQixDQUNsQixBQUNELDJCQUNFLGVBQWlCLENBQ2xCLEFBQ0Qsa0NBQ0UsZUFBaUIsQ0FDbEIsQUFDRCxtQ0FDRSxlQUFpQixDQUNsQixBQUNELHNDQUNFLGVBQWlCLENBQ2xC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Q0UsV0FBWSxBQUNaLGtCQUE4QixDQUMvQixBQUNELHlDQUNFLFlBQWMsQ0FDZixBQUNELHVCQUNFLFlBQWEsQUFDYixrQkFBOEIsQ0FDL0IsQUFLRCx5REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxtQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxtQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCw2REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxxQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxxQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCw2REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxxQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxxQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxvQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxvQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxvQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxvQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwrREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxzQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxzQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxvQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxvQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCw2REFFRSx3QkFBMEIsQ0FDM0IsQUFDRCxxQ0FDRSxrQ0FBd0MsQ0FDekMsQUFDRCxxQ0FDRSx5Q0FBZ0QsQ0FDakQsQUFFRCwyREFFRSx3QkFBMEIsQ0FDM0IsQUFD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QUFFRCxtQkFDRSx5QkFBMkIsQ0FDNUIiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBqUXVlcnkgVUkgLSB2MS4xMi4xIC0gMjAyMS0wMy0wMlxuKiBodHRwOi8vanF1ZXJ5dWkuY29tXG4qIEluY2x1ZGVzOiBkcmFnZ2FibGUuY3NzLCBjb3JlLmNzcywgcmVzaXphYmxlLmNzcywgc2VsZWN0YWJsZS5jc3MsIHNvcnRhYmxlLmNzcywgYWNjb3JkaW9uLmNzcywgYXV0b2NvbXBsZXRlLmNzcywgbWVudS5jc3MsIGJ1dHRvbi5jc3MsIGNvbnRyb2xncm91cC5jc3MsIGNoZWNrYm94cmFkaW8uY3NzLCBkYXRlcGlja2VyLmNzcywgZGlhbG9nLmNzcywgcHJvZ3Jlc3NiYXIuY3NzLCBzZWxlY3RtZW51LmNzcywgc2xpZGVyLmNzcywgc3Bpbm5lci5jc3MsIHRhYnMuY3NzLCB0b29sdGlwLmNzcywgdGhlbWUuY3NzXG4qIFRvIHZpZXcgYW5kIG1vZGlmeSB0aGlzIHRoZW1lLCB2aXNpdCBodHRwOi8vanF1ZXJ5dWkuY29tL3RoZW1lcm9sbGVyLz9zY29wZT0mZm9sZGVyTmFtZT1iYXNlJmNvcm5lclJhZGl1c1NoYWRvdz04cHgmb2Zmc2V0TGVmdFNoYWRvdz0wcHgmb2Zmc2V0VG9wU2hhZG93PTBweCZ0aGlja25lc3NTaGFkb3c9NXB4Jm9wYWNpdHlTaGFkb3c9MzAmYmdJbWdPcGFjaXR5U2hhZG93PTAmYmdUZXh0dXJlU2hhZG93PWZsYXQmYmdDb2xvclNoYWRvdz02NjY2NjYmb3BhY2l0eU92ZXJsYXk9MzAmYmdJbWdPcGFjaXR5T3ZlcmxheT0wJmJnVGV4dHVyZU92ZXJsYXk9ZmxhdCZiZ0NvbG9yT3ZlcmxheT1hYWFhYWEmaWNvbkNvbG9yRXJyb3I9Y2MwMDAwJmZjRXJyb3I9NWYzZjNmJmJvcmRlckNvbG9yRXJyb3I9ZjFhODk5JmJnVGV4dHVyZUVycm9yPWZsYXQmYmdDb2xvckVycm9yPWZkZGZkZiZpY29uQ29sb3JIaWdobGlnaHQ9Nzc3NjIwJmZjSGlnaGxpZ2h0PTc3NzYyMCZib3JkZXJDb2xvckhpZ2hsaWdodD1kYWQ1NWUmYmdUZXh0dXJlSGlnaGxpZ2h0PWZsYXQmYmdDb2xvckhpZ2hsaWdodD1mZmZhOTAmaWNvbkNvbG9yQWN0aXZlPWZmZmZmZiZmY0FjdGl2ZT1mZmZmZmYmYm9yZGVyQ29sb3JBY3RpdmU9MDAzZWZmJmJnVGV4dHVyZUFjdGl2ZT1mbGF0JmJnQ29sb3JBY3RpdmU9MDA3ZmZmJmljb25Db2xvckhvdmVyPTU1NTU1NSZmY0hvdmVyPTJiMmIyYiZib3JkZXJDb2xvckhvdmVyPWNjY2NjYyZiZ1RleHR1cmVIb3Zlcj1mbGF0JmJnQ29sb3JIb3Zlcj1lZGVkZWQmaWNvbkNvbG9yRGVmYXVsdD03Nzc3NzcmZmNEZWZhdWx0PTQ1NDU0NSZib3JkZXJDb2xvckRlZmF1bHQ9YzVjNWM1JmJnVGV4dHVyZURlZmF1bHQ9ZmxhdCZiZ0NvbG9yRGVmYXVsdD1mNmY2ZjYmaWNvbkNvbG9yQ29udGVudD00NDQ0NDQmZmNDb250ZW50PTMzMzMzMyZib3JkZXJDb2xvckNvbnRlbnQ9ZGRkZGRkJmJnVGV4dHVyZUNvbnRlbnQ9ZmxhdCZiZ0NvbG9yQ29udGVudD1mZmZmZmYmaWNvbkNvbG9ySGVhZGVyPTQ0NDQ0NCZmY0hlYWRlcj0zMzMzMzMmYm9yZGVyQ29sb3JIZWFkZXI9ZGRkZGRkJmJnVGV4dHVyZUhlYWRlcj1mbGF0JmJnQ29sb3JIZWFkZXI9ZTllOWU5JmNvcm5lclJhZGl1cz0zcHgmZndEZWZhdWx0PW5vcm1hbCZmc0RlZmF1bHQ9MWVtJmZmRGVmYXVsdD1BcmlhbCUyQ0hlbHZldGljYSUyQ3NhbnMtc2VyaWZcbiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqL1xuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1MYXRvOjQwMCwzMDAsNjAwLDMwMGl0YWxpYyw0MDBpdGFsaWMmc3Vic2V0PWxhdGluJyk7XG4udWktZHJhZ2dhYmxlLWhhbmRsZSB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi8qIExheW91dCBoZWxwZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS1oZWxwZXItaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cbi51aS1oZWxwZXItcmVzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4udWktaGVscGVyLWNsZWFyZml4OmJlZm9yZSxcbi51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cbi51aS1oZWxwZXItemZpeCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7XG4gIC8qIHN1cHBvcnQ6IElFOCAqL1xufVxuLnVpLWZyb250IHtcbiAgei1pbmRleDogMTAwO1xufVxuLyogSW50ZXJhY3Rpb24gQ3Vlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktc3RhdGUtZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKiBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXRvcDogLTAuMjVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWluZGVudDogLTk5OTk5cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4udWktd2lkZ2V0LWljb24tYmxvY2sge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIE1pc2MgdmlzdWFsc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPdmVybGF5cyAqL1xuLnVpLXdpZGdldC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udWktcmVzaXphYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLXJlc2l6YWJsZS1oYW5kbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMC4xcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG4udWktcmVzaXphYmxlLWRpc2FibGVkIC51aS1yZXNpemFibGUtaGFuZGxlLFxuLnVpLXJlc2l6YWJsZS1hdXRvaGlkZSAudWktcmVzaXphYmxlLWhhbmRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWktcmVzaXphYmxlLW4ge1xuICBjdXJzb3I6IG4tcmVzaXplO1xuICBoZWlnaHQ6IDdweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogLTVweDtcbiAgbGVmdDogMDtcbn1cbi51aS1yZXNpemFibGUtcyB7XG4gIGN1cnNvcjogcy1yZXNpemU7XG4gIGhlaWdodDogN3B4O1xuICB3aWR0aDogMTAwJTtcbiAgYm90dG9tOiAtNXB4O1xuICBsZWZ0OiAwO1xufVxuLnVpLXJlc2l6YWJsZS1lIHtcbiAgY3Vyc29yOiBlLXJlc2l6ZTtcbiAgd2lkdGg6IDdweDtcbiAgcmlnaHQ6IC01cHg7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpLXJlc2l6YWJsZS13IHtcbiAgY3Vyc29yOiB3LXJlc2l6ZTtcbiAgd2lkdGg6IDdweDtcbiAgbGVmdDogLTVweDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udWktcmVzaXphYmxlLXNlIHtcbiAgY3Vyc29yOiBzZS1yZXNpemU7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIHJpZ2h0OiAxcHg7XG4gIGJvdHRvbTogMXB4O1xufVxuLnVpLXJlc2l6YWJsZS1zdyB7XG4gIGN1cnNvcjogc3ctcmVzaXplO1xuICB3aWR0aDogOXB4O1xuICBoZWlnaHQ6IDlweDtcbiAgbGVmdDogLTVweDtcbiAgYm90dG9tOiAtNXB4O1xufVxuLnVpLXJlc2l6YWJsZS1udyB7XG4gIGN1cnNvcjogbnctcmVzaXplO1xuICB3aWR0aDogOXB4O1xuICBoZWlnaHQ6IDlweDtcbiAgbGVmdDogLTVweDtcbiAgdG9wOiAtNXB4O1xufVxuLnVpLXJlc2l6YWJsZS1uZSB7XG4gIGN1cnNvcjogbmUtcmVzaXplO1xuICB3aWR0aDogOXB4O1xuICBoZWlnaHQ6IDlweDtcbiAgcmlnaHQ6IC01cHg7XG4gIHRvcDogLTVweDtcbn1cbi51aS1zZWxlY3RhYmxlIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuLnVpLXNlbGVjdGFibGUtaGVscGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDA7XG4gIGJvcmRlcjogMXB4IGRvdHRlZCBibGFjaztcbn1cbi51aS1zb3J0YWJsZS1oYW5kbGUge1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG4udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDJweCAwIDAgMDtcbiAgcGFkZGluZzogLjVlbSAuNWVtIC41ZW0gLjdlbTtcbiAgZm9udC1zaXplOiAxMDAlO1xufVxuLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnQge1xuICBwYWRkaW5nOiAxZW0gMi4yZW07XG4gIGJvcmRlci10b3A6IDA7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLnVpLWF1dG9jb21wbGV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4udWktbWVudSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG91dGxpbmU6IDA7XG59XG4udWktbWVudSAudWktbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi51aS1tZW51IC51aS1tZW51LWl0ZW0ge1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogc3VwcG9ydDogSUUxMCwgc2VlICM4ODQ0ICovXG4gIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veUg1QkFFQUFBQUFMQUFBQUFBQkFBRUFBQUlCUkFBN1wiKTtcbn1cbi51aS1tZW51IC51aS1tZW51LWl0ZW0td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogM3B4IDFlbSAzcHggLjRlbTtcbn1cbi51aS1tZW51IC51aS1tZW51LWRpdmlkZXIge1xuICBtYXJnaW46IDVweCAwO1xuICBoZWlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xufVxuLnVpLW1lbnUgLnVpLXN0YXRlLWZvY3VzLFxuLnVpLW1lbnUgLnVpLXN0YXRlLWFjdGl2ZSB7XG4gIG1hcmdpbjogLTFweDtcbn1cbi8qIGljb24gc3VwcG9ydCAqL1xuLnVpLW1lbnUtaWNvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWktbWVudS1pY29ucyAudWktbWVudS1pdGVtLXdyYXBwZXIge1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbn1cbi8qIGxlZnQtYWxpZ25lZCAqL1xuLnVpLW1lbnUgLnVpLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAuMmVtO1xuICBtYXJnaW46IGF1dG8gMDtcbn1cbi8qIHJpZ2h0LWFsaWduZWQgKi9cbi51aS1tZW51IC51aS1tZW51LWljb24ge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbn1cbi51aS1idXR0b24ge1xuICBwYWRkaW5nOiAuNGVtIDFlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG1hcmdpbi1yaWdodDogLjFlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC8qIFN1cHBvcnQ6IElFIDw9IDExICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnVpLWJ1dHRvbixcbi51aS1idXR0b246bGluayxcbi51aS1idXR0b246dmlzaXRlZCxcbi51aS1idXR0b246aG92ZXIsXG4udWktYnV0dG9uOmFjdGl2ZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi8qIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIGljb24sIGEgd2lkdGggbmVlZHMgdG8gYmUgc2V0IGhlcmUgKi9cbi51aS1idXR0b24taWNvbi1vbmx5IHtcbiAgd2lkdGg6IDJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKiBubyBpY29uIHN1cHBvcnQgZm9yIGlucHV0IGVsZW1lbnRzICovXG5pbnB1dC51aS1idXR0b24udWktYnV0dG9uLWljb24tb25seSB7XG4gIHRleHQtaW5kZW50OiAwO1xufVxuLyogYnV0dG9uIGljb24gZWxlbWVudChzKSAqL1xuLnVpLWJ1dHRvbi1pY29uLW9ubHkgLnVpLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IC04cHg7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xufVxuLnVpLWJ1dHRvbi51aS1pY29uLW5vdGV4dCAudWktaWNvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAyLjFlbTtcbiAgaGVpZ2h0OiAyLjFlbTtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5pbnB1dC51aS1idXR0b24udWktaWNvbi1ub3RleHQgLnVpLWljb24ge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICB0ZXh0LWluZGVudDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgcGFkZGluZzogLjRlbSAxZW07XG59XG4vKiB3b3JrYXJvdW5kcyAqL1xuLyogU3VwcG9ydDogRmlyZWZveCA1IC0gNDAgKi9cbmlucHV0LnVpLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmJ1dHRvbi51aS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4udWktY29udHJvbGdyb3VwIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLWNvbnRyb2xncm91cCA+IC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuLnVpLWNvbnRyb2xncm91cCA+IC51aS1jb250cm9sZ3JvdXAtaXRlbTpmb2N1cyxcbi51aS1jb250cm9sZ3JvdXAgPiAudWktY29udHJvbGdyb3VwLWl0ZW0udWktdmlzdWFsLWZvY3VzIHtcbiAgei1pbmRleDogOTk5OTtcbn1cbi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgPiAudWktY29udHJvbGdyb3VwLWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktY29udHJvbGdyb3VwLWl0ZW0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnVpLWNvbnRyb2xncm91cCAudWktY29udHJvbGdyb3VwLWxhYmVsIHtcbiAgcGFkZGluZzogLjRlbSAxZW07XG59XG4udWktY29udHJvbGdyb3VwIC51aS1jb250cm9sZ3JvdXAtbGFiZWwgc3BhbiB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuLnVpLWNvbnRyb2xncm91cC1ob3Jpem9udGFsIC51aS1jb250cm9sZ3JvdXAtbGFiZWwgKyAudWktY29udHJvbGdyb3VwLWl0ZW0ge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLWNvbnRyb2xncm91cC1sYWJlbCArIC51aS1jb250cm9sZ3JvdXAtaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWktY29udHJvbGdyb3VwLWhvcml6b250YWwgLnVpLWNvbnRyb2xncm91cC1sYWJlbC51aS13aWRnZXQtY29udGVudCB7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLWNvbnRyb2xncm91cC1sYWJlbC51aS13aWRnZXQtY29udGVudCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKiBTcGlubmVyIHNwZWNpZmljIHN0eWxlIGZpeGVzICovXG4udWktY29udHJvbGdyb3VwLXZlcnRpY2FsIC51aS1zcGlubmVyLWlucHV0IHtcbiAgLyogU3VwcG9ydDogSUU4IG9ubHksIEFuZHJvaWQgPCA0LjQgb25seSAqL1xuICB3aWR0aDogNzUlO1xuICB3aWR0aDogY2FsYyg5Ny42JSk7XG59XG4udWktY29udHJvbGdyb3VwLXZlcnRpY2FsIC51aS1zcGlubmVyIC51aS1zcGlubmVyLXVwIHtcbiAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG59XG4udWktY2hlY2tib3hyYWRpby1sYWJlbCAudWktaWNvbi1iYWNrZ3JvdW5kIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMXB4IDFweCAxcHggI2NjYztcbiAgYm9yZGVyLXJhZGl1czogLjEyZW07XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS1jaGVja2JveHJhZGlvLXJhZGlvLWxhYmVsIC51aS1pY29uLWJhY2tncm91bmQge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiAxZW07XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBib3JkZXI6IG5vbmU7XG59XG4udWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbC51aS1jaGVja2JveHJhZGlvLWNoZWNrZWQgLnVpLWljb24sXG4udWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbC51aS1jaGVja2JveHJhZGlvLWNoZWNrZWQ6aG92ZXIgLnVpLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4udWktY2hlY2tib3hyYWRpby1kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVpLWRhdGVwaWNrZXIge1xuICB3aWR0aDogMTdlbTtcbiAgcGFkZGluZzogLjJlbSAuMmVtIDA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IC4yZW0gMDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYsXG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJweDtcbiAgd2lkdGg6IDEuOGVtO1xuICBoZWlnaHQ6IDEuOGVtO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3Zlcixcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXIge1xuICB0b3A6IDFweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYge1xuICBsZWZ0OiAycHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgcmlnaHQ6IDJweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIge1xuICBsZWZ0OiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIHtcbiAgcmlnaHQ6IDFweDtcbn1cbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYgc3Bhbixcbi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtOHB4O1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUge1xuICBtYXJnaW46IDAgMi4zZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjhlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogMXB4IDA7XG59XG4udWktZGF0ZXBpY2tlciBzZWxlY3QudWktZGF0ZXBpY2tlci1tb250aCxcbi51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIge1xuICB3aWR0aDogNDUlO1xufVxuLnVpLWRhdGVwaWNrZXIgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAuOWVtO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBtYXJnaW46IDAgMCAuNGVtO1xufVxuLnVpLWRhdGVwaWNrZXIgdGgge1xuICBwYWRkaW5nOiAuN2VtIC4zZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlcjogMDtcbn1cbi51aS1kYXRlcGlja2VyIHRkIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAxcHg7XG59XG4udWktZGF0ZXBpY2tlciB0ZCBzcGFuLFxuLnVpLWRhdGVwaWNrZXIgdGQgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAuMmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIG1hcmdpbjogLjdlbSAwIDAgMDtcbiAgcGFkZGluZzogMCAuMmVtO1xuICBib3JkZXItbGVmdDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogLjVlbSAuMmVtIC40ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogLjJlbSAuNmVtIC4zZW0gLjZlbTtcbiAgd2lkdGg6IGF1dG87XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4vKiB3aXRoIG11bHRpcGxlIGNhbGVuZGFycyAqL1xuLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1tdWx0aSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwIHRhYmxlIHtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luOiAwIGF1dG8gLjRlbTtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpLTIgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGktMyAudWktZGF0ZXBpY2tlci1ncm91cCB7XG4gIHdpZHRoOiAzMy4zJTtcbn1cbi51aS1kYXRlcGlja2VyLW11bHRpLTQgLnVpLWRhdGVwaWNrZXItZ3JvdXAge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIsXG4udWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cC1taWRkbGUgLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG59XG4udWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHtcbiAgY2xlYXI6IGxlZnQ7XG59XG4udWktZGF0ZXBpY2tlci1yb3ctYnJlYWsge1xuICBjbGVhcjogYm90aDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMDtcbn1cbi8qIFJUTCBzdXBwb3J0ICovXG4udWktZGF0ZXBpY2tlci1ydGwge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgcmlnaHQ6IDJweDtcbiAgbGVmdDogYXV0bztcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgbGVmdDogMnB4O1xuICByaWdodDogYXV0bztcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2OmhvdmVyIHtcbiAgcmlnaHQ6IDFweDtcbiAgbGVmdDogYXV0bztcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0OmhvdmVyIHtcbiAgbGVmdDogMXB4O1xuICByaWdodDogYXV0bztcbn1cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHtcbiAgY2xlYXI6IHJpZ2h0O1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50LFxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLWxhc3QgLnVpLWRhdGVwaWNrZXItaGVhZGVyLFxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG59XG4vKiBJY29ucyAqL1xuLnVpLWRhdGVwaWNrZXIgLnVpLWljb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1pbmRlbnQ6IC05OTk5OXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBsZWZ0OiAuNWVtO1xuICB0b3A6IC4zZW07XG59XG4udWktZGlhbG9nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IC4yZW07XG4gIG91dGxpbmU6IDA7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXIge1xuICBwYWRkaW5nOiAuNGVtIDFlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLWRpYWxvZyAudWktZGlhbG9nLXRpdGxlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogLjFlbSAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogOTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC4zZW07XG4gIHRvcDogNTAlO1xuICB3aWR0aDogMjBweDtcbiAgbWFyZ2luOiAtMTBweCAwIDAgMDtcbiAgcGFkZGluZzogMXB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAuNWVtIDFlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctYnV0dG9ucGFuZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBtYXJnaW4tdG9wOiAuNWVtO1xuICBwYWRkaW5nOiAuM2VtIDFlbSAuNWVtIC40ZW07XG59XG4udWktZGlhbG9nIC51aS1kaWFsb2ctYnV0dG9ucGFuZSAudWktZGlhbG9nLWJ1dHRvbnNldCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi51aS1kaWFsb2cgLnVpLWRpYWxvZy1idXR0b25wYW5lIGJ1dHRvbiB7XG4gIG1hcmdpbjogLjVlbSAuNGVtIC41ZW0gMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLW4ge1xuICBoZWlnaHQ6IDJweDtcbiAgdG9wOiAwO1xufVxuLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLWUge1xuICB3aWR0aDogMnB4O1xuICByaWdodDogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zIHtcbiAgaGVpZ2h0OiAycHg7XG4gIGJvdHRvbTogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS13IHtcbiAgd2lkdGg6IDJweDtcbiAgbGVmdDogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSxcbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zdyxcbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1uZSxcbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1udyB7XG4gIHdpZHRoOiA3cHg7XG4gIGhlaWdodDogN3B4O1xufVxuLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLXNlIHtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zdyB7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cbi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1uZSB7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG59XG4udWktZGlhbG9nIC51aS1yZXNpemFibGUtbncge1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4udWktZHJhZ2dhYmxlIC51aS1kaWFsb2ctdGl0bGViYXIge1xuICBjdXJzb3I6IG1vdmU7XG59XG4udWktcHJvZ3Jlc3NiYXIge1xuICBoZWlnaHQ6IDJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi51aS1wcm9ncmVzc2JhciAudWktcHJvZ3Jlc3NiYXItdmFsdWUge1xuICBtYXJnaW46IC0xcHg7XG4gIGhlaWdodDogMTAwJTtcbn1cbi51aS1wcm9ncmVzc2JhciAudWktcHJvZ3Jlc3NiYXItb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEtBQW9BSUFCQUFBQUFQLy8veUgvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoK1FRSkFRQUJBQ3dBQUFBQUtBQW9BQUFDa1l3TnFYcmRDNTJEUzA2YTdNRlpJKzRGSEJDS29EZVdLWHF5bVBxR3F4dkpyWFpiTXg3VHRjK3c5WGdVMkZCM2xPeVFSV0VUMklGR2lVOW0xZnJEVnB4WlpjNmJmSHd2NGMxWVhQNmsxVmR5MjkyRmI2VWt1dkZ0WHB2V1N6QStIeWNYSkhVWGlHWUlpTWcyUjZXNDU5Z25XR2ZITmRqSXFEV1ZxZW1IMmVrcE9ia3BPbHBwV1VxWmlxcjZlZHFxV1FBQUlma0VDUUVBQVFBc0FBQUFBQ2dBS0FBQUFwU01nWm5HZmFxY2cxRTJ1dXpEbW1IVUJSOFFpbDk1aGlQS3FXbjNhcXRMc1MxOHk3RzFTek5lb3dXQkVOdFFkK1QxSmt0UDA1bnpQVGRKWmxSNnZVeE5XV2pWK3ZVV2hXTmtXRnd4bDlWcFpSZWRZY2ZsSU9MYWZhYTI4WGRzSC95bmxjYzF1UFZEWnhRSVIwSzI1K2NJQ0Ntb3FDZTVtR2haT2ZlWVNVaDV5SmNKeXJrWldXcGFSOGRvSjJvNE5ZcTYybEFBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLVkRJNFl5MjJabklOUk5xb3N3MEJ2N2kxZ3lIVWtGajdvU2FXbHUzb3ZDOEd4TnNvNWZsdXozcUxWaEJWZVQvTHo3WlRIeXhMNWREYWxRV1BWT3NRV3RSbnV3WGFGVGo5alZWaDhwbWE5SmpaNHpZU2o1Wk95bWE3dXVvbGZmaCtJUjVhVzk3Y0h1QlVYS0dLWGxLam4rRGlIV01jWUphaDROMGxZQ01sSk9YaXBHUnI1cWRnb1NUcnFXU3E2V0ZsMnlwb2FVQUFBSWZrRUNRRUFBUUFzQUFBQUFDZ0FLQUFBQXBhRWI2SExnZC9pTzdGTld0Y0ZXZSt1Zk9ER2pSZm9pSjJha1NoYnVlYjB3dEk1MHptMDJwYnZ3ZldFTVdCUTF6S0dsTEloc2tpRVBtOVI2dlJYeFY0WnpXVDJ5SE9HcFdNeW9yYmxLbE5wOEhtSEViL2xDWGpjVzdibXRYUDhYdDIyOU9WV1IxZm9kMmVXcU5mSHVNalhDUGtJR05pbGVPaUltVm1DT0Vtb1NmbjN5WGxKV21vSEdocXA2aWxZdVdZcG1UcUtVZ0FBSWZrRUNRRUFBUUFzQUFBQUFDZ0FLQUFBQXBpRUg2a2I1OGJpUTNGTld0TUZXVzNlTlZjb2p1RkdmcW5acVNlYnVTMDZ3NVY4MC9YMDJwS2U4ekZ3UDZFRldPVDFsREZrOHJHRVJoMVRUTk9vY1E2MUhtNFhtMlZleFVIcHpqeW1WaUhyRmJpRUxzZWZWcm42WEtmbnQyUTlHLytYZGllNDk5WEhkMmc0aDdpb09HaFhHSmJvR0FuWFNCbm9Cd0tZeWZpb3ViWkoySG4wUnVSWmFmbFpPaWw1NlpwNmlpb0tTWHBVQUFBaCtRUUpBUUFCQUN3QUFBQUFLQUFvQUFBQ2tvUVJxUnZueHVJN2tVMWExVVU1YmQ1dG5TZU9aWGhtbjVsV0szcU5UV3ZSZFF4UDhxdmFDKy95YVlRelhPN0JNdmFVRW1KUmQzVHNpTUFnc3dtTllyU2daZFlyVFg2dFNIR1pPNzNlenVBdzJ1eHVRK0JiZVpmTXhzZXhZMzUrL1FlNEoxaW5WMGc0eDNXSHVNaElsMmpYT0tUMlErVlU1ZmdvU1VJNTJWZlp5ZmtKR2toYTZqbVkrYWFZZGlycStsUUFBQ0g1QkFrQkFBRUFMQUFBQUFBb0FDZ0FBQUtXQklLcFllMEwzWU5LVG9xc3dVbHZ6bmlnZDR3aVI0S2hackt0OVVwcWlwNjFpOUUzdk12eFJkSGxiRUZpRVhmazlZQVJZeE9aWkQ2VlEycFV1bkJtdFJYbzFMZjhoTVZWY05sOEphZlYzOGFNMi9GdTVWMTZCbjYzcjZ4dDk3ajA5K01YU0ZpNEJuaUdGYWUzaHpiSDkraFlCemtwdVVoNWFabUh1YW5aT1pnSXV2YkdpTmVvbUNuYXh4YXAydXBhQ1pzcSsxa0FBQ0g1QkFrQkFBRUFMQUFBQUFBb0FDZ0FBQUtYakk4Qnk1emY0a094VFZyWE5WbHYxWDBkOElHWkdLTG5OcFl0bThMcjljcVZldU9TdmZPVzc5RDlhREhpek5oREppZEZaaE55ZEVhaE9hREg2bm9tdEpqcDF0dXRLb05Xa3ZBNkpxZlJWTEhVL1FVZmF1OWwyeDdHNTRkMWZsOTk1eGNJR0FkWHFNZkJOYWRvWXJoSCtNZzJLQmxwVnBibHVDaVhtTW5aMlNoNEdCcUorY2tJT3FxSjZMbUtTbGxabXNvcTZ3cFFBQUFoK1FRSkFRQUJBQ3dBQUFBQUtBQW9BQUFDbFl4L29Mdm94dUpEa1UxYTFZVVpiSjU5blNkMlpYaFdxYlJhMi9nRjhHdTJEWTNpcXM3eXJxK3hCWUVrWXZGU004YVNTT2JFK1pnUmwxQkhGWk5yN3BSQ2F2WjVCVzIxNDJoWTNBTi96V3RzbWYxMnA5WHh4RmwybHBMbjFyc2V6dGZYWmpkSVdJZjJzNWRJdHdqWUtCZ285eWc1cEhnekpYVEVlR2xadWVucHlQbXBHUW9LT1drWW1TcGFTbnFLaWxlSTJGQUFBQ0g1QkFrQkFBRUFMQUFBQUFBb0FDZ0FBQUtWakIrZ3Urakc0a09SVFZyVmhSbHNubjJkSjNabGVGYXB0RnJiK0NYbU85T296ZUw1VmZQOTlIdkFXaHBpVWRjd2twQkgzODI1QXdZZFU4eFRxbExHaHRDb3NBcktNcHZmYTFtTVJhZTlWdldaZmVCMlhmUGtlTG1tMThsVWNCaitwNWRuTjhqWFozWUlHRWhZdU9VbjQ1YW9DRGtwMTZobDVJallKdmpXS2Nub0dRcHF5UGxwT2hyM2FFbGFxcnE1NkJxN1ZBQUFPdz09XCIpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0yNSk7XG4gIC8qIHN1cHBvcnQ6IElFOCAqL1xuICBvcGFjaXR5OiAwLjI1O1xufVxuLnVpLXByb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGUgLnVpLXByb2dyZXNzYmFyLXZhbHVlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS1zZWxlY3RtZW51LW1lbnUge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLXNlbGVjdG1lbnUtbWVudSAudWktbWVudSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmctYm90dG9tOiAxcHg7XG59XG4udWktc2VsZWN0bWVudS1tZW51IC51aS1tZW51IC51aS1zZWxlY3RtZW51LW9wdGdyb3VwIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBwYWRkaW5nOiAycHggMC40ZW07XG4gIG1hcmdpbjogMC41ZW0gMCAwIDA7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyOiAwO1xufVxuLnVpLXNlbGVjdG1lbnUtb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnVpLXNlbGVjdG1lbnUtYnV0dG9uLnVpLWJ1dHRvbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxNGVtO1xufVxuLnVpLXNlbGVjdG1lbnUtaWNvbi51aS1pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLnVpLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAxLjJlbTtcbiAgaGVpZ2h0OiAxLjJlbTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAtbXMtdG91Y2gtYWN0aW9uOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG4udWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGZvbnQtc2l6ZTogLjdlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xufVxuLyogc3VwcG9ydDogSUU4IC0gU2VlICM2NzI3ICovXG4udWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItaGFuZGxlLFxuLnVpLXNsaWRlci51aS1zdGF0ZS1kaXNhYmxlZCAudWktc2xpZGVyLXJhbmdlIHtcbiAgZmlsdGVyOiBpbmhlcml0O1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgaGVpZ2h0OiAuOGVtO1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlIHtcbiAgdG9wOiAtMC4zZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC42ZW07XG59XG4udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZSB7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2UtbWluIHtcbiAgbGVmdDogMDtcbn1cbi51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heCB7XG4gIHJpZ2h0OiAwO1xufVxuLnVpLXNsaWRlci12ZXJ0aWNhbCB7XG4gIHdpZHRoOiAuOGVtO1xuICBoZWlnaHQ6IDEwMHB4O1xufVxuLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZSB7XG4gIGxlZnQ6IC0wLjNlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IC0wLjZlbTtcbn1cbi51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZSB7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbiB7XG4gIGJvdHRvbTogMDtcbn1cbi51aS1zbGlkZXItdmVydGljYWwgLnVpLXNsaWRlci1yYW5nZS1tYXgge1xuICB0b3A6IDA7XG59XG4udWktc3Bpbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLXNwaW5uZXItaW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwYWRkaW5nOiAuMjIyZW0gMDtcbiAgbWFyZ2luOiAuMmVtIDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1sZWZ0OiAuNGVtO1xuICBtYXJnaW4tcmlnaHQ6IDJlbTtcbn1cbi51aS1zcGlubmVyLWJ1dHRvbiB7XG4gIHdpZHRoOiAxLjZlbTtcbiAgaGVpZ2h0OiA1MCU7XG4gIGZvbnQtc2l6ZTogLjVlbTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcmlnaHQ6IDA7XG59XG4vKiBtb3JlIHNwZWNpZmljaXR5IHJlcXVpcmVkIGhlcmUgdG8gb3ZlcnJpZGUgZGVmYXVsdCBib3JkZXJzICovXG4udWktc3Bpbm5lciBhLnVpLXNwaW5uZXItYnV0dG9uIHtcbiAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lO1xufVxuLnVpLXNwaW5uZXItdXAge1xuICB0b3A6IDA7XG59XG4udWktc3Bpbm5lci1kb3duIHtcbiAgYm90dG9tOiAwO1xufVxuLnVpLXRhYnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qIHBvc2l0aW9uOiByZWxhdGl2ZSBwcmV2ZW50cyBJRSBzY3JvbGwgYnVnIChlbGVtZW50IHdpdGggcG9zaXRpb246IHJlbGF0aXZlIGluc2lkZSBjb250YWluZXIgd2l0aCBvdmVyZmxvdzogYXV0byBhcHBlYXIgYXMgXCJmaXhlZFwiKSAqL1xuICBwYWRkaW5nOiAuMmVtO1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAuMmVtIC4yZW0gMDtcbn1cbi51aS10YWJzIC51aS10YWJzLW5hdiBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbWFyZ2luOiAxcHggLjJlbSAwIDA7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWktdGFicyAudWktdGFicy1uYXYgLnVpLXRhYnMtYW5jaG9yIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IC41ZW0gMWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4udWktdGFicyAudWktdGFicy1uYXYgbGkudWktdGFicy1hY3RpdmUge1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xufVxuLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtYWN0aXZlIC51aS10YWJzLWFuY2hvcixcbi51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS1zdGF0ZS1kaXNhYmxlZCAudWktdGFicy1hbmNob3IsXG4udWktdGFicyAudWktdGFicy1uYXYgbGkudWktdGFicy1sb2FkaW5nIC51aS10YWJzLWFuY2hvciB7XG4gIGN1cnNvcjogdGV4dDtcbn1cbi51aS10YWJzLWNvbGxhcHNpYmxlIC51aS10YWJzLW5hdiBsaS51aS10YWJzLWFjdGl2ZSAudWktdGFicy1hbmNob3Ige1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWktdGFicyAudWktdGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItd2lkdGg6IDA7XG4gIHBhZGRpbmc6IDFlbSAxLjRlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi51aS10b29sdGlwIHtcbiAgcGFkZGluZzogOHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG5ib2R5IC51aS10b29sdGlwIHtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG59XG4vKiBDb21wb25lbnQgY29udGFpbmVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktd2lkZ2V0IHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLXdpZGdldCAudWktd2lkZ2V0IHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWktd2lkZ2V0IGlucHV0LFxuLnVpLXdpZGdldCBzZWxlY3QsXG4udWktd2lkZ2V0IHRleHRhcmVhLFxuLnVpLXdpZGdldCBidXR0b24ge1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2M1YzVjNTtcbn1cbi51aS13aWRnZXQtY29udGVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLnVpLXdpZGdldC1jb250ZW50IGEge1xuICBjb2xvcjogIzMzMzMzMztcbn1cbi51aS13aWRnZXQtaGVhZGVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZGRkZDtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLXdpZGdldC1oZWFkZXIgYSB7XG4gIGNvbG9yOiAjMzMzMzMzO1xufVxuLyogSW50ZXJhY3Rpb24gc3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS1zdGF0ZS1kZWZhdWx0LFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQsXG4udWktYnV0dG9uLFxuaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmhvdmVyLFxuaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmFjdGl2ZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjNWM1YzU7XG4gIGJhY2tncm91bmQ6ICNmNmY2ZjY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjNDU0NTQ1O1xufVxuLnVpLXN0YXRlLWRlZmF1bHQgYSxcbi51aS1zdGF0ZS1kZWZhdWx0IGE6bGluayxcbi51aS1zdGF0ZS1kZWZhdWx0IGE6dmlzaXRlZCxcbmEudWktYnV0dG9uLFxuYTpsaW5rLnVpLWJ1dHRvbixcbmE6dmlzaXRlZC51aS1idXR0b24sXG4udWktYnV0dG9uIHtcbiAgY29sb3I6ICM0NTQ1NDU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi51aS1zdGF0ZS1ob3Zlcixcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92ZXIsXG4udWktc3RhdGUtZm9jdXMsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzLFxuLnVpLWJ1dHRvbjpob3Zlcixcbi51aS1idXR0b246Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBiYWNrZ3JvdW5kOiAjZWRlZGVkO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzJiMmIyYjtcbn1cbi51aS1zdGF0ZS1ob3ZlciBhLFxuLnVpLXN0YXRlLWhvdmVyIGE6aG92ZXIsXG4udWktc3RhdGUtaG92ZXIgYTpsaW5rLFxuLnVpLXN0YXRlLWhvdmVyIGE6dmlzaXRlZCxcbi51aS1zdGF0ZS1mb2N1cyBhLFxuLnVpLXN0YXRlLWZvY3VzIGE6aG92ZXIsXG4udWktc3RhdGUtZm9jdXMgYTpsaW5rLFxuLnVpLXN0YXRlLWZvY3VzIGE6dmlzaXRlZCxcbmEudWktYnV0dG9uOmhvdmVyLFxuYS51aS1idXR0b246Zm9jdXMge1xuICBjb2xvcjogIzJiMmIyYjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnVpLXZpc3VhbC1mb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAzcHggMXB4ICM1ZTllZDY7XG59XG4udWktc3RhdGUtYWN0aXZlLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1hY3RpdmUsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtYWN0aXZlLFxuYS51aS1idXR0b246YWN0aXZlLFxuLnVpLWJ1dHRvbjphY3RpdmUsXG4udWktYnV0dG9uLnVpLXN0YXRlLWFjdGl2ZTpob3ZlciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDNlZmY7XG4gIGJhY2tncm91bmQ6ICMwMDdmZmY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLWljb24tYmFja2dyb3VuZCxcbi51aS1zdGF0ZS1hY3RpdmUgLnVpLWljb24tYmFja2dyb3VuZCB7XG4gIGJvcmRlcjogIzAwM2VmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbi51aS1zdGF0ZS1hY3RpdmUgYSxcbi51aS1zdGF0ZS1hY3RpdmUgYTpsaW5rLFxuLnVpLXN0YXRlLWFjdGl2ZSBhOnZpc2l0ZWQge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLyogSW50ZXJhY3Rpb24gQ3Vlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWktc3RhdGUtaGlnaGxpZ2h0LFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsXG4udWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RhZDU1ZTtcbiAgYmFja2dyb3VuZDogI2ZmZmE5MDtcbiAgY29sb3I6ICM3Nzc2MjA7XG59XG4udWktc3RhdGUtY2hlY2tlZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYWQ1NWU7XG4gIGJhY2tncm91bmQ6ICNmZmZhOTA7XG59XG4udWktc3RhdGUtaGlnaGxpZ2h0IGEsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCBhLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCBhIHtcbiAgY29sb3I6ICM3Nzc2MjA7XG59XG4udWktc3RhdGUtZXJyb3IsXG4udWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLFxuLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2YxYTg5OTtcbiAgYmFja2dyb3VuZDogI2ZkZGZkZjtcbiAgY29sb3I6ICM1ZjNmM2Y7XG59XG4udWktc3RhdGUtZXJyb3IgYSxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvciBhIHtcbiAgY29sb3I6ICM1ZjNmM2Y7XG59XG4udWktc3RhdGUtZXJyb3ItdGV4dCxcbi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1lcnJvci10ZXh0IHtcbiAgY29sb3I6ICM1ZjNmM2Y7XG59XG4udWktcHJpb3JpdHktcHJpbWFyeSxcbi51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1wcmltYXJ5IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWktcHJpb3JpdHktc2Vjb25kYXJ5LFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksXG4udWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktc2Vjb25kYXJ5IHtcbiAgb3BhY2l0eTogLjc7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT03MCk7XG4gIC8qIHN1cHBvcnQ6IElFOCAqL1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLnVpLXN0YXRlLWRpc2FibGVkLFxuLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kaXNhYmxlZCxcbi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC4zNTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTM1KTtcbiAgLyogc3VwcG9ydDogSUU4ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWktc3RhdGUtZGlzYWJsZWQgLnVpLWljb24ge1xuICBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MzUpO1xuICAvKiBzdXBwb3J0OiBJRTggLSBTZWUgIzYwNTkgKi9cbn1cbi8qIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIHN0YXRlcyBhbmQgaW1hZ2VzICovXG4udWktaWNvbiB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG4udWktaWNvbixcbi51aS13aWRnZXQtY29udGVudCAudWktaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmdcIik7XG59XG4udWktd2lkZ2V0LWhlYWRlciAudWktaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc180NDQ0NDRfMjU2eDI0MC5wbmdcIik7XG59XG4udWktc3RhdGUtaG92ZXIgLnVpLWljb24sXG4udWktc3RhdGUtZm9jdXMgLnVpLWljb24sXG4udWktYnV0dG9uOmhvdmVyIC51aS1pY29uLFxuLnVpLWJ1dHRvbjpmb2N1cyAudWktaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy91aS1pY29uc181NTU1NTVfMjU2eDI0MC5wbmdcIik7XG59XG4udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLFxuLnVpLWJ1dHRvbjphY3RpdmUgLnVpLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nXCIpO1xufVxuLnVpLXN0YXRlLWhpZ2hsaWdodCAudWktaWNvbixcbi51aS1idXR0b24gLnVpLXN0YXRlLWhpZ2hsaWdodC51aS1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3VpLWljb25zXzc3NzYyMF8yNTZ4MjQwLnBuZ1wiKTtcbn1cbi51aS1zdGF0ZS1lcnJvciAudWktaWNvbixcbi51aS1zdGF0ZS1lcnJvci10ZXh0IC51aS1pY29uIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL3VpLWljb25zX2NjMDAwMF8yNTZ4MjQwLnBuZ1wiKTtcbn1cbi51aS1idXR0b24gLnVpLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdWktaWNvbnNfNzc3Nzc3XzI1NngyNDAucG5nXCIpO1xufVxuLyogcG9zaXRpb25pbmcgKi9cbi51aS1pY29uLWJsYW5rIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTZweCAxNnB4O1xufVxuLnVpLWljb24tY2FyZXQtMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xufVxuLnVpLWljb24tY2FyZXQtMS1uZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IDA7XG59XG4udWktaWNvbi1jYXJldC0xLWUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAwO1xufVxuLnVpLWljb24tY2FyZXQtMS1zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IDA7XG59XG4udWktaWNvbi1jYXJldC0xLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjVweCAwO1xufVxuLnVpLWljb24tY2FyZXQtMS1zdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IDA7XG59XG4udWktaWNvbi1jYXJldC0xLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAwO1xufVxuLnVpLWljb24tY2FyZXQtMS1udyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAwO1xufVxuLnVpLWljb24tY2FyZXQtMi1uLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggMDtcbn1cbi51aS1pY29uLWNhcmV0LTItZS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IDA7XG59XG4udWktaWNvbi10cmlhbmdsZS0xLW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNnB4O1xufVxuLnVpLWljb24tdHJpYW5nbGUtMS1uZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNnB4O1xufVxuLnVpLWljb24tdHJpYW5nbGUtMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2cHg7XG59XG4udWktaWNvbi10cmlhbmdsZS0xLXNlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2cHg7XG59XG4udWktaWNvbi10cmlhbmdsZS0xLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjVweCAtMTZweDtcbn1cbi51aS1pY29uLXRyaWFuZ2xlLTEtc3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTZweDtcbn1cbi51aS1pY29uLXRyaWFuZ2xlLTEtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNnB4O1xufVxuLnVpLWljb24tdHJpYW5nbGUtMS1udyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTZweDtcbn1cbi51aS1pY29uLXRyaWFuZ2xlLTItbi1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNnB4O1xufVxuLnVpLWljb24tdHJpYW5nbGUtMi1lLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2cHg7XG59XG4udWktaWNvbi1hcnJvdy0xLW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3ctMS1uZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3ctMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvdy0xLXNlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvdy0xLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjVweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTEtc3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTEtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3ctMS1udyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTItbi1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3ctMi1uZS1zdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93LTItZS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3ctMi1zZS1udyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93c3RvcC0xLW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvd3N0b3AtMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0zMnB4O1xufVxuLnVpLWljb24tYXJyb3dzdG9wLTEtcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMzJweDtcbn1cbi51aS1pY29uLWFycm93c3RvcC0xLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTMycHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTEtbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDFweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMS1uZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGljay0xLWUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMS1zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGljay0xLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMS1zdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGljay0xLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMS1udyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNDhweDtcbn1cbi51aS1pY29uLWFycm93dGhpY2stMi1uLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTQ4cHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTItbmUtc3cge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTQ4cHg7XG59XG4udWktaWNvbi1hcnJvd3RoaWNrLTItZS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC00OHB4O1xufVxuLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTY0cHg7XG59XG4udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZXR1cm4tMS13IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTY0cHg7XG59XG4udWktaWNvbi1hcnJvd3JldHVybi0xLW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmV0dXJuLTEtZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZXR1cm4tMS1zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93cmVmcmVzaC0xLW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTY0cHg7XG59XG4udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC02NHB4O1xufVxuLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNjRweDtcbn1cbi51aS1pY29uLWFycm93LTQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC04MHB4O1xufVxuLnVpLWljb24tYXJyb3ctNC1kaWFnIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTgwcHg7XG59XG4udWktaWNvbi1leHRsaW5rIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTgwcHg7XG59XG4udWktaWNvbi1uZXd3aW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtODBweDtcbn1cbi51aS1pY29uLXJlZnJlc2gge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtODBweDtcbn1cbi51aS1pY29uLXNodWZmbGUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtODBweDtcbn1cbi51aS1pY29uLXRyYW5zZmVyLWUtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC04MHB4O1xufVxuLnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTgwcHg7XG59XG4udWktaWNvbi1mb2xkZXItY29sbGFwc2VkIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtOTZweDtcbn1cbi51aS1pY29uLWZvbGRlci1vcGVuIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTk2cHg7XG59XG4udWktaWNvbi1kb2N1bWVudCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05NnB4O1xufVxuLnVpLWljb24tZG9jdW1lbnQtYiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC05NnB4O1xufVxuLnVpLWljb24tbm90ZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC05NnB4O1xufVxuLnVpLWljb24tbWFpbC1jbG9zZWQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtOTZweDtcbn1cbi51aS1pY29uLW1haWwtb3BlbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC05NnB4O1xufVxuLnVpLWljb24tc3VpdGNhc2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTk2cHg7XG59XG4udWktaWNvbi1jb21tZW50IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC05NnB4O1xufVxuLnVpLWljb24tcGVyc29uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC05NnB4O1xufVxuLnVpLWljb24tcHJpbnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTk2cHg7XG59XG4udWktaWNvbi10cmFzaCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtOTZweDtcbn1cbi51aS1pY29uLWxvY2tlZCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtOTZweDtcbn1cbi51aS1pY29uLXVubG9ja2VkIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC05NnB4O1xufVxuLnVpLWljb24tYm9va21hcmsge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTk2cHg7XG59XG4udWktaWNvbi10YWcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTk2cHg7XG59XG4udWktaWNvbi1ob21lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTEycHg7XG59XG4udWktaWNvbi1mbGFnIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTExMnB4O1xufVxuLnVpLWljb24tY2FsZW5kYXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTEycHg7XG59XG4udWktaWNvbi1jYXJ0IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTExMnB4O1xufVxuLnVpLWljb24tcGVuY2lsIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTExMnB4O1xufVxuLnVpLWljb24tY2xvY2sge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTEycHg7XG59XG4udWktaWNvbi1kaXNrIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTExMnB4O1xufVxuLnVpLWljb24tY2FsY3VsYXRvciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTEycHg7XG59XG4udWktaWNvbi16b29taW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTExMnB4O1xufVxuLnVpLWljb24tem9vbW91dCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTEycHg7XG59XG4udWktaWNvbi1zZWFyY2gge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTExMnB4O1xufVxuLnVpLWljb24td3JlbmNoIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMTJweDtcbn1cbi51aS1pY29uLWdlYXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTExMnB4O1xufVxuLnVpLWljb24taGVhcnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTExMnB4O1xufVxuLnVpLWljb24tc3RhciB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTEycHg7XG59XG4udWktaWNvbi1saW5rIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMTJweDtcbn1cbi51aS1pY29uLWNhbmNlbCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTEyOHB4O1xufVxuLnVpLWljb24tcGx1cyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMjhweDtcbn1cbi51aS1pY29uLXBsdXN0aGljayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMjhweDtcbn1cbi51aS1pY29uLW1pbnVzIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTEyOHB4O1xufVxuLnVpLWljb24tbWludXN0aGljayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMjhweDtcbn1cbi51aS1pY29uLWNsb3NlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTEyOHB4O1xufVxuLnVpLWljb24tY2xvc2V0aGljayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xMjhweDtcbn1cbi51aS1pY29uLWtleSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTI4cHg7XG59XG4udWktaWNvbi1saWdodGJ1bGIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTEyOHB4O1xufVxuLnVpLWljb24tc2Npc3NvcnMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTEyOHB4O1xufVxuLnVpLWljb24tY2xpcGJvYXJkIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMjhweDtcbn1cbi51aS1pY29uLWNvcHkge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTEyOHB4O1xufVxuLnVpLWljb24tY29udGFjdCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTI4cHg7XG59XG4udWktaWNvbi1pbWFnZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTI4cHg7XG59XG4udWktaWNvbi12aWRlbyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTI4cHg7XG59XG4udWktaWNvbi1zY3JpcHQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTEyOHB4O1xufVxuLnVpLWljb24tYWxlcnQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNDRweDtcbn1cbi51aS1pY29uLWluZm8ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTQ0cHg7XG59XG4udWktaWNvbi1ub3RpY2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTQ0cHg7XG59XG4udWktaWNvbi1oZWxwIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE0NHB4O1xufVxuLnVpLWljb24tY2hlY2sge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTQ0cHg7XG59XG4udWktaWNvbi1idWxsZXQge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTQ0cHg7XG59XG4udWktaWNvbi1yYWRpby1vbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNDRweDtcbn1cbi51aS1pY29uLXJhZGlvLW9mZiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTQ0cHg7XG59XG4udWktaWNvbi1waW4tdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTQ0cHg7XG59XG4udWktaWNvbi1waW4tcyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTQ0cHg7XG59XG4udWktaWNvbi1wbGF5IHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHg7XG59XG4udWktaWNvbi1wYXVzZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNjBweDtcbn1cbi51aS1pY29uLXNlZWstbmV4dCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNjBweDtcbn1cbi51aS1pY29uLXNlZWstcHJldiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNjBweDtcbn1cbi51aS1pY29uLXNlZWstZW5kIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2MHB4O1xufVxuLnVpLWljb24tc2Vlay1zdGFydCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDtcbn1cbi8qIHVpLWljb24tc2Vlay1maXJzdCBpcyBkZXByZWNhdGVkLCB1c2UgdWktaWNvbi1zZWVrLXN0YXJ0IGluc3RlYWQgKi9cbi51aS1pY29uLXNlZWstZmlyc3Qge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTYwcHg7XG59XG4udWktaWNvbi1zdG9wIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2MHB4O1xufVxuLnVpLWljb24tZWplY3Qge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2MHB4O1xufVxuLnVpLWljb24tdm9sdW1lLW9mZiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTYwcHg7XG59XG4udWktaWNvbi12b2x1bWUtb24ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE2MHB4O1xufVxuLnVpLWljb24tcG93ZXIge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNzZweDtcbn1cbi51aS1pY29uLXNpZ25hbC1kaWFnIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE3NnB4O1xufVxuLnVpLWljb24tc2lnbmFsIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE3NnB4O1xufVxuLnVpLWljb24tYmF0dGVyeS0wIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE3NnB4O1xufVxuLnVpLWljb24tYmF0dGVyeS0xIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE3NnB4O1xufVxuLnVpLWljb24tYmF0dGVyeS0yIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE3NnB4O1xufVxuLnVpLWljb24tYmF0dGVyeS0zIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE3NnB4O1xufVxuLnVpLWljb24tY2lyY2xlLXBsdXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS1taW51cyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS1jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1lIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTkycHg7XG59XG4udWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtdyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xOTJweDtcbn1cbi51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1uIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLWFycm93LWUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLWFycm93LXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLWFycm93LXcge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLWFycm93LW4ge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlLXpvb21pbiB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTkycHg7XG59XG4udWktaWNvbi1jaXJjbGUtem9vbW91dCB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTkycHg7XG59XG4udWktaWNvbi1jaXJjbGUtY2hlY2sge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE5MnB4O1xufVxuLnVpLWljb24tY2lyY2xlc21hbGwtcGx1cyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIwOHB4O1xufVxuLnVpLWljb24tY2lyY2xlc21hbGwtbWludXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMjA4cHg7XG59XG4udWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMDhweDtcbn1cbi51aS1pY29uLXNxdWFyZXNtYWxsLXBsdXMge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjA4cHg7XG59XG4udWktaWNvbi1zcXVhcmVzbWFsbC1taW51cyB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMDhweDtcbn1cbi51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3NlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTIwOHB4O1xufVxuLnVpLWljb24tZ3JpcC1kb3R0ZWQtdmVydGljYWwge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMjRweDtcbn1cbi51aS1pY29uLWdyaXAtZG90dGVkLWhvcml6b250YWwge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMjI0cHg7XG59XG4udWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2FsIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTIyNHB4O1xufVxuLnVpLWljb24tZ3JpcC1zb2xpZC1ob3Jpem9udGFsIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIyNHB4O1xufVxuLnVpLWljb24tZ3JpcHNtYWxsLWRpYWdvbmFsLXNlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIyNHB4O1xufVxuLnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMjRweDtcbn1cbi8qIE1pc2MgdmlzdWFsc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb3JuZXIgcmFkaXVzICovXG4udWktY29ybmVyLWFsbCxcbi51aS1jb3JuZXItdG9wLFxuLnVpLWNvcm5lci1sZWZ0LFxuLnVpLWNvcm5lci10bCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbn1cbi51aS1jb3JuZXItYWxsLFxuLnVpLWNvcm5lci10b3AsXG4udWktY29ybmVyLXJpZ2h0LFxuLnVpLWNvcm5lci10ciB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4udWktY29ybmVyLWFsbCxcbi51aS1jb3JuZXItYm90dG9tLFxuLnVpLWNvcm5lci1sZWZ0LFxuLnVpLWNvcm5lci1ibCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbn1cbi51aS1jb3JuZXItYWxsLFxuLnVpLWNvcm5lci1ib3R0b20sXG4udWktY29ybmVyLXJpZ2h0LFxuLnVpLWNvcm5lci1iciB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG59XG4vKiBPdmVybGF5cyAqL1xuLnVpLXdpZGdldC1vdmVybGF5IHtcbiAgYmFja2dyb3VuZDogI2FhYWFhYTtcbiAgb3BhY2l0eTogLjM7XG4gIGZpbHRlcjogYWxwaGEob3BhY2l0eT0zMCk7XG4gIC8qIHN1cHBvcnQ6IElFOCAqL1xufVxuLnVpLXdpZGdldC1zaGFkb3cge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggNXB4ICM2NjY2NjY7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggNXB4ICM2NjY2NjY7XG59XG4vKlxuXG7ilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZcg4paI4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKVlyAgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyDilojilojilojilojilojilojilZcgICAg4paI4paI4pWXICAg4paI4paI4pWX4paI4paI4pWXXG7ilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4paI4paI4pWX4paI4paI4paI4paI4pWXICDilojilojilZHilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZHilojilojilZTilZDilZDilZDilZDilZ0gICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRXG7ilojilojilojilojilojilojilojilZfilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKWiOKWiOKVlyDilojilojilZEgICDilojilojilZEgICDilojilojilZHilojilojilZEgICAgICAgICDilojilojilZEgICDilojilojilZHilojilojilZFcbuKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWR4pWa4paI4paI4pWX4paI4paI4pWRICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAgICAgICAg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRXG7ilojilojilojilojilojilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWRIOKVmuKWiOKWiOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKVmuKWiOKWiOKWiOKWiOKWiOKWiOKVlyAgICDilZrilojilojilojilojilojilojilZTilZ3ilojilojilZFcbuKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZ0gIOKVmuKVkOKVkOKVkOKVnSAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSDilZrilZDilZDilZDilZDilZDilZ0gICAgIOKVmuKVkOKVkOKVkOKVkOKVkOKVnSDilZrilZDilZ1cblxuICBJbXBvcnQgdGhpcyBmaWxlIGludG8geW91ciBMRVNTIHByb2plY3QgdG8gdXNlIFNlbWFudGljIFVJIHdpdGhvdXQgYnVpbGQgdG9vbHNcbiovXG4vKiBHbG9iYWwgKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFJlc2V0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJlc2V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgUmVzZXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJlc2V0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQm9yZGVyLUJveCAqL1xuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi8qIGlQYWQgSW5wdXQgU2hhZG93cyAqL1xuaW5wdXRbdHlwZT1cInRleHRcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIG1vYmlsZSBmaXJlZm94IHRvbyEgKi9cbn1cbi8qISBub3JtYWxpemUuY3NzIHY3LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4O1xufVxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovXG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG59XG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqL1xufVxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbn1cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzLFxubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmNhbnZhcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaXRlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaHRtbCxcbmJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5odG1sIHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuYm9keSB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWluLXdpZHRoOiAzMjBweDtcbiAgYmFja2dyb3VuZDogI0U5RUFFRDtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEhlYWRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1IHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgbWFyZ2luOiBjYWxjKDJyZW0gLSAgMC4xNDI4NTcxNGVtICkgMGVtIDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbmgxIHtcbiAgbWluLWhlaWdodDogMXJlbTtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuaDIge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbmg0IHtcbiAgZm9udC1zaXplOiAxLjA3MTQyODU3cmVtO1xufVxuaDUge1xuICBmb250LXNpemU6IDFyZW07XG59XG5oMTpmaXJzdC1jaGlsZCxcbmgyOmZpcnN0LWNoaWxkLFxuaDM6Zmlyc3QtY2hpbGQsXG5oNDpmaXJzdC1jaGlsZCxcbmg1OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuaDE6bGFzdC1jaGlsZCxcbmgyOmxhc3QtY2hpbGQsXG5oMzpsYXN0LWNoaWxkLFxuaDQ6bGFzdC1jaGlsZCxcbmg1Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRleHRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5wIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNzI4NWVtO1xufVxucDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbnA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYSB7XG4gIGNvbG9yOiAjMkM2QTlFO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5hOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTY3JvbGxiYXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBIaWdobGlnaHRpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlICovXG46Oi13ZWJraXQtc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NDRTJGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NDRTJGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQ0UyRkY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogRm9ybSAqL1xudGV4dGFyZWE6Oi13ZWJraXQtc2VsZWN0aW9uLFxuaW5wdXQ6Oi13ZWJraXQtc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjQpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbnRleHRhcmVhOjotbW96LXNlbGVjdGlvbixcbmlucHV0OjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG50ZXh0YXJlYTo6c2VsZWN0aW9uLFxuaW5wdXQ6OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBGb3JjZSBTaW1wbGUgU2Nyb2xsYmFycyAqL1xuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5ib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOndpbmRvdy1pbmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5ib2R5IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTM1LCAxMzksIDAuOCk7XG59XG4vKiBJbnZlcnRlZCBVSSAqL1xuYm9keSAudWkuaW52ZXJ0ZWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuYm9keSAudWkuaW52ZXJ0ZWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cbmJvZHkgLnVpLmludmVydGVkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuYm9keSAudWkuaW52ZXJ0ZWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEdsb2JhbCBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBFbGVtZW50cyAqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gQnV0dG9uXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQnV0dG9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQnV0dG9uICovXG4vKiBCdXR0b24gZGVmYXVsdHMgdG8gdXNpbmcgc2FtZSBoZWlnaHQgYXMgaW5wdXQgZ2xvYmFsbHkgKi9cbi8qIFRleHQgKi9cbi8qIEludGVybmFsIFNoYWRvdyAqL1xuLyogQm94IFNoYWRvdyAqL1xuLyogSWNvbiAqL1xuLyogTG9hZGVyICovXG4vKlxuQHdpbGxDaGFuZ2U6IGJveC1zaGFkb3csIHRyYW5zZm9ybSwgb3BhY2l0eSwgY29sb3IsIGJhY2tncm91bmQ7XG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkICovXG4vKiBGb2N1c2VkICovXG4vKiBEaXNhYmxlZCAqL1xuLyogUHJlc3NlZCBEb3duICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSArIEhvdmVyZWQgKi9cbi8qIExvYWRpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT3IgKi9cbi8qIEljb24gKi9cbi8qIExhYmVsZWQgKi9cbi8qIGh5cG90ZW51c2Ugb2YgdHJpYW5nbGUgKi9cbi8qIExhYmVsZWQgSWNvbiAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljICovXG4vKiBCYXNpYyBIb3ZlciAqL1xuLyogQmFzaWMgRm9jdXMgKi9cbi8qIEJhc2ljIERvd24gKi9cbi8qIEJhc2ljIEFjdGl2ZSAqL1xuLyogQmFzaWMgSW52ZXJ0ZWQgKi9cbi8qIEJhc2ljIEdyb3VwICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbG9ycyAqL1xuLyogQ29sb3JlZCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIE9yZGluYWxpdHkgKi9cbi8qIENvbXBhY3QgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBBbmltYXRlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBCdXR0b25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCdXR0b24gKi9cbi8qIEJ1dHRvbiBkZWZhdWx0cyB0byB1c2luZyBzYW1lIGhlaWdodCBhcyBpbnB1dCBnbG9iYWxseSAqL1xuLyogVGV4dCAqL1xuLyogSW50ZXJuYWwgU2hhZG93ICovXG4vKiBCb3ggU2hhZG93ICovXG4vKiBJY29uICovXG4vKiBMb2FkZXIgKi9cbi8qXG5Ad2lsbENoYW5nZTogYm94LXNoYWRvdywgdHJhbnNmb3JtLCBvcGFjaXR5LCBjb2xvciwgYmFja2dyb3VuZDtcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgKi9cbi8qIEZvY3VzZWQgKi9cbi8qIERpc2FibGVkICovXG4vKiBQcmVzc2VkIERvd24gKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlICsgSG92ZXJlZCAqL1xuLyogTG9hZGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPciAqL1xuLyogSWNvbiAqL1xuLyogTGFiZWxlZCAqL1xuLyogaHlwb3RlbnVzZSBvZiB0cmlhbmdsZSAqL1xuLyogTGFiZWxlZCBJY29uICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIEJhc2ljIEhvdmVyICovXG4vKiBCYXNpYyBGb2N1cyAqL1xuLyogQmFzaWMgRG93biAqL1xuLyogQmFzaWMgQWN0aXZlICovXG4vKiBCYXNpYyBJbnZlcnRlZCAqL1xuLyogQmFzaWMgR3JvdXAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29sb3JzICovXG4vKiBDb2xvcmVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogT3JkaW5hbGl0eSAqL1xuLyogQ29tcGFjdCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEFuaW1hdGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEJ1dHRvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLWhlaWdodDogMWVtO1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgYmFja2dyb3VuZDogI0UwRTFFMiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDEuNWVtIDAuNzg1NzE0MjllbTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZSwgYmFja2dyb3VuZCAwLjFzIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiAnJztcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0FDQkNEO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQgaW5zZXQsIDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLnVpLmJ1dHRvbjpob3ZlciAuaWNvbiB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0FDQkNEO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAnJyAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAnJyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbjpmb2N1cyAuaWNvbiB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3duXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbjphY3RpdmUsXG4udWkuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkFCQkJDO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAnJztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDMEMxQzI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDMEMxQzI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0MwQzFDMjtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BlY2lmaWNpdHkgaGFjayAqL1xuLnVpLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmxvYWRpbmcubG9hZGluZy5sb2FkaW5nLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXIsIG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLmxvYWRpbmcuYnV0dG9uOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi51aS5sb2FkaW5nLmJ1dHRvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICNGRkZGRkYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi51aS5sYWJlbGVkLmljb24ubG9hZGluZy5idXR0b24gLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbkBrZXlmcmFtZXMgYnV0dG9uLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLnVpLmJhc2ljLmxvYWRpbmcuYnV0dG9uOm5vdCguaW52ZXJ0ZWQpOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmJhc2ljLmxvYWRpbmcuYnV0dG9uOm5vdCguaW52ZXJ0ZWQpOmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzc2NzY3Njtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b25zIC5kaXNhYmxlZC5idXR0b24sXG4udWkuZGlzYWJsZWQuYnV0dG9uLFxuLnVpLmJ1dHRvbjpkaXNhYmxlZCxcbi51aS5kaXNhYmxlZC5idXR0b246aG92ZXIsXG4udWkuZGlzYWJsZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgb3BhY2l0eTogMC40NSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljIEdyb3VwIFdpdGggRGlzYWJsZWQgKi9cbi51aS5iYXNpYy5idXR0b25zIC51aS5kaXNhYmxlZC5idXR0b24ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC41KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbmltYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFuaW1hdGVkLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDE7XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uIC5jb250ZW50IHtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbn1cbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEhvcml6b250YWwgKi9cbi51aS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNpdGlvbjogcmlnaHQgMC4zcyBlYXNlIDBzO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xufVxuLnVpLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IC0xMDAlO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG59XG4udWkuYW5pbWF0ZWQuYnV0dG9uOmZvY3VzIC52aXNpYmxlLmNvbnRlbnQsXG4udWkuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC52aXNpYmxlLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjAwJTtcbn1cbi51aS5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMCU7XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgcmlnaHQ6IGF1dG87XG59XG4udWkudmVydGljYWwuYW5pbWF0ZWQuYnV0dG9uIC5oaWRkZW4uY29udGVudCB7XG4gIHRvcDogLTUwJTtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpmb2N1cyAudmlzaWJsZS5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMCUpO1xuICByaWdodDogYXV0bztcbn1cbi51aS52ZXJ0aWNhbC5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLnZlcnRpY2FsLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAuaGlkZGVuLmNvbnRlbnQge1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IGF1dG87XG59XG4vKiBGYWRlICovXG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbiAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b24gLmhpZGRlbi5jb250ZW50IHtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246Zm9jdXMgLnZpc2libGUuY29udGVudCxcbi51aS5mYWRlLmFuaW1hdGVkLmJ1dHRvbjpob3ZlciAudmlzaWJsZS5jb250ZW50IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC43NSk7XG59XG4udWkuZmFkZS5hbmltYXRlZC5idXR0b246Zm9jdXMgLmhpZGRlbi5jb250ZW50LFxuLnVpLmZhZGUuYW5pbWF0ZWQuYnV0dG9uOmhvdmVyIC5oaWRkZW4uY29udGVudCB7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRkZGRkYgaW5zZXQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm9uZTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKiBHcm91cCAqL1xuLnVpLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTJweDtcbn1cbi51aS5pbnZlcnRlZC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmludmVydGVkLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4IDBweCAtMnB4IDBweDtcbn1cbi51aS5pbnZlcnRlZC52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBTdGF0ZXMgKi9cbi8qIEhvdmVyICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRkZGRkYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIEFjdGl2ZSAvIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGRkZGRiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkuaW52ZXJ0ZWQuYnV0dG9uLmFjdGl2ZTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRENERERFIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMYWJlbGVkIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVsZWQuYnV0dG9uOm5vdCguaWNvbikge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5idXR0b24ge1xuICBtYXJnaW46IDBweDtcbn1cbi51aS5sYWJlbGVkLmJ1dHRvbiA+IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAnJztcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIFRhZyAqL1xuLnVpLmxhYmVsZWQuYnV0dG9uID4gLnRhZy5sYWJlbDpiZWZvcmUge1xuICB3aWR0aDogMS44NWVtO1xuICBoZWlnaHQ6IDEuODVlbTtcbn1cbi8qIFJpZ2h0ICovXG4udWkubGFiZWxlZC5idXR0b246bm90KFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0pID4gLmJ1dHRvbiB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwcHg7XG59XG4udWkubGFiZWxlZC5idXR0b246bm90KFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0pID4gLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG4vKiBMZWZ0IFNpZGUgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uYnV0dG9uID4gLmJ1dHRvbiB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgbGFiZWxlZFwiXS5idXR0b24gPiAubGFiZWwge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU29jaWFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGYWNlYm9vayAqL1xuLnVpLmZhY2Vib29rLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQjU5OTg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZmFjZWJvb2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwNGQ4YTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmZhY2Vib29rLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ0MzczO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBUd2l0dGVyICovXG4udWkudHdpdHRlci5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTVBQ0VFO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnR3aXR0ZXIuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM1YTJmNDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnR3aXR0ZXIuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzk1ZTk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEdvb2dsZSBQbHVzICovXG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RENEIzOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5nb29nbGUucGx1cy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTAzMjFjO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuZ29vZ2xlLnBsdXMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMjMzMjE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIExpbmtlZCBJbiAqL1xuLnVpLmxpbmtlZGluLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxRjg4QkU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5saW5rZWRpbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ3YmFmO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubGlua2VkaW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODY5OTI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIFlvdVR1YmUgKi9cbi51aS55b3V0dWJlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjAwMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkueW91dHViZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTYwMDAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueW91dHViZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjMDAwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogSW5zdGFncmFtICovXG4udWkuaW5zdGFncmFtLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0OTc2OUM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuaW5zdGFncmFtLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZDY5OGU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnN0YWdyYW0uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzOTVjNzk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIFBpbnRlcmVzdCAqL1xuLnVpLnBpbnRlcmVzdC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQkQwODFDO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnBpbnRlcmVzdC5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWMwMDEzO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGludGVyZXN0LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGMwNjE1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBWSyAqL1xuLnVpLnZrLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0RDcxOTg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS52ay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDE2NDhhO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS52ay5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNjNTg3NjtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYnV0dG9uID4gLmljb246bm90KC5idXR0b24pIHtcbiAgaGVpZ2h0OiAwLjg1NzE0Mjg2ZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luOiAwZW0gMC40Mjg1NzE0M2VtIDBlbSAtMC4yMTQyODU3MWVtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbiAgdmVydGljYWwtYWxpZ246ICcnO1xuICBjb2xvcjogJyc7XG59XG4udWkuYnV0dG9uOm5vdCguaWNvbikgPiAuaWNvbjpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bikge1xuICBtYXJnaW46IDBlbSAwLjQyODU3MTQzZW0gMGVtIC0wLjIxNDI4NTcxZW07XG59XG4udWkuYnV0dG9uOm5vdCguaWNvbikgPiAucmlnaHQuaWNvbjpub3QoLmJ1dHRvbik6bm90KC5kcm9wZG93bikge1xuICBtYXJnaW46IDBlbSAtMC4yMTQyODU3MWVtIDBlbSAwLjQyODU3MTQzZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5idXR0b25zLFxuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5idXR0b24ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1ZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5idXR0b25zLFxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuMjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5jb21wYWN0LmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNTg5Mjg1NzFlbSAxLjEyNWVtIDAuNTg5Mjg1NzFlbTtcbn1cbi51aS5jb21wYWN0Lmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmNvbXBhY3QuaWNvbi5idXR0b24ge1xuICBwYWRkaW5nOiAwLjU4OTI4NTcxZW0gMC41ODkyODU3MWVtIDAuNTg5Mjg1NzFlbTtcbn1cbi51aS5jb21wYWN0LmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24sXG4udWkuY29tcGFjdC5sYWJlbGVkLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogMC41ODkyODU3MWVtIDMuNjk2NDI4NTdlbSAwLjU4OTI4NTcxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5taW5pLmJ1dHRvbnMgLm9yLFxuLnVpLm1pbmkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnRpbnkuYnV0dG9ucyAub3IsXG4udWkudGlueS5idXR0b24ge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnNtYWxsLmJ1dHRvbnMgLm9yLFxuLnVpLnNtYWxsLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5idXR0b25zIC5idXR0b24sXG4udWkuYnV0dG9ucyAub3IsXG4udWkuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5sYXJnZS5idXR0b25zIC5vcixcbi51aS5sYXJnZS5idXR0b24ge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iaWcuYnV0dG9ucyAub3IsXG4udWkuYmlnLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5odWdlLmJ1dHRvbnMgLm9yLFxuLnVpLmh1Z2UuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLm1hc3NpdmUuYnV0dG9ucyAub3IsXG4udWkubWFzc2l2ZS5idXR0b24ge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSWNvbiBPbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmljb24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmljb24uYnV0dG9uIHtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDAuNzg1NzE0MjllbSAwLjc4NTcxNDI5ZW07XG59XG4udWkuaWNvbi5idXR0b25zIC5idXR0b24gPiAuaWNvbixcbi51aS5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgb3BhY2l0eTogMC45O1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGOEY4RjggIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjE1KSBpbnNldCwgMHB4IDFweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAnJyAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246aG92ZXIsXG4udWkuYmFzaWMuYWN0aXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4vKiBWZXJ0aWNhbCAqL1xuLnVpLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldCBpbnNldDtcbn1cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgaW5zZXQsIDBweCAxcHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0IGluc2V0O1xufVxuLnVpLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAnJyAhaW1wb3J0YW50O1xufVxuLyogU3RhbmRhcmQgQmFzaWMgSW52ZXJ0ZWQgKi9cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGOUZBRkIgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246aG92ZXIge1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b246Zm9jdXMge1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSBpbnNldCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmludmVydGVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuaW52ZXJ0ZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KSBpbnNldDtcbn1cbi51aS5iYXNpYy5pbnZlcnRlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmludmVydGVkLmFjdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmZmZmZiBpbnNldCAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgR3JvdXAgKi9cbi51aS5iYXNpYy5idXR0b25zIC5idXR0b24ge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uIHtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuYmFzaWMudmVydGljYWwuYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBMYWJlbGVkIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDQuMDcxNDI4NTdlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVlbSAhaW1wb3J0YW50O1xufVxuLyogTGVmdCBMYWJlbGVkICovXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbnMgPiAuYnV0dG9uID4gLmljb24sXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwZW07XG4gIHdpZHRoOiAyLjU3MTQyODU3ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiAnJztcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi8qIExlZnQgTGFiZWxlZCAqL1xuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zID4gLmJ1dHRvbiA+IC5pY29uLFxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b24gPiAuaWNvbiB7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwZW07XG59XG4vKiBSaWdodCBMYWJlbGVkICovXG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmctcmlnaHQ6IDQuMDcxNDI4NTdlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiA+IC5pY29uIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gIGJveC1zaGFkb3c6IDFweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjpiZWZvcmUsXG4udWkubGFiZWxlZC5pY29uLmJ1dHRvbiA+IC5pY29uOmJlZm9yZSxcbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyA+IC5idXR0b24gPiAuaWNvbjphZnRlcixcbi51aS5sYWJlbGVkLmljb24uYnV0dG9uID4gLmljb246YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b24gPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkID4gLmljb24ge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCA+IC5pY29uIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnZlcnRpY2FsLmxhYmVsZWQuaWNvbi5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5sYWJlbGVkLmljb24uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQgPiAuaWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qIEZsdWlkIExhYmVsZWQgKi9cbi51aS5mbHVpZFtjbGFzcyo9XCJsZWZ0IGxhYmVsZWRcIl0uaWNvbi5idXR0b24sXG4udWkuZmx1aWRbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pY29uLmJ1dHRvbiB7XG4gIHBhZGRpbmctbGVmdDogMS41ZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMS41ZW0gIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVG9nZ2xlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9nZ2xlIChNb2RpZmllcyBhY3RpdmUgc3RhdGUgdG8gZ2l2ZSBhZmZvcmRhbmNlcykgKi9cbi51aS50b2dnbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5idXR0b25zIC5idXR0b24udG9nZ2xlLmFjdGl2ZSxcbi51aS5idXR0b24udG9nZ2xlLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b24udG9nZ2xlLmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2lyY3VsYXIuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMTBlbTtcbn1cbi51aS5jaXJjdWxhci5idXR0b24gPiAuaWNvbiB7XG4gIHdpZHRoOiAxZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgT3IgQnV0dG9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJ1dHRvbnMgLm9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMC4zZW07XG4gIGhlaWdodDogMi41NzE0Mjg1N2VtO1xuICB6LWluZGV4OiAzO1xufVxuLnVpLmJ1dHRvbnMgLm9yOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGNvbnRlbnQ6ICdvcic7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBtYXJnaW4tdG9wOiAtMC44OTI4NTcxNGVtO1xuICBtYXJnaW4tbGVmdDogLTAuODkyODU3MTRlbTtcbiAgd2lkdGg6IDEuNzg1NzE0MjllbTtcbiAgaGVpZ2h0OiAxLjc4NTcxNDI5ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjc4NTcxNDI5ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudCBpbnNldDtcbn1cbi51aS5idXR0b25zIC5vcltkYXRhLXRleHRdOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbn1cbi8qIEZsdWlkIE9yICovXG4udWkuZmx1aWQuYnV0dG9ucyAub3Ige1xuICB3aWR0aDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZmx1aWQuYnV0dG9ucyAub3I6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbmd1bGFyICovXG4udWkuYXR0YWNoZWQuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbn1cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLnVpLmF0dGFjaGVkLnRvcC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS5hdHRhY2hlZC5ib3R0b20uYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKiBMZWZ0IC8gUmlnaHQgKi9cbi51aS5sZWZ0LmF0dGFjaGVkLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjc1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnJpZ2h0LmF0dGFjaGVkLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLyogUGx1cmFsICovXG4udWkuYXR0YWNoZWQuYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmF0dGFjaGVkLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5hdHRhY2hlZC5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uYnV0dG9ucyB7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDBlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4vKiBMZWZ0IC8gUmlnaHQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGF0dGFjaGVkXCJdLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBhdHRhY2hlZFwiXS5idXR0b25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYXR0YWNoZWRcIl0uYnV0dG9ucyAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwZW0gMC4yMTQyODU3MXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmJ1dHRvbnMsXG4udWkuZmx1aWQuYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZmx1aWQuYnV0dG9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkudHdvLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogNTAlO1xufVxuLnVpLnRocmVlLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50aHJlZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuLnVpLmZvdXIuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZvdXIuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLmZpdmUuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmZpdmUuYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLnNpeC5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc2l4LmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkuc2V2ZW4uYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLnNldmVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkuZWlnaHQuYnV0dG9ucyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnVpLmVpZ2h0LmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDEyLjUwMCU7XG59XG4udWkubmluZS5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkubmluZS5idXR0b25zID4gLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMS4xMSU7XG59XG4udWkudGVuLmJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50ZW4uYnV0dG9ucyA+IC5idXR0b24ge1xuICB3aWR0aDogMTAlO1xufVxuLnVpLmVsZXZlbi5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZWxldmVuLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDkuMDklO1xufVxuLnVpLnR3ZWx2ZS5idXR0b25zIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkudHdlbHZlLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgd2lkdGg6IDguMzMzMyU7XG59XG4vKiBGbHVpZCBWZXJ0aWNhbCBCdXR0b25zICovXG4udWkuZmx1aWQudmVydGljYWwuYnV0dG9ucyxcbi51aS5mbHVpZC52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLnR3by52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogNTAlO1xufVxuLnVpLnRocmVlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAzMy4zMzMlO1xufVxuLnVpLmZvdXIudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDI1JTtcbn1cbi51aS5maXZlLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAyMCU7XG59XG4udWkuc2l4LnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxNi42NjYlO1xufVxuLnVpLnNldmVuLnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxNC4yODUlO1xufVxuLnVpLmVpZ2h0LnZlcnRpY2FsLmJ1dHRvbnMgPiAuYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMi41MDAlO1xufVxuLnVpLm5pbmUudmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDExLjExJTtcbn1cbi51aS50ZW4udmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDEwJTtcbn1cbi51aS5lbGV2ZW4udmVydGljYWwuYnV0dG9ucyA+IC5idXR0b24ge1xuICBoZWlnaHQ6IDkuMDklO1xufVxuLnVpLnR3ZWx2ZS52ZXJ0aWNhbC5idXR0b25zID4gLmJ1dHRvbiB7XG4gIGhlaWdodDogOC4zMzMzJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gQmxhY2sgLS0tKi9cbi51aS5ibGFjay5idXR0b25zIC5idXR0b24sXG4udWkuYmxhY2suYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLmJsYWNrLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5ibGFjay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjcyOTJhO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJsYWNrLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjMwMzI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ibGFjay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJsYWNrLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQzNjM3O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmxhY2suYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ibGFjay5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5ibGFjay5hY3RpdmUuYnV0dG9uLFxuLnVpLmJsYWNrLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwZjEwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5ibGFjay5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzFCMUMxRCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ibGFjay5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzI3MjkyYSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ibGFjay5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzJmMzAzMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsYWNrLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYmxhY2suYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMGYwZjEwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzQzNjM3ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ibGFjay5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMzNDM2MzcgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzNDM2MzcgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLmJsYWNrLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRDRENEQ1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsYWNrLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzAwMDAwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsYWNrLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmxhY2suYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMwMDAwMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsYWNrLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmxhY2suYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMDAwMDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmV5IC0tLSovXG4udWkuZ3JleS5idXR0b25zIC5idXR0b24sXG4udWkuZ3JleS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuZ3JleS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5ncmV5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MzgzODM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5ncmV5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4YThhOGE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuZ3JleS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkwOTA5MDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5ncmV5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmdyZXkuYWN0aXZlLmJ1dHRvbixcbi51aS5ncmV5LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjk2OTY5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZXkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM3Njc2NzYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjODM4MzgzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JleS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMuZ3JleS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzhhOGE4YSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5ncmV5LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzY5Njk2OSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzkwOTA5MCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5ncmV5LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzkwOTA5MCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzkwOTA5MCAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuZ3JleS5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNENEQ0RDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmZDBkMjtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjN2M5Y2I7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZmQwZDI7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMmM0YzU7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2ZkMGQyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2M3YzljYiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDRERERSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmV5LmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JleS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjZmQwZDIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmV5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JleS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZXkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYzJjNGM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCcm93biAtLS0qL1xuLnVpLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5icm93bi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuYnJvd24uYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJyb3duLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NzViMzM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5icm93bi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYnJvd24uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzkwNTMyYjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYnJvd24uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MDUwMzE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5icm93bi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmJyb3duLmFjdGl2ZS5idXR0b24sXG4udWkuYnJvd24uYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5OTVhMzE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTU2NzNGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTc1YjMzIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTA1MzJiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYnJvd24uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5icm93bi5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM5OTVhMzEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4MDUwMzEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5icm93bi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmJyb3duLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzgwNTAzMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuYnJvd24uYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNENjdDMUMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNENjdDMUM7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzg2ZjExO1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzE2ODA4O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYnJvd24uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYzZmMGQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2E5NjIxNjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNjODZmMTEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjYzE2ODA4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDY3QzFDICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5icm93bi5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NjNmYwZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJyb3duLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYnJvd24uYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5icm93bi5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNhOTYyMTYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJsdWUgLS0tKi9cbi51aS5ibHVlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ibHVlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5ibHVlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJsdWUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxNWQ4ZjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJsdWUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhNTU4NztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE0Zjc2O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmx1ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJsdWUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuYmx1ZS5hY3RpdmUuYnV0dG9uLFxuLnVpLmJsdWUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZjVkOTI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuYmx1ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzJDNkE5RSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmJsdWUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyMTVkOGYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTVkOGYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5ibHVlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMWE1NTg3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE1ZDhmICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLmJsdWUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMWY1ZDkyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE0Zjc2ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuYmx1ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmJsdWUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjE0Zjc2IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE0Zjc2ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5ibHVlLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzUzOTFDNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUzOTFDNTtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhODVjNTtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDdlYmY7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzg2Yzg7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYTc3YWI7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjM2E4NWM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTM5MUM1ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzMwN2ViZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUzOTFDNSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ibHVlLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuYmx1ZS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzNzg2YzggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MzkxQzUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ibHVlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuYmx1ZS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmJsdWUuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjM2E3N2FiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTM5MUM1ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmVlbiAtLS0qL1xuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5ncmVlbi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkuZ3JlZW4uYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmdyZWVuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNmFiMzk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmVlbi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuZ3JlZW4uYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBlYTQzMjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuZ3JlZW4uYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOThmMzU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5ncmVlbi5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmdyZWVuLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLmdyZWVuLmFjdGl2ZS5idXR0b24sXG4udWkuZ3JlZW4uYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxM2FlMzg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMjFCQTQ1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTZhYjM5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMGVhNDMyIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4uYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5ncmVlbi5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxM2FlMzggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxOThmMzUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ncmVlbi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLmdyZWVuLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzE5OGYzNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE5OGYzNSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMuZ3JlZW4uYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMyRUNDNDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyRUNDNDA7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjJiZTM0O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTliODJiO1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZmMyMzE7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI1YTIzMztcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMyMmJlMzQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMTliODJiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5ncmVlbi5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzFmYzIzMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJFQ0M0MCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZWVuLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMyNWEyMzMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9yYW5nZSAtLS0qL1xuLnVpLm9yYW5nZS5idXR0b25zIC5idXR0b24sXG4udWkub3JhbmdlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5vcmFuZ2UuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5vcmFuZ2UuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyNjIwMjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkub3JhbmdlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNTViMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZjU5MGM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vcmFuZ2UuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5vcmFuZ2UuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkub3JhbmdlLmFjdGl2ZS5idXR0b24sXG4udWkub3JhbmdlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU2MTAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRjI3MTFDIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNmMjYyMDIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2U1NWIwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2YyNjIwMiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm9yYW5nZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLm9yYW5nZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNmNTYxMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjZjU5MGMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5vcmFuZ2UuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjY2Y1OTBjIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjY2Y1OTBjICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5vcmFuZ2UuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGODUxQiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQjtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3NzAxO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMTcwMDA7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY3NzAxO1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3NmIwMDtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjc3MDEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZjE3MDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4NTFCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub3JhbmdlLmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNzcwMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9yYW5nZS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9yYW5nZS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNlNzZiMDAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbi8qLS0tIFBpbmsgLS0tKi9cbi51aS5waW5rLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5waW5rLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTc7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5waW5rLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnBpbmsuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2MWE4ZDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnBpbmsuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UxMGY4NTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzcxZjdlO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucGluay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnBpbmsuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucGluay5hY3RpdmUuYnV0dG9uLFxuLnVpLnBpbmsuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYTE1OGQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucGluay5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucGluay5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0UwMzk5NyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnBpbmsuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNlNjFhOGQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5waW5rLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZTEwZjg1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucGluay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnBpbmsuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZWExNThkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYzcxZjdlICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucGluay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnBpbmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYzcxZjdlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYzcxZjdlICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5waW5rLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI0ZGOEVERiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERjtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNzRkODtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjY1ZDM7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjc0ZDg7XG59XG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjViZDE7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY3NGQ4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNjVkMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGOEVERiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5waW5rLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucGluay5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjc0ZDggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjhFREYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5waW5rLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucGluay5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnBpbmsuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY1YmQxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBWaW9sZXQgLS0tKi9cbi51aS52aW9sZXQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnZpb2xldC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkudmlvbGV0LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnZpb2xldC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkudmlvbGV0LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODI5YmI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnZpb2xldC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGYyMGI1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkudmlvbGV0LmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTAyYWExO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkudmlvbGV0LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnZpb2xldC5hY3RpdmUuYnV0dG9uLFxuLnVpLnZpb2xldC5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU2MjZiZjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnZpb2xldC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzY0MzVDOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnZpb2xldC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNTgyOWJiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy52aW9sZXQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM0ZjIwYjUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy52aW9sZXQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNTYyNmJmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTAyYWExICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMudmlvbGV0LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzUwMmFhMSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUwMmFhMSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMudmlvbGV0LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNBMjkxRkIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkI7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhNzNmZjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2Q2NGZmO1xufVxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhhNzNmZjtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ODYwZjk7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjOGE3M2ZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzdkNjRmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnZpb2xldC5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM4YTczZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC52aW9sZXQuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNzg2MGY5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTI5MUZCICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQdXJwbGUgLS0tKi9cbi51aS5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnB1cnBsZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucHVycGxlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucHVycGxlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NjI3YmE7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnB1cnBsZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGYxZWI0O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODIyOTlmO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHVycGxlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucHVycGxlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnB1cnBsZS5hY3RpdmUuYnV0dG9uLFxuLnVpLnB1cnBsZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3MjRiZTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0EzMzNDOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTYyN2JhIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICM4ZjFlYjQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wdXJwbGUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5wdXJwbGUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOTcyNGJlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODIyOTlmICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucHVycGxlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzgyMjk5ZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzgyMjk5ZiAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucHVycGxlLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNEQzczRkYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q2NWFmZjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDI0YWZmO1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q2NWFmZjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZjQwZmY7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZDY1YWZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHVycGxlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2QyNGFmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnB1cnBsZS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkNjVhZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQzczRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wdXJwbGUuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjY2Y0MGZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjREM3M0ZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBSZWQgLS0tKi9cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnJlZC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREIyODI4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkucmVkLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLnJlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucmVkLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMDE5MTk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLnJlZC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ExMDEwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucmVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkucmVkLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjIxZTFlO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucmVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucmVkLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnJlZC5hY3RpdmUuYnV0dG9uLFxuLnVpLnJlZC5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q0MTUxNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnJlZC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0RCMjgyOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnJlZC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucmVkLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZDAxOTE5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5yZWQuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjYTEwMTAgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5yZWQuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5yZWQuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZDQxNTE1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYjIxZTFlICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucmVkLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2IyMWUxZSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2IyMWUxZSAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMucmVkLmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNGRjY5NUUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUU7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTE0NDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY0MzM1O1xufVxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNTE0NDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjM5MmI7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucmVkLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmY1MTQ0IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucmVkLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2ZmNDMzNSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnJlZC5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZjUxNDQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRjY5NUUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5yZWQuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmYzOTJiIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBUZWFsIC0tLSovXG4udWkudGVhbC5idXR0b25zIC5idXR0b24sXG4udWkudGVhbC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkudGVhbC5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS50ZWFsLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDljOTU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS50ZWFsLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDhjODY7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkudGVhbC5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwODI3YztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS50ZWFsLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLnRlYWwuYWN0aXZlLmJ1dHRvbixcbi51aS50ZWFsLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5Yzk1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLnRlYWwuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwMEI1QUQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy50ZWFsLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMDA5Yzk1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMudGVhbC5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwOGM4NiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy50ZWFsLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwOWM5NSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwODI3YyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy50ZWFsLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzAwODI3YyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwODI3YyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMudGVhbC5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM2REZGRkYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkY7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b24uYWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0ZmZmZjtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NGZmZmY7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NGZmZmY7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYWZmZmY7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNTRmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzQ0ZmZmZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzZERkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC50ZWFsLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQudGVhbC5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM1NGZmZmYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2REZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQudGVhbC5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnRlYWwuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjM2FmZmZmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBPbGl2ZSAtLS0qL1xuLnVpLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5vbGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG59XG4udWkub2xpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLm9saXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhN2JkMGQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkub2xpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2EwYjYwNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkub2xpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ZDllMTM7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5vbGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLm9saXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b246YWN0aXZlLFxuLnVpLm9saXZlLmFjdGl2ZS5idXR0b24sXG4udWkub2xpdmUuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhYWMxMDk7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQjVDQzE4IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYTdiZDBkIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjYTBiNjA1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5iYXNpYy5vbGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNhYWMxMDkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM4ZDllMTMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vbGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLm9saXZlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzhkOWUxMyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzhkOWUxMyAhaW1wb3J0YW50O1xufVxuLnVpLmJ1dHRvbnM6bm90KC52ZXJ0aWNhbCkgPiAuYmFzaWMub2xpdmUuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNEOUU3NzggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3Nzg7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOGVhNWM7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWVmNDc7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5vbGl2ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhZWQ1OTtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2RkZjRkO1xufVxuLyogSW52ZXJ0ZWQgQmFzaWMgKi9cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYnV0dG9ucyAuYmFzaWMuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2Q4ZWE1YyBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9uOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNkYWVmNDcgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLm9saXZlLmJ1dHRvbnMgLmJhc2ljLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYWN0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZGFlZDU5IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5vbGl2ZS5idXR0b25zIC5iYXNpYy5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLm9saXZlLmJhc2ljLmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2NkZGY0ZCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0Q5RTc3OCAhaW1wb3J0YW50O1xufVxuLyotLS0gWWVsbG93IC0tLSovXG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS55ZWxsb3cuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnllbGxvdy5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLnllbGxvdy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFhZTAwO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS55ZWxsb3cuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RhYTMwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnllbGxvdy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnllbGxvdy5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NkOTkwMztcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnllbGxvdy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLnllbGxvdy5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS55ZWxsb3cuYWN0aXZlLmJ1dHRvbixcbi51aS55ZWxsb3cuYnV0dG9uIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWFlMDA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNGQkJEMDggaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmJhc2ljLnllbGxvdy5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2VhYWUwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZGFhMzAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMueWVsbG93LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMueWVsbG93LmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2VhYWUwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2NkOTkwMyAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmJhc2ljLnllbGxvdy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNjZDk5MDMgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNjZDk5MDMgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnllbGxvdy5idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjRkZFMjFGIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFMjFGO1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbjphY3RpdmUge1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZGYwNTtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVkNTAwO1xufVxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZGYwNTtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYmNkMDA7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZmZkZjA1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQueWVsbG93LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggI2Y1ZDUwMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnllbGxvdy5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICNmZmRmMDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkUyMUYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC55ZWxsb3cuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjZWJjZDAwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFMjFGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQcmltYXJ5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBTdGFuZGFyZCAtLS0qL1xuLnVpLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnByaW1hcnkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLnByaW1hcnkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkucHJpbWFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucHJpbWFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE1ZDhmO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHJpbWFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkucHJpbWFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE1NTg3O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucHJpbWFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTRmNzY7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5wcmltYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucHJpbWFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5wcmltYXJ5LmFjdGl2ZS5idXR0b24sXG4udWkucHJpbWFyeS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmNWQ5MjtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMkM2QTlFIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucHJpbWFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzIxNWQ4ZiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxNWQ4ZiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnByaW1hcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxYTU1ODcgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTVkOGYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMucHJpbWFyeS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxZjVkOTIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTRmNzYgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucHJpbWFyeS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyMTRmNzYgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTRmNzYgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnByaW1hcnkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNTM5MUM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTM5MUM1O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbi5hY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2E4NWM1O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwN2ViZjtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3ODZjODtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNhNzdhYjtcbn1cbi8qIEludmVydGVkIEJhc2ljICovXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5idXR0b25zIC5iYXNpYy5idXR0b24sXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9uOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzYTg1YzUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MzkxQzUgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmJ1dHRvbjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjMzA3ZWJmIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTM5MUM1ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnByaW1hcnkuYnV0dG9ucyAuYmFzaWMuYWN0aXZlLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJhc2ljLmFjdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzM3ODZjOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzUzOTFDNSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnByaW1hcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5wcmltYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbjphY3RpdmUsXG4udWkuaW52ZXJ0ZWQucHJpbWFyeS5iYXNpYy5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICMzYTc3YWIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1MzkxQzUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2Vjb25kYXJ5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24sXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQ7XG59XG4udWkuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5zZWNvbmRhcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI3MjkyYTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZTMwMzI7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDM2Mzc7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5zZWNvbmRhcnkuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkuc2Vjb25kYXJ5LmFjdGl2ZS5idXR0b24sXG4udWkuc2Vjb25kYXJ5LmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjcyOTJhO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMUIxQzFEIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMUIxQzFEICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyNzI5MmEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzJlMzAzMiBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnNlY29uZGFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnNlY29uZGFyeS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyNzI5MmEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMzNDM2MzcgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMzQzNjM3IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMzQzNjM3ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM1NDU0NTQgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NDU0NTQ7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjg2ODY4O1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYxNjE2MTtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2ZTZlNmU7XG59XG4vKiBJbnZlcnRlZCBCYXNpYyAqL1xuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5idXR0b24sXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJ1dHRvbnMgLmJhc2ljLmJ1dHRvbixcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmhvdmVyLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5iYXNpYy5idXR0b246aG92ZXIsXG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNjE2MTYxIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuc2Vjb25kYXJ5LmJhc2ljLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b246Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAycHggIzY4Njg2OCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5idXR0b25zIC5iYXNpYy5hY3RpdmUuYnV0dG9uLFxuLnVpLmludmVydGVkLnNlY29uZGFyeS5iYXNpYy5hY3RpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICM2MTYxNjEgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYnV0dG9ucyAuYmFzaWMuYnV0dG9uOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWNvbmRhcnkuYmFzaWMuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDJweCAjNmU2ZTZlIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLVxuICAgIFBvc2l0aXZlXG4tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFN0YW5kYXJkICovXG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uLFxuLnVpLnBvc2l0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDU7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkucG9zaXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE2YWIzOTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5wb3NpdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGVhNDMyO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5wb3NpdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5OGYzNTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLnVpLnBvc2l0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkucG9zaXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbjphY3RpdmUsXG4udWkucG9zaXRpdmUuYWN0aXZlLmJ1dHRvbixcbi51aS5wb3NpdGl2ZS5idXR0b24gLmFjdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzYWUzODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMyMUJBNDUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246aG92ZXIsXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxNmFiMzkgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5idXR0b246Zm9jdXMsXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMwZWE0MzIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5wb3NpdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uLFxuLnVpLmJhc2ljLnBvc2l0aXZlLmFjdGl2ZS5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggIzEzYWUzOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE5OGYzNSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnBvc2l0aXZlLmJ1dHRvbnMgLmJ1dHRvbjphY3RpdmUsXG4udWkuYmFzaWMucG9zaXRpdmUuYnV0dG9uOmFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMTk4ZjM1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMTk4ZjM1ICFpbXBvcnRhbnQ7XG59XG4udWkuYnV0dG9uczpub3QoLnZlcnRpY2FsKSA+IC5iYXNpYy5wcmltYXJ5LmJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICAgTmVnYXRpdmVcbi0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b24sXG4udWkubmVnYXRpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCMjgyODtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLnVpLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5uZWdhdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDAxOTE5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmZvY3VzLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYTEwMTA7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbi51aS5uZWdhdGl2ZS5idXR0b25zIC5idXR0b246YWN0aXZlLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjIxZTFlO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4udWkubmVnYXRpdmUuYnV0dG9ucyAuYWN0aXZlLmJ1dHRvbixcbi51aS5uZWdhdGl2ZS5idXR0b25zIC5hY3RpdmUuYnV0dG9uOmFjdGl2ZSxcbi51aS5uZWdhdGl2ZS5hY3RpdmUuYnV0dG9uLFxuLnVpLm5lZ2F0aXZlLmJ1dHRvbiAuYWN0aXZlLmJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDQxNTE1O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbixcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b24ge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0RCMjgyOCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpob3Zlcixcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2QwMTkxOSBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmJ1dHRvbjpmb2N1cyxcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI2NhMTAxMCBpbnNldCAhaW1wb3J0YW50O1xuICBjb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLm5lZ2F0aXZlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMubmVnYXRpdmUuYWN0aXZlLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjZDQxNTE1IGluc2V0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjYjIxZTFlICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMubmVnYXRpdmUuYnV0dG9ucyAuYnV0dG9uOmFjdGl2ZSxcbi51aS5iYXNpYy5uZWdhdGl2ZS5idXR0b246YWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNiMjFlMWUgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNiMjFlMWUgIWltcG9ydGFudDtcbn1cbi51aS5idXR0b25zOm5vdCgudmVydGljYWwpID4gLmJhc2ljLnByaW1hcnkuYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgR3JvdXBzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZm9udC1zaXplOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luOiAwZW0gMC4yNWVtIDBlbSAwZW07XG59XG4udWkuYnV0dG9uczpub3QoLmJhc2ljKTpub3QoLmludmVydGVkKSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBDbGVhcmZpeCAqL1xuLnVpLmJ1dHRvbnM6YWZ0ZXIge1xuICBjb250ZW50OiBcIi5cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIFN0YW5kYXJkIEdyb3VwICovXG4udWkuYnV0dG9ucyAuYnV0dG9uIHtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIG1hcmdpbjogMHB4IDBweCAwcHggMHB4O1xufVxuLnVpLmJ1dHRvbnMgPiAudWkuYnV0dG9uOm5vdCguYmFzaWMpOm5vdCguaW52ZXJ0ZWQpLFxuLnVpLmJ1dHRvbnM6bm90KC5iYXNpYyk6bm90KC5pbnZlcnRlZCkgPiAuYnV0dG9uIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50IGluc2V0LCAwcHggMGVtIDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi51aS5idXR0b25zIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS5idXR0b25zIC5idXR0b246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qIFZlcnRpY2FsICBTdHlsZSAqL1xuLnVpLnZlcnRpY2FsLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBweCAwcHggMHB4IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnZlcnRpY2FsLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5idXR0b25zIC5idXR0b246b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibHVlLmJ1dHRvbnMgLmFjdGl2ZS5idXR0b24sXG4udWkuYmFzaWMuYmx1ZS5hY3RpdmUuYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSg0NCwgMTA2LCAxNTgsIDAuMSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxZjVkOTIgaW5zZXQgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMTRmNzYgIWltcG9ydGFudDtcbn1cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENvbnRhaW5lclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRhaW5lclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pbmltdW0gR3V0dGVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lICB0aGUgbWF4aW11bSBjb250YWluZXIgd2lkdGggZm9yIGEgZ2l2ZW4gZGV2aWNlICovXG4vKiBEZXZpY2VzICovXG4vKiBDb3VwbGluZyAoQWRkIE5lZ2F0aXZlIE1hcmdpbiB0byBjb250YWluZXIgc2l6ZSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRhaW5lclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pbmltdW0gR3V0dGVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lICB0aGUgbWF4aW11bSBjb250YWluZXIgd2lkdGggZm9yIGEgZ2l2ZW4gZGV2aWNlICovXG4vKiBEZXZpY2VzICovXG4vKiBDb3VwbGluZyAoQWRkIE5lZ2F0aXZlIE1hcmdpbiB0byBjb250YWluZXIgc2l6ZSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRhaW5lclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFsbCBTaXplcyAqL1xuLnVpLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnZlcnkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuLyogVGFibGV0ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICAwLjVyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICAwLjVyZW0gKSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggY2FsYygxMDAlIC0gIDAuNXJlbSApICArICAzcmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggY2FsYygxMDAlIC0gIDAuNXJlbSApICArICA1cmVtICkgIWltcG9ydGFudDtcbiAgfVxufVxuLyogU21hbGwgTW9uaXRvciAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAudWkuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gIDAuNXJlbSAgKiAyIC0gIDE3cHggKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICAwLjVyZW0gICogMikgIWltcG9ydGFudDtcbiAgfVxuICAudWkucmVsYXhlZC5ncmlkLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoIGNhbGMoMTAwJSAtICAwLjVyZW0gICogMiAtICAxN3B4ICkgICsgIDNyZW0gKSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS52ZXJ5LnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKCBjYWxjKDEwMCUgLSAgMC41cmVtICAqIDIgLSAgMTdweCApICArICA1cmVtICkgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTGFyZ2UgTW9uaXRvciAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtICAwLjVyZW0gICogMiAtICAxN3B4ICk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAgMC41cmVtICAqIDIpICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnJlbGF4ZWQuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKCBjYWxjKDEwMCUgLSAgMC41cmVtICAqIDIgLSAgMTdweCApICArICAzcmVtICkgIWltcG9ydGFudDtcbiAgfVxuICAudWkudmVyeS5yZWxheGVkLmdyaWQuY29udGFpbmVyIHtcbiAgICB3aWR0aDogY2FsYyggY2FsYygxMDAlIC0gIDAuNXJlbSAgKiAyIC0gIDE3cHggKSAgKyAgNXJlbSApICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUZXh0IENvbnRhaW5lciAqL1xuLnVpLnRleHQuY29udGFpbmVyIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgbWF4LXdpZHRoOiA3MDBweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLnVpLnRleHQuY29udGFpbmVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLyogRmx1aWQgKi9cbi51aS5mbHVpZC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udWkuanVzdGlmaWVkLmNvbnRhaW5lciB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gIGh5cGhlbnM6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRGl2aWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERpdmlkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBIb3Jpem9udGFsIC8gVmVydGljYWwgKi9cbi8qIEludmVydGVkICovXG4vKiBTZWN0aW9uICovXG4vKiBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEaXZpZGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSG9yaXpvbnRhbCAvIFZlcnRpY2FsICovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2VjdGlvbiAqL1xuLyogU2l6ZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGl2aWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5kaXZpZGVyIHtcbiAgbWFyZ2luOiAxcmVtIDByZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBoZWlnaHQ6IDBlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzaWNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlcjpub3QoLnZlcnRpY2FsKTpub3QoLmhvcml6b250YWwpIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBBbGxvdyBkaXZpZGVyIGJldHdlZW4gZWFjaCBjb2x1bW4gcm93ICovXG4udWkuZ3JpZCA+IC5jb2x1bW4gKyAuZGl2aWRlcixcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4gKyAuZGl2aWRlciB7XG4gIGxlZnQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBIb3Jpem9udGFsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhvcml6b250YWwuZGl2aWRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogJyc7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmJlZm9yZSxcbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMWVtIHRvcCA1MCU7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAxZW0gdG9wIDUwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWZXJ0aWNhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS52ZXJ0aWNhbC5kaXZpZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IDByZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogNTAlO1xuICBsaW5lLWhlaWdodDogMGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbi51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIGNvbnRlbnQ6ICcnO1xuICB6LWluZGV4OiAzO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtICAxcmVtICk7XG59XG4udWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUge1xuICB0b3A6IC0xMDAlO1xufVxuLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMHB4O1xufVxuLyogSW5zaWRlIGdyaWQgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAnJztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YmVmb3JlLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjphZnRlcixcbiAgLnVpLmdyaWQgLnN0YWNrYWJsZS5yb3cgLnVpLnZlcnRpY2FsLmRpdmlkZXI6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbGVmdDogMDtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMWVtIHRvcCA1MCU7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCAxZW0gdG9wIDUwJTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVyID4gLmljb24ge1xuICBtYXJnaW46IDByZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSGlkZGVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhpZGRlbi5kaXZpZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnVpLmhpZGRlbi5kaXZpZGVyOmJlZm9yZSxcbi51aS5oaWRkZW4uZGl2aWRlcjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlci5pbnZlcnRlZCxcbi51aS52ZXJ0aWNhbC5pbnZlcnRlZC5kaXZpZGVyLFxuLnVpLmhvcml6b250YWwuaW52ZXJ0ZWQuZGl2aWRlciB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmRpdmlkZXIuaW52ZXJ0ZWQsXG4udWkuZGl2aWRlci5pbnZlcnRlZDphZnRlcixcbi51aS5kaXZpZGVyLmludmVydGVkOmJlZm9yZSB7XG4gIGJvcmRlci10b3AtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLmRpdmlkZXIge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDbGVhcmluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jbGVhcmluZy5kaXZpZGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWN0aW9uLmRpdmlkZXIge1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5ob3Jpem9udGFsLmRpdmlkZXI6YmVmb3JlLFxuLnVpLmhvcml6b250YWwuZGl2aWRlcjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUJhQUFBQUFDQ0FZQUFBQ3VUSHVLQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5RnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5TMWpNREUwSURjNUxqRTFNVFE0TVN3Z01qQXhNeTh3TXk4eE15MHhNam93T1RveE5TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJQ2hYYVc1a2IzZHpLU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8xT1RoQlJEWTRPVU5ETVRZeE1VVTBPVUUzTlVWR09FSkRNek16TWpFMk55SWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzFPVGhCUkRZNFFVTkRNVFl4TVVVME9VRTNOVVZHT0VKRE16TXpNakUyTnlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qVTVPRUZFTmpnM1EwTXhOakV4UlRRNVFUYzFSVVk0UWtNek16TXlNVFkzSWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pVNU9FRkVOamc0UTBNeE5qRXhSVFE1UVRjMVJVWTRRa016TXpNeU1UWTNJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrVlU1MTNnQUFBRFZKUkVGVWVOcnMwREVOQUNBUUJEQklXTEdCSlFieS9tVWNKbjVzSlhRbU9RTUFBQUFBQUpxdCsycHJBQUFBQUFDZzJ4ZGdBTms2QkVWdUpneU1BQUFBQUVsRlRrU3VRbUNDJyk7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUuZ3JpZCAudWkudmVydGljYWwuZGl2aWRlcjpiZWZvcmUsXG4gIC51aS5ncmlkIC5zdGFja2FibGUucm93IC51aS52ZXJ0aWNhbC5kaXZpZGVyOmJlZm9yZSxcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIC51aS52ZXJ0aWNhbC5kaXZpZGVyOmFmdGVyLFxuICAudWkuZ3JpZCAuc3RhY2thYmxlLnJvdyAudWkudmVydGljYWwuZGl2aWRlcjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQmFBQUFBQUNDQVlBQUFDdVRIdUtBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlGcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TlMxak1ERTBJRGM1TGpFMU1UUTRNU3dnTWpBeE15OHdNeTh4TXkweE1qb3dPVG94TlNBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElDaFhhVzVrYjNkektTSWdlRzF3VFUwNlNXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzFPVGhCUkRZNE9VTkRNVFl4TVVVME9VRTNOVVZHT0VKRE16TXpNakUyTnlJZ2VHMXdUVTA2Ukc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRvMU9UaEJSRFk0UVVORE1UWXhNVVUwT1VFM05VVkdPRUpETXpNek1qRTJOeUkrSUR4NGJYQk5UVHBFWlhKcGRtVmtSbkp2YlNCemRGSmxaanBwYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pVNU9FRkVOamczUTBNeE5qRXhSVFE1UVRjMVJVWTRRa016TXpNeU1UWTNJaUJ6ZEZKbFpqcGtiMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalU1T0VGRU5qZzRRME14TmpFeFJUUTVRVGMxUlVZNFFrTXpNek15TVRZM0lpOCtJRHd2Y21SbU9rUmxjMk55YVhCMGFXOXVQaUE4TDNKa1pqcFNSRVkrSUR3dmVEcDRiWEJ0WlhSaFBpQThQM2h3WVdOclpYUWdaVzVrUFNKeUlqOCtWVTUxM2dBQUFEVkpSRUZVZU5yczBERU5BQ0FRQkRCSVdMR0JKUWJ5L21VY0puNXNKWFFtT1FNQUFBQUFBSnF0KzJwckFBQUFBQUNnMnhkZ0FOazZCRVZ1Smd5TUFBQUFBRWxGVGtTdVFtQ0MnKTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRmxhZ1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZsYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZsYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEZsYWcgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZsYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmZsYWc6bm90KC5pY29uKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDExcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBTcHJpdGUgKi9cbmkuZmxhZzpub3QoLmljb24pOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6IHVybChcIi9hc3NldHMvaW1hZ2VzL2ZsYWdzLnBuZ1wiKSBuby1yZXBlYXQgLTEwOHB4IC0xOTc2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDExcHg7XG59XG4vKiBGbGFnIFNwcml0ZSBCYXNlZCBPbiBodHRwOi8vd3d3LmZhbWZhbWZhbS5jb20vbGFiL2ljb25zL2ZsYWdzLyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmkuZmxhZy5hZDpiZWZvcmUsXG5pLmZsYWcuYW5kb3JyYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggMHB4O1xufVxuaS5mbGFnLmFlOmJlZm9yZSxcbmkuZmxhZy51bml0ZWQuYXJhYi5lbWlyYXRlczpiZWZvcmUsXG5pLmZsYWcudWFlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMjZweDtcbn1cbmkuZmxhZy5hZjpiZWZvcmUsXG5pLmZsYWcuYWZnaGFuaXN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01MnB4O1xufVxuaS5mbGFnLmFnOmJlZm9yZSxcbmkuZmxhZy5hbnRpZ3VhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNzhweDtcbn1cbmkuZmxhZy5haTpiZWZvcmUsXG5pLmZsYWcuYW5ndWlsbGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMDRweDtcbn1cbmkuZmxhZy5hbDpiZWZvcmUsXG5pLmZsYWcuYWxiYW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEzMHB4O1xufVxuaS5mbGFnLmFtOmJlZm9yZSxcbmkuZmxhZy5hcm1lbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTU2cHg7XG59XG5pLmZsYWcuYW46YmVmb3JlLFxuaS5mbGFnLm5ldGhlcmxhbmRzLmFudGlsbGVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTgycHg7XG59XG5pLmZsYWcuYW86YmVmb3JlLFxuaS5mbGFnLmFuZ29sYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTIwOHB4O1xufVxuaS5mbGFnLmFyOmJlZm9yZSxcbmkuZmxhZy5hcmdlbnRpbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yMzRweDtcbn1cbmkuZmxhZy5hczpiZWZvcmUsXG5pLmZsYWcuYW1lcmljYW4uc2Ftb2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0yNjBweDtcbn1cbmkuZmxhZy5hdDpiZWZvcmUsXG5pLmZsYWcuYXVzdHJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTI4NnB4O1xufVxuaS5mbGFnLmF1OmJlZm9yZSxcbmkuZmxhZy5hdXN0cmFsaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zMTJweDtcbn1cbmkuZmxhZy5hdzpiZWZvcmUsXG5pLmZsYWcuYXJ1YmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0zMzhweDtcbn1cbmkuZmxhZy5heDpiZWZvcmUsXG5pLmZsYWcuYWxhbmQuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTM2NHB4O1xufVxuaS5mbGFnLmF6OmJlZm9yZSxcbmkuZmxhZy5hemVyYmFpamFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMzkwcHg7XG59XG5pLmZsYWcuYmE6YmVmb3JlLFxuaS5mbGFnLmJvc25pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTQxNnB4O1xufVxuaS5mbGFnLmJiOmJlZm9yZSxcbmkuZmxhZy5iYXJiYWRvczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTQ0MnB4O1xufVxuaS5mbGFnLmJkOmJlZm9yZSxcbmkuZmxhZy5iYW5nbGFkZXNoOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNDY4cHg7XG59XG5pLmZsYWcuYmU6YmVmb3JlLFxuaS5mbGFnLmJlbGdpdW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC00OTRweDtcbn1cbmkuZmxhZy5iZjpiZWZvcmUsXG5pLmZsYWcuYnVya2luYS5mYXNvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTIwcHg7XG59XG5pLmZsYWcuYmc6YmVmb3JlLFxuaS5mbGFnLmJ1bGdhcmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNTQ2cHg7XG59XG5pLmZsYWcuYmg6YmVmb3JlLFxuaS5mbGFnLmJhaHJhaW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC01NzJweDtcbn1cbmkuZmxhZy5iaTpiZWZvcmUsXG5pLmZsYWcuYnVydW5kaTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTU5OHB4O1xufVxuaS5mbGFnLmJqOmJlZm9yZSxcbmkuZmxhZy5iZW5pbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTYyNHB4O1xufVxuaS5mbGFnLmJtOmJlZm9yZSxcbmkuZmxhZy5iZXJtdWRhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNjUwcHg7XG59XG5pLmZsYWcuYm46YmVmb3JlLFxuaS5mbGFnLmJydW5laTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTY3NnB4O1xufVxuaS5mbGFnLmJvOmJlZm9yZSxcbmkuZmxhZy5ib2xpdmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNzAycHg7XG59XG5pLmZsYWcuYnI6YmVmb3JlLFxuaS5mbGFnLmJyYXppbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTcyOHB4O1xufVxuaS5mbGFnLmJzOmJlZm9yZSxcbmkuZmxhZy5iYWhhbWFzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtNzU0cHg7XG59XG5pLmZsYWcuYnQ6YmVmb3JlLFxuaS5mbGFnLmJodXRhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTc4MHB4O1xufVxuaS5mbGFnLmJ2OmJlZm9yZSxcbmkuZmxhZy5ib3V2ZXQuaXNsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtODA2cHg7XG59XG5pLmZsYWcuYnc6YmVmb3JlLFxuaS5mbGFnLmJvdHN3YW5hOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtODMycHg7XG59XG5pLmZsYWcuYnk6YmVmb3JlLFxuaS5mbGFnLmJlbGFydXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC04NThweDtcbn1cbmkuZmxhZy5iejpiZWZvcmUsXG5pLmZsYWcuYmVsaXplOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtODg0cHg7XG59XG5pLmZsYWcuY2E6YmVmb3JlLFxuaS5mbGFnLmNhbmFkYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTkxMHB4O1xufVxuaS5mbGFnLmNjOmJlZm9yZSxcbmkuZmxhZy5jb2Nvcy5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtOTYycHg7XG59XG5pLmZsYWcuY2Q6YmVmb3JlLFxuaS5mbGFnLmNvbmdvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtOTg4cHg7XG59XG5pLmZsYWcuY2Y6YmVmb3JlLFxuaS5mbGFnLmNlbnRyYWwuYWZyaWNhbi5yZXB1YmxpYzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEwMTRweDtcbn1cbmkuZmxhZy5jZzpiZWZvcmUsXG5pLmZsYWcuY29uZ28uYnJhenphdmlsbGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMDQwcHg7XG59XG5pLmZsYWcuY2g6YmVmb3JlLFxuaS5mbGFnLnN3aXR6ZXJsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTA2NnB4O1xufVxuaS5mbGFnLmNpOmJlZm9yZSxcbmkuZmxhZy5jb3RlLmRpdm9pcmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMDkycHg7XG59XG5pLmZsYWcuY2s6YmVmb3JlLFxuaS5mbGFnLmNvb2suaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTExMThweDtcbn1cbmkuZmxhZy5jbDpiZWZvcmUsXG5pLmZsYWcuY2hpbGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMTQ0cHg7XG59XG5pLmZsYWcuY206YmVmb3JlLFxuaS5mbGFnLmNhbWVyb29uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTE3MHB4O1xufVxuaS5mbGFnLmNuOmJlZm9yZSxcbmkuZmxhZy5jaGluYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTExOTZweDtcbn1cbmkuZmxhZy5jbzpiZWZvcmUsXG5pLmZsYWcuY29sb21iaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMjIycHg7XG59XG5pLmZsYWcuY3I6YmVmb3JlLFxuaS5mbGFnLmNvc3RhLnJpY2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xMjQ4cHg7XG59XG5pLmZsYWcuY3M6YmVmb3JlLFxuaS5mbGFnLnNlcmJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEyNzRweDtcbn1cbmkuZmxhZy5jdTpiZWZvcmUsXG5pLmZsYWcuY3ViYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEzMDBweDtcbn1cbmkuZmxhZy5jdjpiZWZvcmUsXG5pLmZsYWcuY2FwZS52ZXJkZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEzMjZweDtcbn1cbmkuZmxhZy5jeDpiZWZvcmUsXG5pLmZsYWcuY2hyaXN0bWFzLmlzbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTEzNTJweDtcbn1cbmkuZmxhZy5jeTpiZWZvcmUsXG5pLmZsYWcuY3lwcnVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTM3OHB4O1xufVxuaS5mbGFnLmN6OmJlZm9yZSxcbmkuZmxhZy5jemVjaC5yZXB1YmxpYzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE0MDRweDtcbn1cbmkuZmxhZy5kZTpiZWZvcmUsXG5pLmZsYWcuZ2VybWFueTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE0MzBweDtcbn1cbmkuZmxhZy5kajpiZWZvcmUsXG5pLmZsYWcuZGppYm91dGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNDU2cHg7XG59XG5pLmZsYWcuZGs6YmVmb3JlLFxuaS5mbGFnLmRlbm1hcms6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNDgycHg7XG59XG5pLmZsYWcuZG06YmVmb3JlLFxuaS5mbGFnLmRvbWluaWNhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTUwOHB4O1xufVxuaS5mbGFnLmRvOmJlZm9yZSxcbmkuZmxhZy5kb21pbmljYW4ucmVwdWJsaWM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNTM0cHg7XG59XG5pLmZsYWcuZHo6YmVmb3JlLFxuaS5mbGFnLmFsZ2VyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNTYwcHg7XG59XG5pLmZsYWcuZWM6YmVmb3JlLFxuaS5mbGFnLmVjdWFkb3I6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNTg2cHg7XG59XG5pLmZsYWcuZWU6YmVmb3JlLFxuaS5mbGFnLmVzdG9uaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNjEycHg7XG59XG5pLmZsYWcuZWc6YmVmb3JlLFxuaS5mbGFnLmVneXB0OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTYzOHB4O1xufVxuaS5mbGFnLmVoOmJlZm9yZSxcbmkuZmxhZy53ZXN0ZXJuLnNhaGFyYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE2NjRweDtcbn1cbmkuZmxhZy5nYi5lbmc6YmVmb3JlLFxuaS5mbGFnLmVuZ2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNjkwcHg7XG59XG5pLmZsYWcuZXI6YmVmb3JlLFxuaS5mbGFnLmVyaXRyZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNzE2cHg7XG59XG5pLmZsYWcuZXM6YmVmb3JlLFxuaS5mbGFnLnNwYWluOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDBweCAtMTc0MnB4O1xufVxuaS5mbGFnLmV0OmJlZm9yZSxcbmkuZmxhZy5ldGhpb3BpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE3NjhweDtcbn1cbmkuZmxhZy5ldTpiZWZvcmUsXG5pLmZsYWcuZXVyb3BlYW4udW5pb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xNzk0cHg7XG59XG5pLmZsYWcuZmk6YmVmb3JlLFxuaS5mbGFnLmZpbmxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xODQ2cHg7XG59XG5pLmZsYWcuZmo6YmVmb3JlLFxuaS5mbGFnLmZpamk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xODcycHg7XG59XG5pLmZsYWcuZms6YmVmb3JlLFxuaS5mbGFnLmZhbGtsYW5kLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xODk4cHg7XG59XG5pLmZsYWcuZm06YmVmb3JlLFxuaS5mbGFnLm1pY3JvbmVzaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xOTI0cHg7XG59XG5pLmZsYWcuZm86YmVmb3JlLFxuaS5mbGFnLmZhcm9lLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMHB4IC0xOTUwcHg7XG59XG5pLmZsYWcuZnI6YmVmb3JlLFxuaS5mbGFnLmZyYW5jZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwcHggLTE5NzZweDtcbn1cbmkuZmxhZy5nYTpiZWZvcmUsXG5pLmZsYWcuZ2Fib246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggMHB4O1xufVxuaS5mbGFnLmdiOmJlZm9yZSxcbmkuZmxhZy51azpiZWZvcmUsXG5pLmZsYWcudW5pdGVkLmtpbmdkb206YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTI2cHg7XG59XG5pLmZsYWcuZ2Q6YmVmb3JlLFxuaS5mbGFnLmdyZW5hZGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTUycHg7XG59XG5pLmZsYWcuZ2U6YmVmb3JlLFxuaS5mbGFnLmdlb3JnaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTc4cHg7XG59XG5pLmZsYWcuZ2Y6YmVmb3JlLFxuaS5mbGFnLmZyZW5jaC5ndWlhbmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwNHB4O1xufVxuaS5mbGFnLmdoOmJlZm9yZSxcbmkuZmxhZy5naGFuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTMwcHg7XG59XG5pLmZsYWcuZ2k6YmVmb3JlLFxuaS5mbGFnLmdpYnJhbHRhcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTU2cHg7XG59XG5pLmZsYWcuZ2w6YmVmb3JlLFxuaS5mbGFnLmdyZWVubGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTgycHg7XG59XG5pLmZsYWcuZ206YmVmb3JlLFxuaS5mbGFnLmdhbWJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjA4cHg7XG59XG5pLmZsYWcuZ246YmVmb3JlLFxuaS5mbGFnLmd1aW5lYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjM0cHg7XG59XG5pLmZsYWcuZ3A6YmVmb3JlLFxuaS5mbGFnLmd1YWRlbG91cGU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTI2MHB4O1xufVxuaS5mbGFnLmdxOmJlZm9yZSxcbmkuZmxhZy5lcXVhdG9yaWFsLmd1aW5lYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMjg2cHg7XG59XG5pLmZsYWcuZ3I6YmVmb3JlLFxuaS5mbGFnLmdyZWVjZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMzEycHg7XG59XG5pLmZsYWcuZ3M6YmVmb3JlLFxuaS5mbGFnLnNhbmR3aWNoLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTMzOHB4O1xufVxuaS5mbGFnLmd0OmJlZm9yZSxcbmkuZmxhZy5ndWF0ZW1hbGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTM2NHB4O1xufVxuaS5mbGFnLmd1OmJlZm9yZSxcbmkuZmxhZy5ndWFtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0zOTBweDtcbn1cbmkuZmxhZy5ndzpiZWZvcmUsXG5pLmZsYWcuZ3VpbmVhLWJpc3NhdTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDE2cHg7XG59XG5pLmZsYWcuZ3k6YmVmb3JlLFxuaS5mbGFnLmd1eWFuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDQycHg7XG59XG5pLmZsYWcuaGs6YmVmb3JlLFxuaS5mbGFnLmhvbmcua29uZzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDY4cHg7XG59XG5pLmZsYWcuaG06YmVmb3JlLFxuaS5mbGFnLmhlYXJkLmlzbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNDk0cHg7XG59XG5pLmZsYWcuaG46YmVmb3JlLFxuaS5mbGFnLmhvbmR1cmFzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC01MjBweDtcbn1cbmkuZmxhZy5ocjpiZWZvcmUsXG5pLmZsYWcuY3JvYXRpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTQ2cHg7XG59XG5pLmZsYWcuaHQ6YmVmb3JlLFxuaS5mbGFnLmhhaXRpOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC01NzJweDtcbn1cbmkuZmxhZy5odTpiZWZvcmUsXG5pLmZsYWcuaHVuZ2FyeTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNTk4cHg7XG59XG5pLmZsYWcuaWQ6YmVmb3JlLFxuaS5mbGFnLmluZG9uZXNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNjI0cHg7XG59XG5pLmZsYWcuaWU6YmVmb3JlLFxuaS5mbGFnLmlyZWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTY1MHB4O1xufVxuaS5mbGFnLmlsOmJlZm9yZSxcbmkuZmxhZy5pc3JhZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTY3NnB4O1xufVxuaS5mbGFnLmluOmJlZm9yZSxcbmkuZmxhZy5pbmRpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNzAycHg7XG59XG5pLmZsYWcuaW86YmVmb3JlLFxuaS5mbGFnLmluZGlhbi5vY2Vhbi50ZXJyaXRvcnk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTcyOHB4O1xufVxuaS5mbGFnLmlxOmJlZm9yZSxcbmkuZmxhZy5pcmFxOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC03NTRweDtcbn1cbmkuZmxhZy5pcjpiZWZvcmUsXG5pLmZsYWcuaXJhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtNzgwcHg7XG59XG5pLmZsYWcuaXM6YmVmb3JlLFxuaS5mbGFnLmljZWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTgwNnB4O1xufVxuaS5mbGFnLml0OmJlZm9yZSxcbmkuZmxhZy5pdGFseTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtODMycHg7XG59XG5pLmZsYWcuam06YmVmb3JlLFxuaS5mbGFnLmphbWFpY2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTg1OHB4O1xufVxuaS5mbGFnLmpvOmJlZm9yZSxcbmkuZmxhZy5qb3JkYW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTg4NHB4O1xufVxuaS5mbGFnLmpwOmJlZm9yZSxcbmkuZmxhZy5qYXBhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtOTEwcHg7XG59XG5pLmZsYWcua2U6YmVmb3JlLFxuaS5mbGFnLmtlbnlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC05MzZweDtcbn1cbmkuZmxhZy5rZzpiZWZvcmUsXG5pLmZsYWcua3lyZ3l6c3RhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtOTYycHg7XG59XG5pLmZsYWcua2g6YmVmb3JlLFxuaS5mbGFnLmNhbWJvZGlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC05ODhweDtcbn1cbmkuZmxhZy5raTpiZWZvcmUsXG5pLmZsYWcua2lyaWJhdGk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwMTRweDtcbn1cbmkuZmxhZy5rbTpiZWZvcmUsXG5pLmZsYWcuY29tb3JvczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTA0MHB4O1xufVxuaS5mbGFnLmtuOmJlZm9yZSxcbmkuZmxhZy5zYWludC5raXR0cy5hbmQubmV2aXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwNjZweDtcbn1cbmkuZmxhZy5rcDpiZWZvcmUsXG5pLmZsYWcubm9ydGgua29yZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEwOTJweDtcbn1cbmkuZmxhZy5rcjpiZWZvcmUsXG5pLmZsYWcuc291dGgua29yZWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTExMThweDtcbn1cbmkuZmxhZy5rdzpiZWZvcmUsXG5pLmZsYWcua3V3YWl0OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMTQ0cHg7XG59XG5pLmZsYWcua3k6YmVmb3JlLFxuaS5mbGFnLmNheW1hbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMTcwcHg7XG59XG5pLmZsYWcua3o6YmVmb3JlLFxuaS5mbGFnLmthemFraHN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTExOTZweDtcbn1cbmkuZmxhZy5sYTpiZWZvcmUsXG5pLmZsYWcubGFvczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTIyMnB4O1xufVxuaS5mbGFnLmxiOmJlZm9yZSxcbmkuZmxhZy5sZWJhbm9uOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMjQ4cHg7XG59XG5pLmZsYWcubGM6YmVmb3JlLFxuaS5mbGFnLnNhaW50Lmx1Y2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMjc0cHg7XG59XG5pLmZsYWcubGk6YmVmb3JlLFxuaS5mbGFnLmxpZWNodGVuc3RlaW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEzMDBweDtcbn1cbmkuZmxhZy5sazpiZWZvcmUsXG5pLmZsYWcuc3JpLmxhbmthOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xMzI2cHg7XG59XG5pLmZsYWcubHI6YmVmb3JlLFxuaS5mbGFnLmxpYmVyaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTEzNTJweDtcbn1cbmkuZmxhZy5sczpiZWZvcmUsXG5pLmZsYWcubGVzb3RobzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTM3OHB4O1xufVxuaS5mbGFnLmx0OmJlZm9yZSxcbmkuZmxhZy5saXRodWFuaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE0MDRweDtcbn1cbmkuZmxhZy5sdTpiZWZvcmUsXG5pLmZsYWcubHV4ZW1ib3VyZzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTQzMHB4O1xufVxuaS5mbGFnLmx2OmJlZm9yZSxcbmkuZmxhZy5sYXR2aWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE0NTZweDtcbn1cbmkuZmxhZy5seTpiZWZvcmUsXG5pLmZsYWcubGlieWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE0ODJweDtcbn1cbmkuZmxhZy5tYTpiZWZvcmUsXG5pLmZsYWcubW9yb2NjbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTUwOHB4O1xufVxuaS5mbGFnLm1jOmJlZm9yZSxcbmkuZmxhZy5tb25hY286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE1MzRweDtcbn1cbmkuZmxhZy5tZDpiZWZvcmUsXG5pLmZsYWcubW9sZG92YTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTU2MHB4O1xufVxuaS5mbGFnLm1lOmJlZm9yZSxcbmkuZmxhZy5tb250ZW5lZ3JvOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xNTg2cHg7XG59XG5pLmZsYWcubWc6YmVmb3JlLFxuaS5mbGFnLm1hZGFnYXNjYXI6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE2MTNweDtcbn1cbmkuZmxhZy5taDpiZWZvcmUsXG5pLmZsYWcubWFyc2hhbGwuaXNsYW5kczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTYzOXB4O1xufVxuaS5mbGFnLm1rOmJlZm9yZSxcbmkuZmxhZy5tYWNlZG9uaWE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE2NjVweDtcbn1cbmkuZmxhZy5tbDpiZWZvcmUsXG5pLmZsYWcubWFsaTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTY5MXB4O1xufVxuaS5mbGFnLm1tOmJlZm9yZSxcbmkuZmxhZy5teWFubWFyOmJlZm9yZSxcbmkuZmxhZy5idXJtYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzNweCAtMTgyMXB4O1xufVxuaS5mbGFnLm1uOmJlZm9yZSxcbmkuZmxhZy5tb25nb2xpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTc0M3B4O1xufVxuaS5mbGFnLm1vOmJlZm9yZSxcbmkuZmxhZy5tYWNhdTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTc2OXB4O1xufVxuaS5mbGFnLm1wOmJlZm9yZSxcbmkuZmxhZy5ub3J0aGVybi5tYXJpYW5hLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE3OTVweDtcbn1cbmkuZmxhZy5tcTpiZWZvcmUsXG5pLmZsYWcubWFydGluaXF1ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTgyMXB4O1xufVxuaS5mbGFnLm1yOmJlZm9yZSxcbmkuZmxhZy5tYXVyaXRhbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xODQ3cHg7XG59XG5pLmZsYWcubXM6YmVmb3JlLFxuaS5mbGFnLm1vbnRzZXJyYXQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE4NzNweDtcbn1cbmkuZmxhZy5tdDpiZWZvcmUsXG5pLmZsYWcubWFsdGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2cHggLTE4OTlweDtcbn1cbmkuZmxhZy5tdTpiZWZvcmUsXG5pLmZsYWcubWF1cml0aXVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xOTI1cHg7XG59XG5pLmZsYWcubXY6YmVmb3JlLFxuaS5mbGFnLm1hbGRpdmVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0zNnB4IC0xOTUxcHg7XG59XG5pLmZsYWcubXc6YmVmb3JlLFxuaS5mbGFnLm1hbGF3aTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzZweCAtMTk3N3B4O1xufVxuaS5mbGFnLm14OmJlZm9yZSxcbmkuZmxhZy5tZXhpY286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggMHB4O1xufVxuaS5mbGFnLm15OmJlZm9yZSxcbmkuZmxhZy5tYWxheXNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMjZweDtcbn1cbmkuZmxhZy5tejpiZWZvcmUsXG5pLmZsYWcubW96YW1iaXF1ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNTJweDtcbn1cbmkuZmxhZy5uYTpiZWZvcmUsXG5pLmZsYWcubmFtaWJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzhweDtcbn1cbmkuZmxhZy5uYzpiZWZvcmUsXG5pLmZsYWcubmV3LmNhbGVkb25pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTA0cHg7XG59XG5pLmZsYWcubmU6YmVmb3JlLFxuaS5mbGFnLm5pZ2VyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMzBweDtcbn1cbmkuZmxhZy5uZjpiZWZvcmUsXG5pLmZsYWcubm9yZm9say5pc2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE1NnB4O1xufVxuaS5mbGFnLm5nOmJlZm9yZSxcbmkuZmxhZy5uaWdlcmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xODJweDtcbn1cbmkuZmxhZy5uaTpiZWZvcmUsXG5pLmZsYWcubmljYXJhZ3VhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0yMDhweDtcbn1cbmkuZmxhZy5ubDpiZWZvcmUsXG5pLmZsYWcubmV0aGVybGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTIzNHB4O1xufVxuaS5mbGFnLm5vOmJlZm9yZSxcbmkuZmxhZy5ub3J3YXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTI2MHB4O1xufVxuaS5mbGFnLm5wOmJlZm9yZSxcbmkuZmxhZy5uZXBhbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMjg2cHg7XG59XG5pLmZsYWcubnI6YmVmb3JlLFxuaS5mbGFnLm5hdXJ1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0zMTJweDtcbn1cbmkuZmxhZy5udTpiZWZvcmUsXG5pLmZsYWcubml1ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMzM4cHg7XG59XG5pLmZsYWcubno6YmVmb3JlLFxuaS5mbGFnLm5ldy56ZWFsYW5kOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0zNjRweDtcbn1cbmkuZmxhZy5vbTpiZWZvcmUsXG5pLmZsYWcub21hbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMzkwcHg7XG59XG5pLmZsYWcucGE6YmVmb3JlLFxuaS5mbGFnLnBhbmFtYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNDE2cHg7XG59XG5pLmZsYWcucGU6YmVmb3JlLFxuaS5mbGFnLnBlcnU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTQ0MnB4O1xufVxuaS5mbGFnLnBmOmJlZm9yZSxcbmkuZmxhZy5mcmVuY2gucG9seW5lc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC00NjhweDtcbn1cbmkuZmxhZy5wZzpiZWZvcmUsXG5pLmZsYWcubmV3Lmd1aW5lYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNDk0cHg7XG59XG5pLmZsYWcucGg6YmVmb3JlLFxuaS5mbGFnLnBoaWxpcHBpbmVzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC01MjBweDtcbn1cbmkuZmxhZy5wazpiZWZvcmUsXG5pLmZsYWcucGFraXN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTU0NnB4O1xufVxuaS5mbGFnLnBsOmJlZm9yZSxcbmkuZmxhZy5wb2xhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTU3MnB4O1xufVxuaS5mbGFnLnBtOmJlZm9yZSxcbmkuZmxhZy5zYWludC5waWVycmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTU5OHB4O1xufVxuaS5mbGFnLnBuOmJlZm9yZSxcbmkuZmxhZy5waXRjYWlybi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC02MjRweDtcbn1cbmkuZmxhZy5wcjpiZWZvcmUsXG5pLmZsYWcucHVlcnRvLnJpY286YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTY1MHB4O1xufVxuaS5mbGFnLnBzOmJlZm9yZSxcbmkuZmxhZy5wYWxlc3RpbmU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTY3NnB4O1xufVxuaS5mbGFnLnB0OmJlZm9yZSxcbmkuZmxhZy5wb3J0dWdhbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzAycHg7XG59XG5pLmZsYWcucHc6YmVmb3JlLFxuaS5mbGFnLnBhbGF1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC03MjhweDtcbn1cbmkuZmxhZy5weTpiZWZvcmUsXG5pLmZsYWcucGFyYWd1YXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTc1NHB4O1xufVxuaS5mbGFnLnFhOmJlZm9yZSxcbmkuZmxhZy5xYXRhcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtNzgwcHg7XG59XG5pLmZsYWcucmU6YmVmb3JlLFxuaS5mbGFnLnJldW5pb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTgwNnB4O1xufVxuaS5mbGFnLnJvOmJlZm9yZSxcbmkuZmxhZy5yb21hbmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC04MzJweDtcbn1cbmkuZmxhZy5yczpiZWZvcmUsXG5pLmZsYWcuc2VyYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC04NThweDtcbn1cbmkuZmxhZy5ydTpiZWZvcmUsXG5pLmZsYWcucnVzc2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC04ODRweDtcbn1cbmkuZmxhZy5ydzpiZWZvcmUsXG5pLmZsYWcucndhbmRhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC05MTBweDtcbn1cbmkuZmxhZy5zYTpiZWZvcmUsXG5pLmZsYWcuc2F1ZGkuYXJhYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC05MzZweDtcbn1cbmkuZmxhZy5zYjpiZWZvcmUsXG5pLmZsYWcuc29sb21vbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC05NjJweDtcbn1cbmkuZmxhZy5zYzpiZWZvcmUsXG5pLmZsYWcuc2V5Y2hlbGxlczpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtOTg4cHg7XG59XG5pLmZsYWcuZ2Iuc2N0OmJlZm9yZSxcbmkuZmxhZy5zY290bGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTAxNHB4O1xufVxuaS5mbGFnLnNkOmJlZm9yZSxcbmkuZmxhZy5zdWRhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTA0MHB4O1xufVxuaS5mbGFnLnNlOmJlZm9yZSxcbmkuZmxhZy5zd2VkZW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEwNjZweDtcbn1cbmkuZmxhZy5zZzpiZWZvcmUsXG5pLmZsYWcuc2luZ2Fwb3JlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMDkycHg7XG59XG5pLmZsYWcuc2g6YmVmb3JlLFxuaS5mbGFnLnNhaW50LmhlbGVuYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTExOHB4O1xufVxuaS5mbGFnLnNpOmJlZm9yZSxcbmkuZmxhZy5zbG92ZW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTE0NHB4O1xufVxuaS5mbGFnLnNqOmJlZm9yZSxcbmkuZmxhZy5zdmFsYmFyZDpiZWZvcmUsXG5pLmZsYWcuamFuLm1heWVuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMTcwcHg7XG59XG5pLmZsYWcuc2s6YmVmb3JlLFxuaS5mbGFnLnNsb3Zha2lhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMTk2cHg7XG59XG5pLmZsYWcuc2w6YmVmb3JlLFxuaS5mbGFnLnNpZXJyYS5sZW9uZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTIyMnB4O1xufVxuaS5mbGFnLnNtOmJlZm9yZSxcbmkuZmxhZy5zYW4ubWFyaW5vOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xMjQ4cHg7XG59XG5pLmZsYWcuc246YmVmb3JlLFxuaS5mbGFnLnNlbmVnYWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTEyNzRweDtcbn1cbmkuZmxhZy5zbzpiZWZvcmUsXG5pLmZsYWcuc29tYWxpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTMwMHB4O1xufVxuaS5mbGFnLnNyOmJlZm9yZSxcbmkuZmxhZy5zdXJpbmFtZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTMyNnB4O1xufVxuaS5mbGFnLnN0OmJlZm9yZSxcbmkuZmxhZy5zYW8udG9tZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTM1MnB4O1xufVxuaS5mbGFnLnN2OmJlZm9yZSxcbmkuZmxhZy5lbC5zYWx2YWRvcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTM3OHB4O1xufVxuaS5mbGFnLnN5OmJlZm9yZSxcbmkuZmxhZy5zeXJpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTQwNHB4O1xufVxuaS5mbGFnLnN6OmJlZm9yZSxcbmkuZmxhZy5zd2F6aWxhbmQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE0MzBweDtcbn1cbmkuZmxhZy50YzpiZWZvcmUsXG5pLmZsYWcuY2FpY29zLmlzbGFuZHM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE0NTZweDtcbn1cbmkuZmxhZy50ZDpiZWZvcmUsXG5pLmZsYWcuY2hhZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTQ4MnB4O1xufVxuaS5mbGFnLnRmOmJlZm9yZSxcbmkuZmxhZy5mcmVuY2gudGVycml0b3JpZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE1MDhweDtcbn1cbmkuZmxhZy50ZzpiZWZvcmUsXG5pLmZsYWcudG9nbzpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTUzNHB4O1xufVxuaS5mbGFnLnRoOmJlZm9yZSxcbmkuZmxhZy50aGFpbGFuZDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTU2MHB4O1xufVxuaS5mbGFnLnRqOmJlZm9yZSxcbmkuZmxhZy50YWppa2lzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNTg2cHg7XG59XG5pLmZsYWcudGs6YmVmb3JlLFxuaS5mbGFnLnRva2VsYXU6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE2MTJweDtcbn1cbmkuZmxhZy50bDpiZWZvcmUsXG5pLmZsYWcudGltb3JsZXN0ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTYzOHB4O1xufVxuaS5mbGFnLnRtOmJlZm9yZSxcbmkuZmxhZy50dXJrbWVuaXN0YW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE2NjRweDtcbn1cbmkuZmxhZy50bjpiZWZvcmUsXG5pLmZsYWcudHVuaXNpYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTY5MHB4O1xufVxuaS5mbGFnLnRvOmJlZm9yZSxcbmkuZmxhZy50b25nYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTcxNnB4O1xufVxuaS5mbGFnLnRyOmJlZm9yZSxcbmkuZmxhZy50dXJrZXk6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE3NDJweDtcbn1cbmkuZmxhZy50dDpiZWZvcmUsXG5pLmZsYWcudHJpbmlkYWQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE3NjhweDtcbn1cbmkuZmxhZy50djpiZWZvcmUsXG5pLmZsYWcudHV2YWx1OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xNzk0cHg7XG59XG5pLmZsYWcudHc6YmVmb3JlLFxuaS5mbGFnLnRhaXdhbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTgyMHB4O1xufVxuaS5mbGFnLnR6OmJlZm9yZSxcbmkuZmxhZy50YW56YW5pYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTg0NnB4O1xufVxuaS5mbGFnLnVhOmJlZm9yZSxcbmkuZmxhZy51a3JhaW5lOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xODcycHg7XG59XG5pLmZsYWcudWc6YmVmb3JlLFxuaS5mbGFnLnVnYW5kYTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTg5OHB4O1xufVxuaS5mbGFnLnVtOmJlZm9yZSxcbmkuZmxhZy51cy5taW5vci5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC03MnB4IC0xOTI0cHg7XG59XG5pLmZsYWcudXM6YmVmb3JlLFxuaS5mbGFnLmFtZXJpY2E6YmVmb3JlLFxuaS5mbGFnLnVuaXRlZC5zdGF0ZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTcycHggLTE5NTBweDtcbn1cbmkuZmxhZy51eTpiZWZvcmUsXG5pLmZsYWcudXJ1Z3VheTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNzJweCAtMTk3NnB4O1xufVxuaS5mbGFnLnV6OmJlZm9yZSxcbmkuZmxhZy51emJla2lzdGFuOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAwcHg7XG59XG5pLmZsYWcudmE6YmVmb3JlLFxuaS5mbGFnLnZhdGljYW4uY2l0eTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTI2cHg7XG59XG5pLmZsYWcudmM6YmVmb3JlLFxuaS5mbGFnLnNhaW50LnZpbmNlbnQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC01MnB4O1xufVxuaS5mbGFnLnZlOmJlZm9yZSxcbmkuZmxhZy52ZW5lenVlbGE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC03OHB4O1xufVxuaS5mbGFnLnZnOmJlZm9yZSxcbmkuZmxhZy5icml0aXNoLnZpcmdpbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMTA0cHg7XG59XG5pLmZsYWcudmk6YmVmb3JlLFxuaS5mbGFnLnVzLnZpcmdpbi5pc2xhbmRzOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMTMwcHg7XG59XG5pLmZsYWcudm46YmVmb3JlLFxuaS5mbGFnLnZpZXRuYW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0xNTZweDtcbn1cbmkuZmxhZy52dTpiZWZvcmUsXG5pLmZsYWcudmFudWF0dTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTE4MnB4O1xufVxuaS5mbGFnLmdiLndsczpiZWZvcmUsXG5pLmZsYWcud2FsZXM6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yMDhweDtcbn1cbmkuZmxhZy53ZjpiZWZvcmUsXG5pLmZsYWcud2FsbGlzLmFuZC5mdXR1bmE6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yMzRweDtcbn1cbmkuZmxhZy53czpiZWZvcmUsXG5pLmZsYWcuc2Ftb2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yNjBweDtcbn1cbmkuZmxhZy55ZTpiZWZvcmUsXG5pLmZsYWcueWVtZW46YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0yODZweDtcbn1cbmkuZmxhZy55dDpiZWZvcmUsXG5pLmZsYWcubWF5b3R0ZTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTA4cHggLTMxMnB4O1xufVxuaS5mbGFnLnphOmJlZm9yZSxcbmkuZmxhZy5zb3V0aC5hZnJpY2E6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwOHB4IC0zMzhweDtcbn1cbmkuZmxhZy56bTpiZWZvcmUsXG5pLmZsYWcuemFtYmlhOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMzY0cHg7XG59XG5pLmZsYWcuenc6YmVmb3JlLFxuaS5mbGFnLnppbWJhYndlOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDhweCAtMzkwcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBIZWFkZXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdWIgSGVhZGluZyAqL1xuLyogU3ViIEhlYWRlciAqL1xuLyogSWNvbiAqL1xuLyogSW1hZ2UgKi9cbi8qIExhYmVsICovXG4vKiBDb250ZW50ICovXG4vKiBQYXJhZ3JhcGggYWZ0ZXIgSGVhZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemluZyAqL1xuLyogU3ViIEhlYWRlciAqL1xuLyogSWNvbiBIZWFkZXIgKi9cbi8qIE5vIExpbmUgSGVpZ2h0IE9mZnNldCAqL1xuLyogRGl2aWRlZCAqL1xuLyogQmxvY2sgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdWIgSGVhZGluZyAqL1xuLyogU3ViIEhlYWRlciAqL1xuLyogSWNvbiAqL1xuLyogSW1hZ2UgKi9cbi8qIExhYmVsICovXG4vKiBDb250ZW50ICovXG4vKiBQYXJhZ3JhcGggYWZ0ZXIgSGVhZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemluZyAqL1xuLyogU3ViIEhlYWRlciAqL1xuLyogSWNvbiBIZWFkZXIgKi9cbi8qIE5vIExpbmUgSGVpZ2h0IE9mZnNldCAqL1xuLyogRGl2aWRlZCAqL1xuLyogQmxvY2sgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogRmxvYXRlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBIZWFkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTdGFuZGFyZCAqL1xuLnVpLmhlYWRlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiBjYWxjKDJyZW0gLSAgMC4xNDI4NTcxNGVtICkgMGVtIDFyZW07XG4gIHBhZGRpbmc6IDBlbSAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjI4NTcxNDI5ZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAtMC4xNDI4NTcxNGVtO1xufVxuLnVpLmhlYWRlcjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU3ViIEhlYWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciA+IC5pY29uIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgcGFkZGluZy10b3A6IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIFdpdGggVGV4dCBOb2RlICovXG4udWkuaGVhZGVyIC5pY29uOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEltYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyID4gLmltYWdlOm5vdCguaWNvbiksXG4udWkuaGVhZGVyID4gaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjE0Mjg1NzE0ZW07XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmhlYWRlciA+IC5pbWFnZTpub3QoLmljb24pOm9ubHktY2hpbGQsXG4udWkuaGVhZGVyID4gaW1nOm9ubHktY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaGVhZGVyIC5jb250ZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLyogQWZ0ZXIgSW1hZ2UgKi9cbi51aS5oZWFkZXIgPiBpbWcgKyAuY29udGVudCxcbi51aS5oZWFkZXIgPiAuaW1hZ2UgKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIEFmdGVyIEljb24gKi9cbi51aS5oZWFkZXIgPiAuaWNvbiArIC5jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuIExvb3NlIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciAudWkubGFiZWwge1xuICBmb250LXNpemU6ICcnO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyogUG9zaXRpb25pbmcgKi9cbi51aS5oZWFkZXIgKyBwIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuaDEudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuaDIudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtO1xufVxuaDMudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuaDQudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjA3MTQyODU3cmVtO1xufVxuaDUudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLyogU3ViIEhlYWRlciAqL1xuaDEudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuaDIudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuaDMudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuaDQudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuaDUudWkuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuIENvbnRlbnQgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5odWdlLmhlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDFlbTtcbiAgZm9udC1zaXplOiAyZW07XG59XG4udWkubGFyZ2UuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4udWkubWVkaXVtLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLnVpLnNtYWxsLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS4wNzE0Mjg1N2VtO1xufVxuLnVpLnRpbnkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKiBTdWIgSGVhZGVyICovXG4udWkuaHVnZS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkubGFyZ2UuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5zbWFsbC5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkudGlueS5oZWFkZXIgLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBTdWIgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdWIuaGVhZGVyIHtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjE0Mjg1NzE0cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAnJztcbn1cbi51aS5zbWFsbC5zdWIuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5ZW07XG59XG4udWkuc3ViLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xufVxuLnVpLmxhcmdlLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbn1cbi51aS5odWdlLnN1Yi5oZWFkZXIge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBJY29uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaWNvbi5oZWFkZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAycmVtIDBlbSAxcmVtO1xufVxuLnVpLmljb24uaGVhZGVyOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pY29uLmhlYWRlcjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5pY29uLmhlYWRlciAuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC1zaXplOiAzZW07XG4gIG1hcmdpbjogMGVtIGF1dG8gMC41cmVtO1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLmljb24uaGVhZGVyIC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS5pY29uLmhlYWRlciAuY2lyY3VsYXIuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLnVpLmljb24uaGVhZGVyIC5zcXVhcmUuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLnVpLmJsb2NrLmljb24uaGVhZGVyIC5pY29uIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmljb24uaGVhZGVyLmFsaWduZWQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZGlzYWJsZWQuaGVhZGVyIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuaGVhZGVyIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuaGVhZGVyIC5zdWIuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi51aS5pbnZlcnRlZC5hdHRhY2hlZC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjNTQ1NDU0IGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxvY2suaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogIzU0NTQ1NCBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmludmVydGVkLmJsb2NrLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIFJlZCAtLS0qL1xuLnVpLnJlZC5oZWFkZXIge1xuICBjb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuYS51aS5yZWQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbn1cbi51aS5yZWQuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNEQjI4Mjg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnJlZC5oZWFkZXIge1xuICBjb2xvcjogI0ZGNjk1RSAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5yZWQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZjUxNDQgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9yYW5nZSAtLS0qL1xuLnVpLm9yYW5nZS5oZWFkZXIge1xuICBjb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xufVxuYS51aS5vcmFuZ2UuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcbn1cbi51aS5vcmFuZ2UuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNGMjcxMUM7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLm9yYW5nZS5oZWFkZXIge1xuICBjb2xvcjogI0ZGODUxQiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5vcmFuZ2UuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZjc3MDEgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9saXZlIC0tLSovXG4udWkub2xpdmUuaGVhZGVyIHtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbmEudWkub2xpdmUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbn1cbi51aS5vbGl2ZS5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0I1Q0MxODtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQub2xpdmUuaGVhZGVyIHtcbiAgY29sb3I6ICNEOUU3NzggIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQub2xpdmUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNkOGVhNWMgIWltcG9ydGFudDtcbn1cbi8qLS0tIFllbGxvdyAtLS0qL1xuLnVpLnllbGxvdy5oZWFkZXIge1xuICBjb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuYS51aS55ZWxsb3cuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi51aS55ZWxsb3cuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNGQkJEMDg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnllbGxvdy5oZWFkZXIge1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC55ZWxsb3cuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZmRmMDUgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZWVuIC0tLSovXG4udWkuZ3JlZW4uaGVhZGVyIHtcbiAgY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbn1cbmEudWkuZ3JlZW4uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbn1cbi51aS5ncmVlbi5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzIxQkE0NTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuZ3JlZW4uaGVhZGVyIHtcbiAgY29sb3I6ICMyRUNDNDAgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQuZ3JlZW4uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMyMmJlMzQgIWltcG9ydGFudDtcbn1cbi8qLS0tIFRlYWwgLS0tKi9cbi51aS50ZWFsLmhlYWRlciB7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG5hLnVpLnRlYWwuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbn1cbi51aS50ZWFsLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDBCNUFEO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC50ZWFsLmhlYWRlciB7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnRlYWwuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM1NGZmZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIEJsdWUgLS0tKi9cbi51aS5ibHVlLmhlYWRlciB7XG4gIGNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG59XG5hLnVpLmJsdWUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMyMTVkOGYgIWltcG9ydGFudDtcbn1cbi51aS5ibHVlLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMkM2QTlFO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ibHVlLmhlYWRlciB7XG4gIGNvbG9yOiAjNTM5MUM1ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmJsdWUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMzYTg1YzUgIWltcG9ydGFudDtcbn1cbi8qLS0tIFZpb2xldCAtLS0qL1xuLnVpLnZpb2xldC5oZWFkZXIge1xuICBjb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xufVxuYS51aS52aW9sZXQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbn1cbi51aS52aW9sZXQuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM2NDM1Qzk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnZpb2xldC5oZWFkZXIge1xuICBjb2xvcjogI0EyOTFGQiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC52aW9sZXQuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM4YTczZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFB1cnBsZSAtLS0qL1xuLnVpLnB1cnBsZS5oZWFkZXIge1xuICBjb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuYS51aS5wdXJwbGUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbn1cbi51aS5wdXJwbGUuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNBMzMzQzg7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLnB1cnBsZS5oZWFkZXIge1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuYS51aS5pbnZlcnRlZC5wdXJwbGUuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNkNjVhZmYgIWltcG9ydGFudDtcbn1cbi8qLS0tIFBpbmsgLS0tKi9cbi51aS5waW5rLmhlYWRlciB7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG5hLnVpLnBpbmsuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbn1cbi51aS5waW5rLmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjRTAzOTk3O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5waW5rLmhlYWRlciB7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLnBpbmsuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNmZjc0ZDggIWltcG9ydGFudDtcbn1cbi8qLS0tIEJyb3duIC0tLSovXG4udWkuYnJvd24uaGVhZGVyIHtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbmEudWkuYnJvd24uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbn1cbi51aS5icm93bi5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0E1NjczRjtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuYnJvd24uaGVhZGVyIHtcbiAgY29sb3I6ICNENjdDMUMgIWltcG9ydGFudDtcbn1cbmEudWkuaW52ZXJ0ZWQuYnJvd24uaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNjODZmMTEgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZXkgLS0tKi9cbi51aS5ncmV5LmhlYWRlciB7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG59XG5hLnVpLmdyZXkuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbn1cbi51aS5ncmV5LmRpdmlkaW5nLmhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjNzY3Njc2O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5ncmV5LmhlYWRlciB7XG4gIGNvbG9yOiAjRENERERFICFpbXBvcnRhbnQ7XG59XG5hLnVpLmludmVydGVkLmdyZXkuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICNjZmQwZDIgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sZWZ0LmFsaWduZWQuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5yaWdodC5hbGlnbmVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpLmNlbnRlcmVkLmhlYWRlcixcbi51aS5jZW50ZXIuYWxpZ25lZC5oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuanVzdGlmaWVkLmhlYWRlciB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XG59XG4udWkuanVzdGlmaWVkLmhlYWRlcjphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQuaGVhZGVyLFxuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5oZWFkZXIge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uaGVhZGVyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5oZWFkZXIge1xuICBwYWRkaW5nOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpdmlkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRpbmcuaGVhZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDAuMjE0Mjg1NzFyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmRpdmlkaW5nLmhlYWRlciAuc3ViLmhlYWRlciB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLmRpdmlkaW5nLmhlYWRlciAuaWNvbiB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5pbnZlcnRlZC5kaXZpZGluZy5oZWFkZXIge1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQmxvY2tcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ibG9jay5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5cmVtIDFyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkudGlueS5ibG9jay5oZWFkZXIge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuYmxvY2suaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLmJsb2NrLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5ibG9jay5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuaHVnZS5ibG9jay5oZWFkZXIge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF0dGFjaGVkLmhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjlyZW0gMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5hdHRhY2hlZC5ibG9jay5oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xufVxuLnVpLmF0dGFjaGVkOm5vdCgudG9wKTpub3QoLmJvdHRvbSkuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS50b3AuYXR0YWNoZWQuaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi8qIEF0dGFjaGVkIFNpemVzICovXG4udWkudGlueS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbn1cbi51aS5zbWFsbC5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbn1cbi51aS5hdHRhY2hlZC5oZWFkZXI6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpOm5vdChoNikge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5sYXJnZS5hdHRhY2hlZC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbn1cbi51aS5odWdlLmF0dGFjaGVkLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlcjpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSk6bm90KGg2KSB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEljb25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSWNvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvbnQgRmlsZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gT3B0aW9uYWwgRmlsZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBPdXRsaW5lIEljb25zICovXG4vKiBCcmFuZCBJY29ucyAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRGVmaW5pdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gVmFyaWFibGVzICovXG4vKiBWYXJpYXRpb25zICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9udCBGaWxlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiBPcHRpb25hbCBGaWxlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE91dGxpbmUgSWNvbnMgKi9cbi8qIEJyYW5kIEljb25zICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZWZpbml0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBWYXJpYWJsZXMgKi9cbi8qIFZhcmlhdGlvbnMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEljb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG4gIHNyYzogdXJsKFwiL2Fzc2V0cy9mb250cy9pY29ucy5lb3RcIik7XG4gIHNyYzogdXJsKFwiL2Fzc2V0cy9mb250cy9pY29ucy5lb3Q/I2llZml4XCIpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9pY29ucy53b2ZmMlwiKSBmb3JtYXQoJ3dvZmYyJyksIHVybChcIi9hc3NldHMvZm9udHMvaWNvbnMud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9pY29ucy50dGZcIikgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL2ljb25zLnN2ZyNpY29uc1wiKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuaS5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiAxO1xuICBtYXJnaW46IDBlbSAwLjI1cmVtIDBlbSAwZW07XG4gIHdpZHRoOiAxLjE4ZW07XG4gIGhlaWdodDogMWVtO1xuICBmb250LWZhbWlseTogJ0ljb25zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbmkuaWNvbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG5pLmljb24ubG9hZGluZyB7XG4gIGhlaWdodDogMWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYW5pbWF0aW9uOiBpY29uLWxvYWRpbmcgMnMgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBpY29uLWxvYWRpbmcge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmljb24uaG92ZXIge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5pLmljb24uYWN0aXZlIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuaS5lbXBoYXNpemVkLmljb24ge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5pLmRpc2FibGVkLmljb24ge1xuICBvcGFjaXR5OiAwLjQ1ICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5maXR0ZWQuaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLmxpbmsuaWNvbixcbmkubGluay5pY29ucyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbmkubGluay5pY29uOmhvdmVyLFxuaS5saW5rLmljb25zOmhvdmVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5jaXJjdWxhci5pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogNTAwZW0gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41ZW0gMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDAuMWVtIHJnYmEoMCwgMCwgMCwgMC4xKSBpbnNldDtcbiAgd2lkdGg6IDJlbSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDJlbSAhaW1wb3J0YW50O1xufVxuaS5jaXJjdWxhci5pbnZlcnRlZC5pY29uIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBGbGlwcGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLmZsaXBwZWQuaWNvbixcbmkuaG9yaXpvbnRhbGx5LmZsaXBwZWQuaWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xufVxuaS52ZXJ0aWNhbGx5LmZsaXBwZWQuaWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBSb3RhdGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pLnJvdGF0ZWQuaWNvbixcbmkucmlnaHQucm90YXRlZC5pY29uLFxuaS5jbG9ja3dpc2Uucm90YXRlZC5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuaS5sZWZ0LnJvdGF0ZWQuaWNvbixcbmkuY291bnRlcmNsb2Nrd2lzZS5yb3RhdGVkLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5ib3JkZXJlZC5pY29uIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgd2lkdGg6IDJlbTtcbiAgaGVpZ2h0OiAyZW07XG4gIHBhZGRpbmc6IDAuNWVtIDBlbSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwLjFlbSByZ2JhKDAsIDAsIDAsIDAuMSkgaW5zZXQ7XG59XG5pLmJvcmRlcmVkLmludmVydGVkLmljb24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCBTaGFwZXMgKi9cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuaWNvbiB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbmkucmVkLmljb24ge1xuICBjb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5yZWQuaWNvbiB7XG4gIGNvbG9yOiAjRkY2OTVFICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnJlZC5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5yZWQuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuaS5vcmFuZ2UuaWNvbiB7XG4gIGNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLm9yYW5nZS5pY29uIHtcbiAgY29sb3I6ICNGRjg1MUIgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQub3JhbmdlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLm9yYW5nZS5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogWWVsbG93ICovXG5pLnllbGxvdy5pY29uIHtcbiAgY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQueWVsbG93Lmljb24ge1xuICBjb2xvcjogI0ZGRTIxRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC55ZWxsb3cuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIueWVsbG93Lmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuaS5vbGl2ZS5pY29uIHtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQub2xpdmUuaWNvbiB7XG4gIGNvbG9yOiAjRDlFNzc4ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLm9saXZlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLm9saXZlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBHcmVlbiAqL1xuaS5ncmVlbi5pY29uIHtcbiAgY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuZ3JlZW4uaWNvbiB7XG4gIGNvbG9yOiAjMkVDQzQwICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLmdyZWVuLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmdyZWVuLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBUZWFsICovXG5pLnRlYWwuaWNvbiB7XG4gIGNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnRlYWwuaWNvbiB7XG4gIGNvbG9yOiAjNkRGRkZGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnRlYWwuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIudGVhbC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQmx1ZSAqL1xuaS5ibHVlLmljb24ge1xuICBjb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ibHVlLmljb24ge1xuICBjb2xvcjogIzUzOTFDNSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5ibHVlLmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmJsdWUuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuaS52aW9sZXQuaWNvbiB7XG4gIGNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnZpb2xldC5pY29uIHtcbiAgY29sb3I6ICNBMjkxRkIgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQudmlvbGV0Lmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLnZpb2xldC5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogUHVycGxlICovXG5pLnB1cnBsZS5pY29uIHtcbiAgY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQucHVycGxlLmljb24ge1xuICBjb2xvcjogI0RDNzNGRiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5wdXJwbGUuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIucHVycGxlLmljb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG5pLnBpbmsuaWNvbiB7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLnBpbmsuaWNvbiB7XG4gIGNvbG9yOiAjRkY4RURGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJvcmRlcmVkLnBpbmsuaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIucGluay5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5NyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQnJvd24gKi9cbmkuYnJvd24uaWNvbiB7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG5pLmludmVydGVkLmJyb3duLmljb24ge1xuICBjb2xvcjogI0Q2N0MxQyAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5icm93bi5pY29uLFxuaS5pbnZlcnRlZC5jaXJjdWxhci5icm93bi5pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogR3JleSAqL1xuaS5ncmV5Lmljb24ge1xuICBjb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ncmV5Lmljb24ge1xuICBjb2xvcjogI0RDRERERSAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ib3JkZXJlZC5ncmV5Lmljb24sXG5pLmludmVydGVkLmNpcmN1bGFyLmdyZXkuaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJsYWNrICovXG5pLmJsYWNrLmljb24ge1xuICBjb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xufVxuaS5pbnZlcnRlZC5ibGFjay5pY29uIHtcbiAgY29sb3I6ICM1NDU0NTQgIWltcG9ydGFudDtcbn1cbmkuaW52ZXJ0ZWQuYm9yZGVyZWQuYmxhY2suaWNvbixcbmkuaW52ZXJ0ZWQuY2lyY3VsYXIuYmxhY2suaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuaS5taW5pLmljb24sXG5pLm1pbmkuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAwLjRlbTtcbn1cbmkudGlueS5pY29uLFxuaS50aW55Lmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC41ZW07XG59XG5pLnNtYWxsLmljb24sXG5pLnNtYWxsLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xufVxuaS5pY29uLFxuaS5pY29ucyB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuaS5sYXJnZS5pY29uLFxuaS5sYXJnZS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDEuNWVtO1xufVxuaS5iaWcuaWNvbixcbmkuYmlnLmljb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuaS5odWdlLmljb24sXG5pLmh1Z2UuaWNvbnMge1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiA0ZW07XG59XG5pLm1hc3NpdmUuaWNvbixcbmkubWFzc2l2ZS5pY29ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDhlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pLmljb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuaS5pY29ucyAuaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gIG1hcmdpbjogMGVtO1xuICBtYXJnaW46IDA7XG59XG5pLmljb25zIC5pY29uOmZpcnN0LWNoaWxkIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG59XG4vKiBDb3JuZXIgSWNvbiAqL1xuaS5pY29ucyAuY29ybmVyLmljb24ge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zaXplOiAwLjQ1ZW07XG4gIHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCAjRkZGRkZGLCAxcHggLTFweCAwICNGRkZGRkYsIC0xcHggMXB4IDAgI0ZGRkZGRiwgMXB4IDFweCAwICNGRkZGRkY7XG59XG5pLmljb25zIC50b3AucmlnaHQuY29ybmVyLmljb24ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IGF1dG87XG59XG5pLmljb25zIC50b3AubGVmdC5jb3JuZXIuaWNvbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbn1cbmkuaWNvbnMgLmJvdHRvbS5sZWZ0LmNvcm5lci5pY29uIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiAwO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAwO1xufVxuaS5pY29ucyAuYm90dG9tLnJpZ2h0LmNvcm5lci5pY29uIHtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xufVxuaS5pY29ucyAuaW52ZXJ0ZWQuY29ybmVyLmljb24ge1xuICB0ZXh0LXNoYWRvdzogLTFweCAtMXB4IDAgIzFCMUMxRCwgMXB4IC0xcHggMCAjMUIxQzFELCAtMXB4IDFweCAwICMxQjFDMUQsIDFweCAxcHggMCAjMUIxQzFEO1xufVxuLypcbiAqIEZvbnQgQXdlc29tZSA1LjAuOCBieSBAZm9udGF3ZXNvbWUgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlIChJY29uczogQ0MgQlkgNC4wIExpY2Vuc2UsIEZvbnRzOiBTSUwgT0ZMIDEuMSBMaWNlbnNlLCBDU1M6IE1JVCBMaWNlbnNlKVxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5TZW1hbnRpYy1VSSBpbnRlZ3JhdGlvbiBvZiBmb250LWF3ZXNvbWUgOlxuXG4vLy9jbGFzcyBuYW1lcyBhcmUgc2VwYXJhdGVkXG5pLmljb24uY2lyY2xlID0+IGkuaWNvbi5jaXJjbGVcbmkuaWNvbi5jaXJjbGUtbyA9PiBpLmljb24uY2lyY2xlLm91dGxpbmVcblxuLy9hYmJyZXZpYXRpb24gYXJlIHJlcGxhY2VkIGJ5IGZ1bGwgbGV0dGVyczpcbmkuaWNvbi5lbGxpcHNpcy1oID0+IGkuaWNvbi5lbGxpcHNpcy5ob3Jpem9udGFsXG5pLmljb24uZWxsaXBzaXMtdiA9PiBpLmljb24uZWxsaXBzaXMudmVydGljYWxcbi5hbHBoYSA9PiAuaS5pY29uLmFscGhhYmV0XG4uYXNjID0+IC5pLmljb24uYXNjZW5kaW5nXG4uZGVzYyA9PiAuaS5pY29uLmRlc2NlbmRpbmdcbi5hbHQgPT4uYWx0ZXJuYXRlXG5cbkFTQ0lJIG9yZGVyIGlzIGNvbnNlcnZlZCBmb3IgZWFzaWVyIG1haW50ZW5hbmNlLlxuXG5JY29ucyB0aGF0IG9ubHkgaGF2ZSBvbmUgc3R5bGUgJ291dGxpbmUnLCAnc3F1YXJlJyBldGMgZG8gbm90IHJlcXVpcmUgdGhpcyBjbGFzc1xuZm9yIGluc3RhbmNlIGBsZW1vbiBpY29uYCBub3QgYGxlbW9uIG91dGxpbmUgaWNvbmAgc2luY2UgdGhlcmUgaXMgb25seSBvbmUgbGVtb25cblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBJY29uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIERlcHJlY2F0ZWQgKkluL091dCBOYW1pbmcgQ29uZmxpY3QpICovXG5pLmljb24ubGlua2VkaW4uaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTFcIjtcbn1cbmkuaWNvbi56b29tLmluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uem9vbS5vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTBcIjtcbn1cbmkuaWNvbi5zaWduLmluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY2XCI7XG59XG5pLmljb24uaW4uY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxOFwiO1xufVxuaS5pY29uLmxvZy5vdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjVcIjtcbn1cbmkuaWNvbi5zaWduLm91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNVwiO1xufVxuLyogSWNvbnMgKi9cbmkuaWNvbi5cXDM1IDAwcHg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmVcIjtcbn1cbmkuaWNvbi5hY2Nlc3NpYmxlLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjhcIjtcbn1cbmkuaWNvbi5hY2N1c29mdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2OVwiO1xufVxuaS5pY29uLmFkZHJlc3MuYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiOVwiO1xufVxuaS5pY29uLmFkZHJlc3MuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiYlwiO1xufVxuaS5pY29uLmFkanVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MlwiO1xufVxuaS5pY29uLmFkbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3MFwiO1xufVxuaS5pY29uLmFkdmVyc2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZhXCI7XG59XG5pLmljb24uYWZmaWxpYXRldGhlbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmJcIjtcbn1cbmkuaWNvbi5hbGdvbGlhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzZjXCI7XG59XG5pLmljb24uYWxpZ24uY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM3XCI7XG59XG5pLmljb24uYWxpZ24uanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzOVwiO1xufVxuaS5pY29uLmFsaWduLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzZcIjtcbn1cbmkuaWNvbi5hbGlnbi5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzOFwiO1xufVxuaS5pY29uLmFtYXpvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MFwiO1xufVxuaS5pY29uLmFtYXpvbi5wYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmNcIjtcbn1cbmkuaWNvbi5hbWJ1bGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjlcIjtcbn1cbmkuaWNvbi5hbWVyaWNhbi5zaWduLmxhbmd1YWdlLmludGVycHJldGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhM1wiO1xufVxuaS5pY29uLmFtaWxpYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2ZFwiO1xufVxuaS5pY29uLmFuY2hvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzZFwiO1xufVxuaS5pY29uLmFuZHJvaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2JcIjtcbn1cbmkuaWNvbi5hbmdlbGxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDlcIjtcbn1cbmkuaWNvbi5hbmdsZS5kb3VibGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwM1wiO1xufVxuaS5pY29uLmFuZ2xlLmRvdWJsZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAwXCI7XG59XG5pLmljb24uYW5nbGUuZG91YmxlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAxXCI7XG59XG5pLmljb24uYW5nbGUuZG91YmxlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTAyXCI7XG59XG5pLmljb24uYW5nbGUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwN1wiO1xufVxuaS5pY29uLmFuZ2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDRcIjtcbn1cbmkuaWNvbi5hbmdsZS5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNVwiO1xufVxuaS5pY29uLmFuZ2xlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA2XCI7XG59XG5pLmljb24uYW5ncnljcmVhdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2ZVwiO1xufVxuaS5pY29uLmFuZ3VsYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjBcIjtcbn1cbmkuaWNvbi5hcHAuc3RvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNmZcIjtcbn1cbmkuaWNvbi5hcHAuc3RvcmUuaW9zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzcwXCI7XG59XG5pLmljb24uYXBwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNzFcIjtcbn1cbmkuaWNvbi5hcHBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3OVwiO1xufVxuaS5pY29uLmFwcGxlLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxNVwiO1xufVxuaS5pY29uLmFyY2hpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODdcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNThcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNTlcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVhXCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1YlwiO1xufVxuaS5pY29uLmFycm93LmNpcmNsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGFiXCI7XG59XG5pLmljb24uYXJyb3cuY2lyY2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYThcIjtcbn1cbmkuaWNvbi5hcnJvdy5jaXJjbGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTlcIjtcbn1cbmkuaWNvbi5hcnJvdy5jaXJjbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWFcIjtcbn1cbmkuaWNvbi5hcnJvdy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYzXCI7XG59XG5pLmljb24uYXJyb3cubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2MFwiO1xufVxuaS5pY29uLmFycm93LnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDYxXCI7XG59XG5pLmljb24uYXJyb3cudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjJcIjtcbn1cbmkuaWNvbi5hcnJvd3MuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIyXCI7XG59XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZS5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM3XCI7XG59XG5pLmljb24uYXJyb3dzLmFsdGVybmF0ZS52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMzOFwiO1xufVxuaS5pY29uLmFzc2lzdGl2ZS5saXN0ZW5pbmcuc3lzdGVtczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMlwiO1xufVxuaS5pY29uLmFzdGVyaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY5XCI7XG59XG5pLmljb24uYXN5bW1ldHJpazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3MlwiO1xufVxuaS5pY29uLmF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZhXCI7XG59XG5pLmljb24uYXVkaWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3M1wiO1xufVxuaS5pY29uLmF1ZGlvLmRlc2NyaXB0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjllXCI7XG59XG5pLmljb24uYXV0b3ByZWZpeGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFjXCI7XG59XG5pLmljb24uYXZpYW5leDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3NFwiO1xufVxuaS5pY29uLmF2aWF0bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyMVwiO1xufVxuaS5pY29uLmF3czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3NVwiO1xufVxuaS5pY29uLmJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDRhXCI7XG59XG5pLmljb24uYmFsYW5jZS5zY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0ZVwiO1xufVxuaS5pY29uLmJhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1ZVwiO1xufVxuaS5pY29uLmJhbmQuYWlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDYyXCI7XG59XG5pLmljb24uYmFuZGNhbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDVcIjtcbn1cbmkuaWNvbi5iYXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJhXCI7XG59XG5pLmljb24uYmFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOVwiO1xufVxuaS5pY29uLmJhc2ViYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzNcIjtcbn1cbmkuaWNvbi5iYXNrZXRiYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MzRcIjtcbn1cbmkuaWNvbi5iYXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNkXCI7XG59XG5pLmljb24uYmF0dGVyeS5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0NFwiO1xufVxuaS5pY29uLmJhdHRlcnkuZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MFwiO1xufVxuaS5pY29uLmJhdHRlcnkuaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MlwiO1xufVxuaS5pY29uLmJhdHRlcnkucXVhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0M1wiO1xufVxuaS5pY29uLmJhdHRlcnkudGhyZWUucXVhcnRlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDFcIjtcbn1cbmkuaWNvbi5iZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzZcIjtcbn1cbmkuaWNvbi5iZWVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZjXCI7XG59XG5pLmljb24uYmVoYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNFwiO1xufVxuaS5pY29uLmJlaGFuY2Uuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI1XCI7XG59XG5pLmljb24uYmVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmM1wiO1xufVxuaS5pY29uLmJlbGwuc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjZcIjtcbn1cbmkuaWNvbi5iaWN5Y2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA2XCI7XG59XG5pLmljb24uYmltb2JqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzc4XCI7XG59XG5pLmljb24uYmlub2N1bGFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNVwiO1xufVxuaS5pY29uLmJpcnRoZGF5LmNha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmRcIjtcbn1cbmkuaWNvbi5iaXRidWNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzFcIjtcbn1cbmkuaWNvbi5iaXRjb2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzc5XCI7XG59XG5pLmljb24uYml0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM3YVwiO1xufVxuaS5pY29uLmJsYWNrLnRpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3ZVwiO1xufVxuaS5pY29uLmJsYWNrYmVycnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2JcIjtcbn1cbmkuaWNvbi5ibGluZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5ZFwiO1xufVxuaS5pY29uLmJsb2dnZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2NcIjtcbn1cbmkuaWNvbi5ibG9nZ2VyLmI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2RcIjtcbn1cbmkuaWNvbi5ibHVldG9vdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTNcIjtcbn1cbmkuaWNvbi5ibHVldG9vdGguYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NFwiO1xufVxuaS5pY29uLmJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzJcIjtcbn1cbmkuaWNvbi5ib2x0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU3XCI7XG59XG5pLmljb24uYm9tYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMlwiO1xufVxuaS5pY29uLmJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmRcIjtcbn1cbmkuaWNvbi5ib29rbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZVwiO1xufVxuaS5pY29uLmJvd2xpbmcuYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzNlwiO1xufVxuaS5pY29uLmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ2NlwiO1xufVxuaS5pY29uLmJveGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDY4XCI7XG59XG5pLmljb24uYnJhaWxsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMVwiO1xufVxuaS5pY29uLmJyaWVmY2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMVwiO1xufVxuaS5pY29uLmJ0YzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1YVwiO1xufVxuaS5pY29uLmJ1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4OFwiO1xufVxuaS5pY29uLmJ1aWxkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFkXCI7XG59XG5pLmljb24uYnVsbGhvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTFcIjtcbn1cbmkuaWNvbi5idWxsc2V5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MFwiO1xufVxuaS5pY29uLmJ1cm9tb2JlbGV4cGVydGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzN2ZcIjtcbn1cbmkuaWNvbi5idXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDdcIjtcbn1cbmkuaWNvbi5idXlzZWxsYWRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBkXCI7XG59XG5pLmljb24uY2FsY3VsYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlY1wiO1xufVxuaS5pY29uLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMzXCI7XG59XG5pLmljb24uY2FsZW5kYXIuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDczXCI7XG59XG5pLmljb24uY2FsZW5kYXIuY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzRcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MlwiO1xufVxuaS5pY29uLmNhbGVuZGFyLnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzFcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci50aW1lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3M1wiO1xufVxuaS5pY29uLmNhbWVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzMFwiO1xufVxuaS5pY29uLmNhbWVyYS5yZXRybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4M1wiO1xufVxuaS5pY29uLmNhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiOVwiO1xufVxuaS5pY29uLmNhcmV0LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDdcIjtcbn1cbmkuaWNvbi5jYXJldC5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ5XCI7XG59XG5pLmljb24uY2FyZXQucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGFcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1MFwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkxXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUyXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUxXCI7XG59XG5pLmljb24uY2FyZXQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDhcIjtcbn1cbmkuaWNvbi5jYXJ0LmFycm93LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbmkuaWNvbi5jYXJ0LnBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cbmkuaWNvbi5jYy5hbWF6b24ucGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJkXCI7XG59XG5pLmljb24uY2MuYW1leDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmNjLmFwcGxlLnBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxNlwiO1xufVxuaS5pY29uLmNjLmRpbmVycy5jbHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG5pLmljb24uY2MuZGlzY292ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbmkuaWNvbi5jYy5qY2I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5jYy5tYXN0ZXJjYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG5pLmljb24uY2MucGF5cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG5pLmljb24uY2Muc3RyaXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG5pLmljb24uY2MudmlzYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMFwiO1xufVxuaS5pY29uLmNlbnRlcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODBcIjtcbn1cbmkuaWNvbi5jZXJ0aWZpY2F0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhM1wiO1xufVxuaS5pY29uLmNoYXJ0LmFyZWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmVcIjtcbn1cbmkuaWNvbi5jaGFydC5iYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODBcIjtcbn1cbmkuaWNvbi5jaGFydC5saW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAxXCI7XG59XG5pLmljb24uY2hhcnQucGllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAwXCI7XG59XG5pLmljb24uY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbn1cbmkuaWNvbi5jaGVjay5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNThcIjtcbn1cbmkuaWNvbi5jaGVjay5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbmkuaWNvbi5jaGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzOVwiO1xufVxuaS5pY29uLmNoZXNzLmJpc2hvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzYVwiO1xufVxuaS5pY29uLmNoZXNzLmJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDNjXCI7XG59XG5pLmljb24uY2hlc3Mua2luZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQzZlwiO1xufVxuaS5pY29uLmNoZXNzLmtuaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0MVwiO1xufVxuaS5pY29uLmNoZXNzLnBhd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDNcIjtcbn1cbmkuaWNvbi5jaGVzcy5xdWVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0NVwiO1xufVxuaS5pY29uLmNoZXNzLnJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NDdcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmNpcmNsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTNhXCI7XG59XG5pLmljb24uY2hldnJvbi5jaXJjbGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzN1wiO1xufVxuaS5pY29uLmNoZXZyb24uY2lyY2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM4XCI7XG59XG5pLmljb24uY2hldnJvbi5jaXJjbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzlcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzhcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTNcIjtcbn1cbmkuaWNvbi5jaGV2cm9uLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU0XCI7XG59XG5pLmljb24uY2hldnJvbi51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3N1wiO1xufVxuaS5pY29uLmNoaWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFlXCI7XG59XG5pLmljb24uY2hyb21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjY4XCI7XG59XG5pLmljb24uY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTExXCI7XG59XG5pLmljb24uY2lyY2xlLm5vdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNlXCI7XG59XG5pLmljb24uY2xpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI4XCI7XG59XG5pLmljb24uY2xpcGJvYXJkLmNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDZjXCI7XG59XG5pLmljb24uY2xpcGJvYXJkLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NmRcIjtcbn1cbmkuaWNvbi5jbG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxN1wiO1xufVxuaS5pY29uLmNsb25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRkXCI7XG59XG5pLmljb24uY2xvc2VkLmNhcHRpb25pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGFcIjtcbn1cbmkuaWNvbi5jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMlwiO1xufVxuaS5pY29uLmNsb3Vkc2NhbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODNcIjtcbn1cbmkuaWNvbi5jbG91ZHNtaXRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzg0XCI7XG59XG5pLmljb24uY2xvdWR2ZXJzaWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzg1XCI7XG59XG5pLmljb24uY29kZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMVwiO1xufVxuaS5pY29uLmNvZGUuYnJhbmNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI2XCI7XG59XG5pLmljb24uY29kZXBlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjYlwiO1xufVxuaS5pY29uLmNvZGllcGllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg0XCI7XG59XG5pLmljb24uY29mZmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGY0XCI7XG59XG5pLmljb24uY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEzXCI7XG59XG5pLmljb24uY29nczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NVwiO1xufVxuaS5pY29uLmNvbHVtbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGJcIjtcbn1cbmkuaWNvbi5jb21tZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc1XCI7XG59XG5pLmljb24uY29tbWVudC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2FcIjtcbn1cbmkuaWNvbi5jb21tZW50czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NlwiO1xufVxuaS5pY29uLmNvbXBhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGVcIjtcbn1cbmkuaWNvbi5jb21wcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2NlwiO1xufVxuaS5pY29uLmNvbm5lY3RkZXZlbG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBlXCI7XG59XG5pLmljb24uY29udGFvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZkXCI7XG59XG5pLmljb24uY29weTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNVwiO1xufVxuaS5pY29uLmNvcHlyaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmOVwiO1xufVxuaS5pY29uLmNwYW5lbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4OFwiO1xufVxuaS5pY29uLmNyZWF0aXZlLmNvbW1vbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWVcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5ZFwiO1xufVxuaS5pY29uLmNyb3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjVcIjtcbn1cbmkuaWNvbi5jcm9zc2hhaXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDViXCI7XG59XG5pLmljb24uY3NzMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzY1wiO1xufVxuaS5pY29uLmNzczMuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzhiXCI7XG59XG5pLmljb24uY3ViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMlwiO1xufVxuaS5pY29uLmN1YmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWIzXCI7XG59XG5pLmljb24uY3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM0XCI7XG59XG5pLmljb24uY3V0dGxlZmlzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4Y1wiO1xufVxuaS5pY29uLmQuYW5kLmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGRcIjtcbn1cbmkuaWNvbi5kYXNoY3ViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMFwiO1xufVxuaS5pY29uLmRhdGFiYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMwXCI7XG59XG5pLmljb24uZGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNFwiO1xufVxuaS5pY29uLmRlbGljaW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNVwiO1xufVxuaS5pY29uLmRlcGxveWRvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM4ZVwiO1xufVxuaS5pY29uLmRlc2twcm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOGZcIjtcbn1cbmkuaWNvbi5kZXNrdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA4XCI7XG59XG5pLmljb24uZGV2aWFudGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiZFwiO1xufVxuaS5pY29uLmRpZ2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTZcIjtcbn1cbmkuaWNvbi5kaWdpdGFsLm9jZWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzkxXCI7XG59XG5pLmljb24uZGlzY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5MlwiO1xufVxuaS5pY29uLmRpc2NvdXJzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5M1wiO1xufVxuaS5pY29uLmRuYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3MVwiO1xufVxuaS5pY29uLmRvY2h1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5NFwiO1xufVxuaS5pY29uLmRvY2tlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5NVwiO1xufVxuaS5pY29uLmRvbGxhci5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG5pLmljb24uZG9sbHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NzJcIjtcbn1cbmkuaWNvbi5kb2xseS5mbGF0YmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDc0XCI7XG59XG5pLmljb24uZG90LmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MlwiO1xufVxuaS5pY29uLmRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE5XCI7XG59XG5pLmljb24uZHJhZnQyZGlnaXRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5NlwiO1xufVxuaS5pY29uLmRyaWJiYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTdkXCI7XG59XG5pLmljb24uZHJpYmJibGUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzk3XCI7XG59XG5pLmljb24uZHJvcGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2YlwiO1xufVxuaS5pY29uLmRydXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhOVwiO1xufVxuaS5pY29uLmR5YWxvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM5OVwiO1xufVxuaS5pY29uLmVhcmx5YmlyZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOWFcIjtcbn1cbmkuaWNvbi5lZGdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgyXCI7XG59XG5pLmljb24uZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0NFwiO1xufVxuaS5pY29uLmVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUyXCI7XG59XG5pLmljb24uZWxlbWVudG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDMwXCI7XG59XG5pLmljb24uZWxsaXBzaXMuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0MVwiO1xufVxuaS5pY29uLmVsbGlwc2lzLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQyXCI7XG59XG5pLmljb24uZW1iZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjNcIjtcbn1cbmkuaWNvbi5lbXBpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDFcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMFwiO1xufVxuaS5pY29uLmVudmVsb3BlLm9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjZcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTlcIjtcbn1cbmkuaWNvbi5lbnZpcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTlcIjtcbn1cbmkuaWNvbi5lcmFzZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmRcIjtcbn1cbmkuaWNvbi5lcmxhbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOWRcIjtcbn1cbmkuaWNvbi5ldGhlcmV1bTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyZVwiO1xufVxuaS5pY29uLmV0c3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDdcIjtcbn1cbmkuaWNvbi5ldXJvLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTNcIjtcbn1cbmkuaWNvbi5leGNoYW5nZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjJcIjtcbn1cbmkuaWNvbi5leGNsYW1hdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyYVwiO1xufVxuaS5pY29uLmV4Y2xhbWF0aW9uLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2YVwiO1xufVxuaS5pY29uLmV4Y2xhbWF0aW9uLnRyaWFuZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcxXCI7XG59XG5pLmljb24uZXhwYW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY1XCI7XG59XG5pLmljb24uZXhwYW5kLmFycm93cy5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMWVcIjtcbn1cbmkuaWNvbi5leHBlZGl0ZWRzc2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2VcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNWRcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5zcXVhcmUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzYwXCI7XG59XG5pLmljb24uZXllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDZlXCI7XG59XG5pLmljb24uZXllLmRyb3BwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmJcIjtcbn1cbmkuaWNvbi5leWUuc2xhc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzBcIjtcbn1cbmkuaWNvbi5mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5YVwiO1xufVxuaS5pY29uLmZhY2Vib29rLmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOWVcIjtcbn1cbmkuaWNvbi5mYWNlYm9vay5tZXNzZW5nZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzOWZcIjtcbn1cbmkuaWNvbi5mYWNlYm9vay5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODJcIjtcbn1cbmkuaWNvbi5mYXN0LmJhY2t3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQ5XCI7XG59XG5pLmljb24uZmFzdC5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDUwXCI7XG59XG5pLmljb24uZmF4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWFjXCI7XG59XG5pLmljb24uZmVtYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgyXCI7XG59XG5pLmljb24uZmlnaHRlci5qZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmJcIjtcbn1cbmkuaWNvbi5maWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTViXCI7XG59XG5pLmljb24uZmlsZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWNcIjtcbn1cbmkuaWNvbi5maWxlLmFyY2hpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzZcIjtcbn1cbmkuaWNvbi5maWxlLmF1ZGlvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM3XCI7XG59XG5pLmljb24uZmlsZS5jb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWM5XCI7XG59XG5pLmljb24uZmlsZS5leGNlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjM1wiO1xufVxuaS5pY29uLmZpbGUuaW1hZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzVcIjtcbn1cbmkuaWNvbi5maWxlLnBkZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjMVwiO1xufVxuaS5pY29uLmZpbGUucG93ZXJwb2ludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNFwiO1xufVxuaS5pY29uLmZpbGUudmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzhcIjtcbn1cbmkuaWNvbi5maWxlLndvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzJcIjtcbn1cbmkuaWNvbi5maWxtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA4XCI7XG59XG5pLmljb24uZmlsdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGIwXCI7XG59XG5pLmljb24uZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2ZFwiO1xufVxuaS5pY29uLmZpcmUuZXh0aW5ndWlzaGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM0XCI7XG59XG5pLmljb24uZmlyZWZveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2OVwiO1xufVxuaS5pY29uLmZpcnN0LmFpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3OVwiO1xufVxuaS5pY29uLmZpcnN0Lm9yZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIwXCI7XG59XG5pLmljb24uZmlyc3RkcmFmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhMVwiO1xufVxuaS5pY29uLmZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjRcIjtcbn1cbmkuaWNvbi5mbGFnLmNoZWNrZXJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExZVwiO1xufVxuaS5pY29uLmZsYXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMzXCI7XG59XG5pLmljb24uZmxpY2tyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZlXCI7XG59XG5pLmljb24uZmxpcGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDRkXCI7XG59XG5pLmljb24uZmx5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE3XCI7XG59XG5pLmljb24uZm9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdiXCI7XG59XG5pLmljb24uZm9sZGVyLm9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2NcIjtcbn1cbmkuaWNvbi5mb250OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMxXCI7XG59XG5pLmljb24uZm9udC5hd2Vzb21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI0XCI7XG59XG5pLmljb24uZm9udC5hd2Vzb21lLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1Y1wiO1xufVxuaS5pY29uLmZvbnQuYXdlc29tZS5mbGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI1XCI7XG59XG5pLmljb24uZm9udGljb25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgwXCI7XG59XG5pLmljb24uZm9udGljb25zLmZpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2EyXCI7XG59XG5pLmljb24uZm9vdGJhbGwuYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0ZVwiO1xufVxuaS5pY29uLmZvcnQuYXdlc29tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4NlwiO1xufVxuaS5pY29uLmZvcnQuYXdlc29tZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTNcIjtcbn1cbmkuaWNvbi5mb3J1bWJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxMVwiO1xufVxuaS5pY29uLmZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNGVcIjtcbn1cbmkuaWNvbi5mb3Vyc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTgwXCI7XG59XG5pLmljb24uZnJlZS5jb2RlLmNhbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzVcIjtcbn1cbmkuaWNvbi5mcmVlYnNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E0XCI7XG59XG5pLmljb24uZnJvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cbmkuaWNvbi5mdXRib2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTNcIjtcbn1cbmkuaWNvbi5nYW1lcGFkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFiXCI7XG59XG5pLmljb24uZ2F2ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTNcIjtcbn1cbmkuaWNvbi5nZW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTVcIjtcbn1cbmkuaWNvbi5nZW5kZXJsZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJkXCI7XG59XG5pLmljb24uZ2V0LnBvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2NVwiO1xufVxuaS5pY29uLmdnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYwXCI7XG59XG5pLmljb24uZ2cuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYxXCI7XG59XG5pLmljb24uZ2lmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2YlwiO1xufVxuaS5pY29uLmdpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkM1wiO1xufVxuaS5pY29uLmdpdC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDJcIjtcbn1cbmkuaWNvbi5naXRodWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWJcIjtcbn1cbmkuaWNvbi5naXRodWIuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEzXCI7XG59XG5pLmljb24uZ2l0aHViLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MlwiO1xufVxuaS5pY29uLmdpdGtyYWtlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhNlwiO1xufVxuaS5pY29uLmdpdGxhYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NlwiO1xufVxuaS5pY29uLmdpdHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyNlwiO1xufVxuaS5pY29uLmdsYXNzLm1hcnRpbmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDBcIjtcbn1cbmkuaWNvbi5nbGlkZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNVwiO1xufVxuaS5pY29uLmdsaWRlLmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTZcIjtcbn1cbmkuaWNvbi5nbG9iZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhY1wiO1xufVxuaS5pY29uLmdvZm9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhN1wiO1xufVxuaS5pY29uLmdvbGYuYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1MFwiO1xufVxuaS5pY29uLmdvb2RyZWFkczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhOFwiO1xufVxuaS5pY29uLmdvb2RyZWFkcy5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2E5XCI7XG59XG5pLmljb24uZ29vZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWEwXCI7XG59XG5pLmljb24uZ29vZ2xlLmRyaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FhXCI7XG59XG5pLmljb24uZ29vZ2xlLnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWJcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiM1wiO1xufVxuaS5pY29uLmdvb2dsZS5wbHVzLmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDVcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDRcIjtcbn1cbmkuaWNvbi5nb29nbGUud2FsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVlXCI7XG59XG5pLmljb24uZ3JhZHVhdGlvbi5jYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWRcIjtcbn1cbmkuaWNvbi5ncmF0aXBheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NFwiO1xufVxuaS5pY29uLmdyYXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDZcIjtcbn1cbmkuaWNvbi5ncmlwZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhY1wiO1xufVxuaS5pY29uLmdydW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2FkXCI7XG59XG5pLmljb24uZ3VscDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNhZVwiO1xufVxuaS5pY29uLmguc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZkXCI7XG59XG5pLmljb24uaGFja2VyLm5ld3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDRcIjtcbn1cbmkuaWNvbi5oYWNrZXIubmV3cy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYWZcIjtcbn1cbmkuaWNvbi5oYW5kLmxpemFyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1OFwiO1xufVxuaS5pY29uLmhhbmQucGFwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTZcIjtcbn1cbmkuaWNvbi5oYW5kLnBlYWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjViXCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE3XCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE1XCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNFwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTZcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWFcIjtcbn1cbmkuaWNvbi5oYW5kLnJvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTVcIjtcbn1cbmkuaWNvbi5oYW5kLnNjaXNzb3JzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU3XCI7XG59XG5pLmljb24uaGFuZC5zcG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1OVwiO1xufVxuaS5pY29uLmhhbmRzaGFrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNVwiO1xufVxuaS5pY29uLmhhc2h0YWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTJcIjtcbn1cbmkuaWNvbi5oZGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTBcIjtcbn1cbmkuaWNvbi5oZWFkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRjXCI7XG59XG5pLmljb24uaGVhZHBob25lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyNVwiO1xufVxuaS5pY29uLmhlYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA0XCI7XG59XG5pLmljb24uaGVhcnRiZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFlXCI7XG59XG5pLmljb24uaGlwczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1MlwiO1xufVxuaS5pY29uLmhpcmUuYS5oZWxwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjBcIjtcbn1cbmkuaWNvbi5oaXN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRhXCI7XG59XG5pLmljb24uaG9ja2V5LnB1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NTNcIjtcbn1cbmkuaWNvbi5ob21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE1XCI7XG59XG5pLmljb24uaG9vbGk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MjdcIjtcbn1cbmkuaWNvbi5ob3NwaXRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmOFwiO1xufVxuaS5pY29uLmhvc3BpdGFsLnN5bWJvbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ3ZVwiO1xufVxuaS5pY29uLmhvdGphcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiMVwiO1xufVxuaS5pY29uLmhvdXJnbGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NFwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5lbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTNcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3MuaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MlwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5zdGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MVwiO1xufVxuaS5pY29uLmhvdXp6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdjXCI7XG59XG5pLmljb24uaHRtbDU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2JcIjtcbn1cbmkuaWNvbi5odWJzcG90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2IyXCI7XG59XG5pLmljb24uaS5jdXJzb3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDZcIjtcbn1cbmkuaWNvbi5pZC5iYWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjMVwiO1xufVxuaS5pY29uLmlkLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzJcIjtcbn1cbmkuaWNvbi5pbWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZVwiO1xufVxuaS5pY29uLmltYWdlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwMlwiO1xufVxuaS5pY29uLmltZGI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDhcIjtcbn1cbmkuaWNvbi5pbmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxY1wiO1xufVxuaS5pY29uLmluZGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzY1wiO1xufVxuaS5pY29uLmluZHVzdHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc1XCI7XG59XG5pLmljb24uaW5mbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOVwiO1xufVxuaS5pY29uLmluZm8uY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDVhXCI7XG59XG5pLmljb24uaW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZkXCI7XG59XG5pLmljb24uaW50ZXJuZXQuZXhwbG9yZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmJcIjtcbn1cbmkuaWNvbi5pb3hob3N0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA4XCI7XG59XG5pLmljb24uaXRhbGljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDMzXCI7XG59XG5pLmljb24uaXR1bmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I0XCI7XG59XG5pLmljb24uaXR1bmVzLm5vdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjVcIjtcbn1cbmkuaWNvbi5qZW5raW5zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2I2XCI7XG59XG5pLmljb24uam9nZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYjdcIjtcbn1cbmkuaWNvbi5qb29tbGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWFcIjtcbn1cbmkuaWNvbi5qczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiOFwiO1xufVxuaS5pY29uLmpzLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiOVwiO1xufVxuaS5pY29uLmpzZmlkZGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNjXCI7XG59XG5pLmljb24ua2V5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg0XCI7XG59XG5pLmljb24ua2V5Ym9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWNcIjtcbn1cbmkuaWNvbi5rZXljZG46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmFcIjtcbn1cbmkuaWNvbi5raWNrc3RhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiYlwiO1xufVxuaS5pY29uLmtpY2tzdGFydGVyLms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmNcIjtcbn1cbmkuaWNvbi5rb3J2dWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmZcIjtcbn1cbmkuaWNvbi5sYW5ndWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhYlwiO1xufVxuaS5pY29uLmxhcHRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOVwiO1xufVxuaS5pY29uLmxhcmF2ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmRcIjtcbn1cbmkuaWNvbi5sYXN0Zm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMDJcIjtcbn1cbmkuaWNvbi5sYXN0Zm0uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAzXCI7XG59XG5pLmljb24ubGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2Y1wiO1xufVxuaS5pY29uLmxlYW5wdWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTJcIjtcbn1cbmkuaWNvbi5sZW1vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5NFwiO1xufVxuaS5pY29uLmxlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MWRcIjtcbn1cbmkuaWNvbi5sZXZlbC5kb3duLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZVwiO1xufVxuaS5pY29uLmxldmVsLnVwLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNiZlwiO1xufVxuaS5pY29uLmxpZmUucmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjZFwiO1xufVxuaS5pY29uLmxpZ2h0YnVsYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlYlwiO1xufVxuaS5pY29uLmxpbmVjaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MwXCI7XG59XG5pLmljb24ubGlua2lmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMVwiO1xufVxuaS5pY29uLmxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDhjXCI7XG59XG5pLmljb24ubGlua2VkaW4uYWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUxXCI7XG59XG5pLmljb24ubGlub2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI4XCI7XG59XG5pLmljb24ubGludXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2NcIjtcbn1cbmkuaWNvbi5saXJhLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTVcIjtcbn1cbmkuaWNvbi5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNhXCI7XG59XG5pLmljb24ubGlzdC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjJcIjtcbn1cbmkuaWNvbi5saXN0Lm9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNiXCI7XG59XG5pLmljb24ubGlzdC51bDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYVwiO1xufVxuaS5pY29uLmxvY2F0aW9uLmFycm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTI0XCI7XG59XG5pLmljb24ubG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyM1wiO1xufVxuaS5pY29uLmxvY2sub3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjMVwiO1xufVxuaS5pY29uLmxvbmcuYXJyb3cuYWx0ZXJuYXRlLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDlcIjtcbn1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzBhXCI7XG59XG5pLmljb24ubG9uZy5hcnJvdy5hbHRlcm5hdGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMGJcIjtcbn1cbmkuaWNvbi5sb25nLmFycm93LmFsdGVybmF0ZS51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwY1wiO1xufVxuaS5pY29uLmxvdy52aXNpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYThcIjtcbn1cbmkuaWNvbi5seWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2MzXCI7XG59XG5pLmljb24ubWFnZW50bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjNFwiO1xufVxuaS5pY29uLm1hZ2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQwXCI7XG59XG5pLmljb24ubWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc2XCI7XG59XG5pLmljb24ubWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4M1wiO1xufVxuaS5pY29uLm1hcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3OVwiO1xufVxuaS5pY29uLm1hcC5tYXJrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDFcIjtcbn1cbmkuaWNvbi5tYXAubWFya2VyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjNVwiO1xufVxuaS5pY29uLm1hcC5waW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzZcIjtcbn1cbmkuaWNvbi5tYXAuc2lnbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzdcIjtcbn1cbmkuaWNvbi5tYXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIyXCI7XG59XG5pLmljb24ubWFycy5kb3VibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjdcIjtcbn1cbmkuaWNvbi5tYXJzLnN0cm9rZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOVwiO1xufVxuaS5pY29uLm1hcnMuc3Ryb2tlLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmJcIjtcbn1cbmkuaWNvbi5tYXJzLnN0cm9rZS52ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyYVwiO1xufVxuaS5pY29uLm1heGNkbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzNlwiO1xufVxuaS5pY29uLm1lZGFwcHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYzZcIjtcbn1cbmkuaWNvbi5tZWRpdW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2FcIjtcbn1cbmkuaWNvbi5tZWRpdW0ubTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjN1wiO1xufVxuaS5pY29uLm1lZGtpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmYVwiO1xufVxuaS5pY29uLm1lZHJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2M4XCI7XG59XG5pLmljb24ubWVldHVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmUwXCI7XG59XG5pLmljb24ubWVoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFhXCI7XG59XG5pLmljb24ubWVyY3VyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyM1wiO1xufVxuaS5pY29uLm1pY3JvY2hpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkYlwiO1xufVxuaS5pY29uLm1pY3JvcGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzBcIjtcbn1cbmkuaWNvbi5taWNyb3Bob25lLnNsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMxXCI7XG59XG5pLmljb24ubWljcm9zb2Z0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2NhXCI7XG59XG5pLmljb24ubWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNjhcIjtcbn1cbmkuaWNvbi5taW51cy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTZcIjtcbn1cbmkuaWNvbi5taW51cy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNDZcIjtcbn1cbmkuaWNvbi5taXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2JcIjtcbn1cbmkuaWNvbi5taXhjbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4OVwiO1xufVxuaS5pY29uLm1penVuaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNjY1wiO1xufVxuaS5pY29uLm1vYmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYlwiO1xufVxuaS5pY29uLm1vYmlsZS5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzY2RcIjtcbn1cbmkuaWNvbi5tb2R4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg1XCI7XG59XG5pLmljb24ubW9uZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QwXCI7XG59XG5pLmljb24ubW9uZXkuYmlsbC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDFcIjtcbn1cbmkuaWNvbi5tb29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg2XCI7XG59XG5pLmljb24ubW90b3JjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxY1wiO1xufVxuaS5pY29uLm1vdXNlLnBvaW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDVcIjtcbn1cbmkuaWNvbi5tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMVwiO1xufVxuaS5pY29uLm5hcHN0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDJcIjtcbn1cbmkuaWNvbi5uZXV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmNcIjtcbn1cbmkuaWNvbi5uZXdzcGFwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZWFcIjtcbn1cbmkuaWNvbi5uaW50ZW5kby5zd2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MThcIjtcbn1cbmkuaWNvbi5ub2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDE5XCI7XG59XG5pLmljb24ubm9kZS5qczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkM1wiO1xufVxuaS5pY29uLm5wbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNFwiO1xufVxuaS5pY29uLm5zODpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkNVwiO1xufVxuaS5pY29uLm51dHJpdGlvbml4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q2XCI7XG59XG5pLmljb24ub2JqZWN0Lmdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ3XCI7XG59XG5pLmljb24ub2JqZWN0LnVuZ3JvdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDhcIjtcbn1cbmkuaWNvbi5vZG5va2xhc3NuaWtpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYzXCI7XG59XG5pLmljb24ub2Rub2tsYXNzbmlraS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjRcIjtcbn1cbmkuaWNvbi5vcGVuY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzZFwiO1xufVxuaS5pY29uLm9wZW5pZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5YlwiO1xufVxuaS5pY29uLm9wZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZhXCI7XG59XG5pLmljb24ub3B0aW4ubW9uc3RlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzY1wiO1xufVxuaS5pY29uLm9zaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxYVwiO1xufVxuaS5pY29uLm91dGRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2JcIjtcbn1cbmkuaWNvbi5wYWdlNDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkN1wiO1xufVxuaS5pY29uLnBhZ2VsaW5lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4Y1wiO1xufVxuaS5pY29uLnBhaW50LmJydXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWZjXCI7XG59XG5pLmljb24ucGFsZmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2Q4XCI7XG59XG5pLmljb24ucGFsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDgyXCI7XG59XG5pLmljb24ucGFwZXIucGxhbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cbmkuaWNvbi5wYXBlcmNsaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzZcIjtcbn1cbmkuaWNvbi5wYXJhZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGRcIjtcbn1cbmkuaWNvbi5wYXN0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlYVwiO1xufVxuaS5pY29uLnBhdHJlb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZDlcIjtcbn1cbmkuaWNvbi5wYXVzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0Y1wiO1xufVxuaS5pY29uLnBhdXNlLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YlwiO1xufVxuaS5pY29uLnBhdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiMFwiO1xufVxuaS5pY29uLnBheXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlZFwiO1xufVxuaS5pY29uLnBlbi5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGJcIjtcbn1cbmkuaWNvbi5wZW5jaWwuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XG59XG5pLmljb24ucGVyY2VudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5NVwiO1xufVxuaS5pY29uLnBlcmlzY29wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkYVwiO1xufVxuaS5pY29uLnBoYWJyaWNhdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2RiXCI7XG59XG5pLmljb24ucGhvZW5peC5mcmFtZXdvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGNcIjtcbn1cbmkuaWNvbi5waG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5NVwiO1xufVxuaS5pY29uLnBob25lLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5OFwiO1xufVxuaS5pY29uLnBob25lLnZvbHVtZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMFwiO1xufVxuaS5pY29uLnBocDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1N1wiO1xufVxuaS5pY29uLnBpZWQucGlwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWVcIjtcbn1cbmkuaWNvbi5waWVkLnBpcGVyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhOFwiO1xufVxuaS5pY29uLnBpZWQucGlwZXIucHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTdcIjtcbn1cbmkuaWNvbi5waWxsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ4NFwiO1xufVxuaS5pY29uLnBpbnRlcmVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMlwiO1xufVxuaS5pY29uLnBpbnRlcmVzdC5wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjMxXCI7XG59XG5pLmljb24ucGludGVyZXN0LnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkM1wiO1xufVxuaS5pY29uLnBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDcyXCI7XG59XG5pLmljb24ucGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0YlwiO1xufVxuaS5pY29uLnBsYXkuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ0XCI7XG59XG5pLmljb24ucGxheXN0YXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZGZcIjtcbn1cbmkuaWNvbi5wbHVnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWU2XCI7XG59XG5pLmljb24ucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2N1wiO1xufVxuaS5pY29uLnBsdXMuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU1XCI7XG59XG5pLmljb24ucGx1cy5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmVcIjtcbn1cbmkuaWNvbi5wb2RjYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNlXCI7XG59XG5pLmljb24ucG91bmQuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1NFwiO1xufVxuaS5pY29uLnBvd2VyLm9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMVwiO1xufVxuaS5pY29uLnByaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDJmXCI7XG59XG5pLmljb24ucHJvZHVjdC5odW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg4XCI7XG59XG5pLmljb24ucHVzaGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UxXCI7XG59XG5pLmljb24ucHV6emxlLnBpZWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJlXCI7XG59XG5pLmljb24ucHl0aG9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2UyXCI7XG59XG5pLmljb24ucXE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDZcIjtcbn1cbmkuaWNvbi5xcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjlcIjtcbn1cbmkuaWNvbi5xdWVzdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOFwiO1xufVxuaS5pY29uLnF1ZXN0aW9uLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1OVwiO1xufVxuaS5pY29uLnF1aWRkaXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1OFwiO1xufVxuaS5pY29uLnF1aW5zY2FwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1OVwiO1xufVxuaS5pY29uLnF1b3JhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM0XCI7XG59XG5pLmljb24ucXVvdGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwZFwiO1xufVxuaS5pY29uLnF1b3RlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBlXCI7XG59XG5pLmljb24ucmFuZG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc0XCI7XG59XG5pLmljb24ucmF2ZWxyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkOVwiO1xufVxuaS5pY29uLnJlYWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFiXCI7XG59XG5pLmljb24ucmViZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDBcIjtcbn1cbmkuaWNvbi5yZWN5Y2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWI4XCI7XG59XG5pLmljb24ucmVkcml2ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTNcIjtcbn1cbmkuaWNvbi5yZWRkaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYTFcIjtcbn1cbmkuaWNvbi5yZWRkaXQuYWxpZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyODFcIjtcbn1cbmkuaWNvbi5yZWRkaXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWEyXCI7XG59XG5pLmljb24ucmVkbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxZVwiO1xufVxuaS5pY29uLnJlZG8uYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY5XCI7XG59XG5pLmljb24ucmVnaXN0ZXJlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiO1xufVxuaS5pY29uLnJlbmRhY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTRcIjtcbn1cbmkuaWNvbi5yZW5yZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOGJcIjtcbn1cbmkuaWNvbi5yZXBseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNVwiO1xufVxuaS5pY29uLnJlcGx5LmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMlwiO1xufVxuaS5pY29uLnJlcGx5ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlNlwiO1xufVxuaS5pY29uLnJlc29sdmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlN1wiO1xufVxuaS5pY29uLnJldHdlZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzlcIjtcbn1cbmkuaWNvbi5yb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDE4XCI7XG59XG5pLmljb24ucm9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTM1XCI7XG59XG5pLmljb24ucm9ja2V0Y2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlOFwiO1xufVxuaS5pY29uLnJvY2tybXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZTlcIjtcbn1cbmkuaWNvbi5yc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWVcIjtcbn1cbmkuaWNvbi5yc3Muc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQzXCI7XG59XG5pLmljb24ucnVibGUuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuaS5pY29uLnJ1cGVlLnNpZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTZcIjtcbn1cbmkuaWNvbi5zYWZhcmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjdcIjtcbn1cbmkuaWNvbi5zYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDFlXCI7XG59XG5pLmljb24uc2F2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjN1wiO1xufVxuaS5pY29uLnNjaGxpeDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlYVwiO1xufVxuaS5pY29uLnNjcmliZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI4YVwiO1xufVxuaS5pY29uLnNlYXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMlwiO1xufVxuaS5pY29uLnNlYXJjaC5taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMFwiO1xufVxuaS5pY29uLnNlYXJjaC5wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24uc2VhcmNoZW5naW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWJcIjtcbn1cbmkuaWNvbi5zZWxsY2FzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkYVwiO1xufVxuaS5pY29uLnNlbGxzeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxM1wiO1xufVxuaS5pY29uLnNlcnZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzM1wiO1xufVxuaS5pY29uLnNlcnZpY2VzdGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlY1wiO1xufVxuaS5pY29uLnNoYXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY0XCI7XG59XG5pLmljb24uc2hhcmUuYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUwXCI7XG59XG5pLmljb24uc2hhcmUuYWx0ZXJuYXRlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlMVwiO1xufVxuaS5pY29uLnNoYXJlLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0ZFwiO1xufVxuaS5pY29uLnNoZWtlbC5zaWduOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBiXCI7XG59XG5pLmljb24uc2hpZWxkLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZFwiO1xufVxuaS5pY29uLnNoaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWFcIjtcbn1cbmkuaWNvbi5zaGlwcGluZy5mYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDhiXCI7XG59XG5pLmljb24uc2hpcnRzaW5idWxrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE0XCI7XG59XG5pLmljb24uc2hvcHBpbmcuYmFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkwXCI7XG59XG5pLmljb24uc2hvcHBpbmcuYmFza2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjkxXCI7XG59XG5pLmljb24uc2hvcHBpbmcuY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YVwiO1xufVxuaS5pY29uLnNob3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjY1wiO1xufVxuaS5pY29uLnNpZ24ubGFuZ3VhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYTdcIjtcbn1cbmkuaWNvbi5zaWduYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTJcIjtcbn1cbmkuaWNvbi5zaW1wbHlidWlsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxNVwiO1xufVxuaS5pY29uLnNpc3RyaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWVcIjtcbn1cbmkuaWNvbi5zaXRlbWFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU4XCI7XG59XG5pLmljb24uc2t5YXRsYXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTZcIjtcbn1cbmkuaWNvbi5za3lwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE3ZVwiO1xufVxuaS5pY29uLnNsYWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk4XCI7XG59XG5pLmljb24uc2xhY2suaGFzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNlZlwiO1xufVxuaS5pY29uLnNsaWRlcnMuaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkZVwiO1xufVxuaS5pY29uLnNsaWRlc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTdcIjtcbn1cbmkuaWNvbi5zbWlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuaS5pY29uLnNuYXBjaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFiXCI7XG59XG5pLmljb24uc25hcGNoYXQuZ2hvc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWNcIjtcbn1cbmkuaWNvbi5zbmFwY2hhdC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWRcIjtcbn1cbmkuaWNvbi5zbm93Zmxha2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGNcIjtcbn1cbmkuaWNvbi5zb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRjXCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVkXCI7XG59XG5pLmljb24uc29ydC5hbHBoYWJldC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZVwiO1xufVxuaS5pY29uLnNvcnQuYW1vdW50LmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjBcIjtcbn1cbmkuaWNvbi5zb3J0LmFtb3VudC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MVwiO1xufVxuaS5pY29uLnNvcnQuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZFwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYyXCI7XG59XG5pLmljb24uc29ydC5udW1lcmljLnVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYzXCI7XG59XG5pLmljb24uc29ydC51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkZVwiO1xufVxuaS5pY29uLnNvdW5kY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmVcIjtcbn1cbmkuaWNvbi5zcGFjZS5zaHV0dGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk3XCI7XG59XG5pLmljb24uc3BlYWthcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmM1wiO1xufVxuaS5pY29uLnNwaW5uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTBcIjtcbn1cbmkuaWNvbi5zcG90aWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWJjXCI7XG59XG5pLmljb24uc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG59XG5pLmljb24uc3F1YXJlLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWNcIjtcbn1cbmkuaWNvbi5zdGFjay5leGNoYW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4ZFwiO1xufVxuaS5pY29uLnN0YWNrLm92ZXJmbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTZjXCI7XG59XG5pLmljb24uc3RhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNVwiO1xufVxuaS5pY29uLnN0YXIuaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuaS5pY29uLnN0YXlsaW5rZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjVcIjtcbn1cbmkuaWNvbi5zdGVhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiNlwiO1xufVxuaS5pY29uLnN0ZWFtLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiN1wiO1xufVxuaS5pY29uLnN0ZWFtLnN5bWJvbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmNlwiO1xufVxuaS5pY29uLnN0ZXAuYmFja3dhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDhcIjtcbn1cbmkuaWNvbi5zdGVwLmZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTFcIjtcbn1cbmkuaWNvbi5zdGV0aG9zY29wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMVwiO1xufVxuaS5pY29uLnN0aWNrZXIubXVsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmN1wiO1xufVxuaS5pY29uLnN0aWNreS5ub3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ5XCI7XG59XG5pLmljb24uc3RvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0ZFwiO1xufVxuaS5pY29uLnN0b3AuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhkXCI7XG59XG5pLmljb24uc3RvcHdhdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmYyXCI7XG59XG5pLmljb24uc3RyYXZhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI4XCI7XG59XG5pLmljb24uc3RyZWV0LnZpZXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWRcIjtcbn1cbmkuaWNvbi5zdHJpa2V0aHJvdWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNjXCI7XG59XG5pLmljb24uc3RyaXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDI5XCI7XG59XG5pLmljb24uc3RyaXBlLnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MmFcIjtcbn1cbmkuaWNvbi5zdHVkaW92aW5hcmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZjhcIjtcbn1cbmkuaWNvbi5zdHVtYmxldXBvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhNFwiO1xufVxuaS5pY29uLnN0dW1ibGV1cG9uLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFhM1wiO1xufVxuaS5pY29uLnN1YnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyY1wiO1xufVxuaS5pY29uLnN1YndheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzOVwiO1xufVxuaS5pY29uLnN1aXRjYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYyXCI7XG59XG5pLmljb24uc3VuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTg1XCI7XG59XG5pLmljb24uc3VwZXJwb3dlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGRcIjtcbn1cbmkuaWNvbi5zdXBlcnNjcmlwdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyYlwiO1xufVxuaS5pY29uLnN1cHBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmOVwiO1xufVxuaS5pY29uLnN5bmM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjFcIjtcbn1cbmkuaWNvbi5zeW5jLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmMVwiO1xufVxuaS5pY29uLnN5cmluZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0OGVcIjtcbn1cbmkuaWNvbi50YWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjZVwiO1xufVxuaS5pY29uLnRhYmxlLnRlbm5pczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ1ZFwiO1xufVxuaS5pY29uLnRhYmxldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYVwiO1xufVxuaS5pY29uLnRhYmxldC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmFcIjtcbn1cbmkuaWNvbi50YWNob21ldGVyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZFwiO1xufVxuaS5pY29uLnRhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyYlwiO1xufVxuaS5pY29uLnRhZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMmNcIjtcbn1cbmkuaWNvbi50YXNrczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhZVwiO1xufVxuaS5pY29uLnRheGk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYmFcIjtcbn1cbmkuaWNvbi50ZWxlZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjNlwiO1xufVxuaS5pY29uLnRlbGVncmFtLnBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2ZlXCI7XG59XG5pLmljb24udGVuY2VudC53ZWlibzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkNVwiO1xufVxuaS5pY29uLnRlcm1pbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIwXCI7XG59XG5pLmljb24udGV4dC5oZWlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzRcIjtcbn1cbmkuaWNvbi50ZXh0LndpZHRoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDM1XCI7XG59XG5pLmljb24udGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGFcIjtcbn1cbmkuaWNvbi50aC5sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwOVwiO1xufVxuaS5pY29uLnRoLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGJcIjtcbn1cbmkuaWNvbi50aGVtZWlzbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjJcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5MVwiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLmVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNiXCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXIuZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJjN1wiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyLmhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzlcIjtcbn1cbmkuaWNvbi50aGVybW9tZXRlci5xdWFydGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNhXCI7XG59XG5pLmljb24udGhlcm1vbWV0ZXIudGhyZWUucXVhcnRlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzhcIjtcbn1cbmkuaWNvbi50aHVtYnMuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NVwiO1xufVxuaS5pY29uLnRodW1icy51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2NFwiO1xufVxuaS5pY29uLnRodW1idGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4ZFwiO1xufVxuaS5pY29uLnRpY2tldC5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZmZcIjtcbn1cbmkuaWNvbi50aW1lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLnRpbWVzLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1N1wiO1xufVxuaS5pY29uLnRpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDNcIjtcbn1cbmkuaWNvbi50b2dnbGUub2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA0XCI7XG59XG5pLmljb24udG9nZ2xlLm9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjA1XCI7XG59XG5pLmljb24udHJhZGVtYXJrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVjXCI7XG59XG5pLmljb24udHJhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzhcIjtcbn1cbmkuaWNvbi50cmFuc2dlbmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNFwiO1xufVxuaS5pY29uLnRyYW5zZ2VuZGVyLmFsdGVybmF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNVwiO1xufVxuaS5pY29uLnRyYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY4XCI7XG59XG5pLmljb24udHJhc2guYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmVkXCI7XG59XG5pLmljb24udHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFiYlwiO1xufVxuaS5pY29uLnRyZWxsbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4MVwiO1xufVxuaS5pY29uLnRyaXBhZHZpc29yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjYyXCI7XG59XG5pLmljb24udHJvcGh5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDkxXCI7XG59XG5pLmljb24udHJ1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDFcIjtcbn1cbmkuaWNvbi50dHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTRcIjtcbn1cbmkuaWNvbi50dW1ibHI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNzNcIjtcbn1cbmkuaWNvbi50dW1ibHIuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTc0XCI7XG59XG5pLmljb24udHY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNmNcIjtcbn1cbmkuaWNvbi50d2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZThcIjtcbn1cbmkuaWNvbi50d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk5XCI7XG59XG5pLmljb24udHdpdHRlci5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODFcIjtcbn1cbmkuaWNvbi50eXBvMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQyYlwiO1xufVxuaS5pY29uLnViZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDJcIjtcbn1cbmkuaWNvbi51aWtpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwM1wiO1xufVxuaS5pY29uLnVtYnJlbGxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGU5XCI7XG59XG5pLmljb24udW5kZXJsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNkXCI7XG59XG5pLmljb24udW5kbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlMlwiO1xufVxuaS5pY29uLnVuZG8uYWx0ZXJuYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmVhXCI7XG59XG5pLmljb24udW5pcmVnaXN0cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDRcIjtcbn1cbmkuaWNvbi51bml2ZXJzYWwuYWNjZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjlhXCI7XG59XG5pLmljb24udW5pdmVyc2l0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5Y1wiO1xufVxuaS5pY29uLnVubGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyN1wiO1xufVxuaS5pY29uLnVubG9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5Y1wiO1xufVxuaS5pY29uLnVubG9jay5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxM2VcIjtcbn1cbmkuaWNvbi51bnRhcHBkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA1XCI7XG59XG5pLmljb24udXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDkzXCI7XG59XG5pLmljb24udXNiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjg3XCI7XG59XG5pLmljb24udXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwN1wiO1xufVxuaS5pY29uLnVzZXIuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmJkXCI7XG59XG5pLmljb24udXNlci5tZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmMFwiO1xufVxuaS5pY29uLnVzZXIucGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNFwiO1xufVxuaS5pY29uLnVzZXIuc2VjcmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjFiXCI7XG59XG5pLmljb24udXNlci50aW1lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNVwiO1xufVxuaS5pY29uLnVzZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGMwXCI7XG59XG5pLmljb24udXNzdW5uYWg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDdcIjtcbn1cbmkuaWNvbi51dGVuc2lsLnNwb29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU1XCI7XG59XG5pLmljb24udXRlbnNpbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZTdcIjtcbn1cbmkuaWNvbi52YWFkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MDhcIjtcbn1cbmkuaWNvbi52ZW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyMVwiO1xufVxuaS5pY29uLnZlbnVzLmRvdWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNlwiO1xufVxuaS5pY29uLnZlbnVzLm1hcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjhcIjtcbn1cbmkuaWNvbi52aWFjb2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjM3XCI7XG59XG5pLmljb24udmlhZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmE5XCI7XG59XG5pLmljb24udmlhZGVvLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhYVwiO1xufVxuaS5pY29uLnZpYmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDA5XCI7XG59XG5pLmljb24udmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwM2RcIjtcbn1cbmkuaWNvbi52aW1lbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQwYVwiO1xufVxuaS5pY29uLnZpbWVvLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5NFwiO1xufVxuaS5pY29uLnZpbWVvLnY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2RcIjtcbn1cbmkuaWNvbi52aW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNhXCI7XG59XG5pLmljb24udms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODlcIjtcbn1cbmkuaWNvbi52bnY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGJcIjtcbn1cbmkuaWNvbi52b2xsZXliYWxsLmJhbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0NWZcIjtcbn1cbmkuaWNvbi52b2x1bWUuZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyN1wiO1xufVxuaS5pY29uLnZvbHVtZS5vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjZcIjtcbn1cbmkuaWNvbi52b2x1bWUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjhcIjtcbn1cbmkuaWNvbi52dWVqczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxZlwiO1xufVxuaS5pY29uLndhcmVob3VzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ5NFwiO1xufVxuaS5pY29uLndlaWJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMThhXCI7XG59XG5pLmljb24ud2VpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDk2XCI7XG59XG5pLmljb24ud2VpeGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWQ3XCI7XG59XG5pLmljb24ud2hhdHNhcHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzJcIjtcbn1cbmkuaWNvbi53aGF0c2FwcC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGNcIjtcbn1cbmkuaWNvbi53aGVlbGNoYWlyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTkzXCI7XG59XG5pLmljb24ud2htY3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MGRcIjtcbn1cbmkuaWNvbi53aWZpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWViXCI7XG59XG5pLmljb24ud2lraXBlZGlhLnc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjZcIjtcbn1cbmkuaWNvbi53aW5kb3cuY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTBcIjtcbn1cbmkuaWNvbi53aW5kb3cubWF4aW1pemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDBcIjtcbn1cbmkuaWNvbi53aW5kb3cubWluaW1pemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDFcIjtcbn1cbmkuaWNvbi53aW5kb3cucmVzdG9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkMlwiO1xufVxuaS5pY29uLndpbmRvd3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2FcIjtcbn1cbmkuaWNvbi53b24uc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OVwiO1xufVxuaS5pY29uLndvcmRwcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5YVwiO1xufVxuaS5pY29uLndvcmRwcmVzcy5zaW1wbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTFcIjtcbn1cbmkuaWNvbi53cGJlZ2lubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk3XCI7XG59XG5pLmljb24ud3BleHBsb3JlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkZVwiO1xufVxuaS5pY29uLndwZm9ybXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOThcIjtcbn1cbmkuaWNvbi53cmVuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWRcIjtcbn1cbmkuaWNvbi54Ym94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEyXCI7XG59XG5pLmljb24ueGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2OFwiO1xufVxuaS5pY29uLnhpbmcuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY5XCI7XG59XG5pLmljb24ueS5jb21iaW5hdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjNiXCI7XG59XG5pLmljb24ueWFob286YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWVcIjtcbn1cbmkuaWNvbi55YW5kZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGY0MTNcIjtcbn1cbmkuaWNvbi55YW5kZXguaW50ZXJuYXRpb25hbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxNFwiO1xufVxuaS5pY29uLnllbHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTlcIjtcbn1cbmkuaWNvbi55ZW4uc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuaS5pY29uLnlvYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmIxXCI7XG59XG5pLmljb24ueW91dHViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2N1wiO1xufVxuaS5pY29uLnlvdXR1YmUuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDMxXCI7XG59XG4vKiBBbGlhc2VzICovXG5pLmljb24uY2hlc3Mucm9jazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQ0N1wiO1xufVxuaS5pY29uLm9yZGVyZWQubGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjYlwiO1xufVxuaS5pY29uLnVub3JkZXJlZC5saXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGNhXCI7XG59XG5pLmljb24udXNlci5kb2N0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjBcIjtcbn1cbmkuaWNvbi5zaGllbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzZWRcIjtcbn1cbmkuaWNvbi5wdXp6bGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmVcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5hbWF6b24ucGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDJkXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuYW1lcmljYW4uZXhwcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLmRpbmVycy5jbHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjRjXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuZGlzY292ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5qY2I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5jcmVkaXQuY2FyZC5tYXN0ZXJjYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQucGF5cGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY0XCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuc3RyaXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY1XCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQudmlzYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMFwiO1xufVxuaS5pY29uLmFkZC5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNTVcIjtcbn1cbmkuaWNvbi5hZGQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGZlXCI7XG59XG5pLmljb24uYWRkLnRvLmNhbGVuZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjcxXCI7XG59XG5pLmljb24uYWRkLnRvLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cbmkuaWNvbi5hZGQudXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNFwiO1xufVxuaS5pY29uLmFkZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2N1wiO1xufVxuaS5pY29uLmFsYXJtLm11dGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjZcIjtcbn1cbmkuaWNvbi5hbGFybTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBmM1wiO1xufVxuaS5pY29uLmFsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMlwiO1xufVxuaS5pY29uLmFsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMlwiO1xufVxuaS5pY29uLmFtZXJpY2FuLmV4cHJlc3MuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmM1wiO1xufVxuaS5pY29uLmFtZXJpY2FuLmV4cHJlc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjNcIjtcbn1cbmkuaWNvbi5hbWV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYzXCI7XG59XG5pLmljb24uYW5ub3VuY2VtZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGExXCI7XG59XG5pLmljb24uYXJlYS5jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmZVwiO1xufVxuaS5pY29uLmFyZWEuZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmVcIjtcbn1cbmkuaWNvbi5hcnJvdy5kb3duLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMThcIjtcbn1cbmkuaWNvbi5hc2V4dWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJkXCI7XG59XG5pLmljb24uYXNsLmludGVycHJldGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhM1wiO1xufVxuaS5pY29uLmFzbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhM1wiO1xufVxuaS5pY29uLmFzc2lzdGl2ZS5saXN0ZW5pbmcuZGV2aWNlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMlwiO1xufVxuaS5pY29uLmF0dGFjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjNlwiO1xufVxuaS5pY29uLmF0dGVudGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2YVwiO1xufVxuaS5pY29uLmJhbGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGVcIjtcbn1cbmkuaWNvbi5iYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmNcIjtcbn1cbmkuaWNvbi5iYXRodHViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmNkXCI7XG59XG5pLmljb24uYmF0dGVyeS5mb3VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQwXCI7XG59XG5pLmljb24uYmF0dGVyeS5oaWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQxXCI7XG59XG5pLmljb24uYmF0dGVyeS5sb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDNcIjtcbn1cbmkuaWNvbi5iYXR0ZXJ5Lm1lZGl1bTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MlwiO1xufVxuaS5pY29uLmJhdHRlcnkub25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQzXCI7XG59XG5pLmljb24uYmF0dGVyeS50aHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0MVwiO1xufVxuaS5pY29uLmJhdHRlcnkudHdvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQyXCI7XG59XG5pLmljb24uYmF0dGVyeS56ZXJvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ0XCI7XG59XG5pLmljb24uYmlydGhkYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmRcIjtcbn1cbmkuaWNvbi5ibG9jay5sYXlvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDlcIjtcbn1cbmkuaWNvbi5ibHVldG9vdGguYWx0ZXJuYXRpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyOTRcIjtcbn1cbmkuaWNvbi5icm9rZW4uY2hhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjtcbn1cbmkuaWNvbi5icm93c2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIyXCI7XG59XG5pLmljb24uY2FsbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOThcIjtcbn1cbmkuaWNvbi5jYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDk1XCI7XG59XG5pLmljb24uY2FuY2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24uY2FydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3YVwiO1xufVxuaS5pY29uLmNjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBhXCI7XG59XG5pLmljb24uY2hhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbmkuaWNvbi5jaGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc1XCI7XG59XG5pLmljb24uY2hlY2tlZC5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3NFwiO1xufVxuaS5pY29uLmNoZWNrbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwY1wiO1xufVxuaS5pY29uLmNpcmNsZS5ub3RjaGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNlXCI7XG59XG5pLmljb24uY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbmkuaWNvbi5jbnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi5jb2NrdGFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwMFwiO1xufVxuaS5pY29uLmNvbW1lbnRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyN2FcIjtcbn1cbmkuaWNvbi5jb21wdXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuaS5pY29uLmNvbmZpZ3VyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhZFwiO1xufVxuaS5pY29uLmNvbnRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzlcIjtcbn1cbmkuaWNvbi5kZWFmbmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNFwiO1xufVxuaS5pY29uLmRlbGV0ZS5jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3M1wiO1xufVxuaS5pY29uLmRlbGV0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLmRldGVjdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIxYlwiO1xufVxuaS5pY29uLmRpbmVycy5jbHViLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGNcIjtcbn1cbmkuaWNvbi5kaW5lcnMuY2x1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0Y1wiO1xufVxuaS5pY29uLmRpc2NvdmVyLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjJcIjtcbn1cbmkuaWNvbi5kaXNjb3ZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMlwiO1xufVxuaS5pY29uLmRpc2N1c3Npb25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg2XCI7XG59XG5pLmljb24uZG9jdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYwXCI7XG59XG5pLmljb24uZG9sbGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU1XCI7XG59XG5pLmljb24uZG9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1ZVwiO1xufVxuaS5pY29uLmRyaWJibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxN2RcIjtcbn1cbmkuaWNvbi5kcml2ZXJzLmxpY2Vuc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzJcIjtcbn1cbmkuaWNvbi5kcm9wZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkN1wiO1xufVxuaS5pY29uLmVlcmNhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZGFcIjtcbn1cbmkuaWNvbi5lbWVyZ2VuY3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjlcIjtcbn1cbmkuaWNvbi5lbnZpcmEuZ2FsbGVyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI5OVwiO1xufVxuaS5pY29uLmVyYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTJkXCI7XG59XG5pLmljb24uZXVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUzXCI7XG59XG5pLmljb24uZXVybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1M1wiO1xufVxuaS5pY29uLmV5ZWRyb3BwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZmJcIjtcbn1cbmkuaWNvbi5mYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNFwiO1xufVxuaS5pY29uLmZhY3Rvcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzVcIjtcbn1cbmkuaWNvbi5mYXZvcml0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNVwiO1xufVxuaS5pY29uLmZlZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWVcIjtcbn1cbmkuaWNvbi5mZW1hbGUuaG9tb3NleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNlwiO1xufVxuaS5pY29uLmZpbGUudGV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1Y1wiO1xufVxuaS5pY29uLmZpbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTVcIjtcbn1cbmkuaWNvbi5maXJzdC5haWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmFcIjtcbn1cbmkuaWNvbi5maXZlLmh1bmRyZWQucGl4ZWxzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZlXCI7XG59XG5pLmljb24uZm9yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyNlwiO1xufVxuaS5pY29uLmdhbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWJcIjtcbn1cbmkuaWNvbi5nYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjdcIjtcbn1cbmkuaWNvbi5nYnA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTRcIjtcbn1cbmkuaWNvbi5naXR0aXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODRcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjNcIjtcbn1cbmkuaWNvbi5nb29nbGUucGx1cy5vZmZpY2lhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiM1wiO1xufVxuaS5pY29uLmdyYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTVcIjtcbn1cbmkuaWNvbi5ncmFkdWF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTlkXCI7XG59XG5pLmljb24uZ3JpZC5sYXlvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGFcIjtcbn1cbmkuaWNvbi5ncm91cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjMFwiO1xufVxuaS5pY29uLmg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmRcIjtcbn1cbmkuaWNvbi5oYW5kLnZpY3Rvcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNWJcIjtcbn1cbmkuaWNvbi5oYW5kaWNhcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5M1wiO1xufVxuaS5pY29uLmhhcmQub2YuaGVhcmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhNFwiO1xufVxuaS5pY29uLmhlYWRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkY1wiO1xufVxuaS5pY29uLmhlbHAuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU5XCI7XG59XG5pLmljb24uaGVscDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyOFwiO1xufVxuaS5pY29uLmhldGVyb3NleHVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyOFwiO1xufVxuaS5pY29uLmhpZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzBcIjtcbn1cbmkuaWNvbi5ob3RlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNlwiO1xufVxuaS5pY29uLmhvdXJnbGFzcy5mb3VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU0XCI7XG59XG5pLmljb24uaG91cmdsYXNzLmZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTRcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3Mub25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUxXCI7XG59XG5pLmljb24uaG91cmdsYXNzLnRocmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjUzXCI7XG59XG5pLmljb24uaG91cmdsYXNzLnR3bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1MlwiO1xufVxuaS5pY29uLmlkZWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWJcIjtcbn1cbmkuaWNvbi5pbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGJcIjtcbn1cbmkuaWNvbi5pbi1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjE4XCI7XG59XG5pLmljb24uaW5yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU2XCI7XG59XG5pLmljb24uaW50ZXJnZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjRcIjtcbn1cbmkuaWNvbi5pbnRlcnNleDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyNFwiO1xufVxuaS5pY29uLmphcGFuLmNyZWRpdC5idXJlYXUuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI0YlwiO1xufVxuaS5pY29uLmphcGFuLmNyZWRpdC5idXJlYXU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5qY2I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGJcIjtcbn1cbmkuaWNvbi5qcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTdcIjtcbn1cbmkuaWNvbi5rcnc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTlcIjtcbn1cbmkuaWNvbi5sYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzNcIjtcbn1cbmkuaWNvbi5sYXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGVcIjtcbn1cbmkuaWNvbi5sZWdhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlM1wiO1xufVxuaS5pY29uLmxlc2JpYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjZcIjtcbn1cbmkuaWNvbi5saWdodG5pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZTdcIjtcbn1cbmkuaWNvbi5saWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA0XCI7XG59XG5pLmljb24ubGluZS5ncmFwaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIwMVwiO1xufVxuaS5pY29uLmxpbmtlZGluLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4Y1wiO1xufVxuaS5pY29uLmxpbmtpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzFcIjtcbn1cbmkuaWNvbi5saXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTk1XCI7XG59XG5pLmljb24ubGlzdC5sYXlvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGJcIjtcbn1cbmkuaWNvbi5tYWduaWZ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBlXCI7XG59XG5pLmljb24ubWFpbC5mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDY0XCI7XG59XG5pLmljb24ubWFpbC5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTlcIjtcbn1cbmkuaWNvbi5tYWlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUwXCI7XG59XG5pLmljb24ubWFsZS5ob21vc2V4dWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjI3XCI7XG59XG5pLmljb24ubWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIyXCI7XG59XG5pLmljb24ubWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDQxXCI7XG59XG5pLmljb24ubWFycy5hbHRlcm5hdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjlcIjtcbn1cbmkuaWNvbi5tYXJzLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmJcIjtcbn1cbmkuaWNvbi5tYXJzLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjJhXCI7XG59XG5pLmljb24ubWFzdGVyY2FyZC5jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWYxXCI7XG59XG5pLmljb24ubWFzdGVyY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMVwiO1xufVxuaS5pY29uLm1pY3Jvc29mdC5lZGdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgyXCI7XG59XG5pLmljb24ubWlsaXRhcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmJcIjtcbn1cbmkuaWNvbi5tcy5lZGdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjgyXCI7XG59XG5pLmljb24ubXV0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEzMVwiO1xufVxuaS5pY29uLm5ldy5waWVkLnBpcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmFlXCI7XG59XG5pLmljb24ubm9uLmJpbmFyeS50cmFuc2dlbmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIyM1wiO1xufVxuaS5pY29uLm51bWJlcmVkLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwY2JcIjtcbn1cbmkuaWNvbi5vcHRpbm1vbnN0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2NcIjtcbn1cbmkuaWNvbi5vcHRpb25zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWRlXCI7XG59XG5pLmljb24ub3RoZXIuZ2VuZGVyLmhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmJcIjtcbn1cbmkuaWNvbi5vdGhlci5nZW5kZXIudmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMmFcIjtcbn1cbmkuaWNvbi5vdGhlci5nZW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMjlcIjtcbn1cbmkuaWNvbi5wYXltZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDlkXCI7XG59XG5pLmljb24ucGF5cGFsLmNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjRcIjtcbn1cbmkuaWNvbi5wZW5jaWwuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRiXCI7XG59XG5pLmljb24ucGhvdG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMzBcIjtcbn1cbmkuaWNvbi5waWN0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNlXCI7XG59XG5pLmljb24ucGllLmNoYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAwXCI7XG59XG5pLmljb24ucGllLmdyYXBoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjAwXCI7XG59XG5pLmljb24ucGllZC5waXBlci5oYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYWVcIjtcbn1cbmkuaWNvbi5waW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOGRcIjtcbn1cbmkuaWNvbi5wbHVzLmNhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMTdcIjtcbn1cbmkuaWNvbi5wb2NrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNjVcIjtcbn1cbmkuaWNvbi5wb2ludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0MVwiO1xufVxuaS5pY29uLnBvaW50aW5nLmRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTdcIjtcbn1cbmkuaWNvbi5wb2ludGluZy5sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGE1XCI7XG59XG5pLmljb24ucG9pbnRpbmcucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTRcIjtcbn1cbmkuaWNvbi5wb2ludGluZy51cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNlwiO1xufVxuaS5pY29uLnBvdW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU0XCI7XG59XG5pLmljb24ucG93ZXIuY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNlwiO1xufVxuaS5pY29uLnBvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDExXCI7XG59XG5pLmljb24ucHJpdmFjeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4NFwiO1xufVxuaS5pY29uLnIuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVkXCI7XG59XG5pLmljb24ucmFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBlOVwiO1xufVxuaS5pY29uLnJlY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAzZFwiO1xufVxuaS5pY29uLnJlZnJlc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjFcIjtcbn1cbmkuaWNvbi5yZW1vdmUuY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU3XCI7XG59XG5pLmljb24ucmVtb3ZlLmZyb20uY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzJcIjtcbn1cbmkuaWNvbi5yZW1vdmUudXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNVwiO1xufVxuaS5pY29uLnJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwZFwiO1xufVxuaS5pY29uLnJlcGVhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxZVwiO1xufVxuaS5pY29uLnJtYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuaS5pY29uLnJvdWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuaS5pY29uLnJ1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1OFwiO1xufVxuaS5pY29uLnJ1YmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU4XCI7XG59XG5pLmljb24ucnVwZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTZcIjtcbn1cbmkuaWNvbi5zMTU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyY2RcIjtcbn1cbmkuaWNvbi5zZWxlY3RlZC5yYWRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MlwiO1xufVxuaS5pY29uLnNlbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDhcIjtcbn1cbmkuaWNvbi5zZXR0aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDEzXCI7XG59XG5pLmljb24uc2V0dGluZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODVcIjtcbn1cbmkuaWNvbi5zaGVrZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGJcIjtcbn1cbmkuaWNvbi5zaGVxZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMGJcIjtcbn1cbmkuaWNvbi5zaGlwcGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMVwiO1xufVxuaS5pY29uLnNob3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2FcIjtcbn1cbmkuaWNvbi5zaHVmZmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc0XCI7XG59XG5pLmljb24uc2h1dGRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTFcIjtcbn1cbmkuaWNvbi5zaWRlYmFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGM5XCI7XG59XG5pLmljb24uc2lnbmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhN1wiO1xufVxuaS5pY29uLnNpZ251cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0NFwiO1xufVxuaS5pY29uLnNsaWRlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZGVcIjtcbn1cbmkuaWNvbi5zb2NjZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTNcIjtcbn1cbmkuaWNvbi5zb3J0LmFscGhhYmV0LmFzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZFwiO1xufVxuaS5pY29uLnNvcnQuYWxwaGFiZXQuZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1ZVwiO1xufVxuaS5pY29uLnNvcnQuYXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRlXCI7XG59XG5pLmljb24uc29ydC5jb250ZW50LmFzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MFwiO1xufVxuaS5pY29uLnNvcnQuY29udGVudC5kZXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYxXCI7XG59XG5pLmljb24uc29ydC5kZXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRkXCI7XG59XG5pLmljb24uc29ydC5udW1lcmljLmFzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE2MlwiO1xufVxuaS5pY29uLnNvcnQubnVtZXJpYy5kZXNjZW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTYzXCI7XG59XG5pLmljb24uc291bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjVcIjtcbn1cbmkuaWNvbi5zcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMWJcIjtcbn1cbmkuaWNvbi5zdHJpcGUuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmNVwiO1xufVxuaS5pY29uLnN0dWRlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOWRcIjtcbn1cbmkuaWNvbi50YWxrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjdhXCI7XG59XG5pLmljb24udGFyZ2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQwXCI7XG59XG5pLmljb24udGVsZXR5cGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZTRcIjtcbn1cbmkuaWNvbi50ZWxldmlzaW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjZjXCI7XG59XG5pLmljb24udGV4dC5jdXJzb3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDZcIjtcbn1cbmkuaWNvbi50ZXh0LnRlbGVwaG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlNFwiO1xufVxuaS5pY29uLnRoZW1lLmlzbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYjJcIjtcbn1cbmkuaWNvbi50aGVtZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA0M1wiO1xufVxuaS5pY29uLnRoZXJtb21ldGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmM3XCI7XG59XG5pLmljb24udGh1bWIudGFjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4ZFwiO1xufVxuaS5pY29uLnRpbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTdcIjtcbn1cbmkuaWNvbi50bTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1Y1wiO1xufVxuaS5pY29uLnRvZ2dsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUwXCI7XG59XG5pLmljb24udG9nZ2xlLmxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTFcIjtcbn1cbmkuaWNvbi50b2dnbGUucmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTJcIjtcbn1cbmkuaWNvbi50b2dnbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTFcIjtcbn1cbmkuaWNvbi50cmFuc2xhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWJcIjtcbn1cbmkuaWNvbi50cmF2ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYjFcIjtcbn1cbmkuaWNvbi50cmVhdG1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjFcIjtcbn1cbmkuaWNvbi50cmlhbmdsZS5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGQ3XCI7XG59XG5pLmljb24udHJpYW5nbGUubGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkOVwiO1xufVxuaS5pY29uLnRyaWFuZ2xlLnJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG59XG5pLmljb24udHJpYW5nbGUudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDhcIjtcbn1cbmkuaWNvbi50cnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTVcIjtcbn1cbmkuaWNvbi51bmhpZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNmVcIjtcbn1cbmkuaWNvbi51bmxpbmtpZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMjdcIjtcbn1cbmkuaWNvbi51bm11dGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMzBcIjtcbn1cbmkuaWNvbi51c2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTVcIjtcbn1cbmkuaWNvbi51c2VyLmNhbmNlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNVwiO1xufVxuaS5pY29uLnVzZXIuY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyMzVcIjtcbn1cbmkuaWNvbi51c2VyLmRlbGV0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNVwiO1xufVxuaS5pY29uLnVzZXIueDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzNVwiO1xufVxuaS5pY29uLnZjYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmJiXCI7XG59XG5pLmljb24udmlkZW8uY2FtZXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNkXCI7XG59XG5pLmljb24udmlkZW8ucGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NFwiO1xufVxuaS5pY29uLnZpc2EuY2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmMFwiO1xufVxuaS5pY29uLnZpc2E6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZjBcIjtcbn1cbmkuaWNvbi52b2x1bWUuY29udHJvbC5waG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJhMFwiO1xufVxuaS5pY29uLndhaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMTdcIjtcbn1cbmkuaWNvbi53YXJuaW5nLmNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA2YVwiO1xufVxuaS5pY29uLndhcm5pbmcuc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA3MVwiO1xufVxuaS5pY29uLndhcm5pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMmFcIjtcbn1cbmkuaWNvbi53ZWNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxZDdcIjtcbn1cbmkuaWNvbi53aS1maTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFlYlwiO1xufVxuaS5pY29uLndpa2lwZWRpYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI2NlwiO1xufVxuaS5pY29uLndpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5MVwiO1xufVxuaS5pY29uLndpemFyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBkMFwiO1xufVxuaS5pY29uLndvbWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjIxXCI7XG59XG5pLmljb24ud29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTU5XCI7XG59XG5pLmljb24ud29yZHByZXNzLmJlZ2lubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk3XCI7XG59XG5pLmljb24ud29yZHByZXNzLmZvcm1zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjk4XCI7XG59XG5pLmljb24ud29ybGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYWNcIjtcbn1cbmkuaWNvbi53cml0ZS5zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGJcIjtcbn1cbmkuaWNvbi54OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDBkXCI7XG59XG5pLmljb24ueWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyM2JcIjtcbn1cbmkuaWNvbi55Y29tYmluYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjIzYlwiO1xufVxuaS5pY29uLnllbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE1N1wiO1xufVxuaS5pY29uLnppcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4N1wiO1xufVxuaS5pY29uLnpvb20taW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGVcIjtcbn1cbmkuaWNvbi56b29tLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxMFwiO1xufVxuaS5pY29uLnpvb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGVcIjtcbn1cbmkuaWNvbi5iaXRidWNrZXQuc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTcxXCI7XG59XG5pLmljb24uY2hlY2ttYXJrLmJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0YVwiO1xufVxuaS5pY29uLmNpcmNsZS50aGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTExXCI7XG59XG5pLmljb24uY2xvdWQuZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODFcIjtcbn1cbmkuaWNvbi5jbG91ZC51cGxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzODJcIjtcbn1cbmkuaWNvbi5jb21wb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XG59XG5pLmljb24uY29udmVyc2F0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDg2XCI7XG59XG5pLmljb24uY3JlZGl0LmNhcmQuYWx0ZXJuYXRpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWRcIjtcbn1cbmkuaWNvbi5jdXJyZW5jeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMVwiO1xufVxuaS5pY29uLmRhc2hib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZFwiO1xufVxuaS5pY29uLmRpYW1vbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTVcIjtcbn1cbmkuaWNvbi5kaXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEwXCI7XG59XG5pLmljb24uZXhjaGFuZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzNjJcIjtcbn1cbmkuaWNvbi5leHRlcm5hbC5zaGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0ZFwiO1xufVxuaS5pY29uLmV4dGVybmFsLnNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM2MFwiO1xufVxuaS5pY29uLmV4dGVybmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVkXCI7XG59XG5pLmljb24uZmFjZWJvb2sub2ZmaWNpYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODJcIjtcbn1cbmkuaWNvbi5mb29kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmU3XCI7XG59XG5pLmljb24uaG91cmdsYXNzLnplcm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTNcIjtcbn1cbmkuaWNvbi5sZXZlbC5kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2JlXCI7XG59XG5pLmljb24ubGV2ZWwudXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYmZcIjtcbn1cbmkuaWNvbi5sb2dvdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZjVcIjtcbn1cbmkuaWNvbi5tZWFucGF0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjOFwiO1xufVxuaS5pY29uLm1vbmV5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmM2QxXCI7XG59XG5pLmljb24ubW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBiMlwiO1xufVxuaS5pY29uLnBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjMwM1wiO1xufVxuaS5pY29uLnByb3RlY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMjNcIjtcbn1cbmkuaWNvbi5yYWRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MlwiO1xufVxuaS5pY29uLnJlbW92ZS5ib29rbWFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZVwiO1xufVxuaS5pY29uLnJlc2l6ZS5ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM3XCI7XG59XG5pLmljb24ucmVzaXplLnZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzM4XCI7XG59XG5pLmljb24uc2lnbi1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJmNlwiO1xufVxuaS5pY29uLnNpZ24tb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmY1XCI7XG59XG5pLmljb24uc3Bvb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZTVcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGYuZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODlcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGYuZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuaS5pY29uLnRpY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNmZlwiO1xufVxuaS5pY29uLnRpbWVzLnJlY3RhbmdsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjQxMFwiO1xufVxuaS5pY29uLndyaXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzAzXCI7XG59XG5pLmljb24ueW91dHViZS5wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY3XCI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBPdXRsaW5lIEljb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogT3V0bGluZSBJY29uICovXG4vKiBMb2FkICYgRGVmaW5lIEljb24gRm9udCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnb3V0bGluZS1pY29ucyc7XG4gIHNyYzogdXJsKFwiL2Fzc2V0cy9mb250cy9vdXRsaW5lLWljb25zLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybChcIi9hc3NldHMvZm9udHMvb3V0bGluZS1pY29ucy53b2ZmMlwiKSBmb3JtYXQoJ3dvZmYyJyksIHVybChcIi9hc3NldHMvZm9udHMvb3V0bGluZS1pY29ucy53b2ZmXCIpIGZvcm1hdCgnd29mZicpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL291dGxpbmUtaWNvbnMudHRmXCIpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9vdXRsaW5lLWljb25zLnN2ZyNpY29uc1wiKSBmb3JtYXQoJ3N2ZycpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuaS5pY29uLm91dGxpbmUge1xuICBmb250LWZhbWlseTogJ291dGxpbmUtaWNvbnMnO1xufVxuLyogSWNvbiBEZWZpbml0aW9ucyAqL1xuaS5pY29uLmFkZHJlc3MuYm9vay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI5XCI7XG59XG5pLmljb24uYWRkcmVzcy5jYXJkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYmJcIjtcbn1cbmkuaWNvbi5hcnJvdy5hbHRlcm5hdGUuY2lyY2xlLmRvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjM1OFwiO1xufVxuaS5pY29uLmFycm93LmFsdGVybmF0ZS5jaXJjbGUubGVmdC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzU5XCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS5yaWdodC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzVhXCI7XG59XG5pLmljb24uYXJyb3cuYWx0ZXJuYXRlLmNpcmNsZS51cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzViXCI7XG59XG5pLmljb24uYmVsbC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGYzXCI7XG59XG5pLmljb24uYmVsbC5zbGFzaC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWY2XCI7XG59XG5pLmljb24uYm9va21hcmsub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAyZVwiO1xufVxuaS5pY29uLmJ1aWxkaW5nLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYWRcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTMzXCI7XG59XG5pLmljb24uY2FsZW5kYXIuYWx0ZXJuYXRlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzNcIjtcbn1cbmkuaWNvbi5jYWxlbmRhci5jaGVjay5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjc0XCI7XG59XG5pLmljb24uY2FsZW5kYXIubWludXMub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MlwiO1xufVxuaS5pY29uLmNhbGVuZGFyLnBsdXMub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3MVwiO1xufVxuaS5pY29uLmNhbGVuZGFyLnRpbWVzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzNcIjtcbn1cbmkuaWNvbi5jYXJldC5zcXVhcmUuZG93bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUwXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLmxlZnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE5MVwiO1xufVxuaS5pY29uLmNhcmV0LnNxdWFyZS5yaWdodC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTUyXCI7XG59XG5pLmljb24uY2FyZXQuc3F1YXJlLnVwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNTFcIjtcbn1cbmkuaWNvbi5jaGFydC5iYXIub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4MFwiO1xufVxuaS5pY29uLmNoZWNrLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDU4XCI7XG59XG5pLmljb24uY2hlY2suc3F1YXJlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGFcIjtcbn1cbmkuaWNvbi5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuaS5pY29uLmNsaXBib2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMzI4XCI7XG59XG5pLmljb24uY2xvY2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAxN1wiO1xufVxuaS5pY29uLmNsb25lLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNGRcIjtcbn1cbmkuaWNvbi5jbG9zZWQuY2FwdGlvbmluZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjBhXCI7XG59XG5pLmljb24uY29tbWVudC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDc1XCI7XG59XG5pLmljb24uY29tbWVudC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI3YVwiO1xufVxuaS5pY29uLmNvbW1lbnRzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwODZcIjtcbn1cbmkuaWNvbi5jb21wYXNzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNGVcIjtcbn1cbmkuaWNvbi5jb3B5Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzVcIjtcbn1cbmkuaWNvbi5jb3B5cmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFmOVwiO1xufVxuaS5pY29uLmNyZWRpdC5jYXJkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwOWRcIjtcbn1cbmkuaWNvbi5kb3QuY2lyY2xlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxOTJcIjtcbn1cbmkuaWNvbi5lZGl0Lm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNDRcIjtcbn1cbmkuaWNvbi5lbnZlbG9wZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGUwXCI7XG59XG5pLmljb24uZW52ZWxvcGUub3Blbi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmI2XCI7XG59XG5pLmljb24uZXllLnNsYXNoLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwNzBcIjtcbn1cbmkuaWNvbi5maWxlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNWJcIjtcbn1cbmkuaWNvbi5maWxlLmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTVjXCI7XG59XG5pLmljb24uZmlsZS5hcmNoaXZlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzZcIjtcbn1cbmkuaWNvbi5maWxlLmF1ZGlvLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzdcIjtcbn1cbmkuaWNvbi5maWxlLmNvZGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjOVwiO1xufVxuaS5pY29uLmZpbGUuZXhjZWwub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjM1wiO1xufVxuaS5pY29uLmZpbGUuaW1hZ2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNVwiO1xufVxuaS5pY29uLmZpbGUucGRmLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxYzFcIjtcbn1cbmkuaWNvbi5maWxlLnBvd2VycG9pbnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjNFwiO1xufVxuaS5pY29uLmZpbGUudmlkZW8ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFjOFwiO1xufVxuaS5pY29uLmZpbGUud29yZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWMyXCI7XG59XG5pLmljb24uZmxhZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDI0XCI7XG59XG5pLmljb24uZm9sZGVyLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwN2JcIjtcbn1cbmkuaWNvbi5mb2xkZXIub3Blbi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDdjXCI7XG59XG5pLmljb24uZnJvd24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOVwiO1xufVxuaS5pY29uLmZ1dGJvbC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWUzXCI7XG59XG5pLmljb24uZ2VtLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzYTVcIjtcbn1cbmkuaWNvbi5oYW5kLmxpemFyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU4XCI7XG59XG5pLmljb24uaGFuZC5wYXBlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjU2XCI7XG59XG5pLmljb24uaGFuZC5wZWFjZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjViXCI7XG59XG5pLmljb24uaGFuZC5wb2ludC5kb3duLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYTdcIjtcbn1cbmkuaWNvbi5oYW5kLnBvaW50LmxlZnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNVwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQucmlnaHQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNFwiO1xufVxuaS5pY29uLmhhbmQucG9pbnQudXAub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhNlwiO1xufVxuaS5pY29uLmhhbmQucG9pbnRlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjVhXCI7XG59XG5pLmljb24uaGFuZC5yb2NrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTVcIjtcbn1cbmkuaWNvbi5oYW5kLnNjaXNzb3JzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTdcIjtcbn1cbmkuaWNvbi5oYW5kLnNwb2NrLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNTlcIjtcbn1cbmkuaWNvbi5oYW5kc2hha2Uub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiNVwiO1xufVxuaS5pY29uLmhkZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGEwXCI7XG59XG5pLmljb24uaGVhcnQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjAwNFwiO1xufVxuaS5pY29uLmhvc3BpdGFsLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZjhcIjtcbn1cbmkuaWNvbi5ob3VyZ2xhc3Mub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1NFwiO1xufVxuaS5pY29uLmlkLmJhZGdlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzFcIjtcbn1cbmkuaWNvbi5pZC5jYXJkLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyYzJcIjtcbn1cbmkuaWNvbi5pbWFnZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDNlXCI7XG59XG5pLmljb24uaW1hZ2VzLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYzMDJcIjtcbn1cbmkuaWNvbi5rZXlib2FyZC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFjXCI7XG59XG5pLmljb24ubGVtb24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA5NFwiO1xufVxuaS5pY29uLmxpZmUucmluZy5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWNkXCI7XG59XG5pLmljb24ubGlnaHRidWxiLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZWJcIjtcbn1cbmkuaWNvbi5saXN0LmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDIyXCI7XG59XG5pLmljb24ubWFwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNzlcIjtcbn1cbmkuaWNvbi5tZWgub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExYVwiO1xufVxuaS5pY29uLm1pbnVzLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTQ2XCI7XG59XG5pLmljb24ubW9uZXkuYmlsbC5hbHRlcm5hdGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjNkMVwiO1xufVxuaS5pY29uLm1vb24ub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE4NlwiO1xufVxuaS5pY29uLm5ld3NwYXBlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMWVhXCI7XG59XG5pLmljb24ub2JqZWN0Lmdyb3VwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDdcIjtcbn1cbmkuaWNvbi5vYmplY3QudW5ncm91cC5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjQ4XCI7XG59XG5pLmljb24ucGFwZXIucGxhbmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjFkOFwiO1xufVxuaS5pY29uLnBhdXNlLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhiXCI7XG59XG5pLmljb24ucGxheS5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjE0NFwiO1xufVxuaS5pY29uLnBsdXMuc3F1YXJlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZmVcIjtcbn1cbmkuaWNvbi5xdWVzdGlvbi5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1OVwiO1xufVxuaS5pY29uLnJlZ2lzdGVyZWQub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjI1ZFwiO1xufVxuaS5pY29uLnNhdmUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBjN1wiO1xufVxuaS5pY29uLnNoYXJlLnNxdWFyZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTRkXCI7XG59XG5pLmljb24uc21pbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExOFwiO1xufVxuaS5pY29uLnNub3dmbGFrZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmRjXCI7XG59XG5pLmljb24uc3F1YXJlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwYzhcIjtcbn1cbmkuaWNvbi5zdGFyLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMDVcIjtcbn1cbmkuaWNvbi5zdGFyLmhhbGYub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuaS5pY29uLnN0aWNreS5ub3RlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyNDlcIjtcbn1cbmkuaWNvbi5zdG9wLmNpcmNsZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMjhkXCI7XG59XG5pLmljb24uc3VuLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxODVcIjtcbn1cbmkuaWNvbi50aHVtYnMuZG93bi5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTY1XCI7XG59XG5pLmljb24udGh1bWJzLnVwLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxNjRcIjtcbn1cbmkuaWNvbi50aW1lcy5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA1N1wiO1xufVxuaS5pY29uLnRyYXNoLmFsdGVybmF0ZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMmVkXCI7XG59XG5pLmljb24udXNlci5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA3XCI7XG59XG5pLmljb24udXNlci5jaXJjbGUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJiZFwiO1xufVxuaS5pY29uLndpbmRvdy5jbG9zZS5vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmNDEwXCI7XG59XG5pLmljb24ud2luZG93Lm1heGltaXplLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDBcIjtcbn1cbmkuaWNvbi53aW5kb3cubWluaW1pemUub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjJkMVwiO1xufVxuaS5pY29uLndpbmRvdy5yZXN0b3JlLm91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYyZDJcIjtcbn1cbi8qIE91dGxpbmUgQWxpYXNlcyAqL1xuaS5pY29uLmRpc2sub3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjBhMFwiO1xufVxuaS5pY29uLmhlYXJ0LmVtcHR5LFxuaS5pY29uLnN0YXIuZW1wdHkge1xuICBmb250LWZhbWlseTogJ291dGxpbmUtaWNvbnMnO1xufVxuaS5pY29uLmhlYXJ0LmVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMDA0XCI7XG59XG5pLmljb24uc3Rhci5lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjA4OVwiO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQnJhbmQgSWNvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMb2FkICYgRGVmaW5lIEJyYW5kIEZvbnQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2JyYW5kLWljb25zJztcbiAgc3JjOiB1cmwoXCIvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCIvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLndvZmYyXCIpIGZvcm1hdCgnd29mZjInKSwgdXJsKFwiL2Fzc2V0cy9mb250cy9icmFuZC1pY29ucy53b2ZmXCIpIGZvcm1hdCgnd29mZicpLCB1cmwoXCIvYXNzZXRzL2ZvbnRzL2JyYW5kLWljb25zLnR0ZlwiKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChcIi9hc3NldHMvZm9udHMvYnJhbmQtaWNvbnMuc3ZnI2ljb25zXCIpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4vKiBCcmFuZCBJY29uIEZvbnQgRmFtaWx5ICovXG5pLmljb24uXFwzNSAwMHB4LFxuaS5pY29uLmFjY2Vzc2libGUuaWNvbixcbmkuaWNvbi5hY2N1c29mdCxcbmkuaWNvbi5hZG4sXG5pLmljb24uYWR2ZXJzYWwsXG5pLmljb24uYWZmaWxpYXRldGhlbWUsXG5pLmljb24uYWxnb2xpYSxcbmkuaWNvbi5hbWF6b24sXG5pLmljb24uYW1hem9uLnBheSxcbmkuaWNvbi5hbWlsaWEsXG5pLmljb24uYW5kcm9pZCxcbmkuaWNvbi5hbmdlbGxpc3QsXG5pLmljb24uYW5ncnljcmVhdGl2ZSxcbmkuaWNvbi5hbmd1bGFyLFxuaS5pY29uLmFwcC5zdG9yZSxcbmkuaWNvbi5hcHAuc3RvcmUuaW9zLFxuaS5pY29uLmFwcGVyLFxuaS5pY29uLmFwcGxlLFxuaS5pY29uLmFwcGxlLnBheSxcbmkuaWNvbi5hc3ltbWV0cmlrLFxuaS5pY29uLmF1ZGlibGUsXG5pLmljb24uYXV0b3ByZWZpeGVyLFxuaS5pY29uLmF2aWFuZXgsXG5pLmljb24uYXZpYXRvLFxuaS5pY29uLmF3cyxcbmkuaWNvbi5iYW5kY2FtcCxcbmkuaWNvbi5iZWhhbmNlLFxuaS5pY29uLmJlaGFuY2Uuc3F1YXJlLFxuaS5pY29uLmJpbW9iamVjdCxcbmkuaWNvbi5iaXRidWNrZXQsXG5pLmljb24uYml0Y29pbixcbmkuaWNvbi5iaXR5LFxuaS5pY29uLmJsYWNrLnRpZSxcbmkuaWNvbi5ibGFja2JlcnJ5LFxuaS5pY29uLmJsb2dnZXIsXG5pLmljb24uYmxvZ2dlci5iLFxuaS5pY29uLmJsdWV0b290aCxcbmkuaWNvbi5ibHVldG9vdGguYixcbmkuaWNvbi5idGMsXG5pLmljb24uYnVyb21vYmVsZXhwZXJ0ZSxcbmkuaWNvbi5idXlzZWxsYWRzLFxuaS5pY29uLmNjLmFtYXpvbi5wYXksXG5pLmljb24uY2MuYW1leCxcbmkuaWNvbi5jYy5hcHBsZS5wYXksXG5pLmljb24uY2MuZGluZXJzLmNsdWIsXG5pLmljb24uY2MuZGlzY292ZXIsXG5pLmljb24uY2MuamNiLFxuaS5pY29uLmNjLm1hc3RlcmNhcmQsXG5pLmljb24uY2MucGF5cGFsLFxuaS5pY29uLmNjLnN0cmlwZSxcbmkuaWNvbi5jYy52aXNhLFxuaS5pY29uLmNlbnRlcmNvZGUsXG5pLmljb24uY2hyb21lLFxuaS5pY29uLmNsb3Vkc2NhbGUsXG5pLmljb24uY2xvdWRzbWl0aCxcbmkuaWNvbi5jbG91ZHZlcnNpZnksXG5pLmljb24uY29kZXBlbixcbmkuaWNvbi5jb2RpZXBpZSxcbmkuaWNvbi5jb25uZWN0ZGV2ZWxvcCxcbmkuaWNvbi5jb250YW8sXG5pLmljb24uY3BhbmVsLFxuaS5pY29uLmNyZWF0aXZlLmNvbW1vbnMsXG5pLmljb24uY3NzMyxcbmkuaWNvbi5jc3MzLmFsdGVybmF0ZSxcbmkuaWNvbi5jdXR0bGVmaXNoLFxuaS5pY29uLmQuYW5kLmQsXG5pLmljb24uZGFzaGN1YmUsXG5pLmljb24uZGVsaWNpb3VzLFxuaS5pY29uLmRlcGxveWRvZyxcbmkuaWNvbi5kZXNrcHJvLFxuaS5pY29uLmRldmlhbnRhcnQsXG5pLmljb24uZGlnZyxcbmkuaWNvbi5kaWdpdGFsLm9jZWFuLFxuaS5pY29uLmRpc2NvcmQsXG5pLmljb24uZGlzY291cnNlLFxuaS5pY29uLmRvY2h1YixcbmkuaWNvbi5kb2NrZXIsXG5pLmljb24uZHJhZnQyZGlnaXRhbCxcbmkuaWNvbi5kcmliYmJsZSxcbmkuaWNvbi5kcmliYmJsZS5zcXVhcmUsXG5pLmljb24uZHJvcGJveCxcbmkuaWNvbi5kcnVwYWwsXG5pLmljb24uZHlhbG9nLFxuaS5pY29uLmVhcmx5YmlyZHMsXG5pLmljb24uZWRnZSxcbmkuaWNvbi5lbGVtZW50b3IsXG5pLmljb24uZW1iZXIsXG5pLmljb24uZW1waXJlLFxuaS5pY29uLmVudmlyYSxcbmkuaWNvbi5lcmxhbmcsXG5pLmljb24uZXRoZXJldW0sXG5pLmljb24uZXRzeSxcbmkuaWNvbi5leHBlZGl0ZWRzc2wsXG5pLmljb24uZmFjZWJvb2ssXG5pLmljb24uZmFjZWJvb2suZixcbmkuaWNvbi5mYWNlYm9vay5tZXNzZW5nZXIsXG5pLmljb24uZmFjZWJvb2suc3F1YXJlLFxuaS5pY29uLmZpcmVmb3gsXG5pLmljb24uZmlyc3Qub3JkZXIsXG5pLmljb24uZmlyc3RkcmFmdCxcbmkuaWNvbi5mbGlja3IsXG5pLmljb24uZmxpcGJvYXJkLFxuaS5pY29uLmZseSxcbmkuaWNvbi5mb250LmF3ZXNvbWUsXG5pLmljb24uZm9udC5hd2Vzb21lLmFsdGVybmF0ZSxcbmkuaWNvbi5mb250LmF3ZXNvbWUuZmxhZyxcbmkuaWNvbi5mb250aWNvbnMsXG5pLmljb24uZm9udGljb25zLmZpLFxuaS5pY29uLmZvcnQuYXdlc29tZSxcbmkuaWNvbi5mb3J0LmF3ZXNvbWUuYWx0ZXJuYXRlLFxuaS5pY29uLmZvcnVtYmVlLFxuaS5pY29uLmZvdXJzcXVhcmUsXG5pLmljb24uZnJlZS5jb2RlLmNhbXAsXG5pLmljb24uZnJlZWJzZCxcbmkuaWNvbi5nZXQucG9ja2V0LFxuaS5pY29uLmdnLFxuaS5pY29uLmdnLmNpcmNsZSxcbmkuaWNvbi5naXQsXG5pLmljb24uZ2l0LnNxdWFyZSxcbmkuaWNvbi5naXRodWIsXG5pLmljb24uZ2l0aHViLmFsdGVybmF0ZSxcbmkuaWNvbi5naXRodWIuc3F1YXJlLFxuaS5pY29uLmdpdGtyYWtlbixcbmkuaWNvbi5naXRsYWIsXG5pLmljb24uZ2l0dGVyLFxuaS5pY29uLmdsaWRlLFxuaS5pY29uLmdsaWRlLmcsXG5pLmljb24uZ29mb3JlLFxuaS5pY29uLmdvb2RyZWFkcyxcbmkuaWNvbi5nb29kcmVhZHMuZyxcbmkuaWNvbi5nb29nbGUsXG5pLmljb24uZ29vZ2xlLmRyaXZlLFxuaS5pY29uLmdvb2dsZS5wbGF5LFxuaS5pY29uLmdvb2dsZS5wbHVzLFxuaS5pY29uLmdvb2dsZS5wbHVzLmcsXG5pLmljb24uZ29vZ2xlLnBsdXMuc3F1YXJlLFxuaS5pY29uLmdvb2dsZS53YWxsZXQsXG5pLmljb24uZ3JhdGlwYXksXG5pLmljb24uZ3JhdixcbmkuaWNvbi5ncmlwZmlyZSxcbmkuaWNvbi5ncnVudCxcbmkuaWNvbi5ndWxwLFxuaS5pY29uLmhhY2tlci5uZXdzLFxuaS5pY29uLmhhY2tlci5uZXdzLnNxdWFyZSxcbmkuaWNvbi5oaXBzLFxuaS5pY29uLmhpcmUuYS5oZWxwZXIsXG5pLmljb24uaG9vbGksXG5pLmljb24uaG90amFyLFxuaS5pY29uLmhvdXp6LFxuaS5pY29uLmh0bWw1LFxuaS5pY29uLmh1YnNwb3QsXG5pLmljb24uaW1kYixcbmkuaWNvbi5pbnN0YWdyYW0sXG5pLmljb24uaW50ZXJuZXQuZXhwbG9yZXIsXG5pLmljb24uaW94aG9zdCxcbmkuaWNvbi5pdHVuZXMsXG5pLmljb24uaXR1bmVzLm5vdGUsXG5pLmljb24uamVua2lucyxcbmkuaWNvbi5qb2dldCxcbmkuaWNvbi5qb29tbGEsXG5pLmljb24uanMsXG5pLmljb24uanMuc3F1YXJlLFxuaS5pY29uLmpzZmlkZGxlLFxuaS5pY29uLmtleWNkbixcbmkuaWNvbi5raWNrc3RhcnRlcixcbmkuaWNvbi5raWNrc3RhcnRlci5rLFxuaS5pY29uLmtvcnZ1ZSxcbmkuaWNvbi5sYXJhdmVsLFxuaS5pY29uLmxhc3RmbSxcbmkuaWNvbi5sYXN0Zm0uc3F1YXJlLFxuaS5pY29uLmxlYW5wdWIsXG5pLmljb24ubGVzcyxcbmkuaWNvbi5saW5lY2hhdCxcbmkuaWNvbi5saW5rZWRpbixcbmkuaWNvbi5saW5rZWRpbi5hbHRlcm5hdGUsXG5pLmljb24ubGlua2VkaW4uaW4sXG5pLmljb24ubGlub2RlLFxuaS5pY29uLmxpbnV4LFxuaS5pY29uLmx5ZnQsXG5pLmljb24ubWFnZW50byxcbmkuaWNvbi5tYXhjZG4sXG5pLmljb24ubWVkYXBwcyxcbmkuaWNvbi5tZWRpdW0sXG5pLmljb24ubWVkaXVtLm0sXG5pLmljb24ubWVkcnQsXG5pLmljb24ubWVldHVwLFxuaS5pY29uLm1pY3Jvc29mdCxcbmkuaWNvbi5taXgsXG5pLmljb24ubWl4Y2xvdWQsXG5pLmljb24ubWl6dW5pLFxuaS5pY29uLm1vZHgsXG5pLmljb24ubW9uZXJvLFxuaS5pY29uLm5hcHN0ZXIsXG5pLmljb24ubmludGVuZG8uc3dpdGNoLFxuaS5pY29uLm5vZGUsXG5pLmljb24ubm9kZS5qcyxcbmkuaWNvbi5ucG0sXG5pLmljb24ubnM4LFxuaS5pY29uLm51dHJpdGlvbml4LFxuaS5pY29uLm9kbm9rbGFzc25pa2ksXG5pLmljb24ub2Rub2tsYXNzbmlraS5zcXVhcmUsXG5pLmljb24ub3BlbmNhcnQsXG5pLmljb24ub3BlbmlkLFxuaS5pY29uLm9wZXJhLFxuaS5pY29uLm9wdGluLm1vbnN0ZXIsXG5pLmljb24ub3NpLFxuaS5pY29uLnBhZ2U0LFxuaS5pY29uLnBhZ2VsaW5lcyxcbmkuaWNvbi5wYWxmZWQsXG5pLmljb24ucGF0cmVvbixcbmkuaWNvbi5wYXlwYWwsXG5pLmljb24ucGVyaXNjb3BlLFxuaS5pY29uLnBoYWJyaWNhdG9yLFxuaS5pY29uLnBob2VuaXguZnJhbWV3b3JrLFxuaS5pY29uLnBocCxcbmkuaWNvbi5waWVkLnBpcGVyLFxuaS5pY29uLnBpZWQucGlwZXIuYWx0ZXJuYXRlLFxuaS5pY29uLnBpZWQucGlwZXIucHAsXG5pLmljb24ucGludGVyZXN0LFxuaS5pY29uLnBpbnRlcmVzdC5wLFxuaS5pY29uLnBpbnRlcmVzdC5zcXVhcmUsXG5pLmljb24ucGxheXN0YXRpb24sXG5pLmljb24ucHJvZHVjdC5odW50LFxuaS5pY29uLnB1c2hlZCxcbmkuaWNvbi5weXRob24sXG5pLmljb24ucXEsXG5pLmljb24ucXVpbnNjYXBlLFxuaS5pY29uLnF1b3JhLFxuaS5pY29uLnJhdmVscnksXG5pLmljb24ucmVhY3QsXG5pLmljb24ucmViZWwsXG5pLmljb24ucmVkcml2ZXIsXG5pLmljb24ucmVkZGl0LFxuaS5pY29uLnJlZGRpdC5hbGllbixcbmkuaWNvbi5yZWRkaXQuc3F1YXJlLFxuaS5pY29uLnJlbmRhY3QsXG5pLmljb24ucmVucmVuLFxuaS5pY29uLnJlcGx5ZCxcbmkuaWNvbi5yZXNvbHZpbmcsXG5pLmljb24ucm9ja2V0Y2hhdCxcbmkuaWNvbi5yb2Nrcm1zLFxuaS5pY29uLnNhZmFyaSxcbmkuaWNvbi5zYXNzLFxuaS5pY29uLnNjaGxpeCxcbmkuaWNvbi5zY3JpYmQsXG5pLmljb24uc2VhcmNoZW5naW4sXG5pLmljb24uc2VsbGNhc3QsXG5pLmljb24uc2VsbHN5LFxuaS5pY29uLnNlcnZpY2VzdGFjayxcbmkuaWNvbi5zaGlydHNpbmJ1bGssXG5pLmljb24uc2ltcGx5YnVpbHQsXG5pLmljb24uc2lzdHJpeCxcbmkuaWNvbi5za3lhdGxhcyxcbmkuaWNvbi5za3lwZSxcbmkuaWNvbi5zbGFjayxcbmkuaWNvbi5zbGFjay5oYXNoLFxuaS5pY29uLnNsaWRlc2hhcmUsXG5pLmljb24uc25hcGNoYXQsXG5pLmljb24uc25hcGNoYXQuZ2hvc3QsXG5pLmljb24uc25hcGNoYXQuc3F1YXJlLFxuaS5pY29uLnNvdW5kY2xvdWQsXG5pLmljb24uc3BlYWthcCxcbmkuaWNvbi5zcG90aWZ5LFxuaS5pY29uLnN0YWNrLmV4Y2hhbmdlLFxuaS5pY29uLnN0YWNrLm92ZXJmbG93LFxuaS5pY29uLnN0YXlsaW5rZWQsXG5pLmljb24uc3RlYW0sXG5pLmljb24uc3RlYW0uc3F1YXJlLFxuaS5pY29uLnN0ZWFtLnN5bWJvbCxcbmkuaWNvbi5zdGlja2VyLm11bGUsXG5pLmljb24uc3RyYXZhLFxuaS5pY29uLnN0cmlwZSxcbmkuaWNvbi5zdHJpcGUucyxcbmkuaWNvbi5zdHVkaW92aW5hcmksXG5pLmljb24uc3R1bWJsZXVwb24sXG5pLmljb24uc3R1bWJsZXVwb24uY2lyY2xlLFxuaS5pY29uLnN1cGVycG93ZXJzLFxuaS5pY29uLnN1cHBsZSxcbmkuaWNvbi50ZWxlZ3JhbSxcbmkuaWNvbi50ZWxlZ3JhbS5wbGFuZSxcbmkuaWNvbi50ZW5jZW50LndlaWJvLFxuaS5pY29uLnRoZW1laXNsZSxcbmkuaWNvbi50cmVsbG8sXG5pLmljb24udHJpcGFkdmlzb3IsXG5pLmljb24udHVtYmxyLFxuaS5pY29uLnR1bWJsci5zcXVhcmUsXG5pLmljb24udHdpdGNoLFxuaS5pY29uLnR3aXR0ZXIsXG5pLmljb24udHdpdHRlci5zcXVhcmUsXG5pLmljb24udHlwbzMsXG5pLmljb24udWJlcixcbmkuaWNvbi51aWtpdCxcbmkuaWNvbi51bmlyZWdpc3RyeSxcbmkuaWNvbi51bnRhcHBkLFxuaS5pY29uLnVzYixcbmkuaWNvbi51c3N1bm5haCxcbmkuaWNvbi52YWFkaW4sXG5pLmljb24udmlhY29pbixcbmkuaWNvbi52aWFkZW8sXG5pLmljb24udmlhZGVvLnNxdWFyZSxcbmkuaWNvbi52aWJlcixcbmkuaWNvbi52aW1lbyxcbmkuaWNvbi52aW1lby5zcXVhcmUsXG5pLmljb24udmltZW8udixcbmkuaWNvbi52aW5lLFxuaS5pY29uLnZrLFxuaS5pY29uLnZudixcbmkuaWNvbi52dWVqcyxcbmkuaWNvbi53ZWNoYXQsXG5pLmljb24ud2VpYm8sXG5pLmljb24ud2VpeGluLFxuaS5pY29uLndoYXRzYXBwLFxuaS5pY29uLndoYXRzYXBwLnNxdWFyZSxcbmkuaWNvbi53aG1jcyxcbmkuaWNvbi53aWtpcGVkaWEudyxcbmkuaWNvbi53aW5kb3dzLFxuaS5pY29uLndvcmRwcmVzcyxcbmkuaWNvbi53b3JkcHJlc3Muc2ltcGxlLFxuaS5pY29uLndwYmVnaW5uZXIsXG5pLmljb24ud3BleHBsb3JlcixcbmkuaWNvbi53cGZvcm1zLFxuaS5pY29uLnhib3gsXG5pLmljb24ueGluZyxcbmkuaWNvbi54aW5nLnNxdWFyZSxcbmkuaWNvbi55LmNvbWJpbmF0b3IsXG5pLmljb24ueWFob28sXG5pLmljb24ueWFuZGV4LFxuaS5pY29uLnlhbmRleC5pbnRlcm5hdGlvbmFsLFxuaS5pY29uLnllbHAsXG5pLmljb24ueW9hc3QsXG5pLmljb24ueW91dHViZSxcbmkuaWNvbi55b3V0dWJlLnNxdWFyZSB7XG4gIGZvbnQtZmFtaWx5OiAnYnJhbmQtaWNvbnMnO1xufVxuLyogQnJhbmQgSWNvbnMgSWRlYWxseSBXb3VsZCBCZSBEZWZpbmVkIEhlcmUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEltYWdlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW1hZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXZhdGFyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGFjZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFNpemUgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW1hZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXZhdGFyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTcGFjZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIFNpemUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEltYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5pbWcudWkuaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5pbWFnZSBzdmcsXG4udWkuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5oaWRkZW4uaW1hZ2VzLFxuLnVpLmhpZGRlbi5pbWFnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuaGlkZGVuLnRyYW5zaXRpb24uaW1hZ2VzLFxuLnVpLmhpZGRlbi50cmFuc2l0aW9uLmltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pbWFnZXMgPiAuaGlkZGVuLnRyYW5zaXRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5kaXNhYmxlZC5pbWFnZXMsXG4udWkuZGlzYWJsZWQuaW1hZ2Uge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIElubGluZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbmxpbmUuaW1hZ2UsXG4udWkuaW5saW5lLmltYWdlIHN2Zyxcbi51aS5pbmxpbmUuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmVydGljYWwgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudG9wLmFsaWduZWQuaW1hZ2VzIC5pbWFnZSxcbi51aS50b3AuYWxpZ25lZC5pbWFnZSxcbi51aS50b3AuYWxpZ25lZC5pbWFnZSBzdmcsXG4udWkudG9wLmFsaWduZWQuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlcyAuaW1hZ2UsXG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2UsXG4udWkubWlkZGxlLmFsaWduZWQuaW1hZ2Ugc3ZnLFxuLnVpLm1pZGRsZS5hbGlnbmVkLmltYWdlIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZXMgLmltYWdlLFxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlLFxuLnVpLmJvdHRvbS5hbGlnbmVkLmltYWdlIHN2Zyxcbi51aS5ib3R0b20uYWxpZ25lZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJvdW5kZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucm91bmRlZC5pbWFnZXMgLmltYWdlLFxuLnVpLnJvdW5kZWQuaW1hZ2UsXG4udWkucm91bmRlZC5pbWFnZXMgLmltYWdlID4gKixcbi51aS5yb3VuZGVkLmltYWdlID4gKiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzEyNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlcmVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJvcmRlcmVkLmltYWdlcyAuaW1hZ2UsXG4udWkuYm9yZGVyZWQuaW1hZ2VzIGltZyxcbi51aS5ib3JkZXJlZC5pbWFnZXMgc3ZnLFxuLnVpLmJvcmRlcmVkLmltYWdlIGltZyxcbi51aS5ib3JkZXJlZC5pbWFnZSBzdmcsXG5pbWcudWkuYm9yZGVyZWQuaW1hZ2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ2lyY3VsYXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2lyY3VsYXIuaW1hZ2VzLFxuLnVpLmNpcmN1bGFyLmltYWdlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi51aS5jaXJjdWxhci5pbWFnZXMgLmltYWdlLFxuLnVpLmNpcmN1bGFyLmltYWdlLFxuLnVpLmNpcmN1bGFyLmltYWdlcyAuaW1hZ2UgPiAqLFxuLnVpLmNpcmN1bGFyLmltYWdlID4gKiB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5pbWFnZXMsXG4udWkuZmx1aWQuaW1hZ2UsXG4udWkuZmx1aWQuaW1hZ2VzIGltZyxcbi51aS5mbHVpZC5pbWFnZXMgc3ZnLFxuLnVpLmZsdWlkLmltYWdlIHN2Zyxcbi51aS5mbHVpZC5pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQXZhdGFyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF2YXRhci5pbWFnZXMgLmltYWdlLFxuLnVpLmF2YXRhci5pbWFnZXMgaW1nLFxuLnVpLmF2YXRhci5pbWFnZXMgc3ZnLFxuLnVpLmF2YXRhci5pbWFnZSBpbWcsXG4udWkuYXZhdGFyLmltYWdlIHN2Zyxcbi51aS5hdmF0YXIuaW1hZ2Uge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMmVtO1xuICBoZWlnaHQ6IDJlbTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTcGFjZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zcGFjZWQuaW1hZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLnVpW2NsYXNzKj1cImxlZnQgc3BhY2VkXCJdLmltYWdlIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBzcGFjZWRcIl0uaW1hZ2Uge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0ZWQuaW1hZ2UsXG4udWkuZmxvYXRlZC5pbWFnZXMge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi51aS5yaWdodC5mbG9hdGVkLmltYWdlcyxcbi51aS5yaWdodC5mbG9hdGVkLmltYWdlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLnVpLmZsb2F0ZWQuaW1hZ2VzOmxhc3QtY2hpbGQsXG4udWkuZmxvYXRlZC5pbWFnZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmNlbnRlcmVkLmltYWdlcyxcbi51aS5jZW50ZXJlZC5pbWFnZSB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuaW1hZ2VzIC5pbWFnZSxcbi51aS5taW5pLmltYWdlcyBpbWcsXG4udWkubWluaS5pbWFnZXMgc3ZnLFxuLnVpLm1pbmkuaW1hZ2Uge1xuICB3aWR0aDogMzVweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5pbWFnZXMgLmltYWdlLFxuLnVpLnRpbnkuaW1hZ2VzIGltZyxcbi51aS50aW55LmltYWdlcyBzdmcsXG4udWkudGlueS5pbWFnZSB7XG4gIHdpZHRoOiA4MHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5pbWFnZXMgLmltYWdlLFxuLnVpLnNtYWxsLmltYWdlcyBpbWcsXG4udWkuc21hbGwuaW1hZ2VzIHN2Zyxcbi51aS5zbWFsbC5pbWFnZSB7XG4gIHdpZHRoOiAxNTBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkubWVkaXVtLmltYWdlcyAuaW1hZ2UsXG4udWkubWVkaXVtLmltYWdlcyBpbWcsXG4udWkubWVkaXVtLmltYWdlcyBzdmcsXG4udWkubWVkaXVtLmltYWdlIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5pbWFnZXMgLmltYWdlLFxuLnVpLmxhcmdlLmltYWdlcyBpbWcsXG4udWkubGFyZ2UuaW1hZ2VzIHN2Zyxcbi51aS5sYXJnZS5pbWFnZSB7XG4gIHdpZHRoOiA0NTBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLmltYWdlcyAuaW1hZ2UsXG4udWkuYmlnLmltYWdlcyBpbWcsXG4udWkuYmlnLmltYWdlcyBzdmcsXG4udWkuYmlnLmltYWdlIHtcbiAgd2lkdGg6IDYwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLmltYWdlcyAuaW1hZ2UsXG4udWkuaHVnZS5pbWFnZXMgaW1nLFxuLnVpLmh1Z2UuaW1hZ2VzIHN2Zyxcbi51aS5odWdlLmltYWdlIHtcbiAgd2lkdGg6IDgwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmltYWdlcyAuaW1hZ2UsXG4udWkubWFzc2l2ZS5pbWFnZXMgaW1nLFxuLnVpLm1hc3NpdmUuaW1hZ2VzIHN2Zyxcbi51aS5tYXNzaXZlLmltYWdlIHtcbiAgd2lkdGg6IDk2MHB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIEdyb3Vwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5pbWFnZXMge1xuICBmb250LXNpemU6IDBlbTtcbiAgbWFyZ2luOiAwZW0gLTAuMjVyZW0gMHJlbTtcbn1cbi51aS5pbWFnZXMgLmltYWdlLFxuLnVpLmltYWdlcyA+IGltZyxcbi51aS5pbWFnZXMgPiBzdmcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDAuMjVyZW0gMC41cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIElucHV0XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgSW5wdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBJbnB1dCAqL1xuLyogQ2lyY3VsYXIgSWNvbiBJbnB1dCAqL1xuLyogTGFiZWxlZCBJbnB1dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIERvd24gKi9cbi8qIEZvY3VzICovXG4vKiBFcnJvciAqL1xuLyogTG9hZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIElucHV0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gSW5wdXQgKi9cbi8qIENpcmN1bGFyIEljb24gSW5wdXQgKi9cbi8qIExhYmVsZWQgSW5wdXQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBsYWNlaG9sZGVyICovXG4vKiBEb3duICovXG4vKiBGb2N1cyAqL1xuLyogRXJyb3IgKi9cbi8qIExvYWRlciAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBJbnB1dHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmlucHV0ID4gaW5wdXQge1xuICBtYXJnaW46IDBlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgb3V0bGluZTogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAwLjY3ODU3MTQzZW0gMWVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQbGFjZWhvbGRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIGJyb3dzZXJzIHJlcXVpcmUgdGhlc2UgcnVsZXMgc2VwYXJhdGUgKi9cbi51aS5pbnB1dCA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTkxLCAxOTEsIDE5MSwgMC44Nyk7XG59XG4udWkuaW5wdXQgPiBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLnVpLmlucHV0ID4gaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTkxLCAxOTEsIDE5MSwgMC44Nyk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXNhYmxlZC5pbnB1dCxcbi51aS5pbnB1dDpub3QoLmRpc2FibGVkKSBpbnB1dFtkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLnVpLmRpc2FibGVkLmlucHV0ID4gaW5wdXQsXG4udWkuaW5wdXQ6bm90KC5kaXNhYmxlZCkgaW5wdXRbZGlzYWJsZWRdIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnB1dCA+IGlucHV0OmFjdGl2ZSxcbi51aS5pbnB1dC5kb3duIGlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJhY2tncm91bmQ6ICNGQUZBRkE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5sb2FkaW5nLmlucHV0ID4gaS5pY29uOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmxvYWRpbmcubG9hZGluZy5pbnB1dCA+IGkuaWNvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTAuNjQyODU3MTRlbSAwZW0gMGVtIC0wLjY0Mjg1NzE0ZW07XG4gIHdpZHRoOiAxLjI4NTcxNDI5ZW07XG4gIGhlaWdodDogMS4yODU3MTQyOWVtO1xuICBhbmltYXRpb246IGJ1dHRvbi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW5wdXQuZm9jdXMgPiBpbnB1dCxcbi51aS5pbnB1dCA+IGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjODVCN0Q5O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsXG4udWkuaW5wdXQgPiBpbnB1dDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpO1xufVxuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsXG4udWkuaW5wdXQgPiBpbnB1dDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDExNSwgMTE1LCAxMTUsIDAuODcpO1xufVxuLnVpLmlucHV0LmZvY3VzID4gaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuLnVpLmlucHV0ID4gaW5wdXQ6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC44Nyk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlucHV0LmVycm9yID4gaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG4gIGNvbG9yOiAjOUYzQTM4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogRXJyb3IgUGxhY2Vob2xkZXIgKi9cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmM7XG59XG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlN2JkYmMgIWltcG9ydGFudDtcbn1cbi8qIEZvY3VzZWQgRXJyb3IgUGxhY2Vob2xkZXIgKi9cbi51aS5pbnB1dC5lcnJvciA+IGlucHV0OmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTY7XG59XG4udWkuaW5wdXQuZXJyb3IgPiBpbnB1dDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLnVpLmlucHV0LmVycm9yID4gaW5wdXQ6Zm9jdXM6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNkYTk3OTYgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUcmFuc3BhcmVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50cmFuc3BhcmVudC5pbnB1dCA+IGlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbn1cbi8qIFRyYW5zcGFyZW50IEljb24gKi9cbi51aS50cmFuc3BhcmVudC5pY29uLmlucHV0ID4gaS5pY29uIHtcbiAgd2lkdGg6IDEuMWVtO1xufVxuLnVpLnRyYW5zcGFyZW50Lmljb24uaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDJlbSAhaW1wb3J0YW50O1xufVxuLnVpLnRyYW5zcGFyZW50W2NsYXNzKj1cImxlZnQgaWNvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBUcmFuc3BhcmVudCBJbnZlcnRlZCAqL1xuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0IHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkudHJhbnNwYXJlbnQuaW52ZXJ0ZWQuaW5wdXQgPiBpbnB1dCB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0ID4gaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0ID4gaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVpLnRyYW5zcGFyZW50LmludmVydGVkLmlucHV0ID4gaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgbWFyZ2luOiAwZW07XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDIuNjcxNDI4NTdlbTtcbiAgb3BhY2l0eTogMC41O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjpub3QoLmxpbmspIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udWkuaWNvbi5pbnB1dCA+IGlucHV0IHtcbiAgcGFkZGluZy1yaWdodDogMi42NzE0Mjg1N2VtICFpbXBvcnRhbnQ7XG59XG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjpiZWZvcmUsXG4udWkuaWNvbi5pbnB1dCA+IGkuaWNvbjphZnRlciB7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbn1cbi51aS5pY29uLmlucHV0ID4gaS5saW5rLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuaWNvbi5pbnB1dCA+IGkuY2lyY3VsYXIuaWNvbiB7XG4gIHRvcDogMC4zNWVtO1xuICByaWdodDogMC41ZW07XG59XG4vKiBMZWZ0IEljb24gSW5wdXQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGljb25cIl0uaW5wdXQgPiBpLmljb24ge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXB4O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGljb25cIl0uaW5wdXQgPiBpLmNpcmN1bGFyLmljb24ge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMC41ZW07XG59XG4udWlbY2xhc3MqPVwibGVmdCBpY29uXCJdLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDIuNjcxNDI4NTdlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAxZW0gIWltcG9ydGFudDtcbn1cbi8qIEZvY3VzICovXG4udWkuaWNvbi5pbnB1dCA+IGlucHV0OmZvY3VzIH4gaS5pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTGFiZWxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFkamFjZW50IExhYmVsICovXG4udWkubGFiZWxlZC5pbnB1dCA+IC5sYWJlbCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhYmVsZWQuaW5wdXQgPiAubGFiZWw6bm90KC5jb3JuZXIpIHtcbiAgcGFkZGluZy10b3A6IDAuNzg1NzE0MjllbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzg1NzE0MjllbTtcbn1cbi8qIFJlZ3VsYXIgTGFiZWwgb24gTGVmdCAqL1xuLnVpLmxhYmVsZWQuaW5wdXQ6bm90KFtjbGFzcyo9XCJjb3JuZXIgbGFiZWxlZFwiXSkgLmxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbn1cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCArIGlucHV0IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51aS5sYWJlbGVkLmlucHV0Om5vdChbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0pIC5sYWJlbDpmaXJzdC1jaGlsZCArIGlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICM4NUI3RDk7XG59XG4vKiBSZWd1bGFyIExhYmVsIG9uIFJpZ2h0ICovXG4udWlbY2xhc3MqPVwicmlnaHQgbGFiZWxlZFwiXS5pbnB1dCA+IGlucHV0IHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBsYWJlbGVkXCJdLmlucHV0ID4gaW5wdXQgKyAubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBsYWJlbGVkXCJdLmlucHV0ID4gaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICM4NUI3RDkgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciBMYWJlbCAqL1xuLnVpLmxhYmVsZWQuaW5wdXQgLmNvcm5lci5sYWJlbCB7XG4gIHRvcDogMXB4O1xuICByaWdodDogMXB4O1xuICBmb250LXNpemU6IDAuNjQyODU3MTRlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi8qIFNwYWNpbmcgd2l0aCBjb3JuZXIgbGFiZWwgKi9cbi51aVtjbGFzcyo9XCJjb3JuZXIgbGFiZWxlZFwiXTpub3QoW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0pLmxhYmVsZWQuaW5wdXQgPiBpbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwiY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0pID4gaW5wdXQge1xuICBwYWRkaW5nLXJpZ2h0OiAzLjI1ZW0gIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXSkgPiAuaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogMS4yNWVtO1xufVxuLyogTGVmdCBMYWJlbGVkICovXG4udWlbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXS5sYWJlbGVkLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDIuNWVtICFpbXBvcnRhbnQ7XG59XG4udWlbY2xhc3MqPVwibGVmdCBjb3JuZXIgbGFiZWxlZFwiXS5pY29uLmlucHV0ID4gaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDMuMjVlbSAhaW1wb3J0YW50O1xufVxuLnVpW2NsYXNzKj1cImxlZnQgY29ybmVyIGxhYmVsZWRcIl0uaWNvbi5pbnB1dCA+IC5pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVlbTtcbn1cbi8qIENvcm5lciBMYWJlbCBQb3NpdGlvbiAgKi9cbi51aS5pbnB1dCA+IC51aS5jb3JuZXIubGFiZWwge1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbn1cbi51aS5pbnB1dCA+IC51aS5sZWZ0LmNvcm5lci5sYWJlbCB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAxcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9uLFxuLnVpLmFjdGlvbi5pbnB1dCA+IC5idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleDogMCAwIGF1dG87XG59XG4udWkuYWN0aW9uLmlucHV0ID4gLmJ1dHRvbixcbi51aS5hY3Rpb24uaW5wdXQgPiAuYnV0dG9ucyA+IC5idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMC43ODU3MTQyOWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC43ODU3MTQyOWVtO1xuICBtYXJnaW46IDA7XG59XG4vKiBCdXR0b24gb24gUmlnaHQgKi9cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiBpbnB1dCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmRyb3Bkb3duOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5idXR0b246bm90KDpmaXJzdC1jaGlsZCksXG4udWkuYWN0aW9uLmlucHV0Om5vdChbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0pID4gLmJ1dHRvbnM6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5kcm9wZG93bjpsYXN0LWNoaWxkLFxuLnVpLmFjdGlvbi5pbnB1dDpub3QoW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdKSA+IC5idXR0b246bGFzdC1jaGlsZCxcbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiAuYnV0dG9uczpsYXN0LWNoaWxkID4gLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMHB4O1xufVxuLyogSW5wdXQgRm9jdXMgKi9cbi51aS5hY3Rpb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXSkgPiBpbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogIzg1QjdEOSAhaW1wb3J0YW50O1xufVxuLyogQnV0dG9uIG9uIExlZnQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IGlucHV0IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5kcm9wZG93bixcbi51aVtjbGFzcyo9XCJsZWZ0IGFjdGlvblwiXS5pbnB1dCA+IC5idXR0b24sXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9ucyA+IC5idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuZHJvcGRvd246Zmlyc3QtY2hpbGQsXG4udWlbY2xhc3MqPVwibGVmdCBhY3Rpb25cIl0uaW5wdXQgPiAuYnV0dG9uOmZpcnN0LWNoaWxkLFxuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gLmJ1dHRvbnM6Zmlyc3QtY2hpbGQgPiAuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwcHggMHB4IDAuMjE0Mjg1NzFyZW07XG59XG4vKiBJbnB1dCBGb2N1cyAqL1xuLnVpW2NsYXNzKj1cImxlZnQgYWN0aW9uXCJdLmlucHV0ID4gaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzg1QjdEOSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi51aS5pbnZlcnRlZC5pbnB1dCA+IGlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udWkuZmx1aWQuaW5wdXQgPiBpbnB1dCB7XG4gIHdpZHRoOiAwcHggIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmlucHV0IHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5ZW07XG59XG4udWkuc21hbGwuaW5wdXQge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbn1cbi51aS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmxhcmdlLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG59XG4udWkuYmlnLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5ZW07XG59XG4udWkuaHVnZS5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M2VtO1xufVxuLnVpLm1hc3NpdmUuaW5wdXQge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBMYWJlbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMYWJlbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIG1lZGl1bSBpcyBub3QgQGVtU2l6ZSBjdXN0b20gdmFsdWUgcmVxdWlyZWQgKi9cbi8qIEdyb3VwICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpbmsgKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBEZXRhaWwgKi9cbi8qIERlbGV0ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbWFnZSBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhc2ljICovXG4vKiBUYWcgKi9cbi8qIEF2b2lkcyBlcnJvciB3aXRoIGJhY2tncm91bmQ6IGluaGVyaXQ7IG9uIGFuaW1hdGlvbiAqL1xuLyogUmliYm9uICovXG4vKiBSb3VuZGluZyBPZmZzZXQgb24gVHJpYW5nbGUgKi9cbi8qIFJvdW5kaW5nIE9mZnNldCBvbiBUcmlhbmdsZSAqL1xuLyogQ29sb3JzICovXG4vKiBBdHRhY2hlZCAqL1xuLyogQ29ybmVyICovXG4vKiBDb3JuZXIgVGV4dCAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLyogQ2lyY3VsYXIgUGFkZGluZyAqL1xuLyogUG9pbnRpbmcgKi9cbi8qIEJhc2ljIFBvaW50aW5nICovXG4vKiBGbG9hdGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXppbmcgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExhYmVsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogbWVkaXVtIGlzIG5vdCBAZW1TaXplIGN1c3RvbSB2YWx1ZSByZXF1aXJlZCAqL1xuLyogR3JvdXAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGluayAqL1xuLyogSWNvbiAqL1xuLyogSW1hZ2UgKi9cbi8qIERldGFpbCAqL1xuLyogRGVsZXRlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFzaWMgKi9cbi8qIFRhZyAqL1xuLyogQXZvaWRzIGVycm9yIHdpdGggYmFja2dyb3VuZDogaW5oZXJpdDsgb24gYW5pbWF0aW9uICovXG4vKiBSaWJib24gKi9cbi8qIFJvdW5kaW5nIE9mZnNldCBvbiBUcmlhbmdsZSAqL1xuLyogUm91bmRpbmcgT2Zmc2V0IG9uIFRyaWFuZ2xlICovXG4vKiBDb2xvcnMgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBDb3JuZXIgKi9cbi8qIENvcm5lciBUZXh0ICovXG4vKiBIb3Jpem9udGFsICovXG4vKiBDaXJjdWxhciBQYWRkaW5nICovXG4vKiBQb2ludGluZyAqL1xuLyogQmFzaWMgUG9pbnRpbmcgKi9cbi8qIEZsb2F0aW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemluZyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBMYWJlbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luOiAwZW0gMC4xNDI4NTcxNGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRThFOEU4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBwYWRkaW5nOiAwLjU4MzNlbSAwLjgzM2VtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlcjogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi51aS5sYWJlbDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkubGFiZWw6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyogTGluayAqL1xuYS51aS5sYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qIEluc2lkZSBMaW5rICovXG4udWkubGFiZWwgPiBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiAwLjFzIG9wYWNpdHkgZWFzZTtcbn1cbi51aS5sYWJlbCA+IGE6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyogSW1hZ2UgKi9cbi51aS5sYWJlbCA+IGltZyB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGhlaWdodDogMi4xNjY2ZW0gIWltcG9ydGFudDtcbn1cbi8qIEljb24gKi9cbi51aS5sYWJlbCA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIDAuNzVlbSAwZW0gMGVtO1xufVxuLyogRGV0YWlsICovXG4udWkubGFiZWwgPiAuZGV0YWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgb3BhY2l0eTogMC44O1xufVxuLnVpLmxhYmVsID4gLmRldGFpbCAuaWNvbiB7XG4gIG1hcmdpbjogMGVtIDAuMjVlbSAwZW0gMGVtO1xufVxuLyogUmVtb3ZhYmxlIGxhYmVsICovXG4udWkubGFiZWwgPiAuY2xvc2UuaWNvbixcbi51aS5sYWJlbCA+IC5kZWxldGUuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7XG59XG4udWkubGFiZWwgPiAuZGVsZXRlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbHMgPiAubGFiZWwge1xuICBtYXJnaW46IDBlbSAwLjVlbSAwLjVlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhlYWRlciA+IC51aS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IC0wLjI5MTY1ZW07XG59XG4vKiBSZW1vdmUgYm9yZGVyIHJhZGl1cyBvbiBhdHRhY2hlZCBzZWdtZW50ICovXG4udWkuYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AubGVmdC5hdHRhY2hlZC5sYWJlbCxcbi51aS5ib3R0b20uYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AubGVmdC5hdHRhY2hlZC5sYWJlbCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4udWkuYXR0YWNoZWQuc2VnbWVudCA+IC51aS50b3AucmlnaHQuYXR0YWNoZWQubGFiZWwsXG4udWkuYm90dG9tLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkudG9wLnJpZ2h0LmF0dGFjaGVkLmxhYmVsIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG59XG4udWkudG9wLmF0dGFjaGVkLnNlZ21lbnQgPiAudWkuYm90dG9tLmxlZnQuYXR0YWNoZWQubGFiZWwge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLnVpLnRvcC5hdHRhY2hlZC5zZWdtZW50ID4gLnVpLmJvdHRvbS5yaWdodC5hdHRhY2hlZC5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xufVxuLyogUGFkZGluZyBvbiBuZXh0IGNvbnRlbnQgYWZ0ZXIgYSBsYWJlbCAqL1xuLnVpLnRvcC5hdHRhY2hlZC5sYWJlbDpmaXJzdC1jaGlsZCArIDpub3QoLmF0dGFjaGVkKSxcbi51aS50b3AuYXR0YWNoZWQubGFiZWwgKyBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSArICoge1xuICBtYXJnaW4tdG9wOiAycmVtICFpbXBvcnRhbnQ7XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLmxhYmVsOmZpcnN0LWNoaWxkIH4gOmxhc3QtY2hpbGQ6bm90KC5hdHRhY2hlZCkge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuaW1hZ2UubGFiZWwge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgbWF4LXdpZHRoOiA5OTk5cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNFOEU4RTg7XG4gIHBhZGRpbmc6IDAuNTgzM2VtIDAuODMzZW0gMC41ODMzZW0gMC41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW1hZ2UubGFiZWwgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBoZWlnaHQ6IDIuMTY2NmVtO1xuICBtYXJnaW46IC0wLjU4MzNlbSAwLjVlbSAtMC41ODMzZW0gLTAuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS5pbWFnZS5sYWJlbCAuZGV0YWlsIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBtYXJnaW46IC0wLjU4MzNlbSAtMC44MzNlbSAtMC41ODMzZW0gMC41ZW07XG4gIHBhZGRpbmc6IDAuNTgzM2VtIDAuODMzZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBUYWdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWcubGFiZWxzIC5sYWJlbCxcbi51aS50YWcubGFiZWwge1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi51aS50YWcubGFiZWxzIC5sYWJlbDpiZWZvcmUsXG4udWkudGFnLmxhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHRyYW5zbGF0ZVgoNTAlKSByb3RhdGUoLTQ1ZGVnKTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxMDAlO1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgd2lkdGg6IDEuNTZlbTtcbiAgaGVpZ2h0OiAxLjU2ZW07XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4udWkudGFnLmxhYmVscyAubGFiZWw6YWZ0ZXIsXG4udWkudGFnLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0wLjI1ZW07XG4gIG1hcmdpbi10b3A6IC0wLjI1ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgd2lkdGg6IDAuNWVtO1xuICBoZWlnaHQ6IDAuNWVtO1xuICBib3gtc2hhZG93OiAwIC0xcHggMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDb3JuZXIgTGFiZWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb3JuZXIubGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMGVtO1xuICByaWdodDogMGVtO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1jb2xvcjogI0U4RThFODtcbiAgd2lkdGg6IDRlbTtcbiAgaGVpZ2h0OiA0ZW07XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4vKiBJY29uIExhYmVsICovXG4udWkuY29ybmVyLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi51aS5jb3JuZXIubGFiZWw6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHJpZ2h0OiAwZW07XG4gIHRvcDogMGVtO1xuICB6LWluZGV4OiAtMTtcbiAgd2lkdGg6IDBlbTtcbiAgaGVpZ2h0OiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDRlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNvcm5lci5sYWJlbCAuaWNvbiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDAuNjQyODU3MTRlbTtcbiAgbGVmdDogMC43ODU3MTQyOWVtO1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBMZWZ0IENvcm5lciAqL1xuLnVpLmxlZnQuY29ybmVyLmxhYmVsLFxuLnVpLmxlZnQuY29ybmVyLmxhYmVsOmFmdGVyIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDBlbTtcbn1cbi51aS5sZWZ0LmNvcm5lci5sYWJlbDphZnRlciB7XG4gIGJvcmRlci10b3A6IDRlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA0ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6IDBlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcbn1cbi51aS5sZWZ0LmNvcm5lci5sYWJlbCAuaWNvbiB7XG4gIGxlZnQ6IC0wLjc4NTcxNDI5ZW07XG59XG4vKiBTZWdtZW50ICovXG4udWkuc2VnbWVudCA+IC51aS5jb3JuZXIubGFiZWwge1xuICB0b3A6IC0xcHg7XG4gIHJpZ2h0OiAtMXB4O1xufVxuLnVpLnNlZ21lbnQgPiAudWkubGVmdC5jb3JuZXIubGFiZWwge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFJpYmJvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJpYmJvbi5sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwZW07XG4gIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4udWkucmliYm9uLmxhYmVsOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwZW0gMS4yZW0gMS4yZW0gMGVtO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XG4gIHdpZHRoOiAwZW07XG4gIGhlaWdodDogMGVtO1xufVxuLyogUG9zaXRpb25pbmcgKi9cbi51aS5yaWJib24ubGFiZWwge1xuICBsZWZ0OiBjYWxjKC0yLjJyZW0pO1xuICBtYXJnaW4tcmlnaHQ6IC0xLjJlbTtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKDIuMnJlbSk7XG4gIHBhZGRpbmctcmlnaHQ6IDEuMmVtO1xufVxuLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoMTAyLjIlKTtcbiAgcGFkZGluZy1sZWZ0OiAxLjJlbTtcbiAgcGFkZGluZy1yaWdodDogY2FsYygyLjJyZW0pO1xufVxuLyogUmlnaHQgUmliYm9uICovXG4udWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgcmliYm9uXCJdLmxhYmVsOmFmdGVyIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDEuMmVtIDEuMmVtIDBlbSAwZW07XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IGluaGVyaXQ7XG59XG4vKiBJbnNpZGUgVGFibGUgKi9cbi51aS5pbWFnZSA+IC5yaWJib24ubGFiZWwsXG4udWkuY2FyZCAuaW1hZ2UgPiAucmliYm9uLmxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFyZW07XG59XG4udWkuY2FyZCAuaW1hZ2UgPiAudWkucmliYm9uLmxhYmVsLFxuLnVpLmltYWdlID4gLnVpLnJpYmJvbi5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoLTEuMTVyZW0pO1xufVxuLnVpLmNhcmQgLmltYWdlID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCxcbi51aS5pbWFnZSA+IC51aVtjbGFzcyo9XCJyaWdodCByaWJib25cIl0ubGFiZWwge1xuICBsZWZ0OiBjYWxjKDEwMS4xNSUpO1xuICBwYWRkaW5nLWxlZnQ6IDAuODMzZW07XG59XG4vKiBJbnNpZGUgVGFibGUgKi9cbi51aS50YWJsZSB0ZCA+IC51aS5yaWJib24ubGFiZWwge1xuICBsZWZ0OiBjYWxjKC0xLjk4NTcxNDI5ZW0pO1xufVxuLnVpLnRhYmxlIHRkID4gLnVpW2NsYXNzKj1cInJpZ2h0IHJpYmJvblwiXS5sYWJlbCB7XG4gIGxlZnQ6IGNhbGMoMTAxLjk4NTcxNDI5JSk7XG4gIHBhZGRpbmctbGVmdDogMC44MzNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwsXG4udWkuYXR0YWNoZWQubGFiZWwge1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDBlbTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGxlZnQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLnVpW2NsYXNzKj1cInRvcCByaWdodCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gbGVmdCBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIHdpZHRoOiBhdXRvO1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gcmlnaHQgYXR0YWNoZWRcIl0ubGFiZWwge1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMGVtO1xuICB3aWR0aDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sYWJlbC5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuYS51aS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMEUwRTA7XG4gIGJvcmRlci1jb2xvcjogI0UwRTBFMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5sYWJlbHMgYS5sYWJlbDpob3ZlcjpiZWZvcmUsXG5hLnVpLmxhYmVsOmhvdmVyOmJlZm9yZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aXZlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0QwRDBEMDtcbiAgYm9yZGVyLWNvbG9yOiAjRDBEMEQwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5hY3RpdmUubGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0QwRDBEMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWN0aXZlIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5hLnVpLmxhYmVscyAuYWN0aXZlLmxhYmVsOmhvdmVyLFxuYS51aS5hY3RpdmUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhDOEM4O1xuICBib3JkZXItY29sb3I6ICNDOEM4Qzg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLmxhYmVscyBhLmFjdGl2ZS5sYWJlbDpBY3RpdmVIb3ZlcjpiZWZvcmUsXG5hLnVpLmFjdGl2ZS5sYWJlbDpBY3RpdmVIb3ZlcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhDOEM4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmlzaWJsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVscy52aXNpYmxlIC5sYWJlbCxcbi51aS5sYWJlbC52aXNpYmxlOm5vdCguZHJvcGRvd24pIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhpZGRlblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxhYmVscy5oaWRkZW4gLmxhYmVsLFxuLnVpLmxhYmVsLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tIFJlZCAtLS0qL1xuLnVpLnJlZC5sYWJlbHMgLmxhYmVsLFxuLnVpLnJlZC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkucmVkLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLnJlZC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMDE5MTkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5yZWQuY29ybmVyLmxhYmVsLFxuLnVpLnJlZC5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkucmVkLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI2IyMWUxZSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5yZWQubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjREIyODI4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucmVkLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5yZWQubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZDAxOTE5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2QwMTkxOSAhaW1wb3J0YW50O1xufVxuLyotLS0gT3JhbmdlIC0tLSovXG4udWkub3JhbmdlLmxhYmVscyAubGFiZWwsXG4udWkub3JhbmdlLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5vcmFuZ2UubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkub3JhbmdlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyNjIwMiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLm9yYW5nZS5jb3JuZXIubGFiZWwsXG4udWkub3JhbmdlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5vcmFuZ2UucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2Y1OTBjICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLm9yYW5nZS5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5vcmFuZ2UubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLm9yYW5nZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmMjYyMDIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZjI2MjAyICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBZZWxsb3cgLS0tKi9cbi51aS55ZWxsb3cubGFiZWxzIC5sYWJlbCxcbi51aS55ZWxsb3cubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnllbGxvdy5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS55ZWxsb3cubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFhZTAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkueWVsbG93LmNvcm5lci5sYWJlbCxcbi51aS55ZWxsb3cuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnllbGxvdy5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICNjZDk5MDMgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMueWVsbG93LmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnllbGxvdy5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMueWVsbG93LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2VhYWUwMCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlYWFlMDAgIWltcG9ydGFudDtcbn1cbi8qLS0tIE9saXZlIC0tLSovXG4udWkub2xpdmUubGFiZWxzIC5sYWJlbCxcbi51aS5vbGl2ZS5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkub2xpdmUubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkub2xpdmUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdiZDBkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkub2xpdmUuY29ybmVyLmxhYmVsLFxuLnVpLm9saXZlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5vbGl2ZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICMxOThmMzUgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMub2xpdmUubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMub2xpdmUubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLm9saXZlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI2E3YmQwZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNhN2JkMGQgIWltcG9ydGFudDtcbn1cbi8qLS0tIEdyZWVuIC0tLSovXG4udWkuZ3JlZW4ubGFiZWxzIC5sYWJlbCxcbi51aS5ncmVlbi5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkuZ3JlZW4ubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuZ3JlZW4ubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTZhYjM5ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkuZ3JlZW4uY29ybmVyLmxhYmVsLFxuLnVpLmdyZWVuLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ncmVlbi5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICMxOThmMzUgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMuZ3JlZW4ubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMuZ3JlZW4ubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmdyZWVuLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzE2YWIzOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxNmFiMzkgIWltcG9ydGFudDtcbn1cbi8qLS0tIFRlYWwgLS0tKi9cbi51aS50ZWFsLmxhYmVscyAubGFiZWwsXG4udWkudGVhbC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkudGVhbC5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS50ZWFsLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwOWM5NSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnRlYWwuY29ybmVyLmxhYmVsLFxuLnVpLnRlYWwuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnRlYWwucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA4MjdjICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnRlYWwubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMudGVhbC5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMudGVhbC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICMwMDljOTUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMDA5Yzk1ICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCbHVlIC0tLSovXG4udWkuYmx1ZS5sYWJlbHMgLmxhYmVsLFxuLnVpLmJsdWUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmJsdWUubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuYmx1ZS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTVkOGYgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjE1ZDhmICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ibHVlLmNvcm5lci5sYWJlbCxcbi51aS5ibHVlLmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ibHVlLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzIxNGY3NiAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibHVlLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJsdWUubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmJsdWUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjE1ZDhmICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzIxNWQ4ZiAhaW1wb3J0YW50O1xufVxuLyotLS0gVmlvbGV0IC0tLSovXG4udWkudmlvbGV0LmxhYmVscyAubGFiZWwsXG4udWkudmlvbGV0LmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS52aW9sZXQubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkudmlvbGV0LmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU4MjliYiAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnZpb2xldC5jb3JuZXIubGFiZWwsXG4udWkudmlvbGV0LmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS52aW9sZXQucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTAyYWExICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnZpb2xldC5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy52aW9sZXQubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLnZpb2xldC5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM1ODI5YmIgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjNTgyOWJiICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBQdXJwbGUgLS0tKi9cbi51aS5wdXJwbGUubGFiZWxzIC5sYWJlbCxcbi51aS5wdXJwbGUubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLnB1cnBsZS5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5wdXJwbGUubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTYyN2JhICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogQ29ybmVyICovXG4udWkucHVycGxlLmNvcm5lci5sYWJlbCxcbi51aS5wdXJwbGUuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnB1cnBsZS5yaWJib24ubGFiZWwge1xuICBib3JkZXItY29sb3I6ICM4MjI5OWYgIWltcG9ydGFudDtcbn1cbi8qIEJhc2ljICovXG4udWkuYmFzaWMucHVycGxlLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLnB1cnBsZS5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMucHVycGxlLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk2MjdiYSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM5NjI3YmEgIWltcG9ydGFudDtcbn1cbi8qLS0tIFBpbmsgLS0tKi9cbi51aS5waW5rLmxhYmVscyAubGFiZWwsXG4udWkucGluay5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBMaW5rICovXG4udWkucGluay5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5waW5rLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2MWE4ZCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLnBpbmsuY29ybmVyLmxhYmVsLFxuLnVpLnBpbmsuY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLnBpbmsucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjYzcxZjdlICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLnBpbmsubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG4udWkuYmFzaWMucGluay5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMucGluay5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNlNjFhOGQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjZTYxYThkICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBCcm93biAtLS0qL1xuLnVpLmJyb3duLmxhYmVscyAubGFiZWwsXG4udWkuYnJvd24ubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmJyb3duLmxhYmVscyAubGFiZWw6aG92ZXIsXG5hLnVpLmJyb3duLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3NWIzMyAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIENvcm5lciAqL1xuLnVpLmJyb3duLmNvcm5lci5sYWJlbCxcbi51aS5icm93bi5jb3JuZXIubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLyogUmliYm9uICovXG4udWkuYnJvd24ucmliYm9uLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjODA1MDMxICFpbXBvcnRhbnQ7XG59XG4vKiBCYXNpYyAqL1xuLnVpLmJhc2ljLmJyb3duLmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmJyb3duLmxhYmVscyBhLmxhYmVsOmhvdmVyLFxuYS51aS5iYXNpYy5icm93bi5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5NzViMzMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjOTc1YjMzICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBHcmV5IC0tLSovXG4udWkuZ3JleS5sYWJlbHMgLmxhYmVsLFxuLnVpLmdyZXkubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogTGluayAqL1xuLnVpLmdyZXkubGFiZWxzIC5sYWJlbDpob3ZlcixcbmEudWkuZ3JleS5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MzgzODMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ncmV5LmNvcm5lci5sYWJlbCxcbi51aS5ncmV5LmNvcm5lci5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4vKiBSaWJib24gKi9cbi51aS5ncmV5LnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ncmV5LmxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuLnVpLmJhc2ljLmdyZXkubGFiZWxzIGEubGFiZWw6aG92ZXIsXG5hLnVpLmJhc2ljLmdyZXkubGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODM4MzgzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzgzODM4MyAhaW1wb3J0YW50O1xufVxuLyotLS0gQmxhY2sgLS0tKi9cbi51aS5ibGFjay5sYWJlbHMgLmxhYmVsLFxuLnVpLmJsYWNrLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIExpbmsgKi9cbi51aS5ibGFjay5sYWJlbHMgLmxhYmVsOmhvdmVyLFxuYS51aS5ibGFjay5sYWJlbDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzI5MmEgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBDb3JuZXIgKi9cbi51aS5ibGFjay5jb3JuZXIubGFiZWwsXG4udWkuYmxhY2suY29ybmVyLmxhYmVsOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIFJpYmJvbiAqL1xuLnVpLmJsYWNrLnJpYmJvbi5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzgwNTAzMSAhaW1wb3J0YW50O1xufVxuLyogQmFzaWMgKi9cbi51aS5iYXNpYy5ibGFjay5sYWJlbCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzFCMUMxRCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbn1cbi51aS5iYXNpYy5ibGFjay5sYWJlbHMgYS5sYWJlbDpob3ZlcixcbmEudWkuYmFzaWMuYmxhY2subGFiZWw6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjcyOTJhICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogIzI3MjkyYSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmFzaWMubGFiZWwge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogTGluayAqL1xuYS51aS5iYXNpYy5sYWJlbDpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGO1xuICBjb2xvcjogIzMyNzdiMjtcbiAgYm94LXNoYWRvdzogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBQb2ludGluZyAqL1xuLnVpLmJhc2ljLnBvaW50aW5nLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGFiZWwuZmx1aWQsXG4udWkuZmx1aWQubGFiZWxzID4gLmxhYmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmxhYmVscyAubGFiZWwsXG4udWkuaW52ZXJ0ZWQubGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhvcml6b250YWwubGFiZWxzIC5sYWJlbCxcbi51aS5ob3Jpem9udGFsLmxhYmVsIHtcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMC40ZW0gMC44MzNlbTtcbiAgbWluLXdpZHRoOiAzZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENpcmN1bGFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2lyY3VsYXIubGFiZWxzIC5sYWJlbCxcbi51aS5jaXJjdWxhci5sYWJlbCB7XG4gIG1pbi13aWR0aDogMmVtO1xuICBtaW4taGVpZ2h0OiAyZW07XG4gIHBhZGRpbmc6IDAuNWVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLnVpLmVtcHR5LmNpcmN1bGFyLmxhYmVscyAubGFiZWwsXG4udWkuZW1wdHkuY2lyY3VsYXIubGFiZWwge1xuICBtaW4td2lkdGg6IDBlbTtcbiAgbWluLWhlaWdodDogMGVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMC41ZW07XG4gIGhlaWdodDogMC41ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucG9pbnRpbmcubGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWkuYXR0YWNoZWQucG9pbnRpbmcubGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4udWkucG9pbnRpbmcubGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1pbWFnZTogaW5oZXJpdDtcbiAgYm9yZGVyLXdpZHRoOiBub25lO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG59XG4vKiBBcnJvdyAqL1xuLnVpLnBvaW50aW5nLmxhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgei1pbmRleDogMjtcbiAgd2lkdGg6IDAuNjY2NmVtO1xuICBoZWlnaHQ6IDAuNjY2NmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi8qLS0tIEFib3ZlIC0tLSovXG4udWkucG9pbnRpbmcubGFiZWwsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYWJvdmVcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4udWkucG9pbnRpbmcubGFiZWw6YmVmb3JlLFxuLnVpW2NsYXNzKj1cInBvaW50aW5nIGFib3ZlXCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMXB4IDBweCAwcHggMXB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICB0b3A6IDAlO1xuICBsZWZ0OiA1MCU7XG59XG4vKi0tLSBCZWxvdyAtLS0qL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBwb2ludGluZ1wiXS5sYWJlbCxcbi51aVtjbGFzcyo9XCJwb2ludGluZyBiZWxvd1wiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUsXG4udWlbY2xhc3MqPVwicG9pbnRpbmcgYmVsb3dcIl0ubGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMXB4IDFweCAwcHg7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlO1xufVxuLyotLS0gTGVmdCAtLS0qL1xuLnVpW2NsYXNzKj1cImxlZnQgcG9pbnRpbmdcIl0ubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjY2NjZlbTtcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIGJvcmRlci13aWR0aDogMHB4IDBweCAxcHggMXB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMGVtO1xufVxuLyotLS0gUmlnaHQgLS0tKi9cbi51aVtjbGFzcyo9XCJyaWdodCBwb2ludGluZ1wiXS5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjY2NjZlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBwb2ludGluZ1wiXS5sYWJlbDpiZWZvcmUge1xuICBib3JkZXItd2lkdGg6IDFweCAxcHggMHB4IDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDAlO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG59XG4vKiBCYXNpYyBQb2ludGluZyAqL1xuLyotLS0gQWJvdmUgLS0tKi9cbi51aS5iYXNpYy5wb2ludGluZy5sYWJlbDpiZWZvcmUsXG4udWkuYmFzaWNbY2xhc3MqPVwicG9pbnRpbmcgYWJvdmVcIl0ubGFiZWw6YmVmb3JlIHtcbiAgbWFyZ2luLXRvcDogLTFweDtcbn1cbi8qLS0tIEJlbG93IC0tLSovXG4udWkuYmFzaWNbY2xhc3MqPVwiYm90dG9tIHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSxcbi51aS5iYXNpY1tjbGFzcyo9XCJwb2ludGluZyBiZWxvd1wiXS5sYWJlbDpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIHRvcDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuLyotLS0gTGVmdCAtLS0qL1xuLnVpLmJhc2ljW2NsYXNzKj1cImxlZnQgcG9pbnRpbmdcIl0ubGFiZWw6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IC0xcHg7XG59XG4vKi0tLSBSaWdodCAtLS0qL1xuLnVpLmJhc2ljW2NsYXNzKj1cInJpZ2h0IHBvaW50aW5nXCJdLmxhYmVsOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICByaWdodDogLTFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBGbG9hdGluZyBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRpbmcubGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDtcbiAgdG9wOiAtMWVtO1xuICBsZWZ0OiAxMDAlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0xLjVlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5sYWJlbHMgLmxhYmVsLFxuLnVpLm1pbmkubGFiZWwge1xuICBmb250LXNpemU6IDAuNjQyODU3MTRyZW07XG59XG4udWkudGlueS5sYWJlbHMgLmxhYmVsLFxuLnVpLnRpbnkubGFiZWwge1xuICBmb250LXNpemU6IDAuNzE0Mjg1NzFyZW07XG59XG4udWkuc21hbGwubGFiZWxzIC5sYWJlbCxcbi51aS5zbWFsbC5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS5sYWJlbHMgLmxhYmVsLFxuLnVpLmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLmxhcmdlLmxhYmVscyAubGFiZWwsXG4udWkubGFyZ2UubGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkuYmlnLmxhYmVscyAubGFiZWwsXG4udWkuYmlnLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmh1Z2UubGFiZWxzIC5sYWJlbCxcbi51aS5odWdlLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUubGFiZWxzIC5sYWJlbCxcbi51aS5tYXNzaXZlLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIExpc3RcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTGlzdFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGlzdCAqL1xuLyogTGlzdCBJdGVtICovXG4vKiBTdWIgTGlzdCAqL1xuLyogU3ViIExpc3QgSXRlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIExpbmsgKi9cbi8qIEhlYWRlciBMaW5rICovXG4vKiBMaW5rZWQgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbG9hdCAqL1xuLyogSG9yaXpvbnRhbCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIExpbmsgTGlzdCAqL1xuLyogSW52ZXJ0ZWQgTGluayBMaXN0ICovXG4vKiBTZWxlY3Rpb24gTGlzdCAqL1xuLyogU2VsZWN0aW9uIExpc3QgU3RhdGVzICovXG4vKiBJbnZlcnRlZCBTZWxlY3Rpb24gTGlzdCAqL1xuLyogQW5pbWF0ZWQgTGlzdCAqL1xuLyogQnVsbGV0ZWQgKi9cbi8qIEhvcml6b250YWwgQnVsbGV0cyAqL1xuLyogT3JkZXJlZCBMaXN0ICovXG4vKiBIb3Jpem9udGFsIE9yZGVyZWQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIERpdmlkZWQgSG9yaXpvbnRhbCAqL1xuLyogRGl2aWRlZCAqL1xuLyogRGl2aWRlZCBIb3Jpem9udGFsICovXG4vKiBSZWxheGVkICovXG4vKiBWZXJ5IFJlbGF4ZWQgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExpc3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpc3QgKi9cbi8qIExpc3QgSXRlbSAqL1xuLyogU3ViIExpc3QgKi9cbi8qIFN1YiBMaXN0IEl0ZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBMaW5rICovXG4vKiBIZWFkZXIgTGluayAqL1xuLyogTGlua2VkIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmxvYXQgKi9cbi8qIEhvcml6b250YWwgKi9cbi8qIEludmVydGVkICovXG4vKiBMaW5rIExpc3QgKi9cbi8qIEludmVydGVkIExpbmsgTGlzdCAqL1xuLyogU2VsZWN0aW9uIExpc3QgKi9cbi8qIFNlbGVjdGlvbiBMaXN0IFN0YXRlcyAqL1xuLyogSW52ZXJ0ZWQgU2VsZWN0aW9uIExpc3QgKi9cbi8qIEFuaW1hdGVkIExpc3QgKi9cbi8qIEJ1bGxldGVkICovXG4vKiBIb3Jpem9udGFsIEJ1bGxldHMgKi9cbi8qIE9yZGVyZWQgTGlzdCAqL1xuLyogSG9yaXpvbnRhbCBPcmRlcmVkICovXG4vKiBEaXZpZGVkICovXG4vKiBEaXZpZGVkIEhvcml6b250YWwgKi9cbi8qIERpdmlkZWQgKi9cbi8qIERpdmlkZWQgSG9yaXpvbnRhbCAqL1xuLyogUmVsYXhlZCAqL1xuLyogVmVyeSBSZWxheGVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIExpc3RcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG51bC51aS5saXN0LFxub2wudWkubGlzdCxcbi51aS5saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIHBhZGRpbmc6IDBlbSAwZW07XG59XG51bC51aS5saXN0OmZpcnN0LWNoaWxkLFxub2wudWkubGlzdDpmaXJzdC1jaGlsZCxcbi51aS5saXN0OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxudWwudWkubGlzdDpsYXN0LWNoaWxkLFxub2wudWkubGlzdDpsYXN0LWNoaWxkLFxuLnVpLmxpc3Q6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTGlzdCBJdGVtICovXG51bC51aS5saXN0IGxpLFxub2wudWkubGlzdCBsaSxcbi51aS5saXN0ID4gLml0ZW0sXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIHBhZGRpbmc6IDAuMjE0Mjg1NzFlbSAwZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE0Mjg1NzE0ZW07XG59XG51bC51aS5saXN0ID4gbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIsXG5vbC51aS5saXN0ID4gbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIsXG4udWkubGlzdCA+IC5saXN0ID4gLml0ZW0sXG4udWkubGlzdCA+IC5pdGVtOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG51bC51aS5saXN0IGxpOmZpcnN0LWNoaWxkLFxub2wudWkubGlzdCBsaTpmaXJzdC1jaGlsZCxcbi51aS5saXN0IC5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQsXG4udWkubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbnVsLnVpLmxpc3QgbGk6bGFzdC1jaGlsZCxcbm9sLnVpLmxpc3QgbGk6bGFzdC1jaGlsZCxcbi51aS5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKiBDaGlsZCBMaXN0ICovXG51bC51aS5saXN0IHVsLFxub2wudWkubGlzdCBvbCxcbi51aS5saXN0IC5saXN0IHtcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMGVtIDAuMjVlbSAwLjVlbTtcbn1cbi8qIENoaWxkIEl0ZW0gKi9cbnVsLnVpLmxpc3QgdWwgbGksXG5vbC51aS5saXN0IG9sIGxpLFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmc6IDAuMTQyODU3MTRlbSAwZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuLyogSWNvbiAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IGkuaWNvbixcbi51aS5saXN0ID4gLml0ZW0gPiBpLmljb24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZy10b3A6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMC4yODU3MTQyOWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gaS5pY29uOm9ubHktY2hpbGQsXG4udWkubGlzdCA+IC5pdGVtID4gaS5pY29uOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKiBJbWFnZSAqL1xuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5saXN0ID4gLml0ZW0gPiAuaW1hZ2Uge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWFyZ2luOiAwZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmltYWdlOm5vdCg6b25seS1jaGlsZCk6bm90KGltZyksXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlOm5vdCg6b25seS1jaGlsZCk6bm90KGltZykge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UgaW1nLFxuLnVpLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSBpbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IGltZy5pbWFnZSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCxcbi51aS5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKiBDb250ZW50ICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQsXG4udWkubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQge1xuICBsaW5lLWhlaWdodDogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50LFxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pY29uICsgLmNvbnRlbnQsXG4udWkubGlzdCA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQsXG4udWkubGlzdCA+IC5pdGVtID4gLmljb24gKyAuY29udGVudCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAwLjVlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UgKyAuY29udGVudCxcbi51aS5saXN0ID4gLml0ZW0gPiBpbWcuaW1hZ2UgKyAuY29udGVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG59XG4udWkubGlzdCAubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQgPiAubGlzdCxcbi51aS5saXN0ID4gLml0ZW0gPiAuY29udGVudCA+IC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG59XG4vKiBIZWFkZXIgKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gLmhlYWRlcixcbi51aS5saXN0ID4gLml0ZW0gLmhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDBlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogRGVzY3JpcHRpb24gKi9cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gLmRlc2NyaXB0aW9uLFxuLnVpLmxpc3QgPiAuaXRlbSAuZGVzY3JpcHRpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTtcbn1cbi8qIENoaWxkIExpbmsgKi9cbi51aS5saXN0ID4gLml0ZW0gYSxcbi51aS5saXN0IC5saXN0ID4gLml0ZW0gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qIExpbmtpbmcgSXRlbSAqL1xuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW0sXG4udWkubGlzdCA+IGEuaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICMyQzZBOUU7XG59XG4udWkubGlzdCAubGlzdCA+IGEuaXRlbTpob3Zlcixcbi51aS5saXN0ID4gYS5pdGVtOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjI7XG59XG4vKiBMaW5rZWQgSXRlbSBJY29ucyAqL1xuLnVpLmxpc3QgLmxpc3QgPiBhLml0ZW0gaS5pY29uLFxuLnVpLmxpc3QgPiBhLml0ZW0gaS5pY29uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qIEhlYWRlciBMaW5rICovXG4udWkubGlzdCAubGlzdCA+IC5pdGVtIGEuaGVhZGVyLFxuLnVpLmxpc3QgPiAuaXRlbSBhLmhlYWRlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbn1cbi51aS5saXN0IC5saXN0ID4gLml0ZW0gYS5oZWFkZXI6aG92ZXIsXG4udWkubGlzdCA+IC5pdGVtIGEuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjIgIWltcG9ydGFudDtcbn1cbi8qIEZsb2F0ZWQgQ29udGVudCAqL1xuLnVpW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXS5saXN0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5saXN0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLFxuLnVpLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtIDFlbSAwZW0gMGVtO1xufVxuLnVpLmxpc3QgLmxpc3QgPiAuaXRlbSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSxcbi51aS5saXN0ID4gLml0ZW0gW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbSxcbi51aS5tZW51IC51aS5saXN0IC5saXN0ID4gLml0ZW0ge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIHBhZGRpbmc6IDAuMjE0Mjg1NzFlbSAwZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE0Mjg1NzE0ZW07XG59XG4udWkubWVudSAudWkubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5tZW51IC51aS5saXN0ID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMGVtO1xufVxuLnVpLm1lbnUgLnVpLmxpc3QgLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkLFxuLnVpLm1lbnUgLnVpLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhvcml6b250YWwubGlzdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3Q6bm90KC5jZWxsZWQpID4gLml0ZW06Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0IHtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaWNvbixcbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmNvbnRlbnQsXG4udWkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKiBQYWRkaW5nIG9uIGFsbCBlbGVtZW50cyAqL1xuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogMC4yMTQyODU3MWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yMTQyODU3MWVtO1xufVxuLyogSG9yaXpvbnRhbCBMaXN0ICovXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiBpLmljb24ge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtIDAuMjVlbSAwZW0gMGVtO1xufVxuLnVpLmhvcml6b250YWwubGlzdCA+IC5pdGVtID4gLmljb24sXG4udWkuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0gPiAuaWNvbiArIC5jb250ZW50IHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5saXN0IC5saXN0ID4gLmRpc2FibGVkLml0ZW0sXG4udWkubGlzdCA+IC5kaXNhYmxlZC5pdGVtIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDQwLCA0MCwgNDAsIDAuMykgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gLmRpc2FibGVkLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGlzdCA+IC5kaXNhYmxlZC5pdGVtIHtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjUsIDIyNSwgMC4zKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubGlzdCAubGlzdCA+IGEuaXRlbTpob3ZlciAuaWNvbixcbi51aS5saXN0ID4gYS5pdGVtOmhvdmVyIC5pY29uIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gYS5pdGVtID4gLmljb24sXG4udWkuaW52ZXJ0ZWQubGlzdCA+IGEuaXRlbSA+IC5pY29uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gLml0ZW0gLmhlYWRlcixcbi51aS5pbnZlcnRlZC5saXN0ID4gLml0ZW0gLmhlYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbixcbi51aS5pbnZlcnRlZC5saXN0ID4gLml0ZW0gLmRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbn1cbi8qIEl0ZW0gTGluayAqL1xuLnVpLmludmVydGVkLmxpc3QgLmxpc3QgPiBhLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGlzdCA+IGEuaXRlbSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5pbnZlcnRlZC5saXN0IC5saXN0ID4gYS5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLmxpc3QgPiBhLml0ZW06aG92ZXIge1xuICBjb2xvcjogIzMyNzdiMjtcbn1cbi8qIExpbmtpbmcgQ29udGVudCAqL1xuLnVpLmludmVydGVkLmxpc3QgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5saXN0IC5pdGVtIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogIzMyNzdiMiAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpc3RbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLmltYWdlLFxuLnVpLmxpc3RbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0gLmNvbnRlbnQsXG4udWkubGlzdCBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XG59XG4udWkubGlzdFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSAuaW1hZ2UsXG4udWkubGlzdFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSAuY29udGVudCxcbi51aS5saXN0IFtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbn1cbi51aS5saXN0W2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIC5pbWFnZSxcbi51aS5saXN0W2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIC5jb250ZW50LFxuLnVpLmxpc3QgW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpbmsubGlzdCAuaXRlbSxcbi51aS5saW5rLmxpc3QgYS5pdGVtLFxuLnVpLmxpbmsubGlzdCAuaXRlbSBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgdHJhbnNpdGlvbjogMC4xcyBjb2xvciBlYXNlO1xufVxuLnVpLmxpbmsubGlzdC5saXN0IGEuaXRlbTpob3Zlcixcbi51aS5saW5rLmxpc3QubGlzdCAuaXRlbSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5saW5rLmxpc3QubGlzdCBhLml0ZW06YWN0aXZlLFxuLnVpLmxpbmsubGlzdC5saXN0IC5pdGVtIGE6bm90KC51aSk6YWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45KTtcbn1cbi51aS5saW5rLmxpc3QubGlzdCAuYWN0aXZlLml0ZW0sXG4udWkubGluay5saXN0Lmxpc3QgLmFjdGl2ZS5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IC5pdGVtLFxuLnVpLmludmVydGVkLmxpbmsubGlzdCBhLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGluay5saXN0IC5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IGEuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCAuaXRlbSBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQubGluay5saXN0Lmxpc3QgYS5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5saW5rLmxpc3QubGlzdCAuaXRlbSBhOm5vdCgudWkpOmFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLmxpbmsubGlzdC5saXN0IGEuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQubGluay5saXN0Lmxpc3QgLmFjdGl2ZS5pdGVtIGE6bm90KC51aSkge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMC41ZW0gMC41ZW07XG4gIG1hcmdpbjogMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3JkZXItcmFkaXVzOiAwLjVlbTtcbiAgdHJhbnNpdGlvbjogMC4xcyBjb2xvciBlYXNlLCAwLjFzIHBhZGRpbmctbGVmdCBlYXNlLCAwLjFzIGJhY2tncm91bmQtY29sb3IgZWFzZTtcbn1cbi51aS5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtOmxhc3QtY2hpbGQsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLnNlbGVjdGlvbi5saXN0Lmxpc3QgPiAuaXRlbTpob3Zlcixcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtOmFjdGl2ZSxcbi51aS5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG4udWkuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbS5hY3RpdmUsXG4udWkuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSxcbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTphY3RpdmUsXG4udWkuaW52ZXJ0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbTphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5zZWxlY3Rpb24ubGlzdCA+IC5pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyogQ2VsbGVkIC8gRGl2aWRlZCBTZWxlY3Rpb24gTGlzdCAqL1xuLnVpLmNlbGxlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLnNlbGVjdGlvbi5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbmltYXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmFuaW1hdGVkLmxpc3QgPiAuaXRlbSB7XG4gIHRyYW5zaXRpb246IDAuMjVzIGNvbG9yIGVhc2UgMC4xcywgMC4yNXMgcGFkZGluZy1sZWZ0IGVhc2UgMC4xcywgMC4yNXMgYmFja2dyb3VuZC1jb2xvciBlYXNlIDAuMXM7XG59XG4udWkuYW5pbWF0ZWQubGlzdDpub3QoLmhvcml6b250YWwpID4gLml0ZW06aG92ZXIge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZpdHRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5saXN0Om5vdCguc2VsZWN0aW9uKSAubGlzdCA+IC5pdGVtLFxuLnVpLmZpdHRlZC5saXN0Om5vdCguc2VsZWN0aW9uKSA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG4gIHBhZGRpbmctcmlnaHQ6IDBlbTtcbn1cbi51aS5maXR0ZWQuc2VsZWN0aW9uLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5maXR0ZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCdWxsZXRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xudWwudWkubGlzdCxcbi51aS5idWxsZXRlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG59XG51bC51aS5saXN0IGxpLFxuLnVpLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5idWxsZXRlZC5saXN0ID4gLml0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG51bC51aS5saXN0IGxpOmJlZm9yZSxcbi51aS5idWxsZXRlZC5saXN0IC5saXN0ID4gLml0ZW06YmVmb3JlLFxuLnVpLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tbGVmdDogLTEuMjVyZW07XG4gIGNvbnRlbnQ6ICfigKInO1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbnVsLnVpLmxpc3QgbGk6YmVmb3JlLFxuLnVpLmJ1bGxldGVkLmxpc3QgLmxpc3QgPiBhLml0ZW06YmVmb3JlLFxuLnVpLmJ1bGxldGVkLmxpc3QgPiBhLml0ZW06YmVmb3JlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG51bC51aS5saXN0IHVsLFxuLnVpLmJ1bGxldGVkLmxpc3QgLmxpc3Qge1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG59XG4vKiBIb3Jpem9udGFsIEJ1bGxldGVkICovXG51bC51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QsXG4udWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCBsaSxcbi51aS5ob3Jpem9udGFsLmJ1bGxldGVkLmxpc3QgPiAuaXRlbSB7XG4gIG1hcmdpbi1sZWZ0OiAxLjc1cmVtO1xufVxudWwudWkuaG9yaXpvbnRhbC5idWxsZXRlZC5saXN0IGxpOmZpcnN0LWNoaWxkLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCBsaTo6YmVmb3JlLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOjpiZWZvcmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbnVsLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCBsaTpmaXJzdC1jaGlsZDo6YmVmb3JlLFxuLnVpLmhvcml6b250YWwuYnVsbGV0ZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgT3JkZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xub2wudWkubGlzdCxcbi51aS5vcmRlcmVkLmxpc3QsXG4udWkub3JkZXJlZC5saXN0IC5saXN0LFxub2wudWkubGlzdCBvbCB7XG4gIGNvdW50ZXItcmVzZXQ6IG9yZGVyZWQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5vbC51aS5saXN0IGxpLFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLm9yZGVyZWQubGlzdCA+IC5pdGVtIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5vbC51aS5saXN0IGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmxpc3QgLmxpc3QgPiAuaXRlbTpiZWZvcmUsXG4udWkub3JkZXJlZC5saXN0ID4gLml0ZW06YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtO1xuICBjb3VudGVyLWluY3JlbWVudDogb3JkZXJlZDtcbiAgY29udGVudDogY291bnRlcnMob3JkZXJlZCwgXCIuXCIpIFwiIFwiO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG9wYWNpdHk6IDAuODtcbn1cbm9sLnVpLmludmVydGVkLmxpc3QgbGk6YmVmb3JlLFxuLnVpLm9yZGVyZWQuaW52ZXJ0ZWQubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5vcmRlcmVkLmludmVydGVkLmxpc3QgPiAuaXRlbTpiZWZvcmUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xufVxuLyogVmFsdWUgKi9cbi51aS5vcmRlcmVkLmxpc3QgPiAubGlzdCA+IC5pdGVtW2RhdGEtdmFsdWVdLFxuLnVpLm9yZGVyZWQubGlzdCA+IC5pdGVtW2RhdGEtdmFsdWVdIHtcbiAgY29udGVudDogYXR0cihkYXRhLXZhbHVlKTtcbn1cbm9sLnVpLmxpc3QgbGlbdmFsdWVdOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGF0dHIodmFsdWUpO1xufVxuLyogQ2hpbGQgTGlzdHMgKi9cbm9sLnVpLmxpc3Qgb2wsXG4udWkub3JkZXJlZC5saXN0IC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbm9sLnVpLmxpc3Qgb2wgbGk6YmVmb3JlLFxuLnVpLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAtMmVtO1xufVxuLyogSG9yaXpvbnRhbCBPcmRlcmVkICovXG5vbC51aS5ob3Jpem9udGFsLmxpc3QsXG4udWkub3JkZXJlZC5ob3Jpem9udGFsLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxub2wudWkuaG9yaXpvbnRhbC5saXN0IGxpOmJlZm9yZSxcbi51aS5vcmRlcmVkLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtOmJlZm9yZSxcbi51aS5vcmRlcmVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbjogMGVtIDAuNWVtIDBlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRlZC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kaXZpZGVkLmxpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuZGl2aWRlZC5saXN0IC5pdGVtIC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmRpdmlkZWQubGlzdCAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmRpdmlkZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkuZGl2aWRlZC5saXN0Om5vdCguaG9yaXpvbnRhbCkgLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbn1cbi8qIERpdmlkZWQgYnVsbGV0ZWQgKi9cbi51aS5kaXZpZGVkLmJ1bGxldGVkLmxpc3Q6bm90KC5ob3Jpem9udGFsKSxcbi51aS5kaXZpZGVkLmJ1bGxldGVkLmxpc3QgLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbn1cbi51aS5kaXZpZGVkLmJ1bGxldGVkLmxpc3QgPiAuaXRlbTpub3QoLmhvcml6b250YWwpIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xufVxuLyogRGl2aWRlZCBPcmRlcmVkICovXG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuZGl2aWRlZC5vcmRlcmVkLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi51aS5kaXZpZGVkLm9yZGVyZWQubGlzdCAuaXRlbSAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yMTQyODU3MWVtO1xufVxuLnVpLmRpdmlkZWQub3JkZXJlZC5saXN0IC5pdGVtIC5saXN0ID4gLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbn1cbi8qIERpdmlkZWQgU2VsZWN0aW9uICovXG4udWkuZGl2aWRlZC5zZWxlY3Rpb24ubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmRpdmlkZWQuc2VsZWN0aW9uLmxpc3QgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiBEaXZpZGVkIGhvcml6b250YWwgKi9cbi51aS5kaXZpZGVkLmhvcml6b250YWwubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG59XG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG59XG4udWkuZGl2aWRlZC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAwZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjY7XG59XG4udWkuaG9yaXpvbnRhbC5kaXZpZGVkLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5kaXZpZGVkLmludmVydGVkLmxpc3QgPiAuaXRlbSxcbi51aS5kaXZpZGVkLmludmVydGVkLmxpc3QgPiAubGlzdCxcbi51aS5kaXZpZGVkLmludmVydGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VsbGVkLmxpc3QgPiAuaXRlbSxcbi51aS5jZWxsZWQubGlzdCA+IC5saXN0IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogUGFkZGluZyBvbiBhbGwgZWxlbWVudHMgKi9cbi51aS5jZWxsZWQubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLmNlbGxlZC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwLjIxNDI4NTcxZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxZW07XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLmNlbGxlZC5saXN0IC5pdGVtIC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItd2lkdGg6IDBweDtcbn1cbi51aS5jZWxsZWQubGlzdCAubGlzdCA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xufVxuLyogQ2VsbGVkIEJ1bGxldGVkICovXG4udWkuY2VsbGVkLmJ1bGxldGVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmNlbGxlZC5idWxsZXRlZC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmJ1bGxldGVkLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi51aS5jZWxsZWQuYnVsbGV0ZWQubGlzdCAuaXRlbSAubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMS4yNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMjE0Mjg1NzFlbTtcbn1cbi8qIENlbGxlZCBPcmRlcmVkICovXG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG59XG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLmNlbGxlZC5vcmRlcmVkLmxpc3QgPiAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMS4yNXJlbTtcbn1cbi51aS5jZWxsZWQub3JkZXJlZC5saXN0IC5pdGVtIC5saXN0IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjIxNDI4NTcxZW07XG59XG4udWkuY2VsbGVkLm9yZGVyZWQubGlzdCAubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxZW07XG59XG4vKiBDZWxsZWQgSG9yaXpvbnRhbCAqL1xuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3Qge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmhvcml6b250YWwuY2VsbGVkLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0ID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDAuNjtcbn1cbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0IC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCxcbi51aS5ob3Jpem9udGFsLmNlbGxlZC5saXN0ID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmNlbGxlZC5pbnZlcnRlZC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmludmVydGVkLmxpc3QgPiAubGlzdCB7XG4gIGJvcmRlci1jb2xvcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51aS5jZWxsZWQuaW52ZXJ0ZWQuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuY2VsbGVkLmludmVydGVkLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlbGF4ZWQubGlzdDpub3QoLmhvcml6b250YWwpID4gLml0ZW06bm90KDpmaXJzdC1jaGlsZCkge1xuICBwYWRkaW5nLXRvcDogMC40Mjg1NzE0M2VtO1xufVxuLnVpLnJlbGF4ZWQubGlzdDpub3QoLmhvcml6b250YWwpID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjQyODU3MTQzZW07XG59XG4udWkuaG9yaXpvbnRhbC5yZWxheGVkLmxpc3QgLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuLnVpLmhvcml6b250YWwucmVsYXhlZC5saXN0IC5saXN0ID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSxcbi51aS5ob3Jpem9udGFsLnJlbGF4ZWQubGlzdCA+IC5pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuLyogVmVyeSBSZWxheGVkICovXG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3Q6bm90KC5ob3Jpem9udGFsKSA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgcGFkZGluZy10b3A6IDAuODU3MTQyODZlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdDpub3QoLmhvcml6b250YWwpID4gLml0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjg1NzE0Mjg2ZW07XG59XG4udWkuaG9yaXpvbnRhbFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ubGlzdCAubGlzdCA+IC5pdGVtOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLnVpLmhvcml6b250YWxbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3QgPiAuaXRlbTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xufVxuLnVpLmhvcml6b250YWxbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3QgLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpLFxuLnVpLmhvcml6b250YWxbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmxpc3QgPiAuaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkubGlzdCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnRpbnkubGlzdCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xufVxuLnVpLnNtYWxsLmxpc3Qge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbn1cbi51aS5saXN0IHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFyZ2UubGlzdCB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmJpZy5saXN0IHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5ZW07XG59XG4udWkuaHVnZS5saXN0IHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzZW07XG59XG4udWkubWFzc2l2ZS5saXN0IHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4udWkubWluaS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5taW5pLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkudGlueS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbn1cbi51aS5zbWFsbC5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5zbWFsbC5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5ob3Jpem9udGFsLmxpc3QgLmxpc3QgPiAuaXRlbSxcbi51aS5sYXJnZS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5iaWcuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuYmlnLmhvcml6b250YWwubGlzdCA+IC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5saXN0IC5saXN0ID4gLml0ZW0sXG4udWkuaHVnZS5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmhvcml6b250YWwubGlzdCAubGlzdCA+IC5pdGVtLFxuLnVpLm1hc3NpdmUuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIExvYWRlclxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMb2FkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTb21lIGdsb2JhbCBsb2FkZXIgc3R5bGVzIGRlZmluZWQgaW4gc2l0ZS52YXJpYWJsZXMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU3RhbmRhcmRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGV4dCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFeGFjdCBTaXplcyAoQXZvaWRzIFJvdW5kaW5nIEVycm9ycykgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExvYWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNvbWUgZ2xvYmFsIGxvYWRlciBzdHlsZXMgZGVmaW5lZCBpbiBzaXRlLnZhcmlhYmxlcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFuZGFyZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEV4YWN0IFNpemVzIChBdm9pZHMgUm91bmRpbmcgRXJyb3JzKSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBMb2FkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTdGFuZGFyZCBTaXplICovXG4udWkubG9hZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB6LWluZGV4OiAxMDAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi8qIFN0YXRpYyBTaGFwZSAqL1xuLnVpLmxvYWRlcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4vKiBBY3RpdmUgU2hhcGUgKi9cbi51aS5sb2FkZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGFuaW1hdGlvbjogbG9hZGVyIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbn1cbi8qIEFjdGl2ZSBBbmltYXRpb24gKi9cbkBrZXlmcmFtZXMgbG9hZGVyIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qIFNpemVzICovXG4udWkubWluaS5sb2FkZXI6YmVmb3JlLFxuLnVpLm1pbmkubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMC41cmVtO1xufVxuLnVpLnRpbnkubG9hZGVyOmJlZm9yZSxcbi51aS50aW55LmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAxLjE0Mjg1NzE0cmVtO1xuICBoZWlnaHQ6IDEuMTQyODU3MTRyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTAuNTcxNDI4NTdyZW07XG59XG4udWkuc21hbGwubG9hZGVyOmJlZm9yZSxcbi51aS5zbWFsbC5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogMS43MTQyODU3MXJlbTtcbiAgaGVpZ2h0OiAxLjcxNDI4NTcxcmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjg1NzE0Mjg2cmVtO1xufVxuLnVpLmxvYWRlcjpiZWZvcmUsXG4udWkubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDIuMjg1NzE0MjlyZW07XG4gIGhlaWdodDogMi4yODU3MTQyOXJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5sYXJnZS5sb2FkZXI6YmVmb3JlLFxuLnVpLmxhcmdlLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAzLjQyODU3MTQzcmVtO1xuICBoZWlnaHQ6IDMuNDI4NTcxNDNyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTEuNzE0Mjg1NzFyZW07XG59XG4udWkuYmlnLmxvYWRlcjpiZWZvcmUsXG4udWkuYmlnLmxvYWRlcjphZnRlciB7XG4gIHdpZHRoOiAzLjcxNDI4NTcxcmVtO1xuICBoZWlnaHQ6IDMuNzE0Mjg1NzFyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gLTEuODU3MTQyODZyZW07XG59XG4udWkuaHVnZS5sb2FkZXI6YmVmb3JlLFxuLnVpLmh1Z2UubG9hZGVyOmFmdGVyIHtcbiAgd2lkdGg6IDQuMTQyODU3MTRyZW07XG4gIGhlaWdodDogNC4xNDI4NTcxNHJlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAtMi4wNzE0Mjg1N3JlbTtcbn1cbi51aS5tYXNzaXZlLmxvYWRlcjpiZWZvcmUsXG4udWkubWFzc2l2ZS5sb2FkZXI6YWZ0ZXIge1xuICB3aWR0aDogNC41NzE0Mjg1N3JlbTtcbiAgaGVpZ2h0OiA0LjU3MTQyODU3cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0yLjI4NTcxNDI5cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2hvdyBpbnNpZGUgYWN0aXZlIGRpbW1lciAqL1xuLnVpLmRpbW1lciAubG9hZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBCbGFjayBEaW1tZXIgKi9cbi51aS5kaW1tZXIgLnVpLmxvYWRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuZGltbWVyIC51aS5sb2FkZXI6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVpLmRpbW1lciAudWkubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjRkZGRkZGIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuLyogV2hpdGUgRGltbWVyIChJbnZlcnRlZCkgKi9cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxvYWRlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyOmJlZm9yZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGV4dC5sb2FkZXIge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmluZGV0ZXJtaW5hdGUubG9hZGVyOmFmdGVyIHtcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjJzO1xufVxuLnVpLmxvYWRlci5hY3RpdmUsXG4udWkubG9hZGVyLnZpc2libGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5sb2FkZXIuZGlzYWJsZWQsXG4udWkubG9hZGVyLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVyICovXG4udWkuaW52ZXJ0ZWQuZGltbWVyIC51aS5taW5pLmxvYWRlcixcbi51aS5taW5pLmxvYWRlciB7XG4gIHdpZHRoOiAxcmVtO1xuICBoZWlnaHQ6IDFyZW07XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkudGlueS5sb2FkZXIsXG4udWkudGlueS5sb2FkZXIge1xuICB3aWR0aDogMS4xNDI4NTcxNHJlbTtcbiAgaGVpZ2h0OiAxLjE0Mjg1NzE0cmVtO1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLnNtYWxsLmxvYWRlcixcbi51aS5zbWFsbC5sb2FkZXIge1xuICB3aWR0aDogMS43MTQyODU3MXJlbTtcbiAgaGVpZ2h0OiAxLjcxNDI4NTcxcmVtO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxvYWRlcixcbi51aS5sb2FkZXIge1xuICB3aWR0aDogMi4yODU3MTQyOXJlbTtcbiAgaGVpZ2h0OiAyLjI4NTcxNDI5cmVtO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmxhcmdlLmxvYWRlcixcbi51aS5sYXJnZS5sb2FkZXIge1xuICB3aWR0aDogMy40Mjg1NzE0M3JlbTtcbiAgaGVpZ2h0OiAzLjQyODU3MTQzcmVtO1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLmJpZy5sb2FkZXIsXG4udWkuYmlnLmxvYWRlciB7XG4gIHdpZHRoOiAzLjcxNDI4NTcxcmVtO1xuICBoZWlnaHQ6IDMuNzE0Mjg1NzFyZW07XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLnVpLmludmVydGVkLmRpbW1lciAudWkuaHVnZS5sb2FkZXIsXG4udWkuaHVnZS5sb2FkZXIge1xuICB3aWR0aDogNC4xNDI4NTcxNHJlbTtcbiAgaGVpZ2h0OiA0LjE0Mjg1NzE0cmVtO1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgLnVpLm1hc3NpdmUubG9hZGVyLFxuLnVpLm1hc3NpdmUubG9hZGVyIHtcbiAgd2lkdGg6IDQuNTcxNDI4NTdyZW07XG4gIGhlaWdodDogNC41NzE0Mjg1N3JlbTtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4vKiBUZXh0IExvYWRlciAqL1xuLnVpLm1pbmkudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDFyZW07XG4gIHBhZGRpbmctdG9wOiAxLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDEuMTQyODU3MTRyZW07XG4gIHBhZGRpbmctdG9wOiAxLjkyODU3MTQzcmVtO1xufVxuLnVpLnNtYWxsLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAxLjcxNDI4NTcxcmVtO1xuICBwYWRkaW5nLXRvcDogMi41cmVtO1xufVxuLnVpLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAyLjI4NTcxNDI5cmVtO1xuICBwYWRkaW5nLXRvcDogMy4wNzE0Mjg1N3JlbTtcbn1cbi51aS5sYXJnZS50ZXh0LmxvYWRlciB7XG4gIG1pbi13aWR0aDogMy40Mjg1NzE0M3JlbTtcbiAgcGFkZGluZy10b3A6IDQuMjE0Mjg1NzFyZW07XG59XG4udWkuYmlnLnRleHQubG9hZGVyIHtcbiAgbWluLXdpZHRoOiAzLjcxNDI4NTcxcmVtO1xuICBwYWRkaW5nLXRvcDogNC41cmVtO1xufVxuLnVpLmh1Z2UudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDQuMTQyODU3MTRyZW07XG4gIHBhZGRpbmctdG9wOiA0LjkyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUudGV4dC5sb2FkZXIge1xuICBtaW4td2lkdGg6IDQuNTcxNDI4NTdyZW07XG4gIHBhZGRpbmctdG9wOiA1LjM1NzE0Mjg2cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSW52ZXJ0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5sb2FkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLmxvYWRlcjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4udWkuaW52ZXJ0ZWQubG9hZGVyOmFmdGVyIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI0ZGRkZGRjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIElubGluZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmlubGluZS5sb2FkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMGVtO1xuICBsZWZ0OiAwZW07XG4gIHRvcDogMGVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG4udWkuaW5saW5lLmxvYWRlci5hY3RpdmUsXG4udWkuaW5saW5lLmxvYWRlci52aXNpYmxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLyogQ2VudGVyZWQgSW5saW5lICovXG4udWkuY2VudGVyZWQuaW5saW5lLmxvYWRlci5hY3RpdmUsXG4udWkuY2VudGVyZWQuaW5saW5lLmxvYWRlci52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTG9hZGVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKiBLZXkgQ29udGVudCBTaXppbmcgKi9cbi8qIEludGVydmFsIGJldHdlZW4gY29uc2VjdXRpdmUgcGxhY2Vob2xkZXJzICovXG4vKiBSZXBlYXRlZCBQbGFjZWhvbGRlciAqL1xuLyogSW1hZ2UgKi9cbi8qIEhlYWRlciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBHbG93IEdyYWRpZW50ICovXG4vKiBWYXJpYXRpb25zICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyogS2V5IENvbnRlbnQgU2l6aW5nICovXG4vKiBJbnRlcnZhbCBiZXR3ZWVuIGNvbnNlY3V0aXZlIHBsYWNlaG9sZGVycyAqL1xuLyogUmVwZWF0ZWQgUGxhY2Vob2xkZXIgKi9cbi8qIEltYWdlICovXG4vKiBIZWFkZXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogR2xvdyBHcmFkaWVudCAqL1xuLyogVmFyaWF0aW9ucyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucGxhY2Vob2xkZXIge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbmltYXRpb246IHBsYWNlaG9sZGVyU2hpbW1lciAycyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC4wOCkgMCUsIHJnYmEoMCwgMCwgMCwgMC4xNSkgMTUlLCByZ2JhKDAsIDAsIDAsIDAuMDgpIDMwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMTIwMHB4IDEwMCU7XG4gIG1heC13aWR0aDogMzByZW07XG59XG5Aa2V5ZnJhbWVzIHBsYWNlaG9sZGVyU2hpbW1lciB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTIwMHB4IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTIwMHB4IDA7XG4gIH1cbn1cbi51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG4udWkucGxhY2Vob2xkZXIgKyAudWkucGxhY2Vob2xkZXIge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMTVzO1xufVxuLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzO1xufVxuLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyICsgLnVpLnBsYWNlaG9sZGVyIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjQ1cztcbn1cbi51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciArIC51aS5wbGFjZWhvbGRlciB7XG4gIGFuaW1hdGlvbi1kZWxheTogMC42cztcbn1cbi51aS5wbGFjZWhvbGRlcixcbi51aS5wbGFjZWhvbGRlciA+IDpiZWZvcmUsXG4udWkucGxhY2Vob2xkZXIgLmltYWdlLmhlYWRlcjphZnRlcixcbi51aS5wbGFjZWhvbGRlciAubGluZSxcbi51aS5wbGFjZWhvbGRlciAubGluZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG59XG4vKiBJbWFnZSAqL1xuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZTpub3QoLmhlYWRlcik6bm90KC51aSkge1xuICBoZWlnaHQ6IDEwMHB4O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5zcXVhcmUuaW1hZ2U6bm90KC5oZWFkZXIpIHtcbiAgaGVpZ2h0OiAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIDEvMSBhc3BlY3QgcmF0aW8gKi9cbiAgcGFkZGluZy10b3A6IDEwMCU7XG59XG4udWkucGxhY2Vob2xkZXIgLnJlY3Rhbmd1bGFyLmltYWdlOm5vdCguaGVhZGVyKSB7XG4gIGhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiA0LzMgYXNwZWN0IHJhdGlvICovXG4gIHBhZGRpbmctdG9wOiA3NSU7XG59XG4vKiBMaW5lcyAqL1xuLnVpLnBsYWNlaG9sZGVyIC5saW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDAuODU3MTQyODZlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpiZWZvcmUsXG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YWZ0ZXIge1xuICB0b3A6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YmVmb3JlIHtcbiAgbGVmdDogMHB4O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmFmdGVyIHtcbiAgcmlnaHQ6IDBweDtcbn1cbi8qIEFueSBMaW5lcyAqL1xuLnVpLnBsYWNlaG9sZGVyIC5saW5lIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOmFmdGVyIHtcbiAgaGVpZ2h0OiAwLjVlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuLyogSGVhZGVyIEltYWdlICsgMiBMaW5lcyAqL1xuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4vKiBMaW5lIE91dGRlbnQgKi9cbi51aS5wbGFjZWhvbGRlciAubGluZTpudGgtY2hpbGQoMSk6YWZ0ZXIge1xuICB3aWR0aDogMCU7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDIpOmFmdGVyIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAubGluZTpudGgtY2hpbGQoMyk6YWZ0ZXIge1xuICB3aWR0aDogMTAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5saW5lOm50aC1jaGlsZCg0KTphZnRlciB7XG4gIHdpZHRoOiAzNSU7XG59XG4udWkucGxhY2Vob2xkZXIgLmxpbmU6bnRoLWNoaWxkKDUpOmFmdGVyIHtcbiAgd2lkdGg6IDY1JTtcbn1cbi8qIEhlYWRlciBMaW5lIDEgJiAyKi9cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lIHtcbiAgbWFyZ2luLWJvdHRvbTogMC42NDI4NTcxNGVtO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIgLmxpbmU6YmVmb3JlLFxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIgLmxpbmU6YWZ0ZXIge1xuICBoZWlnaHQ6IDAuNjQyODU3MTRlbTtcbn1cbi51aS5wbGFjZWhvbGRlciAuaGVhZGVyIC5saW5lOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogMC42NDI4NTcxNGVtO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIgLmxpbmU6YWZ0ZXIge1xuICB3aWR0aDogMjAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5oZWFkZXIgLmxpbmU6bnRoLWNoaWxkKDIpOmFmdGVyIHtcbiAgd2lkdGg6IDYwJTtcbn1cbi8qIEltYWdlIEhlYWRlciAqL1xuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXIgLmxpbmUge1xuICBtYXJnaW4tbGVmdDogM2VtO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZS5oZWFkZXIgLmxpbmU6YmVmb3JlIHtcbiAgd2lkdGg6IDAuNzE0Mjg1NzFyZW07XG59XG4udWkucGxhY2Vob2xkZXIgLmltYWdlLmhlYWRlcjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDAuODU3MTQyODZlbTtcbiAgY29udGVudDogJyc7XG4gIG1hcmdpbi1sZWZ0OiAzZW07XG59XG4vKiBTcGFjaW5nICovXG4udWkucGxhY2Vob2xkZXIgLmltYWdlIC5saW5lOmZpcnN0LWNoaWxkLFxuLnVpLnBsYWNlaG9sZGVyIC5wYXJhZ3JhcGggLmxpbmU6Zmlyc3QtY2hpbGQsXG4udWkucGxhY2Vob2xkZXIgLmhlYWRlciAubGluZTpmaXJzdC1jaGlsZCB7XG4gIGhlaWdodDogMC4wMXB4O1xufVxuLnVpLnBsYWNlaG9sZGVyIC5pbWFnZTpub3QoOmZpcnN0LWNoaWxkKTpiZWZvcmUsXG4udWkucGxhY2Vob2xkZXIgLnBhcmFncmFwaDpub3QoOmZpcnN0LWNoaWxkKTpiZWZvcmUsXG4udWkucGxhY2Vob2xkZXIgLmhlYWRlcjpub3QoOmZpcnN0LWNoaWxkKTpiZWZvcmUge1xuICBoZWlnaHQ6IDEuNDI4NTcxNDNlbTtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogSW52ZXJ0ZWQgQ29udGVudCBMb2FkZXIgKi9cbi51aS5pbnZlcnRlZC5wbGFjZWhvbGRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAxNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgMzAlKTtcbn1cbi51aS5pbnZlcnRlZC5wbGFjZWhvbGRlcixcbi51aS5pbnZlcnRlZC5wbGFjZWhvbGRlciA+IDpiZWZvcmUsXG4udWkuaW52ZXJ0ZWQucGxhY2Vob2xkZXIgLmltYWdlLmhlYWRlcjphZnRlcixcbi51aS5pbnZlcnRlZC5wbGFjZWhvbGRlciAubGluZSxcbi51aS5pbnZlcnRlZC5wbGFjZWhvbGRlciAubGluZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBsYWNlaG9sZGVyIC5mdWxsLmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC52ZXJ5LmxvbmcubGluZS5saW5lLmxpbmU6YWZ0ZXIge1xuICB3aWR0aDogMTAlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC5sb25nLmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDM1JTtcbn1cbi51aS5wbGFjZWhvbGRlciAubWVkaXVtLmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS5wbGFjZWhvbGRlciAuc2hvcnQubGluZS5saW5lLmxpbmU6YWZ0ZXIge1xuICB3aWR0aDogNjUlO1xufVxuLnVpLnBsYWNlaG9sZGVyIC52ZXJ5LnNob3J0LmxpbmUubGluZS5saW5lOmFmdGVyIHtcbiAgd2lkdGg6IDgwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLnBsYWNlaG9sZGVyIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmFpbFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFJhaWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENsb3NlICovXG4vKiBEaXZpZGluZyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBSYWlsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDbG9zZSAqL1xuLyogRGl2aWRpbmcgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJhaWxzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnJhaWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpLmxlZnQucmFpbCB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwZW0gMnJlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAycmVtIDBlbSAwZW07XG59XG4udWkucmlnaHQucmFpbCB7XG4gIGxlZnQ6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAycmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDJyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnRlcm5hbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sZWZ0LmludGVybmFsLnJhaWwge1xuICBsZWZ0OiAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDJyZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMnJlbTtcbn1cbi51aS5yaWdodC5pbnRlcm5hbC5yYWlsIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDAlO1xuICBwYWRkaW5nOiAwZW0gMnJlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAycmVtIDBlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGl2aWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGl2aWRpbmcucmFpbCB7XG4gIHdpZHRoOiAzMDIuNXB4O1xufVxuLnVpLmxlZnQuZGl2aWRpbmcucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAyLjVyZW0gMGVtIDBlbTtcbiAgbWFyZ2luOiAwZW0gMi41cmVtIDBlbSAwZW07XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkucmlnaHQuZGl2aWRpbmcucmFpbCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgcGFkZGluZzogMGVtIDBlbSAwZW0gMi41cmVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDIuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXN0YW5jZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jbG9zZS5yYWlsIHtcbiAgd2lkdGg6IGNhbGMoIDMwMHB4ICArICAxZW0gKTtcbn1cbi51aS5jbG9zZS5sZWZ0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMWVtIDBlbSAwZW07XG4gIG1hcmdpbjogMGVtIDFlbSAwZW0gMGVtO1xufVxuLnVpLmNsb3NlLnJpZ2h0LnJhaWwge1xuICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAxZW07XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLnVpLnZlcnkuY2xvc2UucmFpbCB7XG4gIHdpZHRoOiBjYWxjKCAzMDBweCAgKyAgMC41ZW0gKTtcbn1cbi51aS52ZXJ5LmNsb3NlLmxlZnQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwLjVlbSAwZW0gMGVtO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLnZlcnkuY2xvc2UucmlnaHQucmFpbCB7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmF0dGFjaGVkLmxlZnQucmFpbCxcbi51aS5hdHRhY2hlZC5yaWdodC5yYWlsIHtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkucmFpbCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnJhaWwge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwucmFpbCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5yYWlsIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLnJhaWwge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLnJhaWwge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5yYWlsIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUucmFpbCB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBSZXZlYWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBSZXZlYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUeXBlcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBSZXZlYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUeXBlcyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBSZXZlYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkucmV2ZWFsIHtcbiAgZGlzcGxheTogaW5oZXJpdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB0b3A6IDBlbSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgei1pbmRleDogMyAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlIDAuMXM7XG59XG4udWkucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDIgIWltcG9ydGFudDtcbn1cbi8qIE1ha2Ugc3VyZSBob3ZlcmVkIGVsZW1lbnQgaXMgb24gdG9wIG9mIG90aGVyIHJldmVhbCAqL1xuLnVpLmFjdGl2ZS5yZXZlYWwgLnZpc2libGUuY29udGVudCxcbi51aS5yZXZlYWw6aG92ZXIgLnZpc2libGUuY29udGVudCB7XG4gIHotaW5kZXg6IDQgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2xpZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2xpZGUucmV2ZWFsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi51aS5zbGlkZS5yZXZlYWwgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlIDAuMXM7XG59XG4udWkuc2xpZGUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJldmVhbCA+IC5oaWRkZW4uY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5zbGlkZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJpZ2h0LnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUucmlnaHQucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnJpZ2h0LmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnNsaWRlLnJpZ2h0LnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS5yaWdodC5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLnJpZ2h0LnJldmVhbDpob3ZlciA+IC5oaWRkZW4uY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS51cC5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZS51cC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5zbGlkZS51cC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLnVwLmFjdGl2ZS5yZXZlYWwgPiAuaGlkZGVuLmNvbnRlbnQsXG4udWkuc2xpZGUudXAucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmRvd24ucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlLmRvd24uYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuc2xpZGUuZG93bi5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2xpZGUuZG93bi5hY3RpdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50LFxuLnVpLnNsaWRlLmRvd24ucmV2ZWFsOmhvdmVyID4gLmhpZGRlbi5jb250ZW50IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRmFkZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mYWRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLmZhZGUuYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkuZmFkZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgb3BhY2l0eTogMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1vdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW92ZS5yZXZlYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnVpLm1vdmUucmV2ZWFsID4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxKSAwLjFzO1xufVxuLnVpLm1vdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xufVxuLnVpLm1vdmUucmV2ZWFsID4gLmhpZGRlbi5jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5tb3ZlLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpICFpbXBvcnRhbnQ7XG59XG4udWkubW92ZS5yaWdodC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5tb3ZlLnJpZ2h0LnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLnVwLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLm1vdmUudXAucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgIWltcG9ydGFudDtcbn1cbi51aS5tb3ZlLmRvd24uYWN0aXZlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkubW92ZS5kb3duLnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSkgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUm90YXRlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJvdGF0ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcbiAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG59XG4udWkucm90YXRlLnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQsXG4udWkucm90YXRlLnJpZ2h0LnJldmVhbCA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b20gcmlnaHQ7XG59XG4udWkucm90YXRlLmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5yaWdodC5hY3RpdmUucmV2ZWFsID4gLnZpc2libGUuY29udGVudCxcbi51aS5yb3RhdGUucmlnaHQucmV2ZWFsOmhvdmVyID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDExMGRlZyk7XG59XG4udWkucm90YXRlLmxlZnQucmV2ZWFsID4gLnZpc2libGUuY29udGVudCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xufVxuLnVpLnJvdGF0ZS5sZWZ0LmFjdGl2ZS5yZXZlYWwgPiAudmlzaWJsZS5jb250ZW50LFxuLnVpLnJvdGF0ZS5sZWZ0LnJldmVhbDpob3ZlciA+IC52aXNpYmxlLmNvbnRlbnQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTEwZGVnKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5kaXNhYmxlZC5yZXZlYWw6aG92ZXIgPiAudmlzaWJsZS52aXNpYmxlLmNvbnRlbnQge1xuICBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLmRpc2FibGVkLnJldmVhbDpob3ZlciA+IC5oaWRkZW4uaGlkZGVuLmNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBDb3VwbGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5yZXZlYWwgPiAudWkucmliYm9uLmxhYmVsIHtcbiAgei1pbmRleDogNTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFZpc2libGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmlzaWJsZS5yZXZlYWwge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW5zdGFudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnN0YW50LnJldmVhbCA+IC5jb250ZW50IHtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHMgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJldmVhbCA+IC5jb250ZW50IHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU2VnbWVudFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNlZ21lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhZ2UgR3JpZCBTZWdtZW50ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQbGFjZWhvbGRlciAqL1xuLyogUGlsZWQgKi9cbi8qIENpcmN1bGFyICovXG4vKiBTdGFja2VkICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZGluZyBEaW1tZXIgKi9cbi8qIExvYWRpbmcgU3Bpbm5lciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBSYWlzZWQgKi9cbi8qIFBhZGRlZCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBCYXNpYyAqL1xuLyogQ29sb3JzICovXG4vKiBPcmRpbmFsaXR5ICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNlZ21lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhZ2UgR3JpZCBTZWdtZW50ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQbGFjZWhvbGRlciAqL1xuLyogUGlsZWQgKi9cbi8qIENpcmN1bGFyICovXG4vKiBTdGFja2VkICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTG9hZGluZyBEaW1tZXIgKi9cbi8qIExvYWRpbmcgU3Bpbm5lciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBSYWlzZWQgKi9cbi8qIFBhZGRlZCAqL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBCYXNpYyAqL1xuLyogQ29sb3JzICovXG4vKiBPcmRpbmFsaXR5ICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWdtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNlZ21lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIHBhZGRpbmc6IDFlbSAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5zZWdtZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLnNlZ21lbnQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qIFZlcnRpY2FsICovXG4udWkudmVydGljYWwuc2VnbWVudCB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkudmVydGljYWwuc2VnbWVudDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIExvb3NlIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIZWFkZXIgKi9cbi51aS5pbnZlcnRlZC5zZWdtZW50ID4gLnVpLmhlYWRlciB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogTGFiZWwgKi9cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0uc2VnbWVudCA+IFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnNlZ21lbnQgPiBbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLmxhYmVsIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMGVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtO1xufVxuLnVpLmF0dGFjaGVkLnNlZ21lbnQ6bm90KC50b3ApOm5vdCguYm90dG9tKSA+IFtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0ubGFiZWwge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwZW07XG59XG4udWkuYXR0YWNoZWQuc2VnbWVudDpub3QoLnRvcCk6bm90KC5ib3R0b20pID4gW2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXS5sYWJlbCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi8qIEdyaWQgKi9cbi51aS5wYWdlLmdyaWQuc2VnbWVudCxcbi51aS5ncmlkID4gLnJvdyA+IC51aS5zZWdtZW50LmNvbHVtbixcbi51aS5ncmlkID4gLnVpLnNlZ21lbnQuY29sdW1uIHtcbiAgcGFkZGluZy10b3A6IDJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJlbTtcbn1cbi51aS5ncmlkLnNlZ21lbnQge1xuICBtYXJnaW46IDFyZW0gMGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLyogVGFibGUgKi9cbi51aS5iYXNpYy50YWJsZS5zZWdtZW50IHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGUuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDFlbSAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFBsYWNlaG9sZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICBhbmltYXRpb246IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwYWRkaW5nOiAxZW0gMWVtO1xuICBtaW4taGVpZ2h0OiAxOHJlbTtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDI1cHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMDUpIGluc2V0O1xufVxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmJ1dHRvbixcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IHRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuZmllbGQsXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCB0ZXh0YXJlYSxcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50ID4gLnVpLmlucHV0LFxuLnVpLnBsYWNlaG9sZGVyLnNlZ21lbnQgLmJ1dHRvbiB7XG4gIG1heC13aWR0aDogMTVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuY29sdW1uIC5idXR0b24sXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuY29sdW1uIC5maWVsZCxcbi51aS5wbGFjZWhvbGRlci5zZWdtZW50IC5jb2x1bW4gdGV4dGFyZWEsXG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCAuY29sdW1uID4gLnVpLmlucHV0IHtcbiAgbWF4LXdpZHRoOiAxNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50ID4gLmlubGluZSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbi51aS5wbGFjZWhvbGRlci5zZWdtZW50ID4gLmlubGluZSA+IC5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBweCAwLjM1NzE0Mjg2cmVtIDBweCAwcHg7XG59XG4udWkucGxhY2Vob2xkZXIuc2VnbWVudCA+IC5pbmxpbmUgPiAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQaWxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBpbGVkLnNlZ21lbnRzLFxuLnVpLnBpbGVkLnNlZ21lbnQge1xuICBtYXJnaW46IDNlbSAwZW07XG4gIGJveC1zaGFkb3c6ICcnO1xuICB6LWluZGV4OiBhdXRvO1xufVxuLnVpLnBpbGVkLnNlZ21lbnQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkucGlsZWQuc2VnbWVudDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnBpbGVkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5waWxlZC5zZWdtZW50OmFmdGVyLFxuLnVpLnBpbGVkLnNlZ21lbnQ6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAnJztcbn1cbi51aS5waWxlZC5zZWdtZW50czpiZWZvcmUsXG4udWkucGlsZWQuc2VnbWVudDpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMS4yZGVnKTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMjtcbn1cbi51aS5waWxlZC5zZWdtZW50czphZnRlcixcbi51aS5waWxlZC5zZWdtZW50OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMS4yZGVnKTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMTtcbn1cbi8qIFBpbGVkIEF0dGFjaGVkICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnBpbGVkLnNlZ21lbnQge1xuICBtYXJnaW4tdG9wOiAzZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5waWxlZC5zZWdtZW50W2NsYXNzKj1cImJvdHRvbSBhdHRhY2hlZFwiXSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogM2VtO1xufVxuLnVpLnBpbGVkLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGFja2VkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhY2tlZC5zZWdtZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDEuNGVtO1xufVxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YWZ0ZXIsXG4udWkuc3RhY2tlZC5zZWdtZW50OmJlZm9yZSxcbi51aS5zdGFja2VkLnNlZ21lbnQ6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0zcHg7XG4gIGxlZnQ6IDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNnB4O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnVpLnN0YWNrZWQuc2VnbWVudHM6YmVmb3JlLFxuLnVpLnN0YWNrZWQuc2VnbWVudDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQWRkIGFkZGl0aW9uYWwgcGFnZSAqL1xuLnVpLnRhbGwuc3RhY2tlZC5zZWdtZW50czpiZWZvcmUsXG4udWkudGFsbC5zdGFja2VkLnNlZ21lbnQ6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvdHRvbTogMHB4O1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmJlZm9yZSxcbi51aS5zdGFja2VkLmludmVydGVkLnNlZ21lbnRzOmFmdGVyLFxuLnVpLnN0YWNrZWQuaW52ZXJ0ZWQuc2VnbWVudDpiZWZvcmUsXG4udWkuc3RhY2tlZC5pbnZlcnRlZC5zZWdtZW50OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQYWRkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWRkZWQuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDEuNWVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnNlZ21lbnQge1xuICBwYWRkaW5nOiAzZW07XG59XG4vKiBQYWRkZWQgdmVydGljYWwgKi9cbi51aS5wYWRkZWQuc2VnbWVudC52ZXJ0aWNhbC5zZWdtZW50LFxuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnZlcnRpY2FsLnNlZ21lbnQge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgcGFkZGluZy1yaWdodDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbXBhY3Quc2VnbWVudCB7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLyogQ29tcGFjdCBHcm91cCAqL1xuLnVpLmNvbXBhY3Quc2VnbWVudHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbi51aS5jb21wYWN0LnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNlZ21lbnRzIC5jb21wYWN0LnNlZ21lbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAxIGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDaXJjdWxhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNpcmN1bGFyLnNlZ21lbnQge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nOiAyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSYWlzZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yYWlzZWQuc2VnbWVudHMsXG4udWkucmFpc2VkLnNlZ21lbnQge1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyb3Vwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEdyb3VwICovXG4udWkuc2VnbWVudHMge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMXJlbSAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi51aS5zZWdtZW50czpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zZWdtZW50czpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogTmVzdGVkIFNlZ21lbnQgKi9cbi51aS5zZWdtZW50cyA+IC5zZWdtZW50IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtO1xuICB3aWR0aDogYXV0bztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLnNlZ21lbnRzOm5vdCguaG9yaXpvbnRhbCkgPiAuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdG9wOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLyogQm90dG9tICovXG4udWkuc2VnbWVudHM6bm90KC5ob3Jpem9udGFsKSA+IC5zZWdtZW50Omxhc3QtY2hpbGQge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi8qIE9ubHkgKi9cbi51aS5zZWdtZW50czpub3QoLmhvcml6b250YWwpID4gLnNlZ21lbnQ6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKiBOZXN0ZWQgR3JvdXAgKi9cbi51aS5zZWdtZW50cyA+IC51aS5zZWdtZW50cyB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAxcmVtO1xufVxuLnVpLnNlZ21lbnRzID4gLnNlZ21lbnRzOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi51aS5zZWdtZW50cyA+IC5zZWdtZW50ICsgLnNlZ21lbnRzOm5vdCguaG9yaXpvbnRhbCkge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKiBIb3Jpem9udGFsIEdyb3VwICovXG4udWkuaG9yaXpvbnRhbC5zZWdtZW50cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIHBhZGRpbmc6IDBlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAxcmVtIDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm9yZGVyOiBub25lO1xufVxuLyogTmVzdGVkIEhvcml6b250YWwgR3JvdXAgKi9cbi51aS5zZWdtZW50cyA+IC5ob3Jpem9udGFsLnNlZ21lbnRzIHtcbiAgbWFyZ2luOiAwZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIEhvcml6b250YWwgU2VnbWVudCAqL1xuLnVpLmhvcml6b250YWwuc2VnbWVudHMgPiAuc2VnbWVudCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICAtbXMtZmxleDogMSAxIDBweDtcbiAgLyogU29sdmVzICMyNTUwIE1TIEZsZXggKi9cbiAgbWFyZ2luOiAwZW07XG4gIG1pbi13aWR0aDogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEJvcmRlciBGaXhlcyAqL1xuLnVpLnNlZ21lbnRzID4gLmhvcml6b250YWwuc2VnbWVudHM6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmhvcml6b250YWwuc2VnbWVudHMgPiAuc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXNhYmxlZC5zZWdtZW50IHtcbiAgb3BhY2l0eTogMC40NTtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuc2VnbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG59XG4udWkubG9hZGluZy5zZWdtZW50OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIHotaW5kZXg6IDEwMDtcbn1cbi51aS5sb2FkaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjVlbSAwZW0gMGVtIC0xLjVlbTtcbiAgd2lkdGg6IDNlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIGFuaW1hdGlvbjogc2VnbWVudC1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgei1pbmRleDogMTAxO1xufVxuQGtleWZyYW1lcyBzZWdtZW50LXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmFzaWMuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2xlYXJpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jbGVhcmluZy5zZWdtZW50OmFmdGVyIHtcbiAgY29udGVudDogXCIuXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLnJlZC5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNEQjI4MjggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5yZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNGMjcxMUMgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2Uuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLnllbGxvdy5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNGQkJEMDggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQkJEMDggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIE9saXZlICovXG4udWkub2xpdmUuc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjQjVDQzE4ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4uc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFRlYWwgKi9cbi51aS50ZWFsLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnRlYWwuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJsdWUgKi9cbi51aS5ibHVlLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmJsdWUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLnB1cnBsZS5zZWdtZW50Om5vdCguaW52ZXJ0ZWQpIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNBMzMzQzggIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBMzMzQzggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFBpbmsgKi9cbi51aS5waW5rLnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI0UwMzk5NyAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLnBpbmsuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJyb3duICovXG4udWkuYnJvd24uc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjQTU2NzNGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmV5LnNlZ21lbnQ6bm90KC5pbnZlcnRlZCkge1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzc2NzY3NiAhaW1wb3J0YW50O1xufVxuLnVpLmludmVydGVkLmdyZXkuc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJsYWNrICovXG4udWkuYmxhY2suc2VnbWVudDpub3QoLmludmVydGVkKSB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMUIxQzFEICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQuYmxhY2suc2VnbWVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uc2VnbWVudCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5zZWdtZW50IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4udWlbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uc2VnbWVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbG9hdGVkLnNlZ21lbnQsXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLnNlZ21lbnQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG4udWlbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXS5zZWdtZW50IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLnNlZ21lbnQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuaW52ZXJ0ZWQuc2VnbWVudCxcbi51aS5wcmltYXJ5LmludmVydGVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyogTmVzdGVkICovXG4udWkuaW52ZXJ0ZWQuc2VnbWVudCAuc2VnbWVudCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmludmVydGVkLnNlZ21lbnQgLmludmVydGVkLnNlZ21lbnQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyogQXR0YWNoZWQgKi9cbi51aS5pbnZlcnRlZC5hdHRhY2hlZC5zZWdtZW50IHtcbiAgYm9yZGVyLWNvbG9yOiAjNTU1NTU1O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEVtcGhhc2lzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWNvbmRhcnkgKi9cbi51aS5zZWNvbmRhcnkuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kOiAjNGM0ZjUyIGxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAxMDAlKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi8qIFRlcnRpYXJ5ICovXG4udWkudGVydGlhcnkuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICNEQ0REREU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4udWkudGVydGlhcnkuaW52ZXJ0ZWQuc2VnbWVudCB7XG4gIGJhY2tncm91bmQ6ICM3MTc1NzkgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgMTAwJSk7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaWRkbGUgKi9cbi51aS5hdHRhY2hlZC5zZWdtZW50IHtcbiAgdG9wOiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIG1hcmdpbjogMGVtIC0xcHg7XG4gIHdpZHRoOiBjYWxjKDEwMiUpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAyJSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNENEQ0RDU7XG59XG4udWkuYXR0YWNoZWQ6bm90KC5tZXNzYWdlKSArIC51aS5hdHRhY2hlZC5zZWdtZW50Om5vdCgudG9wKSB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBUb3AgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYXR0YWNoZWRcIl0uc2VnbWVudCB7XG4gIGJvdHRvbTogMHB4O1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIHRvcDogMHB4O1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS5zZWdtZW50W2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIEJvdHRvbSAqL1xuLnVpLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdIHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnNlZ21lbnRbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkubWluaS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkudGlueS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLnNtYWxsLnNlZ21lbnQge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuc2VnbWVudHMgLnNlZ21lbnQsXG4udWkuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5sYXJnZS5zZWdtZW50IHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5zZWdtZW50cyAuc2VnbWVudCxcbi51aS5iaWcuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLmh1Z2Uuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLnNlZ21lbnRzIC5zZWdtZW50LFxuLnVpLm1hc3NpdmUuc2VnbWVudCB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTdGVwXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgTG9hZCBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgR3JvdXBcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogVGl0bGUgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBBcnJvdyAqL1xuLyogTW9iaWxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb21wbGV0ZWQgKi9cbi8qIEhvdmVyICovXG4vKiBEb3duICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSArIEhvdmVyICovXG4vKiBEaXNhYmxlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RlcFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEdyb3VwXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIFRpdGxlICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogQXJyb3cgKi9cbi8qIE1vYmlsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFZlcnRpY2FsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29tcGxldGVkICovXG4vKiBIb3ZlciAqL1xuLyogRG93biAqL1xuLyogQWN0aXZlICovXG4vKiBBY3RpdmUgKyBIb3ZlciAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUGx1cmFsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnN0ZXBzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIGJhY2tncm91bmQ6ICcnO1xuICBib3gtc2hhZG93OiBub25lO1xuICBsaW5lLWhlaWdodDogMS4xNDI4NTcxNGVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogRmlyc3QgU3RlcHMgKi9cbi51aS5zdGVwczpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi8qIExhc3QgU3RlcHMgKi9cbi51aS5zdGVwczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU2luZ3VsYXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc3RlcHMgLnN0ZXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDBlbSAwZW07XG4gIHBhZGRpbmc6IDEuMTQyODU3MTRlbSAyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xufVxuLyogQXJyb3cgKi9cbi51aS5zdGVwcyAuc3RlcDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICByaWdodDogMCU7XG4gIGJvcmRlcjogbWVkaXVtIG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHdpZHRoOiAxLjE0Mjg1NzE0ZW07XG4gIGhlaWdodDogMS4xNDI4NTcxNGVtO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci13aWR0aDogMHB4IDFweCAxcHggMHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKC00NWRlZyk7XG59XG4vKiBGaXJzdCBTdGVwICovXG4udWkuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLWxlZnQ6IDJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKiBMYXN0IFN0ZXAgKi9cbi51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4udWkuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKiBPbmx5IFN0ZXAgKi9cbi51aS5zdGVwcyAuc3RlcDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGl0bGUgKi9cbi51aS5zdGVwcyAuc3RlcCAudGl0bGUge1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuMTQyODU3MTRlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAudGl0bGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIERlc2NyaXB0aW9uICovXG4udWkuc3RlcHMgLnN0ZXAgLmRlc2NyaXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnN0ZXBzIC5zdGVwID4gLmRlc2NyaXB0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuc3RlcHMgLnN0ZXAgLnRpdGxlIH4gLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMC4yNWVtO1xufVxuLyogSWNvbiAqL1xuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24ge1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC1zaXplOiAyLjVlbTtcbiAgbWFyZ2luOiAwZW0gMXJlbSAwZW0gMGVtO1xufVxuLnVpLnN0ZXBzIC5zdGVwID4gLmljb24sXG4udWkuc3RlcHMgLnN0ZXAgPiAuaWNvbiB+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG59XG4udWkuc3RlcHMgLnN0ZXAgPiAuaWNvbiB+IC5jb250ZW50IHtcbiAgZmxleC1ncm93OiAxIDAgYXV0bztcbn1cbi8qIEhvcml6b250YWwgSWNvbiAqL1xuLnVpLnN0ZXBzOm5vdCgudmVydGljYWwpIC5zdGVwID4gLmljb24ge1xuICB3aWR0aDogYXV0bztcbn1cbi8qIExpbmsgKi9cbi51aS5zdGVwcyAubGluay5zdGVwLFxuLnVpLnN0ZXBzIGEuc3RlcCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgT3JkZXJlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5vcmRlcmVkLnN0ZXBzIHtcbiAgY291bnRlci1yZXNldDogb3JkZXJlZDtcbn1cbi51aS5vcmRlcmVkLnN0ZXBzIC5zdGVwOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbnRlbnQ6IGNvdW50ZXJzKG9yZGVyZWQsIFwiLlwiKTtcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIGZvbnQtc2l6ZTogMi41ZW07XG4gIGNvdW50ZXItaW5jcmVtZW50OiBvcmRlcmVkO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcCA+ICoge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFZlcnRpY2FsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZlcnRpY2FsLnN0ZXBzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIHBhZGRpbmc6IDEuMTQyODU3MTRlbSAyZW07XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nOiAxLjE0Mjg1NzE0ZW0gMmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWkudmVydGljYWwuc3RlcHMgLnN0ZXA6b25seS1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKiBBcnJvdyAqL1xuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDphZnRlciB7XG4gIHRvcDogNTAlO1xuICByaWdodDogMCU7XG4gIGJvcmRlci13aWR0aDogMHB4IDFweCAxcHggMHB4O1xufVxuLnVpLnZlcnRpY2FsLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuYWN0aXZlLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS52ZXJ0aWNhbC5zdGVwcyAuYWN0aXZlLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICBSZXNwb25zaXZlXG4tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vYmlsZSAoRGVmYXVsdCkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgICBwYWRkaW5nOiAxLjE0Mjg1NzE0ZW0gMmVtO1xuICB9XG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZzogMS4xNDI4NTcxNGVtIDJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbiAgfVxuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG4gIH1cbiAgLyogQXJyb3cgKi9cbiAgLnVpLnN0ZXBzOm5vdCgudW5zdGFja2FibGUpIC5zdGVwOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogQ29udGVudCAqL1xuICAudWkuc3RlcHM6bm90KC51bnN0YWNrYWJsZSkgLnN0ZXAgLmNvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAvKiBJY29uICovXG4gIC51aS5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcCA+IC5pY29uLFxuICAudWkub3JkZXJlZC5zdGVwczpub3QoLnVuc3RhY2thYmxlKSAuc3RlcDpiZWZvcmUge1xuICAgIG1hcmdpbjogMGVtIDBlbSAxcmVtIDBlbTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMaW5rIEhvdmVyICovXG4udWkuc3RlcHMgLmxpbmsuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgLmxpbmsuc3RlcDpob3Zlcixcbi51aS5zdGVwcyBhLnN0ZXA6aG92ZXI6OmFmdGVyLFxuLnVpLnN0ZXBzIGEuc3RlcDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBMaW5rIERvd24gKi9cbi51aS5zdGVwcyAubGluay5zdGVwOmFjdGl2ZTo6YWZ0ZXIsXG4udWkuc3RlcHMgLmxpbmsuc3RlcDphY3RpdmUsXG4udWkuc3RlcHMgYS5zdGVwOmFjdGl2ZTo6YWZ0ZXIsXG4udWkuc3RlcHMgYS5zdGVwOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zdGVwcyAuc3RlcC5hY3RpdmUge1xuICBjdXJzb3I6IGF1dG87XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG59XG4udWkuc3RlcHMgLnN0ZXAuYWN0aXZlOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogI0YzRjRGNTtcbn1cbi51aS5zdGVwcyAuc3RlcC5hY3RpdmUgLnRpdGxlIHtcbiAgY29sb3I6ICMyQzZBOUU7XG59XG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcC5hY3RpdmU6YmVmb3JlLFxuLnVpLnN0ZXBzIC5hY3RpdmUuc3RlcCAuaWNvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogQWN0aXZlIEFycm93ICovXG4udWkuc3RlcHMgLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXA6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5zdGVwcyAuc3RlcDpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5zdGVwcyAuYWN0aXZlLnN0ZXA6bGFzdC1jaGlsZDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBBY3RpdmUgSG92ZXIgKi9cbi51aS5zdGVwcyAubGluay5hY3RpdmUuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgLmxpbmsuYWN0aXZlLnN0ZXA6aG92ZXIsXG4udWkuc3RlcHMgYS5hY3RpdmUuc3RlcDpob3Zlcjo6YWZ0ZXIsXG4udWkuc3RlcHMgYS5hY3RpdmUuc3RlcDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogI0RDRERERTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBDb21wbGV0ZWQgKi9cbi51aS5zdGVwcyAuc3RlcC5jb21wbGV0ZWQgPiAuaWNvbjpiZWZvcmUsXG4udWkub3JkZXJlZC5zdGVwcyAuc3RlcC5jb21wbGV0ZWQ6YmVmb3JlIHtcbiAgY29sb3I6ICMyMUJBNDU7XG59XG4vKiBEaXNhYmxlZCAqL1xuLnVpLnN0ZXBzIC5kaXNhYmxlZC5zdGVwIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCxcbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcCAudGl0bGUsXG4udWkuc3RlcHMgLmRpc2FibGVkLnN0ZXAgLmRlc2NyaXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKTtcbn1cbi51aS5zdGVwcyAuZGlzYWJsZWQuc3RlcDphZnRlciB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGFibGV0IE9yIEJlbG93ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC8qIFN0ZXBzICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgICBwYWRkaW5nOiAxLjE0Mjg1NzE0ZW0gMmVtO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nOiAxLjE0Mjg1NzE0ZW0gMmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xuICB9XG4gIC8qIEFycm93ICovXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnN0ZXBzIC5zdGVwOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLyogQ29udGVudCAqL1xuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS5zdGVwcyAuc3RlcCAuY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC8qIEljb24gKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0uc3RlcHMgLnN0ZXAgPiAuaWNvbixcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0ub3JkZXJlZC5zdGVwcyAuc3RlcDpiZWZvcmUge1xuICAgIG1hcmdpbjogMGVtIDBlbSAxcmVtIDBlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbHVpZCAqL1xuLnVpLmZsdWlkLnN0ZXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgKi9cbi51aS5hdHRhY2hlZC5zdGVwcyB7XG4gIHdpZHRoOiBjYWxjKDEwMiUpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIC0xcHggMDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMiUpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS5hdHRhY2hlZC5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwZW07XG59XG4udWkuYXR0YWNoZWQuc3RlcHMgLnN0ZXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4vKiBCb3R0b20gKi9cbi51aS5ib3R0b20uYXR0YWNoZWQuc3RlcHMge1xuICBtYXJnaW46IDAgLTFweCAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLmJvdHRvbS5hdHRhY2hlZC5zdGVwcyAuc3RlcDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLnN0ZXBzIC5zdGVwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRXZlbmx5IERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5vbmUuc3RlcHMsXG4udWkudHdvLnN0ZXBzLFxuLnVpLnRocmVlLnN0ZXBzLFxuLnVpLmZvdXIuc3RlcHMsXG4udWkuZml2ZS5zdGVwcyxcbi51aS5zaXguc3RlcHMsXG4udWkuc2V2ZW4uc3RlcHMsXG4udWkuZWlnaHQuc3RlcHMge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5vbmUuc3RlcHMgPiAuc3RlcCxcbi51aS50d28uc3RlcHMgPiAuc3RlcCxcbi51aS50aHJlZS5zdGVwcyA+IC5zdGVwLFxuLnVpLmZvdXIuc3RlcHMgPiAuc3RlcCxcbi51aS5maXZlLnN0ZXBzID4gLnN0ZXAsXG4udWkuc2l4LnN0ZXBzID4gLnN0ZXAsXG4udWkuc2V2ZW4uc3RlcHMgPiAuc3RlcCxcbi51aS5laWdodC5zdGVwcyA+IC5zdGVwIHtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG4udWkub25lLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkudGhyZWUuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAzMy4zMzMlO1xufVxuLnVpLmZvdXIuc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWkuZml2ZS5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5zaXguc3RlcHMgPiAuc3RlcCB7XG4gIHdpZHRoOiAxNi42NjYlO1xufVxuLnVpLnNldmVuLnN0ZXBzID4gLnN0ZXAge1xuICB3aWR0aDogMTQuMjg1JTtcbn1cbi51aS5laWdodC5zdGVwcyA+IC5zdGVwIHtcbiAgd2lkdGg6IDEyLjUwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuc3RlcHMgLnN0ZXAsXG4udWkubWluaS5zdGVwIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuc3RlcHMgLnN0ZXAsXG4udWkudGlueS5zdGVwIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLnN0ZXBzIC5zdGVwLFxuLnVpLnNtYWxsLnN0ZXAge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuc3RlcHMgLnN0ZXAsXG4udWkuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5zdGVwcyAuc3RlcCxcbi51aS5sYXJnZS5zdGVwIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5zdGVwcyAuc3RlcCxcbi51aS5iaWcuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5odWdlLnN0ZXBzIC5zdGVwLFxuLnVpLmh1Z2Uuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLnN0ZXBzIC5zdGVwLFxuLnVpLm1hc3NpdmUuc3RlcCB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdTdGVwJztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7O2Jhc2U2NCxBQUVBQUFBT0FJQUFBd0JnVDFNdk1qM2hTUUVBQUFEc0FBQUFWbU50WVhEUUVobTNBQUFCUkFBQUFVcGpkblFnQmtuL2xBQUFCdXdBQUFBY1puQm5iWW9LZURzQUFBY0lBQUFKa1dkaGMzQUFBQUFRQUFBRzVBQUFBQWhuYkhsbTMyY0VkZ0FBQXBBQUFBQzJhR1ZoWkFFclBIc0FBQU5JQUFBQU5taG9aV0VIVXdOTkFBQURnQUFBQUNSb2JYUjRDeWtBQUFBQUE2UUFBQUFNYkc5allRQTRBRnNBQUFPd0FBQUFDRzFoZUhBQXBnbThBQUFEdUFBQUFDQnVZVzFsekowYUhBQUFBOWdBQUFMTmNHOXpkSzY5UUpnQUFBYW9BQUFBTzNCeVpYQ1NvWnIvQUFBUW5BQUFBRllBQVFPNEFaQUFCUUFJQW5vQ3ZBQUFBSXdDZWdLOEFBQUI0QUF4QVFJQUFBSUFCUU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVHWkZaQUJBNkFEb0FRTlMvMm9BV2dNTEFFOEFBQUFCQUFBQUFBQUFBQUFBQXdBQUFBTUFBQUFjQUFFQUFBQUFBRVFBQXdBQkFBQUFIQUFFQUNnQUFBQUdBQVFBQVFBQ0FBRG9BZi8vQUFBQUFPZ0EvLzhBQUJnQkFBRUFBQUFBQUFBQUFBRUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBRHBBS1lBQlVBSEVBWkR3RUFBUUZDQUFJQkFtb0FBUUFCYWdBQUFHRVVGeFFERWlzQkZBY0JCaUluQVNZMFB3RTJNaDhCQVRZeUh3RVdBNlFQL2lBUUxCRCs2ZzhQVEJBc0VLUUJiaEFzRUV3UEFoWVdFUDRnRHc4QkZoQXNFRXdRRUtVQmJ4QVFUQkFBQUFILy9mK3hBMThEQ3dBTUFCSkFEd0FCQVFwREFBQUFDd0JFRlJNQ0VTc0JGQTRCSWk0Q1BnRXlIZ0VEV1hMRzZNaHVCbnE4OUxwK0FWNTF4SFIweE9yRWRIVEVBQUFBQUFFQUFBQUJBQUREZVJwZFh3ODg5UUFMQStnQUFBQUF6eldZalFBQUFBRFBOV0JOLy8zL3NRT2tBd3NBQUFBSUFBSUFBQUFBQUFBQUFRQUFBMUwvYWdCYUErZ0FBUC8zQTZRQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFNRDZBQUFBK2dBQUFOWkFBQUFBQUFBQURnQVd3QUJBQUFBQXdBV0FBRUFBQUFBQUFJQUJnQVRBRzRBQUFBdENaRUFBQUFBQUFBQUVnRGVBQUVBQUFBQUFBQUFOUUFBQUFFQUFBQUFBQUVBQ0FBMUFBRUFBQUFBQUFJQUJ3QTlBQUVBQUFBQUFBTUFDQUJFQUFFQUFBQUFBQVFBQ0FCTUFBRUFBQUFBQUFVQUN3QlVBQUVBQUFBQUFBWUFDQUJmQUFFQUFBQUFBQW9BS3dCbkFBRUFBQUFBQUFzQUV3Q1NBQU1BQVFRSkFBQUFhZ0NsQUFNQUFRUUpBQUVBRUFFUEFBTUFBUVFKQUFJQURnRWZBQU1BQVFRSkFBTUFFQUV0QUFNQUFRUUpBQVFBRUFFOUFBTUFBUVFKQUFVQUZnRk5BQU1BQVFRSkFBWUFFQUZqQUFNQUFRUUpBQW9BVmdGekFBTUFBUVFKQUFzQUpnSEpRMjl3ZVhKcFoyaDBJQ2hES1NBeU1ERTBJR0o1SUc5eWFXZHBibUZzSUdGMWRHaHZjbk1nUUNCbWIyNTBaV3hzYnk1amIyMW1iMjUwWld4c2IxSmxaM1ZzWVhKbWIyNTBaV3hzYjJadmJuUmxiR3h2Vm1WeWMybHZiaUF4TGpCbWIyNTBaV3hzYjBkbGJtVnlZWFJsWkNCaWVTQnpkbWN5ZEhSbUlHWnliMjBnUm05dWRHVnNiRzhnY0hKdmFtVmpkQzVvZEhSd09pOHZabTl1ZEdWc2JHOHVZMjl0QUVNQWJ3QndBSGtBY2dCcEFHY0FhQUIwQUNBQUtBQkRBQ2tBSUFBeUFEQUFNUUEwQUNBQVlnQjVBQ0FBYndCeUFHa0Fad0JwQUc0QVlRQnNBQ0FBWVFCMUFIUUFhQUJ2QUhJQWN3QWdBRUFBSUFCbUFHOEFiZ0IwQUdVQWJBQnNBRzhBTGdCakFHOEFiUUJtQUc4QWJnQjBBR1VBYkFCc0FHOEFVZ0JsQUdjQWRRQnNBR0VBY2dCbUFHOEFiZ0IwQUdVQWJBQnNBRzhBWmdCdkFHNEFkQUJsQUd3QWJBQnZBRllBWlFCeUFITUFhUUJ2QUc0QUlBQXhBQzRBTUFCbUFHOEFiZ0IwQUdVQWJBQnNBRzhBUndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJ6QUhZQVp3QXlBSFFBZEFCbUFDQUFaZ0J5QUc4QWJRQWdBRVlBYndCdUFIUUFaUUJzQUd3QWJ3QWdBSEFBY2dCdkFHb0FaUUJqQUhRQUxnQm9BSFFBZEFCd0FEb0FMd0F2QUdZQWJ3QnVBSFFBWlFCc0FHd0Fid0F1QUdNQWJ3QnRBQUFBQUFJQUFBQUFBQUFBQ2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBQVFJQkF3bGphR1ZqYTIxaGNtc0dZMmx5WTJ4bEFBQUFBQUVBQWYvL0FBOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFESUFNZ01MLzdFREMvK3hzQUFzc0NCZ1ppMndBU3dnWkNDd3dGQ3dCQ1phc0FSRlcxZ2hJeUViaWxnZ3NGQlFXQ0d3UUZrYklMQTRVRmdoc0RoWldTQ3dDa1ZoWkxBb1VGZ2hzQXBGSUxBd1VGZ2hzREJaR3lDd3dGQllJR1lnaW9waElMQUtVRmhnR3lDd0lGQllJYkFLWUJzZ3NEWlFXQ0d3Tm1BYllGbFpXUnV3QUN0WldTT3dBRkJZWlZsWkxiQUNMQ0JGSUxBRUpXRmtJTEFGUTFCWXNBVWpRckFHSTBJYklTRlpzQUZnTGJBRExDTWhJeUVnWkxFRllrSWdzQVlqUXJJS0FBSXFJU0N3QmtNZ2lpQ0tzQUFyc1RBRkpZcFJXR0JRRzJGU1dWZ2pXU0Vnc0VCVFdMQUFLeHNoc0VCWkk3QUFVRmhsV1Myd0JDeXdCME1yc2dBQ0FFTmdRaTJ3QlN5d0J5TkNJeUN3QUNOQ1liQ0FZckFCWUxBRUtpMndCaXdnSUVVZ3NBSkZZN0FCUldKZ1JMQUJZQzJ3Qnl3Z0lFVWdzQUFySTdFQ0JDVmdJRVdLSTJFZ1pDQ3dJRkJZSWJBQUc3QXdVRml3SUJ1d1FGbFpJN0FBVUZobFdiQURKU05oUkVTd0FXQXRzQWdzc1FVRlJiQUJZVVF0c0Frc3NBRmdJQ0N3Q1VOS3NBQlFXQ0N3Q1NOQ1diQUtRMHF3QUZKWUlMQUtJMEpaTGJBS0xDQzRCQUJpSUxnRUFHT0tJMkd3QzBOZ0lJcGdJTEFMSTBJakxiQUxMRXRVV0xFSEFVUlpKTEFOWlNONExiQU1MRXRSV0V0VFdMRUhBVVJaR3lGWkpMQVRaU040TGJBTkxMRUFERU5WV0xFTURFT3dBV0ZDc0FvcldiQUFRN0FDSlVLeENRSWxRckVLQWlWQ3NBRVdJeUN3QXlWUVdMRUJBRU5nc0FRbFFvcUtJSW9qWWJBSktpRWpzQUZoSUlvalliQUpLaUVic1FFQVEyQ3dBaVZDc0FJbFliQUpLaUZac0FsRFI3QUtRMGRnc0lCaUlMQUNSV093QVVWaVlMRUFBQk1qUkxBQlE3QUFQcklCQVFGRFlFSXRzQTRzc1FBRlJWUllBTEFNSTBJZ1lMQUJZYlVORFFFQUN3QkNRb3Bnc1EwRks3QnRLeHNpV1Myd0R5eXhBQTRyTGJBUUxMRUJEaXN0c0JFc3NRSU9LeTJ3RWl5eEF3NHJMYkFUTExFRURpc3RzQlFzc1FVT0t5MndGU3l4Qmc0ckxiQVdMTEVIRGlzdHNCY3NzUWdPS3kyd0dDeXhDUTRyTGJBWkxMQUlLN0VBQlVWVVdBQ3dEQ05DSUdDd0FXRzFEUTBCQUFzQVFrS0tZTEVOQlN1d2JTc2JJbGt0c0Jvc3NRQVpLeTJ3R3l5eEFSa3JMYkFjTExFQ0dTc3RzQjBzc1FNWkt5MndIaXl4QkJrckxiQWZMTEVGR1NzdHNDQXNzUVlaS3kyd0lTeXhCeGtyTGJBaUxMRUlHU3N0c0NNc3NRa1pLeTJ3SkN3Z1BMQUJZQzJ3SlN3Z1lMQU5ZQ0JESTdBQllFT3dBaVZoc0FGZ3NDUXFJUzJ3Sml5d0pTdXdKU290c0Njc0lDQkhJQ0N3QWtWanNBRkZZbUFqWVRnaklJcFZXQ0JISUNDd0FrVmpzQUZGWW1BallUZ2JJVmt0c0Nnc3NRQUZSVlJZQUxBQkZyQW5LckFCRlRBYklsa3RzQ2tzc0FncnNRQUZSVlJZQUxBQkZyQW5LckFCRlRBYklsa3RzQ29zSURXd0FXQXRzQ3NzQUxBRFJXT3dBVVZpc0FBcnNBSkZZN0FCUldLd0FDdXdBQmEwQUFBQUFBQkVQaU00c1NvQkZTb3RzQ3dzSUR3Z1J5Q3dBa1Zqc0FGRlltQ3dBRU5oT0Myd0xTd3VGend0c0M0c0lEd2dSeUN3QWtWanNBRkZZbUN3QUVOaHNBRkRZemd0c0M4c3NRSUFGaVVnTGlCSHNBQWpRckFDSlVtS2lrY2pSeU5oSUZoaUd5RlpzQUVqUXJJdUFRRVZGQ290c0RBc3NBQVdzQVFsc0FRbFJ5TkhJMkd3QmtVclpZb3VJeUFnUElvNExiQXhMTEFBRnJBRUpiQUVKU0F1UnlOSEkyRWdzQVFqUXJBR1JTc2dzR0JRV0NDd1FGRllzd0lnQXlBYnN3SW1BeHBaUWtJaklMQUlReUNLSTBjalJ5TmhJMFpnc0FSRHNJQmlZQ0N3QUNzZ2lvcGhJTEFDUTJCa0k3QURRMkZrVUZpd0FrTmhHN0FEUTJCWnNBTWxzSUJpWVNNZ0lMQUVKaU5HWVRnYkk3QUlRMGF3QWlXd0NFTkhJMGNqWVdBZ3NBUkRzSUJpWUNNZ3NBQXJJN0FFUTJDd0FDdXdCU1Zoc0FVbHNJQmlzQVFtWVNDd0JDVmdaQ093QXlWZ1pGQllJUnNqSVZraklDQ3dCQ1lqUm1FNFdTMndNaXl3QUJZZ0lDQ3dCU1lnTGtjalJ5TmhJenc0TGJBekxMQUFGaUN3Q0NOQ0lDQWdSaU5Ic0FBckkyRTRMYkEwTExBQUZyQURKYkFDSlVjalJ5TmhzQUJVV0M0Z1BDTWhHN0FDSmJBQ0pVY2pSeU5oSUxBRkpiQUVKVWNqUnlOaHNBWWxzQVVsU2JBQ0pXR3dBVVZqSXlCWVloc2hXV093QVVWaVlDTXVJeUFnUElvNEl5RlpMYkExTExBQUZpQ3dDRU1nTGtjalJ5TmhJR0N3SUdCbXNJQmlJeUFnUElvNExiQTJMQ01nTGthd0FpVkdVbGdnUEZrdXNTWUJGQ3N0c0Rjc0l5QXVSckFDSlVaUVdDQThXUzZ4SmdFVUt5MndPQ3dqSUM1R3NBSWxSbEpZSUR4Wkl5QXVSckFDSlVaUVdDQThXUzZ4SmdFVUt5MndPU3l3TUNzaklDNUdzQUlsUmxKWUlEeFpMckVtQVJRckxiQTZMTEF4SzRvZ0lEeXdCQ05DaWpnaklDNUdzQUlsUmxKWUlEeFpMckVtQVJRcnNBUkRMckFtS3kyd095eXdBQmF3QkNXd0JDWWdMa2NqUnlOaHNBWkZLeU1nUENBdUl6aXhKZ0VVS3kyd1BDeXhDQVFsUXJBQUZyQUVKYkFFSlNBdVJ5TkhJMkVnc0FRalFyQUdSU3Nnc0dCUVdDQ3dRRkZZc3dJZ0F5QWJzd0ltQXhwWlFrSWpJRWV3QkVPd2dHSmdJTEFBS3lDS2ltRWdzQUpEWUdRanNBTkRZV1JRV0xBQ1EyRWJzQU5EWUZtd0F5V3dnR0poc0FJbFJtRTRJeUE4SXpnYklTQWdSaU5Ic0FBckkyRTRJVm14SmdFVUt5MndQU3l3TUNzdXNTWUJGQ3N0c0Q0c3NERXJJU01nSUR5d0JDTkNJeml4SmdFVUs3QUVReTZ3SmlzdHNEOHNzQUFWSUVld0FDTkNzZ0FCQVJVVUV5NndMQ290c0VBc3NBQVZJRWV3QUNOQ3NnQUJBUlVVRXk2d0xDb3RzRUVzc1FBQkZCT3dMU290c0VJc3NDOHFMYkJETExBQUZrVWpJQzRnUm9vallUaXhKZ0VVS3kyd1JDeXdDQ05Dc0VNckxiQkZMTElBQUR3ckxiQkdMTElBQVR3ckxiQkhMTElCQUR3ckxiQklMTElCQVR3ckxiQkpMTElBQUQwckxiQktMTElBQVQwckxiQkxMTElCQUQwckxiQk1MTElCQVQwckxiQk5MTElBQURrckxiQk9MTElBQVRrckxiQlBMTElCQURrckxiQlFMTElCQVRrckxiQlJMTElBQURzckxiQlNMTElBQVRzckxiQlRMTElCQURzckxiQlVMTElCQVRzckxiQlZMTElBQUQ0ckxiQldMTElBQVQ0ckxiQlhMTElCQUQ0ckxiQllMTElCQVQ0ckxiQlpMTElBQURvckxiQmFMTElBQVRvckxiQmJMTElCQURvckxiQmNMTElCQVRvckxiQmRMTEF5S3k2eEpnRVVLeTJ3WGl5d01pdXdOaXN0c0Y4c3NESXJzRGNyTGJCZ0xMQUFGckF5SzdBNEt5MndZU3l3TXlzdXNTWUJGQ3N0c0dJc3NETXJzRFlyTGJCakxMQXpLN0EzS3kyd1pDeXdNeXV3T0NzdHNHVXNzRFFyTHJFbUFSUXJMYkJtTExBMEs3QTJLeTJ3Wnl5d05DdXdOeXN0c0dnc3NEUXJzRGdyTGJCcExMQTFLeTZ4SmdFVUt5MndhaXl3TlN1d05pc3RzR3Nzc0RVcnNEY3JMYkJzTExBMUs3QTRLeTJ3YlN3cnNBaGxzQU1rVUhpd0FSVXdMUUFBQUV1NEFNaFNXTEVCQVk1WnVRZ0FDQUJqSUxBQkkwU3dBeU53c2dRb0NVVlNSTElLQWdjcXNRWUJSTEVrQVloUldMQkFpRml4QmdORXNTWUJpRkZZdUFRQWlGaXhCZ0ZFV1ZsWldiZ0IvNFd3QkkyeEJRQkVBQUE9KSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQW9VQUE0QUFBQUFFUFFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlBVeTh5QUFBQlJBQUFBRVFBQUFCV1BlRkpBV050WVhBQUFBR0lBQUFBT2dBQUFVclFFaG0zWTNaMElBQUFBY1FBQUFBVUFBQUFIQVpKLzVSbWNHZHRBQUFCMkFBQUJQa0FBQW1SaWdwNE8yZGhjM0FBQUFiVUFBQUFDQUFBQUFnQUFBQVFaMng1WmdBQUJ0d0FBQUN1QUFBQXR0OW5CSFpvWldGa0FBQUhqQUFBQURVQUFBQTJBU3M4ZTJob1pXRUFBQWZFQUFBQUlBQUFBQ1FIVXdOTmFHMTBlQUFBQitRQUFBQU1BQUFBREFzcEFBQnNiMk5oQUFBSDhBQUFBQWdBQUFBSUFEZ0FXMjFoZUhBQUFBZjRBQUFBSUFBQUFDQUFwZ204Ym1GdFpRQUFDQmdBQUFGM0FBQUN6Y3lkR2h4d2IzTjBBQUFKa0FBQUFDb0FBQUE3cnIxQW1IQnlaWEFBQUFtOEFBQUFWZ0FBQUZhU29aci9lSnhqWUdUZXdUaUJnWldCZzZtS2FROERBME1QaEdaOHdHREl5TVRBd01UQXlzeUFGUVNrdWFZd09MeGdlTUhJSFBRL2l5R0ttWnZCSHlqTUNKSURBUGU5QzJCNG5HTmdZR0JtZ0dBWkJrWUdFSEFCOGhqQmZCWUdEU0ROQnFRWkdaZ1lHRjR3L3Y4UFV2Q0NBVVJMTUVMVkF3RWpHOE9JQndCazVBYXZBQUI0bkdOZ1FBTkdERWJNM1A4M2dqQUFFTFFENFhpY25WWFpkdE5XRkpVOFpIQVNPbVNnb0E3WDNEaFE2OHFFS1Jnd2FTckZkaUVkSEFpdEJCMmtESFRrbmNjKzYydU9RcnRXSC9tMDduMDlKTFIwcmJZc2xzKytSMXRuMkRyblJod2pLbjBhaUd2VW9aS1hBNm1zUFpaSzkwbGMxM1V2ajVVTUJuRmR0aEpQU1p1b25TUkthdDNzVUM3eFdPc3FXU2RZSitQbElGWlBWWjVub0F6aUZCNWxTVVFiUkJ1cGx5Wko0b25qSjRrV1p4QWZKVWtnSmFNUXA5TElVRUkxR3NSUzFhRk02ZENyMXhOeDAwREtScU1lZFZoVTkwUEZKOGMxcDlTc0EwWXFWem5DRmV2VlJyNGJwd012ZTVERU9zR3pyWWN4SG5pc2ZwUXFrSXFSNmNnL2RrcE9sSWFCVkhIVW9WYmk2RENUWC9lUlRDck5RS2FNWWtXbDdvRzQzZjEwMnhZeFBYUTZ2aTVLbFVhcXVybk9LSnJ0MGZHb2d5Z1AyY2JwcE56UTJmYnc1UmxUVkt0ZGNiUHRRR1lOWEVySmJIU2ZSQUFkSmxMajZRRk9OWndDcVJuMVI4WFo1ODhCRXNsY2xLbzhWVEtIZWdPWk16dDdjVEh0YmllcnNuQ2tud2N5YjNaMjQ1MkhRNmRYaDMvUitoZE00Y3hIaitKaWZqNUMrbEJxZmlKT0pLVkdXTXp5cDRZZmNWY2dRcmt4aUFzWHl1QlRoRGwwUmRyWlpsM2p0VEgyaHMvNVNxbGhQUW5hNktQNGZncjlUaVFySEdkUm8vVkluTTFqMTNXdDNHZFFTN1c3RnpzeXIwT1ZJdTd2Q3d1dU0rZUVZWjRXQzFWZm52bmVCVFQvQm9obi9FRGVOSVZMKzVZcFNyUnZtNkpNdTJpS0N1MFNWS1ZkTnNVVTdZb3BwbW5QbW1LRzloMVR6TktlTXpMai84dmM1NUg3SE43eGtKdjJYZVNtZlErNWFkOUhidG9Qa0p0V0lUZHRIYmxwTHlBM3JVWnUybFdqT25ZRUdnWnBGMUlWUWRBMHN2cGgzRmFiOVVEV2pEUjhhV0R5TG1MSSt1cEVSNTIxdGNvZnhYOTE0Z3NIY21taXA3c2lGNXZpTHEvYkZqNDgzZTZyajVwRzNiRFYrTWFSOGpBZVJub2NtdEJaK2MzaHYrMU4zUzZhN2pLcU11Z0JGVXdLd0FCbDdVQUMwenJiQ2FUMW1xZjQ4Z2RnWElaNHprcER0VlNmTzRhbTcrVjVYL2V4T2ZHK3grM0dMcmRjZDNrSldkWU5jbVAyOE45U1pLcnJIK1V0clZRblI2d3JKNDlWYXhoREtyd291cjZTbEh1MHRSdS9LS215OGw2VTFzcm5rNUNiUFlNYlFsdTI3bUd3STB4cHlpVWVYbE9sS0QzVVVvNnlReXh2S2NvODRKU0xDMXFHeExnT2RROXFhOFRwb1hvWUd3c2hocUcwdlJCd1NDbGRGZCsweW5meEhxdHIyT2o0eFJYaDZYcHlFaEdmNGlyN1VmQlUxMGI5NkE3YXZHYmRNb01wVmFxbis0eFBzYS9iOWxGWmFhU09zeGUzVkFmWE5Pc2FPUlhUVCtScjRIUnZPR2pkQXoxVWZEUkJJMVUxeCtqR0tHTTBsalhsM3dSME1WWit3MmpWWXZzOTNFK2RwRldzdVV1WTdKc1Q5K0MwdS8wcSs3V2NXMGJXL2RjR3ZXM2tpcDhqTWI4dEN2dzdCMkszWkEzVU81T0JHQXZJV2RBWXhoWW1keGl1ZzIzRWJmWS9KcWYvMzRhRlJYSlhPeHE3ZWVyRDFaTlJKWGZaOHJqTFRYWloxNk0yUjlWT0d2c0lqUzBQTitiWTRYSXN0c1JnUWJiK3dmOHg3Z0YzYVZFQzRORElaWmlJMm5TaG51cmg2aDZyc1cwNFZ4SUJkczJ4NDNRQWVnQXVRZDhjdTliekNZRDEzQ1BuTHNCOWNnaDJ5Q0g0bEJ5Q3o4aTVCZkE1T1FSZmtFTXdJSWRnbDV3N0FBL0lJWGhJRHNFZU9RU1B5TmtFK0pJY2dxL0lJWWpKSVVqSXVRM3dtQnlDSitRUWZFME93VGRHcms1ay9wWUgyUUQ2enFLYlFLbWRHaHphT0dSR3JrM1krenhZOW9GRlpCOWFST3FSa2VzVDZsTWVMUFY3aTBqOXdTSlNmelJ5WTBMOWlRZEwvZGtpVW4reGlOUm54cGVaSXltdkRwN3pqZzcrQkpmcXJWNEFBQUFBQVFBQi8vOEFEM2ljWTJCa0FBTG1KVXd6R0VRWlpCd2srUmtaR0JtZEdKZ1ltYklZZ013c29HU2lpTGdJczVBMm93ZzdJNXVTT3FPYWlUMmptWkU4STVnUVkxN0MvMDlCUUVmZzN5dCtmaDhndllReEQwajY4RE9KaVFuOFUrRG5aeFFEY1FVRWxqTG1Dd0JwQmdiRy8zLy9iMlNPWitabTRHRVFjdUFIMnNibERMU0VtOEZGVkpoSkVHZ0xINk9TSHBNZG81RWNJM05rMGJFWEovTFlxdlo4MlZYSEdGZDZwS1RreUNzUXdRQUFxK1FrcUFBQWVKeGpZR1JnWUFEaXc1VlNzZkg4Tmw4WnVKbGZBRVVZenB2TzZJWFFDYjcvLy83ZnlMeUVtUnZJNVdCZ0Fva0NBRmIvREpBQUFBQjRuR05nWkdCZ0R2cWZ4UkRGL0lLQjRmOTM1aVVNUUJFVXdBd0FpNVlGcGdQb0FBQUQ2QUFBQTFrQUFBQUFBQUFBT0FCYkFBRUFBQUFEQUJZQUFRQUFBQUFBQWdBR0FCTUFiZ0FBQUMwSmtRQUFBQUI0bkhXUXkyckNRQlNHLy9IU2kwSmJXdWkyc3lwS2FieGdONElnV0hUVGJxUzRMVEhHSkJJek1oa0ZYNlB2MElmcFMvUlorcHVNcFNoTm1NeDN2amx6NW1RQVhPTWJBdm56eEpHendCbWpuQXM0UmM5eWtmN1pjb244WXJtTUt0NHNuOUMvVzY3Z0FZSGxLbTd3d1FxaWRNNW9nVS9MQWxmaTBuSUJGK0xPY3BIKzBYS0ozTE5jeHExNHRYeEM3MW11WUNKU3kxWGNpNitCV20xMUZJUkcxZ1oxMlc2Mk9uSzZsWW9xU3R4WXVtc1RLcDNLdnB5cnhQaHhyQnhQTGZjODlvTjE3T3A5dUo4bnZrNGpsY2lXMDl5cmtaLzQyalgrYkZjOTNRUnRZK1p5cnRWU0RtMkdYR20xOEQzamhNYXN1bzNHMy9Nd2dNSUtXMmhFdktvUUJoSTEyanJuTnBwb29VT2FNa015TTgrS2tNQkZUT05pelIxaHRwSXk3blBNR1NXMFBqTmlzZ09QMytXUkg1TUM3bzlaUlIrdEhzWVQwdTZNS1BPU2ZUbnM3akJyUkVxeVREZXpzOS9lVTJ4NFdwdldjTmV1UzUxMUpURThxQ0Y1SDd1MUJZMUg3MlMzWW1pN2FQRDk1LzkrQU4xZmhFc0FlSnhqWUdLQUFDNEc3SUNaZ1lHUmlaR1pNemtqTlRrN043RW9teTA1c3lnNUo1V0JBUUJFMVFaQkFBQkx1QURJVWxpeEFRR09XYmtJQUFnQVl5Q3dBU05Fc0FNamNMSUVLQWxGVWtTeUNnSUhLckVHQVVTeEpBR0lVVml3UUloWXNRWURSTEVtQVloUldMZ0VBSWhZc1FZQlJGbFpXVm00QWYrRnNBU05zUVVBUkFBQSkgZm9ybWF0KCd3b2ZmJyk7XG59XG4udWkuc3RlcHMgLnN0ZXAuY29tcGxldGVkID4gLmljb246YmVmb3JlLFxuLnVpLm9yZGVyZWQuc3RlcHMgLnN0ZXAuY29tcGxldGVkOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiAnU3RlcCc7XG4gIGNvbnRlbnQ6ICdcXGU4MDAnO1xuICAvKiAn7qCAJyAqL1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEJyZWFkY3J1bWJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQnJlYWRjcnVtYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVhZGNydW1iXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb3VwbGluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBCcmVhZGNydW1iXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFkY3J1bWJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvdXBsaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEJyZWFkY3J1bWJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYnJlYWRjcnVtYiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi51aS5icmVhZGNydW1iOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmJyZWFkY3J1bWI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIERpdmlkZXIgKi9cbi51aS5icmVhZGNydW1iIC5kaXZpZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbjogMGVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLyogTGluayAqL1xuLnVpLmJyZWFkY3J1bWIgYSB7XG4gIGNvbG9yOiAjMkM2QTlFO1xufVxuLnVpLmJyZWFkY3J1bWIgYTpob3ZlciB7XG4gIGNvbG9yOiAjMzI3N2IyO1xufVxuLyogSWNvbiBEaXZpZGVyICovXG4udWkuYnJlYWRjcnVtYiAuaWNvbi5kaXZpZGVyIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi8qIFNlY3Rpb24gKi9cbi51aS5icmVhZGNydW1iIGEuc2VjdGlvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi51aS5icmVhZGNydW1iIC5zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyogTG9vc2UgQ291cGxpbmcgKi9cbi51aS5icmVhZGNydW1iLnNlZ21lbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJyZWFkY3J1bWIgLmFjdGl2ZS5zZWN0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1pbmkuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLmJyZWFkY3J1bWIge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuaHVnZS5icmVhZGNydW1iIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUuYnJlYWRjcnVtYiB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBGb3JtXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZvcm1cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9ybSAqL1xuLyogVGV4dCAqL1xuLyogRmllbGQgKi9cbi8qIEZpZWxkcyAqL1xuLyogRm9ybSBMYWJlbCAqL1xuLyogSW5wdXQgKi9cbi8qIFNlbGVjdCAqL1xuLyogVGV4dCBBcmVhICovXG4vKiBDaGVja2JveCAqL1xuLyogSW5saW5lIFZhbGlkYXRpb24gUHJvbXB0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb2N1cyAqL1xuLyogSW5wdXQgRm9jdXMgKi9cbi8qIFRleHQgQXJlYSBGb2N1cyAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIEVycm9yZWQgSW5wdXQgKi9cbi8qIEF1dG9GaWxsICovXG4vKiBJbnB1dCBFcnJvciAqL1xuLyogRHJvcGRvd24gRXJyb3IgKi9cbi8qIEZvY3VzZWQgRXJyb3IgKi9cbi8qIFBsYWNlaG9sZGVyIEVycm9yICovXG4vKiBMb2FkaW5nIERpbW1lciAqL1xuLyogTG9hZGluZyBTcGlubmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlcXVpcmVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cGVkIEZpZWxkcyAqL1xuLyogSW5saW5lICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZvcm1cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9ybSAqL1xuLyogVGV4dCAqL1xuLyogRmllbGQgKi9cbi8qIEZpZWxkcyAqL1xuLyogRm9ybSBMYWJlbCAqL1xuLyogSW5wdXQgKi9cbi8qIFNlbGVjdCAqL1xuLyogVGV4dCBBcmVhICovXG4vKiBDaGVja2JveCAqL1xuLyogSW5saW5lIFZhbGlkYXRpb24gUHJvbXB0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb2N1cyAqL1xuLyogSW5wdXQgRm9jdXMgKi9cbi8qIFRleHQgQXJlYSBGb2N1cyAqL1xuLyogRGlzYWJsZWQgKi9cbi8qIEVycm9yZWQgSW5wdXQgKi9cbi8qIEF1dG9GaWxsICovXG4vKiBJbnB1dCBFcnJvciAqL1xuLyogRHJvcGRvd24gRXJyb3IgKi9cbi8qIEZvY3VzZWQgRXJyb3IgKi9cbi8qIFBsYWNlaG9sZGVyIEVycm9yICovXG4vKiBMb2FkaW5nIERpbW1lciAqL1xuLyogTG9hZGluZyBTcGlubmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlcXVpcmVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cGVkIEZpZWxkcyAqL1xuLyogSW5saW5lICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBHcm91cHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRWxlbWVudHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvcm1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gPiBwIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGaWVsZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmZvcm0gLmZpZWxkOmxhc3QtY2hpbGQsXG4udWkuZm9ybSAuZmllbGRzOmxhc3QtY2hpbGQgLmZpZWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmZvcm0gLmZpZWxkcyAuZmllbGQge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZCA+IGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjI4NTcxNDI5cmVtIDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU3RhbmRhcmQgSW5wdXRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gdGV4dGFyZWEsXG4udWkuZm9ybSBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIHdpZHRoOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLyogU2V0IG1heCBoZWlnaHQgb24gdW51c3VhbCBpbnB1dCAqL1xuLnVpLmZvcm0gOjotd2Via2l0LWRhdGV0aW1lLWVkaXQsXG4udWkuZm9ybSA6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbn1cbi51aS5mb3JtIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl0sXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZzogMC42Nzg1NzE0M2VtIDFlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAwZW0gdHJhbnNwYXJlbnQgaW5zZXQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIFRleHQgQXJlYSAqL1xuLnVpLmZvcm0gdGV4dGFyZWEge1xuICBtYXJnaW46IDBlbTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB0YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5ZW0gMWVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBvdXRsaW5lOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMGVtIHRyYW5zcGFyZW50IGluc2V0O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS4yODU3O1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuLnVpLmZvcm0gdGV4dGFyZWE6bm90KFtyb3dzXSkge1xuICBoZWlnaHQ6IDEyZW07XG4gIG1pbi1oZWlnaHQ6IDhlbTtcbiAgbWF4LWhlaWdodDogMjRlbTtcbn1cbi51aS5mb3JtIHRleHRhcmVhLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSW5wdXQgdy8gYXR0YWNoZWQgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gaW5wdXQuYXR0YWNoZWQge1xuICB3aWR0aDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQmFzaWMgU2VsZWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gc2VsZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcbiAgcGFkZGluZzogMC42MmVtIDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBEcm9wZG93blxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJsb2NrICovXG4udWkuZm9ybSAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkuZm9ybSAuZmllbGQgPiAuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG59XG4vKiBJbmxpbmUgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24sXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IC5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGZsb2F0OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFVJIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmxvY2sgKi9cbi51aS5mb3JtIC5maWVsZCAudWkuaW5wdXQsXG4udWkuZm9ybSAuZmllbGRzIC5maWVsZCAudWkuaW5wdXQsXG4udWkuZm9ybSAud2lkZS5maWVsZCAudWkuaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIElubGluZSAgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZDpub3QoLndpZGUpIC51aS5pbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQ6bm90KC53aWRlKSAudWkuaW5wdXQge1xuICB3aWR0aDogYXV0bztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi8qIEF1dG8gSW5wdXQgKi9cbi51aS5mb3JtIC5maWVsZHMgLmZpZWxkIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5maWVsZCAudWkuaW5wdXQgaW5wdXQge1xuICB3aWR0aDogYXV0bztcbn1cbi8qIEZ1bGwgV2lkdGggSW5wdXQgKi9cbi51aS5mb3JtIC50ZW4uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5uaW5lLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAuZWlnaHQuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5zZXZlbi5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLnNpeC5maWVsZHMgLnVpLmlucHV0IGlucHV0LFxuLnVpLmZvcm0gLmZpdmUuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC5mb3VyLmZpZWxkcyAudWkuaW5wdXQgaW5wdXQsXG4udWkuZm9ybSAudGhyZWUuZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC50d28uZmllbGRzIC51aS5pbnB1dCBpbnB1dCxcbi51aS5mb3JtIC53aWRlLmZpZWxkIC51aS5pbnB1dCBpbnB1dCB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICB3aWR0aDogMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVHlwZXMgb2YgTWVzc2FnZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuc3VjY2Vzcy5tZXNzYWdlLFxuLnVpLmZvcm0gLndhcm5pbmcubWVzc2FnZSxcbi51aS5mb3JtIC5lcnJvci5tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEFzc3VtcHRpb25zICovXG4udWkuZm9ybSAubWVzc2FnZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFZhbGlkYXRpb24gUHJvbXB0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZvcm0gLmZpZWxkIC5wcm9tcHQubGFiZWwge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFMEI0QjQgIWltcG9ydGFudDtcbiAgY29sb3I6ICM5RjNBMzggIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCAucHJvbXB0LFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCAucHJvbXB0IHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgbWFyZ2luOiAtMC4yNWVtIDBlbSAtMC41ZW0gMC41ZW07XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgLnByb21wdDpiZWZvcmUsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkIC5wcm9tcHQ6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAwcHggMHB4IDFweCAxcHg7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQXV0b2ZpbGxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZC5maWVsZCBpbnB1dDotd2Via2l0LWF1dG9maWxsIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMTAwcHggI0ZGRkZGMCBpbnNldCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICNFNURGQTEgIWltcG9ydGFudDtcbn1cbi8qIEZvY3VzICovXG4udWkuZm9ybSAuZmllbGQuZmllbGQgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDEwMHB4ICNGRkZGRjAgaW5zZXQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjRDVDMzE1ICFpbXBvcnRhbnQ7XG59XG4vKiBFcnJvciAqL1xuLnVpLmZvcm0gLmVycm9yLmVycm9yIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGwge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxMDBweCAjRkZGQUYwIGluc2V0ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGxhY2Vob2xkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBicm93c2VycyByZXF1aXJlIHRoZXNlIHJ1bGVzIHNlcGFyYXRlICovXG4udWkuZm9ybSA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxOTEsIDE5MSwgMTkxLCAwLjg3KTtcbn1cbi51aS5mb3JtIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxOTEsIDE5MSwgMTkxLCAwLjg3KSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTkxLCAxOTEsIDE5MSwgMC44Nyk7XG59XG4udWkuZm9ybSA6Zm9jdXM6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KTtcbn1cbi51aS5mb3JtIDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gOmZvY3VzOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC44Nyk7XG59XG4vKiBFcnJvciBQbGFjZWhvbGRlciAqL1xuLnVpLmZvcm0gLmVycm9yIDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmZvcm0gLmVycm9yIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2U3YmRiYyAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVycm9yIDo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZTdiZGJjO1xufVxuLnVpLmZvcm0gLmVycm9yIDpmb2N1czo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLnVpLmZvcm0gLmVycm9yIDpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2RhOTc5NiAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmVycm9yIDpmb2N1czo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZGE5Nzk2O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIGlucHV0Om5vdChbdHlwZV0pOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi51aS5mb3JtIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLnVpLmZvcm0gaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG4udWkuZm9ybSBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogIzg1QjdEOTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogMHB4IDBlbSAwZW0gMGVtIHJnYmEoMzQsIDM2LCAzOCwgMC4zNSkgaW5zZXQ7XG59XG4udWkuZm9ybSB0ZXh0YXJlYTpmb2N1cyB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItY29sb3I6ICM4NUI3RDk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAwZW0gMGVtIDBlbSByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpIGluc2V0O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN1Y2Nlc3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPbiBGb3JtICovXG4udWkuZm9ybS5zdWNjZXNzIC5zdWNjZXNzLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi51aS5mb3JtLnN1Y2Nlc3MgLmNvbXBhY3Quc3VjY2Vzcy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmZvcm0uc3VjY2VzcyAuaWNvbi5zdWNjZXNzLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBXYXJuaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogT24gRm9ybSAqL1xuLnVpLmZvcm0ud2FybmluZyAud2FybmluZy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4udWkuZm9ybS53YXJuaW5nIC5jb21wYWN0Lndhcm5pbmcubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5mb3JtLndhcm5pbmcgLmljb24ud2FybmluZy5tZXNzYWdlOm5vdCg6ZW1wdHkpIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBPbiBGb3JtICovXG4udWkuZm9ybS5lcnJvciAuZXJyb3IubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmZvcm0uZXJyb3IgLmNvbXBhY3QuZXJyb3IubWVzc2FnZTpub3QoOmVtcHR5KSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5mb3JtLmVycm9yIC5pY29uLmVycm9yLm1lc3NhZ2U6bm90KDplbXB0eSkge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLyogT24gRmllbGQocykgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmlucHV0LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5pbnB1dCB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNvcm5lci5sYWJlbCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY29ybmVyLmxhYmVsIHtcbiAgYm9yZGVyLWNvbG9yOiAjOUYzQTM4O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIHRleHRhcmVhLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgc2VsZWN0LFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXQ6bm90KFt0eXBlXSksXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCBpbnB1dFt0eXBlPVwiZmlsZVwiXSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgdGV4dGFyZWEsXG4udWkuZm9ybSAuZmllbGQuZXJyb3Igc2VsZWN0LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0Om5vdChbdHlwZV0pLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ1cmxcIl0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2O1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG4gIGNvbG9yOiAjOUYzQTM4O1xuICBib3JkZXItcmFkaXVzOiAnJztcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5mb3JtIC5maWVsZC5lcnJvciB0ZXh0YXJlYTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBzZWxlY3Q6Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi51aS5mb3JtIC5maWVsZC5lcnJvciBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbiAgY29sb3I6ICM5RjNBMzg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFByZXNlcnZlIE5hdGl2ZSBTZWxlY3QgU3R5bGluZ3MgKi9cbi51aS5mb3JtIC5maWVsZC5lcnJvciBzZWxlY3Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lbnVsaXN0LWJ1dHRvbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRHJvcGRvd24gRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93bixcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAuaXRlbSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24sXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLmRyb3Bkb3duIC50ZXh0LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAuaXRlbSB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNCAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duOmhvdmVyLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNCAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLnVpLmRyb3Bkb3duOmhvdmVyIC5tZW51LFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5tdWx0aXBsZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAubGFiZWwsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLnVpLm11bHRpcGxlLnNlbGVjdGlvbi5kcm9wZG93biA+IC5sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFQUNCQ0I7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLyogSG92ZXIgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuaXRlbTpob3Zlcixcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJFN0U3O1xufVxuLyogU2VsZWN0ZWQgKi9cbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC51aS5kcm9wZG93biAubWVudSAuc2VsZWN0ZWQuaXRlbSxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAudWkuZHJvcGRvd24gLm1lbnUgLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJFN0U3O1xufVxuLyogQWN0aXZlICovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAudWkuZHJvcGRvd24gLm1lbnUgLmFjdGl2ZS5pdGVtLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkRDRkNGICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ2hlY2tib3ggRXJyb3Jcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZmllbGRzLmVycm9yIC5maWVsZCAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbCxcbi51aS5mb3JtIC5maWVsZC5lcnJvciAuY2hlY2tib3g6bm90KC50b2dnbGUpOm5vdCguc2xpZGVyKSBsYWJlbCxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3gsXG4udWkuZm9ybSAuZmllbGQuZXJyb3IgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgLmJveCB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94Om5vdCgudG9nZ2xlKTpub3QoLnNsaWRlcikgbGFiZWw6YmVmb3JlLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIGxhYmVsOmJlZm9yZSxcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3g6YmVmb3JlLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveDpub3QoLnRvZ2dsZSk6bm90KC5zbGlkZXIpIC5ib3g6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRjZGNjtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLmZvcm0gLmZpZWxkcy5lcnJvciAuZmllbGQgLmNoZWNrYm94IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveCBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5maWVsZHMuZXJyb3IgLmZpZWxkIC5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLmZvcm0gLmZpZWxkLmVycm9yIC5jaGVja2JveCAuYm94OmFmdGVyIHtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuZGlzYWJsZWQuZmllbGRzIC5maWVsZCxcbi51aS5mb3JtIC5kaXNhYmxlZC5maWVsZCxcbi51aS5mb3JtIC5maWVsZCA6ZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5mb3JtIC5maWVsZC5kaXNhYmxlZCA+IGxhYmVsLFxuLnVpLmZvcm0gLmZpZWxkcy5kaXNhYmxlZCA+IGxhYmVsIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5mb3JtIC5maWVsZC5kaXNhYmxlZCA6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIExvYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5mb3JtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnVpLmxvYWRpbmcuZm9ybTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG59XG4udWkubG9hZGluZy5mb3JtOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMS41ZW0gMGVtIDBlbSAtMS41ZW07XG4gIHdpZHRoOiAzZW07XG4gIGhlaWdodDogM2VtO1xuICBhbmltYXRpb246IGZvcm0tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHotaW5kZXg6IDEwMTtcbn1cbkBrZXlmcmFtZXMgZm9ybS1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBFbGVtZW50IFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBSZXF1aXJlZCBGaWVsZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkcy5ncm91cGVkID4gbGFiZWw6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHM6bm90KC5ncm91cGVkKSA+IC5maWVsZCA+IC5jaGVja2JveDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZCA+IC5jaGVja2JveDphZnRlciB7XG4gIG1hcmdpbjogLTAuMmVtIDBlbSAwZW0gMC4yZW07XG4gIGNvbnRlbnQ6ICcqJztcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiBsYWJlbDphZnRlcixcbi51aS5mb3JtIC5yZXF1aXJlZC5maWVsZHMuZ3JvdXBlZCA+IGxhYmVsOmFmdGVyLFxuLnVpLmZvcm0gLnJlcXVpcmVkLmZpZWxkID4gbGFiZWw6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGRzOm5vdCguZ3JvdXBlZCkgPiAuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIsXG4udWkuZm9ybSAucmVxdWlyZWQuZmllbGQgPiAuY2hlY2tib3g6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IDEwMCU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5mb3JtIGxhYmVsLFxuLnVpLmZvcm0gLmludmVydGVkLnNlZ21lbnQgbGFiZWwsXG4udWkuZm9ybSAuaW52ZXJ0ZWQuc2VnbWVudCAudWkuY2hlY2tib3ggbGFiZWwsXG4udWkuZm9ybSAuaW52ZXJ0ZWQuc2VnbWVudCAudWkuY2hlY2tib3ggLmJveCxcbi51aS5pbnZlcnRlZC5mb3JtIC51aS5jaGVja2JveCBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC51aS5jaGVja2JveCAuYm94LFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZHMgPiBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IGxhYmVsLFxuLnVpLmludmVydGVkLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gcCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGQgPiBsYWJlbCxcbi51aS5pbnZlcnRlZC5mb3JtIC5pbmxpbmUuZmllbGQgPiBwIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qIEludmVydGVkIEZpZWxkICovXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dDpub3QoW3R5cGVdKSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4udWkuaW52ZXJ0ZWQuZm9ybSBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi51aS5pbnZlcnRlZC5mb3JtIGlucHV0W3R5cGU9XCJmaWxlXCJdLFxuLnVpLmludmVydGVkLmZvcm0gaW5wdXRbdHlwZT1cInVybFwiXSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgRmllbGQgR3JvdXBzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXBlZCBWZXJ0aWNhbGx5ICovXG4udWkuZm9ybSAuZ3JvdXBlZC5maWVsZHMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5mb3JtIC5ncm91cGVkLmZpZWxkczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLmZvcm0gLmdyb3VwZWQuZmllbGRzID4gbGFiZWwge1xuICBtYXJnaW46IDBlbSAwZW0gMC4yODU3MTQyOXJlbSAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLnVpLmZvcm0gLmdyb3VwZWQuZmllbGRzIC5maWVsZCxcbi51aS5mb3JtIC5ncm91cGVkLmlubGluZS5maWVsZHMgLmZpZWxkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMC41ZW0gMGVtO1xuICBwYWRkaW5nOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZpZWxkc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNwbGl0IGZpZWxkcyAqL1xuLnVpLmZvcm0gLmZpZWxkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIG1hcmdpbjogMGVtIC0wLjVlbSAxZW07XG59XG4udWkuZm9ybSAuZmllbGRzID4gLmZpZWxkIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmZvcm0gLmZpZWxkcyA+IC5maWVsZDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogT3RoZXIgQ29tYmluYXRpb25zICovXG4udWkuZm9ybSAudHdvLmZpZWxkcyA+IC5maWVsZHMsXG4udWkuZm9ybSAudHdvLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkuZm9ybSAudGhyZWUuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC50aHJlZS5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLnVpLmZvcm0gLmZvdXIuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5mb3VyLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAyNSU7XG59XG4udWkuZm9ybSAuZml2ZS5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLmZpdmUuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5mb3JtIC5zaXguZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5zaXguZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDE2LjY2NjY2NjY3JTtcbn1cbi51aS5mb3JtIC5zZXZlbi5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLnNldmVuLmZpZWxkcyA+IC5maWVsZCB7XG4gIHdpZHRoOiAxNC4yODU3MTQyOSU7XG59XG4udWkuZm9ybSAuZWlnaHQuZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC5laWdodC5maWVsZHMgPiAuZmllbGQge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWkuZm9ybSAubmluZS5maWVsZHMgPiAuZmllbGRzLFxuLnVpLmZvcm0gLm5pbmUuZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDExLjExMTExMTExJTtcbn1cbi51aS5mb3JtIC50ZW4uZmllbGRzID4gLmZpZWxkcyxcbi51aS5mb3JtIC50ZW4uZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDEwJTtcbn1cbi8qIFN3YXAgdG8gZnVsbCB3aWR0aCBvbiBtb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmZvcm0gLmZpZWxkcyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHMgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIFtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50d28uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnR3by5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50aHJlZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudGhyZWUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZm91ci5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZm91ci5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maXZlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maXZlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnNpeC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuc2l4LmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnNldmVuLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5zZXZlbi5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5laWdodC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZWlnaHQuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAubmluZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAubmluZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50ZW4uZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRlbi5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbiAgfVxufVxuLyogU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuLnVpLmZvcm0gLmZpZWxkcyAud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA2LjI1JTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG59XG4udWkuZm9ybSAub25lLndpZGUuZmllbGQge1xuICB3aWR0aDogNi4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50d28ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnRocmVlLndpZGUuZmllbGQge1xuICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZm91ci53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZpdmUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5zaXgud2lkZS5maWVsZCB7XG4gIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLnNldmVuLndpZGUuZmllbGQge1xuICB3aWR0aDogNDMuNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuZWlnaHQud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5uaW5lLndpZGUuZmllbGQge1xuICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAudGVuLndpZGUuZmllbGQge1xuICB3aWR0aDogNjIuNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5lbGV2ZW4ud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50d2VsdmUud2lkZS5maWVsZCB7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC50aGlydGVlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDgxLjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmZvcm0gLmZvdXJ0ZWVuLndpZGUuZmllbGQge1xuICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbn1cbi51aS5mb3JtIC5maWZ0ZWVuLndpZGUuZmllbGQge1xuICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZm9ybSAuc2l4dGVlbi53aWRlLmZpZWxkIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi8qIFN3YXAgdG8gZnVsbCB3aWR0aCBvbiBtb2JpbGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnR3by5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGRzLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAudHdvLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLnRocmVlLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC50aHJlZS5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5mb3VyLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZHMsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5mb3VyLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpdmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkcyxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpdmUuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnR3by53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnRocmVlLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZm91ci53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmZpdmUud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5zaXgud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5zZXZlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmVpZ2h0LndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAubmluZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnRlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLmVsZXZlbi53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnR3ZWx2ZS53aWRlLmZpZWxkLFxuICAudWkuZm9ybTpub3QoLnVuc3RhY2thYmxlKSAuZmllbGRzOm5vdCgudW5zdGFja2FibGUpID4gLnRoaXJ0ZWVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuZm91cnRlZW4ud2lkZS5maWVsZCxcbiAgLnVpLmZvcm06bm90KC51bnN0YWNrYWJsZSkgLmZpZWxkczpub3QoLnVuc3RhY2thYmxlKSA+IC5maWZ0ZWVuLndpZGUuZmllbGQsXG4gIC51aS5mb3JtOm5vdCgudW5zdGFja2FibGUpIC5maWVsZHM6bm90KC51bnN0YWNrYWJsZSkgPiAuc2l4dGVlbi53aWRlLmZpZWxkIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5mb3JtIC5maWVsZHMge1xuICAgIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBFcXVhbCBXaWR0aFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5mb3JtIC5maWVsZHMgPiAuZmllbGQsXG4udWkuZm9ybSBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZmllbGRzID4gLmZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIElubGluZSBGaWVsZHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQge1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtIDFlbSAwZW0gMGVtO1xufVxuLyogSW5saW5lIExhYmVsICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyA+IGxhYmVsLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gbGFiZWwsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBwLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IGxhYmVsLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IHAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi8qIEdyb3VwZWQgSW5saW5lIExhYmVsICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyA+IGxhYmVsIHtcbiAgbWFyZ2luOiAwLjAzNTcxNGVtIDFlbSAwZW0gMGVtO1xufVxuLyogSW5saW5lIElucHV0ICovXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBpbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IHNlbGVjdCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBpbnB1dCxcbi51aS5mb3JtIC5pbmxpbmUuZmllbGQgPiBzZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwZW07XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKiBMYWJlbCAqL1xuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gOmZpcnN0LWNoaWxkLFxuLnVpLmZvcm0gLmlubGluZS5maWVsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtIDAuODU3MTQyODZlbSAwZW0gMGVtO1xufVxuLnVpLmZvcm0gLmlubGluZS5maWVsZHMgLmZpZWxkID4gOm9ubHktY2hpbGQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkID4gOm9ubHktY2hpbGQge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qIFdpZGUgKi9cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5mb3JtIC5pbmxpbmUuZmllbGRzIC53aWRlLmZpZWxkID4gaW5wdXQsXG4udWkuZm9ybSAuaW5saW5lLmZpZWxkcyAud2lkZS5maWVsZCA+IHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmZvcm0ge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkudGlueS5mb3JtIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLmZvcm0ge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS5sYXJnZS5mb3JtIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy5mb3JtIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmh1Z2UuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbn1cbi51aS5tYXNzaXZlLmZvcm0ge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gR3JpZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBHcmlkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSW5oZXJpdGVkIEZyb20gU2l0ZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEdyaWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBSZWxheGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXZpZGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENlbGxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIExlZ2FjeVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZ2FjeSAoRE8gTk9UIFVTRSlcbiAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgR3JpZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEluaGVyaXRlZCBGcm9tIFNpdGUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcmlkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDZWxsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3RhY2thYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBMZWdhY3lcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWdhY3kgKERPIE5PVCBVU0UpXG4gKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUmVtb3ZlIEd1dHRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ncmlkIHtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xuICBtYXJnaW4tbGVmdDogLTFyZW07XG4gIG1hcmdpbi1yaWdodDogLTFyZW07XG59XG4udWkucmVsYXhlZC5ncmlkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAtMi41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0yLjVyZW07XG59XG4vKiBQcmVzZXJ2ZSBSb3dzIFNwYWNpbmcgb24gQ29uc2VjdXRpdmUgR3JpZHMgKi9cbi51aS5ncmlkICsgLmdyaWQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sdW1uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgMTYgY29sdW1uICovXG4udWkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNi4yNSU7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5ncmlkID4gKiB7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBSb3dzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZ3JpZCA+IC5yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBpbmhlcml0O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMHJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sdW1uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgcGFkZGluZyB3aGVuIG5vIHJvd3MgKi9cbi51aS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4udWkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ncmlkID4gLnJvdyA+IGltZyxcbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW4gPiBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBMb29zZSBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29sbGFwc2UgTWFyZ2luIG9uIENvbnNlY3V0aXZlIEdyaWQgKi9cbi51aS5ncmlkID4gLnVpLmdyaWQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkuZ3JpZCA+IC51aS5ncmlkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKiBTZWdtZW50IGluc2lkZSBBbGlnbmVkIEdyaWQgKi9cbi51aS5ncmlkIC5hbGlnbmVkLnJvdyA+IC5jb2x1bW4gPiAuc2VnbWVudDpub3QoLmNvbXBhY3QpOm5vdCguYXR0YWNoZWQpLFxuLnVpLmFsaWduZWQuZ3JpZCAuY29sdW1uID4gLnNlZ21lbnQ6bm90KC5jb21wYWN0KTpub3QoLmF0dGFjaGVkKSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogQWxpZ24gRGl2aWRlcnMgd2l0aCBHdXR0ZXIgKi9cbi51aS5ncmlkIC5yb3cgKyAudWkuZGl2aWRlciB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luOiAxcmVtIDFyZW07XG59XG4udWkuZ3JpZCAuY29sdW1uICsgLnVpLnZlcnRpY2FsLmRpdmlkZXIge1xuICBoZWlnaHQ6IGNhbGMoNDklKTtcbn1cbi8qIFJlbW92ZSBCb3JkZXIgb24gTGFzdCBIb3Jpem9udGFsIFNlZ21lbnQgKi9cbi51aS5ncmlkID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCA+IC5ob3Jpem9udGFsLnNlZ21lbnQsXG4udWkuZ3JpZCA+IC5jb2x1bW46bGFzdC1jaGlsZCA+IC5ob3Jpem9udGFsLnNlZ21lbnQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBQYWdlIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkucGFnZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwZW07XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5wYWdlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gICAgcGFkZGluZy1sZWZ0OiAyZW07XG4gICAgcGFkZGluZy1yaWdodDogMmVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51aS5wYWdlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gICAgcGFkZGluZy1sZWZ0OiAzJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzJTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTE5cHgpIHtcbiAgLnVpLnBhZ2UuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNSU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5wYWdlLmdyaWQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gICAgcGFkZGluZy1sZWZ0OiAyMyU7XG4gICAgcGFkZGluZy1yaWdodDogMjMlO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sdW1uIENvdW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBc3N1bWUgZnVsbCB3aWR0aCB3aXRoIG9uZSBjb2x1bW4gKi9cbi51aS5ncmlkID4gLmNvbHVtbjpvbmx5LWNoaWxkLFxuLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbjpvbmx5LWNoaWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBHcmlkIEJhc2VkICovXG4udWlbY2xhc3MqPVwib25lIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwib25lIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aVtjbGFzcyo9XCJmaXZlIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4udWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JTtcbn1cbi51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cIm5pbmUgY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiAxMS4xMTExMTExMSU7XG59XG4udWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogMTAlO1xufVxuLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDkuMDkwOTA5MDklO1xufVxuLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDguMzMzMzMzMzMlO1xufVxuLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA3LjY5MjMwNzY5JTtcbn1cbi51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdykge1xuICB3aWR0aDogNy4xNDI4NTcxNCU7XG59XG4udWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cImZpZnRlZW4gY29sdW1uXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSB7XG4gIHdpZHRoOiA2LjY2NjY2NjY3JTtcbn1cbi51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpIHtcbiAgd2lkdGg6IDYuMjUlO1xufVxuLyogUm93IEJhc2VkIE92ZXJyaWRlcyAqL1xuLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInR3byBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogMTYuNjY2NjY2NjclICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiAxNC4yODU3MTQyOSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDExLjExMTExMTExJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDEwJSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDkuMDkwOTA5MDklICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLnJvdyA+IC5jb2x1bW4ge1xuICB3aWR0aDogOC4zMzMzMzMzMyUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5yb3cgPiAuY29sdW1uIHtcbiAgd2lkdGg6IDcuNjkyMzA3NjklICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA3LjE0Mjg1NzE0JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA2LjY2NjY2NjY3JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiBjb2x1bW5cIl0ucm93ID4gLmNvbHVtbiB7XG4gIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xufVxuLyogQ2VsbGVkIFBhZ2UgKi9cbi51aS5jZWxsZWQucGFnZS5ncmlkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENvbHVtbiBXaWR0aFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlXCJdLmNvbHVtbiB7XG4gIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG59XG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbn1cbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlXCJdLmNvbHVtbixcbi51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGVcIl0uY29sdW1uIHtcbiAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xufVxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZVwiXS5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGVcIl0uY29sdW1uLFxuLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZVwiXS5jb2x1bW4ge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgV2lkdGggcGVyIERldmljZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9iaWxlIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdvIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxOC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDM3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwibmluZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwibmluZSB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA1Ni4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWxldmVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2OC43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbW9iaWxlXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0aGlydGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbW9iaWxlXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA5My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBtb2JpbGVcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIG1vYmlsZVwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFRhYmxldCBTaXppbmcgQ29tYmluYXRpb25zICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHRhYmxldFwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHRhYmxldFwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgdGFibGV0XCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSB0YWJsZXRcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBDb21wdXRlci9EZXNrdG9wIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRocmVlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91ciB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMxLjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXggd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDY4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4Ny41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgY29tcHV0ZXJcIl0uY29sdW1uIHtcbiAgICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIGNvbXB1dGVyXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBjb21wdXRlclwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIExhcmdlIE1vbml0b3IgU2l6aW5nIENvbWJpbmF0aW9ucyAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTE5cHgpIHtcbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm9uZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm9uZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0d28gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRocmVlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXIgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaXZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpdmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAzNy41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA0My43NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA2Mi41JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogODEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIGxhcmdlIHNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZvdXJ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogOTMuNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgbGFyZ2Ugc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gd2lkZSBsYXJnZSBzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBXaWRlc2NyZWVuIFNpemluZyBDb21iaW5hdGlvbnMgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJvbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwib25lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJvbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3byB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d28gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3byB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwidGhyZWUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE4Ljc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwiZm91ciB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImZpdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzEuMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXggd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInNpeCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogMzcuNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDQzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVpZ2h0IHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJuaW5lIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cIm5pbmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDU2LjI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDYyLjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNjguNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IC5jb2x1bW4ucm93ID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0d2VsdmUgd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uIHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiA4MS4yNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuY29sdW1uLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDg3LjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmdyaWQgPiAuY29sdW1uLnJvdyA+IFtjbGFzcyo9XCJmaWZ0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbixcbiAgLnVpLmNvbHVtbi5ncmlkID4gW2NsYXNzKj1cImZpZnRlZW4gd2lkZSB3aWRlc2NyZWVuXCJdLmNvbHVtbiB7XG4gICAgd2lkdGg6IDkzLjc1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5ncmlkID4gLmNvbHVtbi5yb3cgPiBbY2xhc3MqPVwic2l4dGVlbiB3aWRlIHdpZGVzY3JlZW5cIl0uY29sdW1uLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4sXG4gIC51aS5jb2x1bW4uZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIHdpZGUgd2lkZXNjcmVlblwiXS5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBDZW50ZXJlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNlbnRlcmVkLmdyaWQsXG4udWkuY2VudGVyZWQuZ3JpZCA+IC5yb3csXG4udWkuZ3JpZCA+IC5jZW50ZXJlZC5yb3cge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLmNlbnRlcmVkLmdyaWQgPiAuY29sdW1uOm5vdCguYWxpZ25lZCk6bm90KC5qdXN0aWZpZWQpOm5vdCgucm93KSxcbi51aS5jZW50ZXJlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bm90KC5hbGlnbmVkKTpub3QoLmp1c3RpZmllZCksXG4udWkuZ3JpZCAuY2VudGVyZWQucm93ID4gLmNvbHVtbjpub3QoLmFsaWduZWQpOm5vdCguanVzdGlmaWVkKSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkuZ3JpZCA+IC5jZW50ZXJlZC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuY2VudGVyZWQuY29sdW1uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUmVsYXhlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlbGF4ZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLnJlbGF4ZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiAucmVsYXhlZC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0ucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG59XG4vKiBDb3VwbGluZyB3aXRoIFVJIERpdmlkZXIgKi9cbi51aS5yZWxheGVkLmdyaWQgLnJvdyArIC51aS5kaXZpZGVyLFxuLnVpLmdyaWQgLnJlbGF4ZWQucm93ICsgLnVpLmRpdmlkZXIge1xuICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHJlbGF4ZWRcIl0uZ3JpZCAucm93ICsgLnVpLmRpdmlkZXIsXG4udWkuZ3JpZCBbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLnJvdyArIC51aS5kaXZpZGVyIHtcbiAgbWFyZ2luLWxlZnQ6IDIuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAyLjVyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFkZGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkucGFkZGVkLmdyaWQ6bm90KC52ZXJ0aWNhbGx5KTpub3QoLmhvcml6b250YWxseSkge1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xufVxuW2NsYXNzKj1cImhvcml6b250YWxseSBwYWRkZWRcIl0udWkuZ3JpZCB7XG4gIG1hcmdpbi1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbn1cbltjbGFzcyo9XCJ2ZXJ0aWNhbGx5IHBhZGRlZFwiXS51aS5ncmlkIHtcbiAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDBlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgXCJGbG9hdGVkXCJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ncmlkIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0uY29sdW1uIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnVpLmdyaWQgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0uY29sdW1uIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGl2aWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW4ge1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBTd2FwIGZyb20gcGFkZGluZyB0byBtYXJnaW4gb24gY29sdW1ucyB0byBoYXZlIGRpdmlkZXJzIGFsaWduICovXG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZy10b3A6IDByZW07XG4gIHBhZGRpbmctYm90dG9tOiAwcmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdyB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogTm8gZGl2aWRlciBvbiBmaXJzdCBjb2x1bW4gb24gcm93ICovXG4udWkuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4udWkuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIE5vIHNwYWNlIG9uIHRvcCBvZiBmaXJzdCByb3cgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQgPiAuY29sdW1uIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogRGl2aWRlZCBSb3cgKi9cbi51aS5ncmlkID4gLmRpdmlkZWQucm93ID4gLmNvbHVtbiB7XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5ncmlkID4gLmRpdmlkZWQucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBWZXJ0aWNhbGx5IERpdmlkZWQgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3cge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4udWlbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdLmdyaWQgPiAucm93OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogXCJcIjtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IGNhbGMoOTglKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogMCUgMXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogUGFkZGVkIEhvcml6b250YWxseSBEaXZpZGVkICovXG5bY2xhc3MqPVwiaG9yaXpvbnRhbGx5IHBhZGRlZFwiXS51aS5kaXZpZGVkLmdyaWQsXG4udWkucGFkZGVkLmRpdmlkZWQuZ3JpZDpub3QoLnZlcnRpY2FsbHkpOm5vdCguaG9yaXpvbnRhbGx5KSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyogRmlyc3QgUm93IFZlcnRpY2FsbHkgRGl2aWRlZCAqL1xuLnVpW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgRGl2aWRlZCAqL1xuLnVpLmludmVydGVkLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW4ge1xuICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQsXG4udWkuaW52ZXJ0ZWQuZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5pbnZlcnRlZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4vKiBSZWxheGVkICovXG4udWkucmVsYXhlZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0uZ3JpZCA+IC5yb3c6YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gIHdpZHRoOiBjYWxjKDk3JSk7XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXS5ncmlkID4gLnJvdzpiZWZvcmUge1xuICBtYXJnaW4tbGVmdDogMi41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDIuNXJlbTtcbiAgd2lkdGg6IGNhbGMoOTUlKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2VsbGVkLmdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENTtcbn1cbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4ICNENEQ0RDU7XG59XG4udWkuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xufVxuLnVpLmNlbGxlZC5ncmlkID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbi51aS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4ge1xuICBwYWRkaW5nOiAxZW07XG59XG4udWkucmVsYXhlZC5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLnJlbGF4ZWQuY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDEuNWVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5jZWxsZWQuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cInZlcnkgcmVsYXhlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogMmVtO1xufVxuLyogSW50ZXJuYWxseSBDZWxsZWQgKi9cbi51aVtjbGFzcyo9XCJpbnRlcm5hbGx5IGNlbGxlZFwiXS5ncmlkIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG59XG4udWlbY2xhc3MqPVwiaW50ZXJuYWxseSBjZWxsZWRcIl0uZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpW2NsYXNzKj1cImludGVybmFsbHkgY2VsbGVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFZlcnRpY2FsbHkgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9wIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0uY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuLyogTWlkZGxlIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4udWlbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbHVtbjpub3QoLnJvdyksXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0uY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4vKiBCb3R0b20gQWxpZ25lZCAqL1xuLnVpW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbi51aVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiYm90dG9tIGFsaWduZWRcIl0uY29sdW1uOm5vdCgucm93KSxcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xufVxuLyogU3RyZXRjaGVkICovXG4udWkuc3RyZXRjaGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5zdHJldGNoZWQuZ3JpZCA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLnN0cmV0Y2hlZC5jb2x1bW46bm90KC5yb3cpLFxuLnVpLmdyaWQgPiAucm93ID4gLnN0cmV0Y2hlZC5jb2x1bW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4gPiAqLFxuLnVpLnN0cmV0Y2hlZC5ncmlkID4gLmNvbHVtbiA+ICosXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQucm93ID4gLmNvbHVtbiA+ICosXG4udWkuZ3JpZCA+IC5zdHJldGNoZWQuY29sdW1uOm5vdCgucm93KSA+ICosXG4udWkuZ3JpZCA+IC5yb3cgPiAuc3RyZXRjaGVkLmNvbHVtbiA+ICoge1xuICBmbGV4LWdyb3c6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSG9yaXpvbnRhbGx5IENlbnRlcmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMZWZ0IEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uZ3JpZCA+IC5jb2x1bW4sXG4udWlbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLmNvbHVtbi5jb2x1bW4ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBhbGlnbi1zZWxmOiBpbmhlcml0O1xufVxuLyogQ2VudGVyIEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5ncmlkID4gLmNvbHVtbixcbi51aVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBpbmhlcml0O1xufVxuLnVpW2NsYXNzKj1cImNlbnRlciBhbGlnbmVkXCJdLmdyaWQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8qIFJpZ2h0IEFsaWduZWQgKi9cbi51aVtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdLmdyaWQgPiAuY29sdW1uLFxuLnVpW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5yb3cgPiAuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cInJpZ2h0IGFsaWduZWRcIl0uY29sdW1uLmNvbHVtbiB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBhbGlnbi1zZWxmOiBpbmhlcml0O1xufVxuLyogSnVzdGlmaWVkICovXG4udWkuanVzdGlmaWVkLmdyaWQgPiAuY29sdW1uLFxuLnVpLmp1c3RpZmllZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5qdXN0aWZpZWQucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gLmp1c3RpZmllZC5jb2x1bW4uY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmp1c3RpZmllZC5jb2x1bW4uY29sdW1uIHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgaHlwaGVuczogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgQ29sb3JlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmdyaWQgPiAucm93ID4gLnJlZC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub3JhbmdlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC55ZWxsb3cuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9saXZlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmVlbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudGVhbC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuYmx1ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudmlvbGV0LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5wdXJwbGUuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnBpbmsuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJyb3duLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmV5LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibGFjay5jb2x1bW4ge1xuICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cbi8qIFJlZCAqL1xuLnVpLmdyaWQgPiAucmVkLnJvdyxcbi51aS5ncmlkID4gLnJlZC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucmVkLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBPcmFuZ2UgKi9cbi51aS5ncmlkID4gLm9yYW5nZS5yb3csXG4udWkuZ3JpZCA+IC5vcmFuZ2UuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLm9yYW5nZS5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjI3MTFDICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogWWVsbG93ICovXG4udWkuZ3JpZCA+IC55ZWxsb3cucm93LFxuLnVpLmdyaWQgPiAueWVsbG93LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC55ZWxsb3cuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIE9saXZlICovXG4udWkuZ3JpZCA+IC5vbGl2ZS5yb3csXG4udWkuZ3JpZCA+IC5vbGl2ZS5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAub2xpdmUuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I1Q0MxOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JpZCA+IC5ncmVlbi5yb3csXG4udWkuZ3JpZCA+IC5ncmVlbi5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAuZ3JlZW4uY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIFRlYWwgKi9cbi51aS5ncmlkID4gLnRlYWwucm93LFxuLnVpLmdyaWQgPiAudGVhbC5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAudGVhbC5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogQmx1ZSAqL1xuLnVpLmdyaWQgPiAuYmx1ZS5yb3csXG4udWkuZ3JpZCA+IC5ibHVlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ibHVlLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBWaW9sZXQgKi9cbi51aS5ncmlkID4gLnZpb2xldC5yb3csXG4udWkuZ3JpZCA+IC52aW9sZXQuY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLnZpb2xldC5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogUHVycGxlICovXG4udWkuZ3JpZCA+IC5wdXJwbGUucm93LFxuLnVpLmdyaWQgPiAucHVycGxlLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5wdXJwbGUuY29sdW1uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi8qIFBpbmsgKi9cbi51aS5ncmlkID4gLnBpbmsucm93LFxuLnVpLmdyaWQgPiAucGluay5jb2x1bW4sXG4udWkuZ3JpZCA+IC5yb3cgPiAucGluay5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogQnJvd24gKi9cbi51aS5ncmlkID4gLmJyb3duLnJvdyxcbi51aS5ncmlkID4gLmJyb3duLmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5icm93bi5jb2x1bW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyogR3JleSAqL1xuLnVpLmdyaWQgPiAuZ3JleS5yb3csXG4udWkuZ3JpZCA+IC5ncmV5LmNvbHVtbixcbi51aS5ncmlkID4gLnJvdyA+IC5ncmV5LmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBCbGFjayAqL1xuLnVpLmdyaWQgPiAuYmxhY2sucm93LFxuLnVpLmdyaWQgPiAuYmxhY2suY29sdW1uLFxuLnVpLmdyaWQgPiAucm93ID4gLmJsYWNrLmNvbHVtbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVxdWFsIFdpZHRoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0uZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbi51aS5ncmlkID4gW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLnJvdyA+IC5jb2x1bW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi51aVtjbGFzcyo9XCJlcXVhbCB3aWR0aFwiXS5ncmlkID4gLndpZGUuY29sdW1uLFxuLnVpW2NsYXNzKj1cImVxdWFsIHdpZHRoXCJdLmdyaWQgPiAucm93ID4gLndpZGUuY29sdW1uLFxuLnVpLmdyaWQgPiBbY2xhc3MqPVwiZXF1YWwgd2lkdGhcIl0ucm93ID4gLndpZGUuY29sdW1uIHtcbiAgZmxleC1ncm93OiAwO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFJldmVyc2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1vYmlsZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZ3JpZCA+IC5yb3csXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwibW9iaWxlIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0uZ3JpZCxcbiAgLnVpLnN0YWNrYWJsZVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpsYXN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwibW9iaWxlIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIFZlcnRpY2FsbHkgRGl2aWRlZCBSZXZlcnNlZCAqL1xuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwibW9iaWxlIHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0gPiAucm93OmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogMHB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJtb2JpbGUgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6bGFzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogQ2VsbGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjRDRENEQ1O1xuICB9XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgcmV2ZXJzZWRcIl0uY2VsbGVkLmdyaWQgPiAucm93ID4gLmNvbHVtbjpsYXN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG4vKiBUYWJsZXQgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmdyaWQsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZ3JpZCA+IC5yb3csXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHZlcnRpY2FsbHkgcmV2ZXJzZWRcIl0uZ3JpZCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC8qIERpdmlkZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLnJvdyA+IC5jb2x1bW46Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAuY29sdW1uOmxhc3QtY2hpbGQsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogVmVydGljYWxseSBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJ0YWJsZXQgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBib3gtc2hhZG93OiAwcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIH1cbiAgLnVpLmdyaWRbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdW2NsYXNzKj1cInRhYmxldCB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAvKiBDZWxsZWQgUmV2ZXJzZWQgKi9cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4ICNENEQ0RDU7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cbi8qIENvbXB1dGVyICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5ncmlkLFxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZ3JpZCA+IC5yb3csXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLnJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdLmdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAvKiBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpmaXJzdC1jaGlsZCxcbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmRpdmlkZWQuZ3JpZDpub3QoW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXSkgPiAucm93ID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5kaXZpZGVkLmdyaWQ6bm90KFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl0pID4gLmNvbHVtbjpsYXN0LWNoaWxkLFxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgcmV2ZXJzZWRcIl0uZGl2aWRlZC5ncmlkOm5vdChbY2xhc3MqPVwidmVydGljYWxseSBkaXZpZGVkXCJdKSA+IC5yb3cgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogVmVydGljYWxseSBEaXZpZGVkIFJldmVyc2VkICovXG4gIC51aS5ncmlkW2NsYXNzKj1cInZlcnRpY2FsbHkgZGl2aWRlZFwiXVtjbGFzcyo9XCJjb21wdXRlciB2ZXJ0aWNhbGx5IHJldmVyc2VkXCJdID4gLnJvdzpmaXJzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgfVxuICAudWkuZ3JpZFtjbGFzcyo9XCJ2ZXJ0aWNhbGx5IGRpdmlkZWRcIl1bY2xhc3MqPVwiY29tcHV0ZXIgdmVydGljYWxseSByZXZlcnNlZFwiXSA+IC5yb3c6bGFzdC1jaGlsZDpiZWZvcmUge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLyogQ2VsbGVkIFJldmVyc2VkICovXG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciByZXZlcnNlZFwiXS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uOmZpcnN0LWNoaWxkIHtcbiAgICBib3gtc2hhZG93OiAtMXB4IDBweCAwcHggMHB4ICNENEQ0RDU7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImNvbXB1dGVyIHJldmVyc2VkXCJdLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW46bGFzdC1jaGlsZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3VibGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGFibGV0IE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAudWkuZG91YmxpbmcuZ3JpZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93LFxuICAudWkuZG91YmxpbmcuZ3JpZCA+IC5yb3cge1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93ID4gLmNvbHVtbixcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDBlbTtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdvIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGhyZWUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2l4IGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVpZ2h0IGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0ZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImVsZXZlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyMCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidHdlbHZlIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE2LjY2NjY2NjY3JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0aGlydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTYuNjY2NjY2NjclICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmcucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxNC4yODU3MTQyOSUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91YmxpbmcuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDE0LjI4NTcxNDI5JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZy5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTIuNSUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93LFxuICAudWkuZG91YmxpbmcuZ3JpZCA+IC5yb3cge1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLmdyaWQgPiAuZG91Ymxpbmcucm93ID4gLmNvbHVtbixcbiAgLnVpLmRvdWJsaW5nLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d28gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3byBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRocmVlIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJ0aHJlZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImZvdXIgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJmb3VyIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZml2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cImZpdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXggY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNpeCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwic2V2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInNldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJlaWdodCBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZWlnaHQgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJuaW5lIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwibmluZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAucm93ID4gLmNvbHVtbixcbiAgLnVpW2NsYXNzKj1cInRlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwidGVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZWxldmVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJlbGV2ZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJ0d2VsdmUgY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInR3ZWx2ZSBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwidGhpcnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyksXG4gIC51aS5ncmlkID4gW2NsYXNzKj1cInRoaXJ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAzMy4zMzMzMzMzMyUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJmb3VydGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZm91cnRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5yb3cucm93ID4gLmNvbHVtbiB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJmaWZ0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWlbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmdyaWQgPiBbY2xhc3MqPVwiZmlmdGVlbiBjb2x1bW5cIl0uZG91Ymxpbmc6bm90KC5zdGFja2FibGUpLnJvdy5yb3cgPiAuY29sdW1uIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInNpeHRlZW4gY29sdW1uXCJdLmRvdWJsaW5nOm5vdCguc3RhY2thYmxlKS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aVtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IFtjbGFzcyo9XCJzaXh0ZWVuIGNvbHVtblwiXS5kb3VibGluZzpub3QoLnN0YWNrYWJsZSkucm93LnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0YWNrYWJsZS5ncmlkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAucm93ID4gLndpZGUuY29sdW1uLFxuICAudWkuc3RhY2thYmxlLmdyaWQgPiAud2lkZS5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4uZ3JpZCA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4ucm93ID4gLmNvbHVtbixcbiAgLnVpLnN0YWNrYWJsZS5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuZ3JpZCA+IC5zdGFja2FibGUuc3RhY2thYmxlLnJvdyA+IC5jb2x1bW4ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gMGVtICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5ncmlkOm5vdCgudmVydGljYWxseSkgPiAucm93IHtcbiAgICBtYXJnaW46IDBlbTtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLyogQ291cGxpbmcgKi9cbiAgLnVpLmNvbnRhaW5lciA+IC51aS5zdGFja2FibGUuZ3JpZCA+IC5jb2x1bW4sXG4gIC51aS5jb250YWluZXIgPiAudWkuc3RhY2thYmxlLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAvKiBEb24ndCBwYWQgaW5zaWRlIHNlZ21lbnQgb3IgbmVzdGVkIGdyaWQgKi9cbiAgLnVpLmdyaWQgLnVpLnN0YWNrYWJsZS5ncmlkLFxuICAudWkuc2VnbWVudDpub3QoLnZlcnRpY2FsKSAudWkuc3RhY2thYmxlLnBhZ2UuZ3JpZCB7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAvKiBEaXZpZGVkIFN0YWNrYWJsZSAqL1xuICAudWkuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5yb3c6Zmlyc3QtY2hpbGQgPiAuY29sdW1uOmZpcnN0LWNoaWxkLFxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLnJvdzpmaXJzdC1jaGlsZCA+IC5jb2x1bW46Zmlyc3QtY2hpbGQsXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZC5ncmlkID4gLmNvbHVtbjpub3QoLnJvdyk6Zmlyc3QtY2hpbGQsXG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KTpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5pbnZlcnRlZC5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5kaXZpZGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLmludmVydGVkLnN0YWNrYWJsZS5jZWxsZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uLFxuICAudWkuaW52ZXJ0ZWQuc3RhY2thYmxlLmRpdmlkZWQuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4gIC51aS5zdGFja2FibGUuY2VsbGVkLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5jb2x1bW46bm90KC5yb3cpLFxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLnJvdyA+IC5jb2x1bW4sXG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNlbGxlZC5ncmlkID4gLnJvdyB7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5zdGFja2FibGUuZGl2aWRlZDpub3QoLnZlcnRpY2FsbHkpLmdyaWQgPiAuY29sdW1uOm5vdCgucm93KSxcbiAgLnVpLnN0YWNrYWJsZS5kaXZpZGVkOm5vdCgudmVydGljYWxseSkuZ3JpZCA+IC5yb3cgPiAuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT25seSAoRGV2aWNlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhlc2UgaW5jbHVkZSBhcmJpdHJhcnkgY2xhc3MgcmVwZXRpdGlvbnMgZm9yIGZvcmNlZCBzcGVjaWZpY2l0eSAqL1xuLyogTW9iaWxlIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImNvbXB1dGVyIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0ucm93Om5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwibGFyZ2Ugc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ3aWRlc2NyZWVuIG9ubHlcIl0uY29sdW1uOm5vdCgubW9iaWxlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBUYWJsZXQgT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgudGFibGV0KSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLnJvdzpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJjb21wdXRlciBvbmx5XCJdLmNvbHVtbjpub3QoLnRhYmxldCksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwiY29tcHV0ZXIgb25seVwiXS5jb2x1bW46bm90KC50YWJsZXQpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogQ29tcHV0ZXIgT25seSBIaWRlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLnJvdzpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJsYXJnZSBzY3JlZW4gb25seVwiXS5jb2x1bW46bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cImxhcmdlIHNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogTGFyZ2UgU2NyZWVuIE9ubHkgSGlkZSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxOTE5cHgpIHtcbiAgLnVpW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0ucm93Om5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwibW9iaWxlIG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiAucm93ID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cInRhYmxldCBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmdyaWQuZ3JpZC5ncmlkOm5vdCgubW9iaWxlKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIndpZGVzY3JlZW4gb25seVwiXS5yb3c6bm90KC5tb2JpbGUpLFxuICAudWkuZ3JpZC5ncmlkLmdyaWQgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwid2lkZXNjcmVlbiBvbmx5XCJdLmNvbHVtbjpub3QoLm1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogV2lkZXNjcmVlbiBPbmx5IEhpZGUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aVtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5ncmlkLmdyaWQuZ3JpZDpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLnJvdzpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gW2NsYXNzKj1cIm1vYmlsZSBvbmx5XCJdLmNvbHVtbjpub3QoLmNvbXB1dGVyKSxcbiAgLnVpLmdyaWQuZ3JpZC5ncmlkID4gLnJvdyA+IFtjbGFzcyo9XCJtb2JpbGUgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlcikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uZ3JpZC5ncmlkLmdyaWQ6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5yb3c6bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IFtjbGFzcyo9XCJ0YWJsZXQgb25seVwiXS5jb2x1bW46bm90KC5jb21wdXRlciksXG4gIC51aS5ncmlkLmdyaWQuZ3JpZCA+IC5yb3cgPiBbY2xhc3MqPVwidGFibGV0IG9ubHlcIl0uY29sdW1uOm5vdCguY29tcHV0ZXIpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuICogIyBTZW1hbnRpYyAtIE1lbnVcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogQ29weXJpZ2h0IDIwMTUgQ29udHJpYnV0b3JcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1lbnVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvbGxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgKi9cbi8qIE1lbnUgSXRlbSAqL1xuLyogRGl2aWRlciAqL1xuLyogU3ViIE1lbnUgKi9cbi8qIFRleHQgSXRlbSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLyogSGVhZGVyICovXG4vKiBWZXJ0aWNhbCBJY29uICovXG4vKiBWZXJ0aWNhbCBIZWFkZXIgKi9cbi8qIFBvaW50aW5nIEFycm93ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQnV0dG9uICovXG4vKiBJbnB1dCAqL1xuLyogSW1hZ2UgKi9cbi8qIExhYmVsICovXG4vKiBEcm9wZG93biBpbiBNZW51ICovXG4vKiBEcm9wZG93biBWYXJpYXRpb25zICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgSXRlbSAqL1xuLyogUHJlc3NlZCBJdGVtICovXG4vKiBBY3RpdmUgSXRlbSAqL1xuLyogQWN0aXZlIEhvdmVyZWQgSXRlbSAqL1xuLyogU2VsZWN0ZWQgRHJvcGRvd24gKi9cbi8qIEFjdGl2ZSBEcm9wZG93biAqL1xuLyogQWN0aXZlIFN1YiBNZW51ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgKi9cbi8qIFNlY29uZGFyeSAqL1xuLyogUG9pbnRpbmcgKi9cbi8qIEludmVydGVkIFNlY29uZGFyeSAqL1xuLyogSW52ZXJ0ZWQgUG9pbnRpbmcgKi9cbi8qIFRpZXJlZCAqL1xuLyogSWNvbiAqL1xuLyogVGFidWxhciAqL1xuLyogUGFnaW5hdGlvbiAqL1xuLyogTGFiZWxlZCBJY29uICovXG4vKiBUZXh0ICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEludmVydGVkIFN1YiBNZW51ICovXG4vKiBJbnZlcnRlZCBIb3ZlciAqL1xuLyogUHJlc3NlZCAqL1xuLyogSW52ZXJ0ZWQgQWN0aXZlICovXG4vKiBJbnZlcnRlZCBBY3RpdmUgSG92ZXIgICovXG4vKiBJbnZlcnRlZCBNZW51IERpdmlkZXIgKi9cbi8qIEludmVydGVkIENvbG9yZWQgKi9cbi8qIEZpeGVkICovXG4vKiBGbG9hdGVkICovXG4vKiBBdHRhY2hlZCAqL1xuLyogUmVzaXplIGxhcmdlIHNpemVzICovXG4vKiBTaXplcyAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWVudVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLyogTWVudSBJdGVtICovXG4vKiBEaXZpZGVyICovXG4vKiBTdWIgTWVudSAqL1xuLyogVGV4dCBJdGVtICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJY29uICovXG4vKiBEcm9wZG93biBJY29uICovXG4vKiBIZWFkZXIgKi9cbi8qIFZlcnRpY2FsIEljb24gKi9cbi8qIFZlcnRpY2FsIEhlYWRlciAqL1xuLyogUG9pbnRpbmcgQXJyb3cgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBCdXR0b24gKi9cbi8qIElucHV0ICovXG4vKiBJbWFnZSAqL1xuLyogTGFiZWwgKi9cbi8qIERyb3Bkb3duIGluIE1lbnUgKi9cbi8qIERyb3Bkb3duIFZhcmlhdGlvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXJlZCBJdGVtICovXG4vKiBQcmVzc2VkIEl0ZW0gKi9cbi8qIEFjdGl2ZSBJdGVtICovXG4vKiBBY3RpdmUgSG92ZXJlZCBJdGVtICovXG4vKiBTZWxlY3RlZCBEcm9wZG93biAqL1xuLyogQWN0aXZlIERyb3Bkb3duICovXG4vKiBBY3RpdmUgU3ViIE1lbnUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBWZXJ0aWNhbCAqL1xuLyogU2Vjb25kYXJ5ICovXG4vKiBQb2ludGluZyAqL1xuLyogSW52ZXJ0ZWQgU2Vjb25kYXJ5ICovXG4vKiBJbnZlcnRlZCBQb2ludGluZyAqL1xuLyogVGllcmVkICovXG4vKiBJY29uICovXG4vKiBUYWJ1bGFyICovXG4vKiBQYWdpbmF0aW9uICovXG4vKiBMYWJlbGVkIEljb24gKi9cbi8qIFRleHQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyogSW52ZXJ0ZWQgU3ViIE1lbnUgKi9cbi8qIEludmVydGVkIEhvdmVyICovXG4vKiBQcmVzc2VkICovXG4vKiBJbnZlcnRlZCBBY3RpdmUgKi9cbi8qIEludmVydGVkIEFjdGl2ZSBIb3ZlciAgKi9cbi8qIEludmVydGVkIE1lbnUgRGl2aWRlciAqL1xuLyogSW52ZXJ0ZWQgQ29sb3JlZCAqL1xuLyogRml4ZWQgKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEF0dGFjaGVkICovXG4vKiBSZXNpemUgbGFyZ2Ugc2l6ZXMgKi9cbi8qIFNpemVzICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkIEFjdGl2ZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxcmVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBtaW4taGVpZ2h0OiAyLjg1NzE0Mjg2ZW07XG59XG4udWkubWVudTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkubWVudTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDByZW07XG59XG4udWkubWVudTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdWItTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5tZW51IHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkubWVudTpub3QoLnZlcnRpY2FsKSA+IC5tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAuaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkubWVudSAuaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZmxleDogMCAwIGF1dG87XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjkyODU3MTQzZW0gMS4xNDI4NTcxNGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZSwgY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMHB4IDBweCAwLjIxNDI4NTcxcmVtO1xufVxuLyogQm9yZGVyICovXG4udWkubWVudSAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICByaWdodDogMHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgVGV4dCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLnRleHQuaXRlbSA+ICosXG4udWkubWVudSAuaXRlbSA+IGE6bm90KC51aSksXG4udWkubWVudSAuaXRlbSA+IHA6b25seS1jaGlsZCB7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnVpLm1lbnUgLml0ZW0gPiBwOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi51aS5tZW51IC5pdGVtID4gcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0gPiBpLmljb24ge1xuICBvcGFjaXR5OiAwLjk7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjM1NzE0Mjg2ZW0gMGVtIDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLml0ZW0gPiAuYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDBlbTtcbiAgbWFyZ2luOiAtMC41ZW0gMGVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC43ODU3MTQyOWVtO1xuICBwYWRkaW5nLXRvcDogMC43ODU3MTQyOWVtO1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLVxuIEdyaWQgLyBDb250YWluZXJcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51ID4gLmdyaWQsXG4udWkubWVudSA+IC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogaW5oZXJpdDtcbiAgZmxleC1kaXJlY3Rpb246IGluaGVyaXQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIElucHV0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtID4gLmlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkubWVudTpub3QoLnZlcnRpY2FsKSAuaXRlbSA+IC5pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwZW07XG4gIG1hcmdpbjogLTAuNWVtIDBlbTtcbn1cbi51aS5tZW51IC5pdGVtID4gLmlucHV0IGlucHV0IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmctdG9wOiAwLjU3MTQyODU3ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjU3MTQyODU3ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEhlYWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5oZWFkZXIuaXRlbSxcbi51aS52ZXJ0aWNhbC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiAnJztcbiAgdGV4dC10cmFuc2Zvcm06IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5oZWFkZXI6bm90KC51aSkge1xuICBtYXJnaW46IDBlbSAwZW0gMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEcm9wZG93bnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBEcm9wZG93biBJY29uICovXG4udWkubWVudSAuaXRlbSA+IGkuZHJvcGRvd24uaWNvbiB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi8qIE1lbnUgKi9cbi51aS5tZW51IC5kcm9wZG93bi5pdGVtIC5tZW51IHtcbiAgbWluLXdpZHRoOiBjYWxjKDk5JSk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW46IDBlbSAwcHggMHB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xufVxuLyogTWVudSBJdGVtcyAqL1xuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0ge1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAxLjE0Mjg1NzE0ZW0gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NykgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC51aS5kcm9wZG93biAubWVudSA+IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24gLm1lbnUgPiAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAudWkuZHJvcGRvd24uaXRlbSAubWVudSAuaXRlbTpub3QoLmZpbHRlcmVkKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gLmljb246bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjc1ZW0gMGVtIDBlbSAhaW1wb3J0YW50O1xufVxuLyogU2Vjb25kYXJ5ICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSxcbi51aS50ZXh0Lm1lbnUgLmRyb3Bkb3duLml0ZW0gPiAubWVudSB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIG1hcmdpbi10b3A6IDAuMzU3MTQyODZlbTtcbn1cbi8qIFBvaW50aW5nICovXG4udWkubWVudSAucG9pbnRpbmcuZHJvcGRvd24uaXRlbSAubWVudSB7XG4gIG1hcmdpbi10b3A6IDAuNzVlbTtcbn1cbi8qIEludmVydGVkICovXG4udWkuaW52ZXJ0ZWQubWVudSAuc2VhcmNoLmRyb3Bkb3duLml0ZW0gPiAuc2VhcmNoLFxuLnVpLmludmVydGVkLm1lbnUgLnNlYXJjaC5kcm9wZG93bi5pdGVtID4gLnRleHQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLyogVmVydGljYWwgKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5pdGVtID4gLmljb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCI7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG59XG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbSAubWVudSB7XG4gIGxlZnQ6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW0udXB3YXJkIC5tZW51IHtcbiAgYm90dG9tOiAwO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmRyb3Bkb3duLml0ZW06bm90KC51cHdhcmQpIC5tZW51IHtcbiAgdG9wOiAwO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5kcm9wZG93bi5pdGVtIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5kcm9wZG93bi5hY3RpdmUuaXRlbSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBFdmVubHkgRGl2aWRlZCAqL1xuLnVpLml0ZW0ubWVudSAuZHJvcGRvd24gLm1lbnUgLml0ZW0ge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTGFiZWxzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kOiAjOTk5OTk5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgcGFkZGluZzogMC4zZW0gMC43ODU3MTQyOWVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiAubGFiZWwge1xuICBiYWNrZ3JvdW5kOiAjOTk5OTk5O1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgbWFyZ2luLXRvcDogLTAuMTVlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuMTVlbTtcbiAgcGFkZGluZzogMC4zZW0gMC43ODU3MTQyOWVtO1xufVxuLnVpLm1lbnUgLml0ZW0gPiAuZmxvYXRpbmcubGFiZWwge1xuICBwYWRkaW5nOiAwLjNlbSAwLjc4NTcxNDI5ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEltYWdlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IC0wLjNlbSAwZW07XG4gIHdpZHRoOiAyLjVlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpOm9ubHktY2hpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQ291cGxpbmdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExpc3Rcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNZW51IGRpdmlkZXIgc2hvdWxkbnQgYXBwbHkgKi9cbi51aS5tZW51IC5saXN0IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2lkZWJhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNob3cgdmVydGljYWwgZGl2aWRlcnMgYmVsb3cgbGFzdCAqL1xuLnVpLnZlcnRpY2FsLnNpZGViYXIubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4udWkudmVydGljYWwuc2lkZWJhci5tZW51ID4gLml0ZW06OmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubWVudSA+IC51aS5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLm1lbnU6bm90KC5zZWNvbmRhcnkpOm5vdCgudGV4dCk6bm90KC50YWJ1bGFyKTpub3QoLmJvcmRlcmxlc3MpID4gLmNvbnRhaW5lciA+IC5pdGVtOm5vdCgucmlnaHQpOm5vdCguYm9yZGVybGVzcyk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxpbmsubWVudSAuaXRlbTpob3Zlcixcbi51aS5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFByZXNzZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubGluay5tZW51IC5pdGVtOmFjdGl2ZSxcbi51aS5tZW51IC5saW5rLml0ZW06YWN0aXZlLFxuLnVpLm1lbnUgYS5pdGVtOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS5tZW51IC5hY3RpdmUuaXRlbSA+IGkuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEFjdGl2ZSBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5hY3RpdmUuaXRlbTpob3Zlcixcbi51aS52ZXJ0aWNhbC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51IC5pdGVtLmRpc2FibGVkLFxuLnVpLm1lbnUgLml0ZW0uZGlzYWJsZWQ6aG92ZXIge1xuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgY29sb3I6IHJnYmEoNDAsIDQwLCA0MCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG5GbG9hdGVkIE1lbnUgLyBJdGVtXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZnQgRmxvYXRlZCAqL1xuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLmxlZnQuaXRlbSxcbi51aS5tZW51Om5vdCgudmVydGljYWwpIDpub3QoLmRyb3Bkb3duKSA+IC5sZWZ0Lm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8qIFJpZ2h0IEZsb2F0ZWQgKi9cbi51aS5tZW51Om5vdCgudmVydGljYWwpIC5yaWdodC5pdGVtLFxuLnVpLm1lbnU6bm90KC52ZXJ0aWNhbCkgLnJpZ2h0Lm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xufVxuLyogU3dhcHBlZCBCb3JkZXJzICovXG4udWkubWVudSAucmlnaHQuaXRlbTo6YmVmb3JlLFxuLnVpLm1lbnUgLnJpZ2h0Lm1lbnUgPiAuaXRlbTo6YmVmb3JlIHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudmVydGljYWwubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKi0tLSBJdGVtIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkudmVydGljYWwubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBweCAwcHg7XG59XG4udWkudmVydGljYWwubWVudSA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi8qLS0tIExhYmVsIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5sYWJlbCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyotLS0gSWNvbiAtLS0qL1xuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gPiBpLmljb24ge1xuICB3aWR0aDogMS4xOGVtO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC41ZW07XG59XG4udWkudmVydGljYWwubWVudSAuaXRlbSA+IC5sYWJlbCArIGkuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjVlbSAwZW0gMGVtO1xufVxuLyotLS0gQm9yZGVyIC0tLSovXG4udWkudmVydGljYWwubWVudSAuaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW06Zmlyc3QtY2hpbGQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0gU3ViIE1lbnUgLS0tKi9cbi51aS52ZXJ0aWNhbC5tZW51IC5pdGVtID4gLm1lbnUge1xuICBtYXJnaW46IDAuNWVtIC0xLjE0Mjg1NzE0ZW0gMGVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwLjVlbSAxLjMzMzMzMzMzZW07XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgYS5pdGVtOmhvdmVyLFxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmxpbmsuaXRlbTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFZlcnRpY2FsIEFjdGl2ZSAqL1xuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgPiAuYWN0aXZlLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51ID4gLmFjdGl2ZS5pdGVtOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLmFjdGl2ZS5pdGVtIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVGFidWxhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJ1bGFyLm1lbnUge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS50YWJ1bGFyLmZsdWlkLm1lbnUge1xuICB3aWR0aDogY2FsYygxMDIlKSAhaW1wb3J0YW50O1xufVxuLnVpLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwLjkyODU3MTQzZW0gMS40Mjg1NzE0M2VtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS50YWJ1bGFyLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkudGFidWxhci5tZW51IC5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMHB4IDBweCAhaW1wb3J0YW50O1xufVxuLyogQ291cGxpbmcgd2l0aCBzZWdtZW50IGZvciBhdHRhY2htZW50ICovXG4udWkudGFidWxhci5tZW51ICsgLmF0dGFjaGVkOm5vdCgudG9wKS5zZWdtZW50LFxuLnVpLnRhYnVsYXIubWVudSArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCArIC5hdHRhY2hlZDpub3QoLnRvcCkuc2VnbWVudCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwcHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRvcC5hdHRhY2hlZC5zZWdtZW50ICsgLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBjYWxjKDEwMiUpO1xuICBsZWZ0OiAtMXB4O1xufVxuLyogQm90dG9tIFZlcnRpY2FsIFRhYnVsYXIgKi9cbi51aS5ib3R0b20udGFidWxhci5tZW51IHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmJvdHRvbS50YWJ1bGFyLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZDogbm9uZSAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm9yZGVyLWNvbG9yOiAjRDRENEQ1O1xuICBtYXJnaW46IC0xcHggMHB4IDBweCAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAwcHggMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBWZXJ0aWNhbCBUYWJ1bGFyIChMZWZ0KSAqL1xuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLnVpLnZlcnRpY2FsLnRhYnVsYXIubWVudSAuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG59XG4udWkudmVydGljYWwudGFidWxhci5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgI0ZGRkZGRjtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1jb2xvcjogI0Q0RDRENTtcbiAgbWFyZ2luOiAwcHggLTFweCAwcHggMHB4O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBweCAwcHggMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLyogVmVydGljYWwgUmlnaHQgVGFidWxhciAqL1xuLnVpLnZlcnRpY2FsLnJpZ2h0LnRhYnVsYXIubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS52ZXJ0aWNhbC5yaWdodC50YWJ1bGFyLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnZlcnRpY2FsLnJpZ2h0LnRhYnVsYXIubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lICNGRkZGRkY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3JkZXItY29sb3I6ICNENEQ0RDU7XG4gIG1hcmdpbjogMHB4IDBweCAwcHggLTFweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwcHggIWltcG9ydGFudDtcbn1cbi8qIERyb3Bkb3duICovXG4udWkudGFidWxhci5tZW51IC5hY3RpdmUuZHJvcGRvd24uaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFBhZ2luYXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucGFnaW5hdGlvbi5tZW51IHtcbiAgbWFyZ2luOiAwZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW07XG59XG4udWkuY29tcGFjdC5tZW51IC5pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi51aS5wYWdpbmF0aW9uLm1lbnUgLml0ZW06bGFzdC1jaGlsZDpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnBhZ2luYXRpb24ubWVudSAuaXRlbSB7XG4gIG1pbi13aWR0aDogM2VtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkucGFnaW5hdGlvbi5tZW51IC5pY29uLml0ZW0gaS5pY29uIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnBhZ2luYXRpb24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xuICBwYWRkaW5nLXRvcDogMC45Mjg1NzE0M2VtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNlY29uZGFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtMC4zNTcxNDI4NmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjM1NzE0Mjg2ZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSXRlbSAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAwLjkyODU3MTQzZW07XG4gIG1hcmdpbjogMGVtIDAuMzU3MTQyODZlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLyogTm8gRGl2aWRlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLnNlY29uZGFyeS5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lIHRyYW5zcGFyZW50O1xufVxuLyogSW1hZ2UgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuaXRlbSA+IGltZzpub3QoLnVpKSB7XG4gIG1hcmdpbjogMGVtO1xufVxuLyogSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuZHJvcGRvd24uaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5tZW51IGEuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4vKiBBY3RpdmUgSG92ZXIgKi9cbi51aS5zZWNvbmRhcnkubWVudSAuYWN0aXZlLml0ZW06aG92ZXIge1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEludmVydGVkICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgLmxpbmsuaXRlbSxcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSBhLml0ZW0ge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQubWVudSBhLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4vKiBGaXggaXRlbSBtYXJnaW5zICovXG4udWkuc2Vjb25kYXJ5Lml0ZW0ubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLnNlY29uZGFyeS5pdGVtLm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLnNlY29uZGFyeS5hdHRhY2hlZC5tZW51IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIFN1YiBNZW51ICovXG4udWkudmVydGljYWwuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSB7XG4gIG1hcmdpbjogMGVtIC0wLjkyODU3MTQzZW07XG59XG4udWkudmVydGljYWwuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNWVtIDEuMzMzMzMzMzNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTZWNvbmRhcnkgVmVydGljYWxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwubWVudSA+IC5pdGVtIHtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDBlbSAwZW0gMC4zNTcxNDI4NmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLm1lbnUgPiAuaGVhZGVyLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4vKiBTdWIgTWVudSAqL1xuLnVpLnZlcnRpY2FsLnNlY29uZGFyeS5tZW51IC5pdGVtID4gLm1lbnUgLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qIEludmVydGVkICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTZWNvbmRhcnkgUG9pbnRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgbWFyZ2luOiAwZW0gMGVtIC0ycHg7XG4gIHBhZGRpbmc6IDAuODU3MTQyODZlbSAxLjE0Mjg1NzE0ZW07XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLyogSXRlbSBUeXBlcyAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpICFpbXBvcnRhbnQ7XG59XG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgLnRleHQuaXRlbSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuaXRlbTphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmhvdmVyLFxuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5saW5rLml0ZW06aG92ZXIsXG4udWkuc2Vjb25kYXJ5LnBvaW50aW5nLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogUHJlc3NlZCAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5kcm9wZG93bi5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAubGluay5pdGVtOmFjdGl2ZSxcbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSBhLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItY29sb3I6ICMxQjFDMUQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSBIb3ZlciAqL1xuLnVpLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogIzFCMUMxRDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBBY3RpdmUgRHJvcGRvd24gKi9cbi51aS5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAuYWN0aXZlLmRyb3Bkb3duLml0ZW0ge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLyogVmVydGljYWwgUG9pbnRpbmcgKi9cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAycHg7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkudmVydGljYWwucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAtMnB4IDBlbSAwZW07XG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xufVxuLyogVmVydGljYWwgQWN0aXZlICovXG4udWkuc2Vjb25kYXJ5LnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjMUIxQzFEO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IHtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuaXRlbSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEhvdmVyICovXG4udWkuc2Vjb25kYXJ5LmludmVydGVkLnBvaW50aW5nLm1lbnUgLmxpbmsuaXRlbTpob3Zlcixcbi51aS5zZWNvbmRhcnkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSBhLml0ZW06aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0ZGRkZGRjtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgVGV4dCBNZW51XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRleHQubWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmUgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDFlbSAtMC41ZW07XG59XG4udWkudGV4dC5tZW51IC5pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMC4zNTcxNDI4NmVtIDAuNWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi8qIEJvcmRlciAqL1xuLnVpLnRleHQubWVudSAuaXRlbTpiZWZvcmUsXG4udWkudGV4dC5tZW51IC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLnRleHQubWVudSAuaGVhZGVyLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M2VtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qIEltYWdlICovXG4udWkudGV4dC5tZW51IC5pdGVtID4gaW1nOm5vdCgudWkpIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKi0tLSBmbHVpZCB0ZXh0IC0tLSovXG4udWkudGV4dC5pdGVtLm1lbnUgLml0ZW0ge1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tIHZlcnRpY2FsIHRleHQgLS0tKi9cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUge1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnU6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDByZW07XG59XG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtIHtcbiAgbWFyZ2luOiAwLjU3MTQyODU3ZW0gMGVtO1xuICBwYWRkaW5nLWxlZnQ6IDBlbTtcbiAgcGFkZGluZy1yaWdodDogMGVtO1xufVxuLnVpLnZlcnRpY2FsLnRleHQubWVudSAuaXRlbSA+IGkuaWNvbiB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW46IDBlbSAwLjM1NzE0Mjg2ZW0gMGVtIDBlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLmhlYWRlci5pdGVtIHtcbiAgbWFyZ2luOiAwLjU3MTQyODU3ZW0gMGVtIDAuNzE0Mjg1NzFlbTtcbn1cbi8qIFZlcnRpY2FsIFN1YiBNZW51ICovXG4udWkudmVydGljYWwudGV4dC5tZW51IC5pdGVtOm5vdCguZHJvcGRvd24pID4gLm1lbnUge1xuICBtYXJnaW46IDBlbTtcbn1cbi51aS52ZXJ0aWNhbC50ZXh0Lm1lbnUgLml0ZW06bm90KC5kcm9wZG93bikgPiAubWVudSA+IC5pdGVtIHtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNWVtIDBlbTtcbn1cbi8qLS0tIGhvdmVyIC0tLSovXG4udWkudGV4dC5tZW51IC5pdGVtOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLSBhY3RpdmUgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLSBhY3RpdmUgaG92ZXIgLS0tKi9cbi51aS50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBEaXNhYmxlIEJhcmlhdGlvbnMgKi9cbi51aS50ZXh0LnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi51aS50ZXh0LmF0dGFjaGVkLm1lbnUge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUsXG4udWkuaW52ZXJ0ZWQudGV4dC5tZW51IC5pdGVtLFxuLnVpLmludmVydGVkLnRleHQubWVudSAuaXRlbTpob3Zlcixcbi51aS5pbnZlcnRlZC50ZXh0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQudGV4dC5tZW51IHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgSWNvbiBPbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmVydGljYWwgTWVudSAqL1xuLnVpLnZlcnRpY2FsLmljb24ubWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IGF1dG87XG59XG4vKiBJdGVtICovXG4udWkuaWNvbi5tZW51IC5pdGVtIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMUIxQzFEO1xufVxuLyogSWNvbiAqL1xuLnVpLmljb24ubWVudSAuaXRlbSA+IC5pY29uOm5vdCguZHJvcGRvd24pIHtcbiAgbWFyZ2luOiAwO1xuICBvcGFjaXR5OiAxO1xufVxuLyogSWNvbiBHeWxwaCAqL1xuLnVpLmljb24ubWVudSAuaWNvbjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuLyogKHgpIEl0ZW0gSWNvbiAqL1xuLnVpLm1lbnUgLmljb24uaXRlbSA+IC5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIGF1dG87XG59XG4vKiBWZXJ0aWNhbCBJY29uICovXG4udWkudmVydGljYWwuaWNvbi5tZW51IC5pdGVtID4gLmljb246bm90KC5kcm9wZG93bikge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMTtcbiAgbWFyZ2luOiAwZW0gYXV0bztcbiAgZmxvYXQ6IG5vbmU7XG59XG4vKiBJbnZlcnRlZCAqL1xuLnVpLmludmVydGVkLmljb24ubWVudSAuaXRlbSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgTGFiZWxlZCBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyogSXRlbSAqL1xuLnVpLmxhYmVsZWQuaWNvbi5tZW51IC5pdGVtIHtcbiAgbWluLXdpZHRoOiA2ZW07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4vKiBJY29uICovXG4udWkubGFiZWxlZC5pY29uLm1lbnUgLml0ZW0gPiAuaWNvbjpub3QoLmRyb3Bkb3duKSB7XG4gIGhlaWdodDogMWVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gYXV0byAwLjVyZW0gIWltcG9ydGFudDtcbn1cbi8qIEZsdWlkICovXG4udWkuZmx1aWQubGFiZWxlZC5pY29uLm1lbnUgPiAuaXRlbSB7XG4gIG1pbi13aWR0aDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zdGFja2FibGUubWVudSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudWkuc3RhY2thYmxlLm1lbnUgLml0ZW0ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICB9XG4gIC51aS5zdGFja2FibGUubWVudSAubGVmdC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLmxlZnQuaXRlbSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5yaWdodC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLnJpZ2h0Lml0ZW0ge1xuICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnN0YWNrYWJsZS5tZW51IC5yaWdodC5tZW51LFxuICAudWkuc3RhY2thYmxlLm1lbnUgLmxlZnQubWVudSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBTdGFuZGFyZCBDb2xvcnMgIC0tLSovXG4udWkubWVudSAucmVkLmFjdGl2ZS5pdGVtLFxuLnVpLnJlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLm9yYW5nZS5hY3RpdmUuaXRlbSxcbi51aS5vcmFuZ2UubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGMjcxMUMgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkueWVsbG93Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAub2xpdmUuYWN0aXZlLml0ZW0sXG4udWkub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ncmVlbi5hY3RpdmUuaXRlbSxcbi51aS5ncmVlbi5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnRlYWwuYWN0aXZlLml0ZW0sXG4udWkudGVhbC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzAwQjVBRCAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLmJsdWUuYWN0aXZlLml0ZW0sXG4udWkuYmx1ZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1jb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xufVxuLnVpLm1lbnUgLnZpb2xldC5hY3RpdmUuaXRlbSxcbi51aS52aW9sZXQubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2NDM1QzkgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkucHVycGxlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAucGluay5hY3RpdmUuaXRlbSxcbi51aS5waW5rLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYm9yZGVyLWNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRTAzOTk3ICFpbXBvcnRhbnQ7XG59XG4udWkubWVudSAuYnJvd24uYWN0aXZlLml0ZW0sXG4udWkuYnJvd24ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbiAgY29sb3I6ICNBNTY3M0YgIWltcG9ydGFudDtcbn1cbi51aS5tZW51IC5ncmV5LmFjdGl2ZS5pdGVtLFxuLnVpLmdyZXkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM3Njc2NzYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IHtcbiAgYm9yZGVyOiAwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBNZW51IEl0ZW0gKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLFxuLnVpLmludmVydGVkLm1lbnUgLml0ZW0gPiBhOm5vdCgudWkpIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5tZW51IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4vKi0tLSBCb3JkZXIgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS52ZXJ0aWNhbC5pbnZlcnRlZC5tZW51IC5tZW51IC5pdGVtLFxuLnVpLnZlcnRpY2FsLmludmVydGVkLm1lbnUgLm1lbnUgLml0ZW0gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4vKiBIZWFkZXIgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5oZWFkZXIuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi8qIERpc2FibGVkICovXG4udWkuaW52ZXJ0ZWQubWVudSAuaXRlbS5kaXNhYmxlZCxcbi51aS5pbnZlcnRlZC5tZW51IC5pdGVtLmRpc2FibGVkOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjUsIDIyNSwgMC4zKTtcbn1cbi8qLS0tIEhvdmVyIC0tLSovXG4udWkubGluay5pbnZlcnRlZC5tZW51IC5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIsXG4udWkuaW52ZXJ0ZWQubWVudSAubGluay5pdGVtOmhvdmVyLFxuLnVpLmludmVydGVkLm1lbnUgYS5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSBhLml0ZW06aG92ZXIsXG4udWkudmVydGljYWwuaW52ZXJ0ZWQubWVudSAuaXRlbSAubWVudSAubGluay5pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLyotLS0gUHJlc3NlZCAtLS0qL1xuLnVpLmludmVydGVkLm1lbnUgYS5pdGVtOmFjdGl2ZSxcbi51aS5pbnZlcnRlZC5tZW51IC5saW5rLml0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLSBBY3RpdmUgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudmVydGljYWwubWVudSAuaXRlbSAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjMjg2MDhFICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLSBBY3RpdmUgSG92ZXIgLS0tKi9cbi51aS5pbnZlcnRlZC5tZW51IC5hY3RpdmUuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjMjg2MDhFICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMHJlbSAwLjVyZW0gMHJlbSAwcmVtO1xufVxuLnVpLmZsb2F0ZWQubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkucmlnaHQuZmxvYXRlZC5tZW51IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDByZW0gMHJlbSAwcmVtIDAuNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlZCAqL1xuLnVpLmludmVydGVkLm1lbnUgLnJlZC5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5yZWQubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4Mjg7XG59XG4udWkuaW52ZXJ0ZWQucmVkLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLnJlZC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogT3JhbmdlICovXG4udWkuaW52ZXJ0ZWQubWVudSAub3JhbmdlLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLm9yYW5nZS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQztcbn1cbi51aS5pbnZlcnRlZC5vcmFuZ2UubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS5pbnZlcnRlZC5tZW51IC55ZWxsb3cuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQueWVsbG93Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4O1xufVxuLnVpLmludmVydGVkLnllbGxvdy5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIE9saXZlICovXG4udWkuaW52ZXJ0ZWQubWVudSAub2xpdmUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTg7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQub2xpdmUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG4udWkuaW52ZXJ0ZWQubWVudSAuZ3JlZW4uYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMUJBNDU7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4ubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFRlYWwgKi9cbi51aS5pbnZlcnRlZC5tZW51IC50ZWFsLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnRlYWwubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMEI1QUQ7XG59XG4udWkuaW52ZXJ0ZWQudGVhbC5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG4udWkuaW52ZXJ0ZWQubWVudSAuYmx1ZS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ibHVlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFO1xufVxuLnVpLmludmVydGVkLmJsdWUubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyogVmlvbGV0ICovXG4udWkuaW52ZXJ0ZWQubWVudSAudmlvbGV0LmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnZpb2xldC5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOTtcbn1cbi51aS5pbnZlcnRlZC52aW9sZXQubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5wdXJwbGUuYWN0aXZlLml0ZW0sXG4udWkuaW52ZXJ0ZWQucHVycGxlLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4O1xufVxuLnVpLmludmVydGVkLnB1cnBsZS5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi8qIFBpbmsgKi9cbi51aS5pbnZlcnRlZC5tZW51IC5waW5rLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLnBpbmsubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTc7XG59XG4udWkuaW52ZXJ0ZWQucGluay5tZW51IC5pdGVtOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5pbnZlcnRlZC5waW5rLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmludmVydGVkLm1lbnUgLmJyb3duLmFjdGl2ZS5pdGVtLFxuLnVpLmludmVydGVkLmJyb3duLm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTU2NzNGO1xufVxuLnVpLmludmVydGVkLmJyb3duLm1lbnUgLml0ZW06YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLmludmVydGVkLmJyb3duLm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG59XG4vKiBHcmV5ICovXG4udWkuaW52ZXJ0ZWQubWVudSAuZ3JleS5hY3RpdmUuaXRlbSxcbi51aS5pbnZlcnRlZC5ncmV5Lm1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xufVxuLnVpLmludmVydGVkLmdyZXkubWVudSAuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG59XG4udWkuaW52ZXJ0ZWQuZ3JleS5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXR0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml0dGVkLm1lbnUgLml0ZW0sXG4udWkuZml0dGVkLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW0sXG4udWkubWVudSAuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nOiAwZW07XG59XG4udWkuaG9yaXpvbnRhbGx5LmZpdHRlZC5tZW51IC5pdGVtLFxuLnVpLmhvcml6b250YWxseS5maXR0ZWQubWVudSAuaXRlbSAubWVudSAuaXRlbSxcbi51aS5tZW51IC5ob3Jpem9udGFsbHkuZml0dGVkLml0ZW0ge1xuICBwYWRkaW5nLXRvcDogMC45Mjg1NzE0M2VtO1xuICBwYWRkaW5nLWJvdHRvbTogMC45Mjg1NzE0M2VtO1xufVxuLnVpLnZlcnRpY2FsbHkuZml0dGVkLm1lbnUgLml0ZW0sXG4udWkudmVydGljYWxseS5maXR0ZWQubWVudSAuaXRlbSAubWVudSAuaXRlbSxcbi51aS5tZW51IC52ZXJ0aWNhbGx5LmZpdHRlZC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjE0Mjg1NzE0ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuMTQyODU3MTRlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEJvcmRlcmxlc3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYm9yZGVybGVzcy5tZW51IC5pdGVtOmJlZm9yZSxcbi51aS5ib3JkZXJsZXNzLm1lbnUgLml0ZW0gLm1lbnUgLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLmJvcmRlcmxlc3MuaXRlbTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb21wYWN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC5tZW51IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1hcmdpbjogMGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmNvbXBhY3QudmVydGljYWwubWVudSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi51aS5jb21wYWN0Lm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLnVpLmNvbXBhY3QubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkuY29tcGFjdC52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS5jb21wYWN0LnZlcnRpY2FsLm1lbnUgLml0ZW06bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tZW51LmZsdWlkLFxuLnVpLnZlcnRpY2FsLm1lbnUuZmx1aWQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFdmVubHkgU2l6ZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtLm1lbnUsXG4udWkuaXRlbS5tZW51IC5pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDBlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4udWkuYXR0YWNoZWQuaXRlbS5tZW51IHtcbiAgbWFyZ2luOiAwZW0gLTFweCAhaW1wb3J0YW50O1xufVxuLnVpLml0ZW0ubWVudSAuaXRlbTpsYXN0LWNoaWxkOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udWkubWVudS50d28uaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkubWVudS50aHJlZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDMzLjMzMyU7XG59XG4udWkubWVudS5mb3VyLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMjUlO1xufVxuLnVpLm1lbnUuZml2ZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDIwJTtcbn1cbi51aS5tZW51LnNpeC5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDE2LjY2NiU7XG59XG4udWkubWVudS5zZXZlbi5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDE0LjI4NSU7XG59XG4udWkubWVudS5laWdodC5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDEyLjUwMCU7XG59XG4udWkubWVudS5uaW5lLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMTEuMTElO1xufVxuLnVpLm1lbnUudGVuLml0ZW0gLml0ZW0ge1xuICB3aWR0aDogMTAuMCU7XG59XG4udWkubWVudS5lbGV2ZW4uaXRlbSAuaXRlbSB7XG4gIHdpZHRoOiA5LjA5JTtcbn1cbi51aS5tZW51LnR3ZWx2ZS5pdGVtIC5pdGVtIHtcbiAgd2lkdGg6IDguMzMzJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWVudS5maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAxO1xuICBtYXJnaW46IDBlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG4udWkubWVudS5maXhlZCxcbi51aS5tZW51LmZpeGVkIC5pdGVtOmZpcnN0LWNoaWxkLFxuLnVpLm1lbnUuZml4ZWQgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xufVxuLnVpLmZpeGVkLm1lbnUsXG4udWlbY2xhc3MqPVwidG9wIGZpeGVkXCJdLm1lbnUge1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xufVxuLnVpW2NsYXNzKj1cInRvcCBmaXhlZFwiXS5tZW51IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmaXhlZFwiXS5tZW51IHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgbGVmdDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVpW2NsYXNzKj1cImJvdHRvbSBmaXhlZFwiXS5tZW51IHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbn1cbi51aVtjbGFzcyo9XCJsZWZ0IGZpeGVkXCJdLm1lbnUge1xuICBib3JkZXItdG9wOiBub25lO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMTAwJTtcbn1cbi8qIENvdXBsaW5nIHdpdGggR3JpZCAqL1xuLnVpLmZpeGVkLm1lbnUgKyAudWkuZ3JpZCB7XG4gIHBhZGRpbmctdG9wOiAyLjc1cmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUG9pbnRpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wb2ludGluZy5tZW51IC5pdGVtOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwLjVweCAwZW0gMGVtO1xuICB3aWR0aDogMC41NzE0Mjg1N2VtO1xuICBoZWlnaHQ6IDAuNTcxNDI4NTdlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q0RDRENTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0Q0RDRENTtcbiAgei1pbmRleDogMjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzIGVhc2U7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAuaXRlbTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIG1hcmdpbjogMGVtIC0wLjVweCAwZW0gMGVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDRENEQ1O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjRDRENEQ1O1xufVxuLyogQWN0aXZlICovXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5kcm9wZG93bi5pdGVtOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogRG9uJ3QgZG91YmxlIHVwIHBvaW50ZXJzICovXG4udWkucG9pbnRpbmcubWVudSAuZHJvcGRvd24uYWN0aXZlLml0ZW06YWZ0ZXIsXG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW0gLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIENvbG9ycyAqL1xuLnVpLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkucG9pbnRpbmcubWVudSAuYWN0aXZlLml0ZW06aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyO1xufVxuLnVpLnZlcnRpY2FsLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmhvdmVyOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbn1cbi51aS52ZXJ0aWNhbC5wb2ludGluZy5tZW51IC5hY3RpdmUuaXRlbTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG59XG4udWkudmVydGljYWwucG9pbnRpbmcubWVudSAubWVudSAuYWN0aXZlLml0ZW06YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEF0dGFjaGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWlkZGxlICovXG4udWkuYXR0YWNoZWQubWVudSB7XG4gIHRvcDogMHB4O1xuICBib3R0b206IDBweDtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xuICBtYXJnaW46IDBlbSAtMXB4O1xuICB3aWR0aDogY2FsYygxMDIlKTtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMiUpO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmF0dGFjaGVkICsgLnVpLmF0dGFjaGVkLm1lbnU6bm90KC50b3ApIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIFRvcCAqL1xuLnVpW2NsYXNzKj1cInRvcCBhdHRhY2hlZFwiXS5tZW51IHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpLm1lbnVbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogQm90dG9tICovXG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLm1lbnUge1xuICBib3R0b206IDBweDtcbiAgbWFyZ2luLXRvcDogMGVtO1xuICB0b3A6IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYXR0YWNoZWRcIl0ubWVudTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogQXR0YWNoZWQgTWVudSBJdGVtICovXG4udWkudG9wLmF0dGFjaGVkLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMGVtIDBlbSAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4vKiBUYWJ1bGFyIEF0dGFjaGVkICovXG4udWkuYXR0YWNoZWQubWVudTpub3QoLnRhYnVsYXIpIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5hdHRhY2hlZC5pbnZlcnRlZC5tZW51IHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLmF0dGFjaGVkLnRhYnVsYXIubWVudSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1pbmkgKi9cbi51aS5taW5pLm1lbnUge1xuICBmb250LXNpemU6IDAuNzg1NzE0MjlyZW07XG59XG4udWkubWluaS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDlyZW07XG59XG4vKiBUaW55ICovXG4udWkudGlueS5tZW51IHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnRpbnkudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAxMXJlbTtcbn1cbi8qIFNtYWxsICovXG4udWkuc21hbGwubWVudSB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5zbWFsbC52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDEzcmVtO1xufVxuLyogTWVkaXVtICovXG4udWkubWVudSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi51aS52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDE1cmVtO1xufVxuLyogTGFyZ2UgKi9cbi51aS5sYXJnZS5tZW51IHtcbiAgZm9udC1zaXplOiAxLjA3MTQyODU3cmVtO1xufVxuLnVpLmxhcmdlLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMThyZW07XG59XG4vKiBIdWdlICovXG4udWkuaHVnZS5tZW51IHtcbiAgZm9udC1zaXplOiAxLjIxNDI4NTcxcmVtO1xufVxuLnVpLmh1Z2UudmVydGljYWwubWVudSB7XG4gIHdpZHRoOiAyMnJlbTtcbn1cbi8qIEJpZyAqL1xuLnVpLmJpZy5tZW51IHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmJpZy52ZXJ0aWNhbC5tZW51IHtcbiAgd2lkdGg6IDIwcmVtO1xufVxuLyogTWFzc2l2ZSAqL1xuLnVpLm1hc3NpdmUubWVudSB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOXJlbTtcbn1cbi51aS5tYXNzaXZlLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMjVyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTWVzc2FnZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE1lc3NhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIExpc3QgKi9cbi8qIEljb24gKi9cbi8qIENsb3NlIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBNZXNzYWdlICovXG4vKiBBdHRhY2hlZCAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIENvbG9ycyAqL1xuLyogV2FybmluZyAvIFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBJbmZvICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE1lc3NhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSGVhZGVyICovXG4vKiBQYXJhZ3JhcGggKi9cbi8qIExpc3QgKi9cbi8qIEljb24gKi9cbi8qIENsb3NlIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiBNZXNzYWdlICovXG4vKiBBdHRhY2hlZCAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIENvbG9ycyAqL1xuLyogV2FybmluZyAvIFBvc2l0aXZlIC8gTmVnYXRpdmUgLyBJbmZvICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIE1lc3NhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubWVzc2FnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMWVtO1xuICBtYXJnaW46IDFlbSAwZW07XG4gIGJhY2tncm91bmQ6ICNGOEY4Rjk7XG4gIHBhZGRpbmc6IDFlbSAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYmFja2dyb3VuZCAwLjFzIGVhc2UsIGJveC1zaGFkb3cgMC4xcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjIyKSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkubWVzc2FnZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIZWFkZXIgKi9cbi51aS5tZXNzYWdlIC5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG1hcmdpbjogLTAuMTQyODU3MTRlbSAwZW0gMHJlbSAwZW07XG59XG4vKiBEZWZhdWx0IGZvbnQgc2l6ZSAqL1xuLnVpLm1lc3NhZ2UgLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLyogUGFyYWdyYXBoICovXG4udWkubWVzc2FnZSBwIHtcbiAgb3BhY2l0eTogMC44NTtcbiAgbWFyZ2luOiAwLjc1ZW0gMGVtO1xufVxuLnVpLm1lc3NhZ2UgcDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5tZXNzYWdlIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi51aS5tZXNzYWdlIC5oZWFkZXIgKyBwIHtcbiAgbWFyZ2luLXRvcDogMC4yNWVtO1xufVxuLyogTGlzdCAqL1xuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwZW07XG4gIG9wYWNpdHk6IDAuODU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSk6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuM2VtIDFlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLm1lc3NhZ2UgLmxpc3Q6bm90KC51aSkgbGk6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAn4oCiJztcbiAgbGVmdDogLTFlbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkubWVzc2FnZSAubGlzdDpub3QoLnVpKSBsaTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyogSWNvbiAqL1xuLnVpLm1lc3NhZ2UgPiAuaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogMC42ZW07XG59XG4vKiBDbG9zZSBJY29uICovXG4udWkubWVzc2FnZSA+IC5jbG9zZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMGVtO1xuICB0b3A6IDAuNzg1NzVlbTtcbiAgcmlnaHQ6IDAuNWVtO1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlO1xufVxuLnVpLm1lc3NhZ2UgPiAuY2xvc2UuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKiBGaXJzdCAvIExhc3QgRWxlbWVudCAqL1xuLnVpLm1lc3NhZ2UgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4udWkubWVzc2FnZSA+IDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2Uge1xuICBtYXJnaW46IDBweCAtMXB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBWaXNpYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZpc2libGUudmlzaWJsZS52aXNpYmxlLnZpc2libGUubWVzc2FnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLmljb24udmlzaWJsZS52aXNpYmxlLnZpc2libGUudmlzaWJsZS5tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSGlkZGVuXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmhpZGRlbi5oaWRkZW4uaGlkZGVuLmhpZGRlbi5tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIENvbXBhY3Rcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tcGFjdC5tZXNzYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnVpLmNvbXBhY3QuaWNvbi5tZXNzYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYXR0YWNoZWQubWVzc2FnZSB7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xuICBib3gtc2hhZG93OiAwZW0gMGVtIDBlbSAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIG1hcmdpbi1yaWdodDogLTFweDtcbn1cbi51aS5hdHRhY2hlZCArIC51aS5hdHRhY2hlZC5tZXNzYWdlOm5vdCgudG9wKTpub3QoLmJvdHRvbSkge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuYm90dG9tLmF0dGFjaGVkLm1lc3NhZ2Uge1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMGVtIDBlbSAwZW0gMXB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgaW5zZXQsIDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5ib3R0b20uYXR0YWNoZWQubWVzc2FnZTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLnVpLmF0dGFjaGVkLmljb24ubWVzc2FnZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pY29uLm1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi51aS5pY29uLm1lc3NhZ2UgPiAuaWNvbjpub3QoLmNsb3NlKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXNpemU6IDNlbTtcbiAgb3BhY2l0eTogMC44O1xufVxuLnVpLmljb24ubWVzc2FnZSA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmljb24ubWVzc2FnZSAuaWNvbjpub3QoLmNsb3NlKSArIC5jb250ZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwcmVtO1xufVxuLnVpLmljb24ubWVzc2FnZSAuY2lyY3VsYXIuaWNvbiB7XG4gIHdpZHRoOiAxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRmxvYXRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvYXRpbmcubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMjIpIGluc2V0LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYmxhY2subWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi51aS5wb3NpdGl2ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkZGNTtcbiAgY29sb3I6ICMyQzY2MkQ7XG59XG4udWkucG9zaXRpdmUubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5wb3NpdGl2ZS5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBM0MyOTMgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnBvc2l0aXZlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyogTmVnYXRpdmUgKi9cbi51aS5uZWdhdGl2ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZGNjtcbiAgY29sb3I6ICM5RjNBMzg7XG59XG4udWkubmVnYXRpdmUubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5uZWdhdGl2ZS5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMEI0QjQgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLm5lZ2F0aXZlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjOTEyRDJCO1xufVxuLyogSW5mbyAqL1xuLnVpLmluZm8ubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGOEZGRkY7XG4gIGNvbG9yOiAjMjc2Rjg2O1xufVxuLnVpLmluZm8ubWVzc2FnZSxcbi51aS5hdHRhY2hlZC5pbmZvLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0E5RDVERSBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuaW5mby5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzBFNTY2Qztcbn1cbi8qIFdhcm5pbmcgKi9cbi51aS53YXJuaW5nLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGQUYzO1xuICBjb2xvcjogIzU3M0EwODtcbn1cbi51aS53YXJuaW5nLm1lc3NhZ2UsXG4udWkuYXR0YWNoZWQud2FybmluZy5tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNDOUJBOUIgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLndhcm5pbmcubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM3OTRCMDI7XG59XG4vKiBFcnJvciAqL1xuLnVpLmVycm9yLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGNkY2O1xuICBjb2xvcjogIzlGM0EzODtcbn1cbi51aS5lcnJvci5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLmVycm9yLm1lc3NhZ2Uge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0UwQjRCNCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuZXJyb3IubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5MTJEMkI7XG59XG4vKiBTdWNjZXNzICovXG4udWkuc3VjY2Vzcy5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkZGNTtcbiAgY29sb3I6ICMyQzY2MkQ7XG59XG4udWkuc3VjY2Vzcy5tZXNzYWdlLFxuLnVpLmF0dGFjaGVkLnN1Y2Nlc3MubWVzc2FnZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjQTNDMjkzIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5zdWNjZXNzLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMUE1MzFCO1xufVxuLyogQ29sb3JzICovXG4udWkuaW52ZXJ0ZWQubWVzc2FnZSxcbi51aS5ibGFjay5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCMUMxRDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi51aS5yZWQubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkU4RTY7XG4gIGNvbG9yOiAjREIyODI4O1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0RCMjgyOCBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkucmVkLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjYzgyMTIxO1xufVxuLnVpLm9yYW5nZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRURERTtcbiAgY29sb3I6ICNGMjcxMUM7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRjI3MTFDIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5vcmFuZ2UubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICNlNzY0MGQ7XG59XG4udWkueWVsbG93Lm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOERCO1xuICBjb2xvcjogI0I1ODEwNTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNCNTgxMDUgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnllbGxvdy5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzljNmYwNDtcbn1cbi51aS5vbGl2ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCRkRFRjtcbiAgY29sb3I6ICM4QUJDMUU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjOEFCQzFFIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5vbGl2ZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzdhYTYxYTtcbn1cbi51aS5ncmVlbi5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U1RjlFNztcbiAgY29sb3I6ICMxRUJDMzA7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMUVCQzMwIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5ncmVlbi5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzFhYTYyYTtcbn1cbi51aS50ZWFsLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTFGN0Y3O1xuICBjb2xvcjogIzEwQTNBMztcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICMxMEEzQTMgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnRlYWwubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICMwZThjOGM7XG59XG4udWkuYmx1ZS5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGRjBGRjtcbiAgY29sb3I6ICMyQzZBOUU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjMkM2QTlFIGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS5ibHVlLm1lc3NhZ2UgLmhlYWRlciB7XG4gIGNvbG9yOiAjMjY1ZDhhO1xufVxuLnVpLnZpb2xldC5tZXNzYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VBRTdGRjtcbiAgY29sb3I6ICM2NDM1Qzk7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjNjQzNUM5IGluc2V0LCAwcHggMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi51aS52aW9sZXQubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM1YTMwYjU7XG59XG4udWkucHVycGxlLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZFN0ZGO1xuICBjb2xvcjogI0EzMzNDODtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNBMzMzQzggaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnB1cnBsZS5tZXNzYWdlIC5oZWFkZXIge1xuICBjb2xvcjogIzkyMmViNDtcbn1cbi51aS5waW5rLm1lc3NhZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFM0ZCO1xuICBjb2xvcjogI0UwMzk5NztcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNFMDM5OTcgaW5zZXQsIDBweCAwcHggMHB4IDBweCByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnVpLnBpbmsubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICNkZDIzOGI7XG59XG4udWkuYnJvd24ubWVzc2FnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMUUyRDM7XG4gIGNvbG9yOiAjQTU2NzNGO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0E1NjczRiBpbnNldCwgMHB4IDBweCAwcHggMHB4IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4udWkuYnJvd24ubWVzc2FnZSAuaGVhZGVyIHtcbiAgY29sb3I6ICM5MzViMzg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xufVxuLnVpLnRpbnkubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xufVxuLnVpLnNtYWxsLm1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbn1cbi51aS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFyZ2UubWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNGVtO1xufVxuLnVpLmJpZy5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5ZW07XG59XG4udWkuaHVnZS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzZW07XG59XG4udWkubWFzc2l2ZS5tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxLjcxNDI4NTcxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFRhYmxlXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIFJvdyAqL1xuLyogVGFibGUgQ2VsbCAqL1xuLyogVGFibGUgSGVhZGVyICovXG4vKiBUYWJsZSBGb290ZXIgKi9cbi8qIFJlc3BvbnNpdmUgU2l6ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmluaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogRXJyb3IgKi9cbi8qIFdhcm5pbmcgKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBTdHJpcGVkICovXG4vKiBTZWxlY3RhYmxlICovXG4vKiBTb3J0YWJsZSAqL1xuLyogQ29sb3JzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIFBhZGRlZCAqL1xuLyogQ29tcGFjdCAqL1xuLyogU2l6ZXMgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIFJvdyAqL1xuLyogVGFibGUgQ2VsbCAqL1xuLyogVGFibGUgSGVhZGVyICovXG4vKiBUYWJsZSBGb290ZXIgKi9cbi8qIFJlc3BvbnNpdmUgU2l6ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmluaXRpb24gKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogRXJyb3IgKi9cbi8qIFdhcm5pbmcgKi9cbi8qIEFjdGl2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBTdHJpcGVkICovXG4vKiBTZWxlY3RhYmxlICovXG4vKiBTb3J0YWJsZSAqL1xuLyogQ29sb3JzICovXG4vKiBJbnZlcnRlZCAqL1xuLyogQmFzaWMgKi9cbi8qIFBhZGRlZCAqL1xuLyogQ29tcGFjdCAqL1xuLyogU2l6ZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUHJvdG90eXBlICovXG4udWkudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgbWFyZ2luOiAxZW0gMGVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDBweDtcbn1cbi51aS50YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS50YWJsZTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQYXJ0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRhYmxlIENvbnRlbnQgKi9cbi51aS50YWJsZSB0aCxcbi51aS50YWJsZSB0ZCB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4vKiBIZWFkZXJzICovXG4udWkudGFibGUgdGhlYWQge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRoIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgcGFkZGluZzogMC45Mjg1NzE0M2VtIDAuNzg1NzE0MjllbTtcbiAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG4gIGZvbnQtc3R5bGU6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkudGFibGUgdGhlYWQgdHIgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLnRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkID4gdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkudGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgPiB0aDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4vKiBGb290ZXIgKi9cbi51aS50YWJsZSB0Zm9vdCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdGgge1xuICBjdXJzb3I6IGF1dG87XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDAuNzg1NzE0MjllbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cbi51aS50YWJsZSB0Zm9vdCB0ciA+IHRoOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMGVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWkudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgPiB0aDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDBlbTtcbn1cbi51aS50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCA+IHRoOm9ubHktY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi8qIFRhYmxlIFJvdyAqL1xuLnVpLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS50YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4vKiBSZXBlYXRlZCB0Ym9keSAqL1xuLnVpLnRhYmxlIHRib2R5ICsgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLyogVGFibGUgQ2VsbHMgKi9cbi51aS50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjllbSAwLjc4NTcxNDI5ZW07XG4gIHRleHQtYWxpZ246IGluaGVyaXQ7XG59XG4vKiBJY29ucyAqL1xuLnVpLnRhYmxlID4gLmljb24ge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4udWkudGFibGUgPiAuaWNvbjpvbmx5LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBUYWJsZSBTZWdtZW50ICovXG4udWkudGFibGUuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS50YWJsZS5zZWdtZW50OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS50YWJsZS5zZWdtZW50LnN0YWNrZWQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIFJlc3BvbnNpdmUgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGJvZHksXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0cixcbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGgsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRkIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGZvb3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciB7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRyID4gdGgsXG4gIC51aS50YWJsZTpub3QoLnVuc3RhY2thYmxlKSB0ciA+IHRkIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAuMjVlbSAwLjc1ZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpLnRhYmxlOm5vdCgudW5zdGFja2FibGUpIHRoOmZpcnN0LWNoaWxkLFxuICAudWkudGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC8qIERlZmluaXRpb24gVGFibGUgKi9cbiAgLnVpLmRlZmluaXRpb24udGFibGU6bm90KC51bnN0YWNrYWJsZSkgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVUkgSW1hZ2UgKi9cbi51aS50YWJsZSB0aCAuaW1hZ2UsXG4udWkudGFibGUgdGggLmltYWdlIGltZyxcbi51aS50YWJsZSB0ZCAuaW1hZ2UsXG4udWkudGFibGUgdGQgLmltYWdlIGltZyB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29tcGxleFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdHJ1Y3R1cmVkLnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi51aS5zdHJ1Y3R1cmVkLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi51aS5zdHJ1Y3R1cmVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnN0cnVjdHVyZWQuYmFzaWMudGFibGUgdGgge1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnVpLnN0cnVjdHVyZWQuY2VsbGVkLnRhYmxlIHRyIHRoLFxuLnVpLnN0cnVjdHVyZWQuY2VsbGVkLnRhYmxlIHRyIHRkIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlZmluaXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDFweCAjRkZGRkZGO1xufVxuLnVpLmRlZmluaXRpb24udGFibGUgdGZvb3Q6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgY29sb3I6IG5vcm1hbDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggMXB4ICNGRkZGRkY7XG59XG4vKiBSZW1vdmUgQm9yZGVyICovXG4udWkuY2VsbGVkLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpmaXJzdC1jaGlsZCB7XG4gIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAxcHggI0ZGRkZGRjtcbn1cbi51aS5jZWxsZWQuZGVmaW5pdGlvbi50YWJsZSB0Zm9vdDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAwcHggMXB4ICNGRkZGRkY7XG59XG4vKiBIaWdobGlnaHQgRGVmaW5pbmcgQ29sdW1uICovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZDpub3QoLmlnbm9yZWQpLFxuLnVpLmRlZmluaXRpb24udGFibGUgdHIgdGQuZGVmaW5pdGlvbiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbiAgdGV4dC10cmFuc2Zvcm06ICcnO1xuICBib3gtc2hhZG93OiAnJztcbiAgdGV4dC1hbGlnbjogJyc7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nLWxlZnQ6ICcnO1xuICBwYWRkaW5nLXJpZ2h0OiAnJztcbn1cbi8qIEZpeCAybmQgQ29sdW1uICovXG4udWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOm50aC1jaGlsZCgyKSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLmRlZmluaXRpb24udGFibGUgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUG9zaXRpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIucG9zaXRpdmUsXG4udWkudGFibGUgdGQucG9zaXRpdmUge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAjQTNDMjkzIGluc2V0O1xufVxuLnVpLnRhYmxlIHRyLnBvc2l0aXZlLFxuLnVpLnRhYmxlIHRkLnBvc2l0aXZlIHtcbiAgYmFja2dyb3VuZDogI0ZDRkZGNSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJDNjYyRCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBOZWdhdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5uZWdhdGl2ZSxcbi51aS50YWJsZSB0ZC5uZWdhdGl2ZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNFMEI0QjQgaW5zZXQ7XG59XG4udWkudGFibGUgdHIubmVnYXRpdmUsXG4udWkudGFibGUgdGQubmVnYXRpdmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5lcnJvcixcbi51aS50YWJsZSB0ZC5lcnJvciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4ICNFMEI0QjQgaW5zZXQ7XG59XG4udWkudGFibGUgdHIuZXJyb3IsXG4udWkudGFibGUgdGQuZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjRkZGNkY2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjOUYzQTM4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdhcm5pbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGUgdHIud2FybmluZyxcbi51aS50YWJsZSB0ZC53YXJuaW5nIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggI0M5QkE5QiBpbnNldDtcbn1cbi51aS50YWJsZSB0ci53YXJuaW5nLFxuLnVpLnRhYmxlIHRkLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiAjRkZGQUYzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNTczQTA4ICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5hY3RpdmUsXG4udWkudGFibGUgdGQuYWN0aXZlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjg3KSBpbnNldDtcbn1cbi51aS50YWJsZSB0ci5hY3RpdmUsXG4udWkudGFibGUgdGQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0UwRTBFMCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0ci5kaXNhYmxlZCB0ZCxcbi51aS50YWJsZSB0ciB0ZC5kaXNhYmxlZCxcbi51aS50YWJsZSB0ci5kaXNhYmxlZDpob3Zlcixcbi51aS50YWJsZSB0cjpob3ZlciB0ZC5kaXNhYmxlZCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUsXG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRib2R5LFxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0cixcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0aCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0ZCB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHtcbiAgICBwYWRkaW5nOiAwZW07XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGhlYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC51aVtjbGFzcyo9XCJ0YWJsZXQgc3RhY2thYmxlXCJdLnRhYmxlIHRmb290IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudWlbY2xhc3MqPVwidGFibGV0IHN0YWNrYWJsZVwiXS50YWJsZSB0ciB7XG4gICAgcGFkZGluZy10b3A6IDFlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgIGJveC1zaGFkb3c6IDBweCAtMXB4IDBweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpIGluc2V0ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0aCxcbiAgLnVpW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdHIgPiB0ZCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjI1ZW0gMC43NWVtO1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAvKiBEZWZpbml0aW9uIFRhYmxlICovXG4gIC51aS5kZWZpbml0aW9uW2NsYXNzKj1cInRhYmxldCBzdGFja2FibGVcIl0udGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuIFRleHQgQWxpZ25tZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYmxlW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJjZW50ZXIgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkudGFibGVbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiBWZXJ0aWNhbCBBbGlnbm1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGVbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJtaWRkbGUgYWxpZ25lZFwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLnRhYmxlW2NsYXNzKj1cImJvdHRvbSBhbGlnbmVkXCJdLFxuLnVpLnRhYmxlIFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29sbGFwc2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50YWJsZSB0aC5jb2xsYXBzaW5nLFxuLnVpLnRhYmxlIHRkLmNvbGxhcHNpbmcge1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5maXhlZC50YWJsZSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4udWkuZml4ZWQudGFibGUgdGgsXG4udWkuZml4ZWQudGFibGUgdGQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFNlbGVjdGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0Ym9keSB0cjpob3Zlcixcbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KSAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHI6aG92ZXIsXG4udWkuaW52ZXJ0ZWQudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdGFibGUgQ2VsbCBMaW5rICovXG4udWkudGFibGUgdGJvZHkgdHIgdGQuc2VsZWN0YWJsZSB7XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi51aS50YWJsZSB0Ym9keSB0ciB0ZC5zZWxlY3RhYmxlID4gYTpub3QoLnVpKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDAuNzg1NzE0MjllbTtcbn1cbi8qIE90aGVyIFN0YXRlcyAqL1xuLnVpLnNlbGVjdGFibGUudGFibGUgdHIuZXJyb3I6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5lcnJvcjpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLmVycm9yIHtcbiAgYmFja2dyb3VuZDogI2ZmZTdlNyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk0MzYzNCAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIud2FybmluZzpob3Zlcixcbi51aS50YWJsZSB0ciB0ZC5zZWxlY3RhYmxlLndhcm5pbmc6aG92ZXIsXG4udWkuc2VsZWN0YWJsZS50YWJsZSB0cjpob3ZlciB0ZC53YXJuaW5nIHtcbiAgYmFja2dyb3VuZDogI2ZmZjRlNCAhaW1wb3J0YW50O1xuICBjb2xvcjogIzQ5MzEwNyAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIuYWN0aXZlOmhvdmVyLFxuLnVpLnRhYmxlIHRyIHRkLnNlbGVjdGFibGUuYWN0aXZlOmhvdmVyLFxuLnVpLnNlbGVjdGFibGUudGFibGUgdHI6aG92ZXIgdGQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0UwRTBFMCAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KSAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIucG9zaXRpdmU6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5wb3NpdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLnBvc2l0aXZlIHtcbiAgYmFja2dyb3VuZDogI2Y3ZmZlNiAhaW1wb3J0YW50O1xuICBjb2xvcjogIzI3NWIyOCAhaW1wb3J0YW50O1xufVxuLnVpLnNlbGVjdGFibGUudGFibGUgdHIubmVnYXRpdmU6aG92ZXIsXG4udWkudGFibGUgdHIgdGQuc2VsZWN0YWJsZS5uZWdhdGl2ZTpob3Zlcixcbi51aS5zZWxlY3RhYmxlLnRhYmxlIHRyOmhvdmVyIHRkLm5lZ2F0aXZlIHtcbiAgYmFja2dyb3VuZDogI2ZmZTdlNyAhaW1wb3J0YW50O1xuICBjb2xvcjogIzk0MzYzNCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBBdHRhY2hlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWlkZGxlICovXG4udWkuYXR0YWNoZWQudGFibGUge1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgbWFyZ2luOiAwZW0gLTFweDtcbiAgd2lkdGg6IGNhbGMoMTAyJSk7XG4gIG1heC13aWR0aDogY2FsYygxMDIlKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi51aS5hdHRhY2hlZCArIC51aS5hdHRhY2hlZC50YWJsZTpub3QoLnRvcCkge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLyogVG9wICovXG4udWlbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdLnRhYmxlIHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkudGFibGVbY2xhc3MqPVwidG9wIGF0dGFjaGVkXCJdOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyogQm90dG9tICovXG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLnRhYmxlIHtcbiAgYm90dG9tOiAwcHg7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgdG9wOiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgYm94LXNoYWRvdzogbm9uZSwgbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG59XG4udWlbY2xhc3MqPVwiYm90dG9tIGF0dGFjaGVkXCJdLnRhYmxlOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFN0cmlwZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUYWJsZSBTdHJpcGluZyAqL1xuLnVpLnN0cmlwZWQudGFibGUgPiB0cjpudGgtY2hpbGQoMm4pLFxuLnVpLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgNTAsIDAuMDIpO1xufVxuLyogU3RyaXBlcyAqL1xuLnVpLmludmVydGVkLnN0cmlwZWQudGFibGUgPiB0cjpudGgtY2hpbGQoMm4pLFxuLnVpLmludmVydGVkLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG4vKiBBbGxvdyBzdHJpcGVkIGFjdGl2ZSBob3ZlciAqL1xuLnVpLnN0cmlwZWQuc2VsZWN0YWJsZS5zZWxlY3RhYmxlLnNlbGVjdGFibGUudGFibGUgdGJvZHkgdHIuYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0VGRUZFRiAhaW1wb3J0YW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2luZ2xlIExpbmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudGFibGVbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0sXG4udWkudGFibGUgW2NsYXNzKj1cInNpbmdsZSBsaW5lXCJdIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi51aS50YWJsZVtjbGFzcyo9XCJzaW5nbGUgbGluZVwiXSxcbi51aS50YWJsZSBbY2xhc3MqPVwic2luZ2xlIGxpbmVcIl0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5yZWQudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjREIyODI4O1xufVxuLnVpLmludmVydGVkLnJlZC50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4MjggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNGMjcxMUM7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyNzExQyAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogWWVsbG93ICovXG4udWkueWVsbG93LnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0ZCQkQwODtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJCRDA4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0I1Q0MxODtcbn1cbi51aS5pbnZlcnRlZC5vbGl2ZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCNUNDMTggIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEdyZWVuICovXG4udWkuZ3JlZW4udGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjMjFCQTQ1O1xufVxuLnVpLmludmVydGVkLmdyZWVuLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogVGVhbCAqL1xuLnVpLnRlYWwudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjMDBCNUFEO1xufVxuLnVpLmludmVydGVkLnRlYWwudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICMyQzZBOUU7XG59XG4udWkuaW52ZXJ0ZWQuYmx1ZS50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUUgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICM2NDM1Qzk7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0MzVDOSAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogUHVycGxlICovXG4udWkucHVycGxlLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgI0EzMzNDODtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTMzM0M4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBQaW5rICovXG4udWkucGluay50YWJsZSB7XG4gIGJvcmRlci10b3A6IDAuMmVtIHNvbGlkICNFMDM5OTc7XG59XG4udWkuaW52ZXJ0ZWQucGluay50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMDM5OTcgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qIEJyb3duICovXG4udWkuYnJvd24udGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjQTU2NzNGO1xufVxuLnVpLmludmVydGVkLmJyb3duLnRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRiAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50O1xufVxuLyogR3JleSAqL1xuLnVpLmdyZXkudGFibGUge1xuICBib3JkZXItdG9wOiAwLjJlbSBzb2xpZCAjNzY3Njc2O1xufVxuLnVpLmludmVydGVkLmdyZXkudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLnRhYmxlIHtcbiAgYm9yZGVyLXRvcDogMC4yZW0gc29saWQgIzFCMUMxRDtcbn1cbi51aS5pbnZlcnRlZC5ibGFjay50YWJsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjFDMUQgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgQ29sdW1uIENvdW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JpZCBCYXNlZCAqL1xuLnVpLm9uZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi51aS50aHJlZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLnVpLmZvdXIuY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS5maXZlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAyMCU7XG59XG4udWkuc2l4LmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiAxNi42NjY2NjY2NyU7XG59XG4udWkuc2V2ZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDE0LjI4NTcxNDI5JTtcbn1cbi51aS5laWdodC5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWkubmluZS5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTEuMTExMTExMTElO1xufVxuLnVpLnRlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogMTAlO1xufVxuLnVpLmVsZXZlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogOS4wOTA5MDkwOSU7XG59XG4udWkudHdlbHZlLmNvbHVtbi50YWJsZSB0ZCB7XG4gIHdpZHRoOiA4LjMzMzMzMzMzJTtcbn1cbi51aS50aGlydGVlbi5jb2x1bW4udGFibGUgdGQge1xuICB3aWR0aDogNy42OTIzMDc2OSU7XG59XG4udWkuZm91cnRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDcuMTQyODU3MTQlO1xufVxuLnVpLmZpZnRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDYuNjY2NjY2NjclO1xufVxuLnVpLnNpeHRlZW4uY29sdW1uLnRhYmxlIHRkIHtcbiAgd2lkdGg6IDYuMjUlO1xufVxuLyogQ29sdW1uIFdpZHRoICovXG4udWkudGFibGUgdGgub25lLndpZGUsXG4udWkudGFibGUgdGQub25lLndpZGUge1xuICB3aWR0aDogNi4yNSU7XG59XG4udWkudGFibGUgdGgudHdvLndpZGUsXG4udWkudGFibGUgdGQudHdvLndpZGUge1xuICB3aWR0aDogMTIuNSU7XG59XG4udWkudGFibGUgdGgudGhyZWUud2lkZSxcbi51aS50YWJsZSB0ZC50aHJlZS53aWRlIHtcbiAgd2lkdGg6IDE4Ljc1JTtcbn1cbi51aS50YWJsZSB0aC5mb3VyLndpZGUsXG4udWkudGFibGUgdGQuZm91ci53aWRlIHtcbiAgd2lkdGg6IDI1JTtcbn1cbi51aS50YWJsZSB0aC5maXZlLndpZGUsXG4udWkudGFibGUgdGQuZml2ZS53aWRlIHtcbiAgd2lkdGg6IDMxLjI1JTtcbn1cbi51aS50YWJsZSB0aC5zaXgud2lkZSxcbi51aS50YWJsZSB0ZC5zaXgud2lkZSB7XG4gIHdpZHRoOiAzNy41JTtcbn1cbi51aS50YWJsZSB0aC5zZXZlbi53aWRlLFxuLnVpLnRhYmxlIHRkLnNldmVuLndpZGUge1xuICB3aWR0aDogNDMuNzUlO1xufVxuLnVpLnRhYmxlIHRoLmVpZ2h0LndpZGUsXG4udWkudGFibGUgdGQuZWlnaHQud2lkZSB7XG4gIHdpZHRoOiA1MCU7XG59XG4udWkudGFibGUgdGgubmluZS53aWRlLFxuLnVpLnRhYmxlIHRkLm5pbmUud2lkZSB7XG4gIHdpZHRoOiA1Ni4yNSU7XG59XG4udWkudGFibGUgdGgudGVuLndpZGUsXG4udWkudGFibGUgdGQudGVuLndpZGUge1xuICB3aWR0aDogNjIuNSU7XG59XG4udWkudGFibGUgdGguZWxldmVuLndpZGUsXG4udWkudGFibGUgdGQuZWxldmVuLndpZGUge1xuICB3aWR0aDogNjguNzUlO1xufVxuLnVpLnRhYmxlIHRoLnR3ZWx2ZS53aWRlLFxuLnVpLnRhYmxlIHRkLnR3ZWx2ZS53aWRlIHtcbiAgd2lkdGg6IDc1JTtcbn1cbi51aS50YWJsZSB0aC50aGlydGVlbi53aWRlLFxuLnVpLnRhYmxlIHRkLnRoaXJ0ZWVuLndpZGUge1xuICB3aWR0aDogODEuMjUlO1xufVxuLnVpLnRhYmxlIHRoLmZvdXJ0ZWVuLndpZGUsXG4udWkudGFibGUgdGQuZm91cnRlZW4ud2lkZSB7XG4gIHdpZHRoOiA4Ny41JTtcbn1cbi51aS50YWJsZSB0aC5maWZ0ZWVuLndpZGUsXG4udWkudGFibGUgdGQuZmlmdGVlbi53aWRlIHtcbiAgd2lkdGg6IDkzLjc1JTtcbn1cbi51aS50YWJsZSB0aC5zaXh0ZWVuLndpZGUsXG4udWkudGFibGUgdGQuc2l4dGVlbi53aWRlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU29ydGFibGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGgge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQsXG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGguc29ydGVkOmhvdmVyIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4udWkuc29ydGFibGUudGFibGUgdGhlYWQgdGg6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogYXV0bztcbiAgb3BhY2l0eTogMC44O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNWVtO1xuICBmb250LWZhbWlseTogJ0ljb25zJztcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5hc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMGQ4Jztcbn1cbi51aS5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5kZXNjZW5kaW5nOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZjBkNyc7XG59XG4vKiBIb3ZlciAqL1xuLnVpLnNvcnRhYmxlLnRhYmxlIHRoLmRpc2FibGVkOmhvdmVyIHtcbiAgY3Vyc29yOiBhdXRvO1xuICBjb2xvcjogcmdiYSg0MCwgNDAsIDQwLCAwLjMpO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIFNvcnRlZCAqL1xuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZDphZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi8qIFNvcnRlZCBIb3ZlciAqL1xuLnVpLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoLnNvcnRlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogSW52ZXJ0ZWQgKi9cbi51aS5pbnZlcnRlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aC5zb3J0ZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLnVpLmludmVydGVkLnNvcnRhYmxlLnRhYmxlIHRoZWFkIHRoOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSBsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsIHJnYmEoMCwgMCwgMCwgMC4wNSkpO1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cbi51aS5pbnZlcnRlZC5zb3J0YWJsZS50YWJsZSB0aGVhZCB0aCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRleHQgQ29sb3IgKi9cbi51aS5pbnZlcnRlZC50YWJsZSB7XG4gIGJhY2tncm91bmQ6ICMzMzMzMzM7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC50YWJsZSB0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgIWltcG9ydGFudDtcbn1cbi51aS5pbnZlcnRlZC50YWJsZSB0ciB0ZCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG59XG4udWkuaW52ZXJ0ZWQudGFibGUgdHIuZGlzYWJsZWQgdGQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHIgdGQuZGlzYWJsZWQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHIuZGlzYWJsZWQ6aG92ZXIgdGQsXG4udWkuaW52ZXJ0ZWQudGFibGUgdHI6aG92ZXIgdGQuZGlzYWJsZWQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29sb3I6IHJnYmEoMjI1LCAyMjUsIDIyNSwgMC4zKTtcbn1cbi8qIERlZmluaXRpb24gKi9cbi51aS5pbnZlcnRlZC5kZWZpbml0aW9uLnRhYmxlIHRmb290Om5vdCguZnVsbC13aWR0aCkgdGg6Zmlyc3QtY2hpbGQsXG4udWkuaW52ZXJ0ZWQuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5kZWZpbml0aW9uLnRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBDb2xsYXBzaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbGxhcHNpbmcudGFibGUge1xuICB3aWR0aDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLnRhYmxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4udWkuYmFzaWMudGFibGUgdGhlYWQsXG4udWkuYmFzaWMudGFibGUgdGZvb3Qge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLnVpLmJhc2ljLnRhYmxlIHRib2R5IHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5iYXNpYy50YWJsZSB0ZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnVpLmJhc2ljLnN0cmlwZWQudGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbn1cbi8qIFZlcnkgQmFzaWMgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlIHtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgYmFzaWNcIl0udGFibGU6bm90KC5zb3J0YWJsZSk6bm90KC5zdHJpcGVkKSB0aCxcbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGQge1xuICBwYWRkaW5nOiAnJztcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IGJhc2ljXCJdLnRhYmxlOm5vdCguc29ydGFibGUpOm5vdCguc3RyaXBlZCkgdGg6Zmlyc3QtY2hpbGQsXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRkOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZy1sZWZ0OiAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRoOmxhc3QtY2hpbGQsXG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRkOmxhc3QtY2hpbGQge1xuICBwYWRkaW5nLXJpZ2h0OiAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBiYXNpY1wiXS50YWJsZTpub3QoLnNvcnRhYmxlKTpub3QoLnN0cmlwZWQpIHRoZWFkIHRyOmZpcnN0LWNoaWxkIHRoIHtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ2VsbGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNlbGxlZC50YWJsZSB0ciB0aCxcbi51aS5jZWxsZWQudGFibGUgdHIgdGQge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5jZWxsZWQudGFibGUgdHIgdGg6Zmlyc3QtY2hpbGQsXG4udWkuY2VsbGVkLnRhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBhZGRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWRkZWQudGFibGUgdGgge1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgcGFkZGluZy1yaWdodDogMWVtO1xufVxuLnVpLnBhZGRlZC50YWJsZSB0aCxcbi51aS5wYWRkZWQudGFibGUgdGQge1xuICBwYWRkaW5nOiAxZW0gMWVtO1xufVxuLyogVmVyeSAqL1xuLnVpW2NsYXNzKj1cInZlcnkgcGFkZGVkXCJdLnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMS41ZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSBwYWRkZWRcIl0udGFibGUgdGQge1xuICBwYWRkaW5nOiAxLjVlbSAxLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tcGFjdFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21wYWN0LnRhYmxlIHRoIHtcbiAgcGFkZGluZy1sZWZ0OiAwLjdlbTtcbiAgcGFkZGluZy1yaWdodDogMC43ZW07XG59XG4udWkuY29tcGFjdC50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNWVtIDAuN2VtO1xufVxuLyogVmVyeSAqL1xuLnVpW2NsYXNzKj1cInZlcnkgY29tcGFjdFwiXS50YWJsZSB0aCB7XG4gIHBhZGRpbmctbGVmdDogMC42ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuNmVtO1xufVxuLnVpW2NsYXNzKj1cInZlcnkgY29tcGFjdFwiXS50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTbWFsbCAqL1xuLnVpLnNtYWxsLnRhYmxlIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi8qIFN0YW5kYXJkICovXG4udWkudGFibGUge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qIExhcmdlICovXG4udWkubGFyZ2UudGFibGUge1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVmlld3MgKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEFkXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIENvcHlyaWdodCAyMDEzIENvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgQWR2ZXJ0aXNlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFkdmVydGlzZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEFkdmVydGlzZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmFkOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkuYWQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmFkIGlmcmFtZSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29tbW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVhZGVyYm9hcmQgKi9cbi51aS5sZWFkZXJib2FyZC5hZCB7XG4gIHdpZHRoOiA3MjhweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuLyogTWVkaXVtIFJlY3RhbmdsZSAqL1xuLnVpW2NsYXNzKj1cIm1lZGl1bSByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogMjUwcHg7XG59XG4vKiBMYXJnZSBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJsYXJnZSByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMzM2cHg7XG4gIGhlaWdodDogMjgwcHg7XG59XG4vKiBIYWxmIFBhZ2UgKi9cbi51aVtjbGFzcyo9XCJoYWxmIHBhZ2VcIl0uYWQge1xuICB3aWR0aDogMzAwcHg7XG4gIGhlaWdodDogNjAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNxdWFyZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNxdWFyZSAqL1xuLnVpLnNxdWFyZS5hZCB7XG4gIHdpZHRoOiAyNTBweDtcbiAgaGVpZ2h0OiAyNTBweDtcbn1cbi8qIFNtYWxsIFNxdWFyZSAqL1xuLnVpW2NsYXNzKj1cInNtYWxsIHNxdWFyZVwiXS5hZCB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiAyMDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBSZWN0YW5nbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTbWFsbCBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJzbWFsbCByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMTgwcHg7XG4gIGhlaWdodDogMTUwcHg7XG59XG4vKiBWZXJ0aWNhbCBSZWN0YW5nbGUgKi9cbi51aVtjbGFzcyo9XCJ2ZXJ0aWNhbCByZWN0YW5nbGVcIl0uYWQge1xuICB3aWR0aDogMjQwcHg7XG4gIGhlaWdodDogNDAwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJ1dHRvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5idXR0b24uYWQge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogOTBweDtcbn1cbi51aVtjbGFzcyo9XCJzcXVhcmUgYnV0dG9uXCJdLmFkIHtcbiAgd2lkdGg6IDEyNXB4O1xuICBoZWlnaHQ6IDEyNXB4O1xufVxuLnVpW2NsYXNzKj1cInNtYWxsIGJ1dHRvblwiXS5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2t5c2NyYXBlcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTa3lzY3JhcGVyICovXG4udWkuc2t5c2NyYXBlci5hZCB7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiA2MDBweDtcbn1cbi8qIFdpZGUgU2t5c2NyYXBlciAqL1xuLnVpW2NsYXNzKj1cIndpZGUgc2t5c2NyYXBlclwiXS5hZCB7XG4gIHdpZHRoOiAxNjBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQmFubmVyc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhbm5lciAqL1xuLnVpLmJhbm5lci5hZCB7XG4gIHdpZHRoOiA0NjhweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLyogVmVydGljYWwgQmFubmVyICovXG4udWlbY2xhc3MqPVwidmVydGljYWwgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDI0MHB4O1xufVxuLyogVG9wIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cInRvcCBiYW5uZXJcIl0uYWQge1xuICB3aWR0aDogOTMwcHg7XG4gIGhlaWdodDogMTgwcHg7XG59XG4vKiBIYWxmIEJhbm5lciAqL1xuLnVpW2NsYXNzKj1cImhhbGYgYmFubmVyXCJdLmFkIHtcbiAgd2lkdGg6IDIzNHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQm9hcmRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGVhZGVyYm9hcmQgKi9cbi51aVtjbGFzcyo9XCJsYXJnZSBsZWFkZXJib2FyZFwiXS5hZCB7XG4gIHdpZHRoOiA5NzBweDtcbiAgaGVpZ2h0OiA5MHB4O1xufVxuLyogQmlsbGJvYXJkICovXG4udWkuYmlsbGJvYXJkLmFkIHtcbiAgd2lkdGg6IDk3MHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBhbm9yYW1hXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFub3JhbWEgKi9cbi51aS5wYW5vcmFtYS5hZCB7XG4gIHdpZHRoOiA5ODBweDtcbiAgaGVpZ2h0OiAxMjBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV0Ym9hcmRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBOZXRib2FyZCAqL1xuLnVpLm5ldGJvYXJkLmFkIHtcbiAgd2lkdGg6IDU4MHB4O1xuICBoZWlnaHQ6IDQwMHB4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBNb2JpbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBMYXJnZSBNb2JpbGUgQmFubmVyICovXG4udWlbY2xhc3MqPVwibGFyZ2UgbW9iaWxlIGJhbm5lclwiXS5hZCB7XG4gIHdpZHRoOiAzMjBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbn1cbi8qIE1vYmlsZSBMZWFkZXJib2FyZCAqL1xuLnVpW2NsYXNzKj1cIm1vYmlsZSBsZWFkZXJib2FyZFwiXS5hZCB7XG4gIHdpZHRoOiAzMjBweDtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIE1vYmlsZSBTaXplcyAqL1xuLnVpLm1vYmlsZS5hZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5tb2JpbGUuYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmNlbnRlcmVkLmFkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi51aS50ZXN0LmFkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjNTQ1NDU0O1xufVxuLnVpLnRlc3QuYWQ6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xuICBjb250ZW50OiAnQWQnO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLm1vYmlsZS50ZXN0LmFkOmFmdGVyIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG59XG4udWkudGVzdC5hZFtkYXRhLXRleHRdOmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBJdGVtXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIENhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNoYWRvdyAqL1xuLyogQ2FyZCAqL1xuLyogQ2FyZCBHcm91cCAqL1xuLyogQ29uc2VjdXRpdmUgQ2FyZHMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBJY29ucyAqL1xuLyogTGlua3MgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBDb250ZW50IEltYWdlICovXG4vKiBBdmF0YXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogRGltbWVyICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qIEV4dHJhIExpbmtzICovXG4vKiBCdXR0b25zICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExpbmsgKi9cbi8qIFJhaXNlZCAqL1xuLyogQ2FyZCBDb3VudCAqL1xuLyogU3RhY2thYmxlICovXG4vKiBTaXplcyAqL1xuLyogQ29sb3JlZCAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgQ2FyZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2hhZG93ICovXG4vKiBDYXJkICovXG4vKiBDYXJkIEdyb3VwICovXG4vKiBDb25zZWN1dGl2ZSBDYXJkcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIEljb25zICovXG4vKiBMaW5rcyAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIENvbnRlbnQgSW1hZ2UgKi9cbi8qIEF2YXRhciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBEaW1tZXIgKi9cbi8qIEFkZGl0aW9uYWwgQ29udGVudCAqL1xuLyogRXh0cmEgTGlua3MgKi9cbi8qIEJ1dHRvbnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTGluayAqL1xuLyogUmFpc2VkICovXG4vKiBDYXJkIENvdW50ICovXG4vKiBTdGFja2FibGUgKi9cbi8qIFNpemVzICovXG4vKiBDb2xvcmVkICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YW5kYXJkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgQ2FyZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmQge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDI5MHB4O1xuICBtaW4taGVpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDBlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggI0Q0RDRENSwgMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xuICB6LWluZGV4OiAnJztcbn1cbi51aS5jYXJkIHtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgYSxcbi51aS5jYXJkIGEge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkuY2FyZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5jYXJkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDYXJkc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogLTAuODc1ZW0gLTAuNWVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4udWkuY2FyZHMgPiAuY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMC44NzVlbSAwLjVlbTtcbiAgZmxvYXQ6IG5vbmU7XG59XG4vKiBDbGVhcmluZyAqL1xuLnVpLmNhcmRzOmFmdGVyLFxuLnVpLmNhcmQ6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi8qIENvbnNlY3V0aXZlIENhcmQgR3JvdXBzIFByZXNlcnZlIFJvdyBTcGFjaW5nICovXG4udWkuY2FyZHMgfiAudWkuY2FyZHMge1xuICBtYXJnaW4tdG9wOiAwLjg3NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBSb3VuZGVkIEVkZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiA6Zmlyc3QtY2hpbGQsXG4udWkuY2FyZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gOmxhc3QtY2hpbGQsXG4udWkuY2FyZCA+IDpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gIWltcG9ydGFudDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gOm9ubHktY2hpbGQsXG4udWkuY2FyZCA+IDpvbmx5LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbWFnZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5pbWFnZSxcbi51aS5jYXJkID4gLmltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAwIGF1dG87XG4gIHBhZGRpbmc6IDBlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmltYWdlID4gaW1nLFxuLnVpLmNhcmQgPiAuaW1hZ2UgPiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmltYWdlOm5vdCgudWkpID4gaW1nLFxuLnVpLmNhcmQgPiAuaW1hZ2U6bm90KC51aSkgPiBpbWcge1xuICBib3JkZXI6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50LFxuLnVpLmNhcmQgPiAuY29udGVudCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMWVtIDFlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDBlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQ6YWZ0ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogJyc7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSksXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbiAgbWFyZ2luLXRvcDogLTAuMjE0MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAubWV0YSArIC5kZXNjcmlwdGlvbixcbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuaGVhZGVyICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5tZXRhICsgLmRlc2NyaXB0aW9uLFxuLnVpLmNhcmQgPiAuY29udGVudCA+IC5oZWFkZXIgKyAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLVxuIEZsb2F0ZWQgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwibGVmdCBhbGlnbmVkXCJdLFxuLnVpLmNhcmQgW2NsYXNzKj1cImxlZnQgYWxpZ25lZFwiXSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0sXG4udWkuY2FyZCBbY2xhc3MqPVwiY2VudGVyIGFsaWduZWRcIl0ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuY2FyZHMgPiAuY2FyZCBbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXSxcbi51aS5jYXJkIFtjbGFzcyo9XCJyaWdodCBhbGlnbmVkXCJdIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIENvbnRlbnQgSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgPiAuY2FyZCAuY29udGVudCBpbWcsXG4udWkuY2FyZCAuY29udGVudCBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAnJztcbn1cbi51aS5jYXJkcyA+IC5jYXJkIGltZy5hdmF0YXIsXG4udWkuY2FyZHMgPiAuY2FyZCAuYXZhdGFyIGltZyxcbi51aS5jYXJkIGltZy5hdmF0YXIsXG4udWkuY2FyZCAuYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAyZW07XG4gIGhlaWdodDogMmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBEZXNjcmlwdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24sXG4udWkuY2FyZCA+IC5jb250ZW50ID4gLmRlc2NyaXB0aW9uIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNjgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgcCxcbi51aS5jYXJkID4gLmNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgcDpsYXN0LWNoaWxkLFxuLnVpLmNhcmQgPiAuY29udGVudCBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBNZXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEsXG4udWkuY2FyZCAubWV0YSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgKixcbi51aS5jYXJkIC5tZXRhICoge1xuICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgOmxhc3QtY2hpbGQsXG4udWkuY2FyZCAubWV0YSA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0sXG4udWkuY2FyZCAubWV0YSBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xuICBtYXJnaW4tbGVmdDogMC4zZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdlbmVyaWMgKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmNvbnRlbnQgYTpub3QoLnVpKSB7XG4gIGNvbG9yOiAnJztcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCBhOm5vdCgudWkpOmhvdmVyIHtcbiAgY29sb3I6ICcnO1xufVxuLyogSGVhZGVyICovXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXIsXG4udWkuY2FyZCA+IC5jb250ZW50ID4gYS5oZWFkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcjpob3Zlcixcbi51aS5jYXJkID4gLmNvbnRlbnQgPiBhLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMzI3N2IyO1xufVxuLyogTWV0YSAqL1xuLnVpLmNhcmRzID4gLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpLFxuLnVpLmNhcmQgLm1ldGEgPiBhOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5jYXJkcyA+IC5jYXJkIC5tZXRhID4gYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkIC5tZXRhID4gYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCdXR0b25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuYnV0dG9ucyxcbi51aS5jYXJkID4gLmJ1dHRvbnMsXG4udWkuY2FyZHMgPiAuY2FyZCA+IC5idXR0b24sXG4udWkuY2FyZCA+IC5idXR0b24ge1xuICBtYXJnaW46IDBweCAtMXB4O1xuICB3aWR0aDogY2FsYygxMDAlICsgIDJweCApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRGltbWVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgLmRpbW1lcixcbi51aS5jYXJkIC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAnJztcbiAgei1pbmRleDogMTA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS1TdGFyLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbixcbi51aS5jYXJkID4gLmNvbnRlbnQgLnN0YXIuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyLFxuLnVpLmNhcmQgPiAuY29udGVudCAuc3Rhci5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRkI3MEE7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUuc3Rhci5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAuYWN0aXZlLnN0YXIuaWNvbiB7XG4gIGNvbG9yOiAjRkZFNjIzO1xufVxuLyotLS0tLUxpa2UtLS0tLSAqL1xuLyogSWNvbiAqL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uLFxuLnVpLmNhcmQgPiAuY29udGVudCAubGlrZS5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjc1O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuY2FyZHMgPiAuY2FyZCA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIsXG4udWkuY2FyZCA+IC5jb250ZW50IC5saWtlLmljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogI0ZGMjczMztcbn1cbi51aS5jYXJkcyA+IC5jYXJkID4gLmNvbnRlbnQgLmFjdGl2ZS5saWtlLmljb24sXG4udWkuY2FyZCA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uIHtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEsXG4udWkuY2FyZCA+IC5leHRyYSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSkgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgdG9wOiAwZW07XG4gIGxlZnQ6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKSxcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSkge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLnVpLmNhcmRzID4gLmNhcmQgPiAuZXh0cmEgYTpub3QoLnVpKTpob3Zlcixcbi51aS5jYXJkID4gLmV4dHJhIGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogIzMyNzdiMjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSYWlzZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5yYWlzZWQuY2FyZHMgPiAuY2FyZCxcbi51aS5yYWlzZWQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnJhaXNlZC5jYXJkcyBhLmNhcmQ6aG92ZXIsXG4udWkubGluay5jYXJkcyAucmFpc2VkLmNhcmQ6aG92ZXIsXG5hLnVpLnJhaXNlZC5jYXJkOmhvdmVyLFxuLnVpLmxpbmsucmFpc2VkLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjI1KTtcbn1cbi51aS5yYWlzZWQuY2FyZHMgPiAuY2FyZCxcbi51aS5yYWlzZWQuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ2VudGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jZW50ZXJlZC5jYXJkcyB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnVpLmNlbnRlcmVkLmNhcmQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQuY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDk5OTlweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMaW5rXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2FyZHMgYS5jYXJkLFxuLnVpLmxpbmsuY2FyZHMgLmNhcmQsXG5hLnVpLmNhcmQsXG4udWkubGluay5jYXJkIHtcbiAgdHJhbnNmb3JtOiBub25lO1xufVxuLnVpLmNhcmRzIGEuY2FyZDpob3Zlcixcbi51aS5saW5rLmNhcmRzIC5jYXJkOmhvdmVyLFxuYS51aS5jYXJkOmhvdmVyLFxuLnVpLmxpbmsuY2FyZDpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogNTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCAwcHggI0JDQkRCRCwgMHB4IDBweCAwcHggMXB4ICNENEQ0RDU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVkICovXG4udWkucmVkLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAucmVkLmNhcmQsXG4udWkucmVkLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNEQjI4MjgsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLnJlZC5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLnJlZC5jYXJkOmhvdmVyLFxuLnVpLnJlZC5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjZDAxOTE5LCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIE9yYW5nZSAqL1xuLnVpLm9yYW5nZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9yYW5nZS5jYXJkLFxuLnVpLm9yYW5nZS5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjRjI3MTFDLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5vcmFuZ2UuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5vcmFuZ2UuY2FyZDpob3Zlcixcbi51aS5vcmFuZ2UuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2YyNjIwMiwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBZZWxsb3cgKi9cbi51aS55ZWxsb3cuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC55ZWxsb3cuY2FyZCxcbi51aS55ZWxsb3cuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0ZCQkQwOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkueWVsbG93LmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAueWVsbG93LmNhcmQ6aG92ZXIsXG4udWkueWVsbG93LmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNlYWFlMDAsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogT2xpdmUgKi9cbi51aS5vbGl2ZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLm9saXZlLmNhcmQsXG4udWkub2xpdmUuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0I1Q0MxOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkub2xpdmUuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5vbGl2ZS5jYXJkOmhvdmVyLFxuLnVpLm9saXZlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICNhN2JkMGQsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmdyZWVuLmNhcmQsXG4udWkuZ3JlZW4uY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzIxQkE0NSwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkuZ3JlZW4uY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ncmVlbi5jYXJkOmhvdmVyLFxuLnVpLmdyZWVuLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMxNmFiMzksIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogVGVhbCAqL1xuLnVpLnRlYWwuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC50ZWFsLmNhcmQsXG4udWkudGVhbC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMDBCNUFELCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS50ZWFsLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAudGVhbC5jYXJkOmhvdmVyLFxuLnVpLnRlYWwuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzAwOWM5NSwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmJsdWUuY2FyZCxcbi51aS5ibHVlLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMyQzZBOUUsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmJsdWUuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ibHVlLmNhcmQ6aG92ZXIsXG4udWkuYmx1ZS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMjE1ZDhmLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIFZpb2xldCAqL1xuLnVpLnZpb2xldC5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLnZpb2xldC5jYXJkLFxuLnVpLnZpb2xldC5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjNjQzNUM5LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS52aW9sZXQuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC52aW9sZXQuY2FyZDpob3Zlcixcbi51aS52aW9sZXQuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzU4MjliYiwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBQdXJwbGUgKi9cbi51aS5wdXJwbGUuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5wdXJwbGUuY2FyZCxcbi51aS5wdXJwbGUuY2FyZCB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI0EzMzNDOCwgMHB4IDFweCAzcHggMHB4ICNENEQ0RDU7XG59XG4udWkucHVycGxlLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAucHVycGxlLmNhcmQ6aG92ZXIsXG4udWkucHVycGxlLmNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM5NjI3YmEsIDBweCAxcHggM3B4IDBweCAjQkNCREJEO1xufVxuLyogUGluayAqL1xuLnVpLnBpbmsuY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5waW5rLmNhcmQsXG4udWkucGluay5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjRTAzOTk3LCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5waW5rLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAucGluay5jYXJkOmhvdmVyLFxuLnVpLnBpbmsuY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggI2U2MWE4ZCwgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBCcm93biAqL1xuLnVpLmJyb3duLmNhcmRzID4gLmNhcmQsXG4udWkuY2FyZHMgPiAuYnJvd24uY2FyZCxcbi51aS5icm93bi5jYXJkIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjQTU2NzNGLCAwcHggMXB4IDNweCAwcHggI0Q0RDRENTtcbn1cbi51aS5icm93bi5jYXJkcyA+IC5jYXJkOmhvdmVyLFxuLnVpLmNhcmRzID4gLmJyb3duLmNhcmQ6aG92ZXIsXG4udWkuYnJvd24uY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1LCAwcHggMnB4IDBweCAwcHggIzk3NWIzMywgMHB4IDFweCAzcHggMHB4ICNCQ0JEQkQ7XG59XG4vKiBHcmV5ICovXG4udWkuZ3JleS5jYXJkcyA+IC5jYXJkLFxuLnVpLmNhcmRzID4gLmdyZXkuY2FyZCxcbi51aS5ncmV5LmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICM3Njc2NzYsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmdyZXkuY2FyZHMgPiAuY2FyZDpob3Zlcixcbi51aS5jYXJkcyA+IC5ncmV5LmNhcmQ6aG92ZXIsXG4udWkuZ3JleS5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjODM4MzgzLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qIEJsYWNrICovXG4udWkuYmxhY2suY2FyZHMgPiAuY2FyZCxcbi51aS5jYXJkcyA+IC5ibGFjay5jYXJkLFxuLnVpLmJsYWNrLmNhcmQge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggI0Q0RDRENSwgMHB4IDJweCAwcHggMHB4ICMxQjFDMUQsIDBweCAxcHggM3B4IDBweCAjRDRENEQ1O1xufVxuLnVpLmJsYWNrLmNhcmRzID4gLmNhcmQ6aG92ZXIsXG4udWkuY2FyZHMgPiAuYmxhY2suY2FyZDpob3Zlcixcbi51aS5ibGFjay5jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4ICNENEQ0RDUsIDBweCAycHggMHB4IDBweCAjMjcyOTJhLCAwcHggMXB4IDNweCAwcHggI0JDQkRCRDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIENhcmQgQ291bnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkub25lLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4udWkub25lLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS50d28uY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xufVxuLnVpLnR3by5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLnVpLnRocmVlLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gIG1hcmdpbi1yaWdodDogLTFlbTtcbn1cbi51aS50aHJlZS5jYXJkcyA+IC5jYXJkIHtcbiAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gIG1hcmdpbi1sZWZ0OiAxZW07XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLnVpLmZvdXIuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xufVxuLnVpLmZvdXIuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCAyNSUgIC0gIDEuNWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xufVxuLnVpLmZpdmUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC43NWVtO1xufVxuLnVpLmZpdmUuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCAyMCUgIC0gIDEuNWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG4gIG1hcmdpbi1yaWdodDogMC43NWVtO1xufVxuLnVpLnNpeC5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG59XG4udWkuc2l4LmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTYuNjY2NjY2NjclICAtICAxLjVlbSApO1xuICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbn1cbi51aS5zZXZlbi5jYXJkcyB7XG4gIG1hcmdpbi1sZWZ0OiAtMC41ZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNWVtO1xufVxuLnVpLnNldmVuLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTQuMjg1NzE0MjklICAtICAxZW0gKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLnVpLmVpZ2h0LmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkuZWlnaHQuY2FyZHMgPiAuY2FyZCB7XG4gIHdpZHRoOiBjYWxjKCAxMi41JSAgLSAgMWVtICk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuLnVpLm5pbmUuY2FyZHMge1xuICBtYXJnaW4tbGVmdDogLTAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVlbTtcbn1cbi51aS5uaW5lLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTEuMTExMTExMTElICAtICAxZW0gKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBmb250LXNpemU6IDEwcHg7XG59XG4udWkudGVuLmNhcmRzIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC41ZW07XG59XG4udWkudGVuLmNhcmRzID4gLmNhcmQge1xuICB3aWR0aDogY2FsYyggMTAlICAtICAxZW0gKTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3VibGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTW9iaWxlIE9ubHkgKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgfVxuICAudWkudHdvLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnRocmVlLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCA1MCUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZm91ci5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggNTAlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZpdmUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuc2l4LmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggNTAlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5zZXZlbi5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMzMuMzMzMzMzMzMlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5laWdodC5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMzMuMzMzMzMzMzMlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLm5pbmUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLnRlbi5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggMzMuMzMzMzMzMzMlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG59XG4vKiBUYWJsZXQgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS50d28uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAwZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwZW07XG4gIH1cbiAgLnVpLnR3by5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMGVtO1xuICAgIG1hcmdpbi1yaWdodDogMGVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS50aHJlZS5kb3VibGluZy5jYXJkcyA+IC5jYXJkIHtcbiAgICB3aWR0aDogY2FsYyggNTAlICAtICAyZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICB9XG4gIC51aS5mb3VyLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xZW07XG4gIH1cbiAgLnVpLmZvdXIuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDUwJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZml2ZS5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5maXZlLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAzMy4zMzMzMzMzMyUgIC0gIDJlbSApO1xuICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIH1cbiAgLnVpLnNpeC5kb3VibGluZy5jYXJkcyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAtMWVtO1xuICB9XG4gIC51aS5zaXguZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDMzLjMzMzMzMzMzJSAgLSAgMmVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbiAgfVxuICAudWkuZWlnaHQuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDI1JSAgLSAgMS41ZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC43NWVtO1xuICB9XG4gIC51aS5uaW5lLmRvdWJsaW5nLmNhcmRzIHtcbiAgICBtYXJnaW4tbGVmdDogLTAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjc1ZW07XG4gIH1cbiAgLnVpLm5pbmUuZG91YmxpbmcuY2FyZHMgPiAuY2FyZCB7XG4gICAgd2lkdGg6IGNhbGMoIDI1JSAgLSAgMS41ZW0gKTtcbiAgICBtYXJnaW4tbGVmdDogMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC43NWVtO1xuICB9XG4gIC51aS50ZW4uZG91YmxpbmcuY2FyZHMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC43NWVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNzVlbTtcbiAgfVxuICAudWkudGVuLmRvdWJsaW5nLmNhcmRzID4gLmNhcmQge1xuICAgIHdpZHRoOiBjYWxjKCAyMCUgIC0gIDEuNWVtICk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNzVlbTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGFja2FibGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnN0YWNrYWJsZS5jYXJkcyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNhcmRzIC5jYXJkOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkuc3RhY2thYmxlLmNhcmRzID4gLmNhcmQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxZW0gMWVtO1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogY2FsYyggMTAwJSAgLSAgMmVtICkgIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgU2l6ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jYXJkcyA+IC5jYXJkIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENvbW1lbnRcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb21tZW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIENvbW1lbnQgKi9cbi8qIE5lc3RlZCBDb21tZW50ICovXG4vKiBBdmF0YXIgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEF1dGhvciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIFRleHQgKi9cbi8qIEFjdGlvbnMgKi9cbi8qIFJlcGx5ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRocmVhZGVkICovXG4vKiBNaW5pbWFsICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQ29tbWVudCAqL1xuLyogTmVzdGVkIENvbW1lbnQgKi9cbi8qIEF2YXRhciAqL1xuLyogQ29udGVudCAqL1xuLyogQXV0aG9yICovXG4vKiBNZXRhZGF0YSAqL1xuLyogVGV4dCAqL1xuLyogQWN0aW9ucyAqL1xuLyogUmVwbHkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhyZWFkZWQgKi9cbi8qIE1pbmltYWwgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29tbWVudHNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMge1xuICBtYXJnaW46IDEuNWVtIDBlbTtcbiAgbWF4LXdpZHRoOiA2NTBweDtcbn1cbi51aS5jb21tZW50czpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5jb21tZW50czpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb21tZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDAuNWVtIDBlbSAwZW07XG4gIHBhZGRpbmc6IDAuNWVtIDBlbSAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBOZXN0ZWQgQ29tbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIDAuNWVtIDAuNWVtO1xuICBwYWRkaW5nOiAxZW0gMGVtIDFlbSAxZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmNvbW1lbnRzOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHMgLmNvbW1lbnQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEF2YXRhclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCAuYXZhdGFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwLjJlbSAwZW0gMGVtO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IGltZy5hdmF0YXIsXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmF2YXRhciBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwZW0gYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jb21tZW50cyAuY29tbWVudCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBJZiB0aGVyZSBpcyBhbiBhdmF0YXIgbW92ZSBjb250ZW50IG92ZXIgKi9cbi51aS5jb21tZW50cyAuY29tbWVudCA+IC5hdmF0YXIgfiAuY29udGVudCB7XG4gIG1hcmdpbi1sZWZ0OiAzLjVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQXV0aG9yXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5hdXRob3Ige1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IGEuYXV0aG9yIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLmNvbW1lbnRzIC5jb21tZW50IGEuYXV0aG9yOmhvdmVyIHtcbiAgY29sb3I6ICMzMjc3YjI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIE1ldGFkYXRhXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNvbW1lbnRzIC5jb21tZW50IC5tZXRhZGF0YSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLm1ldGFkYXRhID4gKiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwZW0gMC41ZW0gMGVtIDBlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAubWV0YWRhdGEgPiA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBDb21tZW50IFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLnRleHQge1xuICBtYXJnaW46IDAuMjVlbSAwZW0gMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBVc2VyIEFjdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMge1xuICBmb250LXNpemU6IDAuODc1ZW07XG59XG4udWkuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjc1ZW0gMGVtIDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhLmFjdGl2ZSxcbi51aS5jb21tZW50cyAuY29tbWVudCAuYWN0aW9ucyBhOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFJlcGx5IEZvcm1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuY29tbWVudHMgPiAucmVwbHkuZm9ybSB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbi51aS5jb21tZW50cyAuY29tbWVudCAucmVwbHkuZm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4udWkuY29tbWVudHMgLnJlcGx5LmZvcm0gdGV4dGFyZWEge1xuICBmb250LXNpemU6IDFlbTtcbiAgaGVpZ2h0OiAxMmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmNvbGxhcHNlZC5jb21tZW50cyxcbi51aS5jb21tZW50cyAuY29sbGFwc2VkLmNvbW1lbnRzLFxuLnVpLmNvbW1lbnRzIC5jb2xsYXBzZWQuY29tbWVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUaHJlYWRlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50aHJlYWRlZC5jb21tZW50cyAuY29tbWVudCAuY29tbWVudHMge1xuICBtYXJnaW46IC0xLjVlbSAwIC0xZW0gMS4yNWVtO1xuICBwYWRkaW5nOiAzZW0gMGVtIDJlbSAyLjI1ZW07XG4gIGJveC1zaGFkb3c6IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBNaW5pbWFsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmltYWwuY29tbWVudHMgLmNvbW1lbnQgLmFjdGlvbnMge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBsZWZ0OiBhdXRvO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4xcztcbn1cbi51aS5taW5pbWFsLmNvbW1lbnRzIC5jb21tZW50ID4gLmNvbnRlbnQ6aG92ZXIgPiAuYWN0aW9ucyB7XG4gIG9wYWNpdHk6IDE7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5taW5pLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkuY29tbWVudHMge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG59XG4udWkuc21hbGwuY29tbWVudHMge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuY29tbWVudHMge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UuY29tbWVudHMge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4udWkuYmlnLmNvbW1lbnRzIHtcbiAgZm9udC1zaXplOiAxLjI4NTcxNDI5cmVtO1xufVxuLnVpLmh1Z2UuY29tbWVudHMge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4udWkubWFzc2l2ZS5jb21tZW50cyB7XG4gIGZvbnQtc2l6ZTogMS43MTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRmVlZFxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBGZWVkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZlZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRWxlbWVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEV2ZW50ICovXG4vKiBFdmVudCBMYWJlbCAqL1xuLyogSWNvbiBMYWJlbCAqL1xuLyogSW1hZ2UgTGFiZWwgKi9cbi8qIENvbnRlbnQgdy8gTGFiZWwgKi9cbi8qIENvbnRlbnQgKi9cbi8qIERhdGUgKi9cbi8qIFN1bW1hcnkgKi9cbi8qIFN1bW1hcnkgSW1hZ2UgKi9cbi8qIFN1bW1hcnkgRGF0ZSAqL1xuLyogVXNlciAqL1xuLyogRXh0cmEgU3VtbWFyeSBEYXRhICovXG4vKiBFeHRyYSBJbWFnZXMgKi9cbi8qIEV4dHJhIFRleHQgKi9cbi8qIE1ldGFkYXRhIEdyb3VwICovXG4vKiBMaWtlICovXG4vKiBNZXRhZGF0YSBEaXZpZGVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIEZlZWRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRmVlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRXZlbnQgKi9cbi8qIEV2ZW50IExhYmVsICovXG4vKiBJY29uIExhYmVsICovXG4vKiBJbWFnZSBMYWJlbCAqL1xuLyogQ29udGVudCB3LyBMYWJlbCAqL1xuLyogQ29udGVudCAqL1xuLyogRGF0ZSAqL1xuLyogU3VtbWFyeSAqL1xuLyogU3VtbWFyeSBJbWFnZSAqL1xuLyogU3VtbWFyeSBEYXRlICovXG4vKiBVc2VyICovXG4vKiBFeHRyYSBTdW1tYXJ5IERhdGEgKi9cbi8qIEV4dHJhIEltYWdlcyAqL1xuLyogRXh0cmEgVGV4dCAqL1xuLyogTWV0YWRhdGEgR3JvdXAgKi9cbi8qIExpa2UgKi9cbi8qIE1ldGFkYXRhIERpdmlkZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBBY3Rpdml0eSBGZWVkXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmZlZWQge1xuICBtYXJnaW46IDFlbSAwZW07XG59XG4udWkuZmVlZDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5mZWVkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEV2ZW50ICovXG4udWkuZmVlZCA+IC5ldmVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjIxNDI4NTcxcmVtIDBlbTtcbiAgbWFyZ2luOiAwZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuZmVlZCA+IC5ldmVudDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDBweDtcbiAgcGFkZGluZy10b3A6IDBlbTtcbn1cbi51aS5mZWVkID4gLmV2ZW50Omxhc3QtY2hpbGQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyogRXZlbnQgTGFiZWwgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMi41ZW07XG4gIGhlaWdodDogYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmxhYmVsIC5pY29uIHtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMjVlbTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiBub25lO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAubGFiZWwgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAubGFiZWwgKyAuY29udGVudCB7XG4gIG1hcmdpbjogMC41ZW0gMGVtIDAuMzU3MTQyODZlbSAxLjE0Mjg1NzE0ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb250ZW50ICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4udWkuZmVlZCA+IC5ldmVudDpsYXN0LWNoaWxkID4gLmNvbnRlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMGVtO1xufVxuLyogTGluayAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgRGF0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLmRhdGUge1xuICBtYXJnaW46IC0wLjVyZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdW1tYXJ5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuc3VtbWFyeSB7XG4gIG1hcmdpbjogMGVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogU3VtbWFyeSBJbWFnZSAqL1xuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAuc3VtbWFyeSBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwZW07XG4gIG1hcmdpbjogLTAuMjVlbSAwLjI1ZW0gMGVtIDBlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVXNlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnVzZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAudXNlciBpbWcge1xuICBtYXJnaW46IC0wLjI1ZW0gMC4yNWVtIDBlbSAwZW07XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBJbmxpbmUgRGF0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERhdGUgaW5zaWRlIFN1bW1hcnkgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLnN1bW1hcnkgPiAuZGF0ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC41ZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgU3VtbWFyeVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLmV4dHJhIHtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nOiAwZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogSW1hZ2VzICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5leHRyYS5pbWFnZXMgaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjI1ZW0gMGVtIDBlbTtcbiAgd2lkdGg6IDZlbTtcbn1cbi8qIFRleHQgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLmV4dHJhLnRleHQge1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWV0YVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NmVtO1xuICBtYXJnaW46IDAuNWVtIDBlbSAwZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZzogMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+ICoge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG59XG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gKjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogLTFlbTtcbiAgb3BhY2l0eTogMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSAubGlrZSB7XG4gIGNvbG9yOiAnJztcbiAgdHJhbnNpdGlvbjogMC4ycyBjb2xvciBlYXNlO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSAubGlrZTpob3ZlciAuaWNvbiB7XG4gIGNvbG9yOiAjRkYyNzMzO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSAuYWN0aXZlLmxpa2UgLmljb24ge1xuICBjb2xvcjogI0VGNDA0QTtcbn1cbi8qIEZpcnN0IGVsZW1lbnQgKi9cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiA6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLnVpLmZlZWQgPiAuZXZlbnQgPiAuY29udGVudCAubWV0YSA+IDpmaXJzdC1jaGlsZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogQWN0aW9uICovXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhIGEsXG4udWkuZmVlZCA+IC5ldmVudCA+IC5jb250ZW50IC5tZXRhID4gLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgYTpob3Zlcixcbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgYTpob3ZlciAuaWNvbixcbi51aS5mZWVkID4gLmV2ZW50ID4gLmNvbnRlbnQgLm1ldGEgPiAuaWNvbjpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc21hbGwuZmVlZCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5mZWVkIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLmZlZWQge1xuICBmb250LXNpemU6IDEuMTQyODU3MTRyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIEl0ZW1cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgSXRlbVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXAgKi9cbi8qIEl0ZW0gKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEltYWdlICovXG4vKiBDb250ZW50ICovXG4vKiBIZWFkZXIgKi9cbi8qIE1ldGFkYXRhICovXG4vKiBJY29ucyAqL1xuLyogQWN0aW9ucyAqL1xuLyogTGlua3MgKi9cbi8qIERlc2NyaXB0aW9uICovXG4vKiBDb250ZW50IEltYWdlICovXG4vKiBBdmF0YXIgSW1hZ2UgKi9cbi8qIFBhcmFncmFwaCAqL1xuLyogQWRkaXRpb25hbCBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlbGF4ZWQgKi9cbi8qIERpdmlkZWQgKi9cbi8qIFVuc3RhY2thYmxlICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBJdGVtXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogSXRlbSAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW1hZ2UgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogTWV0YWRhdGEgKi9cbi8qIEljb25zICovXG4vKiBBY3Rpb25zICovXG4vKiBMaW5rcyAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIENvbnRlbnQgSW1hZ2UgKi9cbi8qIEF2YXRhciBJbWFnZSAqL1xuLyogUGFyYWdyYXBoICovXG4vKiBBZGRpdGlvbmFsIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmVsYXhlZCAqL1xuLyogRGl2aWRlZCAqL1xuLyogVW5zdGFja2FibGUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhbmRhcmRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDFlbSAwZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMHJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjFzIGVhc2U7XG4gIHotaW5kZXg6ICcnO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEl0ZW1zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zIHtcbiAgbWFyZ2luOiAxLjVlbSAwZW07XG59XG4udWkuaXRlbXM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5pdGVtczpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJdGVtXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW06YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5pdGVtcyA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSW1hZ2VzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwZW07XG4gIG1heC1oZWlnaHQ6ICcnO1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjEyNXJlbTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6b25seS1jaGlsZCA+IGltZyB7XG4gIGJvcmRlci1yYWRpdXM6IDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtO1xuICBib3gtc2hhZG93OiBub25lO1xuICBmb250LXNpemU6IDFlbTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcgJztcbiAgaGVpZ2h0OiAwcHg7XG4gIGNsZWFyOiBib3RoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGFsaWduLXNlbGY6IHRvcDtcbiAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IC0wLjIxNDI1ZW0gMGVtIDBlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogRGVmYXVsdCBIZWFkZXIgU2l6ZSAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjllbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmxvYXRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdDtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICBDb250ZW50IEltYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gLmNvbnRlbnQgaW1nIHtcbiAgYWxpZ24tc2VsZjogbWlkZGxlO1xuICB3aWR0aDogJyc7XG59XG4udWkuaXRlbXMgPiAuaXRlbSBpbWcuYXZhdGFyLFxuLnVpLml0ZW1zID4gLml0ZW0gLmF2YXRhciBpbWcge1xuICB3aWR0aDogJyc7XG4gIGhlaWdodDogJyc7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IC5kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xuICBtYXgtd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjVlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWV0YVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhIHtcbiAgbWFyZ2luOiAwLjVlbSAwZW0gMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgKiB7XG4gIG1hcmdpbi1yaWdodDogMC4zZW07XG59XG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMGVtO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gLm1ldGEgW2NsYXNzKj1cInJpZ2h0IGZsb2F0ZWRcIl0ge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBHZW5lcmljICovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IGE6bm90KC51aSkge1xuICBjb2xvcjogJyc7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgYTpub3QoLnVpKTpob3ZlciB7XG4gIGNvbG9yOiAnJztcbn1cbi8qIEhlYWRlciAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCA+IGEuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50ID4gYS5oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzMyNzdiMjtcbn1cbi8qIE1ldGEgKi9cbi51aS5pdGVtcyA+IC5pdGVtIC5tZXRhID4gYTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udWkuaXRlbXMgPiAuaXRlbSAubWV0YSA+IGE6bm90KC51aSk6aG92ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgTGFiZWxzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLVN0YXItLS0tLSAqL1xuLyogSWNvbiAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuZmF2b3JpdGUuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuZmF2b3JpdGUuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjRkZCNzBBO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAuYWN0aXZlLmZhdm9yaXRlLmljb24ge1xuICBjb2xvcjogI0ZGRTYyMztcbn1cbi8qLS0tLS1MaWtlLS0tLS0gKi9cbi8qIEljb24gKi9cbi51aS5pdGVtcyA+IC5pdGVtID4gLmNvbnRlbnQgLmxpa2UuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43NTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLnVpLml0ZW1zID4gLml0ZW0gPiAuY29udGVudCAubGlrZS5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5jb250ZW50IC5hY3RpdmUubGlrZS5pY29uIHtcbiAgY29sb3I6ICNGRjI3MzM7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS1cbiAgRXh0cmEgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0gLmV4dHJhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWFyZ2luOiAwLjVyZW0gMGVtIDBlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDBlbSAwZW0gMGVtO1xuICB0b3A6IDBlbTtcbiAgbGVmdDogMGVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2U7XG4gIGJvcmRlci10b3A6IG5vbmU7XG59XG4udWkuaXRlbXMgPiAuaXRlbSAuZXh0cmEgPiAqIHtcbiAgbWFyZ2luOiAwLjI1cmVtIDAuNXJlbSAwLjI1cmVtIDBlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYSA+IFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgbWFyZ2luOiAwLjI1cmVtIDBlbSAwLjI1cmVtIDAuNXJlbTtcbn1cbi51aS5pdGVtcyA+IC5pdGVtIC5leHRyYTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnICc7XG4gIGhlaWdodDogMHB4O1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBSZXNwb25zaXZlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogRGVmYXVsdCBJbWFnZSBXaWR0aCAqL1xuLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6bm90KC51aSkge1xuICB3aWR0aDogMTc1cHg7XG59XG4vKiBUYWJsZXQgT25seSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5pdGVtcyA+IC5pdGVtIHtcbiAgICBtYXJnaW46IDFlbSAwZW07XG4gIH1cbiAgLnVpLml0ZW1zID4gLml0ZW0gPiAuaW1hZ2U6bm90KC51aSkge1xuICAgIHdpZHRoOiAxNTBweDtcbiAgfVxuICAudWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwZW0gMGVtIDBlbSAxZW07XG4gIH1cbn1cbi8qIE1vYmlsZSBPbmx5ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbjogMmVtIDBlbTtcbiAgfVxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlLFxuICAudWkuaXRlbXM6bm90KC51bnN0YWNrYWJsZSkgPiAuaXRlbSA+IC5pbWFnZSA+IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiAyNTBweCAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5pdGVtczpub3QoLnVuc3RhY2thYmxlKSA+IC5pdGVtID4gLmltYWdlICsgLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEuNWVtIDBlbSAwZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBbGlnbmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbi51aS5pdGVtcyA+IC5pdGVtID4gLmltYWdlICsgW2NsYXNzKj1cIm1pZGRsZSBhbGlnbmVkXCJdLmNvbnRlbnQge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG4udWkuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSArIFtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5jb250ZW50IHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFJlbGF4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmVsYXhlZC5pdGVtcyA+IC5pdGVtIHtcbiAgbWFyZ2luOiAxLjVlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLml0ZW1zID4gLml0ZW0ge1xuICBtYXJnaW46IDJlbSAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpdmlkZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXZpZGVkLml0ZW1zID4gLml0ZW0ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDFlbSAwZW07XG59XG4udWkuZGl2aWRlZC5pdGVtcyA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbWFyZ2luLXRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAwZW0gIWltcG9ydGFudDtcbn1cbi51aS5kaXZpZGVkLml0ZW1zID4gLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMGVtICFpbXBvcnRhbnQ7XG59XG4vKiBSZWxheGVkIERpdmlkZWQgKi9cbi51aS5yZWxheGVkLmRpdmlkZWQuaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAxLjVlbSAwZW07XG59XG4udWlbY2xhc3MqPVwidmVyeSByZWxheGVkXCJdLmRpdmlkZWQuaXRlbXMgPiAuaXRlbSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAyZW0gMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExpbmtcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pdGVtcyBhLml0ZW06aG92ZXIsXG4udWkubGluay5pdGVtcyA+IC5pdGVtOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnVpLml0ZW1zIGEuaXRlbTpob3ZlciAuY29udGVudCAuaGVhZGVyLFxuLnVpLmxpbmsuaXRlbXMgPiAuaXRlbTpob3ZlciAuY29udGVudCAuaGVhZGVyIHtcbiAgY29sb3I6ICMzMjc3YjI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXplXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLml0ZW1zID4gLml0ZW0ge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tXG4gICBVbnN0YWNrYWJsZVxuLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS51bnN0YWNrYWJsZS5pdGVtcyA+IC5pdGVtID4gLmltYWdlLFxuICAudWkudW5zdGFja2FibGUuaXRlbXMgPiAuaXRlbSA+IC5pbWFnZSA+IGltZyB7XG4gICAgd2lkdGg6IDEyNXB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gU3RhdGlzdGljXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTdGF0aXN0aWNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgIFZpZXdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyb3VwICovXG4vKiBHcm91cCBFbGVtZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBWYWx1ZSAqL1xuLyogTGFiZWwgKi9cbi8qIFRleHQgKi9cbi8qIExhYmVsIEltYWdlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZsb2F0ZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBJdGVtIFdpZHRoICovXG4vKiBTaXplICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGlzdGljXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICBWaWV3XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBHcm91cCAqL1xuLyogR3JvdXAgRWxlbWVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVmFsdWUgKi9cbi8qIExhYmVsICovXG4vKiBUZXh0ICovXG4vKiBMYWJlbCBJbWFnZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGbG9hdGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogSXRlbSBXaWR0aCAqL1xuLyogU2l6ZSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgVmlld1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JvdXAgKi9cbi8qIEdyb3VwIEVsZW1lbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExhYmVsICovXG4vKiBUZXh0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBTdGF0aXN0aWNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTdGFuZGFsb25lICovXG4udWkuc3RhdGlzdGljIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbjogMWVtIDBlbTtcbiAgbWF4LXdpZHRoOiBhdXRvO1xufVxuLnVpLnN0YXRpc3RpYyArIC51aS5zdGF0aXN0aWMge1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDEuNGVtO1xufVxuLnVpLnN0YXRpc3RpYzpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5zdGF0aXN0aWM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBHcm91cFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEdyb3VwZWQgKi9cbi51aS5zdGF0aXN0aWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi51aS5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4OiAwIDEgYXV0bztcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAwZW0gMCAxZW0gMS40ZW07XG4gIG1heC13aWR0aDogYXV0bztcbn1cbi51aS5zdGF0aXN0aWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAxZW0gLTEuNGVtIC0xZW07XG59XG4vKiBDbGVhcmluZyAqL1xuLnVpLnN0YXRpc3RpY3M6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogJyAnO1xuICBoZWlnaHQ6IDBweDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi51aS5zdGF0aXN0aWNzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvbnRlbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBWYWx1ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgY29sb3I6ICMxQjFDMUQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIExhYmVsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC5sYWJlbCxcbi51aS5zdGF0aXN0aWMgPiAubGFiZWwge1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4vKiBUb3AgTGFiZWwgKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAubGFiZWwgfiAudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLmxhYmVsIH4gLnZhbHVlIHtcbiAgbWFyZ2luLXRvcDogMHJlbTtcbn1cbi8qIEJvdHRvbSBMYWJlbCAqL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSB+IC5sYWJlbCxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUgfiAubGFiZWwge1xuICBtYXJnaW4tdG9wOiAwcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEljb24gVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlIC5pY29uLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSAuaWNvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFRleHQgVmFsdWVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBtaW4taGVpZ2h0OiAyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUgKyAubGFiZWwsXG4udWkuc3RhdGlzdGljID4gLnRleHQudmFsdWUgKyAubGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBJbWFnZSBWYWx1ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgaW1nLFxuLnVpLnN0YXRpc3RpYyA+IC52YWx1ZSBpbWcge1xuICBtYXgtaGVpZ2h0OiAzcmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIENvdW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRlbi5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkudGVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTAlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLm5pbmUuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLm5pbmUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxMS4xMTExMTExMSU7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuZWlnaHQuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLmVpZ2h0LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTIuNSU7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuc2V2ZW4uc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLnNldmVuLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTQuMjg1NzE0MjklO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLnNpeC5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkuc2l4LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1pbi13aWR0aDogMTYuNjY2NjY2NjclO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLnVpLmZpdmUuc3RhdGlzdGljcyB7XG4gIG1hcmdpbjogMGVtIDBlbSAtMWVtO1xufVxuLnVpLmZpdmUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAyMCU7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkuZm91ci5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkuZm91ci5zdGF0aXN0aWNzIC5zdGF0aXN0aWMge1xuICBtaW4td2lkdGg6IDI1JTtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS50aHJlZS5zdGF0aXN0aWNzIHtcbiAgbWFyZ2luOiAwZW0gMGVtIC0xZW07XG59XG4udWkudGhyZWUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAzMy4zMzMzMzMzMyU7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkudHdvLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS50d28uc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiA1MCU7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW07XG59XG4udWkub25lLnN0YXRpc3RpY3Mge1xuICBtYXJnaW46IDBlbSAwZW0gLTFlbTtcbn1cbi51aS5vbmUuc3RhdGlzdGljcyAuc3RhdGlzdGljIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBlbSAwZW0gMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgSG9yaXpvbnRhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luOiAwZW07XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi51aS5ob3Jpem9udGFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luOiAxZW0gMGVtO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgbWluLWhlaWdodDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24sXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUgLmljb24ge1xuICB3aWR0aDogMS4xOGVtO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsLFxuLnVpLmhvcml6b250YWwuc3RhdGlzdGljID4gLmxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDAuNzVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5yZWQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4udWkub3JhbmdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLm9yYW5nZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0YyNzExQztcbn1cbi51aS55ZWxsb3cuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkueWVsbG93LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkJCRDA4O1xufVxuLnVpLm9saXZlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5vbGl2ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNCNUNDMTg7XG59XG4udWkuZ3JlZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmdyZWVuLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi51aS50ZWFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjMDBCNUFEO1xufVxuLnVpLmJsdWUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICMyQzZBOUU7XG59XG4udWkudmlvbGV0LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnZpb2xldC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzY0MzVDOTtcbn1cbi51aS5wdXJwbGUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkucHVycGxlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjQTMzM0M4O1xufVxuLnVpLnBpbmsuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNFMDM5OTc7XG59XG4udWkuYnJvd24uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0E1NjczRjtcbn1cbi51aS5ncmV5LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjNzY3Njc2O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5zdGF0aXN0aWMgLnZhbHVlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkuaW52ZXJ0ZWQuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLmxhYmVsLFxuLnVpLmludmVydGVkLnN0YXRpc3RpYyAubGFiZWwge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xufVxuLnVpLmludmVydGVkLnJlZC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuc3RhdGlzdGljcyAuaW52ZXJ0ZWQucmVkLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5yZWQuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGRjY5NUU7XG59XG4udWkuaW52ZXJ0ZWQub3JhbmdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5vcmFuZ2Uuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLm9yYW5nZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0ZGODUxQjtcbn1cbi51aS5pbnZlcnRlZC55ZWxsb3cuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnllbGxvdy5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQueWVsbG93LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRkZFMjFGO1xufVxuLnVpLmludmVydGVkLm9saXZlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5vbGl2ZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQub2xpdmUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNEOUU3Nzg7XG59XG4udWkuaW52ZXJ0ZWQuZ3JlZW4uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmdyZWVuLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5ncmVlbi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogIzJFQ0M0MDtcbn1cbi51aS5pbnZlcnRlZC50ZWFsLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC50ZWFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjNkRGRkZGO1xufVxuLnVpLmludmVydGVkLmJsdWUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLmJsdWUuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICM1MzkxQzU7XG59XG4udWkuaW52ZXJ0ZWQudmlvbGV0LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC52aW9sZXQuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnZpb2xldC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0EyOTFGQjtcbn1cbi51aS5pbnZlcnRlZC5wdXJwbGUuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnB1cnBsZS5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaW52ZXJ0ZWQucHVycGxlLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjREM3M0ZGO1xufVxuLnVpLmludmVydGVkLnBpbmsuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmludmVydGVkLnBpbmsuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgY29sb3I6ICNGRjhFREY7XG59XG4udWkuaW52ZXJ0ZWQuYnJvd24uc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnN0YXRpc3RpY3MgLmludmVydGVkLmJyb3duLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5icm93bi5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBjb2xvcjogI0Q2N0MxQztcbn1cbi51aS5pbnZlcnRlZC5ncmV5LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWNzIC5pbnZlcnRlZC5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5pbnZlcnRlZC5ncmV5LnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGNvbG9yOiAjRENERERFO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWlbY2xhc3MqPVwibGVmdCBmbG9hdGVkXCJdLnN0YXRpc3RpYyB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbSAyZW0gMWVtIDBlbTtcbn1cbi51aVtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdLnN0YXRpc3RpYyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbSAyZW07XG59XG4udWkuZmxvYXRlZC5zdGF0aXN0aWM6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBNaW5pICovXG4udWkubWluaS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubWluaS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLm1pbmkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubWluaS5ob3Jpem9udGFsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG59XG4udWkubWluaS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5taW5pLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlIHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBUaW55ICovXG4udWkudGlueS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkudGlueS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbn1cbi51aS50aW55Lmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnRpbnkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDJyZW0gIWltcG9ydGFudDtcbn1cbi51aS50aW55LnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLnRpbnkuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qIFNtYWxsICovXG4udWkuc21hbGwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnNtYWxsLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogM3JlbSAhaW1wb3J0YW50O1xufVxuLnVpLnNtYWxsLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLnNtYWxsLmhvcml6b250YWwuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAycmVtICFpbXBvcnRhbnQ7XG59XG4udWkuc21hbGwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnRleHQudmFsdWUsXG4udWkuc21hbGwuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qIE1lZGl1bSAqL1xuLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDEuOGVtICFpbXBvcnRhbnQ7XG59XG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDNyZW0gIWltcG9ydGFudDtcbn1cbi51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xufVxuLyogTGFyZ2UgKi9cbi51aS5sYXJnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubGFyZ2Uuc3RhdGlzdGljID4gLnZhbHVlIHtcbiAgZm9udC1zaXplOiA1cmVtICFpbXBvcnRhbnQ7XG59XG4udWkubGFyZ2UuaG9yaXpvbnRhbC5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkubGFyZ2UuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDRyZW0gIWltcG9ydGFudDtcbn1cbi51aS5sYXJnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSxcbi51aS5sYXJnZS5zdGF0aXN0aWMgPiAudGV4dC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtICFpbXBvcnRhbnQ7XG59XG4vKiBIdWdlICovXG4udWkuaHVnZS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4udWkuaHVnZS5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDZyZW0gIWltcG9ydGFudDtcbn1cbi51aS5odWdlLmhvcml6b250YWwuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuLnVpLmh1Z2UuaG9yaXpvbnRhbC5zdGF0aXN0aWMgPiAudmFsdWUge1xuICBmb250LXNpemU6IDVyZW0gIWltcG9ydGFudDtcbn1cbi51aS5odWdlLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC50ZXh0LnZhbHVlLFxuLnVpLmh1Z2Uuc3RhdGlzdGljID4gLnRleHQudmFsdWUge1xuICBmb250LXNpemU6IDIuNXJlbSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBNb2R1bGVzICovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBBY2NvcmRpb25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIEFjY29yZGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRpdGxlICovXG4vKiBJY29uICovXG4vKiBDaGlsZCBBY2NvcmRpb24gKi9cbi8qIENvbnRlbnQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvdXBsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3R5bGVkICovXG4vKiBDb250ZW50ICovXG4vKiBDaGlsZCBDb250ZW50ICovXG4vKiBTdHlsZWQgVGl0bGUgKi9cbi8qIFN0eWxlZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIFN0eWxlZCBDaGlsZCBUaXRsZSBTdGF0ZXMgKi9cbi8qIEludmVydGVkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQWNjb3JkaW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVGl0bGUgKi9cbi8qIEljb24gKi9cbi8qIENoaWxkIEFjY29yZGlvbiAqL1xuLyogQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTdHlsZWQgKi9cbi8qIENvbnRlbnQgKi9cbi8qIENoaWxkIENvbnRlbnQgKi9cbi8qIFN0eWxlZCBUaXRsZSAqL1xuLyogU3R5bGVkIFRpdGxlIFN0YXRlcyAqL1xuLyogU3R5bGVkIENoaWxkIFRpdGxlIFN0YXRlcyAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBBY2NvcmRpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuYWNjb3JkaW9uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIHtcbiAgbWFyZ2luOiAxZW0gMGVtIDBlbTtcbiAgcGFkZGluZzogMGVtO1xufVxuLyogVGl0bGUgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi8qIERlZmF1bHQgU3R5bGluZyAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGU6bm90KC51aSkge1xuICBwYWRkaW5nOiAwLjVlbSAwZW07XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qIENvbnRlbnQgKi9cbi51aS5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogRGVmYXVsdCBTdHlsaW5nICovXG4udWkuYWNjb3JkaW9uOm5vdCguc3R5bGVkKSAudGl0bGUgfiAuY29udGVudDpub3QoLnVpKSxcbi51aS5hY2NvcmRpb246bm90KC5zdHlsZWQpIC5hY2NvcmRpb24gLnRpdGxlIH4gLmNvbnRlbnQ6bm90KC51aSkge1xuICBtYXJnaW46ICcnO1xuICBwYWRkaW5nOiAwLjVlbSAwZW0gMWVtO1xufVxuLnVpLmFjY29yZGlvbjpub3QoLnN0eWxlZCkgLnRpdGxlIH4gLmNvbnRlbnQ6bm90KC51aSk6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwZW07XG59XG4vKiBBcnJvdyAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEuMjVlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIG1hcmdpbjogMGVtIDAuMjVyZW0gMGVtIDByZW07XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgKi9cbi51aS5hY2NvcmRpb24ubWVudSAuaXRlbSAudGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMGVtO1xufVxuLnVpLmFjY29yZGlvbi5tZW51IC5pdGVtIC50aXRsZSA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDAuMjE0MjVlbSAwZW0gMGVtIDFlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cbi8qIEhlYWRlciAqL1xuLnVpLmFjY29yZGlvbiAudWkuaGVhZGVyIC5kcm9wZG93bi5pY29uIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogMGVtIDAuMjVyZW0gMGVtIDByZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIC5kcm9wZG93bi5pY29uLFxuLnVpLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUgLmRyb3Bkb3duLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG4udWkuYWNjb3JkaW9uLm1lbnUgLml0ZW0gLmFjdGl2ZS50aXRsZSA+IC5kcm9wZG93bi5pY29uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTdHlsZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc3R5bGVkLmFjY29yZGlvbiB7XG4gIHdpZHRoOiA2MDBweDtcbn1cbi51aS5zdHlsZWQuYWNjb3JkaW9uLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSwgMHB4IDBweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAudGl0bGUsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC50aXRsZSB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBjb2xvciAwLjFzIGVhc2U7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiA+IC50aXRsZTpmaXJzdC1jaGlsZCxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi8qIENvbnRlbnQgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5jb250ZW50LFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuY29udGVudCB7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAxZW0gMS41ZW07XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5jb250ZW50IHtcbiAgcGFkZGluZzogMGVtO1xuICBwYWRkaW5nOiAwLjVlbSAxZW0gMS41ZW07XG59XG4vKiBIb3ZlciAqL1xuLnVpLnN0eWxlZC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjdGl2ZS50aXRsZSxcbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlOmhvdmVyLFxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLnRpdGxlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLnN0eWxlZC5hY2NvcmRpb24gLmFjY29yZGlvbiAudGl0bGU6aG92ZXIsXG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zdHlsZWQuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuc3R5bGVkLmFjY29yZGlvbiAuYWNjb3JkaW9uIC5hY3RpdmUudGl0bGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWNjb3JkaW9uIC5hY3RpdmUuY29udGVudCxcbi51aS5hY2NvcmRpb24gLmFjY29yZGlvbiAuYWN0aXZlLmNvbnRlbnQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmFjY29yZGlvbixcbi51aS5mbHVpZC5hY2NvcmRpb24gLmFjY29yZGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5hY2NvcmRpb24gLnRpdGxlOm5vdCgudWkpIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdBY2NvcmRpb24nO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL3gtZm9udC10dGY7Y2hhcnNldD11dGYtODtiYXNlNjQsQUFFQUFBQUxBSUFBQXdBd1QxTXZNZ2dqQjVBQUFBQzhBQUFBWUdOdFlYQVBmT0lLQUFBQkhBQUFBRXhuWVhOd0FBQUFFQUFBQVdnQUFBQUlaMng1WnJ5ajZIZ0FBQUZ3QUFBQXlHaGxZV1QvMEloSEFBQUNPQUFBQURab2FHVmhBcGtCNXdBQUFuQUFBQUFrYUcxMGVBSnVBQklBQUFLVUFBQUFHR3h2WTJFQWpBQldBQUFDckFBQUFBNXRZWGh3QUFnQUZnQUFBcndBQUFBZ2JtRnRaZkMxbjA0QUFBTGNBQUFCUEhCdmMzUUFBd0FBQUFBRUdBQUFBQ0FBQXdJQUFaQUFCUUFBQVV3QlpnQUFBRWNCVEFGbUFBQUE5UUFaQUlRQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFEdzJnSGcvK0QvNEFIZ0FDQUFBQUFCQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFDQUFBQUF3QUFBQlFBQXdBQkFBQUFGQUFFQURnQUFBQUtBQWdBQWdBQ0FBRUFJUERhLy8zLy93QUFBQUFBSVBEWi8vMy8vd0FCLytNUEt3QURBQUVBQUFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBQUFBQUFBQUFJQUFEYzVBUUFBQUFBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFTQUVrQXR3RnVBQk1BQURjMFB3RTJGellYRmgwQkZBY0dKd1l2QVNZMUVnYUFCUWdIQlFZR0JRY0lCWUFHMndjR2Z3Y0JBUWNFQ2Y4SUJBY0JBUWQvQmdZQUFBQUFBUUFBQUVrQXBRRnVBQk1BQURjUk5EYzJNeklmQVJZVkZBOEJCaU1pSnlZMUFBVUdCd2dGZ0FZR2dBVUlCd1lGV3dFQUNBVUdCb0FGQ0FjRmdBWUdCUWNBQUFBQkFBQUFBUUFBcVdZbHMxOFBQUFVBQ3dJQUFBQUFBTS85bys0QUFBQUF6LzJqN2dBQUFBQUF0d0Z1QUFBQUNBQUNBQUFBQUFBQUFBRUFBQUhnLytBQUFBSUFBQUFBQUFDM0FBRUFBQUFBQUFBQUFBQUFBQUFBQUFBR0FBQUFBQUFBQUFBQUFBQUFBUUFBQUFDM0FCSUF0d0FBQUFBQUFBQUtBQlFBSGdCQ0FHUUFBQUFCQUFBQUJnQVVBQUVBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0N1QUFFQUFBQUFBQUVBREFBQUFBRUFBQUFBQUFJQURnQkFBQUVBQUFBQUFBTUFEQUFpQUFFQUFBQUFBQVFBREFCT0FBRUFBQUFBQUFVQUZnQU1BQUVBQUFBQUFBWUFCZ0F1QUFFQUFBQUFBQW9BTkFCYUFBTUFBUVFKQUFFQURBQUFBQU1BQVFRSkFBSUFEZ0JBQUFNQUFRUUpBQU1BREFBaUFBTUFBUVFKQUFRQURBQk9BQU1BQVFRSkFBVUFGZ0FNQUFNQUFRUUpBQVlBREFBMEFBTUFBUVFKQUFvQU5BQmFBSElBWVFCMEFHa0FiZ0JuQUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQnlBR0VBZEFCcEFHNEFaM0poZEdsdVp3QnlBR0VBZEFCcEFHNEFad0JTQUdVQVp3QjFBR3dBWVFCeUFISUFZUUIwQUdrQWJnQm5BRVlBYndCdUFIUUFJQUJuQUdVQWJnQmxBSElBWVFCMEFHVUFaQUFnQUdJQWVRQWdBRWtBWXdCdkFFMEFid0J2QUc0QUxnQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUms5VVZFOEFBQVN3QUFvQUFBQUFCR2dBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkRSa1lnQUFBQTlBQUFBUzBBQUFFdEZwb3Z1RTlUTHpJQUFBSWtBQUFBWUFBQUFHQUlJd2VRWTIxaGNBQUFBb1FBQUFCTUFBQUFUQTk4NGdwbllYTndBQUFDMEFBQUFBZ0FBQUFJQUFBQUVHaGxZV1FBQUFMWUFBQUFOZ0FBQURiLzBJaEhhR2hsWVFBQUF4QUFBQUFrQUFBQUpBS1pBZWRvYlhSNEFBQUROQUFBQUJnQUFBQVlBbTRBRW0xaGVIQUFBQU5NQUFBQUJnQUFBQVlBQmxBQWJtRnRaUUFBQTFRQUFBRThBQUFCUFBDMW4wNXdiM04wQUFBRWtBQUFBQ0FBQUFBZ0FBTUFBQUVBQkFRQUFRRUJCM0poZEdsdVp3QUJBZ0FCQURyNEhBTDRHd1A0R0FRZUNnQVpVLytMaXg0S0FCbFQvNHVMREFlTGEvaVUrSFFGSFFBQUFIa1BIUUFBQUg0UkhRQUFBQWtkQUFBQkpCSUFCd0VCQncwUEVSUVpIbkpoZEdsdVozSmhkR2x1WjNVd2RURjFNakIxUmpCRU9YVkdNRVJCQUFBQ0FZa0FCQUFHQVFFRUJ3b05WcDM4bEE3OGxBNzhsQTc3bEE3NzNaMzNieFdMa0kyUWo0NEk5eFQzRkFXT2o1Q05rSXVRaTQrSmpvZVBpSTJHaTRZSWkvdVVCWXVHaVllSGlJaUhoNG1HaTRhTGhvMklqd2o3RlBjVUJZZU9pWStMa0FnTys5Mkw1aFdMOTVRRmk1Q05rSTZPajQrUGpaQ0xrSXVRaVk2SENQY1UreFFGajRpTmhvdUdpNGFKaDRlSUNQc1UreFFGaUllR2lZYUxob3VIalllUGlJNkpqNHVRQ0E3NGxCVDRsQldMREFvQUFBQUFBd0lBQVpBQUJRQUFBVXdCWmdBQUFFY0JUQUZtQUFBQTlRQVpBSVFBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUR3MmdIZy8rRC80QUhnQUNBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUNBQUFBQXdBQUFCUUFBd0FCQUFBQUZBQUVBRGdBQUFBS0FBZ0FBZ0FDQUFFQUlQRGEvLzMvL3dBQUFBQUFJUERaLy8zLy93QUIvK01QS3dBREFBRUFBQUFBQUFBQUFBQUFBQUVBQWYvL0FBOEFBUUFBQUFFQUFEZllPSlpmRHp6MUFBc0NBQUFBQUFEUC9hUHVBQUFBQU0vOW8rNEFBQUFBQUxjQmJnQUFBQWdBQWdBQUFBQUFBQUFCQUFBQjRQL2dBQUFDQUFBQUFBQUF0d0FCQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBQUFBQUFFQUFBQUF0d0FTQUxjQUFBQUFVQUFBQmdBQUFBQUFEZ0N1QUFFQUFBQUFBQUVBREFBQUFBRUFBQUFBQUFJQURnQkFBQUVBQUFBQUFBTUFEQUFpQUFFQUFBQUFBQVFBREFCT0FBRUFBQUFBQUFVQUZnQU1BQUVBQUFBQUFBWUFCZ0F1QUFFQUFBQUFBQW9BTkFCYUFBTUFBUVFKQUFFQURBQUFBQU1BQVFRSkFBSUFEZ0JBQUFNQUFRUUpBQU1BREFBaUFBTUFBUVFKQUFRQURBQk9BQU1BQVFRSkFBVUFGZ0FNQUFNQUFRUUpBQVlBREFBMEFBTUFBUVFKQUFvQU5BQmFBSElBWVFCMEFHa0FiZ0JuQUZZQVpRQnlBSE1BYVFCdkFHNEFJQUF4QUM0QU1BQnlBR0VBZEFCcEFHNEFaM0poZEdsdVp3QnlBR0VBZEFCcEFHNEFad0JTQUdVQVp3QjFBR3dBWVFCeUFISUFZUUIwQUdrQWJnQm5BRVlBYndCdUFIUUFJQUJuQUdVQWJnQmxBSElBWVFCMEFHVUFaQUFnQUdJQWVRQWdBRWtBWXdCdkFFMEFid0J2QUc0QUxnQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyogRHJvcGRvd24gSWNvbiAqL1xuLnVpLmFjY29yZGlvbiAudGl0bGUgLmRyb3Bkb3duLmljb24sXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgZm9udC1mYW1pbHk6IEFjY29yZGlvbjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udWkuYWNjb3JkaW9uIC50aXRsZSAuZHJvcGRvd24uaWNvbjpiZWZvcmUsXG4udWkuYWNjb3JkaW9uIC5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZGEnIC8qcnRsOidcXGYwZDknKi87XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIENoZWNrYm94XG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMYWJlbCAqL1xuLyogMjZweCBAIDE0L2VtICovXG4vKiBDaGVja2JveCAqL1xuLyogQ2hlY2ttYXJrICovXG4vKiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qIFByZXNzZWQgKi9cbi8qIEZvY3VzICovXG4vKiBBY3RpdmUgKi9cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLyogRGlzYWJsZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUmFkaW8gKi9cbi8qIFVzZXMgcHggdG8gYXZvaWQgcm91bmRpbmcgaXNzdWVzIHdpdGggY2lyY2xlcyAqL1xuLyogN3B4IGFzIHVuaXRsZXNzIHZhbHVlIGZyb20gcmFkaW8gc2l6ZSAqL1xuLyogU2xpZGVyICYgVG9nZ2xlIEhhbmRsZSAqL1xuLyogU2xpZGVyICovXG4vKiBTbGlkZXIgU3RhdGVzICovXG4vKiBUb2dnbGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDaGVja2JveFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExhYmVsICovXG4vKiAyNnB4IEAgMTQvZW0gKi9cbi8qIENoZWNrYm94ICovXG4vKiBDaGVja21hcmsgKi9cbi8qIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyogUHJlc3NlZCAqL1xuLyogRm9jdXMgKi9cbi8qIEFjdGl2ZSAqL1xuLyogQWN0aXZlIEZvY3VzICovXG4vKiBJbmRldGVybWluYXRlICovXG4vKiBEaXNhYmxlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBSYWRpbyAqL1xuLyogVXNlcyBweCB0byBhdm9pZCByb3VuZGluZyBpc3N1ZXMgd2l0aCBjaXJjbGVzICovXG4vKiA3cHggYXMgdW5pdGxlc3MgdmFsdWUgZnJvbSByYWRpbyBzaXplICovXG4vKiBTbGlkZXIgJiBUb2dnbGUgSGFuZGxlICovXG4vKiBTbGlkZXIgKi9cbi8qIFNsaWRlciBTdGF0ZXMgKi9cbi8qIFRvZ2dsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgQ2hlY2tib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIG91dGxpbmU6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtaW4taGVpZ2h0OiAxN3B4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICBtaW4td2lkdGg6IDE3cHg7XG59XG4vKiBIVE1MIENoZWNrYm94ICovXG4udWkuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuLnVpLmNoZWNrYm94IGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHotaW5kZXg6IDM7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3hcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveCxcbi51aS5jaGVja2JveCBsYWJlbCB7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1sZWZ0OiAxLjg1NzE0ZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLnVpLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDE3cHg7XG4gIGhlaWdodDogMTdweDtcbiAgY29udGVudDogJyc7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlciAwLjFzIGVhc2UsIG9wYWNpdHkgMC4xcyBlYXNlLCB0cmFuc2Zvcm0gMC4xcyBlYXNlLCBib3gtc2hhZG93IDAuMXMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDaGVja21hcmtcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5jaGVja2JveCBsYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMC4xcyBlYXNlLCBvcGFjaXR5IDAuMXMgZWFzZSwgdHJhbnNmb3JtIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2U7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluc2lkZSAqL1xuLnVpLmNoZWNrYm94IGxhYmVsLFxuLnVpLmNoZWNrYm94ICsgbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlO1xufVxuLyogT3V0c2lkZSAqL1xuLnVpLmNoZWNrYm94ICsgbGFiZWwge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGxhYmVsOmhvdmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggbGFiZWw6aG92ZXIsXG4udWkuY2hlY2tib3ggKyBsYWJlbDpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBEb3duXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNoZWNrYm94IC5ib3g6YWN0aXZlOjpiZWZvcmUsXG4udWkuY2hlY2tib3ggbGFiZWw6YWN0aXZlOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRjlGQUZCO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggLmJveDphY3RpdmU6OmFmdGVyLFxuLnVpLmNoZWNrYm94IGxhYmVsOmFjdGl2ZTo6YWZ0ZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDphY3RpdmUgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xufVxuLnVpLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEluZGV0ZXJtaW5hdGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YmVmb3JlLFxuLnVpLmNoZWNrYm94IGlucHV0Om5vdChbdHlwZT1yYWRpb10pOmluZGV0ZXJtaW5hdGUgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG59XG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEFjdGl2ZSBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6aW5kZXRlcm1pbmF0ZTpmb2N1cyB+IGxhYmVsOmJlZm9yZSxcbi51aS5jaGVja2JveCBpbnB1dDpjaGVja2VkOmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbn1cbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTppbmRldGVybWluYXRlOmZvY3VzIH4gbGFiZWw6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZDpmb2N1cyB+IGxhYmVsOmFmdGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVhZC1Pbmx5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnJlYWQtb25seS5jaGVja2JveCxcbi51aS5yZWFkLW9ubHkuY2hlY2tib3ggbGFiZWwge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRpc2FibGVkLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkuZGlzYWJsZWQuY2hlY2tib3ggbGFiZWwsXG4udWkuY2hlY2tib3ggaW5wdXRbZGlzYWJsZWRdIH4gLmJveDphZnRlcixcbi51aS5jaGVja2JveCBpbnB1dFtkaXNhYmxlZF0gfiBsYWJlbCB7XG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjU7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIaWRkZW5cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsaXplZCBjaGVja2JveCBtb3ZlcyBpbnB1dCBiZWxvdyBlbGVtZW50XG4gdG8gcHJldmVudCBtYW51YWxseSB0cmlnZ2VyaW5nICovXG4udWkuY2hlY2tib3ggaW5wdXQuaGlkZGVuIHtcbiAgei1pbmRleDogLTE7XG59XG4vKiBTZWxlY3RhYmxlIExhYmVsICovXG4udWkuY2hlY2tib3ggaW5wdXQuaGlkZGVuICsgbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgUmFkaW9cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucmFkaW8uY2hlY2tib3gge1xuICBtaW4taGVpZ2h0OiAxNXB4O1xufVxuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3gsXG4udWkucmFkaW8uY2hlY2tib3ggbGFiZWwge1xuICBwYWRkaW5nLWxlZnQ6IDEuODU3MTRlbTtcbn1cbi8qIEJveCAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdG9wOiAxcHg7XG4gIGxlZnQ6IDBweDtcbn1cbi8qIEJ1bGxldCAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNXB4O1xufVxuLyogUmFkaW8gQ2hlY2tib3ggKi9cbi51aS5yYWRpby5jaGVja2JveCAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGxhYmVsOmFmdGVyIHtcbiAgdG9wOiAxcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNDY2NjY2NjcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyogRm9jdXMgKi9cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXMgfiBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKiBJbmRldGVybWluYXRlICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IC5ib3g6YWZ0ZXIsXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6aW5kZXRlcm1pbmF0ZSB+IGxhYmVsOmFmdGVyIHtcbiAgb3BhY2l0eTogMDtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmJlZm9yZSxcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5yYWRpby5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkucmFkaW8uY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnJhZGlvLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNsaWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zbGlkZXIuY2hlY2tib3gge1xuICBtaW4taGVpZ2h0OiAxLjI1cmVtO1xufVxuLyogSW5wdXQgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG59XG4vKiBMYWJlbCAqL1xuLnVpLnNsaWRlci5jaGVja2JveCAuYm94LFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogNC41cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi8qIExpbmUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpiZWZvcmUsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgbGVmdDogMGVtO1xuICB6LWluZGV4OiAxO1xuICB0b3A6IDAuNHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgd2lkdGg6IDMuNXJlbTtcbiAgaGVpZ2h0OiAwLjIxNDI4NTcxcmVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XG59XG4vKiBIYW5kbGUgKi9cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdG9wOiAtMC4yNXJlbTtcbiAgbGVmdDogMGVtO1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjNzIGVhc2U7XG59XG4vKiBGb2N1cyAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1cyB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1cyB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi8qIEhvdmVyICovXG4udWkuc2xpZGVyLmNoZWNrYm94IC5ib3g6aG92ZXIsXG4udWkuc2xpZGVyLmNoZWNrYm94IGxhYmVsOmhvdmVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU0NTQ1NCAhaW1wb3J0YW50O1xufVxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDphZnRlcixcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmFmdGVyIHtcbiAgbGVmdDogMnJlbTtcbn1cbi8qIEFjdGl2ZSBGb2N1cyAqL1xuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveCxcbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC45NSkgIWltcG9ydGFudDtcbn1cbi51aS5zbGlkZXIuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IC5ib3g6YmVmb3JlLFxuLnVpLnNsaWRlci5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBUb2dnbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkudG9nZ2xlLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMS41cmVtO1xufVxuLyogSW5wdXQgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQge1xuICB3aWR0aDogMy41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbn1cbi8qIExhYmVsICovXG4udWkudG9nZ2xlLmNoZWNrYm94IC5ib3gsXG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsIHtcbiAgbWluLWhlaWdodDogMS41cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDQuNXJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsIHtcbiAgcGFkZGluZy10b3A6IDAuMTVlbTtcbn1cbi8qIFN3aXRjaCAqL1xuLnVpLnRvZ2dsZS5jaGVja2JveCAuYm94OmJlZm9yZSxcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB0b3A6IDByZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKiBIYW5kbGUgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDphZnRlcixcbi51aS50b2dnbGUuY2hlY2tib3ggbGFiZWw6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGIGxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCwgcmdiYSgwLCAwLCAwLCAwLjA1KSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJycgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgdG9wOiAwcmVtO1xuICBsZWZ0OiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UsIGxlZnQgMC4zcyBlYXNlO1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dCB+IC5ib3g6YWZ0ZXIsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0IH4gbGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiAtMC4wNXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpLCAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi8qIEZvY3VzICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzIH4gbGFiZWw6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLyogSG92ZXIgKi9cbi51aS50b2dnbGUuY2hlY2tib3ggLmJveDpob3Zlcjo6YmVmb3JlLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBsYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyOiBub25lO1xufVxuLyogQWN0aXZlICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG59XG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gbGFiZWw6YWZ0ZXIge1xuICBsZWZ0OiAyLjE1cmVtO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSksIDBweCAwcHggMHB4IDFweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpIGluc2V0O1xufVxuLyogQWN0aXZlIEZvY3VzICovXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiAuYm94LFxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gbGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KSAhaW1wb3J0YW50O1xufVxuLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4udWkudG9nZ2xlLmNoZWNrYm94IGlucHV0OmZvY3VzOmNoZWNrZWQgfiBsYWJlbDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWE1NTg3ICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml0dGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZpdHRlZC5jaGVja2JveCAuYm94LFxuLnVpLmZpdHRlZC5jaGVja2JveCBsYWJlbCB7XG4gIHBhZGRpbmctbGVmdDogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuZml0dGVkLnRvZ2dsZS5jaGVja2JveCxcbi51aS5maXR0ZWQudG9nZ2xlLmNoZWNrYm94IHtcbiAgd2lkdGg6IDMuNXJlbTtcbn1cbi51aS5maXR0ZWQuc2xpZGVyLmNoZWNrYm94LFxuLnVpLmZpdHRlZC5zbGlkZXIuY2hlY2tib3gge1xuICB3aWR0aDogMy41cmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0NoZWNrYm94JztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi94LWZvbnQtdHRmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LEFBRUFBQUFMQUlBQUF3QXdUMU12TWc4U0JEOEFBQUM4QUFBQVlHTnRZWEFZVnRDSkFBQUJIQUFBQUZSbllYTndBQUFBRUFBQUFYQUFBQUFJWjJ4NVpuNGh1d1VBQUFGNEFBQUJZR2hsWVdRR1BlMVpBQUFDMkFBQUFEWm9hR1ZoQjMwRHlBQUFBeEFBQUFBa2FHMTBlQkJLQUVVQUFBTTBBQUFBSEd4dlkyRUFtZ0VTQUFBRFVBQUFBQkJ0WVhod0FBa0FMd0FBQTJBQUFBQWdibUZ0WlNDOEl1Z0FBQU9BQUFBQmtuQnZjM1FBQXdBQUFBQUZGQUFBQUNBQUF3TVRBWkFBQlFBQUFwa0N6QUFBQUk4Q21RTE1BQUFCNndBekFRa0FBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBRG9BZ1BBLzhBQVFBUEFBRUFBQUFBQkFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBREFBQUFBd0FBQUJ3QUFRQURBQUFBSEFBREFBRUFBQUFjQUFRQU9BQUFBQW9BQ0FBQ0FBSUFBUUFnNkFMLy9mLy9BQUFBQUFBZzZBRC8vZi8vQUFILzR4Z0VBQU1BQVFBQUFBQUFBQUFBQUFBQUFRQUIvLzhBRHdBQkFBQUFBQUFBQUFBQUFnQUFOemtCQUFBQUFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFBQUFBQUFBQUFBQUlBQURjNUFRQUFBQUFCQUVVQVVRTzdBdmdBR2dBQUFSUUhBUVlqSWljQkpqVTBQd0UyTXpJZkFRRTJNeklmQVJZVkE3c1EvaFFRRmhjUS91TVFFRTRRRnhjUXFBRjJFQmNYRUU0UUFuTVdFUDRVRUJBQkhSQVhGaEJPRUJDb0FYY1FFRTRRRndBQUFBQUJBQUFCYmdNbEFra0FGQUFBQVJVVUJ3WWpJU0luSmowQk5EYzJNeUV5RnhZVkF5VVFFQmY5U1JjUUVCQVFGd0szRnhBUUFoSnRGeEFRRUJBWGJSY1FFQkFRRndBQUFBQUJBQUFBU1FNbEEyNEFMQUFBQVJVVUJ3WXJBUlVVQndZckFTSW5KajBCSXlJbkpqMEJORGMyT3dFMU5EYzJPd0V5RnhZZEFUTXlGeFlWQXlVUUVCZnVFQkFYYmhZUUVPNFhFQkFRRUJmdUVCQVdiaGNRRU80WEVCQUNFbTBYRUJEdUZ4QVFFQkFYN2hBUUYyMFhFQkR1RnhBUUVCQVg3aEFRRndBQUFRQUFBQUlBQUhSU3pUOWZEenoxQUFzRUFBQUFBQURSc2RSM0FBQUFBTkd4MUhjQUFBQUFBN3NEYmdBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFEd1AvQUFBQUVBQUFBQUFBRHV3QUJBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3UUFBQUFBQUFBQUFBQUFBQUlBQUFBRUFBQkZBeVVBQUFNbEFBQUFBQUFBQUFvQUZBQWVBRTRBY2dDd0FBRUFBQUFIQUMwQUFRQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FLNEFBUUFBQUFBQUFRQUlBQUFBQVFBQUFBQUFBZ0FIQUdrQUFRQUFBQUFBQXdBSUFEa0FBUUFBQUFBQUJBQUlBSDRBQVFBQUFBQUFCUUFMQUJnQUFRQUFBQUFBQmdBSUFGRUFBUUFBQUFBQUNnQWFBSllBQXdBQkJBa0FBUUFRQUFnQUF3QUJCQWtBQWdBT0FIQUFBd0FCQkFrQUF3QVFBRUVBQXdBQkJBa0FCQUFRQUlZQUF3QUJCQWtBQlFBV0FDTUFBd0FCQkFrQUJnQVFBRmtBQXdBQkJBa0FDZ0EwQUxCRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhXWlhKemFXOXVJREl1TUFCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTWdBdUFEQkRhR1ZqYTJKdmVBQkRBR2dBWlFCakFHc0FZZ0J2QUhoRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhTWldkMWJHRnlBRklBWlFCbkFIVUFiQUJoQUhKRGFHVmphMkp2ZUFCREFHZ0FaUUJqQUdzQVlnQnZBSGhHYjI1MElHZGxibVZ5WVhSbFpDQmllU0JKWTI5TmIyOXVMZ0JHQUc4QWJnQjBBQ0FBWndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJKQUdNQWJ3Qk5BRzhBYndCdUFDNEFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgZm9ybWF0KCd0cnVldHlwZScpO1xufVxuLyogQ2hlY2ttYXJrICovXG4udWkuY2hlY2tib3ggbGFiZWw6YWZ0ZXIsXG4udWkuY2hlY2tib3ggLmJveDphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiAnQ2hlY2tib3gnO1xufVxuLyogQ2hlY2tlZCAqL1xuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgfiBsYWJlbDphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXGU4MDAnO1xufVxuLyogSW5kZXRlcm1pbmF0ZSAqL1xuLnVpLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiAuYm94OmFmdGVyLFxuLnVpLmNoZWNrYm94IGlucHV0OmluZGV0ZXJtaW5hdGUgfiBsYWJlbDphZnRlciB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29udGVudDogJ1xcZTgwMSc7XG59XG4vKiAgVVRGIFJlZmVyZW5jZVxuLmNoZWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDAnOyB9XG4uZGFzaDpiZWZvcmUgIHsgY29udGVudDogJ1xcZTgwMSc7IH1cbi5wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MDInOyB9XG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRGltbWVyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGltbWVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSGlkZGVuIChEZWZhdWx0KSAqL1xuLyogVmlzaWJsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIERpbW1lciovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBTaW1wbGUgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGltbWVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSGlkZGVuIChEZWZhdWx0KSAqL1xuLyogVmlzaWJsZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQYWdlIERpbW1lciovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKiBTaW1wbGUgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRGltbWVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmRpbW1hYmxlOm5vdChib2R5KSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5kaW1tZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMGVtICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDBlbSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmc6IDFlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgb3BhY2l0eTogMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzIGxpbmVhcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgei1pbmRleDogMTAwMDtcbn1cbi8qIERpbW1lciBDb250ZW50ICovXG4udWkuZGltbWVyID4gLmNvbnRlbnQge1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKiBMb29zZSBDb3VwbGluZyAqL1xuLnVpLnNlZ21lbnQgPiAudWkuZGltbWVyIHtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdCAhaW1wb3J0YW50O1xufVxuLyogU2Nyb2xsYmFycyAqL1xuLnVpLmRpbW1lcjpub3QoLmludmVydGVkKTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG59XG4udWkuZGltbWVyOm5vdCguaW52ZXJ0ZWQpOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp3aW5kb3ctaW5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuLnVpLmRpbW1lcjpub3QoLmludmVydGVkKTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLmFuaW1hdGluZy5kaW1tYWJsZTpub3QoYm9keSksXG4uZGltbWVkLmRpbW1hYmxlOm5vdChib2R5KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4vKiBBbmltYXRpbmcgLyBBY3RpdmUgLyBWaXNpYmxlICovXG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLmFuaW1hdGluZy5kaW1tZXIsXG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnZpc2libGUuZGltbWVyLFxuLnVpLmFjdGl2ZS5kaW1tZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvcGFjaXR5OiAxO1xufVxuLyogRGlzYWJsZWQgKi9cbi51aS5kaXNhYmxlZC5kaW1tZXIge1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTGVnYWN5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQW5pbWF0aW5nIC8gQWN0aXZlIC8gVmlzaWJsZSAqL1xuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5hbmltYXRpbmcubGVnYWN5LmRpbW1lcixcbi5kaW1tZWQuZGltbWFibGUgPiAudWkudmlzaWJsZS5sZWdhY3kuZGltbWVyLFxuLnVpLmFjdGl2ZS5sZWdhY3kuZGltbWVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQWxpZ25tZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpW2NsYXNzKj1cInRvcCBhbGlnbmVkXCJdLmRpbW1lciB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi51aVtjbGFzcyo9XCJib3R0b20gYWxpZ25lZFwiXS5kaW1tZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wYWdlLmRpbW1lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdHJhbnNmb3JtLXN0eWxlOiAnJztcbiAgcGVyc3BlY3RpdmU6IDIwMDBweDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbn1cbmJvZHkuYW5pbWF0aW5nLmluLmRpbW1hYmxlLFxuYm9keS5kaW1tZWQuZGltbWFibGUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuYm9keS5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQmx1cnJpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4uYmx1cnJpbmcuZGltbWFibGUgPiA6bm90KC5kaW1tZXIpIHtcbiAgZmlsdGVyOiBibHVyKDBweCkgZ3JheXNjYWxlKDApO1xuICB0cmFuc2l0aW9uOiA4MDBtcyBmaWx0ZXIgZWFzZTtcbn1cbi5ibHVycmluZy5kaW1tZWQuZGltbWFibGUgPiA6bm90KC5kaW1tZXIpIHtcbiAgZmlsdGVyOiBibHVyKDVweCkgZ3JheXNjYWxlKDAuNyk7XG59XG4vKiBEaW1tZXIgQ29sb3IgKi9cbi5ibHVycmluZy5kaW1tYWJsZSA+IC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4uYmx1cnJpbmcuZGltbWFibGUgPiAuaW52ZXJ0ZWQuZGltbWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEFsaWduZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZGltbWVyID4gLnRvcC5hbGlnbmVkLmNvbnRlbnQgPiAqIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbi51aS5kaW1tZXIgPiAuYm90dG9tLmFsaWduZWQuY29udGVudCA+ICoge1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmludmVydGVkLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG59XG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLmNvbnRlbnQgPiAqIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNpbXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc3BsYXlzIHdpdGhvdXQgamF2YXNjcmlwdCAqL1xuLnVpLnNpbXBsZS5kaW1tZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDAlO1xuICB6LWluZGV4OiAtMTAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmRpbW1lZC5kaW1tYWJsZSA+IC51aS5zaW1wbGUuZGltbWVyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIHotaW5kZXg6IDE7XG59XG4udWkuc2ltcGxlLmludmVydGVkLmRpbW1lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG59XG4uZGltbWVkLmRpbW1hYmxlID4gLnVpLnNpbXBsZS5pbnZlcnRlZC5kaW1tZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gRHJvcGRvd25cbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBEcm9wZG93blxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEljb24gKi9cbi8qIEN1cnJlbnQgVGV4dCAqL1xuLyogTWVudSAqL1xuLyogVGV4dCAqL1xuLyogTWVudSBJdGVtICovXG4vKiBTdWIgTWVudSAqL1xuLyogTWVudSBIZWFkZXIgKi9cbi8qIE1lbnUgRGl2aWRlciAqL1xuLyogTWVudSBJbnB1dCAqL1xuLyogTWVudSBJbWFnZSAqL1xuLyogSXRlbSBTdWItRWxlbWVudCAqL1xuLyogU3ViLU1lbnUgRHJvcGRvd24gSWNvbiAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIE1lc3NhZ2UgKi9cbi8qIEZsb2F0ZWQgQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLVxuICAgU2VsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLSovXG4vKiA8c2VsZWN0PiAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyogRGVyaXZlZCAqL1xuLyogMXB4IC8gZW0gc2l6ZSAqL1xuLyogSG92ZXIgKi9cbi8qIEZvY3VzICovXG4vKiBWaXNpYmxlICovXG4vKiBWaXNpYmxlIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFNlYXJjaFxuLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VhcmNoIFNlbGVjdGlvbiAqL1xuLyogSW5saW5lICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTXVsdGlwbGVcbi0tLS0tLS0tLS0tLS0tKi9cbi8qIFNwbGl0IEFjdHVhbCBQYWRkaW5nIEJldHdlZW4gQ2hpbGQgYW5kIFBhcmVudCAoYWxsb3dzIGZvciBsYWJlbCBzcGFjaW5nKSAqL1xuLyogQ2hpbGQgRWxlbWVudHMgKi9cbi8qIERyb3Bkb3duIEljb24gKi9cbi8qIFNlbGVjdGlvbiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlcmVkICovXG4vKiBEZWZhdWx0IFRleHQgKi9cbi8qIExvYWRpbmcgKi9cbi8qIEFjdGl2ZSBNZW51IEl0ZW0gKi9cbi8qIFNlbGVjdGVkICovXG4vKiBFcnJvciAqL1xuLyogQ2xlYXJhYmxlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNjcm9sbGluZyAqL1xuLyogMHB4IC8gZW0gc2l6ZSAqL1xuLyogVXB3YXJkICovXG4vKiBGbHlvdXQgRGlyZWN0aW9uICovXG4vKiBMZWZ0ICovXG4vKiBTaW1wbGUgKi9cbi8qIEZsb2F0aW5nICovXG4vKiBQb2ludGluZyAqL1xuLyogUG9pbnRpbmcgVXB3YXJkICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIERyb3Bkb3duXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbiAqL1xuLyogQ3VycmVudCBUZXh0ICovXG4vKiBNZW51ICovXG4vKiBUZXh0ICovXG4vKiBNZW51IEl0ZW0gKi9cbi8qIFN1YiBNZW51ICovXG4vKiBNZW51IEhlYWRlciAqL1xuLyogTWVudSBEaXZpZGVyICovXG4vKiBNZW51IElucHV0ICovXG4vKiBNZW51IEltYWdlICovXG4vKiBJdGVtIFN1Yi1FbGVtZW50ICovXG4vKiBTdWItTWVudSBEcm9wZG93biBJY29uICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogTWVzc2FnZSAqL1xuLyogRmxvYXRlZCBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tXG4gICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tKi9cbi8qIDxzZWxlY3Q+ICovXG4vKiBSZXNwb25zaXZlICovXG4vKiBEZXJpdmVkICovXG4vKiAxcHggLyBlbSBzaXplICovXG4vKiBIb3ZlciAqL1xuLyogRm9jdXMgKi9cbi8qIFZpc2libGUgKi9cbi8qIFZpc2libGUgSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2VhcmNoXG4tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWFyY2ggU2VsZWN0aW9uICovXG4vKiBJbmxpbmUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNdWx0aXBsZVxuLS0tLS0tLS0tLS0tLS0qL1xuLyogU3BsaXQgQWN0dWFsIFBhZGRpbmcgQmV0d2VlbiBDaGlsZCBhbmQgUGFyZW50IChhbGxvd3MgZm9yIGxhYmVsIHNwYWNpbmcpICovXG4vKiBDaGlsZCBFbGVtZW50cyAqL1xuLyogRHJvcGRvd24gSWNvbiAqL1xuLyogU2VsZWN0aW9uIExhYmVsICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyZWQgKi9cbi8qIERlZmF1bHQgVGV4dCAqL1xuLyogTG9hZGluZyAqL1xuLyogQWN0aXZlIE1lbnUgSXRlbSAqL1xuLyogU2VsZWN0ZWQgKi9cbi8qIEVycm9yICovXG4vKiBDbGVhcmFibGUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2Nyb2xsaW5nICovXG4vKiAwcHggLyBlbSBzaXplICovXG4vKiBVcHdhcmQgKi9cbi8qIEZseW91dCBEaXJlY3Rpb24gKi9cbi8qIExlZnQgKi9cbi8qIFNpbXBsZSAqL1xuLyogRmxvYXRpbmcgKi9cbi8qIFBvaW50aW5nICovXG4vKiBQb2ludGluZyBVcHdhcmQgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRHJvcGRvd25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuZHJvcGRvd24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdXRsaW5lOiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZSwgd2lkdGggMC4xcyBlYXNlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgQ29udGVudFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gLm1lbnUge1xuICBjdXJzb3I6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdG9wOiAxMDAlO1xuICBtaW4td2lkdGg6IG1heC1jb250ZW50O1xuICBtYXJnaW46IDBlbTtcbiAgcGFkZGluZzogMGVtIDBlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG4gIHotaW5kZXg6IDExO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gKiB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIEhpZGRlbiBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IGlucHV0Om5vdCguc2VhcmNoKTpmaXJzdC1jaGlsZCxcbi51aS5kcm9wZG93biA+IHNlbGVjdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiBEcm9wZG93biBJY29uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBhdXRvO1xuICBmb250LXNpemU6IDAuODU3MTQyODZlbTtcbiAgbWFyZ2luOiAwZW0gMGVtIDBlbSAxZW07XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSAuZHJvcGRvd24uaWNvbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gLmRyb3Bkb3duLmljb24gKyAudGV4dCB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVGV4dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC50ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIE1lbnUgSXRlbVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIHBhZGRpbmc6IDAuNzg1NzE0MjlyZW0gMS4xNDI4NTcxNHJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBib3gtc2hhZG93OiBub25lO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgRmxvYXRlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBbY2xhc3MqPVwicmlnaHQgZmxvYXRlZFwiXSxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IFtjbGFzcyo9XCJyaWdodCBmbG9hdGVkXCJdIHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiAxZW0gIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gW2NsYXNzKj1cImxlZnQgZmxvYXRlZFwiXSxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IFtjbGFzcyo9XCJsZWZ0IGZsb2F0ZWRcIl0ge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMGVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMWVtICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgLml0ZW0gPiAuaWNvbi5mbG9hdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gLmZsYWcuZmxvYXRlZCxcbi51aS5kcm9wZG93biAubWVudSAuaXRlbSA+IC5pbWFnZS5mbG9hdGVkLFxuLnVpLmRyb3Bkb3duIC5tZW51IC5pdGVtID4gaW1nLmZsb2F0ZWQge1xuICBtYXJnaW4tdG9wOiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gIE1lbnUgRGl2aWRlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biAubWVudSA+IC5oZWFkZXIge1xuICBtYXJnaW46IDFyZW0gMHJlbSAwLjc1cmVtO1xuICBwYWRkaW5nOiAwZW0gMS4xNDI4NTcxNHJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5kaXZpZGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbiAgaGVpZ2h0OiAwZW07XG4gIG1hcmdpbjogMC41ZW0gMGVtO1xufVxuLnVpLmRyb3Bkb3duLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogMS4xNDI4NTcxNHJlbSAwLjc4NTcxNDI5cmVtO1xuICBtaW4td2lkdGg6IDEwcmVtO1xufVxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmhlYWRlciArIC5pbnB1dCB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSBpbnB1dCB7XG4gIHBhZGRpbmc6IDAuNWVtIDFlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pbnB1dDpub3QoLnRyYW5zcGFyZW50KSAuYnV0dG9uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIC5pY29uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLmlucHV0Om5vdCgudHJhbnNwYXJlbnQpIC5sYWJlbCB7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNWVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICBJdGVtIERlc2NyaXB0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmRlc2NyaXB0aW9uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuZGVzY3JpcHRpb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIE1lc3NhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5cmVtIDEuMTQyODU3MTRyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4udWkuZHJvcGRvd24gLm1lbnUgPiAubWVzc2FnZTpub3QoLnVpKSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgU3ViIE1lbnVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZHJvcGRvd24gLm1lbnUgLm1lbnUge1xuICB0b3A6IDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDEwMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjVlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDIxICFpbXBvcnRhbnQ7XG59XG4vKiBIaWRlIEFycm93ICovXG4udWkuZHJvcGRvd24gLm1lbnUgLm1lbnU6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU3ViIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSWNvbnMgLyBGbGFncyAvIExhYmVscyAvIEltYWdlICovXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pY29uLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAubGFiZWwsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBpbWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pbWFnZSB7XG4gIG1hcmdpbi10b3A6IDBlbTtcbn1cbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmljb24sXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5sYWJlbCxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmZsYWcsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gaW1nIHtcbiAgbWFyZ2luLXRvcDogMGVtO1xufVxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaWNvbixcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gLmxhYmVsLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuZmxhZyxcbi51aS5kcm9wZG93biA+IC50ZXh0ID4gaW1nLFxuLnVpLmRyb3Bkb3duID4gLnRleHQgPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5pY29uLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAubGFiZWwsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IC5mbGFnLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiAuaW1hZ2UsXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbSA+IGltZyB7XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW4tcmlnaHQ6IDAuNzg1NzE0MjlyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEltYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duID4gLnRleHQgPiBpbWcsXG4udWkuZHJvcGRvd24gPiAudGV4dCA+IC5pbWFnZSxcbi51aS5kcm9wZG93biAubWVudSA+IC5pdGVtID4gLmltYWdlLFxuLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW0gPiBpbWcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtMC41ZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjVlbTtcbiAgbWF4LWhlaWdodDogMmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgTWVudVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFJlbW92ZSBNZW51IEl0ZW0gRGl2aWRlciAqL1xuLnVpLmRyb3Bkb3duIC51aS5tZW51ID4gLml0ZW06YmVmb3JlLFxuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51ID4gLml0ZW06YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIFByZXZlbnQgTWVudSBJdGVtIEJvcmRlciAqL1xuLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xufVxuLyogQXV0b21hdGljYWxseSBmbG9hdCBkcm9wZG93biBtZW51IHJpZ2h0IG9uIGxhc3QgbWVudSBpdGVtICovXG4udWkubWVudSAucmlnaHQubWVudSAuZHJvcGRvd246bGFzdC1jaGlsZCAubWVudSxcbi51aS5tZW51IC5yaWdodC5kcm9wZG93bi5pdGVtIC5tZW51LFxuLnVpLmJ1dHRvbnMgPiAudWkuZHJvcGRvd246bGFzdC1jaGlsZCAubWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBMYWJlbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERyb3Bkb3duIE1lbnUgKi9cbi51aS5sYWJlbC5kcm9wZG93biAubWVudSB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnV0dG9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogTm8gTWFyZ2luIE9uIEljb24gQnV0dG9uICovXG4udWkuZHJvcGRvd24uaWNvbi5idXR0b24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIG1hcmdpbjogMGVtO1xufVxuLnVpLmJ1dHRvbi5kcm9wZG93biAubWVudSB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFNlbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpc3BsYXlzIGxpa2UgYSBzZWxlY3QgYm94ICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIG91dGxpbmU6IDA7XG4gIHRyYW5zZm9ybTogcm90YXRlWigwZGVnKTtcbiAgbWluLXdpZHRoOiAxNGVtO1xuICBtaW4taGVpZ2h0OiAyLjcxNDI4NTcxZW07XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC43ODU3MTQyOWVtIDIuMWVtIDAuNzg1NzE0MjllbSAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMXMgZWFzZSwgd2lkdGggMC4xcyBlYXNlO1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93bi52aXNpYmxlLFxuLnVpLnNlbGVjdGlvbi5kcm9wZG93bi5hY3RpdmUge1xuICB6LWluZGV4OiAxMDtcbn1cbnNlbGVjdC51aS5kcm9wZG93biB7XG4gIGhlaWdodDogMzhweDtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duID4gLnNlYXJjaC5pY29uLFxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biA+IC5kZWxldGUuaWNvbixcbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICB0b3A6IDAuNzg1NzE0MjllbTtcbiAgcmlnaHQ6IDFlbTtcbiAgei1pbmRleDogMztcbiAgbWFyZ2luOiAtMC43ODU3MTQyOWVtO1xuICBwYWRkaW5nOiAwLjkxNjY2NjY3ZW07XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4vKiBDb21wYWN0ICovXG4udWkuY29tcGFjdC5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBtaW4td2lkdGg6IDBweDtcbn1cbi8qICBTZWxlY3Rpb24gTWVudSAqL1xuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGJvcmRlci10b3Atd2lkdGg6IDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgb3V0bGluZTogbm9uZTtcbiAgbWFyZ2luOiAwcHggLTFweDtcbiAgbWluLXdpZHRoOiBjYWxjKDEwMCUgKyAgMnB4ICk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAgMnB4ICk7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51OmFmdGVyLFxuLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIE1lc3NhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duIC5tZW51ID4gLm1lc3NhZ2Uge1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5cmVtIDEuMTQyODU3MTRyZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDguMDE0Mjg1NzFyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTAuNjg1NzE0MjlyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMTYuMDI4NTcxNDNyZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IDIxLjM3MTQyODU3cmVtO1xuICB9XG59XG4vKiBNZW51IEl0ZW0gKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUgPiAuaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRkFGQUZBO1xuICBwYWRkaW5nOiAwLjc4NTcxNDI5cmVtIDEuMTQyODU3MTRyZW0gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4vKiBVc2VyIEl0ZW0gKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUgPiAuaGlkZGVuLmFkZGl0aW9uLml0ZW0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogSG92ZXIgKi9cbi51aS5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM2LCAzOCwgMC4zNSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKiBBY3RpdmUgKi9cbi51aS5zZWxlY3Rpb24uYWN0aXZlLmRyb3Bkb3duIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWxlY3Rpb24uYWN0aXZlLmRyb3Bkb3duIC5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIEZvY3VzICovXG4udWkuc2VsZWN0aW9uLmRyb3Bkb3duOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93bjpmb2N1cyAubWVudSB7XG4gIGJvcmRlci1jb2xvcjogIzk2QzhEQTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCAzcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBWaXNpYmxlICovXG4udWkuc2VsZWN0aW9uLnZpc2libGUuZHJvcGRvd24gPiAudGV4dDpub3QoLmRlZmF1bHQpIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cbi8qIFZpc2libGUgSG92ZXIgKi9cbi51aS5zZWxlY3Rpb24uYWN0aXZlLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi51aS5zZWxlY3Rpb24uYWN0aXZlLmRyb3Bkb3duOmhvdmVyIC5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiAjOTZDOERBO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDNweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qIERyb3Bkb3duIEljb24gKi9cbi51aS5hY3RpdmUuc2VsZWN0aW9uLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24sXG4udWkudmlzaWJsZS5zZWxlY3Rpb24uZHJvcGRvd24gPiAuZHJvcGRvd24uaWNvbiB7XG4gIG9wYWNpdHk6ICcnO1xuICB6LWluZGV4OiAzO1xufVxuLyogQ29ubmVjdGluZyBCb3JkZXIgKi9cbi51aS5hY3RpdmUuc2VsZWN0aW9uLmRyb3Bkb3duIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qIEVtcHR5IENvbm5lY3RpbmcgQm9yZGVyICovXG4udWkuYWN0aXZlLmVtcHR5LnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLnVpLmFjdGl2ZS5lbXB0eS5zZWxlY3Rpb24uZHJvcGRvd24gLm1lbnUge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2VhcmNoYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi51aS5zZWFyY2guZHJvcGRvd24ge1xuICBtaW4td2lkdGg6ICcnO1xufVxuLyogU2VhcmNoIERyb3Bkb3duICovXG4udWkuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgYmFja2dyb3VuZDogbm9uZSB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHRleHQ7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAxcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIHBhZGRpbmc6IGluaGVyaXQ7XG59XG4vKiBUZXh0IExheWVyaW5nICovXG4udWkuc2VhcmNoLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xufVxuLnVpLnNlYXJjaC5kcm9wZG93biA+IC50ZXh0IHtcbiAgY3Vyc29yOiB0ZXh0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDFweDtcbiAgei1pbmRleDogMztcbn1cbi8qIFNlYXJjaCBTZWxlY3Rpb24gKi9cbi51aS5zZWFyY2guc2VsZWN0aW9uLmRyb3Bkb3duID4gaW5wdXQuc2VhcmNoIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZzogMC42Nzg1NzE0M2VtIDIuMWVtIDAuNjc4NTcxNDNlbSAxZW07XG59XG4vKiBVc2VkIHRvIHNpemUgbXVsdGkgc2VsZWN0IGlucHV0IHRvIGNoYXJhY3RlciB3aWR0aCAqL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24uZHJvcGRvd24gPiBzcGFuLnNpemVyIHtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbiAgcGFkZGluZzogMC42Nzg1NzE0M2VtIDIuMWVtIDAuNjc4NTcxNDNlbSAxZW07XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG4vKiBBY3RpdmUvVmlzaWJsZSBTZWFyY2ggKi9cbi51aS5zZWFyY2guZHJvcGRvd24uYWN0aXZlID4gaW5wdXQuc2VhcmNoLFxuLnVpLnNlYXJjaC5kcm9wZG93bi52aXNpYmxlID4gaW5wdXQuc2VhcmNoIHtcbiAgY3Vyc29yOiBhdXRvO1xufVxuLnVpLnNlYXJjaC5kcm9wZG93bi5hY3RpdmUgPiAudGV4dCxcbi51aS5zZWFyY2guZHJvcGRvd24udmlzaWJsZSA+IC50ZXh0IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKiBGaWx0ZXJlZCBUZXh0ICovXG4udWkuYWN0aXZlLnNlYXJjaC5kcm9wZG93biBpbnB1dC5zZWFyY2g6Zm9jdXMgKyAudGV4dCAuaWNvbixcbi51aS5hY3RpdmUuc2VhcmNoLmRyb3Bkb3duIGlucHV0LnNlYXJjaDpmb2N1cyArIC50ZXh0IC5mbGFnIHtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi51aS5hY3RpdmUuc2VhcmNoLmRyb3Bkb3duIGlucHV0LnNlYXJjaDpmb2N1cyArIC50ZXh0IHtcbiAgY29sb3I6IHJnYmEoMTE1LCAxMTUsIDExNSwgMC44NykgIWltcG9ydGFudDtcbn1cbi8qIFNlYXJjaCBNZW51ICovXG4udWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogOC4wMTQyODU3MXJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxMC42ODU3MTQyOXJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuc2VhcmNoLmRyb3Bkb3duIC5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxNi4wMjg1NzE0M3JlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnNlYXJjaC5kcm9wZG93biAubWVudSB7XG4gICAgbWF4LWhlaWdodDogMjEuMzcxNDI4NTdyZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBNdWx0aXBsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE11bHRpcGxlIFNlbGVjdGlvbiAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duIHtcbiAgcGFkZGluZzogMC4yMjYxOTA0OGVtIDIuMWVtIDAuMjI2MTkwNDhlbSAwLjM1NzE0Mjg2ZW07XG59XG4udWkubXVsdGlwbGUuZHJvcGRvd24gLm1lbnUge1xuICBjdXJzb3I6IGF1dG87XG59XG4vKiBNdWx0aXBsZSBTZWFyY2ggU2VsZWN0aW9uICovXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duLFxuLnVpLm11bHRpcGxlLnNlYXJjaC5kcm9wZG93biA+IGlucHV0LnNlYXJjaCB7XG4gIGN1cnNvcjogdGV4dDtcbn1cbi8qIFNlbGVjdGlvbiBMYWJlbCAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLmxhYmVsIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDAuMzU3MTQyODZlbSAwLjc4NTcxNDI5ZW07XG4gIG1hcmdpbjogMC4xNDI4NTcxNHJlbSAwLjI4NTcxNDI5cmVtIDAuMTQyODU3MTRyZW0gMGVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KSBpbnNldDtcbn1cbi8qIERyb3Bkb3duIEljb24gKi9cbi51aS5tdWx0aXBsZS5kcm9wZG93biAuZHJvcGRvd24uaWNvbiB7XG4gIG1hcmdpbjogJyc7XG4gIHBhZGRpbmc6ICcnO1xufVxuLyogVGV4dCAqL1xuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLnRleHQge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBwYWRkaW5nOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMC40NTIzODA5NWVtIDBlbSAwLjQ1MjM4MDk1ZW0gMC42NDI4NTcxNGVtO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLmxhYmVsIH4gaW5wdXQuc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IDAuMTQyODU3MTRlbSAhaW1wb3J0YW50O1xufVxuLnVpLm11bHRpcGxlLmRyb3Bkb3duID4gLmxhYmVsIH4gLnRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICBNdWx0aXBsZSBTZWFyY2hcbi0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFByb21wdCBUZXh0ICovXG4udWkubXVsdGlwbGUuc2VhcmNoLmRyb3Bkb3duID4gLnRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBwYWRkaW5nOiBpbmhlcml0O1xuICBtYXJnaW46IDAuNDUyMzgwOTVlbSAwZW0gMC40NTIzODA5NWVtIDAuNjQyODU3MTRlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjE0Mjg1NzFlbTtcbn1cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiAubGFiZWwgfiAudGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBTZWFyY2ggKi9cbi51aS5tdWx0aXBsZS5zZWFyY2guZHJvcGRvd24gPiBpbnB1dC5zZWFyY2gge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBwYWRkaW5nOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMC40NTIzODA5NWVtIDBlbSAwLjQ1MjM4MDk1ZW0gMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMi4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjIxNDI4NTcxZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIElubGluZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbmxpbmUuZHJvcGRvd24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IGluaGVyaXQ7XG59XG4udWkuaW5saW5lLmRyb3Bkb3duIC5kcm9wZG93bi5pY29uIHtcbiAgbWFyZ2luOiAwZW0gMC4yMTQyODU3MWVtIDBlbSAwLjIxNDI4NTcxZW07XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbi51aS5pbmxpbmUuZHJvcGRvd24gPiAudGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLmlubGluZS5kcm9wZG93biAubWVudSB7XG4gIGN1cnNvcjogYXV0bztcbiAgbWFyZ2luLXRvcDogMC4yMTQyODU3MWVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1lbnUgSXRlbSBBY3RpdmUgKi9cbi51aS5kcm9wZG93biAubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICBib3gtc2hhZG93OiBub25lO1xuICB6LWluZGV4OiAxMjtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWVudSBJdGVtIEhvdmVyICovXG4udWkuZHJvcGRvd24gLm1lbnUgPiAuaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOTUpO1xuICB6LWluZGV4OiAxMztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuZHJvcGRvd24gPiBpLmljb24ge1xuICBoZWlnaHQ6IDFlbSAhaW1wb3J0YW50O1xufVxuLnVpLmxvYWRpbmcuc2VsZWN0aW9uLmRyb3Bkb3duID4gaS5pY29uIHtcbiAgcGFkZGluZzogMS41ZW0gMS4yODU3MTQyOWVtICFpbXBvcnRhbnQ7XG59XG4udWkubG9hZGluZy5kcm9wZG93biA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5sb2FkaW5nLmRyb3Bkb3duID4gaS5pY29uOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYW5pbWF0aW9uOiBkcm9wZG93bi1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG59XG4vKiBDb3VwbGluZyAqL1xuLnVpLmxvYWRpbmcuZHJvcGRvd24uYnV0dG9uID4gaS5pY29uOmJlZm9yZSxcbi51aS5sb2FkaW5nLmRyb3Bkb3duLmJ1dHRvbiA+IGkuaWNvbjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5Aa2V5ZnJhbWVzIGRyb3Bkb3duLXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBEZWZhdWx0IFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IC5kZWZhdWx0LnRleHQsXG4udWkuZGVmYXVsdC5kcm9wZG93bjpub3QoLmJ1dHRvbikgPiAudGV4dCB7XG4gIGNvbG9yOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuODcpO1xufVxuLnVpLmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IGlucHV0OmZvY3VzIH4gLmRlZmF1bHQudGV4dCxcbi51aS5kZWZhdWx0LmRyb3Bkb3duOm5vdCguYnV0dG9uKSA+IGlucHV0OmZvY3VzIH4gLnRleHQge1xuICBjb2xvcjogcmdiYSgxMTUsIDExNSwgMTE1LCAwLjg3KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkubG9hZGluZy5kcm9wZG93biA+IC50ZXh0IHtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cbi8qIFVzZWQgVG8gQ2hlY2sgUG9zaXRpb24gKi9cbi51aS5kcm9wZG93biAubG9hZGluZy5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7XG59XG4udWkuZHJvcGRvd24gPiAubG9hZGluZy5tZW51IHtcbiAgbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gPiAubWVudSAubG9hZGluZy5tZW51IHtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEtleWJvYXJkIFNlbGVjdFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWxlY3RlZCBJdGVtICovXG4udWkuZHJvcGRvd24uc2VsZWN0ZWQsXG4udWkuZHJvcGRvd24gLm1lbnUgLnNlbGVjdGVkLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTZWFyY2ggRmlsdGVyZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmlsdGVyZWQgSXRlbSAqL1xuLnVpLmRyb3Bkb3duID4gLmZpbHRlcmVkLnRleHQge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuZHJvcGRvd24gLmZpbHRlcmVkLml0ZW0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEVycm9yXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93bi5lcnJvcixcbi51aS5kcm9wZG93bi5lcnJvciA+IC50ZXh0LFxuLnVpLmRyb3Bkb3duLmVycm9yID4gLmRlZmF1bHQudGV4dCB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLnNlbGVjdGlvbi5kcm9wZG93bi5lcnJvciB7XG4gIGJhY2tncm91bmQ6ICNGRkY2RjY7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi51aS5zZWxlY3Rpb24uZHJvcGRvd24uZXJyb3I6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNFMEI0QjQ7XG59XG4udWkuZHJvcGRvd24uZXJyb3IgPiAubWVudSxcbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51IC5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiAjRTBCNEI0O1xufVxuLnVpLmRyb3Bkb3duLmVycm9yID4gLm1lbnUgPiAuaXRlbSB7XG4gIGNvbG9yOiAjOUYzQTM4O1xufVxuLnVpLm11bHRpcGxlLnNlbGVjdGlvbi5lcnJvci5kcm9wZG93biA+IC5sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogI0UwQjRCNDtcbn1cbi8qIEl0ZW0gSG92ZXIgKi9cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGMkYyO1xufVxuLyogSXRlbSBBY3RpdmUgKi9cbi51aS5kcm9wZG93bi5lcnJvciA+IC5tZW51IC5hY3RpdmUuaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRENGQ0Y7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIENsZWFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kcm9wZG93biA+IC5jbGVhci5kcm9wZG93bi5pY29uIHtcbiAgb3BhY2l0eTogMC44O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5kcm9wZG93biA+IC5jbGVhci5kcm9wZG93bi5pY29uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzYWJsZWQgKi9cbi51aS5kaXNhYmxlZC5kcm9wZG93bixcbi51aS5kcm9wZG93biAubWVudSA+IC5kaXNhYmxlZC5pdGVtIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC40NTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRGlyZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRmx5b3V0IERpcmVjdGlvbiAqL1xuLnVpLmRyb3Bkb3duIC5tZW51IHtcbiAgbGVmdDogMHB4O1xufVxuLyogRGVmYXVsdCBTaWRlIChSaWdodCkgKi9cbi51aS5kcm9wZG93biAucmlnaHQubWVudSA+IC5tZW51LFxuLnVpLmRyb3Bkb3duIC5tZW51IC5yaWdodC5tZW51IHtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBMZWZ0d2FyZCBPcGVuaW5nIE1lbnUgKi9cbi51aS5kcm9wZG93biA+IC5sZWZ0Lm1lbnUge1xuICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHJpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cbi51aS5kcm9wZG93biA+IC5sZWZ0Lm1lbnUgLm1lbnUsXG4udWkuZHJvcGRvd24gLm1lbnUgLmxlZnQubWVudSB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDBlbSAtMC41ZW0gMGVtIDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG59XG4udWkuZHJvcGRvd24gLml0ZW0gLmxlZnQuZHJvcGRvd24uaWNvbixcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uIHtcbiAgd2lkdGg6IGF1dG87XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbn1cbi51aS5kcm9wZG93biAuaXRlbSAubGVmdC5kcm9wZG93bi5pY29uLFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xufVxuLnVpLmRyb3Bkb3duIC5pdGVtIC5sZWZ0LmRyb3Bkb3duLmljb24gKyAudGV4dCxcbi51aS5kcm9wZG93biAubGVmdC5tZW51IC5pdGVtIC5kcm9wZG93bi5pY29uICsgLnRleHQge1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgVXB3YXJkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXB3YXJkIE1haW4gTWVudSAqL1xuLnVpLnVwd2FyZC5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi8qIFVwd2FyZCBTdWIgTWVudSAqL1xuLnVpLmRyb3Bkb3duIC51cHdhcmQubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbn1cbi8qIEFjdGl2ZSBVcHdhcmQgKi9cbi51aS5zaW1wbGUudXB3YXJkLmFjdGl2ZS5kcm9wZG93bixcbi51aS5zaW1wbGUudXB3YXJkLmRyb3Bkb3duOmhvdmVyIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW0gIWltcG9ydGFudDtcbn1cbi51aS51cHdhcmQuZHJvcGRvd24uYnV0dG9uOm5vdCgucG9pbnRpbmcpOm5vdCguZmxvYXRpbmcpLmFjdGl2ZSB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLyogU2VsZWN0aW9uICovXG4udWkudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93biAubWVudSB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHggIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMHB4IC0ycHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuLnVpLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd246aG92ZXIge1xuICBib3gtc2hhZG93OiAwcHggMHB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi8qIEFjdGl2ZSBVcHdhcmQgKi9cbi51aS5hY3RpdmUudXB3YXJkLnNlbGVjdGlvbi5kcm9wZG93biB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG59XG4vKiBWaXNpYmxlIFVwd2FyZCAqL1xuLnVpLnVwd2FyZC5zZWxlY3Rpb24uZHJvcGRvd24udmlzaWJsZSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLyogVmlzaWJsZSBIb3ZlciBVcHdhcmQgKi9cbi51aS51cHdhcmQuYWN0aXZlLnNlbGVjdGlvbi5kcm9wZG93bjpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLnVpLnVwd2FyZC5hY3RpdmUuc2VsZWN0aW9uLmRyb3Bkb3duOmhvdmVyIC5tZW51IHtcbiAgYm94LXNoYWRvdzogMHB4IC0ycHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaW1wbGVcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiAgU2VsZWN0aW9uIE1lbnUgKi9cbi51aS5zY3JvbGxpbmcuZHJvcGRvd24gLm1lbnUsXG4udWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG1pbi13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51IC5pdGVtLml0ZW0uaXRlbSxcbi51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUgPiAuaXRlbS5pdGVtLml0ZW0ge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSAuaXRlbTpmaXJzdC1jaGlsZCxcbi51aS5kcm9wZG93biAuc2Nyb2xsaW5nLm1lbnUgLml0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiBub25lO1xufVxuLnVpLmRyb3Bkb3duID4gLmFuaW1hdGluZy5tZW51IC5zY3JvbGxpbmcubWVudSxcbi51aS5kcm9wZG93biA+IC52aXNpYmxlLm1lbnUgLnNjcm9sbGluZy5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBTY3JvbGxiYXIgaW4gSUUgKi9cbkBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtaW4td2lkdGg6IGNhbGMoODMlKTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxMC4yODU3MTQyOXJlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAxNS40Mjg1NzE0M3JlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuc2Nyb2xsaW5nLmRyb3Bkb3duIC5tZW51LFxuICAudWkuZHJvcGRvd24gLnNjcm9sbGluZy5tZW51IHtcbiAgICBtYXgtaGVpZ2h0OiAyMC41NzE0Mjg1N3JlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLnNjcm9sbGluZy5kcm9wZG93biAubWVudSxcbiAgLnVpLmRyb3Bkb3duIC5zY3JvbGxpbmcubWVudSB7XG4gICAgbWF4LWhlaWdodDogMjAuNTcxNDI4NTdyZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2ltcGxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlzcGxheXMgd2l0aG91dCBqYXZhc2NyaXB0ICovXG4udWkuc2ltcGxlLmRyb3Bkb3duIC5tZW51OmJlZm9yZSxcbi51aS5zaW1wbGUuZHJvcGRvd24gLm1lbnU6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnNpbXBsZS5kcm9wZG93biAubWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRvcDogLTk5OTlweCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZTtcbn1cbi51aS5zaW1wbGUuYWN0aXZlLmRyb3Bkb3duLFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkuc2ltcGxlLmFjdGl2ZS5kcm9wZG93biA+IC5tZW51LFxuLnVpLnNpbXBsZS5kcm9wZG93bjpob3ZlciA+IC5tZW51IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRvcDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLnNpbXBsZS5kcm9wZG93biA+IC5tZW51ID4gLml0ZW06YWN0aXZlID4gLm1lbnUsXG4udWkuc2ltcGxlLmRyb3Bkb3duOmhvdmVyID4gLm1lbnUgPiAuaXRlbTpob3ZlciA+IC5tZW51IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRvcDogMCUgIWltcG9ydGFudDtcbiAgbGVmdDogMTAwJSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLnNpbXBsZS5kaXNhYmxlZC5kcm9wZG93bjpob3ZlciAubWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMHB4O1xuICB3aWR0aDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogVmlzaWJsZSAqL1xuLnVpLnNpbXBsZS52aXNpYmxlLmRyb3Bkb3duID4gLm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZsdWlkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsdWlkLmRyb3Bkb3duIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDBlbTtcbn1cbi51aS5mbHVpZC5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEZsb2F0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmZsb2F0aW5nLmRyb3Bkb3duIC5tZW51IHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG4gIGJveC1zaGFkb3c6IDBweCAycHggNHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTIpLCAwcHggMnB4IDEwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAhaW1wb3J0YW50O1xufVxuLnVpLmZsb2F0aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICBtYXJnaW4tdG9wOiAwLjVlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBvaW50aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDAuNzg1NzE0MjlyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiAnJztcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB3aWR0aDogMC41ZW07XG4gIGhlaWdodDogMC41ZW07XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHotaW5kZXg6IDI7XG59XG4udWkucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogLTAuMjVlbTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0wLjI1ZW07XG59XG4vKiBUb3AgTGVmdCBQb2ludGluZyAqL1xuLnVpLnRvcC5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLnRvcC5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICB0b3A6IDEwMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuLnVpLnRvcC5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICB0b3A6IC0wLjI1ZW07XG4gIGxlZnQ6IDFlbTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG4vKiBUb3AgUmlnaHQgUG9pbnRpbmcgKi9cbi51aS50b3AucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMTAwJTtcbiAgYm90dG9tOiBhdXRvO1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbjogMWVtIDBlbSAwZW07XG59XG4udWkudG9wLnBvaW50aW5nLmRyb3Bkb3duID4gLmxlZnQubWVudTphZnRlcixcbi51aS50b3AucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogLTAuMjVlbTtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICByaWdodDogMWVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG4vKiBMZWZ0IFBvaW50aW5nICovXG4udWkubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiAwJTtcbiAgbGVmdDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMWVtO1xufVxuLnVpLmxlZnQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogMWVtO1xuICBsZWZ0OiAtMC4yNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cbi51aS5sZWZ0Om5vdCgudG9wKTpub3QoLmJvdHRvbSkucG9pbnRpbmcuZHJvcGRvd24gPiAubGVmdC5tZW51IHtcbiAgbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICByaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi51aS5sZWZ0Om5vdCgudG9wKTpub3QoLmJvdHRvbSkucG9pbnRpbmcuZHJvcGRvd24gPiAubGVmdC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxZW07XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMC4yNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cbi8qIFJpZ2h0IFBvaW50aW5nICovXG4udWkucmlnaHQucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSB7XG4gIHRvcDogMCU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDBlbSAxZW0gMGVtIDBlbTtcbn1cbi51aS5yaWdodC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxZW07XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAtMC4yNWVtO1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbn1cbi8qIEJvdHRvbSBQb2ludGluZyAqL1xuLnVpLmJvdHRvbS5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDAlO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW0gMGVtIDFlbTtcbn1cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAtMC4yNWVtO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luOiAwZW07XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xufVxuLyogUmV2ZXJzZSBTdWItTWVudSBEaXJlY3Rpb24gKi9cbi51aS5ib3R0b20ucG9pbnRpbmcuZHJvcGRvd24gPiAubWVudSAubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLyogQm90dG9tIExlZnQgKi9cbi51aS5ib3R0b20ubGVmdC5wb2ludGluZy5kcm9wZG93biA+IC5tZW51IHtcbiAgbGVmdDogMCU7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLnVpLmJvdHRvbS5sZWZ0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICBsZWZ0OiAxZW07XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogQm90dG9tIFJpZ2h0ICovXG4udWkuYm90dG9tLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnUge1xuICByaWdodDogMCU7XG4gIGxlZnQ6IGF1dG87XG59XG4udWkuYm90dG9tLnJpZ2h0LnBvaW50aW5nLmRyb3Bkb3duID4gLm1lbnU6YWZ0ZXIge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMWVtO1xufVxuLyogVXB3YXJkIHBvaW50aW5nICovXG4udWkucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duIC5tZW51LFxuLnVpLnRvcC5wb2ludGluZy51cHdhcmQuZHJvcGRvd24gLm1lbnUge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDBlbSAwLjc4NTcxNDI5cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLnBvaW50aW5nLnVwd2FyZC5kcm9wZG93biAubWVudTphZnRlcixcbi51aS50b3AucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duIC5tZW51OmFmdGVyIHtcbiAgdG9wOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAxcHggMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgbWFyZ2luOiAtMC4yNWVtIDBlbSAwZW07XG59XG4vKiBSaWdodCBQb2ludGluZyBVcHdhcmQgKi9cbi51aS5yaWdodC5wb2ludGluZy51cHdhcmQuZHJvcGRvd246bm90KC50b3ApOm5vdCguYm90dG9tKSAubWVudSB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gMWVtIDBlbSAwZW07XG59XG4udWkucmlnaHQucG9pbnRpbmcudXB3YXJkLmRyb3Bkb3duOm5vdCgudG9wKTpub3QoLmJvdHRvbSkgLm1lbnU6YWZ0ZXIge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMGVtIDBlbSAxZW0gMGVtO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLyogTGVmdCBQb2ludGluZyBVcHdhcmQgKi9cbi51aS5sZWZ0LnBvaW50aW5nLnVwd2FyZC5kcm9wZG93bjpub3QoLnRvcCk6bm90KC5ib3R0b20pIC5tZW51IHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIDFlbTtcbn1cbi51aS5sZWZ0LnBvaW50aW5nLnVwd2FyZC5kcm9wZG93bjpub3QoLnRvcCk6bm90KC5ib3R0b20pIC5tZW51OmFmdGVyIHtcbiAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDBlbSAwZW0gMWVtIDBlbTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBEcm9wZG93biBDYXJldHMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0Ryb3Bkb3duJztcbiAgc3JjOiB1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1JnQUJBQUFBQUFWZ0FBOEFBQUFBQ0ZBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJXQUFBQUJ3QUFBQWNoR2dhcTBkRVJVWUFBQUYwQUFBQUhBQUFBQjRBSndBUFQxTXZNZ0FBQVpBQUFBQkRBQUFBVm5XNFRKZGpiV0Z3QUFBQjFBQUFBRXNBQUFGUzhDY2FxbU4yZENBQUFBSWdBQUFBQkFBQUFBUUFFUUZFWjJGemNBQUFBaVFBQUFBSUFBQUFDUC8vQUFObmJIbG1BQUFDTEFBQUFRb0FBQUdrclJIUDlXaGxZV1FBQUFNNEFBQUFNQUFBQURZUEs4WXlhR2hsWVFBQUEyZ0FBQUFkQUFBQUpBTkNBYjFvYlhSNEFBQURpQUFBQUNJQUFBQWlDQmtBT0d4dlkyRUFBQU9zQUFBQUZBQUFBQlFCbkFJeWJXRjRjQUFBQThBQUFBQWZBQUFBSUFFVkFGNXVZVzFsQUFBRDRBQUFBVEFBQUFLTUZHbGo1SEJ2YzNRQUFBVVFBQUFBUmdBQUFISm9lZGpxZDJWaVpnQUFCVmdBQUFBR0FBQUFCck83VzVVQUFBQUJBQUFBQU5YdWxQVUFBQUFBMXI0aGdBQUFBQURYdTJRMWVOcGpZR1JnWU9BQllqRWdabUpnQkVJT0lHWUI4eGdBQS9ZQU4zamFZMkJrdEdPY3dNREt3TUk0alRHTmdZSEJIVXAvWlpCa2FHRmdZR0pnWldiQUNnTFNYRk1ZSEZUL2ZMakZlT0QvQVFZOXhqTU1ia0JoUnBBY0FONDhEUVlBZU5wallHQmdab0JnR1FaR0JoRHdBZklZd1h3V0JnTWd6UUdFVEF3TXFuOCs4SDY0OWY4L2xIWDkvLzliN1B6ZitmV2d1c0NBa1kwQnptVUU2Z0hwUXdHTURNTWVBQUNieGc3U0FBQVJBVVFBQUFBQi8vOEFBbmphZFpCUFNzTkFHTVhmUyt5TXFZZ09ocFN1U2xLYWRtVWhpVkVoRU1RekZGMjJtMTdCYmJ2ekNoNUJYQ1VuNkVHOGdqZVE0RGVwd1lvNGkrL2ZmTDk1ajRFREErQ0ZDN2pRdUt5SWVWSHJJM3drbGVxOUY3WHJTSW5LdGVPZUhkZGE4Yk9vYWVlcFNjMDBOV1B6L0xSZWM5RzhHYWJ5R3RFZEY3aDE5ejAzM0dBTVRLN3piTTQyeE5FWnB6WW9mMFJ0UTVDVUhBUUo3M090Vnl1dGMrM2I3T3UvL2I4WE5sc1B4M2pnalVpZkFCZGhFb2hLSkpMNWlNNXAzOXVxYzdYMStzUlFTcW1HclVWaGxzSjRscG1FVVZ3eVQ4U1VZdGcwUDlEeU56UEFERHMrdGpyR1Y2S1JDUmZzdWkzZUhjTDQvcDhaWHZmTWxjbkVVK0NMdjdoRHlrT1ArQUtUUFR4YkFBQjQybU5nWkdCZ0FHS3VmNUtQNHZsdHZqTElNekdBd0xWOWlnMGcrdnJ1RkZNUXpkakFDT0p6TUlDbEFSaDBDVEo0Mm1OZ1pHQmdQUEQvQUpEOHdnQUVqQTBNakF5b2dBTUFiT1FFQVFBQUFBQzdBQkVBQUFBQUFLb0FBQUgwQUFBQmdBQUFBVUFBQ0FGQUFBZ0F3QUFYQUFBQUFBQUFBQ29BS2dBcUFESUFiQUNHQUtBQXVnRFNlTnBqWUdSZ1lPQmtVR0ZnWWdBQkVNa0ZoQXdNL3huMFFBSUFEZFVCZEFCNDJxV1F2VW9EUVJTRnYzR2phSVNVUWF5bVNtR3hKb0dBc1JDMGlQWUxzVTUwWTZJeHJ2bFJ0UENKSktVUElCYitQSUh2NEVONGRqS3VLQXFDREhmbXUrZmVPZHdab01DVUFKTmJBbFlVTXphVWxNMTRqanhibmdPcTdIbk9pYTg5ejFQazF2TUNhOXg3enRQa3pmTXlKYlBqK1pHaTZYcCtvbXh1UEQremFEN21lYUZnN21iOEdyQnFIbWh3eG9BeGxtMHVpUmtwUDlYNW0yNnBLUm9NeFRHUjFENDlEdi9ZYi85MW82bDhxTDZldTVuMmhaUXpuNjh1dFI5bTNGVTJjQjR0OWNkU0xHMnV0SSs0NEVoL1A5YnFLTytvSi9XeG1Yc3NqNzdZa3JqYXNaUUQ2U0ZkZHl0aGszV3R6cmYrVUYycDA3NlVkbGExVk56c0VSUDNra2pWUktlbDdtcDF1ZFhZY0h0WlNsVjdSZm1KZTFHaUZXdmVsdWFlS0Q1L011SmNTazhUcG0vdnZ3UElibUpsZU5wallHS0FBRllHN0lDVGdZR1JpWkdaa1lXUmxaR05rWjJSZzVHVExUMm5zaURERUVJWnNaZm1aUnFadWptRGFEY0RBeGNJN1dJT3BTMmd0Q1dVZGdRQVprY1NtUUFBQUFGYmxiTzZBQUE9KSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICBmb250LWZhbWlseTogJ0Ryb3Bkb3duJztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMS4yM2VtO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVpLmRyb3Bkb3duID4gLmRyb3Bkb3duLmljb24ge1xuICB3aWR0aDogYXV0bztcbn1cbi51aS5kcm9wZG93biA+IC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwZDcnO1xufVxuLyogU3ViIE1lbnUgKi9cbi51aS5kcm9wZG93biAubWVudSAuaXRlbSAuZHJvcGRvd24uaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMGRhJyAvKnJ0bDonXFxmMGQ5JyovO1xufVxuLnVpLmRyb3Bkb3duIC5pdGVtIC5sZWZ0LmRyb3Bkb3duLmljb246YmVmb3JlLFxuLnVpLmRyb3Bkb3duIC5sZWZ0Lm1lbnUgLml0ZW0gLmRyb3Bkb3duLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZDlcIiAvKnJ0bDpcIlxcZjBkYVwiKi87XG59XG4vKiBWZXJ0aWNhbCBNZW51IERyb3Bkb3duICovXG4udWkudmVydGljYWwubWVudSAuZHJvcGRvd24uaXRlbSA+IC5kcm9wZG93bi5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRhXCIgLypydGw6XCJcXGYwZDlcIiovO1xufVxuLnVpLmRyb3Bkb3duID4gLmNsZWFyLmljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGRcIjtcbn1cbi8qIEljb25zIGZvciBSZWZlcmVuY2UgKFN1YnNldHRlZCBpbiAyLjQuMClcbiAgLmRyb3Bkb3duLmRvd246YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDdcIjsgfVxuICAuZHJvcGRvd24udXA6YmVmb3JlIHsgY29udGVudDogXCJcXGYwZDhcIjsgfVxuICAuZHJvcGRvd24ubGVmdDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkOVwiOyB9XG4gIC5kcm9wZG93bi5yaWdodDpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjBkYVwiOyB9XG4gIC5kcm9wZG93bi5jbG9zZTpiZWZvcmUgeyBjb250ZW50OiBcIlxcZjAwZFwiOyB9XG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBWaWRlb1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBWaWRlb1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpbXBsZSAqL1xuLyogUGxhY2Vob2xkZXIgKi9cbi8qIFBsYWNlaG9sZGVyIE92ZXJsYXllZCBCYWNrZ3JvdW5kICovXG4vKiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEFzcGVjdCBSYXRpb3MgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFZpZGVvXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2ltcGxlICovXG4vKiBQbGFjZWhvbGRlciAqL1xuLyogUGxhY2Vob2xkZXIgT3ZlcmxheWVkIEJhY2tncm91bmQgKi9cbi8qIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSG92ZXIgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXNwZWN0IFJhdGlvcyAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmVtYmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjRENERERFO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLVxuICBFbWJlZGRlZCBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkIGlmcmFtZSxcbi51aS5lbWJlZCBlbWJlZCxcbi51aS5lbWJlZCBvYmplY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDBlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEVtYmVkXG4tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkID4gLmVtYmVkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIFBsYWNlaG9sZGVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmVtYmVkID4gLnBsYWNlaG9sZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgNDUlLCByZ2JhKDAsIDAsIDAsIDAuMykpO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgSWNvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5lbWJlZCA+IC5pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG59XG4udWkuZW1iZWQgPiAuaWNvbjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDM7XG4gIGNvbnRlbnQ6ICcnO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgNDUlLCByZ2JhKDAsIDAsIDAsIDAuMykpO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlO1xufVxuLnVpLmVtYmVkID4gLmljb246YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiA0O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGZvbnQtc2l6ZTogNnJlbTtcbiAgdGV4dC1zaGFkb3c6IDBweCAycHggMTBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMik7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLCBjb2xvciAwLjVzIGVhc2U7XG4gIHotaW5kZXg6IDEwO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZW1iZWQgLmljb246aG92ZXI6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQodHJhbnNwYXJlbnQgNDUlLCByZ2JhKDAsIDAsIDAsIDAuMykpO1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLmVtYmVkIC5pY29uOmhvdmVyOmJlZm9yZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aXZlLmVtYmVkID4gLmljb24sXG4udWkuYWN0aXZlLmVtYmVkID4gLnBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51aS5hY3RpdmUuZW1iZWQgPiAuZW1iZWQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFZpZGVvIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zcXVhcmUuZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbn1cbi51aVtjbGFzcyo9XCI0OjNcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLnVpW2NsYXNzKj1cIjE2OjlcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuLnVpW2NsYXNzKj1cIjIxOjlcIl0uZW1iZWQge1xuICBwYWRkaW5nLWJvdHRvbTogNDIuODU3MTQyODYlO1xufVxuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gTW9kYWxcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTW9kYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBDbG9zZSBJY29uICovXG4vKiBIZWFkZXIgKi9cbi8qIENvbnRlbnQgKi9cbi8qIEltYWdlIC8gRGVzY3JpcHRpb24gKi9cbi8qIE1vZGFsIEFjdGlvbnMgKi9cbi8qIElubmVyIENsb3NlIFBvc2l0aW9uIChUYWJsZXQvTW9iaWxlKSAqL1xuLyogTW9iaWxlIFBvc2l0aW9ucyAqL1xuLyogUmVzcG9uc2l2ZSBXaWR0aHMgKi9cbi8qIENvdXBsaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQmFzaWMgKi9cbi8qIFRvcCBBbGlnbmVkICovXG4vKiBTY3JvbGxpbmcgTWFyZ2luICovXG4vKiBTY3JvbGxpbmcgQ29udGVudCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTaXplIFdpZHRocyAqL1xuLyogRGVyaXZlZCBSZXNwb25zaXZlIFNpemVzICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNb2RhbFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIENsb3NlIEljb24gKi9cbi8qIEhlYWRlciAqL1xuLyogQ29udGVudCAqL1xuLyogSW1hZ2UgLyBEZXNjcmlwdGlvbiAqL1xuLyogTW9kYWwgQWN0aW9ucyAqL1xuLyogSW5uZXIgQ2xvc2UgUG9zaXRpb24gKFRhYmxldC9Nb2JpbGUpICovXG4vKiBNb2JpbGUgUG9zaXRpb25zICovXG4vKiBSZXNwb25zaXZlIFdpZHRocyAqL1xuLyogQ291cGxpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXNpYyAqL1xuLyogVG9wIEFsaWduZWQgKi9cbi8qIFNjcm9sbGluZyBNYXJnaW4gKi9cbi8qIFNjcm9sbGluZyBDb250ZW50ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpemUgV2lkdGhzICovXG4vKiBEZXJpdmVkIFJlc3BvbnNpdmUgU2l6ZXMgKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTW9kYWxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubW9kYWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDEwMDE7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMXB4IDNweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMXB4IDNweCAxNXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAyNSU7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgd2lsbC1jaGFuZ2U6IHRvcCwgbGVmdCwgbWFyZ2luLCB0cmFuc2Zvcm0sIG9wYWNpdHk7XG59XG4udWkubW9kYWwgPiA6Zmlyc3QtY2hpbGQ6bm90KC5pY29uKSxcbi51aS5tb2RhbCA+IC5pY29uOmZpcnN0LWNoaWxkICsgKiB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnVpLm1vZGFsID4gOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDbG9zZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5tb2RhbCA+IC5jbG9zZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0yLjVyZW07XG4gIHJpZ2h0OiAtMi41cmVtO1xuICB6LWluZGV4OiAxO1xuICBvcGFjaXR5OiAwLjg7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgd2lkdGg6IDIuMjVyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgcGFkZGluZzogMC42MjVyZW0gMHJlbSAwcmVtIDByZW07XG59XG4udWkubW9kYWwgPiAuY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBIZWFkZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAnTGF0bycsICdIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbjogMGVtO1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLm1vZGFsID4gLmhlYWRlcjpub3QoLnVpKSB7XG4gIGZvbnQtc2l6ZTogMS40Mjg1NzE0M3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIENvbnRlbnRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi51aS5tb2RhbCA+IC5pbWFnZS5jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbi8qIEltYWdlICovXG4udWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAwIDEgYXV0bztcbiAgd2lkdGg6ICcnO1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwidG9wIGFsaWduZWRcIl0ge1xuICBhbGlnbi1zZWxmOiB0b3A7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwibWlkZGxlIGFsaWduZWRcIl0ge1xuICBhbGlnbi1zZWxmOiBtaWRkbGU7XG59XG4udWkubW9kYWwgPiBbY2xhc3MqPVwic3RyZXRjaGVkXCJdIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cbi8qIERlc2NyaXB0aW9uICovXG4udWkubW9kYWwgPiAuY29udGVudCA+IC5kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDAgYXV0bztcbiAgbWluLXdpZHRoOiAwcHg7XG4gIGFsaWduLXNlbGY6IHRvcDtcbn1cbi51aS5tb2RhbCA+IC5jb250ZW50ID4gLmljb24gKyAuZGVzY3JpcHRpb24sXG4udWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSArIC5kZXNjcmlwdGlvbiB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBtaW4td2lkdGg6ICcnO1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAyZW07XG59XG4vKnJ0bDppZ25vcmUqL1xuLnVpLm1vZGFsID4gLmNvbnRlbnQgPiAuaW1hZ2UgPiBpLmljb24ge1xuICBtYXJnaW46IDBlbTtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXNpemU6IDhyZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEFjdGlvbnNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwgPiAuYWN0aW9ucyB7XG4gIGJhY2tncm91bmQ6ICNGOUZBRkI7XG4gIHBhZGRpbmc6IDFyZW0gMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnVpLm1vZGFsIC5hY3Rpb25zID4gLmJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1ZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBSZXNwb25zaXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNb2RhbCBXaWR0aCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogODglO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5tb2RhbCB7XG4gICAgd2lkdGg6IDg1MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkubW9kYWwge1xuICAgIHdpZHRoOiA5MDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgLnVpLm1vZGFsIHtcbiAgICB3aWR0aDogOTUwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIFRhYmxldCBhbmQgTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5tb2RhbCA+IC5oZWFkZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW07XG4gIH1cbiAgLnVpLm1vZGFsID4gLmNsb3NlIHtcbiAgICB0b3A6IDEuMDUzNXJlbTtcbiAgICByaWdodDogMXJlbTtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgfVxufVxuLyogTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5tb2RhbCA+IC5oZWFkZXIge1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuMjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgPiAuY29udGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCA+IC5jbG9zZSB7XG4gICAgdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgICByaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLypydGw6aWdub3JlKi9cbiAgLnVpLm1vZGFsIC5pbWFnZS5jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC51aS5tb2RhbCAuY29udGVudCA+IC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMGVtIGF1dG8gIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMHJlbSAwcmVtIDFyZW0gIWltcG9ydGFudDtcbiAgfVxuICAudWkubW9kYWwgPiAuY29udGVudCA+IC5pbWFnZSA+IGkuaWNvbiB7XG4gICAgZm9udC1zaXplOiA1cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAvKnJ0bDppZ25vcmUqL1xuICAudWkubW9kYWwgLmNvbnRlbnQgPiAuZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxcmVtIDByZW0gIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC8qIExldCBCdXR0b25zIFN0YWNrICovXG4gIC51aS5tb2RhbCA+IC5hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAxcmVtIDFyZW0gMHJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC51aS5tb2RhbCAuYWN0aW9ucyA+IC5idXR0b25zLFxuICAudWkubW9kYWwgLmFjdGlvbnMgPiAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuaW52ZXJ0ZWQuZGltbWVyID4gLnVpLm1vZGFsIHtcbiAgYm94LXNoYWRvdzogMXB4IDNweCAxMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmJhc2ljLm1vZGFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnVpLmJhc2ljLm1vZGFsID4gLmhlYWRlcixcbi51aS5iYXNpYy5tb2RhbCA+IC5jb250ZW50LFxuLnVpLmJhc2ljLm1vZGFsID4gLmFjdGlvbnMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi51aS5iYXNpYy5tb2RhbCA+IC5oZWFkZXIge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5iYXNpYy5tb2RhbCA+IC5jbG9zZSB7XG4gIHRvcDogMXJlbTtcbiAgcmlnaHQ6IDEuNXJlbTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAuYmFzaWMubW9kYWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbnZlcnRlZC5kaW1tZXIgPiAudWkuYmFzaWMubW9kYWwgPiAuaGVhZGVyIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4vKiBSZXNvcnQgdG8gbWFyZ2luIHBvc2l0aW9uaW5nIGlmIGxlZ2FjeSAqL1xuLnVpLmxlZ2FjeS5tb2RhbCxcbi51aS5sZWdhY3kucGFnZS5kaW1tZXIgPiAudWkubW9kYWwge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xufVxuLnVpLmxlZ2FjeS5wYWdlLmRpbW1lciA+IC51aS5zY3JvbGxpbmcubW9kYWwsXG4udWkucGFnZS5kaW1tZXIgPiAudWkuc2Nyb2xsaW5nLmxlZ2FjeS5tb2RhbCxcbi51aS50b3AuYWxpZ25lZC5sZWdhY3kucGFnZS5kaW1tZXIgPiAudWkubW9kYWwsXG4udWkudG9wLmFsaWduZWQuZGltbWVyID4gLnVpLmxlZ2FjeS5tb2RhbCB7XG4gIHRvcDogYXV0bztcbn1cbi8qIFRhYmxldCBhbmQgTW9iaWxlICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gIC51aS5iYXNpYy5tb2RhbCA+IC5jbG9zZSB7XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmxvYWRpbmcubW9kYWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcbn1cbi51aS5hY3RpdmUubW9kYWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBUb3AgQWxpZ25lZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCBBbGlnbmVkIE1vZGFsICovXG4ubW9kYWxzLmRpbW1lcltjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSAubW9kYWwge1xuICBtYXJnaW46IDV2aCBhdXRvO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubW9kYWxzLmRpbW1lcltjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSAubW9kYWwge1xuICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICB9XG59XG4vKiBMZWdhY3kgVG9wIEFsaWduZWQgKi9cbi5sZWdhY3kubW9kYWxzLmRpbW1lcltjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSB7XG4gIHBhZGRpbmctdG9wOiA1dmg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5sZWdhY3kubW9kYWxzLmRpbW1lcltjbGFzcyo9XCJ0b3AgYWxpZ25lZFwiXSB7XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGxpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBTY3JvbGxpbmcgRGltbWVyICovXG4uc2Nyb2xsaW5nLmRpbW1hYmxlLmRpbW1lZCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uc2Nyb2xsaW5nLmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5zY3JvbGxpbmcuZGltbWFibGUuZGltbWVkID4gLmRpbW1lciB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4uc2Nyb2xsaW5nLmRpbW1hYmxlID4gLmRpbW1lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbn1cbi5tb2RhbHMuZGltbWVyIC51aS5zY3JvbGxpbmcubW9kYWwge1xuICBtYXJnaW46IDFyZW0gYXV0bztcbn1cbi8qIFVuZGV0YWNoZWQgU2Nyb2xsaW5nICovXG4uc2Nyb2xsaW5nLnVuZGV0YWNoZWQuZGltbWFibGUuZGltbWVkIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cbi5zY3JvbGxpbmcudW5kZXRhY2hlZC5kaW1tYWJsZS5kaW1tZWQgPiAuZGltbWVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zY3JvbGxpbmcudW5kZXRhY2hlZC5kaW1tYWJsZSAudWkuc2Nyb2xsaW5nLm1vZGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbn1cbi8qIFNjcm9sbGluZyBDb250ZW50ICovXG4udWkubW9kYWwgLnNjcm9sbGluZy5jb250ZW50IHtcbiAgbWF4LWhlaWdodDogY2FsYyg3MHZoKTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGdWxsIFNjcmVlblxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mdWxsc2NyZWVuLm1vZGFsIHtcbiAgd2lkdGg6IDk1JSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDFlbSBhdXRvO1xufVxuLnVpLmZ1bGxzY3JlZW4ubW9kYWwgPiAuaGVhZGVyIHtcbiAgcGFkZGluZy1yaWdodDogMi4yNXJlbTtcbn1cbi51aS5mdWxsc2NyZWVuLm1vZGFsID4gLmNsb3NlIHtcbiAgdG9wOiAxLjA1MzVyZW07XG4gIHJpZ2h0OiAxcmVtO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubW9kYWwge1xuICBmb250LXNpemU6IDFyZW07XG59XG4vKiBNaW5pICovXG4udWkubWluaS5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyogTWluaSBNb2RhbCBXaWR0aCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkubWluaS5tb2RhbCB7XG4gICAgd2lkdGg6IDM1LjIlO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzQwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzYwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5taW5pLm1vZGFsIHtcbiAgICB3aWR0aDogMzgwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIG1pbmkgKi9cbi51aS5zbWFsbC5tb2RhbCA+IC5oZWFkZXI6bm90KC51aSkge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyogVGlueSBNb2RhbCBXaWR0aCAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkudGlueS5tb2RhbCB7XG4gICAgd2lkdGg6IDUyLjglO1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTEwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTQwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS50aW55Lm1vZGFsIHtcbiAgICB3aWR0aDogNTcwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbi8qIFNtYWxsICovXG4udWkuc21hbGwubW9kYWwgPiAuaGVhZGVyOm5vdCgudWkpIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbi8qIFNtYWxsIE1vZGFsIFdpZHRoICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA3MC40JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkge1xuICAudWkuc21hbGwubW9kYWwge1xuICAgIHdpZHRoOiA2ODBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnVpLnNtYWxsLm1vZGFsIHtcbiAgICB3aWR0aDogNzIwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5zbWFsbC5tb2RhbCB7XG4gICAgd2lkdGg6IDc2MHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG4vKiBMYXJnZSBNb2RhbCBXaWR0aCAqL1xuLnVpLmxhcmdlLm1vZGFsID4gLmhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDk1JTtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiA4OCU7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnVpLmxhcmdlLm1vZGFsIHtcbiAgICB3aWR0aDogMTAyMHB4O1xuICAgIG1hcmdpbjogMGVtIDBlbSAwZW0gMGVtO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudWkubGFyZ2UubW9kYWwge1xuICAgIHdpZHRoOiAxMDgwcHg7XG4gICAgbWFyZ2luOiAwZW0gMGVtIDBlbSAwZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTkyMHB4KSB7XG4gIC51aS5sYXJnZS5tb2RhbCB7XG4gICAgd2lkdGg6IDExNDBweDtcbiAgICBtYXJnaW46IDBlbSAwZW0gMGVtIDBlbTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIE5hZ1xuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBOYWdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBDb2xsZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIEVsZW1lbnRzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGl0bGUgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEhvdmVyICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9wIC8gQm90dG9tICovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgUGx1cmFsXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTmFnXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgQ29sbGVjdGlvblxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBFbGVtZW50c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRpdGxlICovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBIb3ZlciAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvcCAvIEJvdHRvbSAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBsdXJhbFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE5hZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5uYWcge1xuICBkaXNwbGF5OiBub25lO1xuICBvcGFjaXR5OiAwLjk1O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMGVtO1xuICBsZWZ0OiAwcHg7XG4gIHotaW5kZXg6IDk5OTtcbiAgbWluLWhlaWdodDogMGVtO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJhY2tncm91bmQ6ICM1NTU1NTU7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDBlbSAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW07XG4gIHRyYW5zaXRpb246IDAuMnMgYmFja2dyb3VuZCBlYXNlO1xufVxuYS51aS5uYWcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkubmFnID4gLnRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBlbSAwLjVlbTtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4udWkubmFnID4gLmNsb3NlLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDFlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbjogLTAuNWVtIDBlbSAwZW07XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSG92ZXIgKi9cbi51aS5uYWc6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjNTU1NTU1O1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLm5hZyAuY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3RhdGljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm92ZXJsYXkubmFnIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRml4ZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZml4ZWQubmFnIHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBCb3R0b21cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYm90dG9tLm5hZ3MsXG4udWkuYm90dG9tLm5hZyB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogMGVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaGl0ZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5uYWdzIC5uYWcsXG4udWkuaW52ZXJ0ZWQubmFnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjRGNTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG59XG4udWkuaW52ZXJ0ZWQubmFncyAubmFnIC5jbG9zZSxcbi51aS5pbnZlcnRlZC5uYWdzIC5uYWcgLnRpdGxlLFxuLnVpLmludmVydGVkLm5hZyAuY2xvc2UsXG4udWkuaW52ZXJ0ZWQubmFnIC50aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBHcm91cHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubmFncyAubmFnIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtICFpbXBvcnRhbnQ7XG59XG4udWkubmFncyAubmFnOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS5ib3R0b20ubmFncyAubmFnOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBVc2VyIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFBvcHVwXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFBvcHVwXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRWxlbWVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgUGFydHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBsYWNlbWVudCAqL1xuLyogSGVhZGVyICovXG4vKiBDb250ZW50IEJvcmRlciAqL1xuLyogQXJyb3cgKi9cbi8qIEFycm93IGNvbG9yIGJ5IHBvc2l0aW9uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVG9vbHRpcCAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEFycm93ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogR3JpZCBJbnNpZGUgUG9wdXAgKi9cbi8qIChwYWRkaW5nICogQG1lZGl1bSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogV2lkZSAqL1xuLyogSW52ZXJ0ZWQgKi9cbi8qIEFycm93IGNvbG9yIGJ5IHBvc2l0aW9uICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBQb3B1cFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQbGFjZW1lbnQgKi9cbi8qIEhlYWRlciAqL1xuLyogQ29udGVudCBCb3JkZXIgKi9cbi8qIEFycm93ICovXG4vKiBBcnJvdyBjb2xvciBieSBwb3NpdGlvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRvb2x0aXAgKi9cbi8qIEludmVydGVkICovXG4vKiBBcnJvdyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ291cGxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEdyaWQgSW5zaWRlIFBvcHVwICovXG4vKiAocGFkZGluZyAqIEBtZWRpdW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFdpZGUgKi9cbi8qIEludmVydGVkICovXG4vKiBBcnJvdyBjb2xvciBieSBwb3NpdGlvbiAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBVc2VyIFZhcmlhYmxlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQb3B1cFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5wb3B1cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIC8qIEZpeGVzIGNvbnRlbnQgYmVpbmcgc3F1aXNoZWQgd2hlbiBpbmxpbmUgKG1veiBvbmx5KSAqL1xuICBtaW4td2lkdGg6IG1pbi1jb250ZW50O1xuICB6LWluZGV4OiAxOTAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDRENEQ1O1xuICBsaW5lLWhlaWdodDogMS40Mjg1ZW07XG4gIG1heC13aWR0aDogMjUwcHg7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDAuODMzZW0gMWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLnVpLnBvcHVwID4gLmhlYWRlciB7XG4gIHBhZGRpbmc6IDBlbTtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVpLnBvcHVwID4gLmhlYWRlciArIC5jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDAuNWVtO1xufVxuLnVpLnBvcHVwOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAwLjcxNDI4NTcxZW07XG4gIGhlaWdodDogMC43MTQyODU3MWVtO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHotaW5kZXg6IDI7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgIFRvb2x0aXBcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDb250ZW50ICovXG5bZGF0YS10b29sdGlwXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qIEFycm93ICovXG5bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgZm9udC1zaXplOiAxcmVtO1xuICB3aWR0aDogMC43MTQyODU3MWVtO1xuICBoZWlnaHQ6IDAuNzE0Mjg1NzFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB6LWluZGV4OiAyO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi8qIFBvcHVwICovXG5bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NWVtO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDAuODMzZW0gMWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjEyKSwgMHB4IDJweCAxMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xuICB6LWluZGV4OiAxO1xufVxuLyogRGVmYXVsdCBQb3NpdGlvbiAoVG9wIENlbnRlcikgKi9cbltkYXRhLXRvb2x0aXBdOm5vdChbZGF0YS1wb3NpdGlvbl0pOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogNTAlO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBtYXJnaW4tbGVmdDogLTAuMDcxNDI4NTdyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMTQyODU3MTRyZW07XG59XG5bZGF0YS10b29sdGlwXTpub3QoW2RhdGEtcG9zaXRpb25dKTphZnRlciB7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuLyogQW5pbWF0aW9uICovXG5bZGF0YS10b29sdGlwXTpiZWZvcmUsXG5bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMCkgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZTtcbn1cbltkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZTtcbn1cbltkYXRhLXRvb2x0aXBdOmhvdmVyOmJlZm9yZSxcbltkYXRhLXRvb2x0aXBdOmhvdmVyOmFmdGVyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5bZGF0YS10b29sdGlwXTpob3ZlcjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoMSkgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cbi8qIEFuaW1hdGlvbiBQb3NpdGlvbiAqL1xuW2RhdGEtdG9vbHRpcF06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIGNlbnRlclwiXTphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDApICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdOmhvdmVyOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHNjYWxlKDEpICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDApICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdOmhvdmVyOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEpICFpbXBvcnRhbnQ7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIGxlZnRcIl06YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwidG9wIHJpZ2h0XCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSBsZWZ0XCJdOmFmdGVyLFxuW2RhdGEtdG9vbHRpcF1bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSByaWdodFwiXTphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCkgIWltcG9ydGFudDtcbn1cbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXTpob3ZlcjphZnRlcixcbltkYXRhLXRvb2x0aXBdW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl06aG92ZXI6YWZ0ZXIsXG5bZGF0YS10b29sdGlwXVtkYXRhLXBvc2l0aW9uPVwiYm90dG9tIHJpZ2h0XCJdOmhvdmVyOmFmdGVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKSAhaW1wb3J0YW50O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIEludmVydGVkXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXJyb3cgKi9cbltkYXRhLXRvb2x0aXBdW2RhdGEtaW52ZXJ0ZWRdOmJlZm9yZSB7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEFycm93IFBvc2l0aW9uICovXG5bZGF0YS10b29sdGlwXVtkYXRhLWludmVydGVkXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xufVxuLyogUG9wdXAgICovXG5bZGF0YS10b29sdGlwXVtkYXRhLWludmVydGVkXTphZnRlciB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5bZGF0YS10b29sdGlwXVtkYXRhLWludmVydGVkXTphZnRlciAuaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogbm9uZTtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUG9zaXRpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUb3AgQ2VudGVyICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAxMDAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbi1sZWZ0OiAtMC4wNzE0Mjg1N3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xNDI4NTcxNHJlbTtcbn1cbi8qIFRvcCBMZWZ0ICovXG5bZGF0YS1wb3NpdGlvbj1cInRvcCBsZWZ0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRvcDogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogMWVtO1xuICBtYXJnaW4tbGVmdDogLTAuMDcxNDI4NTdyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMTQyODU3MTRyZW07XG59XG4vKiBUb3AgUmlnaHQgKi9cbltkYXRhLXBvc2l0aW9uPVwidG9wIHJpZ2h0XCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuW2RhdGEtcG9zaXRpb249XCJ0b3AgcmlnaHRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogMTAwJTtcbiAgcmlnaHQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjA3MTQyODU3cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjE0Mjg1NzE0cmVtO1xufVxuLyogQm90dG9tIENlbnRlciAqL1xuW2RhdGEtcG9zaXRpb249XCJib3R0b20gY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YWZ0ZXIge1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IGF1dG87XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTAuMDcxNDI4NTdyZW07XG4gIG1hcmdpbi10b3A6IDAuMTQyODU3MTRyZW07XG59XG4vKiBCb3R0b20gTGVmdCAqL1xuW2RhdGEtcG9zaXRpb249XCJib3R0b20gbGVmdFwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgbGVmdDogMDtcbiAgdG9wOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cbltkYXRhLXBvc2l0aW9uPVwiYm90dG9tIGxlZnRcIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjA3MTQyODU3cmVtO1xuICBtYXJnaW4tdG9wOiAwLjE0Mjg1NzE0cmVtO1xufVxuLyogQm90dG9tIFJpZ2h0ICovXG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSByaWdodFwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5bZGF0YS1wb3NpdGlvbj1cImJvdHRvbSByaWdodFwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMWVtO1xuICBtYXJnaW4tbGVmdDogLTAuMTQyODU3MTRyZW07XG4gIG1hcmdpbi10b3A6IDAuMDcxNDI4NTdyZW07XG59XG4vKiBMZWZ0IENlbnRlciAqL1xuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmFmdGVyIHtcbiAgcmlnaHQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgcmlnaHQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMC4xNDI4NTcxNHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC4wNzE0Mjg1N3JlbTtcbn1cbi8qIFJpZ2h0IENlbnRlciAqL1xuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIGxlZnQ6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgbGVmdDogMTAwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6IC0wLjA3MTQyODU3cmVtO1xuICBtYXJnaW4tbGVmdDogMC4xNDI4NTcxNHJlbTtcbn1cbi8qIEFycm93ICovXG5bZGF0YS1wb3NpdGlvbn49XCJib3R0b21cIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJveC1zaGFkb3c6IDFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm94LXNoYWRvdzogLTFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtcG9zaXRpb25+PVwidG9wXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi8qIEludmVydGVkIEFycm93IENvbG9yICovXG5bZGF0YS1pbnZlcnRlZF1bZGF0YS1wb3NpdGlvbn49XCJib3R0b21cIl1bZGF0YS10b29sdGlwXTpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb249XCJsZWZ0IGNlbnRlclwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG4gIGJveC1zaGFkb3c6IDFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbltkYXRhLWludmVydGVkXVtkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbiAgYm94LXNoYWRvdzogLTFweCAxcHggMHB4IDBweCAjYmFiYWJjO1xufVxuW2RhdGEtaW52ZXJ0ZWRdW2RhdGEtcG9zaXRpb25+PVwidG9wXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogIzFCMUMxRDtcbn1cbltkYXRhLXBvc2l0aW9ufj1cImJvdHRvbVwiXVtkYXRhLXRvb2x0aXBdOmJlZm9yZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG5bZGF0YS1wb3NpdGlvbn49XCJib3R0b21cIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7XG59XG5bZGF0YS1wb3NpdGlvbj1cImxlZnQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbltkYXRhLXBvc2l0aW9uPVwibGVmdCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbn1cbltkYXRhLXBvc2l0aW9uPVwicmlnaHQgY2VudGVyXCJdW2RhdGEtdG9vbHRpcF06YmVmb3JlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xufVxuW2RhdGEtcG9zaXRpb249XCJyaWdodCBjZW50ZXJcIl1bZGF0YS10b29sdGlwXTphZnRlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTcGFjaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnBvcHVwIHtcbiAgbWFyZ2luOiAwZW07XG59XG4vKiBFeHRlbmRpbmcgZnJvbSBUb3AgKi9cbi51aS50b3AucG9wdXAge1xuICBtYXJnaW46IDBlbSAwZW0gMC43MTQyODU3MWVtO1xufVxuLnVpLnRvcC5sZWZ0LnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG59XG4udWkudG9wLmNlbnRlci5wb3B1cCB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG4udWkudG9wLnJpZ2h0LnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xufVxuLyogRXh0ZW5kaW5nIGZyb20gVmVydGljYWwgQ2VudGVyICovXG4udWkubGVmdC5jZW50ZXIucG9wdXAge1xuICBtYXJnaW46IDBlbSAwLjcxNDI4NTcxZW0gMGVtIDBlbTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgNTAlO1xufVxuLnVpLnJpZ2h0LmNlbnRlci5wb3B1cCB7XG4gIG1hcmdpbjogMGVtIDBlbSAwZW0gMC43MTQyODU3MWVtO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IDUwJTtcbn1cbi8qIEV4dGVuZGluZyBmcm9tIEJvdHRvbSAqL1xuLnVpLmJvdHRvbS5wb3B1cCB7XG4gIG1hcmdpbjogMC43MTQyODU3MWVtIDBlbSAwZW07XG59XG4udWkuYm90dG9tLmxlZnQucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbn1cbi51aS5ib3R0b20uY2VudGVyLnBvcHVwIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbn1cbi51aS5ib3R0b20ucmlnaHQucG9wdXAge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFBvaW50ZXJcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSBCZWxvdyAtLS0qL1xuLnVpLmJvdHRvbS5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjMwNzE0Mjg2ZW07XG4gIHRvcDogLTAuMzA3MTQyODZlbTtcbiAgbGVmdDogNTAlO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICBib3gtc2hhZG93OiAtMXB4IC0xcHggMHB4IDBweCAjYmFiYWJjO1xufVxuLnVpLmJvdHRvbS5sZWZ0LnBvcHVwIHtcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi8qcnRsOnJlbmFtZSovXG4udWkuYm90dG9tLmxlZnQucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiAtMC4zMDcxNDI4NmVtO1xuICBsZWZ0OiAxZW07XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiAwZW07XG4gIGJveC1zaGFkb3c6IC0xcHggLTFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4udWkuYm90dG9tLnJpZ2h0LnBvcHVwIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKnJ0bDpyZW5hbWUqL1xuLnVpLmJvdHRvbS5yaWdodC5wb3B1cDpiZWZvcmUge1xuICB0b3A6IC0wLjMwNzE0Mjg2ZW07XG4gIHJpZ2h0OiAxZW07XG4gIGJvdHRvbTogYXV0bztcbiAgbGVmdDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgYm94LXNoYWRvdzogLTFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi8qLS0tIEFib3ZlIC0tLSovXG4udWkudG9wLmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBib3R0b206IC0wLjMwNzE0Mjg2ZW07XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjMwNzE0Mjg2ZW07XG59XG4udWkudG9wLmxlZnQucG9wdXAge1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLypydGw6cmVuYW1lKi9cbi51aS50b3AubGVmdC5wb3B1cDpiZWZvcmUge1xuICBib3R0b206IC0wLjMwNzE0Mjg2ZW07XG4gIGxlZnQ6IDFlbTtcbiAgdG9wOiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IDBlbTtcbn1cbi51aS50b3AucmlnaHQucG9wdXAge1xuICBtYXJnaW4tcmlnaHQ6IDBlbTtcbn1cbi8qcnRsOnJlbmFtZSovXG4udWkudG9wLnJpZ2h0LnBvcHVwOmJlZm9yZSB7XG4gIGJvdHRvbTogLTAuMzA3MTQyODZlbTtcbiAgcmlnaHQ6IDFlbTtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogMGVtO1xufVxuLyotLS0gTGVmdCBDZW50ZXIgLS0tKi9cbi8qcnRsOnJlbmFtZSovXG4udWkubGVmdC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAtMC4zMDcxNDI4NmVtO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IC0wLjMwNzE0Mjg2ZW07XG4gIGJveC1zaGFkb3c6IDFweCAtMXB4IDBweCAwcHggI2JhYmFiYztcbn1cbi8qLS0tIFJpZ2h0IENlbnRlciAgLS0tKi9cbi8qcnRsOnJlbmFtZSovXG4udWkucmlnaHQuY2VudGVyLnBvcHVwOmJlZm9yZSB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAtMC4zMDcxNDI4NmVtO1xuICBib3R0b206IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAtMC4zMDcxNDI4NmVtO1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAwcHggMHB4ICNiYWJhYmM7XG59XG4vKiBBcnJvdyBDb2xvciBCeSBMb2NhdGlvbiAqL1xuLnVpLmJvdHRvbS5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xufVxuLnVpLnJpZ2h0LmNlbnRlci5wb3B1cDpiZWZvcmUsXG4udWkubGVmdC5jZW50ZXIucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi51aS50b3AucG9wdXA6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbn1cbi8qIEludmVydGVkIEFycm93IENvbG9yICovXG4udWkuaW52ZXJ0ZWQuYm90dG9tLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxQjFDMUQ7XG59XG4udWkuaW52ZXJ0ZWQucmlnaHQuY2VudGVyLnBvcHVwOmJlZm9yZSxcbi51aS5pbnZlcnRlZC5sZWZ0LmNlbnRlci5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xufVxuLnVpLmludmVydGVkLnRvcC5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIENvdXBsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSW1tZWRpYXRlIE5lc3RlZCBHcmlkICovXG4udWkucG9wdXAgPiAudWkuZ3JpZDpub3QoLnBhZGRlZCkge1xuICB3aWR0aDogY2FsYygxMDAlICsgMS43NXJlbSk7XG4gIG1hcmdpbjogLTAuN3JlbSAtMC44NzVyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmxvYWRpbmcucG9wdXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcbn1cbi51aS5hbmltYXRpbmcucG9wdXAsXG4udWkudmlzaWJsZS5wb3B1cCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnVpLnZpc2libGUucG9wdXAge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMHB4KTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEJhc2ljXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmJhc2ljLnBvcHVwOmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdpZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkud2lkZS5wb3B1cCB7XG4gIG1heC13aWR0aDogMzUwcHg7XG59XG4udWlbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnBvcHVwIHtcbiAgbWF4LXdpZHRoOiA1NTBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLndpZGUucG9wdXAsXG4gIC51aVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucG9wdXAge1xuICAgIG1heC13aWR0aDogMjUwcHg7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgRmx1aWRcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmx1aWQucG9wdXAge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCBjb2xvcnMgICovXG4udWkuaW52ZXJ0ZWQucG9wdXAge1xuICBiYWNrZ3JvdW5kOiAjMUIxQzFEO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLmludmVydGVkLnBvcHVwIC5oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBub25lO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5wb3B1cDpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEO1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEZsb3dpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuZmxvd2luZy5wb3B1cCB7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkubWluaS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMC43ODU3MTQyOXJlbTtcbn1cbi51aS50aW55LnBvcHVwIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLnBvcHVwIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzcmVtO1xufVxuLnVpLnBvcHVwIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLmxhcmdlLnBvcHVwIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmh1Z2UucG9wdXAge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBQcm9ncmVzcyBCYXJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBQcm9ncmVzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVsZW1lbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEJhciAqL1xuLyogUHJvZ3Jlc3MgQmFyIExhYmVsICovXG4vKiBMYWJlbCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFR5cGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBY3RpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQXR0YWNoZWQgKi9cbi8qIEludmVydGVkICovXG4vKiBTaXppbmcgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgUHJvZ3Jlc3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbGVtZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBCYXIgKi9cbi8qIFByb2dyZXNzIEJhciBMYWJlbCAqL1xuLyogTGFiZWwgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQWN0aXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEF0dGFjaGVkICovXG4vKiBJbnZlcnRlZCAqL1xuLyogU2l6aW5nICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFByb2dyZXNzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnByb2dyZXNzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMWVtIDBlbSAyLjVlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBwYWRkaW5nOiAwZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG59XG4udWkucHJvZ3Jlc3M6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW46IDBlbSAwZW0gMi41ZW07XG59XG4udWkucHJvZ3Jlc3M6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMGVtIDBlbSAxLjVlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBDb250ZW50XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQWN0aXZpdHkgQmFyICovXG4udWkucHJvZ3Jlc3MgLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMCU7XG4gIG1pbi13aWR0aDogMmVtO1xuICBiYWNrZ3JvdW5kOiAjODg4ODg4O1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xcyBlYXNlO1xufVxuLyogUGVyY2VudCBDb21wbGV0ZSAqL1xuLnVpLnByb2dyZXNzIC5iYXIgPiAucHJvZ3Jlc3Mge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBhdXRvO1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNlbTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwLjVlbTtcbiAgbGVmdDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi8qIExhYmVsICovXG4udWkucHJvZ3Jlc3MgPiAubGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDFlbTtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMCU7XG4gIGJvdHRvbTogYXV0bztcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgbWFyZ2luLXRvcDogMC4yZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC40cyBlYXNlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogSW5kaWNhdGluZyAqL1xuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjFcIl0gLmJhcixcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIyXCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDk1QzVDO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjNcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRkJDNzI7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNFwiXSAuYmFyLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjVcIl0gLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNkJCNDg7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiNlwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0REQzkyODtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI3XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOFwiXSAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I0RDk1Qztcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI5XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiMTAwXCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjZEQTgxO1xufVxuLyogSW5kaWNhdGluZyBMYWJlbCAqL1xuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjFcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjJcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiM1wiXSAubGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI0XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI1XCJdIC5sYWJlbCB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50Xj1cIjZcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiN1wiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnRePVwiOFwiXSAubGFiZWwge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCI5XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudF49XCIxMDBcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBTaW5nbGUgRGlnaXRzICovXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIxXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIyXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIzXCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI0XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI1XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI2XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI3XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI4XCJdIC5iYXIsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI5XCJdIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDk1QzVDO1xufVxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiMVwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCIyXCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjNcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiNFwiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI1XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjZcIl0gLmxhYmVsLFxuLnVpLmluZGljYXRpbmcucHJvZ3Jlc3NbZGF0YS1wZXJjZW50PVwiN1wiXSAubGFiZWwsXG4udWkuaW5kaWNhdGluZy5wcm9ncmVzc1tkYXRhLXBlcmNlbnQ9XCI4XCJdIC5sYWJlbCxcbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzW2RhdGEtcGVyY2VudD1cIjlcIl0gLmxhYmVsIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBJbmRpY2F0aW5nIFN1Y2Nlc3MgKi9cbi51aS5pbmRpY2F0aW5nLnByb2dyZXNzLnN1Y2Nlc3MgLmxhYmVsIHtcbiAgY29sb3I6ICMxQTUzMUI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU3VjY2Vzc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wcm9ncmVzcy5zdWNjZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjFCQTQ1ICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Muc3VjY2VzcyAuYmFyLFxuLnVpLnByb2dyZXNzLnN1Y2Nlc3MgLmJhcjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy5zdWNjZXNzID4gLmxhYmVsIHtcbiAgY29sb3I6ICMxQTUzMUI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIFdhcm5pbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkucHJvZ3Jlc3Mud2FybmluZyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YyQzAzNyAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLndhcm5pbmcgLmJhcixcbi51aS5wcm9ncmVzcy53YXJuaW5nIC5iYXI6OmFmdGVyIHtcbiAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4udWkucHJvZ3Jlc3Mud2FybmluZyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjNzk0QjAyO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBFcnJvclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5wcm9ncmVzcy5lcnJvciAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCMjgyOCAhaW1wb3J0YW50O1xufVxuLnVpLnByb2dyZXNzLmVycm9yIC5iYXIsXG4udWkucHJvZ3Jlc3MuZXJyb3IgLmJhcjo6YWZ0ZXIge1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi51aS5wcm9ncmVzcy5lcnJvciA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjOTEyRDJCO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYWN0aXZlLnByb2dyZXNzIC5iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogMmVtO1xufVxuLnVpLmFjdGl2ZS5wcm9ncmVzcyAuYmFyOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGJvdHRvbTogMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBhbmltYXRpb246IHByb2dyZXNzLWFjdGl2ZSAycyBlYXNlIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBwcm9ncmVzcy1hY3RpdmUge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHdpZHRoOiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5kaXNhYmxlZC5wcm9ncmVzcyB7XG4gIG9wYWNpdHk6IDAuMzU7XG59XG4udWkuZGlzYWJsZWQucHJvZ3Jlc3MgLmJhcixcbi51aS5kaXNhYmxlZC5wcm9ncmVzcyAuYmFyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBJbnZlcnRlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZDogIzg4ODg4ODtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyID4gLnByb2dyZXNzIHtcbiAgY29sb3I6ICNGOUZBRkI7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3MgPiAubGFiZWwge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi51aS5pbnZlcnRlZC5wcm9ncmVzcy5zdWNjZXNzID4gLmxhYmVsIHtcbiAgY29sb3I6ICMyMUJBNDU7XG59XG4udWkuaW52ZXJ0ZWQucHJvZ3Jlc3Mud2FybmluZyA+IC5sYWJlbCB7XG4gIGNvbG9yOiAjRjJDMDM3O1xufVxuLnVpLmludmVydGVkLnByb2dyZXNzLmVycm9yID4gLmxhYmVsIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQXR0YWNoZWRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBib3R0b20gYXR0YWNoZWQgKi9cbi51aS5wcm9ncmVzcy5hdHRhY2hlZCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwZW07XG59XG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQsXG4udWkucHJvZ3Jlc3MuYXR0YWNoZWQgLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDAuMnJlbTtcbiAgcGFkZGluZzogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbTtcbn1cbi51aS5wcm9ncmVzcy5hdHRhY2hlZCAuYmFyIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyogdG9wIGF0dGFjaGVkICovXG4udWkucHJvZ3Jlc3MudG9wLmF0dGFjaGVkLFxuLnVpLnByb2dyZXNzLnRvcC5hdHRhY2hlZCAuYmFyIHtcbiAgdG9wOiAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW0gMC4yMTQyODU3MXJlbSAwZW0gMGVtO1xufVxuLnVpLnByb2dyZXNzLnRvcC5hdHRhY2hlZCAuYmFyIHtcbiAgYm9yZGVyLXJhZGl1czogMGVtO1xufVxuLyogQ291cGxpbmcgKi9cbi51aS5zZWdtZW50ID4gLnVpLmF0dGFjaGVkLnByb2dyZXNzLFxuLnVpLmNhcmQgPiAudWkuYXR0YWNoZWQucHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgbGVmdDogMDtcbiAgYm90dG9tOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbi51aS5zZWdtZW50ID4gLnVpLmJvdHRvbS5hdHRhY2hlZC5wcm9ncmVzcyxcbi51aS5jYXJkID4gLnVpLmJvdHRvbS5hdHRhY2hlZC5wcm9ncmVzcyB7XG4gIHRvcDogMTAwJTtcbiAgYm90dG9tOiBhdXRvO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBSZWQgKi9cbi51aS5yZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4Mjg7XG59XG4udWkucmVkLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY2OTVFO1xufVxuLyogT3JhbmdlICovXG4udWkub3JhbmdlLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjI3MTFDO1xufVxuLnVpLm9yYW5nZS5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGODUxQjtcbn1cbi8qIFllbGxvdyAqL1xuLnVpLnllbGxvdy5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZCQkQwODtcbn1cbi51aS55ZWxsb3cuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkUyMUY7XG59XG4vKiBPbGl2ZSAqL1xuLnVpLm9saXZlLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVDQzE4O1xufVxuLnVpLm9saXZlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDlFNzc4O1xufVxuLyogR3JlZW4gKi9cbi51aS5ncmVlbi5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NTtcbn1cbi51aS5ncmVlbi5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJFQ0M0MDtcbn1cbi8qIFRlYWwgKi9cbi51aS50ZWFsLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCNUFEO1xufVxuLnVpLnRlYWwuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2REZGRkY7XG59XG4vKiBCbHVlICovXG4udWkuYmx1ZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RTtcbn1cbi51aS5ibHVlLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM5MUM1O1xufVxuLyogVmlvbGV0ICovXG4udWkudmlvbGV0LnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzNUM5O1xufVxuLnVpLnZpb2xldC5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EyOTFGQjtcbn1cbi8qIFB1cnBsZSAqL1xuLnVpLnB1cnBsZS5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0EzMzNDODtcbn1cbi51aS5wdXJwbGUuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQzczRkY7XG59XG4vKiBQaW5rICovXG4udWkucGluay5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwMzk5Nztcbn1cbi51aS5waW5rLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY4RURGO1xufVxuLyogQnJvd24gKi9cbi51aS5icm93bi5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1NjczRjtcbn1cbi51aS5icm93bi5pbnZlcnRlZC5wcm9ncmVzcyAuYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Q2N0MxQztcbn1cbi8qIEdyZXkgKi9cbi51aS5ncmV5LnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzY3Njc2O1xufVxuLnVpLmdyZXkuaW52ZXJ0ZWQucHJvZ3Jlc3MgLmJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQ0REREU7XG59XG4vKiBCbGFjayAqL1xuLnVpLmJsYWNrLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMUIxQzFEO1xufVxuLnVpLmJsYWNrLmludmVydGVkLnByb2dyZXNzIC5iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ1NDU0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS50aW55LnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnRpbnkucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogMC41ZW07XG59XG4udWkuc21hbGwucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IDAuOTI4NTcxNDNyZW07XG59XG4udWkuc21hbGwucHJvZ3Jlc3MgLmJhciB7XG4gIGhlaWdodDogMWVtO1xufVxuLnVpLnByb2dyZXNzIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnVpLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDEuNzVlbTtcbn1cbi51aS5sYXJnZS5wcm9ncmVzcyB7XG4gIGZvbnQtc2l6ZTogMS4xNDI4NTcxNHJlbTtcbn1cbi51aS5sYXJnZS5wcm9ncmVzcyAuYmFyIHtcbiAgaGVpZ2h0OiAyLjVlbTtcbn1cbi51aS5iaWcucHJvZ3Jlc3Mge1xuICBmb250LXNpemU6IDEuMjg1NzE0MjlyZW07XG59XG4udWkuYmlnLnByb2dyZXNzIC5iYXIge1xuICBoZWlnaHQ6IDMuNWVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFByb2dyZXNzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gUmF0aW5nXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJhdGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi8qIFN0YXIgKi9cbi8qIEhlYXJ0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFJhdGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBUeXBlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU3RhbmRhcmQgKi9cbi8qIFN0YXIgKi9cbi8qIEhlYXJ0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFJhdGluZ1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5yYXRpbmcge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuLnVpLnJhdGluZzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwZW07XG59XG4vKiBJY29uICovXG4udWkucmF0aW5nIC5pY29uIHtcbiAgcGFkZGluZzogMGVtO1xuICBtYXJnaW46IDBlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAxLjI1ZW07XG4gIGhlaWdodDogYXV0bztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UsIGJhY2tncm91bmQgMC4xcyBlYXNlLCB0ZXh0LXNoYWRvdyAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFN0YW5kYXJkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbmFjdGl2ZSBJY29uICovXG4udWkucmF0aW5nIC5pY29uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLyogQWN0aXZlIEljb24gKi9cbi51aS5yYXRpbmcgLmFjdGl2ZS5pY29uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyogU2VsZWN0ZWQgSWNvbiAqL1xuLnVpLnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5yYXRpbmcgLmljb24uc2VsZWN0ZWQuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFN0YXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluYWN0aXZlICovXG4udWkuc3Rhci5yYXRpbmcgLmljb24ge1xuICB3aWR0aDogMS4yNWVtO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG4vKiBBY3RpdmUgU3RhciAqL1xuLnVpLnN0YXIucmF0aW5nIC5hY3RpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZFNjIzICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwcHggLTFweCAwcHggI0REQzUwNywgLTFweCAwcHggMHB4ICNEREM1MDcsIDBweCAxcHggMHB4ICNEREM1MDcsIDFweCAwcHggMHB4ICNEREM1MDcgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdGVkIFN0YXIgKi9cbi51aS5zdGFyLnJhdGluZyAuaWNvbi5zZWxlY3RlZCxcbi51aS5zdGFyLnJhdGluZyAuaWNvbi5zZWxlY3RlZC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGQ0MwMCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNFNkEyMDAsIC0xcHggMHB4IDBweCAjRTZBMjAwLCAwcHggMXB4IDBweCAjRTZBMjAwLCAxcHggMHB4IDBweCAjRTZBMjAwICFpbXBvcnRhbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSGVhcnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5oZWFydC5yYXRpbmcgLmljb24ge1xuICB3aWR0aDogMS40ZW07XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLyogQWN0aXZlIEhlYXJ0ICovXG4udWkuaGVhcnQucmF0aW5nIC5hY3RpdmUuaWNvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkY2RDc1ICFpbXBvcnRhbnQ7XG4gIHRleHQtc2hhZG93OiAwcHggLTFweCAwcHggI0NEMDcwNywgLTFweCAwcHggMHB4ICNDRDA3MDcsIDBweCAxcHggMHB4ICNDRDA3MDcsIDFweCAwcHggMHB4ICNDRDA3MDcgIWltcG9ydGFudDtcbn1cbi8qIFNlbGVjdGVkIEhlYXJ0ICovXG4udWkuaGVhcnQucmF0aW5nIC5pY29uLnNlbGVjdGVkLFxuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbi5zZWxlY3RlZC5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogI0ZGMzAwMCAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogMHB4IC0xcHggMHB4ICNBQTAxMDEsIC0xcHggMHB4IDBweCAjQUEwMTAxLCAwcHggMXB4IDBweCAjQUEwMTAxLCAxcHggMHB4IDBweCAjQUEwMTAxICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBkaXNhYmxlZCByYXRpbmcgKi9cbi51aS5kaXNhYmxlZC5yYXRpbmcgLmljb24ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFVzZXIgSW50ZXJhY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlbGVjdGVkIFJhdGluZyAqL1xuLnVpLnJhdGluZy5zZWxlY3RlZCAuYWN0aXZlLmljb24ge1xuICBvcGFjaXR5OiAxO1xufVxuLnVpLnJhdGluZy5zZWxlY3RlZCAuaWNvbi5zZWxlY3RlZCxcbi51aS5yYXRpbmcgLmljb24uc2VsZWN0ZWQge1xuICBvcGFjaXR5OiAxO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1pbmkucmF0aW5nIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5cmVtO1xufVxuLnVpLnRpbnkucmF0aW5nIHtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnVpLnNtYWxsLnJhdGluZyB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0M3JlbTtcbn1cbi51aS5yYXRpbmcge1xuICBmb250LXNpemU6IDFyZW07XG59XG4udWkubGFyZ2UucmF0aW5nIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0cmVtO1xufVxuLnVpLmh1Z2UucmF0aW5nIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzcmVtO1xufVxuLnVpLm1hc3NpdmUucmF0aW5nIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JhdGluZyc7XG4gIHNyYzogdXJsKGRhdGE6YXBwbGljYXRpb24veC1mb250LXR0ZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxBQUVBQUFBTEFJQUFBd0F3VDFNdk1nZ2pDQnNBQUFDOEFBQUFZR050WVhDajJwbThBQUFCSEFBQUFLUm5ZWE53QUFBQUVBQUFBY0FBQUFBSVoyeDVabEpiWE1ZQUFBSElBQUFSbkdobFlXUUJHQWU1QUFBVFpBQUFBRFpvYUdWaEErSUIvUUFBRTV3QUFBQWthRzEwZUN6Z0FFTUFBQlBBQUFBQWNHeHZZMkV3WEN4T0FBQVVNQUFBQURwdFlYaHdBQ0lBbkFBQUZHd0FBQUFnYm1GdFpmQzFuMDRBQUJTTUFBQUJQSEJ2YzNRQUF3QUFBQUFWeUFBQUFDQUFBd0lBQVpBQUJRQUFBVXdCWmdBQUFFY0JUQUZtQUFBQTlRQVpBSVFBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUR4WlFIZy8rRC80QUhnQUNBQUFBQUJBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUNBQUFBQXdBQUFCUUFBd0FCQUFBQUZBQUVBSkFBQUFBZ0FDQUFCQUFBQUFFQUlPWUY4QWJ3RGZBajhDN3didkJ3OElyd2wvQ2M4U1B4WmYvOS8vOEFBQUFBQUNEbUFQQUU4QXp3SS9BdThHN3djUENIOEpmd25QRWo4V1QvL2YvL0FBSC80eG9FRUFZUUFRL3NEK0lQb3craUQ0d1BnQTk4RHZZT3RnQURBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUgvL3dBUEFBRUFBQUFBQUFBQUFBQUNBQUEzT1FFQUFBQUFBUUFBQUFBQUFBQUFBQUlBQURjNUFRQUFBQUFCQUFBQUFBQUFBQUFBQWdBQU56a0JBQUFBQUFJQUFQL3RBZ0FCMHdBS0FCVUFBQUV2QVE4QkZ3YzNGeWMzQlFjM0p6OEJId0VIRnljQ0FMRlBUN0dBSHA2ZUhvRC9BSEFXVzMwNE9IMWJGbkFCR1JxZ29CcDhzRk5Uc0h5eU9ueFlFbkZ4RWxoOE9nQUFBQUFDQUFELzdRSUFBZE1BQ2dBU0FBQUJMd0VQQVJjSE54Y25Od1V4RVI4QkJ4Y25BZ0N4VDAreGdCNmVuaDZBL3dBNGZWc1djQUVaR3FDZ0dueXdVMU93ZkxJQkhYRVNXSHc2QUFBQUFRQUEvKzBDQUFIVEFBb0FBQUV2QVE4QkZ3YzNGeWMzQWdDeFQwK3hnQjZlbmg2QUFSa2FvS0FhZkxCVFU3QjhBQUFBQUFFQUFBQUFBZ0FCd0FBckFBQUJGQTRDQnpFSERnTWpJaTRDTHdFdUF6VTBQZ0l6TWg0Q0Z6NERNekllQWhVQ0FBY01FZ3VnQmd3TURBWUdEQXdNQnFBTEVnd0hGeWcySGhBZkd4a0tDaGtiSHhBZU5pZ1hBUzBRSHhzWkNxQUdDd2tHQlFrTEJxQUtHUnNmRUI0MktCY0hEQklMQ3hJTUJ4Y29OaDRBQUFBQUFnQUFBQUFDQUFIQUFDc0FXQUFBQVRRdUFpTWlEZ0lITGdNaklnNENGUlFlQWhjeEZ4NERNekkrQWo4QlBnTTFEd0VpRkNJR01UQW1JalFqSnk0RE5UUStBak15SGdJZkFUYytBek15SGdJVkZBNENCd0lBRnlnMkhoQWZHeGtLQ2hrYkh4QWVOaWdYQnd3U0M2QUdEQXdNQmdZTURBd0dvQXNTREFkYm9nRUJBUUVCQWFJR0NnY0VEUmNlRVFrUkVBNEdMeThHRGhBUkNSRWVGdzBFQndvR0FTMGVOaWdYQnd3U0N3c1NEQWNYS0RZZUVCOGJHUXFnQmdzSkJnVUpDd2FnQ2hrYkh4QStvZ0VCQVFHaUJnNFFFUWtSSGhjTkJBY0tCalEwQmdvSEJBMFhIaEVKRVJBT0JnQUJBQUFBQUFJQUFjQUFNUUFBQVJRT0FnY3hCdzRESXlJdUFpOEJMZ00xTkQ0Q016SWVBaGNIRndjM0p6YytBek15SGdJVkFnQUhEQklMb0FZTURBd0dCZ3dNREFhZ0N4SU1CeGNvTmg0S0ZSTVNDQzl3UUxCd0p3VUpDZ2tGSGpZb0Z3RXRFQjhiR1FxZ0Jnc0pCZ1VKQ3dhZ0Noa2JIeEFlTmlnWEF3VUlCVXRBb01CQU93RUNBUUVYS0RZZUFBQUJBQUFBQUFJQUFiY0FLZ0FBRXpRM05qTXlGeFlYRmhjV0Z6WTNOamMyTnpZek1oY1dGUlFQQVFZaklpOEJKaWNtSnlZbkppY21OUUFrSlVBUkV4SVFFQXNNQ2dvTUN4QVFFaE1SUUNVa1FiSUdCd2NHc2dNRkJRc0tDUWtHQndFeFB5TWtCZ1lMQ2drS0Nnb0tDUW9MQmdZa0l6OC9RYXdGQmF3Q0JnVU5EZzRPRlJRVEFBQUFBUUFBQUEwQjJ3SFNBQ1lBQUJNMFB3STJGellmQWhZVkZBOEJGeFFWRkFjR0J5WXZBUWNHQnlZbkpqVTBQd0VuSmpVQUVJOUJCUWtJQmtDUEVBZG9HUU1EQmdVR2dJRUdCUVlEQXdFWWFBY0JJd3NDRm9FTUFRRU1nUllDQ3dZSVpKQUJCUVVGQXdFQkFrVkZBZ0VCQXdVRkF3T1FaQWtGQUFBQUFBSUFBQUFOQWRzQjBnQWtBQzRBQUJNMFB3STJGellmQWhZVkZBOEJGeFFWRkFjbUx3RUhCZ2NtSnlZMU5EOEJKeVkxSHdFSE54Y25OeThCQndBUWowRUZDUWdHUUk4UUIyZ1pEQVVHZ0lFR0JRWURBd0VZYUFjL1dCVnNheFJYZURZMkFTTUxBaGFCREFFQkRJRVdBZ3NHQ0dTUUFRVU5BUUVDUlVVQ0FRRURCUVVEQTVCa0NRVVJWWGc0T0hoVkVXNXVBQUFCQUNNQUtRSGRBWHdBR2dBQU56US9BVFlYTmg4Qk56WVhOaDhCRmhVVUR3RUdCeVl2QVNZMUl3Z21DQXdMQ0ZTOENBc01DQ1lJQ1BVSURBc0lqZ2pTQ3drbUNRRUJDVlM3Q1FFQkNTWUpDZzBIOWdjQkFRZVBCd3dBQUFFQUh3QWZBWE1CY3dBc0FBQTNORDhCSnlZMU5EOEJOak15SHdFM05qTXlId0VXRlJRUEFSY1dGUlFQQVFZaklpOEJCd1lqSWk4QkpqVWZDRlJVQ0FnbkNBd0xDRlJVQ0F3TENDY0lDRlJVQ0FnbkNBc01DRlJVQ0FzTUNDY0lZZ3NJVkZRSURBc0lKd2dJVkZRSUNDY0lDd3dJVkZRSUN3d0lKd2dJVkZRSUNDY0lEQUFBQUFBQ0FBQUFKUUZKQWJjQUh3QXJBQUEzTlRRM05qc0JOVFEzTmpNeUZ4WWRBVE15RnhZZEFSUUhCaU1oSWljbU5UY3pOVFFuSmlNaUJ3WWRBUUFJQ0FzS0pTWTFOQ1ltQ1FzSUNBZ0lDLzd0Q3dnSVc1TVdGUjRmRlJaQXBRc0lDRGMwSmlZbUpqUTNDQWdMcFFzSUNBZ0lDOEEzSGhZVkZSWWVOd0FBQVFBQUFBY0JiZ0czQUNFQUFEY1JORGMyTnpZeklUSVhGaGNXRlJFVUJ3WUhCaU1pTHdFSEJpTWlKeVluSmpVQUJnVUtCZ1lCTEFZR0NnVUdCZ1VLQlFjT0NuNStDZzRHQmdvRkJpY0JjQW9JQ0FNREF3TUlDQXIra0FvSUNBUUNDWGw1Q1FJRUNBZ0tBQUFBQXdBQUFDVUNBQUZ1QUJnQU1RQktBQUEzTkRjMk56WXpNaGNXRnhZVkZBY0dCd1lqSWljbUp5WTFNeFlYRmpNeU56WTNKaWNXRlJRSEJpTWlKeVkxTkRjR0J6Y1VGeFl6TWpjMk5UUTNOak15TnpZMU5DY21JeUlIQmhVQUJpaERSRXRMUkVNb0JnWW9RMFJMUzBSREtBWWxKams1UTBNNU9TWXJRUkVtSlRVMUpTWVJRU3VFQkFRR0JnUUVFUkVaQmdRRUJBUUdKQmtheVFvS1FTZ29LQ2hCQ2dvS0NrRW9KeWNvUVFvS09pTWpJeU02UkNFZUlqVW1KU1VtTlNJZUlVUWxCZ1FFQkFRR0dCSVJCQVFHQmdRRUdob2pBQUFBQlFBQUFBa0NBQUdKQUN3QU9BQlJBR2dBY0FBQU56UTNOamMyTXpJWE56WXpNaGNXRnhZWEZoY1dGeFlWRkRFR0J3WVBBUVlqSWljbU5UUTNKaWNtSnlZMU14WVhOeVluSmpVME53WUhOeFFYRmpNeU56WTFORGMyTXpJM05qVTBKeVlqSWdjR0ZSYzNOamMyTnlZbk54WVhGaGNXRlJRSEJnY0dCd1lqUHdFV0ZSUUhCZ2NBQml0QlFVMFpHaEFEQlFFRUJBVUZCQVVFQlFFRUhqdzhIZzREQlFRaUJRMHBJeUlaQmlVdlN4WVpEZzRSUVN1RUJBUUdCZ1FFRVJFWkJnUUVCQVFHSkJrYVZ4VTlNelFpSURBU0d4a1pFQVlHQ3hRck9Eay9MbEFDRnhZbHlRc0pReWNuQlJ3RUFnRURBd0lEQXdJQkF3VUNObXhzTmhrRkZBTUZCQlVUSGg4bkNRdEtJU2dTSEJzZkloNGhSQ1VHQkFRRUJBWVlFaEVFQkFZR0JBUWFHaVBKSlFVaUlqWXpJU0FTR2hrYkNnb0tDaElYTVJzYlVaQU5DeWdoSUE4QUFBTUFBQUFBQWJjQjJ3QTVBRW9BbEFBQU56VTBOelk3QVRZM05qYzJOelkzTmpjMk16SVhGaGNXRlJRSE16SVhGaFVVQnhZVkZBY1VGUlFIRmdjR0t3RWlKeVluSmlzQklpY21OVGNVRnhZek1qYzJOVFFuSmlNaUJ3WVZGek15RnhZWEZoY1dGeFlYRmhjV093RXlOVFFuTmpjMk5UUW5OalUwSnlZbk5qYzJOVFFuSmlzQk5EYzJOVFFuSmlNR0J3WUhCZ2NHQndZSEJnY0dCd1lIQmdjR0J3WXJBUlVBQ3dvUVRnb2RFUTRHQkFNRkJnd0xEeGdURXdvS0RqTWRGaFlPQWdvUkFSa1pLQ1ViR3hzaklRWlNFQW9MSlFVRkNBY0dCUVVHQndnRkJVa0pCQVVGQkFRSEJ3TURCd2NDUENVak53SUpCUVVGRHdNREJBa0dCZ3NMRG1VT0Rnb0pHd2dEQXdZRkRBWVFBUVVHQXdRR0JnWUZCZ1VHQmdRSlNiY1BDd3NHSmhVUENCRVJFeE1NQ2drSkZCUWhHeHdXRlI0WkZRb0tGaE1HQmgwV0tCY1hCZ2NNREFvTER4SUhCUVlHQlFjSUJRWUdCUWdTQVFFQkFRSUNBUUVEQWdFVUx3Z0lCUW9MQ2dzSkRoUUhDUWtFQVEwTkNnOExDeEFkSFJFY0RRNElFQkVURXcwR0ZBRUhCd1VFQ0FnRkJRVUZBZ08zQUFBREFBRC8yd0czQWJjQVBBQk5BSmtBQURjMU5EYzJPd0V5TnpZM05qc0JNaGNXQnhVV0ZSUVZGaFVVQnhZVkZBY0dLd0VXRlJRSEJnY0dJeUluSmljbUp5WW5KaWNtSnlZbkl5SW5KalUzRkJjV016STNOalUwSnlZaklnY0dGUmN6TWhjV0Z4WVhGaGNXRnhZWEZoY1dGeFlYRmhjV0Z6STNOalUwSnlZMU16STNOalUwSnlZak5qYzJOVFFuTmpVMEp5WW5OalUwSnlZckFTSUhJZ2NHQndZSEJnY0dJd1lyQVJVQUN3b1FVZ1loSlJzYkhpQW9HUmtCRVFvQ0RoWVdIVE1PQ2dvVEV4Z1BDd29GQmdJQkJBTUZEaEVkQ2s0UUNnc2xCUVVJQndZRkJRWUhDQVVGU1FrRUJnWUZCZ1VHQmdZRUF3WUZBUkFHREFVR0F3TUlHd2tLRGc1bERnc0xCZ1lKQkFNRER3VUZCUWtDRGc0WkpTVThBZ2NIQXdNSEJ3UUVCUVVFQ2JlM0R3c0tEQXdIQmhjV0p3SVdIUVlHRXhZS0NoVVpIaFlWSFJvaUV4UUpDZ3NKRGc0TURBd05CZzRXSlFjTEN3K2tCd1VHQmdVSENBVUdCZ1VJcEFNQ0JRWUZCUWNJQkFVSEJ3SVRCd3dURXhFUkJ3ME9IQkVkSFJBTEN3OEtEUTBGQ1FrSEZBNEpDd29MQ2dVSUNCZ01DeFVEQWdFQkFnTUJBUUczQUFBQUFRQUFBQTBBN2dIU0FCUUFBQk0wUHdJMkZ4RUhCZ2NtSnlZMU5EOEJKeVkxQUJDUFFRVUpnUVlGQmdNREFSaG9Cd0VqQ3dJV2dRd0Ivb05GQWdFQkF3VUZBd09RWkFrRkFBQUFBQUlBQUFBQUFnQUJ0d0FxQUZrQUFCTTBOell6TWhjV0Z4WVhGaGMyTnpZM05qYzJNeklYRmhVVUR3RUdJeUl2QVNZbkppY21KeVluSmpVekZCOEJOelkxTkNjbUp5WW5KaWNtSXlJSEJnY0dCd1lIQmlNaUp5WW5KaWNtSnlZaklnY0dCd1lIQmdjR0ZRQWtKVUFSRXhJUUVBc01DZ29NQ3hBUUVoTVJRQ1VrUWJJR0J3Y0dzZ01GQlFzS0NRa0dCeVUxcHFZMUJnWUpDZzRORGcwUERoSVJEZzhLQ2djRkNRa0ZCd29LRHc0UkVnNFBEUTRORGdvSkJnWUJNVDhqSkFZR0N3b0pDZ29LQ2drS0N3WUdKQ00vUDBHc0JRV3NBZ1lGRFE0T0RoVVVFekExb0o4Mk1CY1NFZ29MQmdjQ0FnY0hDd3NLQ1FnSEJ3Z0pDZ3NMQndjQ0FnY0dDd29TRWhjQUFBQUNBQUFBQndGdUFiY0FJUUFvQUFBM0VUUTNOamMyTXlFeUZ4WVhGaFVSRkFjR0J3WWpJaThCQndZaklpY21KeVkxUHdFZkFSRWhFUUFHQlFvR0JnRXNCZ1lLQlFZR0JRb0ZCdzRLZm40S0RnWUdDZ1VHSlpJWmVmN2NKd0Z3Q2dnSUF3TURBd2dJQ3Y2UUNnZ0lCQUlKZVhrSkFnUUlDQW9JalJsMEFXUCtuUUFBQUFBQkFBQUFKUUhiQWJjQU1nQUFOelUwTnpZN0FUVTBOell6TWhjV0hRRVVCd1lyQVNJbkpqMEJOQ2NtSXlJSEJoMEJNeklYRmgwQkZBY0dJeUVpSnlZMUFBZ0lDOEFtSmpRMUppVUZCUWdTQ0FVRkZoVWZIaFVXSEFzSUNBZ0lDLzd0Q3dnSVFLVUxDQWczTlNVbUppVTFTUWdGQmdZRkNFa2VGaFVWRmg0M0NBZ0xwUXNJQ0FnSUN3QUFBQUlBQVFBTkFkc0IwZ0FpQUMwQUFCTTJQd0kyTXpJZkFoWVhGZzhCRnhZSEJpTWlMd0VIQmlNaUp5WS9BU2NtTng4Q0x3RS9BUzhDRXdFRERKQkFCZ2dKQlVHT0RnSURDbWNZQWdRQ0NBTUlmNElGQmdZRUFnRVphUWdDN2hCYkVnSU5TbmtJTGdFQkpnZ0NGWUlMQzRJVkFnZ0lDV1dQQ2dVRkEwUkVBd1VGQ285bENRaXBDVEJtRXcxSEVoRmMvdTBBQUFBREFBQUFBQUhKQWJjQUZBQWxBSGtBQURjMU5EYzJPd0V5RnhZZEFSUUhCaXNCSWljbU5UY1VGeFl6TWpjMk5UUW5KaU1pQndZVkZ6VTBOell6TmpjMk56WTNOamMyTnpZM05qYzJOelkzTmpNeUZ4WVhGaGNXRnhZWEZoVVVGUlFIQmdjR0J4UUhCZ2NHQnpNeUZ4WVZGQWNXRlJZSEZnY0dCeFlIQmdjaklpY21KeVluSmljaUp5WTFBQVVHQjFNSEJRWUdCUWRUQndZRkpRVUZDQWNHQlFVR0J3Z0ZCV1FGQlFnR0R3OE9GQWtGQkFRQkFRTUNBUUlFQkFZRkJ3NEtDZ2NIQlFRQ0F3RUJBZ01EQWdZQ0FnSUJBVThYRUJBUUJRRU9CUVVFQ3dNUkVpWWxFeFlYREF3V0pBb0hCUVkzdHdjR0JRVUdCN2NJQlFVRkJRZ2tCd1lGQlFZSENBVUdCZ1VJSkxjSEJRWUJFQkFUR1FrRkNRZ0dCUXdMQmdjSUNRVUdBd01GQkFjSEJnWUlDUVFFQndzTEN3WUdDZ0lEQkFNQ0JCRVFGaGtTREFvVkVoQVJFQXNnRkJVQkJBVUVCQWNNQVFVRkNBQUFBQUFEQUFELzJ3SEpBWklBRkFBbEFIa0FBRGNVRnhZWE54WTNOajBCTkNjbUJ5Y0dCd1lkQVRjME56WTNGaGNXRlJRSEJpY0dKeVkxRnpVME56WTNGamMyTnpZM05qY1hOaGNXQnhZWEZnY1dCeFFIRmhVVUJ3WUhKeFlYRmhjV0ZSWVhGaGNXRlJRVkZBY0dCd1lIQmdjR0J3WW5CaWNtSnlZbkppY21KeVluSmljbUp5WW5KaWNpSnlZMUFBVUdCMU1IQlFZR0JRZFRCd1lGSlFVRkNBY0dCUVVHQndnRkJXUUdCUWNLSkJZTURCY1dFeVVtRWhFREN3UUZCUTRCQlJBUUVCZFBBUUVDQWdJR0FnTURBZ0VCQXdJRUJRY0hDZ29PQndVR0JBUUNBUUlEQVFFRUJBVUpGQTRQRHdZSUJRV2xCd1lGQVFFQkJ3UUp0UWtFQndFQkFRVUdCN2VUQndZRUFRRUVCZ2NKQkFZQkFRWUVDWlM0QndZRUFnRU5Cd1VDQmdNQkFRRVhFeUVKRWhBUkVCY0lEaEFhRmhFUEFRRUZBZ1FDQlFFTEJRY0tEQWtJQkFVSENnVUdCd2dEQmdJRUFRRUhCUWtJQndVTUN3Y0VDZ2NHQ1JvUkVROENCZ1FJQUFBQUFRQUFBQUVBQUp0aDU3ZGZEenoxQUFzQ0FBQUFBQURQL0dPREFBQUFBTS84WTRNQUFQL2JBZ0FCMndBQUFBZ0FBZ0FBQUFBQUFBQUJBQUFCNFAvZ0FBQUNBQUFBQUFBQ0FBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBQWdBQUFBSUFBQUFDQUFBQUFkd0FBQUhjQUFBQ0FBQWpBWk1BSHdGSkFBQUJiZ0FBQWdBQUFBSUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBVzRBQUFIY0FBQUIzQUFCQWR3QUFBSGNBQUFBQUFBQUFBb0FGQUFlQUVvQWNBQ0tBTW9CUUFHSUFjd0NDZ0pVQW9JQ3hnTUVBem9EcGdSS0JSZ0Y3QVlTQnBnRzJnY2dCMm9JR0FqT0FBQUFBUUFBQUJ3QW1nQUZBQUFBQUFBQ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNEFyZ0FCQUFBQUFBQUJBQXdBQUFBQkFBQUFBQUFDQUE0QVFBQUJBQUFBQUFBREFBd0FJZ0FCQUFBQUFBQUVBQXdBVGdBQkFBQUFBQUFGQUJZQURBQUJBQUFBQUFBR0FBWUFMZ0FCQUFBQUFBQUtBRFFBV2dBREFBRUVDUUFCQUF3QUFBQURBQUVFQ1FBQ0FBNEFRQUFEQUFFRUNRQURBQXdBSWdBREFBRUVDUUFFQUF3QVRnQURBQUVFQ1FBRkFCWUFEQUFEQUFFRUNRQUdBQXdBTkFBREFBRUVDUUFLQURRQVdnQnlBR0VBZEFCcEFHNEFad0JXQUdVQWNnQnpBR2tBYndCdUFDQUFNUUF1QURBQWNnQmhBSFFBYVFCdUFHZHlZWFJwYm1jQWNnQmhBSFFBYVFCdUFHY0FVZ0JsQUdjQWRRQnNBR0VBY2dCeUFHRUFkQUJwQUc0QVp3QkdBRzhBYmdCMEFDQUFad0JsQUc0QVpRQnlBR0VBZEFCbEFHUUFJQUJpQUhrQUlBQkpBR01BYndCTkFHOEFid0J1QUM0QUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT09KSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUms5VVZFOEFBQmNVQUFvQUFBQUFGc3dBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkRSa1lnQUFBQTlBQUFFdUVBQUJMaG82VHZJRTlUTHpJQUFCUFlBQUFBWUFBQUFHQUlJd2diWTIxaGNBQUFGRGdBQUFDa0FBQUFwS1BhbWJ4bllYTndBQUFVM0FBQUFBZ0FBQUFJQUFBQUVHaGxZV1FBQUJUa0FBQUFOZ0FBQURZQkdBZTVhR2hsWVFBQUZSd0FBQUFrQUFBQUpBUGlBZjFvYlhSNEFBQVZRQUFBQUhBQUFBQndMT0FBUTIxaGVIQUFBQld3QUFBQUJnQUFBQVlBSEZBQWJtRnRaUUFBRmJnQUFBRThBQUFCUFBDMW4wNXdiM04wQUFBVzlBQUFBQ0FBQUFBZ0FBTUFBQUVBQkFRQUFRRUJCM0poZEdsdVp3QUJBZ0FCQURyNEhBTDRHd1A0R0FRZUNnQVpVLytMaXg0S0FCbFQvNHVMREFlTFp2aVUrSFFGSFFBQUFQMFBIUUFBQVFJUkhRQUFBQWtkQUFBUzJCSUFIUUVCQncwUEVSUVpIaU1vTFRJM1BFRkdTMUJWV2w5a2FXNXplSDJDaDR4eVlYUnBibWR5WVhScGJtZDFNSFV4ZFRJd2RVVTJNREIxUlRZd01YVkZOakF5ZFVVMk1ETjFSVFl3TkhWRk5qQTFkVVl3TURSMVJqQXdOWFZHTURBMmRVWXdNRU4xUmpBd1JIVkdNREl6ZFVZd01rVjFSakEyUlhWR01EY3dkVVl3T0RkMVJqQTRPSFZHTURnNWRVWXdPRUYxUmpBNU4zVkdNRGxEZFVZeE1qTjFSakUyTkhWR01UWTFBQUFDQVlrQUdnQWNBZ0FCQUFRQUJ3QUtBQTBBVmdDV0FMMEJBZ0dNQWVRQ2J3THdBNGNENVFSMEJRTUZkZ1pnQjhNSmtRdHhDN29NMlExakRnZ09tUkFZRVpyOGxBNzhsQTc4bEE3N2xBNzRsUGV0RmZ0RnBUejNORHo3TlB0RmNmY1UreEJ0KzBUM010NzNNamh0OTBUM0ZQY1FCZnVVKzBZVit3UlJvZmNRTU9QM0VaM0Q5d1hEK3dYM0VYa3dNNkg3RVBzRXhRVU8rSlQzclJYN1JhVTg5elE4K3pUN1JYSDNGUHNRYmZ0RTl6TGU5ekk0YmZkRTl4VDNFQVg3bFB0R0ZZdUxpL2V4dy9zRjl4RjVNRE9oK3hEN0JNVUZEdmlVOTYwViswV2xQUGMwUFBzMCswVng5eFQ3RUczN1JQY3kzdmN5T0czM1JQY1U5eEFGRHZpVTk4RVZpMkI0Wkc1d0NJdUwrelQ3TkFWN2UzdDdlNHQ3aTN1YmU1c0krelQzTkFWdXBuaXlpN2FMM00zTjNJdTJpN0o0cG02bXFMS2V0b3ZjaTgxSml6b0lEdmlVOThFVmk5eEp6VHFMWUl0a2VIQnVjS2hrbm1DTE9vdEpTWXM2aTJDZVpLaHdDSXVMOXpUN05BV2JlNXQ3bTR1Ymk1dWJtNXNJOXpUM05BV29wcDZ5aTdZSU1FMFYremI3TmdXS2lvcUtpb3VLaTRxTWlvd0kremIzTmdWNm00R2hpNk9MdWJDd3VZdWppNkdCbTNvSXVsZTZ2d1dibktHVm80dTVpN0JtaTEyTGM0RjFlbnNJRHZpVTk4RVZpMkI0Wkc1d0NJdUwrelQ3TkFWN2UzdDdlNHQ3aTN1YmU1c0krelQzTkFWdXBuaXlpN2FMM00zTjNJdW5pNldEb1g0SVhFRDNCRXRMK3pUM1JQZFUrd1RMc3NZRmw0NllqWmlMM0l2TlNZczZDQTZMOThVVmk3V1hyS09pbzZPdGw3YUxsb3VYaVppSGw0ZVdoWmFFbG9TVWhaS0ZrNFNTaFpLRWtwS1NrWk9Ta3BHVWtaYVNDSmFTbHBHWGo1aVBsNDJXaTdhTHJYK2pjNk4wbDJxTFlZdGhkV0JnWUFqN1J2dEFCWWVJaDRtR2k0YUxoNDJIamdqN1J2ZEFCWW1OaVkySGo0aU9ocEdEbElTVWhaV0ZsSVdWaHBhSG1ZYVlpWmlMbUFnT1o0djN0eFdMa3BDUGxvMEk5eU9nelBjV0JZNlNrSStSaTVDTGtJZVBoQWpMK3hiM0kzWUZsb21RaDR1RWk0YUpoNGFHQ0NNbXBQc2pCWXVLaTRtTGlJdUhpb2lKaUltSWlJcUhpNGlMaDR5SGpRajdGTS83RlVjRmg0bUhpb2lMaDR1SWpJbU9pWTZLam91UGk0eUxqWXlPQ0tQM0l5UHdCWWFRaVpDTGp3Z09aNHYzdHhXTGtwQ1BsbzBJOXlPZ3pQY1dCWTZTa0krUmk1Q0xrSWVQaEFqTCt4YjNJM1lGbG9tUWg0dUVpNGFKaDRhR0NDTW1wUHNqQll1S2k0bUxpSXVDaDRhRGk0aUxoNHlIalFqN0ZNLzdGVWNGaDRtSGlvaUxoNHVJakltT2lZNktqb3VQaTR5TGpZeU9DS1AzSXlQd0JZYVFpWkNMandqS2VSWGpOM2I3RGZjQXhQWlNkL2NONHQvN0RKMVY5d0ZWK3dFRkRxNzNaaFdMazQyUmtaRUlzYklGa1pDUmpwT0xrb3VTaUpDR0NOODI5MUQzVUFXUWtKS09rb3VUaTVHSWtZWUlzV1FGa1lhTmhJdUVpNE9KaFlXRkNQdUorNGtGaFlXRmlZT0xoSXVFallhUkNQc2k5eUlGaFpDSmtvdVNDQTc3QWFydEZZdVNqcEtRa0FqZjN6ZmZCWWFRaUpLTGs0dVNqcEtRa0FpeXNnV1JrSkdPazR1U2k1S0lrSVlJM3pmZjN3V1FrSktPazR1U2k1S0lrSVlJc21RRmtJYU9oSXVFaTRPSWhJYUdDRGMzM3pjRmtJYU9oSXVFaTRPSWhZYUZDR1JrQllhR2hJaUVpNE9MaEk2R2tBZzMzemMzQllhR2hJaUVpNE9MaFk2RmtBaGtzZ1dHa1lpUmk1TUlEdnRMaThzVmkvYzVCWXVTanBLUWtKQ1FrbzZTaXdpVmk0dkNCWXV1bDZta3BLU2txcGl1aTY2THFYNmtjcVJ5bUcyTGFBaUxWSlNMQlpLTGtvaVFocENHam9TTGhBaUwremtGaTRPSWhZYUdob1dFaVlTTENQdW5pd1dFaTRTTmhwR0drSWlSaTVNSTV2ZFVGZmNuaTR2Q0JZdWZoSng4bW4yWmVwSjNpM2FMZW9SOWZYMThnM3FMZHdpTFZBVU8reWFMc2hXTCtBUUZpNUdOa1krUmpwQ1FqNUtOajQyUGpJK0xDUGZBaXdXUGk0K0tqNG1SaVpDSGo0YVBoWTJGaTRVSWkvd0VCWXVFaVlXSGhvZUdob2VGaUlpS2hvcUhpNEdMaEk2RWtRajdFdmNOK3hMN0RRV0VoWU9JZ291SGk0ZUxoNDJFam9hUGlKQ0hrSW1SaTVJSURvdjNYUldMa28yUmo1S2x0cSt2dUtXNHBidVp2WXU5aTd0OXVIRzRjYTlucFdDUGhJMkZpNFNMaFltRWg0UnhZR2RvWG5BSVhuRmJmbG1MV1l0Ym1GNmxYcVpucm5HMmg1S0prb3VSQ0xDTEZhUmtxMnl4ZExGMHRIKzRpN2lMdEpleG9yR2lxNnFrc202NFo2MWdvWloza1hhTGRJdG5mbTF5Y25KeWJYOW9pd2hvaTIyWGNxUnlwSDZwaTYrTG9wR2dscDlnZFdkcGJsNEk5eGl3Rll1SGpJaU9pSTZJam9xUGk0K0xqb3lPam8yT2pZNkxqNHVia0ptWGw1ZVdtWkdiaTQrTGpveU9qbzJPalk2TGp3aUxqNG1PaVk2SWpZaU5oNHR6aTNlQ2VucDZlb0ozaTNNSURvdjNYUldMa28yU2o1R291Syt1dHFXM3BicVl2b3VjaTV5Sm5JZ0ltNmNGalk2TmpJK0xqSXVOaTQySmpZcU9pbytKam9tT2lZNktqb21PaVk2SmpvcU5pb3lLam9tTWlZdUhpNHFMaW91TENIZG5iVlZqUTJORGJWVjNad2g5Y2dXSmlJaUppSXVKaTM2U2RKaUlqWW1PaTQ2TGpZK1VsSmx2bDNLY2RKOTBvSGVpZTZXSGtZbVNpNUlJc0lzVnFscTBaNzExQ0tHekJYcVhmcHFDbm9LZGhwNkxvSXVpa2FDV24yQjFaMmx1WGdqM0dMQVZpNGVNaUk2SWpvaU9pbytMajR1T2pJNk9qWTZOam91UGk1dVFtWmVYbDVhWmtadUxqNHVPakk2T2pZNk5qb3VQQ0l1UGlZNkpqb2lOaUkySGkzT0xkNEo2ZW5wNmduZUxjd2ppKzEwVm9MQUZ0SSt3bUsyaHJxS25xS0t2ZHExd3AydWhDSjJyQloxL25IeWNlcHg2bUhxV2VZK0VqWVdMaEl1RWlZV0hoSVIvZ0gxK2ZHOXFhWEptZVdWNVk0Smhpd2k1M0JYYjl5UUZqSUtNZzR1RWkzQ0RjM3gxZkhWM2ZIT0JDQTZMMUJXTDkwc0ZpNVdQbEpLU2twS1RqNWFMQ05tTEJaS1BtSnFlcEphWmxaZVZsWStRajVPTmw0MldqcGVPbUkrWWtaV1RrNU9TazQ2Vmk1dUxtWWlZaFppRmxJR1NmZ2lTZm81NWkzV0xlWWQ1Z1hnSXZvc0ZuNHVjaEpsOG1uMlNlb3QzaTNxR2ZJSjlqWVNMaFl1RWkzeUlmb1IraTRlTGg0dUhpM2VHZW45OWkzQ0RkbnQ4Q0h0OGRZTndpd2htaXdWNWkzbU5lWTk1a0hlUmM1TjFrMzZQaDRzSU9Zc0ZnSXVEam9TU2hKS0hsSXVWQ0xDZEZZdUdqSWVQaUkrSGo0bVFpNUNMajQyUGo0Nk9qWStMa0l1UWlaQ0lqb2VQaDQyR2k0YUxoNG1IaDRlSWlvYUxoZ2pVZVJXVWl3V05pNDZMajRxT2k0K0tqWXFPaTQrS2o0bVFpbzZLallxTmlvK0tqNG1RaW82S2pJcXpmcXVFcElzSXJvc0ZyNHVlbW91cmk1Q0trWXFRa1k2UWtJNlNqcEtOa291U2k1S0prb2lSbFpXUWxvdVlpNUNLa0ltUmlaR0pqNGlPQ0pHTWtJK1BsSStValpLTGtvdVZpSk9EazRTU2dvK0Npd2dtaXdXTGxwQ2FsSjZVbnBDYmk1YUxub2lZaEpTRmxIK1FlWXVHaG9lRGlZQ0pmNGgvaDMrSWZvV0JnNEtIaDRTQ2dINElpNHFJaVlpR2g0YUloNG1JaUlpSWg0ZUdoNGFIaDRlSGlJaUhpSWVIaUlpSGlJZUtoNG1JaW9pTENJS0xpL3RMQlE2TDkwc1ZpL2RMQll1Vmo1T1NrNUtTazQ2V2l3amRpd1dQaTVpUG9aT2trNkNSblpDZGo1Nk5uNHNJcTRzRnBvdWdnNXg4bTN5VGQ0dHhDSXVKQlpkOGtIdUxkNHVIaTRlTGg1SitqbjZMZkl1RWk0U0poWlI5a0h5TGVvdDNoSHA4ZkgxOWVvUjNpd2hZaXdXVmVJOTVpM21MZEloNmhINkVmb0tCZm9WK2hYMkhlNHVCaTRPUGc1S0ZrWWFUaDVTSGxZaVRpcE9LazRxVGlKTUlpWlNJa1lpUGdaU0JsNENhZUtSK21vU1BDRDJMQllDTGc0K0Vrb1NTaDVTTGxRaXc5emdWaTRhTWg0K0lqNGVQaVpDTGtJdVBqWStQam82Tmo0dVFpNUNKa0lpT2g0K0hqWWFMaG91SGlZZUhoNGlLaG91R0NOVDdPQldVaXdXT2k0NktqNG1QaW8rSWpvaVBoNCtJam9lUGlJK0hqNGFQaG82SGpvaU5pSTZIajRhT2hvNklpNHFXZnBLRGo0WUlrNE9SZ1k1K2ozNk9nSTEvallDUGc1Q0duWXVYajVHVWtwU09tWXVlaTVhR21vS2ZncDZHbW91V0NQQ0xCWlNMbEkrU2twT1RqcE9MbFl1U2laS0hsSWVVaG8rRmk0NlBqWStOa1kyUmpKQ0xrSXVZaHBhQmxZNlJqWktMa2dpTGtvbVNpSktJa29hUWhZNk1rSXlSaTVDTG00YVhncE9Ca242UGU0c0lab3NGY290cmhHTjlpb3VJaW9hSmg0cUhpb21LaVlxSWlvYUtoNG1IaW9pS2lZdUhpb2lMaDRxSWk0bUxDSUtMaS90TEJRNzdsSXYzdHhXTGtwQ1BsbzBJOXlPZ3pQY1dCWTZTa0krUml3aUwvQkw3RlVjRmg0bUhpb2lMaDR1SWpJbU9pWTZLam91UGk0eUxqWXlPQ0tQM0l5UHdCWWFRaVpDTGp3Z09pL2ZGRll1MWw2eWpvcU9qclplMmk1YUxsNG1ZaDVlSGxvV1doSmFFbElXU2haT0Vrb1dTaEpLU2twR1RrcEtSbEpHV2tnaVdrcGFSbDQrWWo1ZU5sb3UyaTYxL28zT2pkSmRxaTJHTFlYVmdZR0FJKzBiN1FBV0hpSWVKaG91R2k0ZU5oNDRJKzBiM1FBV0pqWW1OaDQrSWpvYVJnNVNFbElXVmhaU0ZsWWFXaDVtR21JbVlpNWdJc0lzVmkydWNhYTlvQ1BjNit6VDNPdmN6QmErdm5LMkxxNHViaVppSGw0ZVhocFNGa29TU2c1R0NqNEtRZ28yQ2pZT05nWXVCaTRLTGdJbC9ob0NHZ0lXQ2hBaUJnNE9GaElTRWhZYUZob2FJaG9hSmhZdUZpNGFOaUpDR2tJYVJoSkdFa29PUmdaT0Nrb0NSZ0pCL2tJQ05nb3NJZ1l1Qmk0T0pnb21DaVlLR2dvZURoWVNFaFlTR2dvZC9oMytKZm90N0NBNzdKb3V5Rll2NEJBV0xrWTJSajVHT2tKQ1BrbzJQalkrTWo0c0k5OENMQlkrTGo0cVBpWkdKa0llUGhvK0ZqWVdMaFFpTC9BUUZpNFNKaFllR2g0YUdoNFdJaUlxR2lvZUxnWXVFam9TUkNQc1M5dzM3RXZzTkJZU0ZnNGlDaTRlTGg0dUhqWVNPaG8rSWtJZVFpWkdMa2dpd2t4WDNKdmNocEhMM0Rmc0lpL2YzKzdpTGkvdjNCUTVuaThzVmkvYzVCWXVTanBLUWtKQ1FrbzZTaXdqM1ZJdUx3Z1dMcnBpcHBLU2twS21Zcm91dmk2bCtwSEtrY3BkdGkyZ0lpMElGaTRhS2hvZUloNGVIaVlhTENIbUxCWWFMaDQySGo0ZU9pcENMa0FpTDFBV0xuNE9jZlpwOW1YcVNkb3QzaTNxRWZYMThmSVI2aTNjSWkxU25pd1dTaTVLSWtJYVFobzZFaTRRSWkvczVCWXVEaUlXR2hvYUZoSW1FaXdqN3A0c0ZoSXVFallhUmhwQ0lrWXVUQ0E1bmpQZTZGWXlRa0k2VWpRajNJNkRNOXhZRmo1S1BqNUdMa0l1UWg0K0VDTXY3RnZjamRnV1VpWkNJallhTmhvaUZoWVVJSXlhayt5TUZqSVdLaG9tSGlZaUlpWWFMaUl1SGpJZU5DUHNVei9zVlJ3V0hpWWVLaUl1SGk0ZU5pWTZKajR1UWpKRUlvL2NqSS9BRmhaR0prWTJRQ1BlQit6MFZuSUxsVzNyeGlKNlptTlRTK3d5ZGdweGU1NHY3cHdVT1o0dkNGWXYzU3dXTGtJMlBqbytQam8rTmtJc0kzb3NGa0l1UGlZNklqNGVOaDR1R0NJdjdTd1dMaG9tSGg0ZUloNGVLaG9zSU9Jc0Zob3VIakllUGlJK0pqNHVRQ0xDdkZZdUdqSWVQaDQ2SWtJbVFpNUNMajQyUGpvNlBqWStMa0l1UWlaQ0lqb2VQaDQyR2k0YUxob21JaDRlSWlvYUxoZ2p2WnhXTDkwc0ZpNUNOajQ2T2o0K1BqWkNMajR5U2tKV1dsWmFWbDVTWG1KdVZsNUdSam82T2tJNlJqWkNOa0l5UGpJNk1rWTJUQ0l5U2pKR01qNHlQalpDT2tZNlJqcENQam82UGo0MlFpNVNMazRxU2laS0prWWlQaUpDSWpvaVBobzZHalllTWh3aU5oNHlHaklhTWhZdUhpNGlMaUl1SGk0ZUxnNHVFaVlTSmhJbUZpWWVKaDRtRmg0V0xpb3FKaW9tSmlJcUppb2tJaTRxS2lJcUpDTnFMQlpxTG1JV1dnSmFBa0grTGZJdDZobjJBZjQ2RGpZU0xoSXQ5aDM2Q2Y0K0JpMytIZ0ltQWhZS0VoSTEyaG5tQWZnaC9mWGlEY29zSVpvc0Zmb3Qrakh5T2ZJNS9qb09PZzQxL2ozMlFjNU44ajRTTWhvdUhqWWlPaDQrSmo0dVFDQTVuaS9jNUZZdUdqWWFPaUkrSGo0bVFpd2plaXdXUWk0K05qbytQam8yUWk1QUlpL2RLQll1UWlaQ0hqb2lQaDQyR2l3ZzRpd1dHaTRlSmg0ZUlpSW1HaTRZSWkvdEtCYkQzSmhXTGtJeVBqNCtPanBDTmtJdVFpNCtKajRpT2g0MkhpNGFMaG9tSGlJZUhoNGVLaG91R2k0YU1pSStIajRxUGk1QUk3L3NuRll2M1N3V0xrSTJRajQ2T2o0K05rSXVTaTVxUG81T1prSmVQazQ2VGpaZU9tbzZhanBpTW1Jc0lzSXNGcEl1ZWc1ZDlsbjZRZW9sMWtvU1JnbzJBajRDTGdJZUFsSCtQZm90OWk0V0poSWlDbG9DUWZJdDdpM3lGZm9HQUNJQ0Fmb1o4aXdnOGl3V01pSXlKaTRtTWlZeUpqWW1NaUl5S2k0bVBoSTJHalllTmg0MkdqWU9NaEl5RWk0U0xob3VIaTRpTGlZdUdpb1lJaW9XS2hvbUhpb2VKaDRpR2g0ZUloNGFJaDRpRmlJU0poSW1EaW9LTGhvdUhqWWlQaDQrSWo0aVJpSkdKa0lxUENJcVBpcEdLa29tVGlwR0tqNHFPaVpDSmtZaVFpSkNJam9XU2daWituSUtYZ1phQmxvR1doSkdIaTRhTGg0Mkhqd2lJam9tUWk0OElEdmlVRlBpVUZZc01DZ0FBQUFBREFnQUJrQUFGQUFBQlRBRm1BQUFBUndGTUFXWUFBQUQxQUJrQWhBQUFBQUFBQUFBQUFBQUFBQUFBQUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFQRmxBZUQvNFAvZ0FlQUFJQUFBQUFFQUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFJQUFBQURBQUFBRkFBREFBRUFBQUFVQUFRQWtBQUFBQ0FBSUFBRUFBQUFBUUFnNWdYd0J2QU44Q1B3THZCdThIRHdpdkNYOEp6eEkvRmwvLzMvL3dBQUFBQUFJT1lBOEFUd0RQQWo4Qzd3YnZCdzhJZndsL0NjOFNQeFpQLzkvLzhBQWYvakdnUVFCaEFCRCt3UDRnK2pENklQakErQUQzd085ZzYyQUFNQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFmLy9BQThBQVFBQUFBRUFBSnJWbExKZkR6ejFBQXNDQUFBQUFBRFAvR09EQUFBQUFNLzhZNE1BQVAvYkFnQUIyd0FBQUFnQUFnQUFBQUFBQUFBQkFBQUI0UC9nQUFBQ0FBQUFBQUFDQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBQUFBQUFBQUFBQUFBQUFBRUFBQUFDQUFBQUFnQUFBQUlBQUFBQ0FBQUFBZ0FBQUFJQUFBQUNBQUFBQWR3QUFBSGNBQUFDQUFBakFaTUFId0ZKQUFBQmJnQUFBZ0FBQUFJQUFBQUNBQUFBQWdBQUFBRUFBQUFDQUFBQUFXNEFBQUhjQUFBQjNBQUJBZHdBQUFIY0FBQUFBRkFBQUJ3QUFBQUFBQTRBcmdBQkFBQUFBQUFCQUF3QUFBQUJBQUFBQUFBQ0FBNEFRQUFCQUFBQUFBQURBQXdBSWdBQkFBQUFBQUFFQUF3QVRnQUJBQUFBQUFBRkFCWUFEQUFCQUFBQUFBQUdBQVlBTGdBQkFBQUFBQUFLQURRQVdnQURBQUVFQ1FBQkFBd0FBQUFEQUFFRUNRQUNBQTRBUUFBREFBRUVDUUFEQUF3QUlnQURBQUVFQ1FBRUFBd0FUZ0FEQUFFRUNRQUZBQllBREFBREFBRUVDUUFHQUF3QU5BQURBQUVFQ1FBS0FEUUFXZ0J5QUdFQWRBQnBBRzRBWndCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTVFBdUFEQUFjZ0JoQUhRQWFRQnVBR2R5WVhScGJtY0FjZ0JoQUhRQWFRQnVBR2NBVWdCbEFHY0FkUUJzQUdFQWNnQnlBR0VBZEFCcEFHNEFad0JHQUc4QWJnQjBBQ0FBWndCbEFHNEFaUUJ5QUdFQWRBQmxBR1FBSUFCaUFIa0FJQUJKQUdNQWJ3Qk5BRzhBYndCdUFDNEFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PSkgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi51aS5yYXRpbmcgLmljb24ge1xuICBmb250LWZhbWlseTogJ1JhdGluZyc7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyogRW1wdHkgU3RhciAqL1xuLnVpLnJhdGluZyAuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA1Jztcbn1cbi8qIEFjdGl2ZSBTdGFyICovXG4udWkucmF0aW5nIC5hY3RpdmUuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA1Jztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTdGFyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVbmZpbGxlZCBTdGFyICovXG4udWkuc3Rhci5yYXRpbmcgLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNSc7XG59XG4vKiBBY3RpdmUgU3RhciAqL1xuLnVpLnN0YXIucmF0aW5nIC5hY3RpdmUuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA1Jztcbn1cbi8qIFBhcnRpYWwgKi9cbi51aS5zdGFyLnJhdGluZyAucGFydGlhbC5pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdcXGYwMDYnO1xufVxuLnVpLnN0YXIucmF0aW5nIC5wYXJ0aWFsLmljb24ge1xuICBjb250ZW50OiAnXFxmMDA1Jztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIZWFydFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW1wdHkgSGVhcnRcbi51aS5oZWFydC5yYXRpbmcgLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjA4YSc7XG59XG4qL1xuLnVpLmhlYXJ0LnJhdGluZyAuaWNvbjpiZWZvcmUge1xuICBjb250ZW50OiAnXFxmMDA0Jztcbn1cbi8qIEFjdGl2ZSAqL1xuLnVpLmhlYXJ0LnJhdGluZyAuYWN0aXZlLmljb246YmVmb3JlIHtcbiAgY29udGVudDogJ1xcZjAwNCc7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTZWFyY2hcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWFyY2hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTZWFyY2ggUHJvbXB0ICovXG4vKiBNb2JpbGUgKi9cbi8qIFJlc3VsdCBCb3ggKi9cbi8qIFJlc3VsdCAqL1xuLyogUmVzdWx0IEltYWdlICovXG4vKiBSZXN1bHQgQ29udGVudCAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIFByaWNlICovXG4vKiBTcGVjaWFsIE1lc3NhZ2UgKi9cbi8qIEFsbCBSZXN1bHRzIExpbmsgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBGb2N1cyAqL1xuLyogSG92ZXIgKi9cbi8qIExvYWRpbmcgKi9cbi8qIEFjdGl2ZSBDYXRlZ29yeSAqL1xuLyogQWN0aXZlIFJlc3VsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VsZWN0aW9uICovXG4vKiBDYXRlZ29yeSAqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTZWFyY2hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTZWFyY2ggUHJvbXB0ICovXG4vKiBNb2JpbGUgKi9cbi8qIFJlc3VsdCBCb3ggKi9cbi8qIFJlc3VsdCAqL1xuLyogUmVzdWx0IEltYWdlICovXG4vKiBSZXN1bHQgQ29udGVudCAqL1xuLyogRGVzY3JpcHRpb24gKi9cbi8qIFByaWNlICovXG4vKiBTcGVjaWFsIE1lc3NhZ2UgKi9cbi8qIEFsbCBSZXN1bHRzIExpbmsgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBGb2N1cyAqL1xuLyogSG92ZXIgKi9cbi8qIExvYWRpbmcgKi9cbi8qIEFjdGl2ZSBDYXRlZ29yeSAqL1xuLyogQWN0aXZlIFJlc3VsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2VsZWN0aW9uICovXG4vKiBDYXRlZ29yeSAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUmVzdWx0IEJveCAqL1xuLyogUmVzdWx0ICovXG4vKiBEZXNjcmlwdGlvbiAqL1xuLyogUHJpY2UgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU2VhcmNoXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5zZWFyY2ggPiAucHJvbXB0IHtcbiAgbWFyZ2luOiAwZW07XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS4yMTQyODU3MWVtO1xuICBwYWRkaW5nOiAwLjY3ODU3MTQzZW0gMWVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGJveC1zaGFkb3c6IDBlbSAwZW0gMGVtIDBlbSB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjFzIGVhc2UsIGNvbG9yIDAuMXMgZWFzZSwgYm94LXNoYWRvdyAwLjFzIGVhc2UsIGJvcmRlci1jb2xvciAwLjFzIGVhc2U7XG59XG4udWkuc2VhcmNoIC5wcm9tcHQge1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIEljb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoIC5wcm9tcHQgfiAuc2VhcmNoLmljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgUmVzdWx0c1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwJTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICB3aWR0aDogMTllbTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xMiksIDBweCAycHggMTBweCAwcHggcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q0RDRENTtcbiAgei1pbmRleDogOTk4O1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtIDBlbSAwZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDBlbSAwZW0gMC4yMTQyODU3MXJlbSAwLjIxNDI4NTcxcmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIFJlc3VsdFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDAuODU3MTQyODZlbSAxLjE0Mjg1NzE0ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQ6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qIEltYWdlICovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAuaW1hZ2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiA1ZW07XG4gIGhlaWdodDogM2VtO1xuICBib3JkZXItcmFkaXVzOiAwLjI1ZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBJbmZvXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmltYWdlICsgLmNvbnRlbnQge1xuICBtYXJnaW46IDBlbSA2ZW0gMGVtIDBlbTtcbn1cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0IC50aXRsZSB7XG4gIG1hcmdpbjogLTAuMTQyODU3MTRlbSAwZW0gMGVtO1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQgLmRlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2ZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdCAucHJpY2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiAjMkM2QTlFO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIE1lc3NhZ2Vcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiAubWVzc2FnZSB7XG4gIHBhZGRpbmc6IDFlbSAxZW07XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiAubWVzc2FnZSAuaGVhZGVyIHtcbiAgZm9udC1mYW1pbHk6ICdMYXRvJywgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiAubWVzc2FnZSAuZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4vKiBWaWV3IEFsbCBSZXN1bHRzICovXG4udWkuc2VhcmNoID4gLnJlc3VsdHMgPiAuYWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG4gIHBhZGRpbmc6IDAuOTI4NTcxNDNlbSAxZW07XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucHJvbXB0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNiwgMzgsIDAuMzUpO1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk1KTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxvYWRpbmcuc2VhcmNoIC5pbnB1dCA+IGkuaWNvbjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXI6IDAuMmVtIHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi51aS5sb2FkaW5nLnNlYXJjaCAuaW5wdXQgPiBpLmljb246YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0wLjY0Mjg1NzE0ZW0gMGVtIDBlbSAtMC42NDI4NTcxNGVtO1xuICB3aWR0aDogMS4yODU3MTQyOWVtO1xuICBoZWlnaHQ6IDEuMjg1NzE0MjllbTtcbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zZWFyY2ggPiAucmVzdWx0cyAucmVzdWx0OmhvdmVyLFxuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI0Y5RkFGQjtcbn1cbi51aS5zZWFyY2ggLmFjdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNFMEUwRTA7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICNGM0Y0RjU7XG59XG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5LmFjdGl2ZSA+IC5uYW1lIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4udWkuc2VhcmNoID4gLnJlc3VsdHMgLnJlc3VsdC5hY3RpdmUsXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5IC5yZXN1bHQuYWN0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQuYWN0aXZlIC50aXRsZSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLnVpLnNlYXJjaCA+IC5yZXN1bHRzIC5yZXN1bHQuYWN0aXZlIC5kZXNjcmlwdGlvbiB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaXNhYmxlZCAqL1xuLnVpLmRpc2FibGVkLnNlYXJjaCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBTZWxlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2VhcmNoLnNlbGVjdGlvbiAucHJvbXB0IHtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi8qIFJlbW92ZSBpbnB1dCAqL1xuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dCA+IC5yZW1vdmUuaWNvbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIGNvbG9yOiAnJztcbiAgdG9wOiAwZW07XG4gIHJpZ2h0OiAwZW07XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZSwgb3BhY2l0eSAwLjFzIGVhc2U7XG59XG4udWkuc2VhcmNoLnNlbGVjdGlvbiA+IC5pY29uLmlucHV0ID4gLmFjdGl2ZS5yZW1vdmUuaWNvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC44O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi51aS5zZWFyY2guc2VsZWN0aW9uID4gLmljb24uaW5wdXQ6bm90KFtjbGFzcyo9XCJsZWZ0IGljb25cIl0pID4gLmljb24gfiAucmVtb3ZlLmljb24ge1xuICByaWdodDogMS44NTcxNGVtO1xufVxuLnVpLnNlYXJjaC5zZWxlY3Rpb24gPiAuaWNvbi5pbnB1dCA+IC5yZW1vdmUuaWNvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgIENhdGVnb3J5XG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCAucmVzdWx0cyB7XG4gIHdpZHRoOiAyOGVtO1xufVxuLnVpLmNhdGVnb3J5LnNlYXJjaCAucmVzdWx0cy5hbmltYXRpbmcsXG4udWkuY2F0ZWdvcnkuc2VhcmNoIC5yZXN1bHRzLnZpc2libGUge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cbi8qIENhdGVnb3J5ICovXG4udWkuY2F0ZWdvcnkuc2VhcmNoID4gLnJlc3VsdHMgLmNhdGVnb3J5IHtcbiAgZGlzcGxheTogdGFibGUtcm93O1xuICBiYWNrZ3JvdW5kOiAjRjNGNEY1O1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMXMgZWFzZTtcbn1cbi8qIExhc3QgQ2F0ZWdvcnkgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnk6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4vKiBGaXJzdCAvIExhc3QgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnk6Zmlyc3QtY2hpbGQgLm5hbWUgKyAucmVzdWx0IHtcbiAgYm9yZGVyLXJhZGl1czogMGVtIDAuMjE0Mjg1NzFyZW0gMGVtIDBlbTtcbn1cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnk6bGFzdC1jaGlsZCAucmVzdWx0Omxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwZW0gMGVtIDAuMjE0Mjg1NzFyZW0gMGVtO1xufVxuLyogQ2F0ZWdvcnkgUmVzdWx0IE5hbWUgKi9cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgPiAubmFtZSB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aWR0aDogMTAwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBmb250LWZhbWlseTogJ0xhdG8nLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZzogMC40ZW0gMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi8qIENhdGVnb3J5IFJlc3VsdCAqL1xuLnVpLmNhdGVnb3J5LnNlYXJjaCA+IC5yZXN1bHRzIC5jYXRlZ29yeSAucmVzdWx0cyB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xKTtcbn1cbi51aS5jYXRlZ29yeS5zZWFyY2ggPiAucmVzdWx0cyAuY2F0ZWdvcnkgLnJlc3VsdCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcyBlYXNlLCBib3JkZXItY29sb3IgMC4xcyBlYXNlO1xuICBwYWRkaW5nOiAwLjg1NzE0Mjg2ZW0gMS4xNDI4NTcxNGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVmFyaWF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBMZWZ0IC8gUmlnaHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi51aVtjbGFzcyo9XCJsZWZ0IGFsaWduZWRcIl0uc2VhcmNoID4gLnJlc3VsdHMge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMCU7XG59XG4udWlbY2xhc3MqPVwicmlnaHQgYWxpZ25lZFwiXS5zZWFyY2ggPiAucmVzdWx0cyB7XG4gIHJpZ2h0OiAwJTtcbiAgbGVmdDogYXV0bztcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBGbHVpZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5mbHVpZC5zZWFyY2ggLnJlc3VsdHMge1xuICB3aWR0aDogMTAwJTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLm1pbmkuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAwLjc4NTcxNDI5ZW07XG59XG4udWkuc21hbGwuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAwLjkyODU3MTQzZW07XG59XG4udWkuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4udWkubGFyZ2Uuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAxLjE0Mjg1NzE0ZW07XG59XG4udWkuYmlnLnNlYXJjaCB7XG4gIGZvbnQtc2l6ZTogMS4yODU3MTQyOWVtO1xufVxuLnVpLmh1Z2Uuc2VhcmNoIHtcbiAgZm9udC1zaXplOiAxLjQyODU3MTQzZW07XG59XG4udWkubWFzc2l2ZS5zZWFyY2gge1xuICBmb250LXNpemU6IDEuNzE0Mjg1NzFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIE1vYmlsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVpLnNlYXJjaCAucmVzdWx0cyB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMnJlbSk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaGFwZVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaGFwZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLyogU2lkZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDdWJlICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaGFwZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLyogU2lkZSAqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICAgVHlwZXNcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBDdWJlICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAgU2hhcGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkuc2hhcGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGVyc3BlY3RpdmU6IDIwMDBweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQsIGxlZnQgMC42cyBlYXNlLWluLW91dCwgd2lkdGggMC42cyBlYXNlLWluLW91dCwgaGVpZ2h0IDAuNnMgZWFzZS1pbi1vdXQ7XG59XG4udWkuc2hhcGUgLnNpZGVzIHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi51aS5zaGFwZSAuc2lkZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBlbSAhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4udWkuc2hhcGUgLnNpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnVpLnNoYXBlIC5zaWRlICoge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLmN1YmUuc2hhcGUgLnNpZGUge1xuICBtaW4td2lkdGg6IDE1ZW07XG4gIGhlaWdodDogMTVlbTtcbiAgcGFkZGluZzogMmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZFNkU2O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjg3KTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuLnVpLmN1YmUuc2hhcGUgLnNpZGUgPiAuY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHVzZXItc2VsZWN0OiB0ZXh0O1xufVxuLnVpLmN1YmUuc2hhcGUgLnNpZGUgPiAuY29udGVudCA+IGRpdiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLnRleHQuc2hhcGUuYW5pbWF0aW5nIC5zaWRlcyB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG4udWkudGV4dC5zaGFwZSAuc2lkZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udWkudGV4dC5zaGFwZSAuc2lkZSA+ICoge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgTG9hZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5sb2FkaW5nLnNoYXBlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5cHg7XG4gIGxlZnQ6IC05OTk5cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgQW5pbWF0aW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnNoYXBlIC5hbmltYXRpbmcuc2lkZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDEwMDtcbn1cbi51aS5zaGFwZSAuaGlkZGVuLnNpZGUge1xuICBvcGFjaXR5OiAwLjY7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBDU1Ncbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2hhcGUuYW5pbWF0aW5nIC5zaWRlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi51aS5zaGFwZS5hbmltYXRpbmcgLnNpZGVzIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgZWFzZS1pbi1vdXQsIGxlZnQgMC42cyBlYXNlLWluLW91dCwgd2lkdGggMC42cyBlYXNlLWluLW91dCwgaGVpZ2h0IDAuNnMgZWFzZS1pbi1vdXQ7XG59XG4udWkuc2hhcGUuYW5pbWF0aW5nIC5zaWRlIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGVhc2UtaW4tb3V0O1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuc2hhcGUgLmFjdGl2ZS5zaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGhlbWUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVXNlciBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBTaWRlYmFyXG4gKiBodHRwOi8vZ2l0aHViLmNvbS9zZW1hbnRpYy1vcmcvc2VtYW50aWMtdWkvXG4gKlxuICpcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVFxuICpcbiAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFNpZGViYXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBDb250ZW50XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBBbmltYXRpb24gKi9cbi8qIERpbW1lciAqL1xuLyogQ29sb3IgYmVsb3cgcGFnZSAqL1xuLyogU2hhZG93ICovXG4vKiBMYXllcmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBXaWR0aCAqL1xuLyogSGVpZ2h0ICovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTaWRlYmFyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogQW5pbWF0aW9uICovXG4vKiBEaW1tZXIgKi9cbi8qIENvbG9yIGJlbG93IHBhZ2UgKi9cbi8qIFNoYWRvdyAqL1xuLyogTGF5ZXJpbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgVmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogV2lkdGggKi9cbi8qIEhlaWdodCAqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFNpZGViYXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBTaWRlYmFyIE1lbnUgKi9cbi51aS5zaWRlYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwZW0gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMDI7XG59XG4vKiBHUFUgTGF5ZXJzIGZvciBDaGlsZCBFbGVtZW50cyAqL1xuLnVpLnNpZGViYXIgPiAqIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgRGlyZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLmxlZnQuc2lkZWJhciB7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xufVxuLnVpLnJpZ2h0LnNpZGViYXIge1xuICByaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwJSwgMCk7XG59XG4udWkudG9wLnNpZGViYXIsXG4udWkuYm90dG9tLnNpZGViYXIge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi51aS50b3Auc2lkZWJhciB7XG4gIHRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2lkZWJhciB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IDBweCAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQdXNoYWJsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwYWRkaW5nOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qIFdob2xlIFBhZ2UgKi9cbmJvZHkucHVzaGFibGUge1xuICBiYWNrZ3JvdW5kOiAjNTQ1NDU0ICFpbXBvcnRhbnQ7XG59XG4vKiBQYWdlIENvbnRleHQgKi9cbi5wdXNoYWJsZTpub3QoYm9keSkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuLnB1c2hhYmxlOm5vdChib2R5KSA+IC51aS5zaWRlYmFyLFxuLnB1c2hhYmxlOm5vdChib2R5KSA+IC5maXhlZCxcbi5wdXNoYWJsZTpub3QoYm9keSkgPiAucHVzaGVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGaXhlZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgei1pbmRleDogMTAxO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnB1c2hhYmxlID4gLnB1c2hlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgei1pbmRleDogMjtcbn1cbmJvZHkucHVzaGFibGUgPiAucHVzaGVyIHtcbiAgYmFja2dyb3VuZDogI0U5RUFFRDtcbn1cbi8qIFB1c2hlciBzaG91bGQgaW5oZXJpdCBiYWNrZ3JvdW5kIGZyb20gY29udGV4dCAqL1xuLnB1c2hhYmxlID4gLnB1c2hlciB7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpbW1lclxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMHB4O1xuICByaWdodDogMHB4O1xuICBjb250ZW50OiAnJztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgei1pbmRleDogMTAwMDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBDb3VwbGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi51aS5zaWRlYmFyLm1lbnUgLml0ZW0ge1xuICBib3JkZXItcmFkaXVzOiAwZW0gIWltcG9ydGFudDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgIERpbW1lZFxuLS0tLS0tLS0tLS0tLS0tKi9cbi5wdXNoYWJsZSA+IC5wdXNoZXIuZGltbWVkOmFmdGVyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBBbmltYXRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4udWkuYW5pbWF0aW5nLnNpZGViYXIge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBWaXNpYmxlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnZpc2libGUuc2lkZWJhciB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4vKiBTaGFkb3cgRGlyZWN0aW9uICovXG4udWkubGVmdC52aXNpYmxlLnNpZGViYXIsXG4udWkucmlnaHQudmlzaWJsZS5zaWRlYmFyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4udWkudG9wLnZpc2libGUuc2lkZWJhcixcbi51aS5ib3R0b20udmlzaWJsZS5zaWRlYmFyIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAyMHB4IHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4vKiBWaXNpYmxlIE9uIExvYWQgKi9cbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI2MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI2MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnRvcC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudG9wLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzNnB4LCAwKTtcbn1cbi51aS52aXNpYmxlLmJvdHRvbS5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUuYm90dG9tLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzZweCwgMCk7XG59XG4vKiBvcHBvc2l0ZSBzaWRlcyB2aXNpYmxlIGZvcmNlcyBjb250ZW50IG92ZXJsYXkgKi9cbi51aS52aXNpYmxlLmxlZnQuc2lkZWJhciB+IC51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAudWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnB1c2hlcixcbi51aS52aXNpYmxlLnJpZ2h0LnNpZGViYXIgfiAudWkudmlzaWJsZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS5yaWdodC5zaWRlYmFyIH4gLnVpLnZpc2libGUubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICAgaU9TXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgICBXaWR0aFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExlZnQgLyBSaWdodCAqL1xuLnVpLnRoaW4ubGVmdC5zaWRlYmFyLFxuLnVpLnRoaW4ucmlnaHQuc2lkZWJhciB7XG4gIHdpZHRoOiAxNTBweDtcbn1cbi51aVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyLFxuLnVpW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDYwcHg7XG59XG4udWkubGVmdC5zaWRlYmFyLFxuLnVpLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogMjYwcHg7XG59XG4udWkud2lkZS5sZWZ0LnNpZGViYXIsXG4udWkud2lkZS5yaWdodC5zaWRlYmFyIHtcbiAgd2lkdGg6IDM1MHB4O1xufVxuLnVpW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5sZWZ0LnNpZGViYXIsXG4udWlbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIge1xuICB3aWR0aDogNDc1cHg7XG59XG4vKiBMZWZ0IFZpc2libGUgKi9cbi51aS52aXNpYmxlLnRoaW4ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudGhpbi5sZWZ0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxNTBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHRoaW5cIl0ubGVmdC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGUud2lkZS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS53aWRlLmxlZnQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDM1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgd2lkZVwiXS5sZWZ0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNDc1cHgsIDAsIDApO1xufVxuLyogUmlnaHQgVmlzaWJsZSAqL1xuLnVpLnZpc2libGUudGhpbi5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGUudGhpbi5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1MHB4LCAwLCAwKTtcbn1cbi51aS52aXNpYmxlW2NsYXNzKj1cInZlcnkgdGhpblwiXS5yaWdodC5zaWRlYmFyIH4gLmZpeGVkLFxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB0aGluXCJdLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNjBweCwgMCwgMCk7XG59XG4udWkudmlzaWJsZS53aWRlLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZS53aWRlLnJpZ2h0LnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMzUwcHgsIDAsIDApO1xufVxuLnVpLnZpc2libGVbY2xhc3MqPVwidmVyeSB3aWRlXCJdLnJpZ2h0LnNpZGViYXIgfiAuZml4ZWQsXG4udWkudmlzaWJsZVtjbGFzcyo9XCJ2ZXJ5IHdpZGVcIl0ucmlnaHQuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00NzVweCwgMCwgMCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFuaW1hdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgT3ZlcmxheVxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNldC11cCAqL1xuLnVpLm92ZXJsYXkuc2lkZWJhciB7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIEluaXRpYWwgKi9cbi51aS5sZWZ0Lm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAlLCAwKTtcbn1cbi51aS5yaWdodC5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAlLCAwKTtcbn1cbi51aS50b3Aub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgLTEwMCUsIDApO1xufVxuLnVpLmJvdHRvbS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAxMDAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLmFuaW1hdGluZy51aS5vdmVybGF5LnNpZGViYXIsXG4udWkudmlzaWJsZS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAtIFNpZGViYXIgKi9cbi51aS52aXNpYmxlLmxlZnQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLnVpLnZpc2libGUucmlnaHQub3ZlcmxheS5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgMCUsIDApO1xufVxuLnVpLnZpc2libGUudG9wLm92ZXJsYXkuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAlLCAwKTtcbn1cbi51aS52aXNpYmxlLmJvdHRvbS5vdmVybGF5LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwJSwgMCk7XG59XG4vKiBFbmQgLSBQdXNoZXIgKi9cbi51aS52aXNpYmxlLm92ZXJsYXkuc2lkZWJhciB+IC5maXhlZCxcbi51aS52aXNpYmxlLm92ZXJsYXkuc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIFB1c2hcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkucHVzaC5zaWRlYmFyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDUwMG1zIGVhc2U7XG4gIHotaW5kZXg6IDEwMjtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xufVxuLnVpLnRvcC5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnB1c2guc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDEwMCUsIDApO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS5wdXNoLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAwLCAwKTtcbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICBVbmNvdmVyXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnVuY292ZXIuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBFbmQgKi9cbi51aS52aXNpYmxlLnVuY292ZXIuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2xpZGUgQWxvbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbml0aWFsICovXG4udWkuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBTaWRlYmFyIC0gSW5pdGlhbCAqL1xuLnVpLmxlZnQuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG59XG4udWkucmlnaHQuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbn1cbi51aS50b3Auc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG59XG4udWkuYm90dG9tLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCA1MCUsIDApO1xufVxuLyogQW5pbWF0aW9uICovXG4udWkuYW5pbWF0aW5nLnNsaWRlLmFsb25nLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2xpZGUuYWxvbmcuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2xpZGUgT3V0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW5pdGlhbCAqL1xuLnVpLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgei1pbmRleDogMTtcbn1cbi8qIFNpZGViYXIgLSBJbml0aWFsICovXG4udWkubGVmdC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG59XG4udWkudG9wLnNsaWRlLm91dC5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwJSwgNTAlLCAwKTtcbn1cbi51aS5ib3R0b20uc2xpZGUub3V0LnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtNTAlLCAwKTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLyogRW5kICovXG4udWkudmlzaWJsZS5zbGlkZS5vdXQuc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgU2NhbGUgRG93blxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEluaXRpYWwgKi9cbi51aS5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNTAwbXMgZWFzZTtcbiAgei1pbmRleDogMTAyO1xufVxuLyogU2lkZWJhciAtIEluaXRpYWwgICovXG4udWkubGVmdC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbn1cbi51aS5yaWdodC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xufVxuLnVpLnRvcC5zY2FsZS5kb3duLnNpZGViYXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAlLCAtMTAwJSwgMCk7XG59XG4udWkuYm90dG9tLnNjYWxlLmRvd24uc2lkZWJhciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDEwMCUsIDApO1xufVxuLyogUHVzaGVyIC0gSW5pdGlhbCAqL1xuLnVpLnNjYWxlLmRvd24ubGVmdC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDc1JSA1MCU7XG59XG4udWkuc2NhbGUuZG93bi5yaWdodC5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDI1JSA1MCU7XG59XG4udWkuc2NhbGUuZG93bi50b3Auc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNzUlO1xufVxuLnVpLnNjYWxlLmRvd24uYm90dG9tLnNpZGViYXIgfiAucHVzaGVyIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDI1JTtcbn1cbi8qIEFuaW1hdGlvbiAqL1xuLnVpLmFuaW1hdGluZy5zY2FsZS5kb3duID4gLnZpc2libGUudWkuc2lkZWJhciB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA1MDBtcyBlYXNlO1xufVxuLnVpLnZpc2libGUuc2NhbGUuZG93bi5zaWRlYmFyIH4gLnB1c2hlcixcbi51aS5hbmltYXRpbmcuc2NhbGUuZG93bi5zaWRlYmFyIH4gLnB1c2hlciB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cbi8qIEVuZCAqL1xuLnVpLnZpc2libGUuc2NhbGUuZG93bi5zaWRlYmFyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cbi51aS52aXNpYmxlLnNjYWxlLmRvd24uc2lkZWJhciB+IC5wdXNoZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNzUpO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFRoZW1lIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIVxuICogIyBTZW1hbnRpYyBVSSAtIFN0aWNreVxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0aWNreVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RpY2t5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0aWNreVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS5zdGlja3kge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB6LWluZGV4OiA4MDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQm91bmQgKi9cbi51aS5zdGlja3kuYm91bmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogRml4ZWQgKi9cbi51aS5zdGlja3kuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiBhdXRvO1xufVxuLyogQm91bmQvRml4ZWQgUG9zaXRpb24gKi9cbi51aS5zdGlja3kuYm91bmQudG9wLFxuLnVpLnN0aWNreS5maXhlZC50b3Age1xuICB0b3A6IDBweDtcbiAgYm90dG9tOiBhdXRvO1xufVxuLnVpLnN0aWNreS5ib3VuZC5ib3R0b20sXG4udWkuc3RpY2t5LmZpeGVkLmJvdHRvbSB7XG4gIHRvcDogYXV0bztcbiAgYm90dG9tOiAwcHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4udWkubmF0aXZlLnN0aWNreSB7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgcG9zaXRpb246IC1tb3otc3RpY2t5O1xuICBwb3NpdGlvbjogLW1zLXN0aWNreTtcbiAgcG9zaXRpb246IC1vLXN0aWNreTtcbiAgcG9zaXRpb246IHN0aWNreTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBUaGVtZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqICMgU2VtYW50aWMgVUkgLSBUYWJcbiAqIGh0dHA6Ly9naXRodWIuY29tL3NlbWFudGljLW9yZy9zZW1hbnRpYy11aS9cbiAqXG4gKlxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgIFRhYlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIExvYWRpbmcgKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgICBUYWJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBMb2FkaW5nICovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFVzZXIgVmFyaWFibGUgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgVUkgVGFic1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi51aS50YWIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYi5hY3RpdmUsXG4udWkudGFiLm9wZW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnVpLnRhYi5sb2FkaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogMjUwcHg7XG59XG4udWkudGFiLmxvYWRpbmcgKiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICBsZWZ0OiAtMTAwMDBweCAhaW1wb3J0YW50O1xufVxuLnVpLnRhYi5sb2FkaW5nOmJlZm9yZSxcbi51aS50YWIubG9hZGluZy5zZWdtZW50OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMTAwcHg7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMS4yNWVtIDBlbSAwZW0gLTEuMjVlbTtcbiAgd2lkdGg6IDIuNWVtO1xuICBoZWlnaHQ6IDIuNWVtO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlcjogMC4yZW0gc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnVpLnRhYi5sb2FkaW5nOmFmdGVyLFxuLnVpLnRhYi5sb2FkaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDEwMHB4O1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuMjVlbSAwZW0gMGVtIC0xLjI1ZW07XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbiAgYW5pbWF0aW9uOiBidXR0b24tc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwMHJlbTtcbiAgYm9yZGVyLWNvbG9yOiAjNzY3Njc2IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDAuMmVtO1xuICBib3gtc2hhZG93OiAwcHggMHB4IDBweCAxcHggdHJhbnNwYXJlbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgVGFiIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFVzZXIgT3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyohXG4gKiAjIFNlbWFudGljIFVJIC0gVHJhbnNpdGlvblxuICogaHR0cDovL2dpdGh1Yi5jb20vc2VtYW50aWMtb3JnL3NlbWFudGljLXVpL1xuICpcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgVHJhbnNpdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgVXNlciBWYXJpYWJsZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIFRyYW5zaXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xuICBhbmltYXRpb24tZHVyYXRpb246IDMwMG1zO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIEFuaW1hdGluZyAqL1xuLmFuaW1hdGluZy50cmFuc2l0aW9uIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG59XG4vKiBMb2FkaW5nICovXG4ubG9hZGluZy50cmFuc2l0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC05OTk5OXB4O1xuICBsZWZ0OiAtOTk5OTlweDtcbn1cbi8qIEhpZGRlbiAqL1xuLmhpZGRlbi50cmFuc2l0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogVmlzaWJsZSAqL1xuLnZpc2libGUudHJhbnNpdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgLyogIGJhY2tmYWNlLXZpc2liaWxpdHk6IEBiYWNrZmFjZVZpc2liaWxpdHk7XG4gIHRyYW5zZm9ybTogQHVzZTNEQWNjZWxlcmF0aW9uOyovXG59XG4vKiBEaXNhYmxlZCAqL1xuLmRpc2FibGVkLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBWYXJpYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmxvb3BpbmcudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUcmFuc2l0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG4gIFNvbWUgdHJhbnNpdGlvbnMgYWRhcHRlZCBmcm9tIEFuaW1hdGUgQ1NTXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5lZGVuL2FuaW1hdGUuY3NzXG5cbiAgQWRkaXRpb25hbCB0cmFuc2l0aW9ucyBhZGFwdGVkIGZyb20gR2xpZGVcbiAgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZVxuKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJvd3NlXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uYnJvd3NlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBicm93c2VJbjtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5vdXQsXG4udHJhbnNpdGlvbi5icm93c2UubGVmdC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uLmJyb3dzZS5yaWdodC5vdXQge1xuICBhbmltYXRpb24tbmFtZTogYnJvd3NlT3V0UmlnaHQ7XG59XG4vKiBJbiAqL1xuQGtleWZyYW1lcyBicm93c2VJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWigwcHgpO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG4gIDEwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVooMHB4KTtcbiAgICB6LWluZGV4OiA5OTk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBicm93c2VPdXRMZWZ0IHtcbiAgMCUge1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpIHJvdGF0ZVkoMGRlZykgcm90YXRlWCgwZGVnKTtcbiAgfVxuICA1MCUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSkgcm90YXRlWSgzNWRlZykgcm90YXRlWCgxMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gIH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpIHRyYW5zbGF0ZVooLTEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYnJvd3NlT3V0UmlnaHQge1xuICAwJSB7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSkgcm90YXRlWSgwZGVnKSByb3RhdGVYKDBkZWcpO1xuICB9XG4gIDUwJSB7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTA1JSkgcm90YXRlWSgzNWRlZykgcm90YXRlWCgxMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gIH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVgoMGRlZykgdHJhbnNsYXRlWigtMTBweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBEcm9wXG4tLS0tLS0tLS0tLS0tLS0qL1xuLmRyb3AudHJhbnNpdGlvbiB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNDAwbXM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM0LCAxLjYxLCAwLjcsIDEpO1xufVxuLmRyb3AudHJhbnNpdGlvbi5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBkcm9wSW47XG59XG4uZHJvcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBkcm9wT3V0O1xufVxuLyogRHJvcCAqL1xuQGtleWZyYW1lcyBkcm9wSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBkcm9wT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgIEZhZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5mYWRlLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgdXBcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgbGVmdFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSByaWdodFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodDtcbn1cbi50cmFuc2l0aW9uLmZhZGUub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmYWRlIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmFkZSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZhZGUgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbn1cbi8qIEluICovXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUlKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNSUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUlKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBGbGlwc1xuLS0tLS0tLS0tLS0tLS0tKi9cbi5mbGlwLnRyYW5zaXRpb24uaW4sXG4uZmxpcC50cmFuc2l0aW9uLm91dCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNjAwbXM7XG59XG4uaG9yaXpvbnRhbC5mbGlwLnRyYW5zaXRpb24uaW4ge1xuICBhbmltYXRpb24tbmFtZTogaG9yaXpvbnRhbEZsaXBJbjtcbn1cbi5ob3Jpem9udGFsLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogaG9yaXpvbnRhbEZsaXBPdXQ7XG59XG4udmVydGljYWwuZmxpcC50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHZlcnRpY2FsRmxpcEluO1xufVxuLnZlcnRpY2FsLmZsaXAudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogdmVydGljYWxGbGlwT3V0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgaG9yaXpvbnRhbEZsaXBJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyB2ZXJ0aWNhbEZsaXBJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIGhvcml6b250YWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdmVydGljYWxGbGlwT3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKDBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBTY2FsZVxuLS0tLS0tLS0tLS0tLS0tKi9cbi5zY2FsZS50cmFuc2l0aW9uLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNjYWxlSW47XG59XG4uc2NhbGUudHJhbnNpdGlvbi5vdXQge1xuICBhbmltYXRpb24tbmFtZTogc2NhbGVPdXQ7XG59XG5Aa2V5ZnJhbWVzIHNjYWxlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgc2NhbGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBGbHlcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbndhcmQgKi9cbi50cmFuc2l0aW9uLmZseSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC42cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xufVxuLnRyYW5zaXRpb24uZmx5LmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHVwXCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseUluVXA7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgZG93blwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbkRvd247XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgbGVmdFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlJbkxlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgcmlnaHRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogZmx5SW5SaWdodDtcbn1cbi8qIE91dHdhcmQgKi9cbi50cmFuc2l0aW9uLmZseS5vdXQge1xuICBhbmltYXRpb24tbmFtZTogZmx5T3V0O1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXRVcDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cImZseSBkb3duXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbHlPdXREb3duO1xufVxuLnRyYW5zaXRpb25bY2xhc3MqPVwiZmx5IGxlZnRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dExlZnQ7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJmbHkgcmlnaHRcIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZseU91dFJpZ2h0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgZmx5SW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC4zLCAwLjMsIDAuMyk7XG4gIH1cbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk3LCAwLjk3LCAwLjk3KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJblVwIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxNTAwcHgsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZmx5SW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTUwMHB4LCAwKTtcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuQGtleWZyYW1lcyBmbHlJbkxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDE1MDBweCwgMCwgMCk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNTAwcHgsIDAsIDApO1xuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApO1xuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4vKiBPdXQgKi9cbkBrZXlmcmFtZXMgZmx5T3V0IHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC45LCAwLjksIDAuOSk7XG4gIH1cbiAgNTAlLFxuICA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuMywgMC4zLCAwLjMpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dFVwIHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICB9XG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dERvd24ge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG4gIDQwJSxcbiAgNDUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dFJpZ2h0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZseU91dExlZnQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjBweCwgMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS1cbiAgICAgU2xpZGVcbi0tLS0tLS0tLS0tLS0tLSovXG4udHJhbnNpdGlvbi5zbGlkZS5pbixcbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluWTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5YO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi50cmFuc2l0aW9uLnNsaWRlLm91dCxcbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0WTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzbGlkZSBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInNsaWRlIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgc2xpZGVJblkge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlSW5YIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxufVxuLyogT3V0ICovXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0WSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGVPdXRYIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLVxuICAgICBTd2luZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi50cmFuc2l0aW9uLnN3aW5nIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA4MDBtcztcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGRvd25cIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyB1cFwiXS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ0luWDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGxlZnRcIl0uaW4ge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmdJblk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHJpZ2h0XCJdLmluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nSW5ZO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgbGVmdDtcbn1cbi50cmFuc2l0aW9uLnN3aW5nLm91dCxcbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIGRvd25cIl0ub3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nT3V0WDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHVwXCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG59XG4udHJhbnNpdGlvbltjbGFzcyo9XCJzd2luZyBsZWZ0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciByaWdodDtcbn1cbi50cmFuc2l0aW9uW2NsYXNzKj1cInN3aW5nIHJpZ2h0XCJdLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZ091dFk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBsZWZ0O1xufVxuLyogSW4gKi9cbkBrZXlmcmFtZXMgc3dpbmdJblgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgxNWRlZyk7XG4gIH1cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtNy41ZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzd2luZ0luWSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgzMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKC0xNy41ZGVnKTtcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDcuNWRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gIH1cbn1cbi8qIE91dCAqL1xuQGtleWZyYW1lcyBzd2luZ091dFgge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMGRlZyk7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtNy41ZGVnKTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDE3LjVkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoLTMwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVYKDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHN3aW5nT3V0WSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgwZGVnKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTAwMHB4KSByb3RhdGVZKDcuNWRlZyk7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSgtMTBkZWcpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMzBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgICBab29tXG4tLS0tLS0tLS0tLS0tLS0qL1xuLnRyYW5zaXRpb24uem9vbS5pbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47XG59XG4udHJhbnNpdGlvbi56b29tLm91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0O1xufVxuQGtleWZyYW1lcyB6b29tSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyB6b29tT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgU3RhdGljIEFuaW1hdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICAgRW1waGFzaXNcbi0tLS0tLS0tLS0tLS0tLSovXG4uZmxhc2gudHJhbnNpdGlvbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNzUwbXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGFzaDtcbn1cbi5zaGFrZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xufVxuLmJvdW5jZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZTtcbn1cbi50YWRhLnRyYW5zaXRpb24ge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zO1xuICBhbmltYXRpb24tbmFtZTogdGFkYTtcbn1cbi5wdWxzZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlO1xufVxuLmppZ2dsZS50cmFuc2l0aW9uIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA3NTBtcztcbiAgYW5pbWF0aW9uLW5hbWU6IGppZ2dsZTtcbn1cbi50cmFuc2l0aW9uLmdsb3cge1xuICBhbmltYXRpb24tZHVyYXRpb246IDIwMDBtcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpO1xufVxuLnRyYW5zaXRpb24uZ2xvdyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBnbG93O1xufVxuLyogRmxhc2ggKi9cbkBrZXlmcmFtZXMgZmxhc2gge1xuICAwJSxcbiAgNTAlLFxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDI1JSxcbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4vKiBTaGFrZSAqL1xuQGtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbiAgMTAlLFxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIH1cbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gIH1cbn1cbi8qIEJvdW5jZSAqL1xuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSxcbiAgMjAlLFxuICA1MCUsXG4gIDgwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG4gIH1cbn1cbi8qIFRhZGEgKi9cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDEwJSxcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSkgcm90YXRlKC0zZGVnKTtcbiAgfVxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoM2RlZyk7XG4gIH1cbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHJvdGF0ZSgtM2RlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMCk7XG4gIH1cbn1cbi8qIFB1bHNlICovXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4vKiBKaWdnbGUgKi9cbkBrZXlmcmFtZXMgamlnZ2xlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgwLjk1LCAxLjA1LCAxKTtcbiAgfVxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAwLjk1LCAxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cbi8qIEdsb3cgKi9cbkBrZXlmcmFtZXMgZ2xvdyB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGQ0ZEO1xuICB9XG4gIDMwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjZDRDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGQ0ZEO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBPdmVycmlkZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBMb2dvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBUYWJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzX190YWJzLS1tYXhXaWR0aCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTIwMHB4O1xufVxuLmNzX190YWJzLS12ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uY3NfX3RhYnNXcmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYm94LXNoYWRvdzogMnB4IDJweCAxMHB4IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4yOCk7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fdGFic1dyYXBwZXIge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG4uY3NfX3RhYnNXcmFwcGVyLS1maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMjhweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLmNzX190YWJzLS12ZXJ0aWNhbCAuY3NfX3RhYnNXcmFwcGVyIHtcbiAgZmxleDogMCAwIDMwMHB4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuY3NfX3RhYnMtLXZlcnRpY2FsIC5jc19fdGFic1dyYXBwZXIge1xuICAgIGZsZXg6IGF1dG87XG4gIH1cbn1cbi5jc19fdGFicy0taW52ZXJ0ZWQgLmNzX190YWJzV3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YzRjNGM7XG4gIHBhZGRpbmc6IDFlbTtcbiAgY29sb3I6ICNmZmY7XG59XG4uY3NfX3RhYkl0ZW0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM5MjlkYWY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjMpO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuY3NfX3RhYkl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZsZXg6IGF1dG87XG4gICAgcGFkZGluZzogMC4yNWVtO1xuICB9XG59XG4uY3NfX3RhYnMtLXZlcnRpY2FsIC5jc19fdGFiSXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXI6IDBweDtcbn1cbi5jc19fdGFicy0taW52ZXJ0ZWQgLmNzX190YWJJdGVtIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uY3NfX3RhYnMtLWludmVydGVkIC5jc19fdGFiSXRlbS0tc3ViIHtcbiAgb3BhY2l0eTogMC44O1xufVxuLmNzX190YWJzLS1pbnZlcnRlZC5jc19fdGFicy0tdmVydGljYWwgLmNzX190YWJJdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM2YThjO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIG9wYWNpdHk6IDE7XG59XG4uY3NfX3RhYlNlY3Rpb24ge1xuICB3aWR0aDogMTAwJTtcbn1cbi5jc19fdGFiSGVhZCB7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fdGFiSGVhZCB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgfVxufVxuLmNzX190YWJJdGVtLS1zdWIge1xuICBoZWlnaHQ6IDBweDtcbiAgcGFkZGluZzogMCAwLjVlbSAwIDJlbTtcbiAgZm9udC1zaXplOiAwLjk1ZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuY3NfX3RhYkl0ZW0tLXN1YiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gIH1cbn1cbi5jc19fdGFiU2VjdGlvbi5jc19fdGFiU2VjdGlvbi0tYWN0aXZlIC5jc19fdGFiSXRlbS0tc3ViIHtcbiAgcGFkZGluZzogMC41ZW0gMC41ZW0gMC41ZW0gMmVtO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uY3NfX3RhYnMtLXZlcnRpY2FsIC5jc19fdGFiSXRlbS0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ViZjNmZjtcbn1cbi5jc19fdGFiSXRlbS0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUzNmE4YztcbiAgY29sb3I6IHdoaXRlO1xufVxuLmNzX190YWJJdGVtOmhvdmVyLFxuLmNzX190YWJJdGVtOmZvY3VzLFxuLmNzX190YWJJdGVtOmFjdGl2ZSxcbi5jc19fdGFiSGVhZDpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG4gIG9wYWNpdHk6IDAuNztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX190YWJfX2NvbnRlbnRzIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVlbTtcbiAgfVxufVxuLmNzX190YWJzLS12ZXJ0aWNhbCAuY3NfX3RhYl9fY29udGVudHMge1xuICBwYWRkaW5nOiAyZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fdGFicy0tdmVydGljYWwgLmNzX190YWJfX2NvbnRlbnRzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY3NfX3RhYl9fY29udGVudCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UtaW4tb3V0O1xufVxuLmNzX190YWJfX2NvbnRlbnQtLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBDUyB0YWJsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jc19fdGFibGUge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY3NfX3RhYmxlIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG59XG4uY3NfX3RhYmxlIHRhYmxlIHRoIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmNzX190YWJsZSB0YWJsZSB0aCxcbi5jc19fdGFibGUgdGFibGUgdGQge1xuICBwYWRkaW5nOiAwLjVlbTtcbn1cbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fcGlsbGFyLS1sZWZ0IHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xufVxuLmNzX190YWJsZSB0YWJsZSAuY3NfX3RhYmxlX19waWxsYXItLXJpZ2h0IHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE2KTtcbn1cbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fdG90YWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlY2VjO1xufVxuLmNzX190YWJsZSB0YWJsZSAuY3NfX3RhYmxlX190b3RhbCB0ZCxcbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fdG90YWwgdGgge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE2KTtcbn1cbi5jc19fdGFibGUgdGFibGUgdGhlYWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNmY2O1xufVxuLmNzX190YWJsZSB0YWJsZSB0aGVhZCB0cjpub3QobGFzdC1jaGlsZCkgdGgsXG4uY3NfX3RhYmxlIHRhYmxlIHRoZWFkIHRyOm5vdChsYXN0LWNoaWxkKSB0ZCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xufVxuLmNzX190YWJsZSB0YWJsZSB0aGVhZCAuY3NfX3RhYmxlX19jZWxsLS1pbnZlcnRlZEJsdWUge1xuICBjb2xvcjogIzNjOTJlMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZjZmZjtcbn1cbi5jc19fdGFibGUgdGFibGUgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQsXG4uY3NfX3RhYmxlIHRhYmxlIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRoIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNik7XG59XG4uY3NfX3RhYmxlIHRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQsXG4uY3NfX3RhYmxlIHRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE2KTtcbn1cbi5jc19fdGFibGUgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLFxuLmNzX190YWJsZSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xufVxuLmNzX190YWJsZSB0YWJsZSB0Zm9vdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWM7XG59XG4uY3NfX3RhYmxlIHRhYmxlIC5jc19fdGFibGVfX2NlbGwtLWdyZWVuIHtcbiAgY29sb3I6ICMxM2I3MTM7XG59XG4uY3NfX3RhYmxlIHRhYmxlIC5jc19fdGFibGVfX2NlbGwtLXJlZCB7XG4gIGNvbG9yOiAjZmYzNTM1O1xufVxuLmNzX190YWJsZSB0YWJsZSAuY3NfX3RhYmxlX19jZWxsLS1udW0ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fdGV4dC0tYWxpZ25MZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5jc19fdGFibGUgdGFibGUgLmNzX190YWJsZV9fY2VsbC0taW52ZXJ0ZWRCbHVlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlci1jb2xvcjogIzNjOTJlMTtcbn1cbi5jc19fdGFibGUtLWNlbnRlckFsaWduIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNzX190YWJsZS0tbWFyZ2luVG9wQm90dG9tIHtcbiAgbWFyZ2luOiAxZW0gMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX190YWJsZSB7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICB9XG4gIC5jc19fdGFibGUgdGFibGUge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICBJbmRpY2VzIFNsaWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5pbmRpY2VzX19zbGlkZXIge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jY3MtaW5kaWNlcy1wYWdlIC5pbmRpY2VzX19zbGlkZXIuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwIDAuNWVtICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjhlbSAtIDJweCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxMHB4IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4zKTtcbiAgaGVpZ2h0OiA3NXB4ICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtaW5kaWNlcy1wYWdlIC5pbmRpY2VzX19zbGlkZXIuZml4ZWQge1xuICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlc1dyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCBjYWxjKDEwMCUgLSA2MHB4KTtcbiAgaGVpZ2h0OiA3NXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjI1cztcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDE0LjMlO1xuICBmbGV4OiAwIDAgMTQuMyU7XG4gIGhlaWdodDogNzVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDAuNWVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiBibGFjaztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5pbmRpY2VzX19zbGlkZXJfX25hbWUge1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fY2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDAgMCA0MCU7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuaW5kaWNlc19fc2xpZGVyX19jaGFydCAuY3MtY2hhcnQgLmxpbmUge1xuICBzdHJva2Utd2lkdGg6IDEuNXB4O1xuICBzdHJva2U6ICNkNGQ0ZDU7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuaW5kaWNlc19fc2xpZGVyX19jaGFydCAuY3MtY2hhcnQgLmFyZWEge1xuICBvcGFjaXR5OiAwO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fY2hhcnQgLmNzLWNoYXJ0IC54LWdyaWQsXG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuaW5kaWNlc19fc2xpZGVyX19jaGFydCAuY3MtY2hhcnQgLnktZ3JpZCB7XG4gIHN0cm9rZTogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5pbmRpY2VzX19zbGlkZXJfX2NoYXJ0IC5jcy1jaGFydCAuYmcge1xuICBzdHJva2U6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIGZpbGw6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuaW5kaWNlc19fc2xpZGVyX19jaGFydCAuY3MtY2hhcnQgLnRpY2sgdGV4dCB7XG4gIG9wYWNpdHk6IDA7XG59XG4uaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgLmNvbHVtbiAuY3MtaW5kZXgtY29udGFpbmVyID4gYSAuaW5kaWNlc19fc2xpZGVyX19jaGFydCAuY3MtY2hhcnQgcGF0aDpub3QoLmxpbmUpIHtcbiAgc3Ryb2tlOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fc3RhdHMge1xuICBmbGV4OiAwIDAgNjAlO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fc3RhdHMgPiBkaXYge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLmluZGljZXNfX3NsaWRlcl9fcG9pbnRzIHNwYW46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5pbmRpY2VzX19zbGlkZXJfX3NsaWRlcyAuY29sdW1uIC5jcy1pbmRleC1jb250YWluZXIgPiBhIC5ncmVlbiB7XG4gIGNvbG9yOiAjMjFCQTQ1O1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzIC5jb2x1bW4gLmNzLWluZGV4LWNvbnRhaW5lciA+IGEgLnJlZCB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLmluZGljZXNfX3NsaWRlcl9fc2xpZGVzID4gLmNvbHVtbjpub3QoOmxhc3QtY2hpbGQpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvcmRlci1sZWZ0OiAxcHggZG90dGVkICNjOWM5Yzk7XG4gIGhlaWdodDogMTAwJTtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAwcHg7XG4gIHotaW5kZXg6IDExO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW5kaWNlc19fc2xpZGVyX19zbGlkZXMgPiAuY29sdW1uOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uaW5kaWNlc19fc2xpZGVyX19jb250cm9scyB7XG4gIGZsZXg6IDAgMCAzMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXM7XG59XG4uaW5kaWNlc19fc2xpZGVyX19jb250cm9scyBpIHtcbiAgZm9udC1zaXplOiAxLjI1ZW07XG4gIG1hcmdpbjogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uaW5kaWNlc19fc2xpZGVyX19jb250cm9sczpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGFsaWNlYmx1ZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRhYmxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXRhYmxlIHRoIC5pY29uLnNvcnQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgY29sb3I6ICM5OTk7XG59XG4uY3MtdGFibGUgdGg6aG92ZXIgLmljb24uc29ydCB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgUmFuZ2UgU2NhbGVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtcmFuZ2Utc2NhbGUge1xuICBmb250LXNpemU6IDAuOGVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmNzLXJhbmdlLXNjYWxlIC51aS5oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmNzLXJhbmdlLXNjYWxlIC5iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNzLXJhbmdlLXNjYWxlIC5iYXIgLnBvaW50IHtcbiAgaGVpZ2h0OiA4cHg7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjZmZmO1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi5jcy1yYW5nZS1zY2FsZSAuaGlnaCxcbi5jcy1yYW5nZS1zY2FsZSAubG93IHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uY3MtcmFuZ2Utc2NhbGUgLmhpZ2gge1xuICBmbG9hdDogcmlnaHQ7XG59XG4uY3MtcmFuZ2Utc2NhbGUgLmJhciAuY2FyZXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTEwcHg7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwcHggMC44ZW07XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5yYWlsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAucmFpbCAudWkucG9wdXAge1xuICBwYWRkaW5nOiAwLjNlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNBNUI4MztcbiAgbWFyZ2luOiAwcHg7XG4gIHJpZ2h0OiB1bnNldDtcbiAgdG9wOiAxMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgei1pbmRleDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnJhaWwgLnVpLnBvcHVwOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQTVCODM7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5yYWlsIC5pY29uIHtcbiAgY29sb3I6IGJsYWNrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICBtYXJnaW46IDBweDtcbiAgd2lkdGg6IG1pbi1jb250ZW50O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5oZWFkIHtcbiAgbWFyZ2luLWxlZnQ6IC0wLjhlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS42ZW07XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZjAzNjM1IDAlLCAjNDQ0NjU3IDUwJSwgIzNhYzk1YyAxMDAlKTtcbiAgaGVpZ2h0OiAxNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50IHtcbiAgdG9wOiAtMjMuNXB4O1xuICB3aWR0aDogNDVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludCAudmFsdWUsXG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50IC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQgLnRpdGxlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludCAudmFsdWUge1xuICBmb250LXNpemU6IDAuNjVlbTtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQuczIge1xuICBsZWZ0OiBjYWxjKDBweCAtIDIyLjVweCk7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnMyIC50aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNjM2Mzk7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnMxIHtcbiAgbGVmdDogY2FsYygyNSUgLSAyMi41cHgpO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludC5zMSAudGl0bGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmY0MTQ2O1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC5wb2ludC5wcCB7XG4gIGxlZnQ6IGNhbGMoNTAlIC0gMjIuNXB4KTtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQucHAgLnRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDY1NTtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQucjEge1xuICBsZWZ0OiBjYWxjKDc1JSAtIDIyLjVweCk7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnIxIC50aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyZjllNTA7XG59XG4uY3Mtc3VwcG9ydC1yZXNpc3RhbmNlIC5zci1iYXIgLnBvaW50LnIyIHtcbiAgbGVmdDogY2FsYygxMDAlIC0gMjIuNXB4KTtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnNyLWJhciAucG9pbnQucjIgLnRpdGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMyY2I1Yjtcbn1cbi5jcy1zdXBwb3J0LXJlc2lzdGFuY2Uuc2hvdy1wb2ludGVyIC5yYWlsIHtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZS5zaG93LXBvaW50ZXIgLnJhaWwgLnVpLnBvcHVwIHtcbiAgei1pbmRleDogMTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzLCBvcGFjaXR5IDAuMnMgbGluZWFyO1xufVxuLmNzLXN1cHBvcnQtcmVzaXN0YW5jZS5zaG93LXBvaW50ZXI6aG92ZXIgLnVpLnBvcHVwIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcywgb3BhY2l0eSAwLjJzIGxpbmVhcjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIENTIFNsaWRlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1zbGlkZXIge1xuICBwYWRkaW5nOiAwcHggM2VtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3Mtc2xpZGVyID4gaSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC1zaXplOiAyZW07XG4gIHRvcDogY2FsYyg1MCUgLSAxNXB4KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC43O1xufVxuLmNzLXNsaWRlciA+IGkuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjEhaW1wb3J0YW50O1xufVxuLmNzLXNsaWRlciA+IGk6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLmNzLXNsaWRlciA+IGkubGVmdCB7XG4gIGxlZnQ6IDBweDtcbn1cbi5jcy1zbGlkZXIgPiBpLnJpZ2h0IHtcbiAgcmlnaHQ6IDBweDtcbn1cbi5jcy1zbGlkZXIgLnNsaWRlci1yYWlsIC5zbGlkZSB7XG4gIG1hcmdpbjogMC41ZW0gNXB4O1xuICBtaW4td2lkdGg6IGNhbGMoMzMuMzMlIC0gMTBweCk7XG59XG4uY3Mtc2xpZGVyIC5zbGlkZXItcmFpbC50d28gLnNsaWRlIHtcbiAgbWluLXdpZHRoOiBjYWxjKDUwJSAtIDEwcHgpO1xufVxuLmNzLXNsaWRlciAuc2xpZGVyLXJhaWwub25lIC5zbGlkZSB7XG4gIG1pbi13aWR0aDogY2FsYygxMDAlIC0gMTBweCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBDUyB0cmVuZFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy10cmVuZCB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uY3MtdHJlbmQgLnJlZCB7XG4gIGNvbG9yOiByZWQ7XG59XG4uY3MtdHJlbmQgLmdyZWVuIHtcbiAgY29sb3I6ICMyNWJhNDU7XG59XG4uY3MtdHJlbmQgLnVpLnNlZ21lbnQge1xuICBtaW4taGVpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzLXRyZW5kIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxuICAuY3MtdHJlbmQgLnVpLmhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBNQUlOIEhFQURFUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNzLWhlYWRlci13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGhlaWdodDogOTVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgei1pbmRleDogMjA7XG59XG4jY3MtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHotaW5kZXg6IDI7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGhlaWdodDogNTJweDtcbn1cbiNjcy1oZWFkZXIuY2FsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAyOTk5Mjtcbn1cbiNjcy1oZWFkZXIgLmN1cnJlbmN5LXJhdGUge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgY29sb3I6IHNsYXRlZ3JleTtcbn1cbiNjcy1oZWFkZXIgLmN1cnJlbmN5LXJhdGUgLnJhdGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IGJsYWNrO1xufVxuI2NzLWhlYWRlciAuY3VycmVuY3ktcmF0ZS52aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4jY3MtaGVhZGVyIC51aS5kcm9wZG93bi5jcy1jdXJyZW5jeS1kcm9wZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEuM2VtIDAuNWVtIDAuNWVtO1xuICB6LWluZGV4OiAxO1xufVxuI2NzLWhlYWRlciAudWkuZHJvcGRvd24uY3MtY3VycmVuY3ktZHJvcGRvd24gaW1nIHtcbiAgd2lkdGg6IDE3cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgbWFyZ2luOiAwIDAuNWVtIDAgMDtcbn1cbiNjcy1oZWFkZXIgLnVpLmRyb3Bkb3duLmNzLWN1cnJlbmN5LWRyb3Bkb3duOjpiZWZvcmUge1xuICBjb250ZW50OiAnQ3VycmVuY3knO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogM3B4O1xuICBsZWZ0OiA4cHg7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiAjOGE4OTg5O1xufVxuI2NzLWhlYWRlciAudWkuZHJvcGRvd24uY3MtY3VycmVuY3ktZHJvcGRvd24ubm8tdmlzaWJsaXRpeSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbiNjcy1oZWFkZXIgLmNzLXBvcnRhbCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMWVtIDAuMmVtIDFlbSAwLjVlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMTAwMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5sb2dvIHtcbiAgYmFja2dyb3VuZDogdXJsKCcvYXNzZXRzL2ltYWdlcy9sb2dvLTM2MC5wbmcnKSBjZW50ZXIgYm90dG9tO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtc2l6ZTogMzVweCAzNXB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAzNXB4O1xuICBoZWlnaHQ6IDM1cHg7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLWJ0biB7XG4gIGJhY2tncm91bmQ6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAwcHg7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDkwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFiNTU4NjtcbiAgZm9udC1zaXplOiAxLjJlbTtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAubW9iaWxlX19saXN0SXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiAxZW07XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fbGlzdEl0ZW06bm90KDpsYXN0LWNoaWxkICkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE3KTtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAubW9iaWxlX19saXN0SXRlbS0tZHJvcGRvd24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fbGlzdEl0ZW0tLWRpc2FibGVkIGkge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2xpc3RJdGVtLS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NDY3N2I7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW47XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fZHJvcGRvd25MaXN0LS1zaG93IHtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2Utb3V0O1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2Ryb3Bkb3duTGlzdEl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxZW07XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fZHJvcGRvd25MaXN0ID4gLm1vYmlsZV9fZHJvcGRvd25MaXN0SXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNyk7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fbGlzdEl0ZW0tLWZlZWRiYWNrIHtcbiAgYmFja2dyb3VuZDogIzQzNjQ4YztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5jdXJyZW50X19jdXJyZW5jeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLnVpLmludmVydGVkLnZlcnRpY2FsLm1lbnUge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzFCNTU4Njtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAuaXRlbSAuc3ViLW1lbnUgLml0ZW0ge1xuICBib3JkZXI6IDBweDtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAuY3VycmVuY3lfX2ZsYWcge1xuICBtYXJnaW46IDAgMC41ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLmN1cnJlbmN5X19mbGFnID4gaW1nIHtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5jdXJyZW5jeV9fcmF0ZSxcbiNjcy1oZWFkZXItbW9iaWxlIC5tb2JpbGUtbWVudSAuY3VycmVuY3lfX2RhdGUge1xuICBmb250LXNpemU6IDAuNmVtO1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5jdXJyZW5jeV9fZGF0ZSB7XG4gIG1hcmdpbjogMCAxZW0gMCAwLjVlbTtcbiAgb3BhY2l0eTogMC43O1xufVxuI2NzLWhlYWRlci1tb2JpbGUgLm1vYmlsZS1tZW51IC5tb2JpbGVfX2xpc3RJdGVtLS1jdXJyZW5jeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ODU4NTg7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fZHJvcGRvd25MaXN0LS1jdXJyZW5jeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4Njg2ODY7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fZHJvcGRvd25MaXN0SXRlbS0tY3VycmVuY3kge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAubW9iaWxlLW1lbnUgLm1vYmlsZV9fZHJvcGRvd25MaXN0SXRlbS0tY3VycmVuY3kubW9iaWxlX19kcm9wZG93bkxpc3RJdGVtLS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2IzYjM7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhcixcbiNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyLW1lbnUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWI1NTg2O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTAwMTtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyIC51aS5zZWFyY2gsXG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhci1tZW51IC51aS5zZWFyY2gge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyIC51aS5pbnB1dCxcbiNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyLW1lbnUgLnVpLmlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG4jY3MtaGVhZGVyLW1vYmlsZSAuc2VhcmNoLWJhciBpbnB1dCxcbiNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyLW1lbnUgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy10b3A6IDAuNmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIGhlaWdodDogMzVweDtcbn1cbiNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyIC51aS5pbnB1dCA6OnBsYWNlaG9sZGVyLFxuI2NzLWhlYWRlci1tb2JpbGUgLnNlYXJjaC1iYXItbWVudSAudWkuaW5wdXQgOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uc2VhcmNoLWJhci1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogIzJjNmE5ZSAhaW1wb3J0YW50O1xufVxuLnNlYXJjaC1iYXItbWVudSAudWkuc2VhcmNoIC51aS5pbnB1dCB7XG4gIHdpZHRoOiA5MCUgIWltcG9ydGFudDtcbn1cbi5zZWFyY2gtYmFyLW1lbnUgLnVpLnNlYXJjaCAuY2xvc2UuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIG1hcmdpbjogMHB4O1xuICB3aWR0aDogOSU7XG59XG4jY3MtaGVhZGVyIC51aS5ncmlkIHtcbiAgbWFyZ2luOiAwO1xufVxuI2NzLWhlYWRlciAuaXRlbS5sb2dvLXdyYXBwZXIge1xuICBwYWRkaW5nOiAuNWVtIC41ZW0gLjJlbSAuNmVtO1xufVxuI2NzLWhlYWRlciAubG9nbyxcbiNjcy1mb290ZXIgLmxvZ28ge1xuICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2xvZ28tMzYwLnBuZycpIGNlbnRlciBib3R0b207XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiNjcy1oZWFkZXIgLmxvZ28uY2FsLFxuI2NzLWZvb3RlciAubG9nby5jYWwge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltYWdlcy9sb2dvLWNhcGl0YWxhbmFseXRpY3MuanBnXCIpO1xufVxuI2NzLWhlYWRlciAubG9nbyB7XG4gIGJhY2tncm91bmQtc2l6ZTogODBweCA4MHB4O1xuICBoZWlnaHQ6IDgwcHg7XG4gIG1hcmdpbi1ib3R0b206IC00MHB4O1xuICB3aWR0aDogODBweDtcbn1cbiNjcy1oZWFkZXIgLmxvZ28ucHN4IHtcbiAgYmFja2dyb3VuZDogdXJsKC9hc3NldHMvaW1hZ2VzL3BzeC5wbmcpICNmZmYgYm90dG9tIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbiNjcy1mb290ZXIgLmxvZ28ge1xuICBiYWNrZ3JvdW5kLXNpemU6IDkwcHggOTBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogOTBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDkwcHggIWltcG9ydGFudDtcbn1cbiNjcy1oZWFkZXItbWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxQjU1ODY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogMTtcbn1cbiNjcy1oZWFkZXItbWVudS5jYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE3Yzc3O1xufVxuI2NzLWhlYWRlci1tb2JpbGUuY3MtYmFzaWMtbWVudSB7XG4gIGJhY2tncm91bmQ6ICMyYzZhOWU7XG59XG4jY3MtaGVhZGVyLW1lbnUgLnVpLmdyaWQge1xuICBtYXJnaW46IDA7XG59XG4jY3MtaGVhZGVyLW1lbnUgLml0ZW0uaG9tZSB7XG4gIG1hcmdpbi1sZWZ0OiA3ZW07XG59XG4jY3MtaGVhZGVyLW1lbnUudWkuaW52ZXJ0ZWQubWVudSAudWkuZHJvcGRvd24gLm1lbnUge1xuICBiYWNrZ3JvdW5kOiAjMzE2NTkxO1xufVxuI2NzLWhlYWRlci1tZW51LnVpLmludmVydGVkLm1lbnUgLmRyb3Bkb3duIC5tZW51IC5pdGVtIHtcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbn1cbiNjcy1oZWFkZXItbWVudSAuaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuI2NzLWhlYWRlci1zZWFyY2gge1xuICBwYWRkaW5nOiAwO1xufVxuI2NzLWhlYWRlci1zZWFyY2ggLnVpLmlucHV0IGlucHV0IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZy10b3A6IDAuNmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41ZW07XG4gIG1heC13aWR0aDogMTYwcHg7XG59XG4jY3MtaGVhZGVyLXNlYXJjaCAudWkuaW5wdXQgOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTVCNENGO1xufVxuI2NzLWhlYWRlci1tZW51LmhpZGUtcmVzZWFyY2ggYVtocmVmPVwiL2NsaWVudC1yZXNlYXJjaFwiXSxcbiNjcy1oZWFkZXItbW9iaWxlLmhpZGUtcmVzZWFyY2ggYVtocmVmPVwiL2NsaWVudC1yZXNlYXJjaFwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtaGVhZGVyLW1lbnUgLmNzLWN1cnJlbmN5LWRyb3Bkb3duIHtcbiAgd2lkdGg6IDE5MHB4O1xuICBwYWRkaW5nOiAwLjVlbSAxZW0gIWltcG9ydGFudDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWhlYWRlci1tZW51IC5jcy1jdXJyZW5jeS1kcm9wZG93biAuY3VycmVuY3ktcmF0ZSB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWhlYWRlci1tZW51IC5jcy1jdXJyZW5jeS1kcm9wZG93biAuY3VycmVuY3ktcmF0ZSAuZGF0ZSB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbiNjcy1oZWFkZXItbWVudSAuY3MtY3VycmVuY3ktZHJvcGRvd24gLmN1cnJlbmN5LXJhdGUudmlzaWJsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtaGVhZGVyLFxuICAjY3MtaGVhZGVyLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI2NzLWhlYWRlci1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1oZWFkZXItbW9iaWxlIC5zZWFyY2gtYmFyIC51aS5zZWFyY2ggLnJlc3VsdHMge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBIT01FIFBBR0Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiNjcy1ob21lIC51aS5yaWJib24ubGFiZWwge1xuICBmb250LXNpemU6IDEuMmVtO1xuICBsZWZ0OiBjYWxjKC0ycmVtKTtcbn1cbiNjcy1ob21lIC51aS5yaWJib24ubGFiZWw6YWZ0ZXIge1xuICBib3JkZXItd2lkdGg6IDBlbSAwLjllbSAwLjllbSAwZW07XG59XG4jY3MtaG9tZS1zdG9jayB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4jY3MtaG9tZS1zdG9jay5ob3Jpem9udGFsICNjcy1ob21lLWluZGljZXMge1xuICB3aWR0aDogNDAlO1xufVxuI2NzLWhvbWUtc3RvY2suaG9yaXpvbnRhbCAjY3MtaG9tZS1wZXJmb3JtZXJzIHtcbiAgd2lkdGg6IDM1JTtcbn1cbiNjcy1ob21lLXN0b2NrLmhvcml6b250YWwgI2NzLWhvbWUtYW5ub3VuY2VtZW50cyB7XG4gIHdpZHRoOiAyNSU7XG59XG4jY3MtaG9tZS1wZXJmb3JtZXJzIC51aS50YWIuc2VnbWVudCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1pbi1oZWlnaHQ6IDMwMHB4O1xufVxuI2NzLWhvbWUtZ2xvYmFsIC51aS5zdGF0aXN0aWNzIC5zdGF0aXN0aWMgPiAudmFsdWUsXG4jY3MtaG9tZS1jb21tb2RpdGllcyAudWkuc3RhdGlzdGljcyAuc3RhdGlzdGljID4gLnZhbHVlLFxuI2NzLWhvbWUtZm9yZXggLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyA+IC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG59XG4jY3MtaG9tZS1jYWxlbmRhciAudWkubGlzdCA+IC5pdGVtIHtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjNlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI2NzLWhvbWUtY2FsZW5kYXIgLnVpLmxpc3QgPiAuaXRlbSAuaGVhZGVyIHtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6ICM3Njc2NzY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG4jY3MtaG9tZS1jYWxlbmRhciAuY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMyYzZhOWU7XG4gIGxlZnQ6IC0xLjM5MmVtO1xuICB0b3A6IDAuNTRlbTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xufVxuI2NzLWhvbWUtY2FsZW5kYXIgLnVpLmxpc3QgPiAuaXRlbSAuaWNvbi5leHRlcm5hbCB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcbn1cbiNjcy1ob21lLWNhbGVuZGFyIC51aS5saXN0ID4gLml0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjRUZGN0ZGO1xufVxuI2NzLWhvbWUtY2FsZW5kYXIgLnVpLmxpc3QgPiAuaXRlbTpob3ZlciAuY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogIzJDNkE5RTtcbn1cbiNjcy1ob21lLWNhbGVuZGFyIC51aS5saXN0ID4gLml0ZW06aG92ZXIgLmljb24uZXh0ZXJuYWwge1xuICBvcGFjaXR5OiAxO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1tb2RhbC1zbWFsbCB7XG4gIHdpZHRoOiA0MDBweCAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuY3MtbW9kYWwtc21hbGwgLmZpZWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5jcy1tb2RhbC1zbWFsbCAudWkuZmFjZWJvb2suYnV0dG9uIHtcbiAgICBtYXJnaW46IDAuOWVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuICB9XG59XG4jc2lnbnVwLWJveCBmb3JtIHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xufVxuI3NpZ251cC1ib3ggLnVpLnJlZC5tZXNzYWdlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNzaWdudXAtYm94IC51aS5mYWNlYm9vay5idXR0b24ge1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAxLjNlbTtcbn1cbiNjcy1mZWVkYmFjay1tb2RhbCAjbGlzdCB7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG4jY3MtZmVlZGJhY2stbW9kYWwgI2xpc3Qgc3BhbiB7XG4gIG1hcmdpbjogMHB4IDFlbTtcbn1cbiNjcy1mZWVkYmFjay1tb2RhbCAjbGlzdCBzcGFuIC50aHVtYiB7XG4gIHdpZHRoOiAxNTBweDtcbn1cbiN0b3AtZml4ZWQtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCAjRDRENEQ1ICFpbXBvcnRhbnQ7XG59XG4jdG9wLWZpeGVkLW5hdiAubG9nbyB7XG4gIGJhY2tncm91bmQtc2l6ZTogODBweCA4MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogODBweDtcbiAgbWFyZ2luOiAwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgd2lkdGg6IDgwcHg7XG4gIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWFnZXMvbG9nby0zNjAucG5nJykgY2VudGVyIGJvdHRvbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI3RvcC1maXhlZC1uYXYgLmxvZ28uY2FsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbWFnZXMvbG9nby1jYXBpdGFsYW5hbHl0aWNzLmpwZ1wiKTtcbn1cbiN0b3AtZml4ZWQtbmF2IC5sb2dvLnBzeCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9hc3NldHMvaW1hZ2VzL3BzeC5qcGdcIik7XG59XG4jdG9wLWZpeGVkLW5hdiAuY3MtZW50ZXJwcmlzZS1sb2dvIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxNTBweDtcbiAgdG9wOiA0MnB4O1xuICBwYWRkaW5nLWxlZnQ6IDI3cHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjg3KTtcbn1cbiN0b3AtZml4ZWQtbmF2IC5yaWdodC5pdGVtLnRvYyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbiNjcy1zaWdudXAtc3VjY2Vzcy1kaWFsb2cgaDEsXG4jY3Mtc2lnbnVwLXN1Y2Nlc3MtZGlhbG9nIHAge1xuICBmb250LXNpemU6IDUwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiNuYXZiYXItbWVudSBpIHtcbiAgZm9udC1zaXplOiB4LWxhcmdlO1xuICB0b3A6IC04LjVyZW0gIWltcG9ydGFudDtcbiAgcmlnaHQ6IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuI25hdmJhci1tZW51IC51aS5tZW51LnNlY29uZGFyeSB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4jbmF2YmFyLW1lbnUgLnVpLm1lbnUuc2Vjb25kYXJ5IGEuaXRlbSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiNuYXZiYXItbWVudSAudWkubWVudS5zZWNvbmRhcnkgLnVpLmludmVydGVkLmJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjdG9wLWZpeGVkLW5hdiB7XG4gICAgaGVpZ2h0OiA2NXB4O1xuICB9XG4gICN0b3AtZml4ZWQtbmF2IC5jcy1lbnRlcnByaXNlLWxvZ28ge1xuICAgIGxlZnQ6IDczcHg7XG4gICAgdG9wOiAyM3B4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gIH1cbiAgI3RvcC1maXhlZC1uYXYgLnJpZ2h0Lm1lbnUgLml0ZW0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI3RvcC1maXhlZC1uYXYgLmxvZ28ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNDVweCA0NXB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDQ1cHg7XG4gICAgaGVpZ2h0OiA0NXB4O1xuICB9XG4gICN0b3AtZml4ZWQtbmF2IC5yaWdodC5pdGVtLnRvYyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG4jY3MtbGFuZGluZyB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG4jY3MtbGFuZGluZyAjbGFuZGluZy1jaGFydCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyA0MHB4KTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAtNDBweDtcbn1cbiNjcy1sYW5kaW5nICNsYW5kaW5nLWNoYXJ0IHN2ZyB7XG4gIGZvbnQ6IDEwcHggc2Fucy1zZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuI2NzLWxhbmRpbmcgI2xhbmRpbmctY2hhcnQgc3ZnOmZpcnN0LW9mLXR5cGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFO1xufVxuI2NzLWxhbmRpbmcgI2xhbmRpbmctY2hhcnQgLmxpbmUge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICNmZmY7XG4gIHN0cm9rZS13aWR0aDogMS41cHg7XG59XG4jY3MtbGFuZGluZyAjbGFuZGluZy1jaGFydCAuYXhpcyBwYXRoLFxuI2NzLWxhbmRpbmcgI2xhbmRpbmctY2hhcnQgLmF4aXMgbGluZSB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogI2ZmZjtcbiAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xufVxuI2NzLWxhbmRpbmcgLnVpLnNlZ21lbnQge1xuICBib3JkZXI6IDBweDtcbn1cbiNjcy1sYW5kaW5nIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1zaXplOiA4MHB4IDgwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA4MHB4O1xuICBtYXJnaW46IDBweDtcbiAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgd2lkdGg6IDgwcHg7XG4gIGJhY2tncm91bmQ6IHVybCgnL2Fzc2V0cy9pbWFnZXMvbG9nby0zNjAucG5nJykgY2VudGVyIGJvdHRvbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuI2NzLWxhbmRpbmcgLmxvZ28uY2FsIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9pbWFnZXMvbG9nby1jYXBpdGFsYW5hbHl0aWNzLmpwZ1wiKTtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xufVxuI2NzLWxhbmRpbmcgLmxvZ28ucHN4IHtcbiAgYmFja2dyb3VuZDogdXJsKFwiL2Fzc2V0cy9pbWFnZXMvcHN4LmpwZ1wiKSAjZmZmIGJvdHRvbSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4jY3MtbGFuZGluZyAjY3MtZm9vdGVyIC5sb2dvIHtcbiAgYmFja2dyb3VuZC1zaXplOiA5MHB4IDkwcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDkwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiA5MHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWxhbmRpbmcgI2NzLWZvb3RlciAubG9nby5jYWwge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIvYXNzZXRzL2ltYWdlcy9sb2dvLWNhcGl0YWxhbmFseXRpY3MuanBnXCIpO1xufVxuI2NzLWxhbmRpbmcgI2NzLWZvb3RlciAubG9nby5wc3gge1xuICBiYWNrZ3JvdW5kOiB1cmwoJy9hc3NldHMvaW1hZ2VzL3BzeC5wbmcnKSAjZmZmIGJvdHRvbSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbiAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50ZXJwcmlzZS1sb2dvIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTUwcHg7XG4gIHRvcDogNDVweDtcbiAgcGFkZGluZy1sZWZ0OiAyN3B4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHdoaXRlO1xufVxuI2NzLWxhbmRpbmcgLmNzLWRpc2NvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tdG9wOiA0MHB4O1xufVxuI2NzLWxhbmRpbmcgLmNzLWRpc2NvdmVyIHAge1xuICBjb2xvcjogd2hpdGU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1kaXNjb3ZlciAudGl0bGUge1xuICBtYXJnaW46IDBweDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1kaXNjb3ZlciAuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1kaXNjb3Zlcjpob3ZlciBwIHtcbiAgb3BhY2l0eTogMTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1kaXNjb3Zlcjpob3ZlciAuaWNvbiBpIHtcbiAgYW5pbWF0aW9uOiBib3VuY2UgMnMgaW5maW5pdGU7XG59XG4jY3MtbGFuZGluZyAuaGlkZGVuLm1lbnUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWxhbmRpbmcgLnVpLmludmVydGVkLnNlZ21lbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkM2QTlFO1xufVxuI2NzLWxhbmRpbmcgLnVpLnNlY29uZGFyeS5pbnZlcnRlZC5wb2ludGluZy5tZW51IHtcbiAgYm9yZGVyLWNvbG9yOiAjMkM2QTlFO1xufVxuI2NzLWxhbmRpbmcgLm1hc3RoZWFkLnNlZ21lbnQge1xuICBtaW4taGVpZ2h0OiAxMTVweDtcbiAgcGFkZGluZzogMWVtIDBlbTtcbn1cbiNjcy1sYW5kaW5nIC5tYXN0aGVhZCAubG9nby5pdGVtIGltZyB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuI2NzLWxhbmRpbmcgLm1hc3RoZWFkIC51aS5tZW51IC51aS5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG59XG4jY3MtbGFuZGluZyAubWFzdGhlYWQgaDEudWkuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogNGVtO1xuICBtYXJnaW4tYm90dG9tOiAwZW07XG4gIGZvbnQtc2l6ZTogNGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI2NzLWxhbmRpbmcgLm1hc3RoZWFkIGgyIHtcbiAgZm9udC1zaXplOiAxLjdlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbiNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUge1xuICBwYWRkaW5nOiA4ZW0gMGVtO1xufVxuI2NzLWxhbmRpbmcgLnVpLnZlcnRpY2FsLnN0cmlwZSBoMyB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuI2NzLWxhbmRpbmcgLnVpLnZlcnRpY2FsLnN0cmlwZSAuYnV0dG9uICsgaDMsXG4jY3MtbGFuZGluZyAudWkudmVydGljYWwuc3RyaXBlIHAgKyBoMyB7XG4gIG1hcmdpbi10b3A6IDNlbTtcbn1cbiNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUgLmZsb2F0ZWQuaW1hZ2Uge1xuICBjbGVhcjogYm90aDtcbn1cbiNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUgcCB7XG4gIGZvbnQtc2l6ZTogMS4zM2VtO1xufVxuI2NzLWxhbmRpbmcgLnVpLnZlcnRpY2FsLnN0cmlwZSAuaG9yaXpvbnRhbC5kaXZpZGVyIHtcbiAgbWFyZ2luOiAzZW0gMGVtO1xufVxuI2NzLWxhbmRpbmcgLnF1b3RlLnN0cmlwZS5zZWdtZW50IHtcbiAgcGFkZGluZzogMGVtO1xufVxuI2NzLWxhbmRpbmcgLnF1b3RlLnN0cmlwZS5zZWdtZW50IC5ncmlkIC5jb2x1bW4ge1xuICBwYWRkaW5nLXRvcDogNWVtO1xuICBwYWRkaW5nLWJvdHRvbTogNWVtO1xufVxuI2NzLWxhbmRpbmcgLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC50b2MuaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtbGFuZGluZyAuc2VnbWVudC1ib3R0b20tYm9yZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSkgIWltcG9ydGFudDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1jb250YWluZXItaW1hZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuI2NzLWxhbmRpbmcgLmNzLWNvbnRhaW5lci1pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1sYW5kaW5nICNob21lLW5hdiB7XG4gIG1pbi1oZWlnaHQ6IDBweDtcbiAgaGVpZ2h0OiAxMCU7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDQsIDEwNiwgMTU4LCAwKTtcbn1cbiNjcy1sYW5kaW5nICNob21lLW5hdiAudWkucG9pbnRpbmcubWVudSB7XG4gIGJvcmRlcjogMHB4O1xufVxuI2NzLWxhbmRpbmcgI2hvbWUtYmFubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ0LCAxMDYsIDE1OCwgMCk7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogOTAlO1xufVxuI2NzLWxhbmRpbmcgI2hvbWUtYmFubmVyIC51aS5pbnZlcnRlZC5oZWFkZXIge1xuICBtYXJnaW46IDBweDtcbiAgdGV4dC1zaGFkb3c6IDAgMCA0cHggIzBiM2U2OSA7XG59XG4jY3MtbGFuZGluZyAjaG9tZS1iYW5uZXIgaDIge1xuICB0ZXh0LXNoYWRvdzogMCAwIDRweCAjMGIzZTY5IDtcbn1cbiNjcy1sYW5kaW5nICNob21lLWJhbm5lciAuc3RhcnQtdHJpYWwge1xuICBtYXJnaW46IDJlbSAwcHg7XG59XG4jY3MtbGFuZGluZyAjaG9tZS1iYW5uZXIgLmNzLWRpc2NsYWltZXItZm9vdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICBtYXJnaW46IDBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgcGFkZGluZzogMWVtO1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbn1cbiNjcy1sYW5kaW5nICNmcmVlLXRyaWFsIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gIHBhZGRpbmc6IDRlbTtcbn1cbiNjcy1sYW5kaW5nICNmcmVlLXRyaWFsIHAge1xuICBmb250LXdlaWdodDogMzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jY3MtbGFuZGluZyAjZnJlZS10cmlhbCBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDYwcHg7XG59XG4jY3MtbGFuZGluZyAjZnJlZS10cmlhbCBidXR0b24ge1xuICBmb250LXNpemU6IDE2cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDYwcHg7XG59XG4jY3MtbGFuZGluZyAuY3MtY29udGFpbmVyLXRleHQge1xuICB3aWR0aDogMTI4MHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtbGFuZGluZyAuY29udGFpbmVyLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmYWZhO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDBweDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5jb2x1bW4gLmltYWdlIHtcbiAgaGVpZ2h0OiA2NjBweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiB0b3A7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teDogbGVmdDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5jb2x1bW4gLmltYWdlLXdpbmRvdyB7XG4gIG1hcmdpbi10b3A6IDZlbTtcbiAgYm94LXNoYWRvdzogMHB4IC01cHggNTlweCAtMTVweCAjNDU1ZDY5O1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmNvbHVtbiAuaW1hZ2Utd2luZG93IC5pbWFnZSB7XG4gIGhlaWdodDogNDAwcHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuY29sdW1uIC5pbWFnZS13aW5kb3cgLndpbmRvdyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc5ODk5NjtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogN3B4O1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmRlc2NyaXB0aW9uIC5kZXMtdGV4dCBoMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiA0NTBweDtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuZGVzY3JpcHRpb24gLmRlcy10ZXh0IHAge1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICBjb2xvcjogIzY5Nzc4MjtcbiAgbWF4LXdpZHRoOiA0NTBweDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93LmNzLWNvbC1pbnZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjlmOTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtcm93LmNzLWNvbC1pbnZlcnNlIC5pbWFnZS13aW5kb3cgLndpbmRvdyB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDdweDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtZmVhdHVyZS0xIC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9tZW50aW9uLmNvbS93cC1jb250ZW50L3RoZW1lcy9tZW50aW9uL2ltZy9waG90b3Mvb2ZmaWNlMS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiA2MCUgYXV0bztcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtZmVhdHVyZS0yIC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9tZW50aW9uLmNvbS93cC1jb250ZW50L3RoZW1lcy9tZW50aW9uL2ltZy9waG90b3MvbWFjYm9va0lwaG5lLnBuZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDYwJSBhdXRvO1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAyNSU7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LWZlYXR1cmUtMyAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vbWVudGlvbi5jb20vd3AtY29udGVudC90aGVtZXMvbWVudGlvbi9pbWcvcGhvdG9zL29mZmljZTIuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogNjAlIGF1dG87XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgODAlO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1mZWF0dXJlLTQgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL21lbnRpb24uY29tL3dwLWNvbnRlbnQvdGhlbWVzL21lbnRpb24vaW1nL3Bob3Rvcy9pUGhvbmUyLnBuZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwJSBhdXRvO1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA3MCU7XG59XG4jY3MtbGFuZGluZyAuY3MtY29tcGFuaWVzLWxpc3QgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9jb21wYW5pZXMtbGlzdC5qcGcnKTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1zZWN0b3Itb3ZlcnZpZXcgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9zZWN0b3Itb3ZlcnZpZXcuanBnJyk7XG59XG4jY3MtbGFuZGluZyAuY3MtY29tcGFueS1zbmFwc2hvdCAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2NvbXBhbnktc25hcHNob3QuanBnJyk7XG59XG4jY3MtbGFuZGluZyAuY3MtZnVuZGFtZW50YWwtaW5kaWNhdG9ycyAuaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2Z1bmRhbWVudGFsLWluZGljYXRvcnMuanBnJyk7XG59XG4jY3MtbGFuZGluZyAuY3MtZmluYW5jaWFsLXN0YXRlbWVudHMgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy9maW5hbmNpYWwtc3RhdGVtZW50cy5qcGcnKTtcbn1cbiNjcy1sYW5kaW5nIC5jcy10ZWNobmljYWwtY2hhcnRpbmcgLmltYWdlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcvYXNzZXRzL2ltYWdlcy90ZWNobmljYWwtY2hhcnRpbmctdjIucG5nJyk7XG59XG4jY3MtbGFuZGluZyAuY3Mtc3RvY2stc2NyZWVuaW5nIC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvc3RvY2stc2NyZWVuZXIuanBnJyk7XG59XG4jY3MtbGFuZGluZyAuY3MtbGl2ZS1kYXRhIC5pbWFnZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2Fzc2V0cy9pbWFnZXMvbGl2ZS1kYXRhLmpwZycpO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiB7XG4gIGhlaWdodDogNDAwcHg7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5kZXNjcmlwdGlvbiAuZGVzLXRleHQgYSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmRlc2NyaXB0aW9uIC5kZXMtdGV4dCBoMTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuZGVzY3JpcHRpb24gLmRlcy10ZXh0IGgxIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44Nyk7XG59XG4jY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5kZXNjcmlwdGlvbiAuZGVzLXRleHQuYWRkcmVzcy1vbmUge1xuICBwYWRkaW5nOiAwcHggNWVtIDBweCAxMWVtO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTBlNGVhO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuZGVzY3JpcHRpb24gLmRlcy10ZXh0LmFkZHJlc3MtdHdvIHtcbiAgcGFkZGluZzogMHB4IDExZW0gMHB4IDVlbTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmltYWdlLm55YyB7XG4gIGJhY2tncm91bmQ6IHVybCgnaHR0cHM6Ly9tZW50aW9uLmNvbS93cC1jb250ZW50L3RoZW1lcy9tZW50aW9uL2ltZy9waG90b3MvbWFwLW55Yy5wbmcnKTtcbiAgaGVpZ2h0OiA0MDBweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuaW1hZ2UucGFyaXMge1xuICBiYWNrZ3JvdW5kOiB1cmwoJ2h0dHBzOi8vbWVudGlvbi5jb20vd3AtY29udGVudC90aGVtZXMvbWVudGlvbi9pbWcvcGhvdG9zL21hcC1wYXJpcy5wbmcnKTtcbiAgaGVpZ2h0OiA0MDBweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1sb2NhdGlvbiAuaW1hZ2UubnljLFxuICAjY3MtbGFuZGluZyAuY3MtZW50LWxvY2F0aW9uIC5pbWFnZS5wYXJpcyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmRlcy10ZXh0IHtcbiAgICBwYWRkaW5nOiAyMHB4IDBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtbG9jYXRpb24gLmFkZHJlc3Mtb25lIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTRlYTtcbiAgICBib3JkZXItcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUge1xuICAgIHBhZGRpbmc6IDFlbSAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAudWkudmVydGljYWwuc3RyaXBlIC5jcy1tZWRpYS1oZWFkaW5nIC51aS5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMmVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogM2VtO1xuICB9XG4gICNjcy1sYW5kaW5nIC51aS52ZXJ0aWNhbC5zdHJpcGUgLmNzLW1lZGlhLWhlYWRpbmcgcCB7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiA1ZW07XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWVudGVycHJpc2UtbG9nbyB7XG4gICAgbGVmdDogOTBweDtcbiAgICB0b3A6IDMwcHg7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmxvZ28ge1xuICAgIGJhY2tncm91bmQtc2l6ZTogNDVweCA0NXB4ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDQ1cHg7XG4gICAgaGVpZ2h0OiA0NXB4O1xuICB9XG4gICNjcy1sYW5kaW5nICNmcmVlLXRyaWFsIHtcbiAgICBwYWRkaW5nOiA0ZW0gMHB4O1xuICB9XG4gICNjcy1sYW5kaW5nICNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWhlYWRpbmcgcCB7XG4gICAgd2lkdGg6IDkwJSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1sYW5kaW5nIC51aS5maXhlZC5tZW51IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLnNlY29uZGFyeS5wb2ludGluZy5tZW51IC5pdGVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1sYW5kaW5nIC5zZWNvbmRhcnkucG9pbnRpbmcubWVudSAudG9jLml0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1sYW5kaW5nIC5tYXN0aGVhZC5zZWdtZW50IHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICB9XG4gICNjcy1sYW5kaW5nIC5tYXN0aGVhZCBoMS51aS5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbi10b3A6IDEuNWVtO1xuICB9XG4gICNjcy1sYW5kaW5nIC5tYXN0aGVhZCBoMiB7XG4gICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtY29udGFpbmVyLXRleHQge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmNvbHVtbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1yb3cgLmltYWdlLXdpbmRvdyB7XG4gICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuaW1hZ2Utd2luZG93IC53aW5kb3cge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDdweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA3cHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtZW50LXJvdyAuaW1hZ2Utd2luZG93IC5pbWFnZSB7XG4gICAgaGVpZ2h0OiAxODBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtcm93IC5kZXNjcmlwdGlvbiAuZGVzLXRleHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICB9XG4gICNjcy1sYW5kaW5nIC5jcy1lbnQtcm93LmNzLWNvbC1pbnZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgI2NzLWxhbmRpbmcgLmNzLWVudC1mZWF0dXJlLTQgLmltYWdlIHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMzAlIGF1dG87XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICB9XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyBwIHtcbiAgY29sb3I6ICM2OTc3ODI7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyAudWkuZ3JpZC5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEwMDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWhlYWRpbmcgaDEudWkuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAzZW07XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWhlYWRpbmcgcCB7XG4gIHdpZHRoOiA2NiU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcgLmNzLW1lZGlhLWNvbHVtbnMge1xuICBtYXJnaW4tdG9wOiAyZW07XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyAuY3MtbWVkaWEtY29sdW1ucyAuZWFjaC1jb2x1bW4ge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyAuY3MtbWVkaWEtY29sdW1ucyAuZWFjaC1jb2x1bW4gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyAuY3MtbWVkaWEtY29sdW1ucyAuZWFjaC1jb2x1bW4gaDEgaSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgcGFkZGluZzogMWVtIDFlbTtcbiAgbWFyZ2luOiAwcHg7XG4gIGJveC1zaGFkb3c6IDEycHggMTVweCAyMHB4IDBweCByZ2JhKDQ2LCA2MSwgNzMsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyAuY3MtbWVkaWEtY29sdW1ucyAuZWFjaC1jb2x1bW4gcCB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyAuY3MtbWVkaWEtY29sdW1ucyAuZWFjaC1jb2x1bW4gLmNvbHVtbi1oZWFkIHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgbWFyZ2luLXRvcDogMmVtO1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZyAuY3MtbWVkaWEtaGVhZGluZyBwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcuY3MtY29tcGFueSAudWkuZ3JpZC5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEyMDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWxhbmRpbmcgLmNzLW1lZGlhLW1vbml0b3JpbmcuY3MtY29tcGFueS5jcy12aXN1YWwtYW5hbHl0aWNzIC51aS5oZWFkZXIge1xuICBmb250LXNpemU6IDJlbTtcbn1cbiNjcy1sYW5kaW5nIC5jcy1tZWRpYS1tb25pdG9yaW5nLmNzLWNvbXBhbnkuY3MtdmlzdWFsLWFuYWx5dGljcyAuaW1hZ2Uge1xuICBoZWlnaHQ6IDQwMHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZy5jcy1jb21wYW55LmNzLXZpc3VhbC1hbmFseXRpY3MgLmltYWdlLmltYWdlLTEge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2NzLWZpbmFuY2lhbHMuanBnJyk7XG59XG4jY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZy5jcy1jb21wYW55LmNzLXZpc3VhbC1hbmFseXRpY3MgLmltYWdlLmltYWdlLTIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2NzLXBlcmZvcm1hbmNlLmpwZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDEwMCU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1sYW5kaW5nIC5jcy1tZWRpYS1tb25pdG9yaW5nLmNzLWNvbXBhbnkuY3MtdmlzdWFsLWFuYWx5dGljcyAudWkuaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxZW0gIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZy5jcy1jb21wYW55LmNzLXZpc3VhbC1hbmFseXRpY3MgcCB7XG4gICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtbGFuZGluZyAuY3MtbWVkaWEtbW9uaXRvcmluZy5jcy1jb21wYW55LmNzLXZpc3VhbC1hbmFseXRpY3MgLmltYWdlIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMjIwcHg7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiA1MCUgIWltcG9ydGFudDtcbiAgfVxufVxuI2NzLWV4cC1mZWF0dXJlcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWZhZmQ7XG59XG4jY3MtZXhwLWZlYXR1cmVzIHAge1xuICBjb2xvcjogIzY5Nzc4Mjtcbn1cbiNjcy1leHAtZmVhdHVyZXMgLnVpLmdyaWQuY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAwcHggIWltcG9ydGFudDtcbn1cbiNjcy1leHAtZmVhdHVyZXMgLmNzLW1lZGlhLWNvbHVtbnMge1xuICBtYXJnaW4tdG9wOiA2MHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtZXhwLWZlYXR1cmVzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgI2NzLWV4cC1mZWF0dXJlcyAuY3MtbWVkaWEtY29sdW1ucyB7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xuICB9XG4gICNjcy1leHAtZmVhdHVyZXMgLmVpZ2h0LndpZGUucmlnaHQuZmxvYXRlZC5jb2x1bW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiNjcy13b3JsZC1iZXN0IHAge1xuICBjb2xvcjogIzY5Nzc4Mjtcbn1cbiNjcy13b3JsZC1iZXN0IC51aS5ncmlkLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4jY3Mtd29ybGQtYmVzdCAuY3Mtd29ybGQtb3ZlcmZsb3cge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG59XG4jY3Mtd29ybGQtYmVzdCAuY3MtbWVkaWEtY29sdW1ucyB7XG4gIGhlaWdodDogMzkwcHg7XG4gIG1pbi13aWR0aDogMTcwMHB4ICFpbXBvcnRhbnQ7XG59XG4jY3Mtd29ybGQtYmVzdCAuY3MtbWVkaWEtY29sdW1ucyAuY29sdW1uIHtcbiAgd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xufVxuI2NzLXdvcmxkLWJlc3QgLmVhY2gtY29sdW1uIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcbiAgcGFkZGluZzogMjAlIDEwJTtcbiAgaGVpZ2h0OiAzNjBweDtcbn1cbiNjcy13b3JsZC1iZXN0IC5lYWNoLWNvbHVtbiAuaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBoZWlnaHQ6IDY0cHg7XG4gIHdpZHRoOiA2NHB4O1xuICBib3JkZXItcmFkaXVzOiA2NHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3Mtd29ybGQtYmVzdCAudWkuZ3JpZC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1lbnQtcmVxdWVzdC1kZW1vIHtcbiAgcGFkZGluZzogMTFlbSAwcHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3OTdkZDtcbn1cbiNjcy1lbnQtcmVxdWVzdC1kZW1vIC51aS5oZWFkZXIge1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1ib3R0b206IDUwcHg7XG59XG4jY3MtcHJpY2luZyAudWkuZ3JpZC5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEzMDBweCAhaW1wb3J0YW50O1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctaGVhZGluZyBwIHtcbiAgd2lkdGg6IDUwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAuY29sb3ItYmx1ZSB7XG4gIGNvbG9yOiAjMkM2QTlFO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggLm1vbnRobHkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDBweDtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4O1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggLnllYXJseSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDZlbTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IC51aS50b2dnbGUuY2hlY2tib3ggLmJveCB7XG4gIHdpZHRoOiAzZW07XG4gIGhlaWdodDogM2VtO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggbGFiZWw6OmJlZm9yZSB7XG4gIHdpZHRoOiA1LjBlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IGxhYmVsOjphZnRlciB7XG4gIHdpZHRoOiAyLjVlbTtcbiAgaGVpZ2h0OiAyLjVlbTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IC51aS50b2dnbGUuY2hlY2tib3gge1xuICBoZWlnaHQ6IDIuNWVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAuc2l4dGVlbi53aWRlLmNvbHVtbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IC51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQge1xuICB3aWR0aDogNWVtO1xuICBoZWlnaHQ6IDIuNWVtO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY2hlY2tib3ggLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkICsgbGFiZWw6OmFmdGVyIHtcbiAgbGVmdDogMi41ZW07XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC51aS5zZWdtZW50IHtcbiAgaGVpZ2h0OiA2NThweDtcbiAgcGFkZGluZzogMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5oZWFkaW5nLmZyZWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJhOTJiO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZy5zdGFuZGFyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NmJlOGU7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5oZWFkaW5nLmdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2VhOWY1O1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZy5wbGF0aW51bSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNzY5Y2M7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5oZWFkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogMTcwcHg7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5oZWFkaW5nIHAge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5oZWFkaW5nIGgxLFxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuaGVhZGluZyBwIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAucHJvcGVydGllcyB7XG4gIHBhZGRpbmc6IDJlbTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLnByb3BlcnRpZXMgcCB7XG4gIGZvbnQtc2l6ZTogMS4yZW0gIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW46IDBweDtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VkZWZmMTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmNob29zZS1idG4ge1xuICBwYWRkaW5nOiAwcHggMmVtIDJlbSAyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuY2hvb3NlLWJ0biBidXR0b24ge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAuY2hvb3NlLWJ0bi5mcmVlIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYmE5MmI7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5jaG9vc2UtYnRuLnN0YW5kYXJkIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1NmJlOGU7XG59XG4jY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jb2x1bW5zIC5jaG9vc2UtYnRuLmdvbGQgYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNlYTlmNTtcbn1cbiNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmNob29zZS1idG4ucGxhdGludW0gYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM3NjljYztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLXByaWNpbmcgLmNzLXByaWNpbmctY29sdW1ucyAudWkuc2VnbWVudCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gICNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNvbHVtbnMgLmNob29zZS1idG4ge1xuICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1wcmljaW5nIC5jcy1wcmljaW5nLWNoZWNrYm94IC51aS50b2dnbGUuY2hlY2tib3gge1xuICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxuICAjY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAueWVhcmx5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDBweDtcbiAgfVxuICAjY3MtcHJpY2luZyAuY3MtcHJpY2luZy1jaGVja2JveCAubW9udGhseSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG59XG4jY3MtY29udGFjdC11cyAudWkuc2VnbWVudHMgLnVpLnNlZ21lbnQge1xuICBmbGV4OiAxO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtY29udGFjdC11cyAudWkuc2VnbWVudHMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4jY3MtYWJvdXQtdXMge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nLWJvdHRvbTogMWVtO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1zdGF0ZW1lbnRzIHtcbiAgcGFkZGluZzogNGVtIDBlbTtcbiAgbWF4LXdpZHRoOiA4MDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1qdW1ib3Ryb24gLnNpeHRlZW4ud2lkZS5jb2x1bW4ge1xuICBoZWlnaHQ6IDY1MHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9hc3NldHMvaW1hZ2VzL2Fib3V0LWNvdmVyLmpwZycpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1qdW1ib3Ryb24gLnNpeHRlZW4ud2lkZS5jb2x1bW4gLnVpLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC10ZWFtIHtcbiAgYmFja2dyb3VuZDogYWxpY2VibHVlO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC10ZWFtIC51aS50ZXh0LmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LXRlYW0gLnVpLmNhcmRzIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LXRlYW0gLmNhcmQge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDRlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDIwMG1zIGVhc2UtaW47XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LXRlYW0gLmNhcmQgaW1nIHtcbiAgYm9yZGVyLXJhZGl1czogMHB4O1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC10ZWFtIC5jYXJkIC5tZXRhIHtcbiAgbWFyZ2luOiAxZW07XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LXRlYW0gLmNhcmQ6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1pbjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1sb2dvcyB7XG4gIG1heC13aWR0aDogOTAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxZW0gYXV0byAyZW07XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LWxvZ29zIC5jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LWxvZ29zIC51aS5pbWFnZSB7XG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLWluO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1tZW1iZXJzaGlwcyB7XG4gIG1heC13aWR0aDogNjAwcHggIWltcG9ydGFudDtcbn1cbiNjcy1hYm91dC11cyAuY3MtYWJvdXQtcGFydG5lcnMge1xuICBtYXgtd2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LXBhcnRuZXJzIC5laWdodC53aWRlLmNvbHVtbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jY3MtYWJvdXQtdXMgLmNzLWFib3V0LXBhcnRuZXJzIC51aS5pbWFnZSB7XG4gIHRyYW5zaXRpb246IGFsbCAyMDBtcyBlYXNlLWluO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuI2NzLWFib3V0LXVzIC5jcy1hYm91dC1sb2dvcyAudWkuaW1hZ2U6aG92ZXIge1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1pbjtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xufVxuI2NzLWFib3V0LXVzIGgxLnVpLmhlYWRlcixcbiNjcy1hYm91dC11cyBwIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbiNjcy1hYm91dC11cyBwIHtcbiAgbWFyZ2luOiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1hYm91dC11cyAuY3MtYWJvdXQtanVtYm90cm9uIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWFib3V0LXVzIC5jcy1hYm91dC1qdW1ib3Ryb24gLnNpeHRlZW4ud2lkZS5jb2x1bW4ge1xuICAgIGhlaWdodDogNTAwcHg7XG4gIH1cbiAgI2NzLWFib3V0LXVzIC5jcy1hYm91dC1qdW1ib3Ryb24gLnVpLmhlYWRlciB7XG4gICAgZm9udC1zaXplOiAyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAuNWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWFib3V0LXVzIC5jYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgQmFsbCBHcmlkIEJlYXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5ALXdlYmtpdC1rZXlmcmFtZXMgYmFsbC1ncmlkLWJlYXQge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGJhbGwtZ3JpZC1iZWF0IHtcbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLmJhbGwtZ3JpZC1iZWF0IHtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6IC01MHB4O1xuICBtYXJnaW4tbGVmdDogLTUwcHg7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXY6bnRoLWNoaWxkKDEpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjA3cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4wN3M7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjUzcztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjUzcztcbn1cbi5iYWxsLWdyaWQtYmVhdCA+IGRpdjpudGgtY2hpbGQoMikge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC43MnM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC43MnM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjk0cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjk0cztcbn1cbi5iYWxsLWdyaWQtYmVhdCA+IGRpdjpudGgtY2hpbGQoMykge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4xMXM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4xMXM7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjI1cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjI1cztcbn1cbi5iYWxsLWdyaWQtYmVhdCA+IGRpdjpudGgtY2hpbGQoNCkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4xM3M7XG4gIGFuaW1hdGlvbi1kZWxheTogMC4xM3M7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjAxcztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjAxcztcbn1cbi5iYWxsLWdyaWQtYmVhdCA+IGRpdjpudGgtY2hpbGQoNSkge1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC4xcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjFzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS4ycztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjJzO1xufVxuLmJhbGwtZ3JpZC1iZWF0ID4gZGl2Om50aC1jaGlsZCg2KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAwLjE4cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAwLjE4cztcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuOTdzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuOTdzO1xufVxuLmJhbGwtZ3JpZC1iZWF0ID4gZGl2Om50aC1jaGlsZCg3KSB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC4wOXM7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMDlzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC42N3M7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC42N3M7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXY6bnRoLWNoaWxkKDgpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNDJzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuNDJzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC45MnM7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC45MnM7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXY6bnRoLWNoaWxkKDkpIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDAuNTJzO1xuICBhbmltYXRpb24tZGVsYXk6IDAuNTJzO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS40M3M7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS40M3M7XG59XG4uYmFsbC1ncmlkLWJlYXQgPiBkaXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB3aWR0aDogMjklO1xuICBoZWlnaHQ6IDI5JTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgbWFyZ2luOiAyJTtcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBiYWxsLWdyaWQtYmVhdDtcbiAgYW5pbWF0aW9uLW5hbWU6IGJhbGwtZ3JpZC1iZWF0O1xuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDA7XG4gIGFuaW1hdGlvbi1kZWxheTogMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBQYWdlIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWNvbXBhbnkgLnVpLmhlYWRlciAuY3Mtc3ltYm9sIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAwLjNlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnkgLnVpLmhlYWRlciAuY3Mtc3ltYm9sIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1vdmVydmlldyAudWkuc3RhY2thYmxlLmdyaWQgLnNpeHRlZW4ud2lkZS5jb2x1bW4sXG4gICNjcy1jb21wYW55ID4gLnNpeHRlZW4ud2lkZS5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFueS1jaGFydC1tb2JpbGUgLmNzLWNoYXJ0LW9wdGlvbnMtbW9iaWxlIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG4gIHBhZGRpbmc6IDAuMmVtIDBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xOSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTkpO1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1vcHRpb25zLW1vYmlsZSAudWkubWVudSB7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1vcHRpb25zLW1vYmlsZSAudWkubWVudSAuaXRlbSB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUuZGFyayAueS5heGlzIC50aWNrIHRleHQge1xuICBzdHJva2U6IHdoaXRlO1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUuZGFyayAueS1ncmlkLFxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUuZGFyayAueC1ncmlkIHtcbiAgc3Ryb2tlOiByZ2JhKDEyNiwgMTI3LCAxMjgsIDAuMzQpO1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUuZGFyayAubGluZSB7XG4gIHN0cm9rZS13aWR0aDogMC4zcHg7XG59XG4jY3MtY29tcGFueS1jaGFydC1tb2JpbGUgLmNzLWNoYXJ0LW1vYmlsZS5saWdodCAueS1ncmlkLFxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUubGlnaHQgLngtZ3JpZCB7XG4gIHN0cm9rZTogcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjUyKTtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlLmxpZ2h0IC5hcmVhIHtcbiAgb3BhY2l0eTogMC43O1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUucmVkIGxpbmVhckdyYWRpZW50IHN0b3Age1xuICBzdG9wLWNvbG9yOiAjZGIyODI4O1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUucmVkIC5saW5lIHtcbiAgc3Ryb2tlOiAjZGIyODI4O1xufVxuI2NzLWNvbXBhbnktY2hhcnQtbW9iaWxlIC5jcy1jaGFydC1tb2JpbGUuZ3JlZW4gbGluZWFyR3JhZGllbnQgc3RvcCB7XG4gIHN0b3AtY29sb3I6ICMyMWJhNDU7XG59XG4jY3MtY29tcGFueS1jaGFydC1tb2JpbGUgLmNzLWNoYXJ0LW1vYmlsZS5ncmVlbiAubGluZSB7XG4gIHN0cm9rZTogIzIxYmE0NTtcbn1cbiNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSAuY3MtY2hhcnQtbW9iaWxlIHtcbiAgbWluLWhlaWdodDogMTM3cHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LWNoYXJ0LW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiNjcy1jb21wYW55LXN0YXRzLW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFueS1zdGF0cy1tb2JpbGUgLmNvbHVtbiAudWkuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbiNjcy1jb21wYW55LXN0YXRzLW1vYmlsZSAjY3MtY29tcGFueS1wcmljZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuI2NzLWNvbXBhbnktc3RhdHMtbW9iaWxlICNjcy1jb21wYW55LXByaWNlIC51aS5oZWFkZXIge1xuICB3aWR0aDogNTAlO1xuICBtYXJnaW46IDBweDtcbiAgZm9udC1zaXplOiAxLjdlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiNjcy1jb21wYW55LXN0YXRzLW1vYmlsZSAjY3MtY29tcGFueS1wcmljZSAudXBkYXRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMC4zZW0gMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1zdGF0cy1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4jY3MtY29tcGFueS1pbmRleGVzIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogLTAuM2VtO1xuICBtYXJnaW4tYm90dG9tOiAtMC41ZW07XG59XG4jY3MtY29tcGFueS1pbmRleGVzIC51aS5sYWJlbCB7XG4gIG1hcmdpbjogMCAwLjVlbSAwLjVlbSAwO1xuICBwYWRkaW5nOiAwLjVlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktaW5kZXhlcyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDI7XG4gIH1cbn1cbiNjcy1jb21wYW55LWRlZmF1bHRlciAudHlwZSA+IHNwYW4ge1xuICB3aWR0aDogOXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIHRyYW5zaXRpb246IHdpZHRoIC41cztcbn1cbiNjcy1jb21wYW55LWRlZmF1bHRlciAudHlwZTpob3ZlciA+IHNwYW4ge1xuICB3aWR0aDogNTFweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggLjVzO1xufVxuI2NzLWNvbXBhbnktZGV0YWlsIC5jb21wYW55LXRpdGxlID4gaDIge1xuICBtYXJnaW46IDAgMCAwLjJlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4jY3MtY29tcGFueS1kZXRhaWwgLmNvbXBhbnktdGl0bGUgPiBoMiA+IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjcy1jb21wYW55LWRldGFpbCAuY29tcGFueS10eXBlIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4jY3MtY29tcGFueS1kZXRhaWwgLnVpLnNlZ21lbnQge1xuICB3aWR0aDogNTAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1kZXRhaWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI2NzLWNvbXBhbnktZGV0YWlsIC51aS5ob3Jpem9udGFsLnNlZ21lbnRzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gICNjcy1jb21wYW55LWRldGFpbCAudWkuaG9yaXpvbnRhbC5zZWdtZW50cyAudWkuc2VnbWVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgI2NzLWNvbXBhbnktZGV0YWlsIC51aS5ob3Jpem9udGFsLnNlZ21lbnRzIC5jcy1jaGFydC1vcHRpb25zIC51aS5zZWNvbmRhcnkubWVudSB7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgfVxuICAjY3MtY29tcGFueS1kZXRhaWwgLnVpLmhvcml6b250YWwuc2VnbWVudHMgLmNzLWNoYXJ0LW9wdGlvbnMgLm1vYmlsZS1oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3MtY29tcGFueS1kZXRhaWwtbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1jb21wYW55LWRldGFpbC1tb2JpbGUgLnVpLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktZGV0YWlsLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiNjcy1jb21wYW55LXRhYnMge1xuICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG59XG4jY3MtY29tcGFueS10YWJzIC5hdHRhY2hlZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NzLWNvbXBhbnktdGFicyAudWkuYXR0YWNoZWQudGl0bGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktdGFicyA+IC50YWIge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbiNjcy1jb21wYW55LXRhYnMgPiAuYXR0YWNoZWQubWVudS5maXhlZC50b3Age1xuICB0b3A6IDBweDtcbiAgYm94LXNoYWRvdzogMCA3cHggMjBweCAwIHJnYmEoNDYsIDYxLCA3MywgMC4xNSk7XG4gIGhlaWdodDogNDVweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIuNmVtKTtcbiAgbGVmdDogMS4zNWVtO1xuICB6LWluZGV4OiAyO1xufVxuI2NzLWNvbXBhbnktdGFicyA+IC50YWIuZml4ZWQge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtZm9yd2FyZC1wZSAuaGVhZGluZyxcbiNjcy1jb21wYW55LXRhYnMgLmNzLWFuYWx5c3QtcmVjb21tZW5kIC5oZWFkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtZm9yd2FyZC1wZSAuaGVhZGluZyBoMyxcbiNjcy1jb21wYW55LXRhYnMgLmNzLWFuYWx5c3QtcmVjb21tZW5kIC5oZWFkaW5nIGgzIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtY29tcGFueS10YWJzIC5jcy1mb3J3YXJkLXBlIHRhYmxlIC5wZXJpb2QsXG4jY3MtY29tcGFueS10YWJzIC5jcy1hbmFseXN0LXJlY29tbWVuZCB0YWJsZSAucGVyaW9kIHtcbiAgY29sb3I6ICNjM2MxYzE7XG59XG4jY3MtY29tcGFueS10YWJzIC5jcy1mb3J3YXJkLXBlIHRhYmxlIC5wYXNzZWQsXG4jY3MtY29tcGFueS10YWJzIC5jcy1hbmFseXN0LXJlY29tbWVuZCB0YWJsZSAucGFzc2VkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogcmdiYSgxOTUsIDE5MywgMTkzLCAwLjY1KTtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDtcbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWZvcndhcmQtcGUgdGFibGUgLnBhc3NlZCB0ciB0ZDpmaXJzdC1jaGlsZCxcbiNjcy1jb21wYW55LXRhYnMgLmNzLWFuYWx5c3QtcmVjb21tZW5kIHRhYmxlIC5wYXNzZWQgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICB3aWR0aDogMTcwcHg7XG59XG4jY3MtY29tcGFueS10YWJzIC5jcy1oaXN0b3J5LXJlY29tbWVuZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNjcy1jb21wYW55LXRhYnMgLmNzLWhpc3RvcnktcmVjb21tZW5kIC5wZXJpb2Qge1xuICBjb2xvcjogI2MzYzFjMTtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtaGlzdG9yeS1yZWNvbW1lbmQgLm9wZW4tcGRmIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtaGlzdG9yeS1yZWNvbW1lbmQgLnRhYmxlLWNvbnRhaW5lciB7XG4gIG1heC1oZWlnaHQ6IDQ3N3B4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtaGlzdG9yeS1yZWNvbW1lbmQgLnRhYmxlLWZpeGVkLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzNXB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS10YWJzIC5jcy1oaXN0b3J5LXJlY29tbWVuZCAudGFibGUtY29udGFpbmVyIC51aS50YWJsZSB7XG4gICAgbWluLXdpZHRoOiAxMDAwcHg7XG4gIH1cbiAgI2NzLWNvbXBhbnktdGFicyAuY3MtaGlzdG9yeS1yZWNvbW1lbmQgLnRhYmxlLWZpeGVkLWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2NzLWNvbXBhbnktdGFicyAuY3MtYW5hbHlzdC1yZXNlYXJjaCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFueS10YWJzIC51aS50YWJbZGF0YS10YWI9XCJyZXNlYXJjaFwiXSAudWkucG9wdXAge1xuICB3aWR0aDogMTUwcHggIWltcG9ydGFudDtcbn1cbiNjcy1jb21wYW55LXRhYnMgLnRhYltkYXRhLXRhYj1cInBlcmZvcm1hbmNlXCJdIC50aXRsZS1jZWxsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS10YWJzIC5jb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIH1cbiAgI2NzLWNvbXBhbnktdGFicyA+IC5hdHRhY2hlZC5tZW51IHtcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIH1cbiAgI2NzLWNvbXBhbnktdGFicyA+IC5hdHRhY2hlZC5tZW51IC5pdGVtOmJlZm9yZSxcbiAgI2NzLWNvbXBhbnktdGFicyA+IC5hdHRhY2hlZC5tZW51IC5pdGVtOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1jb21wYW55LXRhYnMgPiAuYXR0YWNoZWQubWVudSAuaXRlbSB7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgfVxuICAjY3MtY29tcGFueS10YWJzID4gLmF0dGFjaGVkLm1lbnUgLml0ZW0uYWN0aXZlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzcwNzE3NTtcbiAgfVxuICAjY3MtY29tcGFueS10YWJzIC50YWJbZGF0YS10YWI9XCJwZXJmb3JtYW5jZVwiXSxcbiAgI2NzLWNvbXBhbnktdGFicyAudGFiW2RhdGEtdGFiPVwiZmluYW5jaWFsc1wiXSB7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICB9XG4gICNjcy1jb21wYW55LXRhYnMgLnVpLnRhYltkYXRhLXRhYj1cInJlc2VhcmNoXCJdIC5jb2x1bW4ge1xuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1hbmFseXN0LXByaWNlLWNoYXJ0IC5iZyB7XG4gIHN0cm9rZTogI2ZmZmZmZjtcbiAgZmlsbDogI2ZmZmZmZjtcbn1cbiNjcy1hbmFseXN0LXByaWNlLWNoYXJ0IC5saW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAycHg7XG59XG4jY3MtYW5hbHlzdC1wcmljZS1jaGFydCAueC1ncmlkIHtcbiAgc3Ryb2tlOiAjZmZmO1xufVxuI2NzLWFuYWx5c3QtcHJpY2UtY2hhcnQgLnRhcmdldCB7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDU7XG4gIHN0cm9rZS13aWR0aDogMnB4O1xuICBzdHJva2U6ICM5ZWE3YWU7XG59XG4jY3MtYW5hbHlzdC1wcmljZS1jaGFydCBjaXJjbGUge1xuICBmaWxsOiAjOWE5YTlhO1xufVxuI2NzLWFuYWx5c3QtcHJpY2UtY2hhcnQudGFyZ2V0LXByaWNlLWNoYXJ0IC5saW5lIHtcbiAgc3Ryb2tlOiAjYTlhOWE5O1xufVxuI2NzLWFuYWx5c3QtcHJpY2UtY2hhcnQudGFyZ2V0LXByaWNlLWNoYXJ0IC5hcmVhIHtcbiAgZmlsbDogbm9uZSAhaW1wb3J0YW50O1xufVxuI2NzLW92ZXJ2aWV3LXByb2ZpbGUgLnNpeHRlZW4ud2lkZS5jb2x1bW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLW92ZXJ2aWV3LXByb2ZpbGUgLmVpZ2h0LndpZGUuY29sdW1uIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbiNjcy1vdmVydmlldy1wcm9maWxlIC5laWdodC53aWRlLmNvbHVtbiAudWkuZGVmaW5pdGlvbi51bnN0YWNrYWJsZS50YWJsZSB7XG4gIG1hcmdpbi10b3A6IDJlbTtcbn1cbiNjcy1jb21wYW55LXByaWNlIGgxIHtcbiAgZm9udC1zaXplOiAyLjJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jY3MtY29tcGFueS1wcmljZSBoMi5oZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJlbTtcbn1cbiNjcy1jb21wYW55LXByaWNlIC51aS5oZWFkZXIgPiAuaWNvbiB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4jY3MtY29tcGFueS1wcmljZSAudWkuaGVhZGVyID4gLmljb24gKyAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbiNjcy1jb21wYW55LXByaWNlIC51aS5oZWFkZXIuY29tcGFueS1wcmljZS12YWx1ZSBzcGFuLmdyZWVuIHtcbiAgY29sb3I6ICMyMWJhNDUhaW1wb3J0YW50O1xufVxuI2NzLWNvbXBhbnktcHJpY2UgLnVpLmhlYWRlci5jb21wYW55LXByaWNlLXZhbHVlIHNwYW4ucmVkIHtcbiAgY29sb3I6ICNkYjI4MjghaW1wb3J0YW50O1xufVxuI2NzLWNvbXBhbnktcHJpY2UgaDIuaGVhZGVyIHNwYW4ge1xuICBmb250LXNpemU6IDAuNmVtO1xufVxuI2NzLWNvbXBhbnktcHJpY2UgLnVwZGF0ZSB7XG4gIGNvbG9yOiAjNzY3Njc2O1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuI2NzLWNvbXBhbnktc3RhdHMge1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA5NXB4O1xufVxuI2NzLWNvbXBhbnktc3RhdHMgLnVpLnN0YXRpc3RpY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuI2NzLWNvbXBhbnktc3RhdHMgLnVpLnN0YXRpc3RpY3MgLnN0YXRpc3RpYyB7XG4gIG1hcmdpbi1ib3R0b206IDAuOWVtO1xuICBtYXJnaW46IDAgMCAxZW0gMS40ZW07XG59XG4jY3MtY29tcGFueS1zdGF0cyAudWkuaG9yaXpvbnRhbC5zZWdtZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuI2NzLWNvbXBhbnktcHJvZmlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDAuMTRlbTtcbn1cbiNjcy1jb21wYW55LXJlY29tbWVuZCAudWkuYWNjb3JkaW9uIC50aXRsZSAudWkubGFiZWwge1xuICBmb250LXNpemU6IDAuN2VtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuI2NzLWNvbXBhbnktcmVjb21tZW5kIC51aS5hY2NvcmRpb24gLnRpdGxlIC5kcm9wZG93bi5pY29uIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiNjcy1jb21wYW55LXJlY29tbWVuZCAudWkuYWNjb3JkaW9uIC50aXRsZSAudGV4dCB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4jY3MtY29tcGFueSAuY3MtcmFuZ2Utc2NhbGUge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4uY3MtZmluYW5jaWFscy1idXR0b25zIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5jcy1maW5hbmNpYWxzLWJ1dHRvbnMgLmNzLWZpbmFuY2lhbHMtZG93bmxvYWQge1xuICBmbGV4OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLmNzLXRhYmxlLWZpeGVkLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA0NXB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gOGVtKTtcbiAgei1pbmRleDogMTtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLmNzLXRhYmxlLWNvbnRhaW5lci5maXhlZC1oZWFkZXIgLmNzLXRhYmxlLWZpeGVkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQ6bm90KC5mdWxsLXdpZHRoKSB0aDpudGgtY2hpbGQoMikge1xuICBib3JkZXItbGVmdDogbm9uZTtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQgdGgge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjNlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6ICMyYzZhOWU7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoOmhvdmVyIC55ZWFyIC5wZXJpb2Qge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aC55ZWFyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoIC55ZWFyIC5wZXJpb2Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTQwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JleTtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLXdpZHRoOiAyODBweDtcbiAgcmlnaHQ6IC0xMDBweDtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgdGhlYWQgdGggLnllYXIucXVhcnRlcmx5IC5wZXJpb2Qge1xuICBtaW4td2lkdGg6IDEwMHB4O1xuICByaWdodDogLTEwcHg7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoIC55ZWFyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzJDNkE5RTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoIC55ZWFyIC5xdWFydGVyIHtcbiAgY29sb3I6ICM3MzcxNzY7XG4gIG1hcmdpbi1ib3R0b206IDAuMWVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZCB0aCAueWVhciAueWVhci1lbmQtZGF0ZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoIC55ZWFyIC5jcy1vcGVuLXJlcG9ydCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMC41ZW07XG4gIHotaW5kZXg6IDE7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRoZWFkIHRoIC55ZWFyIC5jcy1vcGVuLXJlcG9ydCBpIHtcbiAgbWFyZ2luOiAwcHg7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRyIHRkOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDM0LCAzNiwgMzgsIDAuMTUpO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0ci5oZWFkZXItcm93IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0ZTRlNDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIHRyOm5vdCguaGVhZGVyLXJvdykgdGQge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSB0aGVhZDpub3QoLmZ1bGwtd2lkdGgpIHRoOmZpcnN0LWNoaWxkIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgY29sb3I6ICMyQzZBOUU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmNzLWZpbmFuY2lhbC10YWJsZSAudWkuZGVmaW5pdGlvbi50YWJsZSAudHJlbmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIC5jaGFuZ2UucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4uY3MtZmluYW5jaWFsLXRhYmxlIC51aS5kZWZpbml0aW9uLnRhYmxlIC5jaGFuZ2UuZ3JlZW4ge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi5jcy1maW5hbmNpYWwtdGFibGUgLnVpLmRlZmluaXRpb24udGFibGUgLnZhbHVlLS1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktcmV0dXJucyB0YWJsZSB7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbiNjcy1jb21wYW55LXJldHVybnMgdGgge1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuMmVtO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBjb2xvcjogZ3JleTtcbn1cbiNjcy1jb21wYW55LXJldHVybnMgLnRpdGxlLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFueS1yZXR1cm5zIC5jZWxsIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNmZmY7XG4gIHdpZHRoOiAxNSU7XG59XG4jY3MtY29tcGFueS1yZXR1cm5zIC5jZWxsLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNEQjI4Mjg7XG59XG4jY3MtY29tcGFueS1yZXR1cm5zIC5jZWxsLmdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxQkE0NTtcbn1cbiNjcy1jb21wYW55LXJldHVybnMgLmNzLXRpbWUtZnJhbWUge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1yZXR1cm5zIHtcbiAgICBwYWRkaW5nOiAwLjVlbSAwIDEuNWVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMCAxcHggMDtcbiAgfVxuICAjY3MtY29tcGFueS1yZXR1cm5zIC50aXRsZS1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1jb21wYW55LXJldHVybnMgLnRpdGxlLWNlbGwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI2NzLWNvbXBhbnktcmV0dXJucyAuY2VsbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICNjcy1jb21wYW55LXJldHVybnMgdGhlYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI2NzLWNvbXBhbnktcmV0dXJucyAuY3MtdGltZS1mcmFtZSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG59XG4jY3MtY29tcGFueS1vdmVydmlldyAuY3MtZmluYW5jaWFsLXRhYmxlIHRoZWFkIHRoLFxuLnVpLnRhYltkYXRhLXRhYj1cInRlY2huaWNhbFwiXSAuY3MtZmluYW5jaWFsLXRhYmxlIHRoZWFkIHRoIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcGFkZGluZy10b3A6IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLWNvbXBhbnktb3ZlcnZpZXcgLmNzLWZpbmFuY2lhbC10YWJsZSAuZmllbGQsXG4udWkudGFiW2RhdGEtdGFiPVwidGVjaG5pY2FsXCJdIC5jcy1maW5hbmNpYWwtdGFibGUgLmZpZWxkIHtcbiAgd2lkdGg6IDIwMHB4O1xufVxuI2NzLWNvbXBhbnktb3ZlcnZpZXcgLmNzLWZpbmFuY2lhbC10YWJsZSB0ZCxcbi51aS50YWJbZGF0YS10YWI9XCJ0ZWNobmljYWxcIl0gLmNzLWZpbmFuY2lhbC10YWJsZSB0ZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC50aXRsZS1jZWxsIHtcbiAgd2lkdGg6IDIyNXB4O1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5yYW5nZS1jZWxsIHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTMwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAucmFuZ2UtY2VsbCAuY3MtcmFuZ2Utc2NhbGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAxMHB4IDA7XG59XG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLnJhbmdlLWNlbGwgLmNzLXJhbmdlLXNjYWxlIC5iYXIsXG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLnJhbmdlLWNlbGwgLmNzLXJhbmdlLXNjYWxlIC5iYXIgLnBvaW50IHtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5yYW5nZS1jZWxsIC5jcy1yYW5nZS1zY2FsZSAuYmFyIC5jYXJldCB7XG4gIGJvdHRvbTogLTdweDtcbiAgbWFyZ2luLWxlZnQ6IC05cHg7XG4gIGZvbnQtc2l6ZTogMS42ZW07XG59XG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLnNhcGVyYXRvciB7XG4gIHdpZHRoOiAzMHB4O1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5tangtY2h0bWwsXG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLk1KWGMtZGlzcGxheSB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAuY3MtaW5mby51aS5wb3B1cCB7XG4gIHBhZGRpbmctcmlnaHQ6IDEuOGVtO1xuICBtYXgtd2lkdGg6IGluaXRpYWw7XG59XG4jY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLmNzLWluZm8udWkucG9wdXAgLmNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDI4MHB4O1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5jcy12ZXJzdXMtaW5mby51aS5wb3B1cCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHdpZHRoOiAyMDBweDtcbn1cbiNjcy1jb21wYW55LWZ1bmRhbWVudGFscyAuY3MtdmVyc3VzLWluZm8udWkucG9wdXAgLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIC5jcy12ZXJzdXMtaW5mby51aS5wb3B1cCAuY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMC40ZW0gMC42ZW0gMC4yZW07XG4gIG1hcmdpbi10b3A6IDAuM2VtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1mdW5kYW1lbnRhbHMge1xuICAgIHdpZHRoOiAxMDAwcHg7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuICAjY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLnVpLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAwLjJlbSAwLjRlbTtcbiAgfVxuICAjY3MtY29tcGFueS1mdW5kYW1lbnRhbHMgLnRpdGxlLWNlbGwge1xuICAgIHdpZHRoOiAxMjRweDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgRnVuZGFtZW50YWxzIE1lZGlhbiBSYW5nZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1tZWRpYW4tcmFuZ2UgLnRleHQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY3MtbWVkaWFuLXJhbmdlIC50ZXh0ID4gZGl2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmNzLW1lZGlhbi1yYW5nZSAudGV4dCAubWluIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uY3MtbWVkaWFuLXJhbmdlIC50ZXh0IC5tYXgge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmNzLW1lZGlhbi1yYW5nZSAudGV4dCAubnVtIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4uY3MtbWVkaWFuLXJhbmdlIC5saW5lIHtcbiAgbWFyZ2luOiAxMHB4IDAgNXB4IDA7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2NjYztcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jcy1tZWRpYW4tcmFuZ2UgLmxpbmUgPiBkaXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjY2NjO1xuICB0b3A6IC02cHg7XG59XG4uY3MtbWVkaWFuLXJhbmdlIC5saW5lIC5jaXJjbGUge1xuICB3aWR0aDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiAjNzY3Njc2O1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xufVxuLmNzLW1lZGlhbi1yYW5nZSAubGluZSAubWluIHtcbiAgbGVmdDogMDtcbn1cbi5jcy1tZWRpYW4tcmFuZ2UgLmxpbmUgLm1heCB7XG4gIHJpZ2h0OiAwO1xufVxuLmNzLW1lZGlhbi1yYW5nZSAubGluZSAubWVkaWFuIHtcbiAgbGVmdDogNTAlO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBGdW5kYW1lbnRhbHMgUm93IE1ldGVyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXJvdy1iYXIge1xuICB3aWR0aDogMzJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbn1cbi5jcy1yb3ctYmFyIC5iYXIge1xuICBoZWlnaHQ6IDE0cHg7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIE5FV1NMRVRURVJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jY3MtaG9tZS1uZXdzbGV0dGVyIHtcbiAgcGFkZGluZy10b3A6IDA7XG59XG4jY3MtaG9tZS1uZXdzbGV0dGVyIC51aS5tZW51IHtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuI2NzLWhvbWUtbmV3c2xldHRlciAudWkuZm9ybSB7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIENvbXBhbnkgQ2hhcnQgT3B0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1jaGFydC1vcHRpb25zIC51aS5zZWNvbmRhcnkubWVudSAuYWN0aXZlLml0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjMkM2QTlFICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7XG59XG4jY3MtY29tcGFueS1hbm5vdW5jZW1lbnRzIC5kYXRlLWNlbGwge1xuICB3aWR0aDogMTIwcHg7XG59XG4jY3MtY29tcGFueS1hbm5vdW5jZW1lbnRzIC5jb21wYW55X19zZWxlY3Rpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNvbXBhbnktYW5ub3VuY2VtZW50cyAuYW5ub3VuY2VfX2RhdGVfX2NhbGVuZGVyVmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFueS1hbm5vdW5jZW1lbnRzICNhbm5vdW5jZS1jYWxlbmRhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktYW5ub3VuY2VtZW50cyB7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICB9XG4gICNjcy1jb21wYW55LWFubm91bmNlbWVudHMgLnVpLnRhYmxlIHtcbiAgICB3aWR0aDogNjUwcHg7XG4gIH1cbiAgI2NzLWNvbXBhbnktYW5ub3VuY2VtZW50cyAudWkudGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtO1xuICB9XG4gICNjcy1jb21wYW55LWFubm91bmNlbWVudHMgLmFubm91bmNlX19maWx0ZXJzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxufVxuLmNzLWZpbmFuY2lhbHMtb3ZlcnZpZXctYnV0dG9ucyB7XG4gIGZsb2F0OiByaWdodDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3MtZmluYW5jaWFscy1vdmVydmlldy1idXR0b25zIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuI291dGVyQ29udGFpbmVyICNtYWluQ29udGFpbmVyIGRpdi50b29sYmFyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAvKiBoaWRlIFBERiB2aWV3ZXIgdG9vbGJhciAqL1xufVxuI291dGVyQ29udGFpbmVyICNtYWluQ29udGFpbmVyICN2aWV3ZXJDb250YWluZXIge1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgLyogbW92ZSBkb2MgdXAgaW50byBlbXB0eSBiYXIgc3BhY2UgKi9cbn1cbiNjcy1jb21wYW55LWZpbmFuY2lhbHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY3MtY29tcGFueS1maW5hbmNpYWxzIC5maXNjYWwteWVhciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxZW07XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIHJpZ2h0OiAxZW07XG4gIGNvbG9yOiAjYTRhNGE0O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFueS1maW5hbmNpYWxzIC5maXNjYWwteWVhciB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBtYXJnaW46IDFlbSAwLjdlbSAwZW07XG4gIH1cbn1cbiNjcy10YXJnZXQtZXBzLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTExcHg7XG4gIHJpZ2h0OiAyLjVlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXRhcmdldC1lcHMtbWVudSB7XG4gICAgcmlnaHQ6IDBweDtcbiAgfVxufVxuI2NzLXBpdm90LXBvaW50cyB0YWJsZSB0Ym9keSB0ZCB7XG4gIHBhZGRpbmc6IDAuOTllbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWVxdWl0eS1wcm9maWxlIHRhYmxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgI2NzLWVxdWl0eS1wcm9maWxlIHRhYmxlIHRoZWFkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICB9XG4gICNjcy1lcXVpdHktcHJvZmlsZSB0YWJsZSB0aGVhZCB0aCB7XG4gICAgcGFkZGluZzogMWVtICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTIgIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZXF1aXR5LXByb2ZpbGUgdGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZXF1aXR5LXByb2ZpbGUgdGFibGUgdGhlYWQgdGg6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZXF1aXR5LXByb2ZpbGUgdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDFlbSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWVxdWl0eS1wcm9maWxlIHRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWVxdWl0eS1wcm9maWxlIHRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQge1xuICAgIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1jb21wYW55LWluc2lkZXIgLmluc2lkZXItdGFibGUgdGFibGUgdGgge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LWluc2lkZXIgLmluc2lkZXItdGFibGUge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAjY3MtY29tcGFueS1pbnNpZGVyIC5pbnNpZGVyLXRhYmxlIHRhYmxlIHtcbiAgICBtaW4td2lkdGg6IDEwMzBweDtcbiAgfVxufVxuI2NzLWNvbXBhbnktaW5zaWRlci1oZWFkZXIge1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTJlMjtcbn1cbiNjcy1jb21wYW55LWluc2lkZXItaGVhZGVyIGkge1xuICBtYXJnaW46IDBweDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbiNjcy1jb21wYW55LWluc2lkZXItaGVhZGVyIC5ncmVlbiB7XG4gIGNvbG9yOiAjMjVCQTQ1O1xufVxuI2NzLWNvbXBhbnktaW5zaWRlci1oZWFkZXIgLnJlZCB7XG4gIGNvbG9yOiAjREIyODMwO1xufVxuI2NzLWNvbXBhbnktaW5zaWRlci1oZWFkZXIgLmFtb3VudCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzdDQjM0Mjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktaW5zaWRlci1oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIG1pbi1oZWlnaHQ6IDkwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLnVpLnNlZ21lbnQge1xuICBwYWRkaW5nOiAwcHg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC1uYXYgLnVpLm1lbnUge1xuICBtYXJnaW46IDBweDtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LW5hdiAudWkuZHJvcGRvd24ge1xuICB3aWR0aDogNDUwcHg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmRpc2FibGVkLWNlbGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyO1xuICBjb2xvcjogI2EwYTBhMDtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuZGFuZ2VyLWNlbGwge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjU4NTg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLnVwY29taW5nLWNlbGwge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzYjVhODE7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmxlZ2VuZHMtdmFsdWVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW46IDAgMCAxZW07XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmxlZ2VuZHMtdmFsdWVzIGgxIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICM1YTg4YjU7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlIHRib2R5IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSB0Ym9keTo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiA3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNGM4Y2M7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSB0Ym9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlIHRyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlIHRyIHRkLFxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtdGFibGUgdHIgdGgge1xuICBmbGV4OiAxO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtdGFibGUgdGhlYWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjOGNjO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtdGFibGUgdGhlYWQgdHIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gN3B4KTtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlIC5pbWFnZS1pY29uIHtcbiAgY29sb3I6ICMyYzZhOWU7XG59XG4jY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSAucGRmLWljb24ge1xuICBjb2xvcjogI2RmNDE0MjtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LWNoYXJ0LXdyYXBwZXIge1xuICBtaW4taGVpZ2h0OiAyNTBweDtcbn1cbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LXRhYmxlcy13cmFwcGVyLmxvYWRpbmc6OmJlZm9yZSxcbiNjcy1jb21wYW55LXBheW91dCAuY3MtcGF5b3V0LWNoYXJ0LXdyYXBwZXIubG9hZGluZzo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbnktcGF5b3V0IC5jcy1wYXlvdXQtY2hhcnQtd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogMTMwcHg7XG4gIH1cbiAgI2NzLWNvbXBhbnktcGF5b3V0ID4gLnVpLmdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAjY3MtY29tcGFueS1wYXlvdXQgLmNzLXBheW91dC10YWJsZSB7XG4gICAgd2lkdGg6IDgwMHB4O1xuICB9XG4gICNjcy1jb21wYW55LXBheW91dCAjY3MtcGF5b3V0LWhpc3RvcmljYWwtY2FzaCxcbiAgI2NzLWNvbXBhbnktcGF5b3V0ICNjcy1wYXlvdXQtaGlzdG9yaWNhbC1vdGhlcnMge1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gIH1cbn1cbiNjcy1wYXlvdXQtdHJlbmQgLnBheW91dF9fdHJlbmRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuI2NzLXBheW91dC10cmVuZCAucGF5b3V0X190cmVuZHMgPiBkaXYge1xuICBmbGV4OiAwIDAgMzIlO1xufVxuI2NzLXBheW91dC10cmVuZCAucGF5b3V0X190cmVuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzUzODNiMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM4M2IyO1xuICBjb2xvcjogd2hpdGU7XG59XG4jY3MtcGF5b3V0LXRyZW5kIC5wYXlvdXRfX3RyZW5kVGl0bGUge1xuICBmb250LXNpemU6IDAuOTVlbTtcbn1cbiNjcy1wYXlvdXQtdHJlbmQgLnBheW91dF9fdHJlbmRTdGF0IHtcbiAgZm9udC1zaXplOiAyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDAuMjVlbSAwO1xuICBjb2xvcjogI2RjZWVmZjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXBheW91dC10cmVuZCAucGF5b3V0X190cmVuZFN0YXQge1xuICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gIH1cbn1cbiNjcy1wYXlvdXQtdHJlbmQtaGVhZGVyIC51aS5oZWFkZXIge1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTJlMjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuI2NzLXBheW91dC10cmVuZC1oZWFkZXIgLmFtb3VudCB7XG4gIGNvbG9yOiAjMjVCQTQ1O1xufVxuLmNzLXBheW91dC10b3Atc2VjdGlvbi0tZml4ZWQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgbGVmdDogLTk5OTlweDtcbiAgd2lkdGg6IGNhbGMoMTAwdncgLSAyZW0pO1xufVxuI2NzLWNvbXBhbnktcGF5b3V0LWNoYXJ0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW55LXBheW91dC1jaGFydCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAyZW0pO1xuICB9XG59XG4uY3NfX2NvbXBhbnlfX3N1YkhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFNFQ1RPUlMgT1ZFUlZJRVcgUEFHRVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1zZWN0b3JzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXRvcDogOTZweDtcbiAgYmFja2dyb3VuZDogIzJDNkE5RTtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIG1pbi1oZWlnaHQ6IDY1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMkM2QTlFO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtc2VjdG9ycyB7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1zZWN0b3JzLmNzLXNlY3Rvci12aWV3ICNjcy1zZWN0b3JzLWhlYWRlciAudWkuZGl2aWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjY3Mtc2VjdG9ycy5jcy1zZWN0b3ItdmlldyAjY3Mtc2VjdG9ycy1oZWFkZXIgLmxhc3QtdXBkYXRlIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuICAjY3Mtc2VjdG9ycy5jcy1zZWN0b3ItdmlldyAjY3Mtc2VjdG9ycy1oZWFkZXIgLnZhbHVlLXRleHQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbiAgI2NzLXNlY3RvcnMuY3Mtc2VjdG9yLXZpZXcgI2NzLXNlY3RvcnMtZ3JpZCAuY2VsbC5jb21wYW5pZXMge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAjY3Mtc2VjdG9ycy5jcy1zZWN0b3ItdmlldyAjY3Mtc2VjdG9ycy1ncmlkIC5jZWxsLnNlY3RvciB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1zZWN0b3JzLmNzLXNlY3Rvci12aWV3ICNjcy1zZWN0b3JzLWdyaWQgLmNlbGwuc2VjdG9yIC50ZXh0IHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cbiAgI2NzLXNlY3RvcnMuY3Mtc2VjdG9yLXZpZXcgI2NzLXNlY3RvcnMtZ3JpZCAuY2VsbC5tYXJrZXQtY2FwIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLXNlY3RvcnMuY3Mtc2VjdG9yLXZpZXcgI2NzLXNlY3RvcnMtZ3JpZCAuY2VsbC5jaGFuZ2Uge1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxufVxuI2NzLXNlY3RvcnMuY3MtY29tcGFuaWVzLXZpZXcge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtc2VjdG9ycy5jcy1jb21wYW5pZXMtdmlldyAjY3Mtc2VjdG9ycy1oZWFkZXIsXG4gICNjcy1zZWN0b3JzLmNzLWNvbXBhbmllcy12aWV3ICNjcy1jb21wYW5pZXMtZ3JpZC5jcy1ncmlkIHtcbiAgICB3aWR0aDogMTM1MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLXNlY3RvcnMuY3MtY29tcGFuaWVzLXZpZXcgI2NzLWNvbXBhbmllcy1ncmlkIC5oZWFkLFxuICAjY3Mtc2VjdG9ycy5jcy1jb21wYW5pZXMtdmlldyAjY3MtY29tcGFuaWVzLWdyaWQgLmJvZHkge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1zZWN0b3JzIC51aS5oZWFkZXIge1xuICBmb250LXdlaWdodDogbGlnaHQ7XG59XG4jY3Mtc2VjdG9ycyA+IC51aS5jb250YWluZXIgPiAudWkuc2VnbWVudC5iYXNpYyB7XG4gIHBhZGRpbmc6IDA7XG59XG4jY3Mtc2VjdG9ycy1oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuOHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kOiAjMkM2QTlFO1xuICBwYWRkaW5nOiAxZW0gMCAwO1xuICB0b3A6IDk2cHg7XG59XG4jY3Mtc2VjdG9ycy1oZWFkZXIgLnVpLmhlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NzLXNlY3RvcnMtaGVhZGVyIC50aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDE2ZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtYXJnaW4tYm90dG9tOiAtN3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbiNjcy1zZWN0b3JzLWhlYWRlciAuaW5kaWNhdG9yIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDAuN2VtO1xuICBtYXJnaW4tcmlnaHQ6IDJlbTtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuI2NzLXNlY3RvcnMtaGVhZGVyIC5iYWNrIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZsb2F0OiByaWdodDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgb3BhY2l0eTogMC44O1xufVxuI2NzLXNlY3RvcnMtaGVhZGVyIC5iYWNrOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbiNjcy1zZWN0b3JzLWhlYWRlciAubGFzdC11cGRhdGUge1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtc2l6ZTogMC41ZW07XG4gIG1hcmdpbi10b3A6IDAuNmVtO1xufVxuI2NzLXNlY3RvcnMtaGVhZGVyIC52YWx1ZS10ZXh0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDAuNWVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtc2VjdG9ycy1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNjJweDtcbiAgfVxufVxuI2NzLXNlY3RvcnMtaGVhZGVyIC51aS5oZWFkZXIge1xuICBmb250LXNpemU6IDEuOGVtO1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgU0VDVE9SUyBHUklEXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLWdyaWQge1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjhzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogOTRweDtcbn1cbi5jcy1ncmlkIC5oZWFkIHtcbiAgaGVpZ2h0OiA0MnB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDE4NHB4O1xuICBiYWNrZ3JvdW5kOiAjMkM2QTlFO1xuICB6LWluZGV4OiAxMTtcbn1cbi5jcy1ncmlkIC5ib2R5IHtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICBwYWRkaW5nLXRvcDogMzhweDtcbn1cbi5jcy1ncmlkIC5yb3cge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5jcy1ncmlkIC5jZWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMi4yZW07XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIHdpZHRoOiA4JTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmNzLWdyaWQgLmNlbGwgLnRleHQge1xuICBwYWRkaW5nOiAwIDRweCAwO1xufVxuLmNzLWdyaWQgLmhlYWQgLmNlbGwge1xuICBmb250LXNpemU6IDAuOWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG59XG4uY3MtZ3JpZCAuaGVhZCAuY2VsbCAuc3VidGV4dCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiAjY2RjZGNkO1xufVxuLmNzLWdyaWQgLmJsaW5rLW1lIHtcbiAgYW5pbWF0aW9uOiBibGlua2VyIDEuNXMgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBibGlua2VyIHtcbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjA7XG4gIH1cbn1cbi5jcy1ncmlkIC5oZWFkIC5jZWxsLnNlY3Rvcixcbi5jcy1ncmlkIC5ib2R5IC5jZWxsLnNlY3RvciB7XG4gIHdpZHRoOiAyNCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uY3MtZ3JpZCAuYm9keSAuY2VsbCAudGV4dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyQzZBOUU7XG4gIGJvcmRlci13aWR0aDogMCAycHggMCAwO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbi5jcy1ncmlkIC5ib2R5IC5jZWxsLnNlY3RvciB7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5jcy1ncmlkIC5ib2R5IC5yb3c6aG92ZXIgLmNlbGwuc2VjdG9yIHtcbiAgYmFja2dyb3VuZDogIzIyNUE4QTtcbiAgb3BhY2l0eTogMTtcbn1cbi5jcy1ncmlkIC5oZWFkIC5jZWxsLmNoYW5nZSxcbi5jcy1ncmlkIC5ib2R5IC5jZWxsLmNoYW5nZSB7XG4gIHdpZHRoOiA2JTtcbn1cbi5jcy1ncmlkIC5ib2R5IC5jZWxsLmNvbXBhbmllcyB7XG4gIHdpZHRoOiA2MSU7XG4gIG1hcmdpbi1sZWZ0OiAxJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG4uY3MtZ3JpZCAuYm9keSAuY2VsbC5jb21wYW5pZXMgLmNvbXBhbnkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMC44O1xufVxuLmNzLWdyaWQgLmJvZHkgLmNlbGwuY29tcGFuaWVzIC5jb21wYW55IC50ZXh0IHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5jcy1ncmlkIC5ib2R5IC5jZWxsLmNvbXBhbmllcyAuY29tcGFueTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcy1ncmlkIHtcbiAgICBtYXJnaW4tdG9wOiA3MHB4O1xuICB9XG4gIC5jcy1ncmlkIC5oZWFkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwcHg7XG4gIH1cbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuc2VjdG9yLmNlbGwge1xuICB3aWR0aDogMjAlO1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5zZWN0b3IuY2VsbCAudGV4dCB7XG4gIHdpZHRoOiA5OCU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5oZWFkIHtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5ib2R5IHtcbiAgcGFkZGluZy10b3A6IDUwcHg7XG59XG4jY3MtY29tcGFuaWVzLWdyaWQgLmNlbGwge1xuICB3aWR0aDogOC43JTtcbn1cbiNjcy1jb21wYW5pZXMtZ3JpZCAuaGVhZCAuY2VsbCB7XG4gIGhlaWdodDogNjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5oZWFkIC5jZWxsLmdyb3VwIC5saW5lIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5oZWFkIC5jZWxsIC5oZWFkaW5nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zcHg7XG4gIGxlZnQ6IDhweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jY3MtY29tcGFuaWVzLWdyaWQgLmhlYWQgLmNlbGwgLnRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcmlnaHQ6IDRweDtcbiAgbGluZS1oZWlnaHQ6IDEuMmVtO1xufVxuI2NzLWNvbXBhbmllcy1ncmlkIC5jZWxsLm1hcmtldC1jYXAge1xuICBtYXJnaW4tbGVmdDogMSU7XG59XG4jY3MtY29tcGFuaWVzLWdyaWQgLmNlbGwubWFya3VwIHtcbiAgd2lkdGg6IDklO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY29tcGFuaWVzLWdyaWQgLmJvZHkge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICB9XG59XG4jY3Mtc2VjdG9ycy1ncmlkLXBvcHVwIHtcbiAgd2lkdGg6IDM1MHB4O1xufVxuI2NzLXNlY3RvcnMtZ3JpZC1wb3B1cCAudWkuaGVhZGVyIHtcbiAgbWFyZ2luOiAwIDAgMC4yZW07XG59XG4jY3Mtc2VjdG9ycy1ncmlkLXBvcHVwIC5zZWN0b3Ige1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzc2NzY3Njtcbn1cbiNjcy1zZWN0b3JzLWdyaWQtcG9wdXAgLmRlc2Mge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzc2NzY3Njtcbn1cbiNjcy1zZWN0b3JzLWdyaWQtcG9wdXAgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jY3Mtc2VjdG9ycy1ncmlkLXBvcHVwIC5jaGFuZ2Uge1xuICBwYWRkaW5nOiAwLjJlbSAwO1xufVxuI2NzLXNlY3RvcnMtZ3JpZC1wb3B1cCAucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4jY3Mtc2VjdG9ycy1ncmlkLXBvcHVwIC5ncmVlbiB7XG4gIGNvbG9yOiAjMjFCQTQ1O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNFQ1RPUiBUUkVFTUFQXG4tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNzLXNlY3Rvci10cmVlbWFwIHtcbiAgYmFja2dyb3VuZDogIzI2MjkzMTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMyNjI5MzE7XG4gIC8qIExheSB0aGUga2V5IHN0ZXBzIG91dCB3aXRoIGZsZXggc28gYWxsIHNldmVuIHN0YXkgb24gYSBzaW5nbGUgcm93IHdoYXRldmVyXG4gICAgIHRoZSBsYWJlbCB3aWR0aHMgLS0gdGhlIGNoYW5nZSBrZXkgaW4gcGFydGljdWxhciBub3cgdXNlcyB3aWRlclxuICAgICB0d28tZGVjaW1hbCBsYWJlbHMgKC0xMC4wMCUgLi4uICsxMC4wMCUpLiAqL1xuICAvKiBUaGUgTWFya2V0IE1hcCB3YXMgYnVpbHQgZGVza3RvcC1vbmx5OiB0aGUgdG9vbGJhciBhc3N1bWVzIG9uZSB3aWRlIHJvdyBhbmRcbiAgICAgdGhlIGZvb3RlciB0YWJsZSBzaXRzIHRoZSBpbmZvIHRleHQgYmVzaWRlIGEgMzYwcHgga2V5LiBCZWxvdyB0aGUgdGFibGV0XG4gICAgIGJyZWFrcG9pbnQsIGxldCB0aGUgdG9vbGJhciB3cmFwIGFuZCBzdGFjayB0aGUgZm9vdGVyIGNlbGxzIGluc3RlYWQuICovXG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLnVpLm1lbnUge1xuICBiYWNrZ3JvdW5kOiAjMzYzYTQ2O1xuICBtYXJnaW46IDAgMCAwLjVlbTtcbiAgYm94LXNoYWRvdzogMXB4IDFweCAwcHggIzExMTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC5tZW51LnJpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogc2xhdGVncmV5O1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC51aS5tZW51IC5kcm9wZG93bi5pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDAwO1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLnVpLm1lbnUgLml0ZW0ge1xuICBjb2xvcjogI2NjZDVlODtcbiAgcGFkZGluZzogMC41ZW0gMC43ZW07XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLnVpLm1lbnUgLmRyb3Bkb3duLml0ZW06aG92ZXIge1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmNoYXJ0LXdyYXBwZXIge1xuICBwYWRkaW5nOiAwIDFlbTtcbn1cbi5jcy1zZWN0b3ItdHJlZW1hcCAuaW5mbyB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAyNnB4O1xuICBtYXJnaW4tdG9wOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTNweDtcbn1cbi5jcy1zZWN0b3ItdHJlZW1hcCAuc2NhbGUge1xuICAvKiBXYXMgYW4gaW5saW5lIHN0eWxlIG9uIGVhY2ggY2VsbCwgd2hpY2ggbWFkZSBpdCBpbXBvc3NpYmxlIHRvIG92ZXJyaWRlIGluXG4gICAgICAgdGhlIG1vYmlsZSBibG9jayBiZWxvdy4gKi9cbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjZweDtcbn1cbi5jcy1zZWN0b3ItdHJlZW1hcCAuc2NhbGUgZGl2IHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG4gIG1hcmdpbi1ib3R0b206IDdweDtcbn1cbi5jcy1zZWN0b3ItdHJlZW1hcCAuc2NhbGUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC5zY2FsZSBkaXYge1xuICBmbGV4OiAxO1xuICBmbG9hdDogbm9uZTtcbiAgcGFkZGluZzogMCAycHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmJlZXAge1xuICBoZWlnaHQ6IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAtMXB4IDAuN2VtIDAgMC41ZW07XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmJlZXAgLmNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBiYWNrZ3JvdW5kOiAjNjY2O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG4uY3Mtc2VjdG9yLXRyZWVtYXAgLmJlZXAub3BlbiAuY2lyY2xlIHtcbiAgYW5pbWF0aW9uOiBiZWVwIDJzIGluZmluaXRlO1xuICBiYWNrZ3JvdW5kOiAjNjRmMzQxO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC5iZWVwLXRleHQge1xuICBjb2xvcjogIzY0ZjM0MTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICBmb250LXNpemU6IDEuMWVtO1xufVxuLmNzLXNlY3Rvci10cmVlbWFwIC5iZWVwLXRleHQub3BlbiB7XG4gIHdpZHRoOiA0MHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3Mtc2VjdG9yLXRyZWVtYXAge1xuICAgIC8qIFRoZSByaWdodC1oYW5kIGRyb3Bkb3duIGdyb3VwIGlzIHRoZSBvbmx5IGNvbnRyb2wgb24gbW9iaWxlLCBzbyBnaXZlIGl0XG4gICAgICAgdGhlIGZ1bGwgcm93IHJhdGhlciB0aGFuIGxldHRpbmcgaXQgdHJhaWwgb2ZmIHRoZSBlZGdlLiAqL1xuICAgIC8qIENvbGxhcHNlIHRoZSBmb290ZXIgdGFibGUgc28gdGhlIGluZm8gdGV4dCBhbmQgdGhlIGtleSBzdGFjay4gKi9cbiAgICAvKiBLZWVwIHRoZSBrZXkgYSBmbGV4IHJvdyAtLSB0ZC5zY2FsZSBvdXRyYW5rcyB0aGUgLnNjYWxlIHJ1bGUgYWJvdmUsIHNvXG4gICAgICAgaXQgaGFzIHRvIHJlc3RhdGUgZGlzcGxheSBoZXJlIG9yIHRoZSBzdGVwcyBmYWxsIGJhY2sgdG8gZmxvYXRzLiAqL1xuICB9XG4gIC5jcy1zZWN0b3ItdHJlZW1hcCAudWkubWVudSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5jcy1zZWN0b3ItdHJlZW1hcCAudWkubWVudSAuaXRlbSB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG4gIC5jcy1zZWN0b3ItdHJlZW1hcCAubWVudS5yaWdodCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmNzLXNlY3Rvci10cmVlbWFwIC51aS5tZW51IC5kcm9wZG93bi5pdGVtIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzAwMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmNzLXNlY3Rvci10cmVlbWFwIC5jaGFydC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwIDAuNWVtO1xuICB9XG4gIC5jcy1zZWN0b3ItdHJlZW1hcCB0YWJsZSxcbiAgLmNzLXNlY3Rvci10cmVlbWFwIHRib2R5LFxuICAuY3Mtc2VjdG9yLXRyZWVtYXAgdHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jcy1zZWN0b3ItdHJlZW1hcCB0ZC5pbmZvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuY3Mtc2VjdG9yLXRyZWVtYXAgdGQuc2NhbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmNzLXNlY3Rvci10cmVlbWFwIHRkLmluZm8sXG4gIC5jcy1zZWN0b3ItdHJlZW1hcCB0ZC5zY2FsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICAuY3Mtc2VjdG9yLXRyZWVtYXAgdGQuc2NhbGU6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuY3Mtc2VjdG9yLXRyZWVtYXAgLmluZm8ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDEycHggMC41ZW0gMDtcbiAgfVxuICAuY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIHtcbiAgICBtYXJnaW46IDEycHggMC41ZW0gMTBweDtcbiAgICBmb250LXNpemU6IDlweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuICAuY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIGRpdiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAwIDFweDtcbiAgfVxufVxuQGtleWZyYW1lcyBiZWVwIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxMiwgMTUwLCAxMCwgMC44KTtcbiAgfVxuICA4MCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgxMiwgMTUwLCAxMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDEyLCAxNTAsIDEwLCAwKTtcbiAgfVxufVxuI2NzLXRyZWVtYXAtcG9wdXAge1xuICB3aWR0aDogMjgwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAxMDAlO1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHotaW5kZXg6IDEwO1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIGhyIHtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIC5yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgLnNlY3RvciB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiAjOTk5O1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgLm5hbWUge1xuICBjb2xvcjogIzAwNDg5Mjtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIC5zeW1ib2wge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjNlbTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuM2VtO1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgLmNoYW5nZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuI2NzLXRyZWVtYXAtcG9wdXAgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jY3MtdHJlZW1hcC1wb3B1cCAucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4jY3MtdHJlZW1hcC1wb3B1cCAuZ3JlZW4ge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbiNjcy10cmVlbWFwLXBvcHVwIHRkIHtcbiAgcGFkZGluZzogMnB4IDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQVhFU1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmF4aXMge1xuICBmb250LXNpemU6IDEwcHg7XG4gIHN0cm9rZTogIzc2NzY3Njtcbn1cbi5heGlzIHBhdGgsXG4uYXhpcyBsaW5lIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiAjRENERERFO1xuICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuLmF4aXMgdGV4dCB7XG4gIHN0cm9rZS13aWR0aDogMC41cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR1JJRFNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi54LWdyaWQsXG4ueS1ncmlkIHtcbiAgZmlsbDogbm9uZTtcbiAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xuICBzdHJva2U6ICNEQ0REREU7XG4gIHN0cm9rZS13aWR0aDogMXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIExJTkVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5saW5lIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiAjMUI1NTg2O1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBCQVJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5iYXIucG9zaXRpdmUge1xuICBmaWxsOiAjMjFCQTQ1O1xufVxuLmJhci5uZWdhdGl2ZSB7XG4gIGZpbGw6ICNEQjI4Mjg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQVJFQVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNpcmNsZSB7XG4gIGZpbGw6ICMxQjU1ODY7XG59XG4uYXJlYSB7XG4gIGZpbGw6ICM1MzkxQzU7XG4gIHN0cm9rZTogbm9uZTtcbiAgb3BhY2l0eTogMC4xO1xufVxuLmJhciB7XG4gIGZpbGw6ICMxQjU1ODY7XG59XG4uemVyb2xpbmUge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHJlZDtcbiAgc3Ryb2tlLXdpZHRoOiAwLjVweDtcbiAgc3Ryb2tlLWRhc2hhcnJheTogNSA1O1xufVxuLnplcm9saW5ldGV4dCB7XG4gIGZpbGw6IHJlZDtcbn1cbi5vdmVybGF5IHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuLmZvY3VzTGluZSB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogc3RlZWxibHVlO1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xufVxuLmZvY3VzQ2lyY2xlIHtcbiAgc3Ryb2tlOiAjRkZGRkZGO1xufVxuLmZvY3VzQ2lyY2xlR2xvdyB7XG4gIGZpbGw6ICM1MzkxQzU7XG4gIG9wYWNpdHk6IDAuMTtcbn1cbi5jcy1jaGFydCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMjAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcy1jaGFydCB7XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgfVxufVxuLmNzLWNoYXJ0IC51aS5wb2ludGluZy5sZWZ0LmxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgd2lkdGg6IDU0cHg7XG4gIHBhZGRpbmc6IDVweCAzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jcy1jaGFydC1mb290bm90ZSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFdBVEVSRkFMTFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNzLXdhdGVyZmFsbCAuYXhpcy54IHBhdGgge1xuICBzdHJva2U6IG5vbmU7XG59XG4uY3Mtd2F0ZXJmYWxsIC5heGlzLnggbGluZSB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy13YXRlcmZhbGwgLmF4aXMueCBsaW5lIHtcbiAgc3Ryb2tlOiBub25lO1xufVxuLmNzLXdhdGVyZmFsbCAuYXhpcy54IHRleHQge1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY3Mtd2F0ZXJmYWxsIC54LWdyaWQge1xuICBzdHJva2UtZGFzaGFycmF5OiA1O1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRJTUVTRVJJRVNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5jcy10aW1lc2VyaWVzIC5heGlzLnkgcGF0aCB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy10aW1lc2VyaWVzIC52b2x1bWUge1xuICBzdHJva2U6IG5vbmU7XG4gIGZpbGw6ICM5MDkwOTA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFRpbWUtc2VyaWVzIENoYXJ0XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLWNoYXJ0LXRpbWVzZXJpZXMgLnVpLnBvcHVwIHtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdG9wLGxlZnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDhzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcyAudWkucG9wdXA6YmVmb3JlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzIC5mb2N1c0xpbmUge1xuICBmaWxsOiBub25lO1xuICBzdHJva2Utd2lkdGg6IDFweDtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzIC5mb2N1c0NpcmNsZSB7XG4gIHN0cm9rZTogI0ZGRkZGRjtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzIC5mb2N1c0NpcmNsZUdsb3cge1xuICBvcGFjaXR5OiAwLjM7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC5iZyB7XG4gIGZpbGw6ICMyQzZBOUU7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC52b2x1bWUgLmJhciB7XG4gIGZpbGw6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmF4aXMgcGF0aCB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLngtZ3JpZCxcbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLnktZ3JpZCB7XG4gIHN0cm9rZTogIzM1NzVBQjtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmxpbmUge1xuICBzdHJva2U6ICNFQ0Y2RkY7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC5heGlzIHRleHQge1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHN0cm9rZTogIzlDOUM5Qztcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmF4aXMgbGluZSB7XG4gIHN0cm9rZTogbm9uZTtcbn1cbi5jcy1jaGFydC10aW1lc2VyaWVzLmRhcmsgLmFyZWEge1xuICBvcGFjaXR5OiAxO1xufVxuLmNzLWNoYXJ0LXRpbWVzZXJpZXMuZGFyayAuZm9jdXNMaW5lIHtcbiAgc3Ryb2tlOiAjRkZGRkZGO1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3MtY2hhcnQtdGltZXNlcmllcy5kYXJrIC5heGlzIHRleHQge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxufVxuLmNzLWNoYXJ0LXRpbWVzZXJpZXMubGlnaHQgLmJnIHtcbiAgc3Ryb2tlOiAjZGNkY2RjO1xuICBmaWxsOiAjZjlmOWY5O1xufVxuLmNzLWNoYXJ0LXRpbWVzZXJpZXMubGlnaHQgLngtZ3JpZCxcbi5jcy1jaGFydC10aW1lc2VyaWVzLmxpZ2h0IC55LWdyaWQge1xuICBzdHJva2U6ICNkY2RjZGM7XG59XG4uY3MtY2hhcnQtdGltZXNlcmllcy5saWdodCAuZm9jdXNMaW5lIHtcbiAgc3Ryb2tlOiAjNzY3Njc2O1xuICBzdHJva2Utd2lkdGg6IDAuNXB4O1xufVxuLyotLS0tLS0tLS0tLS0tLS1cbiAgICBUcmVlbWFwXG4tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLXRyZWVtYXAgcmVjdCB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgc3Ryb2tlOiAjMjYyOTMxO1xufVxuI2NzLXRyZWVtYXAgLmhpZ2hsaWdodCByZWN0IHtcbiAgc3Ryb2tlOiAjZmZkNjE0O1xufVxuI2NzLXRyZWVtYXAgLnBhcmVudCAubGFiZWwge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbiNjcy10cmVlbWFwIC5oaWdobGlnaHQgLmxhYmVsIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuI2NzLXRyZWVtYXAgdGV4dCB7XG4gIGZpbGw6IHdoaXRlO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggYmxhY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiNjcy10cmVlbWFwIC5sYWJlbGJvZHkge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDFweCAwIDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xufVxuI2NzLXRyZWVtYXAgLmhpZ2hsaWdodCAubGFiZWxib2R5IHtcbiAgYmFja2dyb3VuZDogI2ZmZDYxNDtcbn1cbiNjcy10cmVlbWFwIC5sYWJlbCB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuI2NzLXRyZWVtYXAgLmNlbGwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kdWFsLWF4aXMtY2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZHVhbC1heGlzLWNoYXJ0IC5jaGFydC10b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxMHB4IHJnYmEoMTksIDE5LCAxOSwgMC4xMjE1Njg2Myk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiAwLjFzO1xuICBtaW4td2lkdGg6IDE4MHB4O1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC14IHtcbiAgcGFkZGluZzogMC4zZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI4OWFlZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxZW07XG59XG4uZHVhbC1heGlzLWNoYXJ0IC5jaGFydC10b29sdGlwIC50b29sLXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbjogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuM2VtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC15IC52YWx1ZSB7XG4gIGNvbG9yOiBncmV5O1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC15IC5sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmR1YWwtYXhpcy1jaGFydCAuY2hhcnQtdG9vbHRpcCAudG9vbC15IC50b29sLWNvbG9yLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDE1cHg7XG4gIHdpZHRoOiAxNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cC50b3Age1xuICB0b3A6IDFlbTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cC5ib3R0b20ge1xuICBib3R0b206IDFlbTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmJhci1wb3B1cC5sZWZ0IHtcbiAgbGVmdDogMWVtO1xufVxuLmR1YWwtYXhpcy1jaGFydCAuYmFyLXBvcHVwLnJpZ2h0IHtcbiAgcmlnaHQ6IDFlbTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgcmVjdC5iYXI6aG92ZXIsXG4uZHVhbC1heGlzLWNoYXJ0IC5iYXItcG9wdXAge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUwMG1zO1xufVxuLmR1YWwtYXhpcy1jaGFydCByZWN0LmJhci5wb3NpdGl2ZSB7XG4gIGZpbGw6ICM0OTljYTA7XG59XG4uZHVhbC1heGlzLWNoYXJ0IHJlY3QuYmFyLm5lZ2F0aXZlIHtcbiAgZmlsbDogIzg0NDk5MTtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgcGF0aC5saW5lIHtcbiAgc3Ryb2tlOiAjMjg5YWVmO1xuICBzdHJva2Utd2lkdGg6IDJweDtcbn1cbi5kdWFsLWF4aXMtY2hhcnQgLmF4aXMge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLmR1YWwtYXhpcy1jaGFydCAuYXhpcyBsaW5lLFxuLmR1YWwtYXhpcy1jaGFydCAuYXhpcyBwYXRoIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICBzaGFwZS1yZW5kZXJpbmc6IGNyaXNwRWRnZXM7XG4gIHN0cm9rZS13aWR0aDogMS41cHg7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDksNztcbn1cbi5kdWFsLWF4aXMtY2hhcnQgbGluZS55LWdyaWQge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICNkY2RkZGU7XG4gIHNoYXBlLXJlbmRlcmluZzogY3Jpc3BFZGdlcztcbiAgc3Ryb2tlLXdpZHRoOiAxLjVweDtcbiAgc3Ryb2tlLWRhc2hhcnJheTogMiw0O1xufVxuLmR1YWwtYXhpcy1jaGFydCBsaW5lLnktZ3JpZC56ZXJvLWxpbmUge1xuICBzdHJva2U6ICNiM2IzYjM7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDA7XG59XG4uZHVhbC1heGlzLWNoYXJ0IC54LmF4aXMudHJpbSAudGljazpudGgtY2hpbGQoZXZlbikge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5kdWFsLWF4aXMtY2hhcnQgLnguYXhpcyAudGljayB0ZXh0IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIGZvbnQtc2l6ZTogMC42NWVtO1xuICB9XG59XG4uc3VuYnVyc3RfX2NoYXJ0IHtcbiAgZm9udC1mYW1pbHk6IExhdG8sIFNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnN1bmJ1cnN0X19jaGFydCAuc2VjdGlvbiB7XG4gIHN0cm9rZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnN1bmJ1cnN0X19jaGFydCAuc2VjdGlvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuOTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnN1bmJ1cnN0X19jaGFydCAuaGlkZGVuLWFyYyB7XG4gIGZpbGw6IG5vbmU7XG59XG4uc3VuYnVyc3RfX2NoYXJ0IHRleHQge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZG9taW5hbnQtYmFzZWxpbmU6IG1pZGRsZTtcbiAgdGV4dC1hbmNob3I6IG1pZGRsZTtcbiAgZmlsbDogI0ZGRjtcbn1cbi5zdW5idXJzdF9fY2hhcnQgLnN1bmJ1cnN0LXRvb2x0aXAge1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTk5OTlweDtcbiAgbGVmdDogLTk5OTlweDtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM1NzY3N2Y7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDNweCA1cHg7XG4gIGJveC1zaGFkb3c6IDVweCA1cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zdW5idXJzdF9fY2hhcnQgLnN1bmJ1cnN0LXRvb2x0aXAgLnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4uc3VuYnVyc3RfX2NoYXJ0IC5zdW5idXJzdC10b29sdGlwIC5jbGljay1ub3RlIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDAuOWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgTUVESUEgREFTSEJPQVJEXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgTUVESUEgT1BUSU9OU1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1tZWRpYS1vcHRpb25zIHtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBQYWdlIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLXRlY2huaWNhbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xufVxuI2NzLXRlY2huaWNhbHMtbWVudSB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbiNjcy10ZWNobmljYWxzLW1lbnUgLmNzLWRpc3BsYXkgLmRyb3Bkb3duIHtcbiAgbGluZS1oZWlnaHQ6IDAuOWVtO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC5pdGVtIHtcbiAgcGFkZGluZzogMC41ZW07XG4gIG1pbi13aWR0aDogNTBweDtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAuaXRlbVtkYXRhLXZhbHVlPVwiZGF0ZVwiXSB7XG4gIG1pbi13aWR0aDogNzRweDtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAuaXRlbVtkYXRhLXZhbHVlPVwidm9sdW1lXCJdIHtcbiAgbWluLXdpZHRoOiA4MHB4O1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC5pdGVtLnRpbWVbZGF0YS12YWx1ZT1cImRhdGVcIl0ge1xuICBtaW4td2lkdGg6IDEyNHB4O1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC5pdGVtIC5pY29uLmNsb3NlIHtcbiAgbWFyZ2luOiAwIDAgMCAxZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAuaXRlbSAuaWNvbi5jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiAjZmZmO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC51aS5zdGF0aXN0aWMge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuI2NzLXRlY2huaWNhbHMtbGFiZWxzIC51aS5zdGF0aXN0aWMgLmxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjY1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbn1cbiNjcy10ZWNobmljYWxzLWxhYmVscyAudWkuc3RhdGlzdGljIC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuI2NzLXRlY2huaWNhbHMtY2hhcnQge1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgcGFkZGluZzogMDtcbn1cbiNjcy10ZWNobmljYWxzIC51aS5maXhlZC5zdGlja3kgKyAudWkuY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogODJweDtcbn1cbi51aS5maXhlZC5zdGlja3kgI2NzLXRlY2huaWNhbHMtbGFiZWxzIHtcbiAgYm94LXNoYWRvdzogMCAycHggNnB4ICMwMDA7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBQYWdlIEVsZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLWNoYXJ0LXRlY2huaWNhbHMgdGV4dC52ZXJzaW9uIHtcbiAgZmlsbDogIzU1NTU1NTtcbiAgZm9udDogOHB4IHNhbnMtc2VyaWY7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuYXhpcyBwYXRoLFxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmF4aXMgbGluZSB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogI0JCQkJCQjtcbiAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgdGV4dCB7XG4gIGZpbGw6ICNEREREREQ7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmNsb3NlIHBhdGgge1xuICBzdHJva2U6ICNmNmY2ZjY7XG4gIHN0cm9rZS13aWR0aDogMTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIHBhdGguY2FuZGxlIHtcbiAgc3Ryb2tlOiAjMDAwMDAwO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5jYW5kbGUuYm9keSB7XG4gIHN0cm9rZS13aWR0aDogMDtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIHBhdGguY2FuZGxlIHtcbiAgZmlsbDogIzc3Nzc3NztcbiAgc3Ryb2tlOiAjNzc3Nzc3O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5jYW5kbGUudXAge1xuICBmaWxsOiAjMDBBQTAwO1xuICBzdHJva2U6ICMwMEFBMDA7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLmNhbmRsZS5kb3duIHtcbiAgZmlsbDogI0ZGMDAwMDtcbiAgc3Ryb2tlOiAjRkYwMDAwO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5vaGxjIHtcbiAgc3Ryb2tlOiAjMDAwMDAwO1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm9obGMudXAge1xuICBzdHJva2U6ICMwMEFBMDA7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm9obGMuZG93biB7XG4gIHN0cm9rZTogI0ZGMDAwMDtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5jbG9zZVZhbHVlLmFubm90YXRpb24udXAgcGF0aCB7XG4gIGZpbGw6ICMwMEFBMDA7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnZvbHVtZS51cCB7XG4gIGZpbGw6ICM0RkMzMDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnZvbHVtZS5kb3duIHtcbiAgZmlsbDogI0VGMkEyQTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5pbmRpY2F0b3IgcGF0aC5saW5lIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlLXdpZHRoOiAxLjU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBidXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMTBweDtcbiAgdG9wOiAyNXB4O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5tYWNkIHtcbiAgc3Ryb2tlOiAjYWVjN2U4O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5zaWduYWwge1xuICBzdHJva2U6ICNGRjk5OTk7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnplcm8ge1xuICBzdHJva2U6ICNCQkJCQkI7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDA7XG4gIHN0cm9rZS1vcGFjaXR5OiAwLjU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLmRpZmZlcmVuY2Uge1xuICBmaWxsOiAjNzc3Nzc3O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5yc2kge1xuICBzdHJva2U6ICNhZWM3ZTg7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm92ZXJib3VnaHQsXG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLm92ZXJzb2xkIHtcbiAgc3Ryb2tlOiAjRkY5OTk5O1xuICBzdHJva2UtZGFzaGFycmF5OiA1LCA1O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgcGF0aC5taWRkbGUsXG4uY3MtY2hhcnQtdGVjaG5pY2FscyBwYXRoLnplcm8ge1xuICBzdHJva2U6ICNCQkJCQkI7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDUsIDU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuYW5hbHlzaXMgcGF0aCxcbi5jcy1jaGFydC10ZWNobmljYWxzIC5hbmFseXNpcyBjaXJjbGUge1xuICBzdHJva2U6IHllbGxvdztcbiAgc3Ryb2tlLXdpZHRoOiAwLjc7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuaW50ZXJhY3Rpb24gcGF0aCxcbi5jcy1jaGFydC10ZWNobmljYWxzIC5pbnRlcmFjdGlvbiBjaXJjbGUge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmludGVyYWN0aW9uIC5ib2R5IHtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnRyZW5kbGluZXMgLmludGVyYWN0aW9uIC5zdGFydCxcbi5jcy1jaGFydC10ZWNobmljYWxzIC50cmVuZGxpbmVzIC5pbnRlcmFjdGlvbiAuZW5kIHtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC50cmVuZGxpbmUgY2lyY2xlIHtcbiAgc3Ryb2tlLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLm1vdXNlb3ZlciAudHJlbmRsaW5lIHBhdGgge1xuICBzdHJva2Utd2lkdGg6IDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAubW91c2VvdmVyIC50cmVuZGxpbmUgY2lyY2xlIHtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xuICBmaWxsOiB5ZWxsb3c7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5zdXBzdGFuY2UgcGF0aCB7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDIsIDI7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuc3Vwc3RhbmNlcyAuaW50ZXJhY3Rpb24gcGF0aCB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnN1cHN0YW5jZXMgLmF4aXNhbm5vdGF0aW9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5zdXBzdGFuY2VzIC5tb3VzZW92ZXIgLmF4aXNhbm5vdGF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnN1cHN0YW5jZXMgLmF4aXNhbm5vdGF0aW9uIHBhdGgge1xuICBmaWxsOiAjODA2NTE3O1xuICBzdHJva2U6IG5vbmU7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAubW91c2VvdmVyIC5zdXBzdGFuY2UgcGF0aCB7XG4gIHN0cm9rZS13aWR0aDogMS41O1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmNyb3NzaGFpciB7XG4gIGN1cnNvcjogY3Jvc3NoYWlyO1xufVxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLmNyb3NzaGFpciBwYXRoLndpcmUge1xuICBzdHJva2U6ICM1NTU1NTU7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDE7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAuY3Jvc3NoYWlyIC5heGlzYW5ub3RhdGlvbiBwYXRoIHtcbiAgZmlsbDogIzc3Nzc3Nztcbn1cbi5jcy1jaGFydC10ZWNobmljYWxzIC5jcm9zc2hhaXIgLmF4aXNhbm5vdGF0aW9uIHRleHQge1xuICBmb250LXNpemU6IDExcHg7XG59XG4uY3MtY2hhcnQtdGVjaG5pY2FscyAueC1ncmlkLFxuLmNzLWNoYXJ0LXRlY2huaWNhbHMgLnktZ3JpZCB7XG4gIHN0cm9rZTogIzYzNjM2MztcbiAgc3Ryb2tlLXdpZHRoOiAwLjVweDtcbiAgb3BhY2l0eTogMTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiFcbiAqIFN0eWxlc2hlZXQgZm9yIHRoZSBEYXRlIFJhbmdlIFBpY2tlciwgZm9yIHVzZSB3aXRoIFNlbWFudGljIFVJXG4gKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSBEYW4gR3Jvc3NtYW4gKCBodHRwOi8vd3d3LmRhbmdyb3NzbWFuLmluZm8gKVxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLiBTZWUgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAqXG4gKiBCdWlsdCBmb3IgaHR0cDovL3d3dy5pbXByb3ZlbHkuY29tXG4gKi9cbi5kYXRlcmFuZ2VwaWNrZXIuZHJvcGRvd24tbWVudSB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMzAwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm94LXNoYWRvdzogMCAwIDVweCAjY2NjO1xufVxuLmRhdGVyYW5nZXBpY2tlci5vcGVuc2xlZnQgLnJhbmdlcyxcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNsZWZ0IC5jYWxlbmRhciB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNyaWdodCAucmFuZ2VzLFxuLmRhdGVyYW5nZXBpY2tlci5vcGVuc3JpZ2h0IC5jYWxlbmRhcixcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNjZW50ZXIgLnJhbmdlcyxcbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNjZW50ZXIgLmNhbGVuZGFyIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIuc2luZ2xlIC5yYW5nZXMsXG4uZGF0ZXJhbmdlcGlja2VyLnNpbmdsZSAuY2FsZW5kYXIge1xuICBmbG9hdDogbm9uZTtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyB7XG4gIHdpZHRoOiAxNjBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyAucmFuZ2VfaW5wdXRzID4gZGl2IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5yYW5nZXMgLnJhbmdlX2lucHV0cyA+IGRpdjpudGgtY2hpbGQoMikge1xuICBwYWRkaW5nLWxlZnQ6IDExcHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1heC13aWR0aDogMjcwcHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyLnNob3ctY2FsZW5kYXIgLmNhbGVuZGFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhci5zaW5nbGUgLmNhbGVuZGFyLWRhdGUge1xuICBib3JkZXI6IG5vbmU7XG59XG4uZGF0ZXJhbmdlcGlja2VyIC5jYWxlbmRhciB0aCxcbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyIHRkIHtcbiAgZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAzMnB4O1xufVxuLmRhdGVyYW5nZXBpY2tlciAuZGF0ZXJhbmdlcGlja2VyX3N0YXJ0X2lucHV0IGxhYmVsLFxuLmRhdGVyYW5nZXBpY2tlciAuZGF0ZXJhbmdlcGlja2VyX2VuZF9pbnB1dCBsYWJlbCB7XG4gIGNvbG9yOiAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBoZWlnaHQ6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIHRleHQtc2hhZG93OiAjZmZmIDFweCAxcHggMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogNzRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyBpbnB1dCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyAuaW5wdXQtbWluaSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6ICM1NTU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDExcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgcGFkZGluZzogMCA2cHg7XG4gIHdpZHRoOiA3NHB4O1xufVxuLmRhdGVyYW5nZXBpY2tlciAucmFuZ2VzIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciAucmFuZ2VzIGxpIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZjVmNWY1O1xuICBjb2xvcjogIzA4YztcbiAgcGFkZGluZzogM3B4IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnJhbmdlcyBsaS5hY3RpdmUsXG4uZGF0ZXJhbmdlcGlja2VyIC5yYW5nZXMgbGk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjMDhjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDhjO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyLWRhdGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBwYWRkaW5nOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLmNhbGVuZGFyLXRpbWUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogOHB4IGF1dG8gMCBhdXRvO1xuICBsaW5lLWhlaWdodDogMzBweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRvcDogMTAwcHg7XG4gIGxlZnQ6IDIwcHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLXRvcDogMXB4O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNsZWZ0OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtN3B4O1xuICByaWdodDogOXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgI2NjYztcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb250ZW50OiAnJztcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNsZWZ0OmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC02cHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29udGVudDogJyc7XG59XG4uZGF0ZXJhbmdlcGlja2VyLm9wZW5zY2VudGVyOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtN3B4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiA3cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDdweCBzb2xpZCAjY2NjO1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGNvbnRlbnQ6ICcnO1xufVxuLmRhdGVyYW5nZXBpY2tlci5vcGVuc2NlbnRlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNnB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjZmZmO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjb250ZW50OiAnJztcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNyaWdodDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTdweDtcbiAgbGVmdDogOXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgI2NjYztcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBjb250ZW50OiAnJztcbn1cbi5kYXRlcmFuZ2VwaWNrZXIub3BlbnNyaWdodDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNnB4O1xuICBsZWZ0OiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgI2ZmZjtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29udGVudDogJyc7XG59XG4uZGF0ZXJhbmdlcGlja2VyLmRyb3B1cCB7XG4gIG1hcmdpbi10b3A6IC01cHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyLmRyb3B1cDpiZWZvcmUge1xuICB0b3A6IGluaXRpYWw7XG4gIGJvdHRvbTogLTdweDtcbiAgYm9yZGVyLWJvdHRvbTogaW5pdGlhbDtcbiAgYm9yZGVyLXRvcDogN3B4IHNvbGlkICNjY2M7XG59XG4uZGF0ZXJhbmdlcGlja2VyLmRyb3B1cDphZnRlciB7XG4gIHRvcDogaW5pdGlhbDtcbiAgYm90dG9tOiAtNnB4O1xuICBib3JkZXItYm90dG9tOiBpbml0aWFsO1xuICBib3JkZXItdG9wOiA2cHggc29saWQgI2ZmZjtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZCxcbi5kYXRlcmFuZ2VwaWNrZXIgdGgge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGQub2ZmIHtcbiAgY29sb3I6ICM5OTk7XG59XG4uZGF0ZXJhbmdlcGlja2VyIHRkLmRpc2FibGVkLFxuLmRhdGVyYW5nZXBpY2tlciBvcHRpb24uZGlzYWJsZWQge1xuICBjb2xvcjogIzk5OTtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGQuYXZhaWxhYmxlOmhvdmVyLFxuLmRhdGVyYW5nZXBpY2tlciB0aC5hdmFpbGFibGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZWVlO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZC5pbi1yYW5nZSB7XG4gIGJhY2tncm91bmQ6ICNlYmY0Zjg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZC5zdGFydC1kYXRlIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHggMCAwIDRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4IDAgMCA0cHg7XG59XG4uZGF0ZXJhbmdlcGlja2VyIHRkLmVuZC1kYXRlIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XG59XG4uZGF0ZXJhbmdlcGlja2VyIHRkLnN0YXJ0LWRhdGUuZW5kLWRhdGUge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgdGQuYWN0aXZlLFxuLmRhdGVyYW5nZXBpY2tlciB0ZC5hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU3ZWJkO1xuICBib3JkZXItY29sb3I6ICMzMDcxYTk7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmRhdGVyYW5nZXBpY2tlciB0ZC53ZWVrLFxuLmRhdGVyYW5nZXBpY2tlciB0aC53ZWVrIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24ubW9udGhzZWxlY3QsXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi55ZWFyc2VsZWN0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogMCA1cHggMCAwO1xuICBoZWlnaHQ6IGF1dG87XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgc2VsZWN0Lm1vbnRoc2VsZWN0IHtcbiAgbWFyZ2luLXJpZ2h0OiAyJTtcbiAgd2lkdGg6IGF1dG87XG59XG4uZGF0ZXJhbmdlcGlja2VyIHNlbGVjdC55ZWFyc2VsZWN0IHtcbiAgd2lkdGg6IGF1dG87XG59XG4uZGF0ZXJhbmdlcGlja2VyIHNlbGVjdC51aS5kcm9wZG93bi5ob3Vyc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciBzZWxlY3QudWkuZHJvcGRvd24ubWludXRlc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciBzZWxlY3QudWkuZHJvcGRvd24uc2Vjb25kc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciBzZWxlY3QudWkuZHJvcGRvd24uYW1wbXNlbGVjdCB7XG4gIHBhZGRpbmc6IDNweDtcbiAgaGVpZ2h0OiAyZW07XG59XG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5ob3Vyc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24ubWludXRlc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uc2Vjb25kc2VsZWN0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uYW1wbXNlbGVjdCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLnllYXJzZWxlY3QgPiAudGV4dCxcbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLm1vbnRoc2VsZWN0ID4gLnRleHQsXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5ob3Vyc2VsZWN0ID4gLnRleHQsXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5taW51dGVzZWxlY3QgPiAudGV4dCxcbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLnNlY29uZHNlbGVjdCA+IC50ZXh0LFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uYW1wbXNlbGVjdCA+IC50ZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxLjI1ZW07XG59XG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi55ZWFyc2VsZWN0ID4gLmRyb3Bkb3duLmljb24sXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5tb250aHNlbGVjdCA+IC5kcm9wZG93bi5pY29uLFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24uaG91cnNlbGVjdCA+IC5kcm9wZG93bi5pY29uLFxuLmRhdGVyYW5nZXBpY2tlciAudWkuZHJvcGRvd24ubWludXRlc2VsZWN0ID4gLmRyb3Bkb3duLmljb24sXG4uZGF0ZXJhbmdlcGlja2VyIC51aS5kcm9wZG93bi5zZWNvbmRzZWxlY3QgPiAuZHJvcGRvd24uaWNvbixcbi5kYXRlcmFuZ2VwaWNrZXIgLnVpLmRyb3Bkb3duLmFtcG1zZWxlY3QgPiAuZHJvcGRvd24uaWNvbiB7XG4gIHBhZGRpbmc6IC44ZW0gLjE1ZW0gLjhlbSAuOGVtO1xufVxuLmRhdGVyYW5nZXBpY2tlcl9zdGFydF9pbnB1dCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmRhdGVyYW5nZXBpY2tlcl9lbmRfaW5wdXQge1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAxMXB4O1xufVxuLmRhdGVyYW5nZXBpY2tlciB0aC5tb250aCB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xufVxuLmRhdGVyYW5nZXBpY2tlciAucHJldiAubGVmdC5hcnJvdy5pY29uLFxuLmRhdGVyYW5nZXBpY2tlciAubmV4dCAucmlnaHQuYXJyb3cuaWNvbiB7XG4gIG1hcmdpbjogMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtZGFzaGJvYXJkLWxvYWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgei1pbmRleDogMTA7XG4gIHdpZHRoOiAxMDAlO1xufVxuI2NzLXJlY2VudC1yZXNlYXJjaCAuaXRlbSAuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLWJvdHRvbTogLjNlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXJlY2VudC1yZXNlYXJjaCAuaXRlbSAuaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXJlY2VudC1yZXNlYXJjaCAuaXRlbSAudWkubGFiZWwudGlueTpub3QoLmdyZXkpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkLW5ld3MgLmltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIGhlaWdodDogMTAwcHg7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbiNjcy1kYXNoYm9hcmQtbmV3cyAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkLW5ld3Mge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLW5ld3MgaW1nIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogaW5pdGlhbDtcbiAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLW5ld3MgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctdG9wOiAxZW07XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQtbmV3cy1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWRhc2hib2FyZC1uZXdzLW1vYmlsZSAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBweDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuI2NzLWRhc2hib2FyZC1uZXdzLW1vYmlsZSAubmV3cy1pbWFnZS10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jY3MtZGFzaGJvYXJkLW5ld3MtbW9iaWxlIC5uZXdzLWltYWdlLXRpdGxlIGltZyB7XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbiAgbWF4LXdpZHRoOiAxNDBweDtcbiAgbWF4LWhlaWdodDogMTAwcHg7XG59XG4jY3MtZGFzaGJvYXJkLW5ld3MtbW9iaWxlIC5uZXdzLWltYWdlLXRpdGxlIC5jb250ZW50IHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbiNjcy1kYXNoYm9hcmQtbmV3cy1tb2JpbGUgLm5ld3MtaW1hZ2UtdGl0bGUgLmNvbnRlbnQgLmhlYWRlciB7XG4gIGNvbG9yOiBibGFjaztcbn1cbiNjcy1kYXNoYm9hcmQtbmV3cy1tb2JpbGUgLm5ld3MtaW1hZ2UtdGl0bGUgLmNvbnRlbnQgLmV4dHJhIHtcbiAgZm9udC1zaXplOiAwLjdlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZC1uZXdzLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuI2NzLWZpbmFuY2lhbC1yZXN1bHQtdGFibGUsXG4jY3MtYm9hcmQtbWVldGluZy10YWJsZSxcbiNjcy1lY29ub215LXRhYmxlIHtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1tb2JpbGUtY2hhcnQtbGFiZWxzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcGFkZGluZzogMCAwLjVlbTtcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLW1vYmlsZS1jaGFydC1sYWJlbHMgcCB7XG4gIG1hcmdpbjogMHB4O1xuICBmb250LXNpemU6IDAuN2VtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydFt0aW1lPVwiM21cIl0gLnguYXhpcyAudGljazpudGgtY2hpbGQob2RkKSB0ZXh0IHtcbiAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgc3Ryb2tlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAge1xuICBtaW4td2lkdGg6IDI3NXB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMHB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0gcCB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0gcCBiIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbSBwOmZpcnN0LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2lkdGg6IDcwJTtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbSBwOmxhc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgd2lkdGg6IDMwJTtcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvcHVwIC5jcy1mb3JlaWduLWxvY2FsLXBvcHVwIC5pdGVtIHAucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbSBwLmdyZWVuIHtcbiAgY29sb3I6ICMyMUJBNDU7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbS50b3RhbCBwOmZpcnN0LWNoaWxkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCAuaXRlbS50b3RhbCBwOmxhc3QtY2hpbGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JleTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdyZXk7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC51aS5wb3B1cCAuY3MtZm9yZWlnbi1sb2NhbC1wb3B1cCBwLmRhdGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAge1xuICAgIHBhZGRpbmc6IDAuMmVtO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvcHVwIC5jcy1mb3JlaWduLWxvY2FsLXBvcHVwIHtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkucG9wdXAgLmNzLWZvcmVpZ24tbG9jYWwtcG9wdXAgLml0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvaW50aW5nLm1lbnUgLml0ZW0ge1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogI2Q0ZDRkNTtcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLnVpLnBvaW50aW5nLm1lbnUgLml0ZW0uYWN0aXZlIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAudWkudGFiIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBnYWluc2Jvcm87XG4gIHBhZGRpbmc6IDFlbTtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAuY3MtdGltZS1idXR0b25zIHtcbiAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xufVxuI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAuY3MtdGltZS1idXR0b25zLm1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbjogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydC1vcHRpb25zIC5mb3VydGVlbi53aWRlLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLWNoYXJ0LW9wdGlvbnMgLmNzLXRpbWUtYnV0dG9ucy5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLWNoYXJ0LW9wdGlvbnMgLmNzLXRpbWUtYnV0dG9ucy5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IGF1dG87XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAudWkuYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydC1vcHRpb25zIC5jcy1jbGllbnQtdHlwZS1idXR0b25zIHtcbiAgICBmbGV4OiBhdXRvO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLWNoYXJ0LW9wdGlvbnMgLnVpLmRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnQtb3B0aW9ucyAudHdvLndpZGUuY29sdW1uIHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5jcy1jaGFydC1vcHRpb25zIC50d28ud2lkZS5jb2x1bW4gLnVpLmxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtcG9ydGZvbGlvLXNldHRsZW1lbnQtbWVudSB7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtcG9ydGZvbGlvLXNldHRsZW1lbnQtbWVudSAuaXRlbSB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICB9XG4gICNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmNzLW1vYmlsZS1jaGFydC1sYWJlbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3NfX3BvcnRfX2NoYXJ0IHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1wb3J0Zm9saW8tc2V0dGxlbWVudCAuY3MtY2hhcnRbdGltZT1cIm9uZS1kYXlcIl1bdHlwZT1cImxvY2FsXCJdIC54LmF4aXMgLnRpY2s6bnRoLWNoaWxkKG9kZCkgdGV4dCB7XG4gICAgZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgICBzdHJva2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmRhcmsge1xuICBiYWNrZ3JvdW5kOiBibGFjaztcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmRhcmsgdGV4dCB7XG4gIGZpbGw6ICNmZmY7XG59XG4jY3MtZGFzaGJvYXJkLXBvcnRmb2xpby1zZXR0bGVtZW50IC5kYXJrIGNpcmNsZSB7XG4gIGZpbGw6IHllbGxvdztcbn1cbiNjcy1kYXNoYm9hcmQtcG9ydGZvbGlvLXNldHRsZW1lbnQgLmRhcmsgLmxpbmUge1xuICBzdHJva2U6ICM5MGNjZmY7XG59XG4jY3MtZGFzaGJvYXJkLXNldHRsZW1lbnQgLmJhciB7XG4gIGZpbGw6ICNjMGUyZmYhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZC1zZXR0bGVtZW50IC5zdWItYmFyIHtcbiAgZmlsbDogIzZlYTRkMiFpbXBvcnRhbnQ7XG59XG4jY3MtZGFzaGJvYXJkLXNldHRsZW1lbnQgLmxpbmUge1xuICBzdHJva2U6ICNmZjc2MDAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIgLnVpLmhlYWRlciB7XG4gIGZsZXg6IGF1dG87XG59XG4jY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLmNzLXR5cGUtYnV0dG9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNjVweDtcbn1cbiNjcy1kYXNoYm9hcmQtZm9yZWlnbi1sb2NhbCAudWkuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC51aS5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLnplcm8tbGluZSB7XG4gIHN0cm9rZTogI2Q3MzAyNztcbiAgc3Ryb2tlLXdpZHRoOiAzcHg7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDE1O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLmNzLXR5cGUtYnV0dG9ucyB7XG4gICAgdG9wOiAtNDBweDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLnVpLnNlZ21lbnQge1xuICAgIHBhZGRpbmc6IDFlbSAwLjNlbTtcbiAgfVxuICAjY3MtZGFzaGJvYXJkLWZvcmVpZ24tbG9jYWwgLmNzLWhlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIHBhZGRpbmc6IDAgMC41ZW07XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIgLnVpLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gIH1cbiAgI2NzLWRhc2hib2FyZC1mb3JlaWduLWxvY2FsIC5jcy1oZWFkZXIgLnVpLmhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBtYXJnaW46IDBweDtcbiAgfVxufVxuI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLXRpbWUtc3RhbXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxLjVlbTtcbiAgdG9wOiAxLjVlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC10aW1lLXN0YW1wIC5pbmRpY2VzX19zdGF0dXMge1xuICBwYWRkaW5nOiAwcHg7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG4jY3MtZGFzaGJvYXJkIC51aS5zZWdtZW50IHtcbiAgYm94LXNoYWRvdzogN3B4IDEwcHggMjBweCAwIHJnYmEoNDYsIDYxLCA3MywgMC4xNSk7XG59XG4jY3MtZGFzaGJvYXJkIC51aS50YWJsZSB0ZCB7XG4gIHBhZGRpbmc6IDAuNWVtIDBlbTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA4NXB4O1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXRhYmxlcyAudWkudGFibGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMgLnVpLnRhYmxlIHRoIHtcbiAgYmFja2dyb3VuZDogZ3JleTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxZW0gMGVtO1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXRhYmxlcyAudWkudGFibGUgdHIgdGQ6bnRoLWNoaWxkKDEpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0NCwgMTA2LCAxNTgsIDAuMDYpO1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXRhYmxlcyAudWkudGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgY29sb3I6ICNjYzllMWM7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjA0LCAxNTgsIDI4LCAwLjA5KTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMgLnVpLnRhYmxlIHRyIHRkOm50aC1jaGlsZCgzKSB7XG4gIGNvbG9yOiAjMjFCQTQ3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLCAxODYsIDcxLCAwLjA1KTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC10YWJsZXMgLnVpLnRhYmxlIHRyIHRkOm50aC1jaGlsZCg0KSB7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDBweCAwLjVlbSAwcHg7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwLm1vYmlsZSB7XG4gIG1hcmdpbi10b3A6IDJlbSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwLm1vYmlsZSAuc2l4dGVlbi53aWRlLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDBweCAxZW0gIWltcG9ydGFudDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cy1tb2JpbGUge1xuICBtYXJnaW4tYm90dG9tOiAzZW0gIWltcG9ydGFudDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cy1tb2JpbGUgLnVpLnN0YXRpc3RpYyB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cy1tb2JpbGUgLnVpLnN0YXRpc3RpYyAudmFsdWUsXG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwLm1vYmlsZSAjY3MtZGFzaGJvYXJkLXN1bW1hcnktc3RhdHMtbW9iaWxlIC51aS5zdGF0aXN0aWMgLmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlIC5jcy1yYW5nZSB7XG4gIGhlaWdodDogNTVweDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlIC50aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMzVweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLW1hcmtldC1zdW1tYXJ5IC51aS5zZWdtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLnVpLmdyaWQucGFkZGVkLnN0YWNrYWJsZSB7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuc2Vjb25kYXJ5Lm1lbnUge1xuICBtYXJnaW46IDBweDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3MtcmFuZ2Uge1xuICBoZWlnaHQ6IDY1cHg7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXJhbmdlIGg1IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLW1hcmtldC1zdW1tYXJ5IC5jcy1yYW5nZSAuaGlnaCxcbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3MtcmFuZ2UgLmxvdyB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtbWFya2V0LXN1bW1hcnkgLmNzLXN0YXRzLXJhbmdlLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAuY3Mtc3RhdHMtcmFuZ2UtZ3JvdXAubW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDEuNWVtO1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuZ3JpZC5wYWRkZWQuc3RhY2thYmxlIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1tYXJrZXQtc3VtbWFyeSAudWkuZ3JpZC5wYWRkZWQuc3RhY2thYmxlIC5jb2x1bW4ge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUgdGQge1xuICBwYWRkaW5nLXRvcDogMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICBib3JkZXI6IG5vbmU7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cyAudWkudmVyeS5iYXNpYy5jb2xsYXBzaW5nLnRhYmxlIHRkIC5sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS5ncmlkLnBhZGRlZC5zdGFja2FibGUge1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1zdGF0cyAudWkudmVyeS5iYXNpYy5jb2xsYXBzaW5nLnRhYmxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLXN1bW1hcnktc3RhdHMgLnVpLnZlcnkuYmFzaWMuY29sbGFwc2luZy50YWJsZSAuc3RhdGlzdGljIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUgLnN0YXRpc3RpYyAudmFsdWUsXG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LXN0YXRzIC51aS52ZXJ5LmJhc2ljLmNvbGxhcHNpbmcudGFibGUgLnN0YXRpc3RpYyAubGFiZWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtc3VtbWFyeS1jaGFydCB7XG4gIHBhZGRpbmc6IDBweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMWVtIDBweDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1zdW1tYXJ5LWNoYXJ0IC5saW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAxcHg7XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktZGVza3RvcCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBnYWluc2Jvcm87XG4gIHBhZGRpbmc6IDFlbSAwLjRlbTtcbiAgbWFyZ2luLXRvcDogLTNweDtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1kZXNrdG9wIC51aS5zZWNvbmRhcnkubWVudSAuaXRlbSB7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBtYXJnaW46IDAgMC4xZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1tb2JpbGUgLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXN1bW1hcnktb3B0aW9ucy5jcy1zdW1tYXJ5LW1vYmlsZSAudWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW06bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1kYXNoYm9hcmQgLmNzLWRhc2hib2FyZC1zdW1tYXJ5LW9wdGlvbnMuY3Mtc3VtbWFyeS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlLmNzLWluZGljZXMge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlLmNzLXRpbWUtb3B0cyB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBwYWRkaW5nOiAwLjVlbSAwcHggMHB4O1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG59XG4jY3MtZGFzaGJvYXJkIC5jcy1kYXNoYm9hcmQtc3VtbWFyeS1vcHRpb25zLmNzLXN1bW1hcnktbW9iaWxlLmNzLXRpbWUtb3B0cyAuc2l4dGVlbi53aWRlLmNvbHVtbiB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbSAhaW1wb3J0YW50O1xufVxuI2NzLWRhc2hib2FyZCAuY3MtZGFzaGJvYXJkLXN1bW1hcnktb3B0aW9ucy5jcy1zdW1tYXJ5LW1vYmlsZS5jcy10aW1lLW9wdHMgLnVpLm1lbnUgLml0ZW0ge1xuICBwYWRkaW5nOiAwLjVlbTtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1wZXJmb3JtZXJzIC51aS5iYXNpYy50YWIge1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC1wZXJmb3JtZXJzIC5jcy1sb2FkZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDU7XG59XG4jY3MtZGFzaGJvYXJkICNjcy1kYXNoYm9hcmQtcGVyZm9ybWVycyAuY3MtY2hhcnQge1xuICBtYXJnaW4tdG9wOiAzLjJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWRhc2hib2FyZCAjY3MtZGFzaGJvYXJkLXBlcmZvcm1lcnMge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZGFzaGJvYXJkIHtcbiAgICBtYXJnaW4tdG9wOiAxZW0gIWltcG9ydGFudDtcbiAgfVxuICAjY3MtZGFzaGJvYXJkIC5jcy1jaGFydC10aW1lc2VyaWVzLmxpZ2h0IC54LWdyaWQsXG4gICNjcy1kYXNoYm9hcmQgLmNzLWNoYXJ0LXRpbWVzZXJpZXMubGlnaHQgLnktZ3JpZCB7XG4gICAgc3Ryb2tlOiByZ2JhKDIxOSwgMjE5LCAyMTksIDAuNDIpO1xuICB9XG4gICNjcy1kYXNoYm9hcmQgLmNvbHVtbiB7XG4gICAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1kYXNoYm9hcmQgI2NzLWRhc2hib2FyZC10aW1lLXN0YW1wIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxufVxuI2NzLWRhc2hiYXJkLWFuYWx5c3Qtb3BpbmlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiNjcy1yZWNlbnQtcmVzZWFyY2ggLnVpLmxpc3Qge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogMCAwLjVyZW07XG4gIG1heC1oZWlnaHQ6IDM4Ljc1cmVtO1xufVxuI2NzLWRhc2hib2FyZC1yZXNlYXJjaC10YWJzIC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwcHg7XG59XG4jY3MtdG9wLXN0b2NrcyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIHBhZGRpbmctYm90dG9tOiAxZW07XG59XG4jY3MtdG9wLXN0b2NrcyAudWkuZ3JpZCB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLXRvcC1zdG9ja3MgLnVpLmhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuICBmb250LXNpemU6IDEuNWVtO1xufVxuI2NzLXRvcC1zdG9ja3MgLnVpLmhlYWRlciBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjVlbTtcbn1cbiNjcy10b3Atc3RvY2tzIC51aS5oZWFkZXIsXG4jY3MtdG9wLXN0b2NrcyBwIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4jY3MtdG9wLXN0b2NrcyBwIHtcbiAgY29sb3I6ICM5ODk4OTg7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2hhZG93OiAwIDAgMXB4IGdyZXk7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogLjdlbTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbiNjcy10b3Atc3RvY2tzIC5saXN0IC5saXN0LWl0ZW0gLnZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDAuN2VtIDBlbTtcbiAgYmFja2dyb3VuZDogZ3JleTtcbiAgZmxleDogMCAwIDg2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuI2NzLXRvcC1zdG9ja3MgLmxpc3QgLmxpc3QtaXRlbSAuZGV0YWlscyB7XG4gIGZsZXg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCAwLjVlbTtcbn1cbiNjcy10b3Atc3RvY2tzIC5saXN0IC5saXN0LWl0ZW0gLmRldGFpbHMgLmNsb3NlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtIC5kZXRhaWxzIC5zeW1ib2wge1xuICBjb2xvcjogIzk4OTg5ODtcbiAgZm9udC1zaXplOiAxLjE1ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2NzLXRvcC1zdG9ja3MgLmxpc3QgLmxpc3QtaXRlbSAuZGV0YWlscyAuY2hhbmdlLnJlZCB7XG4gIGNvbG9yOiByZWQ7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtIC5kZXRhaWxzIC5jaGFuZ2UuZ3JlZW4ge1xuICBjb2xvcjogIzY3Y2MzODtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4uZGkge1xuICBwYWRkaW5nLWxlZnQ6IDBweDtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4uZGkgLnVpLmhlYWRlciB7XG4gIGNvbG9yOiAjODQ3ODZkO1xufVxuI2NzLXRvcC1zdG9ja3MgLmNvbHVtbi5kaSAubGlzdCAubGlzdC1pdGVtIC52YWx1ZSB7XG4gIGJhY2tncm91bmQ6ICM4NDc4NmQ7XG59XG4jY3MtdG9wLXN0b2NrcyAuY29sdW1uLnBlciAudWkuaGVhZGVyIHtcbiAgY29sb3I6ICNCMzk0MzA7XG59XG4jY3MtdG9wLXN0b2NrcyAuY29sdW1uLnBlciAubGlzdCAubGlzdC1pdGVtIC52YWx1ZSB7XG4gIGJhY2tncm91bmQ6ICNCMzk0MzA7XG59XG4jY3MtdG9wLXN0b2NrcyAuY29sdW1uLnByIC51aS5oZWFkZXIge1xuICBjb2xvcjogIzE0NjE1Rjtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4ucHIgLmxpc3QgLmxpc3QtaXRlbSAudmFsdWUge1xuICBiYWNrZ3JvdW5kOiAjMTQ2MTVGO1xufVxuI2NzLXRvcC1zdG9ja3MgLmNvbHVtbi52dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcbn1cbiNjcy10b3Atc3RvY2tzIC5jb2x1bW4udnQgLnVpLmhlYWRlciB7XG4gIGNvbG9yOiAjM0Y3RkE2O1xufVxuI2NzLXRvcC1zdG9ja3MgLmNvbHVtbi52dCAubGlzdCAubGlzdC1pdGVtIC52YWx1ZSB7XG4gIGJhY2tncm91bmQ6ICMzRjdGQTY7XG59XG4jY3MtdG9wLXN0b2NrcyAubGlzdCAubGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy10b3Atc3RvY2tzIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cbiAgI2NzLXRvcC1zdG9ja3MgLmNvbHVtbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICB9XG59XG4uY3MtdG9wLXN0b2Nrcy1uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLmNzLXRvcC1zdG9ja3MtbmF2IC5ub3RlIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogZ3JleTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcy10b3Atc3RvY2tzLW5hdiAubm90ZSB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG4gIC5jcy10b3Atc3RvY2tzLW5hdiAjY3Mtc3RvY2staW5kaWNlcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNzLXRvcC1zdG9ja3MtbmF2ICNjcy1zdG9jay1pbmRpY2VzIC51aS5idXR0b24ge1xuICAgIGZsZXg6IGF1dG87XG4gICAgcGFkZGluZzogMWVtIDAuNWVtO1xuICB9XG59XG4udXBkYXRlX19wcm9kdWN0X19tb2RhbCAuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnVwZGF0ZV9fcHJvZHVjdF9fbW9kYWwgLmNvbnRlbnQgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIG1hcmdpbjogMWVtIDA7XG59XG4udXBkYXRlX19wcm9kdWN0X19tb2RhbCBoMyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVwZGF0ZV9fcHJvZHVjdF9fbW9kYWwgaDMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLnVwZGF0ZV9fcHJvZHVjdF9fbW9kYWwgaDMgLnVpLmJ1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG59XG4uc3RrX19hZHZlcnQgLnVpLmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWF4LXdpZHRoOiAxMy44MTI1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMXJlbTtcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbn1cbi5zdGtfX2FkdmVydCAudWkuYnV0dG9uLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgIzI2NENFMCAwJSwgIzI2NENFMCAxMDAlKSwgIzBFNURCRTtcbn1cbi5zdGtfX2FkdmVydCAudWkuYnV0dG9uLmdyZWVuIHtcbiAgYmFja2dyb3VuZDogIzNDQzA2Mjtcbn1cbi5zdGtfX2FkdmVydCAudWkuYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMC45O1xufVxuLnN0a19fYWR2ZXJ0X193aWRnZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDIuNXJlbSAxLjI1cmVtO1xufVxuLnN0a19fYWR2ZXJ0X193aWRnZXQgLmJnLTEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMwOTEzMUMgMCUsICMwQzE4MjMgMTAwJSksIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNGNkY2RjYgMCUsIHdoaXRlIDEwMCUpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHRvcDogMHB4O1xuICB6LWluZGV4OiAyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uc3RrX19hZHZlcnRfX3dpZGdldCAuYmctMiB7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDc4LjZkZWcsICMzQUNERDkgOC40NyUsICMyNjRDREYgMzguMjQlLCAjMjBDRUQ5IDczLjg4JSwgIzNEQzE2MiA5NS4wOCUpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyA4cHgpO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDhweCk7XG4gIGxlZnQ6IC00cHg7XG4gIHRvcDogLTRweDtcbn1cbi5zdGtfX2FkdmVydF9fd2lkZ2V0IC5iZy0zIHtcbiAgei1pbmRleDogMztcbiAgd2lkdGg6IDM4OXB4O1xuICBoZWlnaHQ6IDE5NnB4O1xuICBsZWZ0OiAzNHB4O1xuICB0b3A6IDE2NHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuNDEpIDAlLCByZ2JhKDAsIDAsIDAsIDAuNDEpIDEwMCUpLCBjb25pYy1ncmFkaWVudChmcm9tIDE4MGRlZyBhdCA1MCUgNTAlLCAjMjBEMERBIDQ3ZGVnLCAjMjY0Q0UwIDE1MGRlZywgIzNFQzQ1RiAyOTdkZWcsICMxNzVDQjkgMzYwZGVnKTtcbiAgYm94LXNoYWRvdzogNDAwcHggNDAwcHggNDAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgZmlsdGVyOiBibHVyKDIwMHB4KTtcbn1cbi5zdGtfX2FkdmVydF9fd2lkZ2V0IC5jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA0O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zdGtfX2FkdmVydF9fd2lkZ2V0IC5oZWFkaW5nIHtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMi41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnN0a19fYWR2ZXJ0X193aWRnZXQgLnN1Yi1oZWFkaW5nIHtcbiAgY29sb3I6ICNFMEU5RjI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5zdGtfX2FkdmVydF9fb3ZlcmxheSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDExO1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICBwYWRkaW5nOiAzLjNyZW0gMi41cmVtO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMDkxMzFDIDAlLCAjMEMxODIzIDEwMCUpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjRjZGNkY2IDAlLCB3aGl0ZSAxMDAlKTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnN0a19fYWR2ZXJ0X19vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc3RrX19hZHZlcnRfX292ZXJsYXkgLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogMS41cmVtO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5jb250ZW50X19sZWZ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMS41cmVtO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5jb250ZW50X19yaWdodCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgZ2FwOiAxLjEyNXJlbTtcbn1cbi5zdGtfX2FkdmVydF9fb3ZlcmxheSAuY29udGVudF9fcmlnaHQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICByaWdodDogLTYwcHg7XG4gIGJvdHRvbTogLTMwcHg7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIGJveC1zaGFkb3c6IDQwMHB4IDQwMHB4IDQwMHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XG4gIGZpbHRlcjogYmx1cigxMDBweCk7XG4gIHotaW5kZXg6IC0xO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5oZWFkaW5nIHtcbiAgY29sb3I6ICMyMENFREE7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg4OC41ZGVnLCAjMjBDRURBIDAuODclLCAjMjY0RUREIDM0LjA2JSwgIzNEQzI2MCA2Ni43NCUsICMxNzVDQjkgOTguOTElKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICBmb250LXNpemU6IDIuODEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuODEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5zdWItaGVhZGluZyB7XG4gIGNvbG9yOiAjRTBFOUYyO1xuICBmb250LXNpemU6IDEuMzEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuODEyNXJlbTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC5iZy12aWV3IHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOXB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOXB4O1xuICBib3JkZXItbGVmdDogNHB4ICMzQUNERDkgc29saWQ7XG4gIGJvcmRlci10b3A6IDRweCAjM0FDREQ5IHNvbGlkO1xuICBib3JkZXItcmlnaHQ6IDRweCAjM0FDREQ5IHNvbGlkO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA0NSU7XG4gIHRvcDogNnJlbTtcbiAgcmlnaHQ6IDRyZW07XG4gIHotaW5kZXg6IC0xO1xufVxuLnN0a19fYWR2ZXJ0X19vdmVybGF5IC51aS5idXR0b24uY2xvc2Uge1xuICBjb2xvcjogIzUwNUM3QyAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMS41cmVtO1xuICByaWdodDogMS41cmVtO1xuICB3aWR0aDogMi44NDM4cmVtO1xuICBoZWlnaHQ6IDIuODQzOHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLnVpLm1vZGFsIC5jbG9zZS5pY29uIHtcbiAgY29sb3I6ICNkNGQ0ZDUgIWltcG9ydGFudDtcbn1cbi51aS5saXN0IGEuaXRlbSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgcGFkZGluZzogMC41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi51aS5saXN0IGEuaXRlbSAuY29udGVudCB7XG4gIHBhZGRpbmc6IDAgMWVtIDAgLjVlbTtcbn1cbi51aS5saXN0IGEuaXRlbSAuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFlbTtcbn1cbi51aS5saXN0IGEuaXRlbSAuaGVhZGVyOmhvdmVyIHtcbiAgY29sb3I6ICMyQzZBQTA7XG59XG4udWkubGlzdCBhLml0ZW0gLmhlYWRlcixcbi51aS5saXN0IGEuaXRlbSAubGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udWkubGlzdCBhLml0ZW0gLmxhYmVsOmhvdmVyIHtcbiAgb3BhY2l0eTogMC44O1xufVxuI2NzLWNsaWVudHJlcyAuY3MtZW1iZWQge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNsaWVudHJlcyAuY3MtZW1iZWQge1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cbn1cbiNjcy1jbGllbnRyZXMgLmNzLXJlc2VhcmNoLXByZXZpZXcge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtY2xpZW50cmVzIC5jcy1yZXNlYXJjaC1wcmV2aWV3IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2NzLWNsaWVudHJlcyAuY3MtZWRpdG9yLXNlZ21lbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNsaWVudHJlcyAuY3MtZWRpdG9yLXNlZ21lbnQgLmNzLWVkaXRvci1ub3RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogODB2aDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWNsaWVudHJlcyAuY3MtZWRpdG9yLXNlZ21lbnQgLmNzLWVkaXRvci1ub3RlIGgxIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zaXplOiAzZW07XG59XG4jY3MtY2xpZW50cmVzIC5jcy1lZGl0b3Itc2VnbWVudCAuY3MtZWRpdG9yLW5vdGUgcCB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiBncmV5O1xufVxuI2NzLWNsaWVudHJlcyAuY3Mtbm8tcmVzZWFyY2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWNsaWVudHJlcyAuY3Mtbm8tcmVzZWFyY2ggaDEge1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXNpemU6IDNlbTtcbn1cbiNjcy1jbGllbnRyZXMgLmNzLW5vLXJlc2VhcmNoLmhpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWNsaWVudHJlcyBpZnJhbWUge1xuICBib3JkZXI6IG5vbmU7XG59XG4jY3MtY2xpZW50cmVzIC51aS5hY2NvcmRpb24gLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbiNjcy1jbGllbnRyZXMgLnVpLmljb24uYnV0dG9ucyAudWkucG9wdXAge1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWNsaWVudHJlcyAudWkuYWNjb3JkaW9uID4gLmNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiAyNDVweDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjQsIDEyNCwgMTI0LCAwLjgpO1xuICBwYWRkaW5nOiAwLjVlbSAwLjVlbSAxLjVlbTtcbn1cbi51aS5tb2RhbCBpLmNsb3NlLmljb24ge1xuICBjb2xvcjogd2hpdGU7XG4gIHRvcDogLTJlbTtcbiAgcmlnaHQ6IC0xLjVlbTtcbn1cbiNjcy1yZXNlYXJjaC1hcmNoaXZlLW1vZGFsIC51aS5saXN0IHtcbiAgbWF4LWhlaWdodDogNDUwcHg7XG4gIG92ZXJmbG93OiBzY3JvbGw7XG59XG4jY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5pdGVtIHtcbiAgcGFkZGluZzogM2VtO1xufVxuI2NzLWFuYWx5c3QtcHJvZmlsZS1tb2RhbCAuaXRlbSAuaGVhZGVyIHtcbiAgZm9udC1zaXplOiAyZW07XG59XG4jY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5pdGVtIC51aS50YWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5pdGVtIC51aS50YWJsZSB0ZCB7XG4gIGJvcmRlcjogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuICAjY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5jb250ZW50IC5pdGVtIHtcbiAgICBwYWRkaW5nOiAwLjVlbSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1hbmFseXN0LXByb2ZpbGUtbW9kYWwgLmNvbnRlbnQgLml0ZW0gLnVpLmltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEyMHB4IWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiAxMjBweCFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLWFuYWx5c3QtcHJvZmlsZS1tb2RhbCAuY29udGVudCAuaXRlbSAuaGVhZGVyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgfVxuICAjY3MtYW5hbHlzdC1wcm9maWxlLW1vZGFsIC5jb250ZW50IC5pdGVtICNjcy1lZGl0LWFuYWx5c3QtYnRuIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDFlbSAwZW07XG4gIH1cbiAgI2NzLWFuYWx5c3QtcHJvZmlsZS1tb2RhbCAuY29udGVudCAuaXRlbSAudWkudGFibGUge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG4gICNjcy1hbmFseXN0LXByb2ZpbGUtbW9kYWwgLmNvbnRlbnQgLml0ZW0gLnVpLnRhYmxlIHRyIHtcbiAgICBwYWRkaW5nOiAwcHggMHB4IDAuNWVtO1xuICB9XG59XG4jY3MtcmVwb3J0LW5hbWUge1xuICBtYXJnaW46IDAuNWVtIDBweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZGlzcGxheTogaW5saW5lLXRhYmxlO1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLmRyb3B6b25lIHtcbiAgYm9yZGVyOiAycHggZGFzaGVkICMwMDg3RkU7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4jY3MtdXBsb2FkLW1vZGFsIC5kcm9wem9uZSAuZHotbWVzc2FnZSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtdXBsb2FkLW1vZGFsIC5kcm9wem9uZSAuZHotZmlsZW5hbWUge1xuICBtYXJnaW4tdG9wOiAzLjVlbTtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLmRyb3B6b25lIC5kei1kZXRhaWxzIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLmRyb3B6b25lIC5kei1wcm9ncmVzcyB7XG4gIHRvcDogNDAlO1xufVxuI2NzLXVwbG9hZC1tb2RhbCAudWkudG9nZ2xlLmNoZWNrYm94IC5ib3g6YmVmb3JlLFxuI2NzLXVwbG9hZC1tb2RhbCAudWkudG9nZ2xlLmNoZWNrYm94IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMyMWJhNDUgIWltcG9ydGFudDtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4jY3MtdXBsb2FkLW1vZGFsIC51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNkYjI4MjggIWltcG9ydGFudDtcbn1cbiNjcy11cGxvYWQtbW9kYWwgLnVpLnRvZ2dsZS5jaGVja2JveCBpbnB1dDpmb2N1czpjaGVja2VkIH4gLmJveDpiZWZvcmUsXG4jY3MtdXBsb2FkLW1vZGFsIC51aS50b2dnbGUuY2hlY2tib3ggaW5wdXQ6Zm9jdXM6Y2hlY2tlZCB+IGxhYmVsOmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICNkYjI4MjggIWltcG9ydGFudDtcbn1cbi5jcy10YWctZ2VuZXJhdG9yIHtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzQsIDM2LCAzOCwgMC4xNSk7XG59XG4uY3MtdGFnLWdlbmVyYXRvciBpbnB1dCB7XG4gIGZvbnQtc2l6ZTogMC45ZW0gIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAyMzBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xufVxuLmNzLXRhZy1nZW5lcmF0b3IgLnRhZy1ncm91cCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiNjcy1lZGl0LWNhdGVnb3J5LW1vZGFsIC51aS5kaXZpZGluZy5oZWFkZXIge1xuICBtYXJnaW46IDFyZW0gMGVtICFpbXBvcnRhbnQ7XG59XG4jY3MtZWRpdC1jYXRlZ29yeS1mb3JtcyB7XG4gIG1heC1oZWlnaHQ6IDM3MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTEpO1xuICBwYWRkaW5nOiAxZW07XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMTFweCAjYTI5ZTllO1xufVxuI2NzLWFkZC1jYXRlZ29yeS1idG4ge1xuICBtYXJnaW46IDFlbSAwZW0gMGVtO1xufVxuI2NzLWFkZC1jYXRlZ29yeS1mb3JtcyB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cbiNjcy1tYW5hZ2UtYW5hbHlzdC1tb2RhbCB7XG4gIHdpZHRoOiA0MDBweDtcbn1cbiNjcy1zZWFyY2gtcmVzZWFyY2gtbW9kYWwgLnVpLmxpc3Qge1xuICBtYXgtaGVpZ2h0OiA0MHZoO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4jY3Mtc2VhcmNoLXJlc2VhcmNoLW1vZGFsIC5jb250ZW50IHtcbiAgbWluLWhlaWdodDogNDE1cHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1zZWFyY2gtcmVzZWFyY2gtbW9kYWwgLnVpLmZvcm0gLmZpZnRlZW4ud2lkZS5maWVsZCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDcwcHgpICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzLXNlYXJjaC1yZXNlYXJjaC1tb2RhbCAudWkuZm9ybSAub25lLndpZGUuZmllbGQge1xuICAgIHdpZHRoOiA1NXB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiNjcy1hZGQtZXhwLW1vZGFsIC51aS5mb3JtIC51aS5oZWFkZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW46IDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIxMSwgMjExLCAyMTEsIDAuNDkpO1xuICBwYWRkaW5nOiAwLjdlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5jcy1vcGluaW9uLW1vZGFsczpub3QoLmNzLWFkZC1vcGluaW9uKTpub3QoI2NzLWRlbGV0ZS1vcGluaW9uLW1vZGFsKTpub3QoLmNzLWVkaXQtb3Bpbmlvbikge1xuICB3aWR0aDogNTAwcHggIWltcG9ydGFudDtcbn1cbi5jcy1vcGluaW9uLW1vZGFscyAudWkubWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY3Mtb3Bpbmlvbi1tb2RhbHMgLmFjdGlvbnMgLmNzLXNraXAtbW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMDtcbiAgbWFyZ2luOiAwcHg7XG59XG4uY3Mtb3Bpbmlvbi1tb2RhbHMgLnVpLmRyb3Bkb3duIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xufVxuLmNyX19oZWFkUm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmNyX19hZHZTZWFyY2gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTlmMmZhICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjMjE4NWQwIGluc2V0LCAwIDAgMCAwIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4uY3JfX2FkdlNlYXJjaCAudWkuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjMjE4NWQwO1xufVxuI2NzLXNlYXJjaC1yZXN1bHQge1xuICBtYXgtaGVpZ2h0OiA0MHZoO1xuICBtaW4taGVpZ2h0OiAyMHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHBhZGRpbmc6IDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLXNlYXJjaC1yZXN1bHQge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxufVxuI2NzLXNlYXJjaC1yZXN1bHQgdGFibGUgdGggaS5zb3J0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG4jY3Mtc2VhcmNoLXJlc3VsdCB0YWJsZSB0aDpub3QoLm5vLXNvcnQpOmFmdGVyIHtcbiAgd2lkdGg6IDE0cHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gIGNvbnRlbnQ6IFwiXFxmMGRjXCIgIWltcG9ydGFudDtcbn1cbiNjcy1zZWFyY2gtcmVzdWx0IHRhYmxlIHRoLmFzY2VuZGluZzphZnRlciB7XG4gIGNvbnRlbnQ6ICdcXGYwZDgnICFpbXBvcnRhbnQ7XG59XG4jY3Mtc2VhcmNoLXJlc3VsdCB0YWJsZSB0aC5kZXNjZW5kaW5nOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZjBkNycgIWltcG9ydGFudDtcbn1cbiNjcy1jYXRlZ29yeS1hY2NvcmRpb24gLml0ZW1fX2NvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjVyZW07XG4gIHJpZ2h0OiAwLjVyZW07XG59XG4jY3MtY2F0ZWdvcnktYWNjb3JkaW9uIC5pdGVtX19jb250cm9scyA+IGkge1xuICBjb2xvcjogd2hpdGU7XG59XG4jY3MtY2F0ZWdvcnktYWNjb3JkaW9uIC5pdGVtX19jb250cm9scyA+IGkuY2xvc2U6aG92ZXIge1xuICBjb2xvcjogI2RiMjgyODtcbn1cbiNjcy1jYXRlZ29yeS1hY2NvcmRpb24gLml0ZW1fX2NvbnRyb2xzID4gaS5wZW5jaWw6aG92ZXIge1xuICBjb2xvcjogIzAwODdGRTtcbn1cbi8qXG4gKiBUaGUgTUlUIExpY2Vuc2VcbiAqIENvcHlyaWdodCAoYykgMjAxMiBNYXRpYXMgTWVubyA8bUB0aWFzLm1lPlxuICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcGFzc2luZy10aHJvdWdoIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICB9XG4gIDMwJSxcbiAgNzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgfVxufVxuQC1tb3ota2V5ZnJhbWVzIHBhc3NpbmctdGhyb3VnaCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgfVxuICAzMCUsXG4gIDcwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcGFzc2luZy10aHJvdWdoIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICB9XG4gIDMwJSxcbiAgNzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgfVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlLWluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICB9XG4gIDMwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgc2xpZGUtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gIH1cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gIH1cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5ALW1vei1rZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtby10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgMTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4uZHJvcHpvbmUsXG4uZHJvcHpvbmUgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uZHJvcHpvbmUge1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMjBweCAyMHB4O1xufVxuLmRyb3B6b25lLmR6LWNsaWNrYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5kcm9wem9uZS5kei1jbGlja2FibGUgKiB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kcm9wem9uZS5kei1jbGlja2FibGUgLmR6LW1lc3NhZ2UsXG4uZHJvcHpvbmUuZHotY2xpY2thYmxlIC5kei1tZXNzYWdlICoge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZHJvcHpvbmUuZHotc3RhcnRlZCAuZHotbWVzc2FnZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uZHJvcHpvbmUuZHotZHJhZy1ob3ZlciB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG4uZHJvcHpvbmUuZHotZHJhZy1ob3ZlciAuZHotbWVzc2FnZSB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5kcm9wem9uZSAuZHotbWVzc2FnZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAyZW0gMDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXJnaW46IDE2cHg7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3OmhvdmVyIHtcbiAgei1pbmRleDogMTAwMDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotZGV0YWlscyB7XG4gIG9wYWNpdHk6IDE7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZmlsZS1wcmV2aWV3IC5kei1pbWFnZSB7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJhY2tncm91bmQ6ICM5OTk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlZWUsICNkZGQpO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWZpbGUtcHJldmlldyAuZHotZGV0YWlscyB7XG4gIG9wYWNpdHk6IDE7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotaW1hZ2UtcHJldmlldyB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWltYWdlLXByZXZpZXcgLmR6LWRldGFpbHMge1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG4gIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjtcbiAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXJlbW92ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXJlbW92ZTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3OmhvdmVyIC5kei1kZXRhaWxzIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyB7XG4gIHotaW5kZXg6IDIwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMmVtIDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBsaW5lLWhlaWdodDogMTUwJTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotc2l6ZSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWRldGFpbHMgLmR6LWZpbGVuYW1lOmhvdmVyIHNwYW4ge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwMCwgMjAwLCAyMDAsIDAuOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWU6bm90KDpob3Zlcikge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWU6bm90KDpob3Zlcikgc3BhbiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZSBzcGFuLFxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1zaXplIHNwYW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIHBhZGRpbmc6IDAgMC40ZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotaW1hZ2UgaW1nIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICAtd2Via2l0LWZpbHRlcjogYmx1cig4cHgpO1xuICBmaWx0ZXI6IGJsdXIoOHB4KTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotaW1hZ2Uge1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHotaW5kZXg6IDEwO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1pbWFnZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldy5kei1zdWNjZXNzIC5kei1zdWNjZXNzLW1hcmsge1xuICAtd2Via2l0LWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1tb3otYW5pbWF0aW9uOiBwYXNzaW5nLXRocm91Z2ggM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgLW1zLWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1vLWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIGFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZXJyb3IgLmR6LWVycm9yLW1hcmsge1xuICBvcGFjaXR5OiAxO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgLW1vei1hbmltYXRpb246IHNsaWRlLWluIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1tcy1hbmltYXRpb246IHNsaWRlLWluIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gIC1vLWFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgYW5pbWF0aW9uOiBzbGlkZS1pbiAzcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmssXG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVycm9yLW1hcmsge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogNTAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTI3cHg7XG4gIG1hcmdpbi10b3A6IC0yN3B4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmsgc3ZnLFxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tYXJrIHN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNTRweDtcbiAgaGVpZ2h0OiA1NHB4O1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LXByb2Nlc3NpbmcgLmR6LXByb2dyZXNzIHtcbiAgb3BhY2l0eTogMTtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgbGluZWFyO1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuMnMgbGluZWFyO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldy5kei1jb21wbGV0ZSAuZHotcHJvZ3Jlc3Mge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2UtaW47XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1pbjtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldzpub3QoLmR6LXByb2Nlc3NpbmcpIC5kei1wcm9ncmVzcyB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBwdWxzZSA2cyBlYXNlIGluZmluaXRlO1xuICAtbW96LWFuaW1hdGlvbjogcHVsc2UgNnMgZWFzZSBpbmZpbml0ZTtcbiAgLW1zLWFuaW1hdGlvbjogcHVsc2UgNnMgZWFzZSBpbmZpbml0ZTtcbiAgLW8tYW5pbWF0aW9uOiBwdWxzZSA2cyBlYXNlIGluZmluaXRlO1xuICBhbmltYXRpb246IHB1bHNlIDZzIGVhc2UgaW5maW5pdGU7XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXByb2dyZXNzIHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxNnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtOHB4O1xuICB3aWR0aDogODBweDtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1wcm9ncmVzcyAuZHotdXBsb2FkIHtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzY2NiwgIzQ0NCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2UtaW4tb3V0O1xuICAtbXMtdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2UtaW4tb3V0O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlLWluLW91dDtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldy5kei1lcnJvciAuZHotZXJyb3ItbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWVycm9yOmhvdmVyIC5kei1lcnJvci1tZXNzYWdlIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4uZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVycm9yLW1lc3NhZ2Uge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICB0b3A6IDEzMHB4O1xuICBsZWZ0OiAtMTBweDtcbiAgd2lkdGg6IDE0MHB4O1xuICBiYWNrZ3JvdW5kOiAjYmUyNjI2O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYmUyNjI2LCAjYTkyMjIyKTtcbiAgcGFkZGluZzogMC41ZW0gMS4yZW07XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZXJyb3ItbWVzc2FnZTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTZweDtcbiAgbGVmdDogNjRweDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjYmUyNjI2O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLXBpdm90LXBvaW50cyAudWkuc2VnbWVudCB7XG4gIG1pbi1oZWlnaHQ6IDY1MHB4O1xufVxuI2NzLXBpdm90LXBvaW50cyAudWkuaGVhZGVyLmRpdmlkaW5nIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTJlMmUyO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG59XG4jY3MtcGl2b3QtcG9pbnRzIC5jcy1waXZvdC10YWJzIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgaDUuaGVhZCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgaGVpZ2h0OiAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbiNjcy1waXZvdC1wb2ludHMgLmNzLXN1cHBvcnQtcmVzaXN0YW5jZSAuc3ItYmFyIC52YWx1ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC5jcy1zdXBwb3J0LXJlc2lzdGFuY2UgLnBvaW50IHtcbiAgdG9wOiAtMy41cHg7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC51aS50YWJbZGF0YS10YWI9XCJzdG9ja3NcIl0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4jY3MtcGl2b3QtcG9pbnRzIC51aS50YWJbZGF0YS10YWI9XCJzdG9ja3NcIl0gLnVpLmRyb3Bkb3duLmluZGV4LWZpbHRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxNHB4O1xuICByaWdodDogMjIwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1waXZvdC1wb2ludHMgLnVpLnRhYltkYXRhLXRhYj1cInN0b2Nrc1wiXSAudWkuZHJvcGRvd24uaW5kZXgtZmlsdGVyIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cbn1cbiNjcy1waXZvdC1wb2ludHMgLnVpLnRhYltkYXRhLXRhYj1cInN0b2Nrc1wiXSAudWkuZHJvcGRvd24ucGFnaW5nLXR5cGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTRweDtcbiAgcmlnaHQ6IDQyNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtcGl2b3QtcG9pbnRzIC51aS50YWJbZGF0YS10YWI9XCJzdG9ja3NcIl0gLnVpLmRyb3Bkb3duLnBhZ2luZy10eXBlIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gIH1cbn1cbiNjcy1waXZvdC1wb2ludHMgLmNzLXRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIC51aS5pbnB1dCB7XG4gIHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAjY3MtcGl2b3QtcG9pbnRzIC5jcy10YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1waXZvdC1wb2ludHMgLmNzLXRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIC51aS5pbnB1dCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAzLjVlbSkgIWltcG9ydGFudDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWhpc3RvcmljYWwtZGF0YSAuZ2VuZXJhdGUtZXhjZWwge1xuICBmbGV4OiBhdXRvO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtaGQtdGFibGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtaGQtdGFibGUgPiAudWkuaGVhZGVyIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMTc1YTc7XG59XG4jY3MtaGlzdG9yaWNhbC1kYXRhIC5jcy10YWJsZSAudWkuaWNvbi5pbnB1dCB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG59XG4jY3MtaGlzdG9yaWNhbC1kYXRhIC5jcy10YWJsZSB0YWJsZSB0aGVhZCB0ciB0aDpub3QoLmFsaWduZWQpOmZpcnN0LWNoaWxkLFxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGJvZHkgdHIgdGg6bm90KC5hbGlnbmVkKTpmaXJzdC1jaGlsZCxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRoZWFkIHRyIHRkOmZpcnN0LWNoaWxkLFxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGhlYWQgdHIgdGg6bm90KC5hbGlnbmVkKSxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRib2R5IHRyIHRoOm5vdCguYWxpZ25lZCksXG4jY3MtaGlzdG9yaWNhbC1kYXRhIC5jcy10YWJsZSB0YWJsZSB0aGVhZCB0ciB0ZCxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGhlYWQgdHIgLnBvc2l0aXZlLFxuI2NzLWhpc3RvcmljYWwtZGF0YSAuY3MtdGFibGUgdGFibGUgdGJvZHkgdHIgLnBvc2l0aXZlIHtcbiAgY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbn1cbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRoZWFkIHRyIC5uZWdhdGl2ZSxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLmNzLXRhYmxlIHRhYmxlIHRib2R5IHRyIC5uZWdhdGl2ZSB7XG4gIGNvbG9yOiByZWQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xufVxuI2NzLWhpc3RvcmljYWwtZGF0YSAudWkudGFiW2RhdGEtdGFiPVwiaGlzdG9yaWNhbC1kYXRhXCJdIC5jcy10YWJsZSB0YWJsZSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4jY3MtaGlzdG9yaWNhbC1kYXRhIC51aS50YWJbZGF0YS10YWI9XCJoaXN0b3JpY2FsLWRhdGFcIl0gLmNzLXRhYmxlIHRhYmxlIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgxKSxcbiNjcy1oaXN0b3JpY2FsLWRhdGEgLnVpLnRhYltkYXRhLXRhYj1cImhpc3RvcmljYWwtZGF0YVwiXSAuY3MtdGFibGUgdGFibGUgdGhlYWQgdHIgdGg6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDE1MHB4O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWluc2lkZXItcGFnZSAuY3MtaW5zaWRlci1oZWFkZXIge1xuICBtYXJnaW46IDAuMmVtIDAgMC41ZW0gMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItcGFnZSAuY3MtaW5zaWRlci1oZWFkZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDAuMmVtIGF1dG8gMC4yZW0gYXV0bztcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItcGFnZSAuY3MtaW5zaWRlci1jaGFydC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxufVxuI2NzLWluc2lkZXItcGFnaW5hdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLmNzLWluc2lkZXItbmF2IC51aS5tZW51IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNDOTJERjtcbiAgbWFyZ2luOiAwcHg7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci1uYXYgLmNzLWluc2lkZXItbmF2LWZpbHRlcnMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLmNzLWluc2lkZXItbmF2IC5jcy1pbnNpZGVyLW5hdi1maWx0ZXJzIC50cmVuZC1maWx0ZXJzIHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLW5hdiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci1uYXYgLnVpLm1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLW5hdiAudWkubWVudSAuaXRlbSB7XG4gICAgZmxleDogMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci1uYXYgLnVpLmRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbiAgI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLmNzLWluc2lkZXItbmF2IC5jcy1pbnNpZGVyLW5hdi1maWx0ZXJzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTUwcHggKiA1MCk7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC50aXRsZS5ncmV5LFxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudC5ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZmJmYjtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmluc2lkZXItdHJlbmQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmluc2lkZXItdHJlbmQtd3JhcHBlciAudG9wLWFjdGl2aXR5IHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuaW5zaWRlci10cmVuZC13cmFwcGVyIC50b3AtYWN0aXZpdHkgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5pbnNpZGVyLXRyZW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLnRpdGxlIC51aS5wb3B1cCAuY29udGVudCB7XG4gIHBhZGRpbmc6IDBweDtcbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLnRyZW5kIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAudHJlbmQgaSB7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAudHJlbmQgLm51bWJlciB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IC50YWJsZS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAxO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciAuc3RhdGljLXRhYmxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1heC1oZWlnaHQ6IDY0cHg7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2Utb3V0O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciB0YWJsZSB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMHB4O1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciB0YWJsZSB0aGVhZCB0aCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHBhZGRpbmc6IDAuMmVtIDAuN2VtO1xuICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xufVxuI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiAuY29udGVudCAudGFibGUtd3JhcHBlciB0YWJsZSB0aGVhZCAubmFtZSB7XG4gIHdpZHRoOiAyNSU7XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IC50YWJsZS13cmFwcGVyIHRhYmxlIHRib2R5IC5uYW1lIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmNvbnRlbnQgLnRhYmxlLXdyYXBwZXIgdGFibGUgLm5hbWUge1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmNvbnRlbnQgLnRhYmxlLXdyYXBwZXIge1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5jb250ZW50IC50YWJsZS13cmFwcGVyIC5zdGF0aWMtdGFibGUge1xuICAgIHdpZHRoOiAxMzAwcHg7XG4gIH1cbn1cbiNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmNvbnRlbnQgLnRhYmxlLXdyYXBwZXIuZXhwYW5kIC5zdGF0aWMtdGFibGUge1xuICBtYXgtaGVpZ2h0OiAyODBweDtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzIGVhc2UtaW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItdHJhbnNhY3Rpb24gLnVpLmFjY29yZGlvbiB7XG4gICAgbWF4LWhlaWdodDogY2FsYygyMDBweCAqIDMwKTtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAudWkuYWNjb3JkaW9uIC5pbnNpZGVyLXRyZW5kLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC51aS5hY2NvcmRpb24gLmluc2lkZXItdHJlbmQtd3JhcHBlciAudG9wLWFjdGl2aXR5IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICB9XG59XG4jY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci10YWJsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluc2lkZXItdHJhbnNhY3Rpb24ge1xuICAgIHBhZGRpbmc6IDAuNWVtO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC50cmVuZCB7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci10YWJsZSB7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTQ1MHB4O1xuICB9XG4gICNjcy1pbnNpZGVyLXRyYW5zYWN0aW9uIC5jcy1pbnNpZGVyLXRhYmxlIHRhYmxlIC5jcy1pbnNpZGVyLXRhYmxlX19tZXNzYWdlUm93IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfVxuICAjY3MtaW5zaWRlci10cmFuc2FjdGlvbiAuY3MtaW5zaWRlci10YWJsZSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5QaXZvdCBQb2ludHMgU3VwcG9ydCBSZXNpc3RhbmNlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2Fubm91bmNlLWNhbGVuZGFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RUFFRjtcbiAgbWFyZ2luOiAwIC0xLjFlbTtcbn1cbi5hbm5vdW5jZV9fZmlsdGVycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cbi5hbm5vdW5jZV9fc2VhcmNoX19wb3B1cCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMzhweDtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xufVxuLmFubm91bmNlX19zZWFyY2hfX3BvcHVwIC51aS5idXR0b24ge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVlbTtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fY2FsZW5kZXJWaWV3IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiAtMTBweDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICM3MTlhYmM7XG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBwYWRkaW5nOiAycHggMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fY2FsZW5kZXJWaWV3IGkge1xuICBmb250LXNpemU6IDEuMmVtO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fY2FsZW5kZXJWaWV3LS1zaG93IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmFubm91bmNlX19kYXRlX19jYWxlbmRlclZpZXcge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luOiAxZW0gMCAwLjVlbTtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxufVxuLmFubm91bmNlX19kYXRlX19maWx0ZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjNDY2RkM1O1xuICBtYXJnaW4tbGVmdDogMWVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLmZpZWxkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbi5hbm5vdW5jZV9fZGF0ZV9fZmlsdGVycyAuZmllbGQgbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgPiAuZmllbGQ6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMHB4O1xufVxuLmFubm91bmNlX19kYXRlX19maWx0ZXJzIC5kYXRlcmFuZ2Uge1xuICB3aWR0aDogMTM1cHg7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLnR3by5maWVsZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICB3aWR0aDogMjgwcHg7XG59XG4uYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLmJ1dHRvbiB7XG4gIG1hcmdpbjogMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBwYWRkaW5nOiA1cHggMCAwIDA7XG4gICAgbWFyZ2luOiA1cHggMCAwIDA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLmNvbXBhbnlfX3NlbGVjdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmFubm91bmNlX19kYXRlX19maWx0ZXJzIC5maWVsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5hbm5vdW5jZV9fZGF0ZV9fZmlsdGVycyAuZmllbGQgLnVpLmlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLnR3by5maWVsZHMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuYW5ub3VuY2VfX2RhdGVfX2ZpbHRlcnMgLnR3by5maWVsZHMgLmZpZWxkIHtcbiAgICB3aWR0aDogNDklO1xuICB9XG4gIC5hbm5vdW5jZV9fZGF0ZV9fZmlsdGVycyAuYXBwbHkge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxufVxuLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICBmbGV4OiBhdXRvO1xufVxuLmFubm91bmNlX190eXBlX19maWx0ZXIgLml0ZW0ge1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDIuNWVtIDEuMjVlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYzICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjN2M3YzgwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7XG4gIGxldHRlci1zcGFjaW5nOiAxLjVweCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNzVlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xufVxuLmFubm91bmNlX190eXBlX19maWx0ZXIgLml0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJCNkE5RSAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmFubm91bmNlX19jYWxlbmRhckNvbnRyb2xzIHtcbiAgZm9udC1zaXplOiA0ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzUzODNiMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggI2U4ZThlODtcbiAgdHJhbnNpdGlvbjogYWxsIDUwMG1zO1xufVxuLmFubm91bmNlX19jYWxlbmRhckNvbnRyb2xzOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjdmZjtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJDb250cm9scy0tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyQ29udHJvbHMgPiBpIHtcbiAgaGVpZ2h0OiAwLjVlbTtcbiAgd2lkdGg6IDUwcHg7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbjogMCA4cHg7XG4gIGZsZXg6IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGhlaWdodDogMjAwcHg7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbXMgPiBkaXYge1xuICBmbGV4OiAwIDAgMTMuNyU7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbXMgPiBkaXY6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmFubm91bmNlX19jYWxlbmRhckl0ZW0ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBib3gtc2hhZG93OiAxcHggMXB4IDVweCAjZThlOGU4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMTAwMG1zO1xufVxuLmFubm91bmNlX19jYWxlbmRhckl0ZW0tLXNlbGVjdGVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzlhOWM5ZTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggIzlhOWM5ZTtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJJdGVtLS1tZXNzYWdlIHtcbiAgZmxleDogMCAwIDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyRGF0ZSB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBsaW5lLWhlaWdodDogMDtcbiAgbWFyZ2luOiAwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRjdGRjtcbiAgcGFkZGluZzogMTVweCA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJJdGVtLS1zZWxlY3RlZCAuYW5ub3VuY2VfX2NhbGVuZGFyRGF0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTM2NUI7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJEYXRlID4gZGl2IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmFubm91bmNlX19jYWxlbmRhckRhdGUtLXRvZGF5OjpiZWZvcmUge1xuICBjb250ZW50OiAnVE9EQVknO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNTNjOTA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtOHB4O1xuICBsZWZ0OiBjYWxjKDUwJSAtIDI1cHgpO1xuICB3aWR0aDogNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHotaW5kZXg6IDE7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbSA+IC51aS5kaXZpZGluZy5oZWFkZXIge1xuICBtYXJnaW46IDAuNWVtIDA7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbS0tc2VsZWN0ZWQgPiAudWkuZGl2aWRpbmcuaGVhZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjNTI4OWNlO1xufVxuLmFubm91bmNlX19jYWxlbmRhckRhdGUgPiBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGVyX19kYXlOdW1iZXIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJfX21vbnRoRGF5V2VlayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyVGV4dCB7XG4gIGZsZXg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDc1cHg7XG4gIHBhZGRpbmc6IDE1cHggNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFyVGV4dCAudWkubGFiZWwge1xuICBmb250LXNpemU6IDAuNjg1NzE0cmVtICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX2NhbGVuZGVyX19tb250aCB7XG4gIGZvbnQtc2l6ZTogMC40ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFubm91bmNlX19jYWxlbmRlcl9fZGF5V2Vlayxcbi5hbm5vdW5jZV9fY2FsZW5kZXJfX21vbnRoIHtcbiAgaGVpZ2h0OiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFubm91bmNlX19jYWxlbmRlcl9fZGF5V2VlayB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMC4zZW07XG59XG4uYW5ub3VuY2VfX2NhbGVuZGFySXRlbS0tc2VsZWN0ZWQgLmFubm91bmNlX19jYWxlbmRlcl9fZGF5V2VlayB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJSZXBvcnRpbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlcnMge1xuICBmb250LXNpemU6IDAuNzVlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJUZXh0ID4gLmFubm91bmNlX190eXBlTnVtYmVyczpub3QobGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4uYW5ub3VuY2VfX3R5cGVOdW1iZXJMYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIHdpZHRoOiAzMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmFubm91bmNlX190eXBlTnVtYmVyTGFiZWwtLXdpZHRoQXV0byB7XG4gIG1pbi13aWR0aDogMzBweDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDAgNXB4O1xufVxuLmFubm91bmNlX190eXBlTnVtYmVyTGFiZWwtLXB1cnBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4OTNBRDY7XG59XG4uYW5ub3VuY2VfX3R5cGVOdW1iZXJMYWJlbC0tb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1NjUzZTtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlckxhYmVsLS10ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4YmNkNDtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlckxhYmVsLS1saXRlYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCMUJBRDY7XG59XG4uYW5ub3VuY2VfX3R5cGVOdW1iZXJMYWJlbC0tc2VhZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzViZjlmO1xufVxuLmFubm91bmNlX190eXBlTnVtYmVyTGFiZWwtLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4YzMxNDtcbn1cbi5hbm5vdW5jZV9fdHlwZU51bWJlclRleHQge1xuICBmb250LXNpemU6IDEuMWVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJFbXB0eSB7XG4gIGJhY2tncm91bmQ6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ2ZGVnLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgMTNweCwgcmdiYSgwLCAwLCAwLCAwLjA1KSAwLCByZ2JhKDAsIDAsIDAsIDAuMDUpIDE3cHgpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDk1cHg7XG4gIG1hcmdpbjogLTEwcHggMDtcbn1cbi5hbm5vdW5jZV9fY2FsZW5kYXJGb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDVweDtcbiAgY29sb3I6ICM2MzdhOTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG59XG4uYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xufVxuLmFubm91bmNlX19tb2RhbEltYWdlV3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgaGVpZ2h0OiA5MHZoO1xufVxuI2Fubm91bmNlLXRhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWxlZnQ6IDBweDtcbiAgYm9yZGVyLXJpZ2h0OiAwcHg7XG59XG4jYW5ub3VuY2UtdGFibGUgLmFubm91bmNlX19jYWxlbmRhckVtcHR5IHtcbiAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDZkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCA4cHgsIHJnYmEoMCwgMCwgMCwgMC4wNSkgMCwgcmdiYSgwLCAwLCAwLCAwLjA1KSAxMnB4KTtcbiAgbWluLWhlaWdodDogMjVweDtcbn1cbiNhbm5vdW5jZS10YWJsZSAuYW5ub3VuY2VfX2NhbGVuZGFyRW1wdHktLUZSIHtcbiAgbWluLWhlaWdodDogNTVweDtcbn1cbiNhbm5vdW5jZS10YWJsZSAubmV3IHtcbiAgYW5pbWF0aW9uOiBjaGFuZ2UtYmctbmV3LWNvbG9yIDEwcztcbn1cbiNhbm5vdW5jZS10YWJsZSAuaW5mby1tZXNzYWdlIHtcbiAgcGFkZGluZzogNzBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4jYW5ub3VuY2UtdGFibGUgLnVwZGF0ZWQge1xuICBhbmltYXRpb246IGNoYW5nZS1iZy11cGRhdGUtY29sb3IgMTBzO1xufVxuI2Fubm91bmNlLXRhYmxlIHRhYmxlIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4jYW5ub3VuY2UtdGFibGUgLnVpLmhlYWRlciB7XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuI2Fubm91bmNlLXRhYmxlIC51aS5zdHJpcGVkLnRhYmxlID4gdHI6bnRoLWNoaWxkKDJuKSxcbiNhbm5vdW5jZS10YWJsZSAudWkuc3RyaXBlZC50YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMTAsIDEwLCAwLjA1KTtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkIHRyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQgdHIgdGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkIHRyIC5hbm5vdW5jZV9fdGFibGVSb3ctLWZ1bGxXaWR0aCB7XG4gIGZsZXg6IDAgMCAxMDAlICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZEhlYWRlciB0aGVhZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMjhweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNlbSk7XG4gIHotaW5kZXg6IDEwMjtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxMHB4IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1GUiB0ciB0aCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGQge1xuICBmbGV4OiAwIDAgOTVweDtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGg6Zmlyc3QtY2hpbGQsXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgZmxleDogYXV0bztcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGg6bGFzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGQ6bGFzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGg6bnRoLWNoaWxkKDMpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1GUiB0ciB0ZDpudGgtY2hpbGQoMyksXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRoOm50aC1jaGlsZCg0KSxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRlIgdHIgdGQ6bnRoLWNoaWxkKDQpIHtcbiAgZmxleDogMCAwIDEwMHB4O1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1GUiB0ciB0aDpudGgtY2hpbGQoMiksXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRkOm50aC1jaGlsZCgyKSB7XG4gIGZsZXg6IDAgMCAxOTBweDtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tQlJNIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1CUk0gdHIgdGQge1xuICBmbGV4OiAwIDAgMTUlO1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1CUk0gdHIgdGg6Zmlyc3QtY2hpbGQsXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZsZXg6IGF1dG87XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0aDpsYXN0LWNoaWxkLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1CUk0gdHIgdGQ6bGFzdC1jaGlsZCB7XG4gIGZsZXg6IDAgMCAxMiU7XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0aDpudGgtY2hpbGQoMiksXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUJSTSB0ciB0ZDpudGgtY2hpbGQoMikge1xuICBmbGV4OiAwIDAgMTglO1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1FT0dNIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1FT0dNIHRyIHRkIHtcbiAgZmxleDogMCAwIDMwJTtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRU9HTSB0ciB0aDpmaXJzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRU9HTSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZsZXg6IGF1dG87XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUVPR00gdHIgdGg6bGFzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tRU9HTSB0ciB0ZDpsYXN0LWNoaWxkIHtcbiAgZmxleDogMCAwIDEyJTtcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRoLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGQge1xuICBmbGV4OiAwIDAgMTIwcHg7XG59XG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLVBZVCB0ciB0aDpmaXJzdC1jaGlsZCxcbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRkOmZpcnN0LWNoaWxkIHtcbiAgZmxleDogYXV0bztcbn1cbi5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRoOmxhc3QtY2hpbGQsXG4uYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLVBZVCB0ciB0ZDpsYXN0LWNoaWxkIHtcbiAgZmxleDogMCAwIDEwMHB4O1xufVxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGg6bnRoLWNoaWxkKDIpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGQ6bnRoLWNoaWxkKDIpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGg6bnRoLWNoaWxkKDgpLFxuLmFubm91bmNlX190YWJsZS0tZml4ZWQuYW5ub3VuY2VfX3RhYmxlLS1QWVQgdHIgdGQ6bnRoLWNoaWxkKDgpIHtcbiAgZmxleDogMCAwIDIyNXB4O1xufVxuLmFubm91bmNlX190YWJsZVJvdyB7XG4gIHBhZGRpbmc6IDAgMC41ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93TGVmdCB7XG4gIGZsZXg6IDAgMCA0MDBweDtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dSaWdodCB7XG4gIGZsZXg6IDAgMCAxMDBweDtcbiAgbWFyZ2luLWxlZnQ6IDFlbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dfX2NvbXBhbnlOYW1lLFxuLmFubm91bmNlX190YWJsZVJvd19fdGl0bGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dfX2NvbXBhbnlOYW1lIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVSb3dfX3Bvc3RlZCB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMyYjZhOWQ7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xufVxuLmFubm91bmNlX190YWJsZVJvd19fY29tcGFueU5hbWUgPiAudWkuYmx1ZS5sYWJlbCB7XG4gIG1pbi13aWR0aDogNjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xufVxuLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXI6OmFmdGVyIHtcbiAgdG9wOiA4MHB4ICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyIHtcbiAgZmxleDogYXV0bztcbiAgcGFkZGluZzogMWVtO1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICM3MTlhYmM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkN2VkZmY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1wdXJwbGUge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICM4OTNBRDY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFM0Q1RjI7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1vcmFuZ2Uge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNkNTY1M2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWUyZGE7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1yZWQge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNGRjAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWUyZGE7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS10ZWFsIHtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjMzhiY2Q0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzJlZmY3O1xufVxuLmFubm91bmNlX190YWJsZVJvd0NlbnRlci0tZ3JlZW4ge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMxOGMzMTQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjOGZkYzY7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93Q2VudGVyLS1nb2xkIHtcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBnb2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlZTkxO1xufVxuLmFubm91bmNlX190YWJsZVJvd0NlbnRlci0tb2xpdmUge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICNDRERDMzk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGQUZGQzY7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93X19zdWJUZXh0IHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLmFubm91bmNlX190YWJsZVJvd19fb3B0aW9uV3JhcHBlciB7XG4gIGZsZXg6IDAgMCAxMDBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlUm93X19vcHRpb25zIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiAjMkM2QTlFO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVDb2xEaXZpZGVyIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYWJhYmFiICFpbXBvcnRhbnQ7XG59XG4uYW5ub3VuY2VfX3RhYmxlRmlsZXMtLWhvcml6b250YWwge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmFubm91bmNlX190YWJsZUZpbGVzID4gYTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFubm91bmNlX190YWJsZUZpbGVzLS12ZXJ0aWNhbCA+IGE6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbi5hbm5vdW5jZV9fdGFibGVGaWxlcy0taG9yaXpvbnRhbCA+IGE6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5hbm5vdW5jZV9fdGFibGVIZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uYW5ub3VuY2VfX3RhYmxlTGVnZW5kcyB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogYXV0bztcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hbm5vdW5jZV9fdGFibGVMZWdlbmRzLS1tb2JpbGUge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4uYW5ub3VuY2VfX3RhYmxlTGVnZW5kcyA+IGRpdjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IGF1dG87XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fdGV4dCB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrIHtcbiAgZmxleDogMCAwIDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYW5ub3VuY2VfX3RhYmxlUGVyaW9kIHtcbiAgbWFyZ2luOiAwLjVlbSAwO1xuICBjb2xvcjogZ3JleTtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrLS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODkzQUQ2O1xufVxuLmFubm91bmNlX19sZWdlbmRfX2NvbG9yQmxvY2stLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNTY1M2U7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGMDAwMDtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrLS10ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzM4YmNkNDtcbn1cbi5hbm5vdW5jZV9fbGVnZW5kX19jb2xvckJsb2NrLS1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOGMzMTQ7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tZ29sZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGdvbGQ7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MTlhYmM7XG59XG4uYW5ub3VuY2VfX2xlZ2VuZF9fY29sb3JCbG9jay0tb2xpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0REQzM5O1xufVxuQGtleWZyYW1lcyBjaGFuZ2UtYmctbmV3LWNvbG9yIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjFjODtcbiAgfVxuICB0byB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgY2hhbmdlLWJnLXVwZGF0ZS1jb2xvciB7XG4gIGZyb20ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjYmQ5ZjE7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDE0MjBweCkge1xuICAuYW5ub3VjZW1lbnQtY2FsZW5kYXItd3JhcHBlcixcbiAgLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC45NWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTM3NXB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNTBweCkge1xuICAuYW5ub3VjZW1lbnQtY2FsZW5kYXItd3JhcHBlcixcbiAgLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4wMmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTMyNXB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDEuMDZlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzMDBweCkge1xuICAuYW5ub3VjZW1lbnQtY2FsZW5kYXItd3JhcHBlcixcbiAgLmFubm91Y2VtZW50LXRhYmxlLXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC43NWVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4xZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc1cHgpIHtcbiAgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4gIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDAuN2VtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXIge1xuICAgIGZvbnQtc2l6ZTogMS4yZW0gIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjUwcHgpIHtcbiAgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4gIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDAuNjVlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDEuM2VtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIyNXB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjZlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDEuNGVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyLFxuICAuYW5ub3VjZW1lbnQtdGFibGUtd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAwLjU1ZW0gIWltcG9ydGFudDtcbiAgfVxuICAuYW5ub3VuY2VfX3R5cGVfX2ZpbHRlciB7XG4gICAgZm9udC1zaXplOiAxLjVlbSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5hbm5vdW5jZV9fbGVnZW5kIHtcbiAgICBmbGV4OiAwIDAgNDglO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICB9XG4gIC5hbm5vdW5jZV9fc2VhcmNoX19wb3B1cCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmFubm91bmNlX19kYXRlX19maWx0ZXJzLS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGVMZWdlbmRzLS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZUxlZ2VuZHMtLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4gIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyIHtcbiAgICBmb250LXNpemU6IDFlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkI2QTlFICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJCNkE5RSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUgLnRleHQsXG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUgaSB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZSAubWVudSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzJCNkE5RSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUgLnRleHQge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190eXBlX19maWx0ZXItLW1vYmlsZS51aS5kcm9wZG93biAubWVudSA+IC5pdGVtIHtcbiAgICBwYWRkaW5nOiAxLjVlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5hbm5vdW5jZV9fdHlwZV9fZmlsdGVyLS1tb2JpbGUudWkuZHJvcGRvd24gLm1lbnUge1xuICAgIG1heC1oZWlnaHQ6IHVuc2V0O1xuICB9XG4gIC5hbm5vdW5jZV9fY2FsZW5kYXJDb250cm9scyB7XG4gICAgZm9udC1zaXplOiAzZW07XG4gIH1cbiAgLmFubm91bmNlX19jYWxlbmRhckNvbnRyb2xzID4gaSB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgLmFubm91bmNlX19jYWxlbmRhckl0ZW1zIHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIH1cbiAgLmFubm91bmNlX19jYWxlbmRhckl0ZW1zID4gZGl2IHtcbiAgICBmbGV4OiAwIDAgMjAwcHg7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZVJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZVJvd0NlbnRlciB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlUm93UmlnaHQge1xuICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAjYW5ub3VuY2UtdGFibGUgLnVpLmhlYWRlciB7XG4gICAgcGFkZGluZzogMC41ZW07XG4gIH1cbiAgLmFubm91bmNlX190YWJsZUhlYWRlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlTGVnZW5kcyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbiAgLmFubm91bmNlX19sZWdlbmQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICB9XG4gIC5hbm5vdWNlbWVudC1jYWxlbmRhci13cmFwcGVyOmZpcnN0LWNoaWxkIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gIH1cbiAgLmFubm91bmNlX19maWx0ZXJzIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogMTA7XG4gICAgdG9wOiBjYWxjKDEwMHB4IC0gMC41ZW0pO1xuICAgIGxlZnQ6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxZW07XG4gIH1cbiAgLmFubm91bmNlX19maWx0ZXJzIC51aS5kcm9wZG93bixcbiAgLmFubm91bmNlX19maWx0ZXJzIC51aS5idXR0b24ge1xuICAgIGJveC1zaGFkb3c6IDNweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZVJvdyB7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tQlJNIHRyIHRkLFxuICAuYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUZSIHRyIHRkLFxuICAuYW5ub3VuY2VfX3RhYmxlLS1maXhlZC5hbm5vdW5jZV9fdGFibGUtLUVPR00gdHIgdGQsXG4gIC5hbm5vdW5jZV9fdGFibGUtLWZpeGVkLmFubm91bmNlX190YWJsZS0tUFlUIHRyIHRkIHtcbiAgICBmbGV4OiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5jb21wYW55LXR5cGUge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX3RhYmxlUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlLS1tb2JpbGUgLmFubm91bmNlX190YWJsZVJvd0xlZnQsXG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX3RhYmxlUm93UmlnaHQge1xuICAgIGZsZXg6IGF1dG87XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5hbm5vdW5jZV9fdGFibGVSb3dMZWZ0IHtcbiAgICBmbGV4OiAwIDAgMTMwcHg7XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5hbm5vdW5jZV9fdGFibGVQZXJpb2Qge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjOGVhZmNhO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX21vYmlsZVRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC5hbm5vdW5jZV9fdGFibGUtLW1vYmlsZSAuYW5ub3VuY2VfX21vYmlsZVRhYmxlID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwLjA1ZW0gMC4yNWVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmFubm91bmNlX190YWJsZS0tbW9iaWxlIC5hbm5vdW5jZV9fbW9iaWxlVGFibGUgPiBkaXYgPiBzcGFuIHtcbiAgICBjb2xvcjogZ3JleTtcbiAgfVxuICAuYW5ub3VuY2VfX3RhYmxlLS1tb2JpbGUgLmFubm91bmNlX19tb2JpbGVUYWJsZSA+IGRpdiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEluZGljZXMgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1pbmRpY2VzLXBhZ2UgLnVpLmxvYWRpbmcuc2VnbWVudDpiZWZvcmUsXG4jY3MtaW5kaWNlcy1wYWdlIC51aS5sb2FkaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICB6LWluZGV4OiAxMDtcbn1cbiNjcy1pbmRpY2VzLXBhZ2UgPiAuY29sdW1uLFxuI2NzLWluZGljZXMtcGFnZSA+IC5yb3cgPiAuY29sdW1uIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtaW5kaWNlcy1wYWdlID4gLnJvdyB7XG4gIHBhZGRpbmc6IDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLWluZGljZXMtcGFnZSA+IC5jb2x1bW4sXG4gICNjcy1pbmRpY2VzLXBhZ2UgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5pbmRpY2VzX19tZW51X193cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLmluZGljZXNfX21lbnVfX3dyYXBwZXIgI2NzLWtzZS1pbmRpY2VzIHtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNzVweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBtYXJnaW46IDAuNWVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuaW5kaWNlc19fbWVudV9fd3JhcHBlciAjY3Mta3NlLWluZGljZXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uaW5kaWNlc19fbWVudSA+IC5jb2x1bW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5pbmRpY2VzX19tZW51ID4gLmNvbHVtbjo6YWZ0ZXIge1xuICBjb250ZW50OiAnICc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogM3B4O1xuICBib3R0b206IDBweDtcbiAgbGVmdDogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cztcbn1cbi5pbmRpY2VzX19tZW51ID4gLmNvbHVtbjpob3Zlcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjBkM2YwO1xufVxuLmluZGljZXNfX21lbnUgPiAuY29sdW1uLmFjdGl2ZTo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI2YmE4O1xufVxuLmluZGljZXNfX2hlYWRlciB7XG4gIGNvbG9yOiAjNTg1ODU4O1xuICBmb250LXNpemU6IDEuNWVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG4uaW5kaWNlc19faGVhZGVyLS10YWJzLFxuLmluZGljZXNfX2hlYWRlci0tc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5pbmRpY2VzX19oZWFkZXJUYWJzIHtcbiAgYm9yZGVyOiAzcHggc29saWQgIzJiNmJhODtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmluZGljZXNfX2hlYWRlclRhYnMgLnVpLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmI2YmE4ICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IGF1dG87XG4gIG1pbi13aWR0aDogMTMwcHg7XG4gIHBhZGRpbmc6IDAuNnJlbSAxcmVtO1xufVxuLmluZGljZXNfX2hlYWRlclRhYnMgLnVpLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzJiNmJhOCAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLW5vTWFyZ2luIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4uaW5kaWNlc19fbWFya2V0X190YWJsZSB0ZCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlLS1ob3Jpem9udGFsIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RhZGFkYTtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlLS1jZW50ZXIgdGQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uaW5kaWNlc19fbWFya2V0X190YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gIGNvbG9yOiAjNzE3MTcxO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLWhvcml6b250YWwgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGFkYWRhO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLWNlbnRlciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIHRkLFxuLmluZGljZXNfX21hcmtldF9fdGFibGUgdGgge1xuICBwYWRkaW5nOiA3cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyO1xufVxuLmluZGljZXNfX21hcmtldF9fdGFibGUtLWhvcml6b250YWwgdGgge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBwYWRkaW5nOiAycHg7XG59XG4uaW5kaWNlc19fbWFya2V0X190YWJsZSAuZ3JlZW4ge1xuICBjb2xvcjogIzQyRDA0NDtcbn1cbi5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIC5yZWQge1xuICBjb2xvcjogI2ZmMWIxYjtcbn1cbi5pbmRpY2VzX192b2x1bWVfX3RhYmxlIC5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIHRkLFxuLmluZGljZXNfX3ZvbHVtZV9fdGFibGUgLmluZGljZXNfX21hcmtldF9fdGFibGUgdGgge1xuICB3aWR0aDogNTAlO1xufVxuLmluZGljZXNfX3JhbmdlU2NhbGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4uaW5kaWNlc19fcmFuZ2VTY2FsZSB7XG4gIGZsZXg6IDAgMCA0OSU7XG59XG4uaW5kaWNlc19fcmFuZ2VTY2FsZSAudWkuaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cbi5pbmRpY2VzX192b2x1bWUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmluZGljZXNfX3ZvbHVtZS0tbWFyZ2luQm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuLmluZGljZXNfX3ZvbHVtZSA+IGRpdiB7XG4gIGZsZXg6IDAgMCA1MCU7XG4gIGhlaWdodDogNzBweDtcbn1cbi5pbmRpY2VzX19jaGFydCAuYmFyLnBvc2l0aXZlIHtcbiAgZmlsbDogIzJGQzc5OCAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX2NoYXJ0IC5iYXIubmVnYXRpdmUge1xuICBmaWxsOiAjYzcyMTUyICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fY2hhcnQgLnRvb2wtY29sb3ItYmxvY2suZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkZDNzk4O1xufVxuLmluZGljZXNfX2NoYXJ0IC50b29sLWNvbG9yLWJsb2NrLnJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjNzIxNTI7XG59XG4uaW5kaWNlc19fY2hhcnQgdGV4dC5iYXItdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uaW5kaWNlc19fY2hhcnQgdGV4dC5iYXItdGV4dC5ncmVlbiB7XG4gIHN0cm9rZTogIzJGQzc5ODtcbn1cbi5pbmRpY2VzX19jaGFydCB0ZXh0LmJhci10ZXh0LnJlZCB7XG4gIHN0cm9rZTogI2M3MjE1Mjtcbn1cbi5pbmRpY2VzX19jaGFydCAueS1ncmlkIHtcbiAgc3Ryb2tlOiByZ2JhKDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fY2hhcnQgLnRpY2sgdGV4dCB7XG4gIG9wYWNpdHk6IDA7XG59XG4uaW5kaWNlc19fY2hhcnQgLmNzLXNlY3Rvci10cmVlbWFwIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5pbmRpY2VzX19jaGFydCAuY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIHtcbiAgbWFyZ2luOiAwcHg7XG4gIGZsb2F0OiByaWdodDtcbn1cbi5pbmRpY2VzX19jaGFydCAuY3Mtc2VjdG9yLXRyZWVtYXAgLnNjYWxlIGRpdiB7XG4gIG1hcmdpbjogMHB4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdGhlYWQgdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDhkOGQ4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUtLWZpeGVkIHtcbiAgcGFkZGluZy10b3A6IDM1cHg7XG59XG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZS0tZml4ZWQgdGhlYWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjAycHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0ZW0pO1xuICB6LWluZGV4OiAxMDtcbiAgYm94LXNoYWRvdzogM3B4IDNweCAxMHB4IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4zKSAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6bm90KDpmaXJzdC1jaGlsZCksXG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6Zmlyc3QtY2hpbGQsXG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGZsZXg6IGF1dG87XG59XG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aCxcbi5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkIHtcbiAgZmxleDogMCAwIDEwN3B4O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdGhlYWQgdHIgdGgge1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjQjZCNkJCICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjQjZCNkJCICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNWVtICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0aGVhZCB0ciB0aDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0I2QjZCQiAhaW1wb3J0YW50O1xufVxuLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdGhlYWQgdHIgdGg6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNCNkI2QkIgIWltcG9ydGFudDtcbn1cbi5pbmRpY2VzX190YWIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmluZGljZXNfX3RhYi0tYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uaW5kaWNlc19fc3ltYm9sIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogODBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmluZGljZXNfX2JhclN0YXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fYmFyU3RhdC0tc3ltYm9sIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5pbmRpY2VzX19iYXJTdGF0cy0tZ3JlZW4ge1xuICBib3gtc2hhZG93OiA1cHggNXB4IDBweCAjMkZDNzk4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyRkM3OTggIWltcG9ydGFudDtcbn1cbi5pbmRpY2VzX19iYXJTdGF0cy0tcmVkIHtcbiAgYm94LXNoYWRvdzogNXB4IDVweCAwcHggI2M3MjE1MiAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzcyMTUyICFpbXBvcnRhbnQ7XG59XG4uaW5kaWNlc19fYmFyU3RhdCB7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiA5MHB4O1xufVxuLmluZGljZXNfX2JhclN0YXRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmluZGljZXNfX2JhclN0YXRzIC5pbmRpY2VzX19iYXJTdGF0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZWFlYWVhO1xufVxuLmluZGljZXNfX2JhclN0YXRfX3ZhbHVlLS1ncmVlbiB7XG4gIGNvbG9yOiAjMkZDNzk4O1xufVxuLmluZGljZXNfX2JhclN0YXRfX3ZhbHVlLS1yZWQge1xuICBjb2xvcjogI2M3MjE1Mjtcbn1cbi5pbmRpY2VzX19iYXJTdGF0LS1uYW1lIHtcbiAgZm9udC1zaXplOiAwLjdlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5pbmRpY2VzX190YWJbZGF0YS10YWI9Y29tcGFuaWVzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aDpudGgtY2hpbGQoMiksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPWNvbXBhbmllc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1jb21wYW5pZXNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRoOm50aC1jaGlsZCgzKSxcbi5pbmRpY2VzX190YWJbZGF0YS10YWI9Y29tcGFuaWVzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpudGgtY2hpbGQoMyksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPWNvbXBhbmllc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6bnRoLWNoaWxkKDQpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1jb21wYW5pZXNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkOm50aC1jaGlsZCg0KSB7XG4gIGZsZXg6IDAgMCAxMjVweDtcbn1cbi5pbmRpY2VzX190YWJbZGF0YS10YWI9Y29tcGFuaWVzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aDpsYXN0LWNoaWxkLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1jb21wYW5pZXNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkOmxhc3QtY2hpbGQge1xuICBmbGV4OiAwIDAgMTU1cHg7XG59XG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPXNlY3RvcnNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRoOm50aC1jaGlsZCgyKSxcbi5pbmRpY2VzX190YWJbZGF0YS10YWI9c2VjdG9yc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1zZWN0b3JzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0aDpudGgtY2hpbGQoMyksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPXNlY3RvcnNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRkOm50aC1jaGlsZCgzKSB7XG4gIGZsZXg6IDAgMCAxMjVweDtcbn1cbi5pbmRpY2VzX190YWJbZGF0YS10YWI9c2VjdG9yc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGg6bnRoLWNoaWxkKDQpLFxuLmluZGljZXNfX3RhYltkYXRhLXRhYj1zZWN0b3JzXSAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB0ciB0ZDpudGgtY2hpbGQoNCksXG4uaW5kaWNlc19fdGFiW2RhdGEtdGFiPXNlY3RvcnNdIC5pbmRpY2VzX19jb25zdGl0dWVudFRhYmxlIHRyIHRoOm50aC1jaGlsZCg1KSxcbi5pbmRpY2VzX190YWJbZGF0YS10YWI9c2VjdG9yc10gLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUgdHIgdGQ6bnRoLWNoaWxkKDUpIHtcbiAgZmxleDogMCAwIDE1NXB4O1xufVxuLmluZGljZXNfX3NlY3Rvcl9fY2hhcnQge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4jY3MtaW5kaWNlcy1zdW5idXJzdC1jaGFydCB7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fZGl2aWRlciB7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzVjNWM1O1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc2l6ZTogMS43ZW07XG4gIG1hcmdpbjogMC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RpdGxlLS1kdWFsTWFyZ2luIHtcbiAgbWFyZ2luOiAwLjdlbSAwO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX19zdGF0VGl0bGUge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRzID4gZGl2IHtcbiAgZmxleDogMCAwIDUwJTtcbn1cbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fc3RhdCB7XG4gIHBhZGRpbmc6IDAuNWVtIDA7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZSBpIHtcbiAgd2lkdGg6IGF1dG87XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRDaGFuZ2Uge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZS0tcmVkIHtcbiAgY29sb3I6ICNmZjFiMWI7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRWYWx1ZS0tZ3JlZW4ge1xuICBjb2xvcjogIzQyRDA0NDtcbn1cbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fc3RhdFZhbHVlLS1ibHVlIHtcbiAgY29sb3I6ICMwNzUyODM7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX2NoYW5nZVBlcmNlbnQge1xuICBmb250LXNpemU6IDAuN2VtO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB0ZCxcbi5pbmRpY2VzX19wZXJmb3JtYW5jZV9fdGFibGUgdGgge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNWVtO1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB0aCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNGU0ZTQ7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RhYmxlIHRkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RhYmxlIHRkLmdyZWVuIHtcbiAgY29sb3I6ICMwNzcyMEU7XG59XG4uaW5kaWNlc19fcGVyZm9ybWFuY2VfX3RhYmxlIHRkLnJlZCB7XG4gIGNvbG9yOiAjZjAzODI4O1xufVxuLmluZGljZXNfX3BlcmZvcm1hbmNlX190YWJsZSB0ZC5ibHVlIHtcbiAgY29sb3I6ICMwNzUyODM7XG59XG4uaW5kaWNlc19fa3NlU3RhdHNfX3RhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdHIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSB0ZCxcbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdGgge1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwLjhlbSAwO1xuICBmb250LXNpemU6IDEuMWVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMzMzMgNDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDIwJSk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbTtcbiAgYmFja2dyb3VuZC1zaXplOiAzcHggMnB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uaW5kaWNlc19fa3NlU3RhdHNfX3RhYmxlIHRoIHtcbiAgY29sb3I6ICM1ZjVkNWU7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdGQge1xuICBjb2xvcjogIzYzNjI2MztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgdHIgdGQ6bnRoLWNoaWxkKDIpIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSB0ciB0ZDpudGgtY2hpbGQoMykge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cbi5pbmRpY2VzX19rc2VTdGF0c19fdGFibGUgLnJlZCB7XG4gIGNvbG9yOiAjZmYxYjFiO1xufVxuLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSAuZ3JlZW4ge1xuICBjb2xvcjogIzQyRDA0NDtcbn1cbi5pbmRpY2VzX19ub3RlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtc3R5bGU6IHJpZ2h0O1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogZ3JleTtcbn1cbi5pbmRpY2VzX19zdGF0dXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmluZGljZXNfX3N0YXR1c1B1bHNlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAjNTc2NzdmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMjA0LCAxNjksIDQ0LCAwLjQpO1xuICBhbmltYXRpb246IHB1bHNlIDJzIGluZmluaXRlO1xufVxuLmluZGljZXNfX3N0YXR1c1RleHQge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogIzU3Njc3Zjtcbn1cbi5pbmRpY2VzX19zdGF0dXMtLWxpdmUgLmluZGljZXNfX3N0YXR1c1B1bHNlIHtcbiAgYmFja2dyb3VuZDogIzMwQzc5QjtcbiAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSg0OSwgMTk5LCAxNTUsIDAuNCk7XG4gIGFuaW1hdGlvbjogcHVsc2VMaXZlIDJzIGluZmluaXRlO1xufVxuLmluZGljZXNfX3N0YXR1cy0tbGl2ZSAuaW5kaWNlc19fc3RhdHVzVGV4dCB7XG4gIGNvbG9yOiAjMzBDNzlCO1xufVxuLmluZGljZXNfX3N0YXR1cy0tY2xvc2UgLmluZGljZXNfX3N0YXR1c1B1bHNlIHtcbiAgYmFja2dyb3VuZDogI2NlY2VjZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgI2NlY2VjZTtcbiAgYW5pbWF0aW9uOiBub25lO1xufVxuLmluZGljZXNfX3N0YXR1cy0tY2xvc2UgLmluZGljZXNfX3N0YXR1c1RleHQge1xuICBjb2xvcjogI2NlY2VjZTtcbn1cbi5pbmRpY2VzX19tZW51TW9iaWxlX193cmFwcGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgdG9wOiA5NHB4O1xuICB6LWluZGV4OiAtMTtcbiAgb3BhY2l0eTogMDtcbiAgbGVmdDogMHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgNTAwbXM7XG59XG4uaW5kaWNlc19fbWVudU1vYmlsZV9fd3JhcHBlciAuZHJvcGRvd24ge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5pbmRpY2VzX19tZW51TW9iaWxlX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG59XG4uaW5kaWNlc19fbWVudU1vYmlsZV9fd3JhcHBlci0tc2hvdyB7XG4gIHotaW5kZXg6IDIwO1xuICBvcGFjaXR5OiAxO1xufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoODcsIDEwMywgMTI3LCAwLjQpO1xuICB9XG4gIDcwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDg3LCAxMDMsIDEyNywgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDg3LCAxMDMsIDEyNywgMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcHVsc2VMaXZlIHtcbiAgMCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSg0OSwgMTk5LCAxNTUsIDAuNCk7XG4gIH1cbiAgNzAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoNDksIDE5OSwgMTU1LCAwKTtcbiAgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoNDksIDE5OSwgMTU1LCAwKTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAuaW5kaWNlc19fcGVyZm9ybWFuY2VfX2RpdmlkZXIge1xuICAgIG1hcmdpbjogMC41ZW0gMDtcbiAgfVxuICAuaW5kaWNlc19fcGVyZm9ybWFuY2VfX3N0YXRUaXRsZSB7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cbiAgLmluZGljZXNfX2tzZVN0YXRzX190YWJsZSB0aCB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgfVxuICAuaW5kaWNlc19fdm9sdW1lID4gZGl2IHtcbiAgICBmbGV4OiAwIDAgMzUlO1xuICB9XG4gIC5pbmRpY2VzX192b2x1bWVfX3RhYmxlIHtcbiAgICBmbGV4OiAwIDAgNjUlICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmluZGljZXNfX21hcmtldF9fdGFibGUgdGgge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gIH1cbiAgLmluZGljZXNfX2hlYWRlci0tdGFicyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAuaW5kaWNlc19faGVhZGVyLS10YWJzIC5pbmRpY2VzX19oZWFkZXJUZXh0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG4gIC5pbmRpY2VzX19oZWFkZXJUYWJzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuaW5kaWNlc19fY2hhcnQgdGV4dC5iYXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAwLjY1ZW07XG4gIH1cbiAgLmluZGljZXNfX2JhclN0YXRzIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0IHtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgbWluLXdpZHRoOiA3MHB4O1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0X190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0LS1uYW1lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pbmRpY2VzX19iYXJTdGF0LS1zeW1ib2wge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuaW5kaWNlc19fYmFyU3RhdC0tbWNhcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZS0tZml4ZWQge1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbiAgLmluZGljZXNfX2NvbnN0aXR1ZW50VGFibGUtLWZpeGVkIHRoZWFkIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9XG4gIC5pbmRpY2VzX190YWIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAuaW5kaWNlc19fY29uc3RpdHVlbnRUYWJsZSB7XG4gICAgd2lkdGg6IDEyNTBweCAhaW1wb3J0YW50O1xuICB9XG4gIC5pbmRpY2VzX192b2x1bWVfX3RhYmxlIC5pbmRpY2VzX19tYXJrZXRfX3RhYmxlIHRkLFxuICAuaW5kaWNlc19fdm9sdW1lX190YWJsZSAuaW5kaWNlc19fbWFya2V0X190YWJsZSB0aCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgLmluZGljZXNfX2R1bW15X193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEhlbHAgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1oZWxwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbiNjcy1oZWxwLXRhYnMgPiAuY3NfX3RhYl9fY29udGVudHMge1xuICBtYXJnaW4tdG9wOiAxODJweDtcbn1cbi5jc19faGVscF9fY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG59XG4uY3NfX2hlbHBfX2NvbnRlbnQgaDIge1xuICBtYXJnaW4tdG9wOiAwcHggIWltcG9ydGFudDtcbn1cbi5jc19faGVscF9fY29udGVudCAudXJkIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBcIlVyZHUgTmFzdGFsaXEgVW5pY29kZVwiO1xuICBmb250LXNpemU6IDEuMmVtO1xufVxuLmNzX19oZWxwX19jb250ZW50IHVsLnVyZCxcbi5jc19faGVscF9fY29udGVudCBvbC51cmQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi5jc19faGVscF9fY29udGVudCAudWkuaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uY3NfX2hlbHBfX2xhbmdCdG4ge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuLmNzX19oZWxwX19sYW5nQnRuIC50ZXh0IHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLmNzX19oZWxwX19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMiAhaW1wb3J0YW50O1xufVxuLmNzX19oZWxwX19pbWFnZVBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNXB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgb3BhY2l0eTogMDtcbn1cbi5jc19faGVscF9faW1hZ2U6aG92ZXIgLmNzX19oZWxwX19pbWFnZVBhbmVsIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jc19faGVscF9fdXBsb2FkSW1hZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY3NfX2hlbHBfX3VwbG9hZEltYWdlIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0b3A6IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgb3BhY2l0eTogMDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEhlbHAgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1wb3J0LWludmVzdC1wYWdlIC5jcy1jaGFydCAubmVnYXRpdmUge1xuICBmaWxsOiAjYzcyMTUyO1xufVxuI2NzLXBvcnQtaW52ZXN0LXBhZ2UgLmNzLWNoYXJ0IC5wb3NpdGl2ZSB7XG4gIGZpbGw6ICMyRkM3OTg7XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAuY3MtdHlwZS1idXR0b25zIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbiNjcy1wb3J0LWludmVzdC1wYWdlIC51aS5ncmlkIHtcbiAgbWFyZ2luOiAtMC41ZW07XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAudWkuZ3JpZCAuY29sdW1uIHtcbiAgcGFkZGluZzogMC41ZW07XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAuY3NfX3RhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbiNjcy1wb3J0LWludmVzdC1wYWdlIC5jc19fdGFibGUgdGJvZHkgdHIgdGQge1xuICB3aWR0aDogODBweDtcbn1cbiNjcy1wb3J0LWludmVzdC1wYWdlIC5pbmRpY2VzX19ub3RlIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4jY3MtcG9ydC1pbnZlc3QtcGFnZSAuaW5kaWNlc19fbm90ZSAuaW5kaWNlc19fbm90ZS0tbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLXBvcnQtaW52ZXN0LXBhZ2UgLmluZGljZXNfX25vdGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjY3MtcG9ydC1pbnZlc3QtcGFnZSAuaW5kaWNlc19fbm90ZSAuaW5kaWNlc19fbm90ZS0tZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAjY3MtcG9ydC1pbnZlc3QtcGFnZSAuaW5kaWNlc19fbm90ZSAuaW5kaWNlc19fbm90ZS0tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuI2NzLXBvcnQtaW52ZXN0LXBhZ2UgLm1vYmlsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gICNjcy1wb3J0LWludmVzdC1wYWdlIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG4gICNjcy1wb3J0LWludmVzdC1wYWdlIC5tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICNjcy1wb3J0LWludmVzdC1wYWdlIC5kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uY3NfX3BvcnRfX3RvcFBhbmVsIHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBjYWxjKDk3JSk7XG4gIHRvcDogMTUwcHg7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxMTtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMCByZ2JhKDM0LCAzNiwgMzgsIDAuNSksIDBweCAwcHggMHB4IDBweCByZ2JhKDM0LCAzNiwgMzgsIDAuNSkgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX19wb3J0X190b3BQYW5lbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5jc19fcG9ydF9fdG9wSGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4uY3NfX3BvcnRfX3RvcEhlYWRlciAudWkuaGVhZGVyIHtcbiAgbWFyZ2luOiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fcG9ydF9fdG9wSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbiAgLmNzX19wb3J0X190b3BIZWFkZXIgaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmNzX19wb3J0X190b3BIZWFkZXJCdXR0b25zID4gZGl2Om5vdChmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tbGVmdDogMWVtICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5jc19fcG9ydF9fdG9wSGVhZGVyQnV0dG9ucyA+IGRpdjpub3QoZmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX19wb3J0X190b3BIZWFkZXJCdXR0b25zIC51aS5kcm9wZG93biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMWVtICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jc19fcG9ydF9fc2VjdG9yQ2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY3NfX3BvcnRfX3NlY3RvckNoYXJ0IC5yZWQge1xuICBjb2xvcjogI2M3MjE1Mjtcbn1cbi5jc19fcG9ydF9fc2VjdG9yQ2hhcnQgLmdyZWVuIHtcbiAgY29sb3I6ICMyRkM3OTg7XG59XG4uY3NfX3BvcnRfX3NlY3RvckNoYXJ0IC50b29sdGlwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmNzX19wb3J0X19zZWN0b3JDaGFydCAuYXhpcyBwYXRoLFxuLmNzX19wb3J0X19zZWN0b3JDaGFydCAuYXhpcyBsaW5lIHtcbiAgc2hhcGUtcmVuZGVyaW5nOiBjcmlzcEVkZ2VzO1xufVxuLmNzX19wb3J0X19zZWN0b3JDaGFydCBkaXYudG9vbHRpcCB7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZzogMC41ZW07XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGxlZnQ6IDBweDtcbiAgdG9wOiAwcHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggMXB4IDAgcmdiYSgzNCwgMzYsIDM4LCAwLjI1KTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLmNzX19wb3J0X19jaGFydCAuY3MtY2hhcnQge1xuICAgIHdpZHRoOiAxNTAlO1xuICB9XG4gIC5jc19fcG9ydF9fc2VjdG9yQ2hhcnQge1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB9XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDbGllbnQgUG9ydGZvbGlvcyBQYWdlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NzLWNsaWVudC1wb3J0Zm9saW8ge1xuICBtYXJnaW4tdG9wOiAxMjdweCAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fbWVudSB7XG4gIGhlaWdodDogNTFweDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLmNzLWNscG9ydF9fbWVudSAudWkubWVudSB7XG4gIG1hcmdpbi10b3A6IDEyN3B4O1xuICB6LWluZGV4OiAxO1xufVxuLmNzLWNscG9ydF9fbWVudSAudWkubWVudSAudWkuZHJvcGRvd24gLnRleHQgaS5jaGVja21hcmsge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLWNscG9ydF9fbWVudSAudWkubWVudSAudWkuZHJvcGRvd24gLml0ZW0gaS5jaGVja21hcmsge1xuICBjb2xvcjogIzI0ZDIyNDtcbiAgb3BhY2l0eTogMDtcbn1cbi5jcy1jbHBvcnRfX21lbnUgLnVpLm1lbnUgLnVpLmRyb3Bkb3duIC5pdGVtLnNlbGVjdGVkIGkuY2hlY2ttYXJrIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5jcy1jbHBvcnRfX2NyZWF0ZSAudWkuYXR0YWNoZWQuc2VnbWVudCxcbi5jcy1jbHBvcnRfX2FkZC10cmFkZSAudWkuYXR0YWNoZWQuc2VnbWVudCxcbi5jcy1jbHBvcnRfX2FkZC12YWx1YXRpb25zIC51aS5hdHRhY2hlZC5zZWdtZW50IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7XG59XG4uY3MtY2xwb3J0X19jcmVhdGUgZm9ybS51aS5hdHRhY2hlZC5zZWdtZW50LFxuLmNzLWNscG9ydF9fYWRkLXRyYWRlIGZvcm0udWkuYXR0YWNoZWQuc2VnbWVudCxcbi5jcy1jbHBvcnRfX2FkZC12YWx1YXRpb25zIGZvcm0udWkuYXR0YWNoZWQuc2VnbWVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyQzZBOUU7XG59XG4uY3MtY2xwb3J0X19jcmVhdGUtaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jcy1jbHBvcnRfX2NyZWF0ZS1oZWFkZXItLXNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jcy1jbHBvcnRfX29wZW4tdmlldy12YWx1YXRpb25zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJDNkE5RSAhaW1wb3J0YW50O1xuICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX29wZW4tYWRkLXRyYWRlLFxuLmNzLWNscG9ydF9fb3Blbi1hZGQtdmFsdWF0aW9ucyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNGQyMjQgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG4uY3MtY2xwb3J0X19vcGVuLWNyZWF0ZS1wb3J0Zm9saW8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkY1NzIyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fc2VsZWN0LWNvbXBhbnkgLm1lbnUgLml0ZW0gc3Bhbixcbi5jcy1jbHBvcnRfX3NlbGVjdC1jb21wYW55IC50ZXh0IHNwYW4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uY3MtY2xwb3J0X19hZGQtdHJhZGUgaW5wdXRbcmVhZG9ubHldIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDAsIDI0OCwgMjU1LCAwLjk0KSAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fc3VtbWFyeSAuY3MtY2xwb3J0X19zdW1tYXJ5X19wb3J0VmFsdWUgLnZhbHVlIHtcbiAgZm9udC1zaXplOiAzZW0gIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX3N1bW1hcnkgLnN0YXRpc3RpYyAudmFsdWUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fc3VtbWFyeSAuc2l4LndpZGUuY29sdW1uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNzLWNscG9ydF9fc3VtbWFyeSAuc2l4LndpZGUuY29sdW1uIC5zdGF0aXN0aWMgLnZhbHVlIHtcbiAgZm9udC1zaXplOiAyLjI1ZW0gIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX3N1bW1hcnkgLnNpeC53aWRlLmNvbHVtbjo6YmVmb3JlIHtcbiAgY29udGVudDogJyAnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xZW07XG4gIHRvcDogMHB4O1xuICBoZWlnaHQ6IDkwJTtcbiAgd2lkdGg6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZDFkMTtcbn1cbi5jcy1jbHBvcnRfX3RyYWRlLXRhYmxlIHtcbiAgbWFyZ2luLXRvcDogMS41ZW07XG59XG4uY3MtY2xwb3J0X190cmFkZS10YWJsZSB0aCBpLnNvcnQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cbi5jcy1jbHBvcnRfX3RyYWRlLXRhYmxlIHRoOm5vdCgubm8tc29ydCk6YWZ0ZXIge1xuICB3aWR0aDogMTRweCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgY29udGVudDogXCJcXGYwZGNcIiAhaW1wb3J0YW50O1xufVxuLmNzLWNscG9ydF9fdHJhZGUtdGFibGUgdGguYXNjZW5kaW5nOmFmdGVyIHtcbiAgY29udGVudDogJ1xcZjBkOCcgIWltcG9ydGFudDtcbn1cbi5jcy1jbHBvcnRfX3RyYWRlLXRhYmxlIHRoLmRlc2NlbmRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnXFxmMGQ3JyAhaW1wb3J0YW50O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLypcblxu4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilZcgICDilojilojilojilZfilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZdcbuKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICAg4paI4paI4pWRICAg4paI4paI4paI4paI4paI4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilZTilojilojilojilojilZTilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICAg4paI4paI4pWRICAg4paI4paI4pWU4pWQ4pWQ4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZHilZrilojilojilZTilZ3ilojilojilZHilojilojilZTilZDilZDilZ0gIOKVmuKVkOKVkOKVkOKVkOKWiOKWiOKVkVxuICAg4paI4paI4pWRICAg4paI4paI4pWRICDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilZEg4pWa4pWQ4pWdIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkVxuICAg4pWa4pWQ4pWdICAg4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZ0gICAgIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVnVxuXG4qL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgVGhlbWUgU2VsZWN0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogVG8gb3ZlcnJpZGUgYSB0aGVtZSBmb3IgYW4gaW5kaXZpZHVhbCBlbGVtZW50XG4gICBzcGVjaWZ5IHRoZW1lIG5hbWUgYmVsb3dcbiovXG4vKiBHbG9iYWwgKi9cbi8qIEVsZW1lbnRzICovXG4vKiBDb2xsZWN0aW9ucyAqL1xuLyogTW9kdWxlcyAqL1xuLyogVmlld3MgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBGb2xkZXJzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogUGF0aCB0byB0aGVtZSBwYWNrYWdlcyAqL1xuLyogUGF0aCB0byBzaXRlIG92ZXJyaWRlIGZvbGRlciAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIEltcG9ydCBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIEltcG9ydCBEaXJlY3RpdmVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBUaGVtZVxuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBTaXRlIFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIENvbXBvbmVudCdzIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSB0aGVtZSBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuIENvbXBvbmVudCBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0ICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBNaXgtaW5zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBPdmVycmlkZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRW5kIENvbmZpZyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgUG9ydGZvbGlvIEJ1aWxkZXIgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1wb3J0Zm9saW8tYnVpbGRlciB7XG4gIG1hcmdpbi10b3A6IDEyOHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtO1xufVxuLnBiX19ib2R5IHtcbiAgcGFkZGluZzogM3JlbSA0LjI4NnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGQztcbiAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG59XG4ucGJfX2JvZHktLWJnLWJsdWUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgyLjMxZGVnLCAjMDE0MDg5IDEuNTIlLCAjMDkyNDczIDk0LjU2JSk7XG59XG4ucGJfX2dyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnBiX19ncmlkLS1zcGMtYnR3IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnBiX19ncmlkLS1mbHgtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5wYl9fZ3JpZC0tYWxnbi1jbnRyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wYl9fZ3JpZC0tbnJtbC1zcGMge1xuICBtYXJnaW46IC0wLjVyZW07XG59XG4ucGJfX2dyaWQtLW1lZC1zcGMge1xuICBtYXJnaW46IC0wLjcxNDI4NTcxcmVtO1xufVxuLnBiX19ncmlkLS12ZXJ0aWNhbCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4ucGJfX2dyaWQtLWVxLWJveCA+IGRpdiB7XG4gIGZsZXg6IDE7XG59XG4ucGJfX2dyaWQtLW5ybWwtc3BjID4gZGl2IHtcbiAgbWFyZ2luOiAwLjVyZW07XG59XG4ucGJfX2dyaWQtLW1lZC1zcGMgPiBkaXYge1xuICBtYXJnaW46IDAuNzE0Mjg1NzE0Mjg1NzE0M3JlbTtcbn1cbi5wYl9fZ3JpZC0tbW9kYWwge1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMDtcbn1cbi5wYl9fZ3JpZCA+IC5wYl9fZ3JpZF9fY29sdW1uLS1mbGV4LTIge1xuICBmbGV4OiAyO1xufVxuLnBiX19oZWFkZXIge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbn1cbi5wYl9faGVhZGVyLS1sZyB7XG4gIGZvbnQtc2l6ZTogMS45M3JlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNThyZW07XG59XG4ucGJfX2J0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMUYxRjM7XG4gIGNvbG9yOiAjN0M3QzgwO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHBhZGRpbmc6IGNhbGMoMS4xNHJlbSAvIDIpIDEuMTRyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm94LXNoYWRvdzogMHB4IDAuMjlyZW0gMC4yOXJlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogODZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnBiX19idG4tLW1pbi13ZHRoLTU2IHtcbiAgbWluLXdpZHRoOiA1NnB4O1xufVxuLnBiX19idG46aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuLnBiX19idG4gPiBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjg2cmVtO1xufVxuLnBiX19idG4tLWZudC1tZWQgPiBzcGFuIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLnBiX19idG4tLWZudC1zbWxsID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC42NDI4NTcxNDI4NTcxNDI5cmVtO1xufVxuLnBiX19idG4tLWJnLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNzYwMTQ7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5wYl9fYnRuLS1iZy13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLnBiX19idG4tLWJnLXJlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFNzE3MTc7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5wYl9fYnRuLS1iZy1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwN0E1OTU7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5wYl9fYnRuLS1iZy1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExNEI5QjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLnBiX19idG4tLXR4dC0tZHJrQmx1ZSB7XG4gIGNvbG9yOiAjMTE0QjlCO1xufVxuLnBiX19idG4tLXR4dC0tb3JhbmdlIHtcbiAgY29sb3I6ICNGNzYwMTQ7XG59XG4ucGJfX2J0bi0tbm8tc2hkdyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4ucGJfX2J0bi0tbm8tYnJkci1yYWQge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4ucGJfX2J0bi0tYnJkci1kcmstYmx1ZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxMTRCOUI7XG59XG4ucGJfX2J0bi0tYnJkci1vcmFuZ2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCAjRjc2MDE0O1xufVxuLnBiX19idG4tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC42NTtcbn1cbi5wYl9fYnRuLS1sb2FkaW5nIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi5wYl9fYnRuLS1sb2FkaW5nOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTQ7XG59XG4ucGJfX2J0bi0tbG9hZGluZzo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IGNhbGMoNTAlIC0gKDEuNXJlbSAvIDIpKTtcbiAgbGVmdDogY2FsYyg1MCUgLSAoMS41cmVtIC8gMikpO1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNlZ21lbnQtc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogd2hpdGUgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogLjJyZW07XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMC4wNzE0Mjg1N3JlbSB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4wNzE0Mjg1N3JlbSB0cmFuc3BhcmVudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgei1pbmRleDogMTAxO1xufVxuLnBiX19idG4tLXR4dC0tZHJrQmx1ZS5wYl9fYnRuLS1iZy13aGl0ZS5wYl9fYnRuLS1icmRyLWRyay1ibHVlLnBiX19idG4tLWxvYWRpbmc6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6ICMxMTRCOUI7XG59XG4ucGJfX2J0bnMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnBiX19idG5zLS1zcGMtYnR3IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnBiX19idG5zLS1mbHgtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5wYl9fYnRucyA+IC5wYl9fYnRuOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IDAuODU3MTQyODU3MTQyODU3MXJlbTtcbn1cbi5wYl9fYnRucy0tZ3JvdXAgPiAucGJfX2J0biB7XG4gIG1hcmdpbjogMHB4ICFpbXBvcnRhbnQ7XG59XG4ucGJfX2J0bnMtLWdyb3VwID4gLnBiX19idG46Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xufVxuLnBiX19idG5zLS1ncm91cCA+IC5wYl9fYnRuOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMHB4O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG59XG4ucGJfX2J0bnMtLWdyb3VwLWZ1bGwtd2R0aCA+IC5wYl9fYnRuIHtcbiAgZmxleDogMTtcbn1cbi5wYl9fc2VjdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGJfX3NlY3Rpb24tLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxudGFibGUucGJfX3RhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMHB4IDBweDtcbn1cbnRhYmxlLnBiX190YWJsZSB0aGVhZCB0ZCxcbnRhYmxlLnBiX190YWJsZSB0aGVhZCB0aCB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VCRUJFQjtcbiAgcGFkZGluZzogMS4xNDI4NTcxNHJlbTtcbn1cbnRhYmxlLnBiX190YWJsZSB0Ym9keSB0ZCxcbnRhYmxlLnBiX190YWJsZSB0Ym9keSB0aCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0Mjg1NzE0Mjg2cmVtO1xuICBsaW5lLWhlaWdodDogMS40Mjg1NzE0Mjg1NzE0Mjg2cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMS4xNDI4NTcxNHJlbTtcbn1cbnRhYmxlLnBiX190YWJsZSB0Ym9keSB0cjpub3QoOmxhc3QtY2hpbGQpIHRkLFxudGFibGUucGJfX3RhYmxlIHRib2R5IHRyOm5vdCg6bGFzdC1jaGlsZCkgdGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxudGFibGUucGJfX3RhYmxlIHRoZWFkIHRyIHRoOm5vdCg6Zmlyc3QtY2hpbGQpLFxudGFibGUucGJfX3RhYmxlIHRib2R5IHRyIHRoOm5vdCg6Zmlyc3QtY2hpbGQpLFxudGFibGUucGJfX3RhYmxlIHRoZWFkIHRyIHRkOm5vdCg6Zmlyc3QtY2hpbGQpLFxudGFibGUucGJfX3RhYmxlIHRib2R5IHRyIHRkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG50YWJsZS5wYl9fdGFibGUgdGhlYWQgdHIgdGg6Zmlyc3QtY2hpbGQsXG50YWJsZS5wYl9fdGFibGUgdGJvZHkgdHIgdGg6Zmlyc3QtY2hpbGQsXG50YWJsZS5wYl9fdGFibGUgdGhlYWQgdHIgdGQ6Zmlyc3QtY2hpbGQsXG50YWJsZS5wYl9fdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxudGFibGUucGJfX3RhYmxlIC5wYl9fdGFibGVfX25vRGF0YSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogOC45Mjg1NzE0Mjg1NzE0MjlyZW07XG59XG4ucGJfX3NlZ21lbnQge1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbn1cbi5wYl9fc2VnbWVudC0tZnVsbC13ZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cbi5wYl9fc2VnbWVudF9faGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjE0Mjg1NzE0Mjg1NzE0MjhyZW0gMXJlbTtcbn1cbi5wYl9fc2VnbWVudF9faGVhZGVyID4gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMS42NDI4NTcxNDI4NTcxNDI4cmVtO1xuICBsaW5lLWhlaWdodDogMi4yMTQyODU3MTQyODU3MTQ0cmVtO1xufVxuLnBiX19zZWdtZW50X19oZWFkZXItLXNwYy1idHcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4ucGJfX3NlZ21lbnRfX2hlYWRlci0tc3BjLWJ0dyA+IHNwYW46bGFzdC1jaGlsZCB7XG4gIGZvbnQtc2l6ZTogMC45Mjg1NzE0Mjg1NzE0Mjg2cmVtO1xufVxuLnBiX19zZWdtZW50X19oZWFkZXJNZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMS4xNDI4NTcxNDI4NTcxNDI4cmVtIDFyZW07XG59XG4ucGJfX3NlZ21lbnRfX2hlYWRlck1lbnUgPiAucGJfX3NlZ21lbnRfX2hlYWRlciB7XG4gIGZsZXg6IGF1dG87XG4gIHBhZGRpbmc6IDBweDtcbn1cbi5wYl9fc2VnbWVudF9fbWVudV9fdG9nZ2xlIHtcbiAgd2lkdGg6IDIuNDk1NTcxNDI4NTcxNDI4NnJlbTtcbiAgaGVpZ2h0OiAyLjQ5NTU3MTQyODU3MTQyODZyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucGJfX3NlZ21lbnRfX21lbnVfX3RvZ2dsZSA+IGkge1xuICBtYXJnaW46IDBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4ucGJfX3NlZ21lbnRfX2NvbnRlbnQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjEpO1xufVxuLnBiX19zZWdtZW50X19jb250ZW50LS1uby1icmRyIHtcbiAgYm9yZGVyOiAwcHggIWltcG9ydGFudDtcbn1cbi5wYl9fc2VnbWVudF9fY29udGVudCxcbi5wYl9fc2VnbWVudF9fYWN0aW9ucyB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG4ucGJfX3NlZ21lbnRfX2FjdGlvbnMgLnBiX19idG4ge1xuICBtaW4td2lkdGg6IDEyMHB4O1xufVxuLnBiX19jcmVhdGVfX3N0ZXBzUHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1heC13aWR0aDogMTE4MHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMS4xNDI4NTcxNDI4NTcxNDI4cmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuLnBiX19jcmVhdGVfX3Byb2dyZXNzUmFpbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiBjYWxjKDUwJSAtICgwLjI4NTcxNDI4NTcxNDI4NTdyZW0gLyAyKSk7XG4gIGhlaWdodDogMC4yODU3MTQyODU3MTQyODU3cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkI4QUM3O1xufVxuLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50X19kb3Qge1xuICB3aWR0aDogMC44NTcxNDI4NTcxNDI4NTcxcmVtO1xuICBoZWlnaHQ6IDAuODU3MTQyODU3MTQyODU3MXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2QjhBQzc7XG4gIGJvcmRlcjogMC4xNDI4NTcxNHJlbSBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xufVxuLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnQtLWFjdGl2ZSA+IC5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50X19kb3Qge1xuICB3aWR0aDogMS4xNDI4NTcxNDI4NTcxNDI4cmVtO1xuICBoZWlnaHQ6IDEuMTQyODU3MTQyODU3MTQyOHJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogI0Y3NjAxNDtcbn1cbi5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50LS1jb21wbGV0ZWQgPiAucGJfX2NyZWF0ZV9fcHJvZ3Jlc3NQb2ludF9fZG90IHtcbiAgd2lkdGg6IDEuMTQyODU3MTQyODU3MTQyOHJlbTtcbiAgaGVpZ2h0OiAxLjE0Mjg1NzE0Mjg1NzE0MjhyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNGNzYwMTQ7XG4gIGJvcmRlci1jb2xvcjogI0Y3NjAxNDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ucGJfX2NyZWF0ZV9fcHJvZ3Jlc3NQb2ludC0tY29tcGxldGVkID4gLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnRfX2RvdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwMGNcIjtcbiAgZm9udC1mYW1pbHk6ICdJY29ucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cbi5wYl9fY3JlYXRlX19wcm9ncmVzc1BvaW50X190ZXh0IHtcbiAgd2lkdGg6IDguNTcxNDI4NTcxNDI4NTcxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogY2FsYygoLTguNTcxNDI4NTcxNDI4NTcxcmVtIC8gMikgKyAoMC44NTcxNDI4NTcxNDI4NTcxcmVtIC8gMikpO1xuICBib3R0b206IC0xLjVyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg1NzE0Mjg1NzFyZW07XG4gIG9wYWNpdHk6IDAuNjU7XG59XG4ucGJfX2NyZWF0ZV9fcHJvZ3Jlc3NQb2ludC0tYWN0aXZlID4gLnBiX19jcmVhdGVfX3Byb2dyZXNzUG9pbnRfX3RleHQge1xuICBvcGFjaXR5OiAxO1xufVxuLnBiX19jcmVhdGVfX3N0ZXAge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBiX19jcmVhdGVfX3N0ZXAtLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnBiX19waWVfX2NoYXJ0IHtcbiAgbWFyZ2luLXRvcDogMi44NTcxNDI4NTcxNDI4NTdyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgd2lkdGg6IDEzcmVtO1xuICBtaW4taGVpZ2h0OiAxM3JlbTtcbn1cbi5wYl9fcGllX19jaGFydF9fbGFiZWxzIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi5wYl9fcGllX19jaGFydF9fbGFiZWwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NTcxNDI4NTcxcmVtO1xuICBsaW5lLWhlaWdodDogMS43MTQyODU3MTQyODU3MTQycmVtO1xufVxuLnBiX19waWVfX2NoYXJ0X19sYWJlbCBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMC43MTQyODU3MXJlbTtcbiAgaGVpZ2h0OiAwLjcxNDI4NTcxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cbi5wYl9faXRlbXMgPiAucGJfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDEuNDI4NTcxNDI4NTcxNDI4NnJlbTtcbn1cbi5wYl9faXRlbV9fdGl0bGUge1xuICBmb250LXNpemU6IDAuODU3MTQyODU3MTQyODU3MXJlbTtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQyODU3MTQyODZyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNTcxNDI4NTcxNDI4NTcxNHJlbTtcbn1cbi5wYl9faXRlbV9fc3ViVGV4dCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5wYl9fc3ltYm9sX19sYWJlbCB7XG4gIHBhZGRpbmc6IDAuMjg1NzE0MjlyZW0gMC43MTQyODU3MXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAzMzk4NDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wYl9fc3ltYm9sX19sYWJlbCA+IHNwYW4ge1xuICBmb250LXNpemU6IDAuODU3MTQyODZyZW07XG4gIGxpbmUtaGVpZ2h0OiAwLjg1NzE0Mjg2cmVtO1xufVxuLnBiX19jcml0ZXJpYXMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnBiX19jcml0ZXJpYXMgPiAucGJfX2NyaXRlcmlhOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjg1NzE0MjlyZW07XG59XG4ucGJfX2NyaXRlcmlhIHtcbiAgcGFkZGluZzogMC4yODU3MTQyOXJlbSAwLjcxNDI4NTcxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjIxNDI4NTcxcmVtO1xufVxuLnBiX19jcml0ZXJpYS0taGlnaF95aWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywgMTY1LCAxNDksIDAuMik7XG4gIGNvbG9yOiAjMDdBNTk1O1xufVxuLnBiX19jcml0ZXJpYS0taGlnaF9ncm93dGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDgwLCAxMTUsIDE4NCwgMC4yKTtcbiAgY29sb3I6ICM1MDczQjg7XG59XG4ucGJfX2NyaXRlcmlhLS12b2xhdGlsaXR5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzEsIDc2LCA2MCwgMC4yKTtcbiAgY29sb3I6ICNFNzRDM0M7XG59XG4ucGJfX3NsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5wYl9fc2xpZGVyIC51aS13aWRnZXQudWktd2lkZ2V0LWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0NDQ0NDO1xuICBib3JkZXItY29sb3I6ICNDQ0NDQ0M7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjg1NzE0MjlyZW07XG4gIGhlaWdodDogMC4yODU3MTQyOXJlbTtcbn1cbi5wYl9fc2xpZGVyIC51aS13aWRnZXQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0Y3NjAxNDtcbn1cbi5wYl9fc2xpZGVyIC51aS1zdGF0ZS1kZWZhdWx0LFxuLnBiX19zbGlkZXIgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LFxuLnBiX19zbGlkZXIgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQsXG4ucGJfX3NsaWRlciAudWktYnV0dG9uLFxuLnBiX19zbGlkZXIgaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmhvdmVyLFxuLnBiX19zbGlkZXIgaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmFjdGl2ZSB7XG4gIGJvcmRlcjogMC4xNDI4NTcxNHJlbSBzb2xpZCAjRjc2MDE0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdXRsaW5lOiAwcHg7XG4gIHdpZHRoOiAxLjE0Mjg1NzE0cmVtO1xuICBoZWlnaHQ6IDEuMTQyODU3MTRyZW07XG4gIHRvcDogLTAuNXJlbTtcbn1cbi5wYl9fc2xpZGVyIC5wYl9fc2VnbWVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDI0LjU3MTQyODU3MTQyODU3M3JlbTtcbiAgei1pbmRleDogMTtcbn1cbi5wYl9fc2xpZGVyX19yYW5nZUV4dGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xufVxuLnBiX19ib3gtLW1nLWJ0LWxnIHtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbn1cbi5wYl9fYm94LS1tZy1idC1tZWQge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuLnBiX19ib3gtLW1nLWJ0LW5ybWwge1xuICBtYXJnaW4tYm90dG9tOiAxLjg1NzE0Mjg1NzE0Mjg1NzJyZW07XG59XG4ucGJfX2JveC0tbWctYnQtc21sbCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNDI4NTcxNDNyZW07XG59XG4ucGJfX2JveC0tbWctYnQteHMtc21sbCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNzE0Mjg1NzFyZW07XG59XG4ucGJfX2JveC0tbWctdHAtbnJtbCB7XG4gIG1hcmdpbi10b3A6IDEuODU3MTQyODU3MTQyODU3MnJlbTtcbn1cbi5wYl9fYm94LS1tZy10cC1zbWxsIHtcbiAgbWFyZ2luLXRvcDogMS40Mjg1NzE0M3JlbTtcbn1cbi5wYl9fYm94LS1uby1tZy1idCB7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLnBiX19ib3gtLW5vLXBkIHtcbiAgcGFkZGluZzogMHB4ICFpbXBvcnRhbnQ7XG59XG4ucGJfX2JveC0tc2hkdyB7XG4gIGJveC1zaGFkb3c6IDdweCAxMHB4IDIwcHggcmdiYSg0NiwgNjEsIDczLCAwLjE1KTtcbn1cbi5wYl9fYm94LS1oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wYl9fYm94LS1sb2FkaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnBiX19ib3gtLWxvYWRpbmc6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxNDtcbn1cbi5wYl9fYm94LS1sb2FkaW5nOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNXJlbSAwIDAgLTEuNXJlbTtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHNlZ21lbnQtc3BpbiAwLjZzIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAuMnJlbTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAwLjA3MTQyODU3cmVtIHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjA3MTQyODU3cmVtIHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG4ucGJfX3RleHQtLWNsci13aHQge1xuICBjb2xvcjogd2hpdGU7XG59XG4ucGJfX3RleHQtLWNsci1zbC13aHQge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg3KTtcbn1cbi5wYl9fdGV4dC0tdXBjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5wYl9fdGV4dC0td3JkLXNwYyB7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEwNzE0Mjg1NzE0Mjg1NzE0cmVtO1xufVxuLnBiX190ZXh0LS1sZWZ0LWFsZ24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG59XG4ucGJfX3RleHQtLXJnaHQtYWxnbiB7XG4gIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XG59XG4ucGJfX3RleHQtLWNudHItYWxnbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xufVxuLnBiX190ZXh0LS1jb2xvci1ncmV5IHtcbiAgY29sb3I6ICM3QzdDODA7XG59XG4ucGJfX3RleHQtLWNvbG9yLXJlZCB7XG4gIGNvbG9yOiAjRTcxNzE3O1xufVxuLnBiX190ZW1wLS1zdG9ja3MtZmlsdGVycyB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xufVxuLnBiX190ZW1wLS1zdG9ja3MtZmlsdGVycy5maWVsZHMgPiAuZmllbGQge1xuICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG4ucGJfX2V2ZW50LS12YWx1ZS1hbGxvY2F0ZSB7XG4gIHdpZHRoOiAxNTBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFBvcnRmb2xpbyBCdWlsZGVyIFBhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jY3MtdmlkZW8tcmVzZWFyY2gge1xuICBtYXJnaW4tdG9wOiAxMjhweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgI2NzLXZpZGVvLXJlc2VhcmNoIHtcbiAgICBtYXJnaW4tdG9wOiA1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52cl9fYm9keSB7XG4gIHBhZGRpbmc6IDIuMTQzcmVtIDEuNDI4NTcxNDNyZW07XG59XG4udnJfX2JvZHkgLnVpLmhlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwLjJyZW0gMHB4IDAuNXJlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX19ib2R5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC52cl9fYm9keSAudnJfX2J0biB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi52cl9fYm9keS0tbG9hZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTI5cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnZyX19ib2R5LS1sb2FkaW5nOjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDAlO1xuICBsZWZ0OiAwJTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgei1pbmRleDogMTAwO1xufVxuLnZyX19ib2R5LS1sb2FkaW5nOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbjogLTEuNWVtIDBlbSAwZW0gLTEuNWVtO1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDNlbTtcbiAgYW5pbWF0aW9uOiBzZWdtZW50LXNwaW4gMC42cyBsaW5lYXI7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MDByZW07XG4gIGJvcmRlci1jb2xvcjogIzc2NzY3NiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAwLjJlbTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMXB4IHRyYW5zcGFyZW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB6LWluZGV4OiAxMDE7XG59XG4udnJfX2J0biB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY0Q0UwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNzE0Mjg1NzFyZW0gMS40Mjg1NzE0M3JlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgIWltcG9ydGFudDtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cbi52cl9fYnRuLS1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjE0RjYzICFpbXBvcnRhbnQ7XG59XG4udnJfX2J0bjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi52cl9fdmlkZW9JdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbjogY2FsYygtMC40MjlyZW0pO1xufVxuLnZyX192aWRlb0l0ZW1zLS12ZXIge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtcy0tdmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAudnJfX3ZpZGVvSXRlbXMtLXZlciA+IC52cl9fdmlkZW9JdGVtIHtcbiAgICBtYXJnaW46IDFyZW0gLjM3NXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbXMtLWhvcnoge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnZyX192aWRlb0l0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBib3JkZXItcmFkaXVzOiAwLjM1N3JlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi52cl9fdmlkZW9JdGVtcy0tbG9hZGluZyB7XG4gIGhlaWdodDogMzAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tbG9hZGluZzo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgdG9wOiAwJTtcbiAgbGVmdDogMCU7XG4gIGJhY2tncm91bmQ6ICNFOUVBRUQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjE0Mjg1NzFyZW07XG4gIHotaW5kZXg6IDEwMDtcbn1cbi52cl9fdmlkZW9JdGVtcy0tbG9hZGluZzo6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW46IC0xLjVlbSAwZW0gMGVtIC0xLjVlbTtcbiAgd2lkdGg6IDNlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIGFuaW1hdGlvbjogc2VnbWVudC1zcGluIDAuNnMgbGluZWFyO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAwcmVtO1xuICBib3JkZXItY29sb3I6ICM3Njc2NzYgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMC4yZW07XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDFweCB0cmFuc3BhcmVudDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgei1pbmRleDogMTAxO1xufVxuLnZyX192aWRlb0l0ZW1zID4gLnZyX192aWRlb0l0ZW0ge1xuICBmbGV4OiAwIDAgY2FsYygxNS45MiUpO1xuICBtYXJnaW46IC4zNzVyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTQ1MHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtcyA+IC52cl9fdmlkZW9JdGVtIHtcbiAgICBmbGV4OiAwIDAgY2FsYygxOC44NzUlKTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjUwcHgpIHtcbiAgLnZyX192aWRlb0l0ZW1zID4gLnZyX192aWRlb0l0ZW0ge1xuICAgIGZsZXg6IDAgMCBjYWxjKDIzLjg3NSUpO1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbXMgPiAudnJfX3ZpZGVvSXRlbTpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCA2cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tdmVyID4gLnZyX192aWRlb0l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi52cl9fdmlkZW9JdGVtX190aHVtYiB7XG4gIGZsZXg6IDAgMCAzMC41NjI1cmVtO1xuICBoZWlnaHQ6IDE3cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwQTI1NDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtX190aHVtYiB7XG4gICAgaGVpZ2h0OiAxMC41cmVtO1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbV9fdGh1bWIgPiBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tdmVyID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX3RodW1iIHtcbiAgaGVpZ2h0OiAxMS4yNXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtcy0taG9yeiA+IC52cl9fdmlkZW9JdGVtIC52cl9fdmlkZW9JdGVtX190aHVtYiB7XG4gIGhlaWdodDogNi44MTI1cmVtO1xuICBmbGV4OiAwIDAgMTIuMTI1cmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fdGh1bWIge1xuICAgIGhlaWdodDogMTAuNXJlbTtcbiAgfVxufVxuLnZyX192aWRlb0l0ZW1fX3RpbWUge1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgZm9udC1zaXplOiAwLjg1NzE0Mjg2cmVtO1xuICBsaW5lLWhlaWdodDogMC44NTcxNDI4NnJlbTtcbiAgYmFja2dyb3VuZDogIzA0MTQyNDtcbiAgYm9yZGVyLXJhZGl1czogMC4yMTQyODU3MXJlbTtcbiAgcGFkZGluZzogMC4zNTdyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwLjQyOXJlbTtcbiAgcmlnaHQ6IDAuNDI5cmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX2RldGFpbHMge1xuICBwYWRkaW5nOiAxLjQyODU3MTQzcmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbV9fZGV0YWlscyB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgfVxufVxuLnZyX192aWRlb0l0ZW1zLS12ZXIgPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fZGV0YWlscyxcbi52cl9fdmlkZW9JdGVtcy0taG9yeiA+IC52cl9fdmlkZW9JdGVtIC52cl9fdmlkZW9JdGVtX19kZXRhaWxzIHtcbiAgcGFkZGluZzogMXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtX190aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS43MTRyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICBjb2xvcjogIzBBMjU0MDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX192aWRlb0l0ZW1fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gIH1cbn1cbi52cl9fdmlkZW9JdGVtX190aXRsZTpob3ZlciB7XG4gIGNvbG9yOiAjMjY0Q0UwO1xufVxuLnZyX192aWRlb0l0ZW1zLS12ZXIgPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fdGl0bGUsXG4udnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fdGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE0Mjg1NzE0cmVtO1xufVxuLnZyX192aWRlb0l0ZW1zLS1ob3J6ID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX3RpdGxlIHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fbGFiZWxzIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG4udnJfX3ZpZGVvSXRlbXMtLWhvcnogPiAudnJfX3ZpZGVvSXRlbSAudnJfX3ZpZGVvSXRlbV9fbGFiZWxzIC51aS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC42NXJlbSAhaW1wb3J0YW50O1xufVxuLnZyX192aWRlb0l0ZW1zLS1ob3J6ID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX21ldGEge1xuICBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtX19sYWJlbHMge1xuICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fdmlkZW9JdGVtX19sYWJlbHMge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG59XG4udnJfX3ZpZGVvSXRlbV9fbGFiZWwudWkubGFiZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY0Q0UwICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMC44NTcxNDI4NnJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjI4NTcxNDI5cmVtIDAuMzU3cmVtICFpbXBvcnRhbnQ7XG59XG4udnJfX3ZpZGVvSXRlbV9fbWV0YSB7XG4gIGZvbnQtc2l6ZTogMC44NTcxNDI4NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDAuODU3MTQyODZyZW07XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudnJfX3ZpZGVvSXRlbV9fbWV0YSB7XG4gICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgfVxufVxuLnZyX192aWRlb0l0ZW1fX21ldGEgPiBzcGFuOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtcy0tdmVyID4gLnZyX192aWRlb0l0ZW0gLnZyX192aWRlb0l0ZW1fX21ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xufVxuLnZyX192aWRlb0l0ZW1fX2Rlc2Mge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQyODU3MTQzcmVtO1xuICBjb2xvcjogIzUwNUM3Qztcbn1cbi52cl9fdmlkZW9JdGVtX19kZXNjIC52cl9fdmlkZW9JdGVtX19kZXNjVGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgbWluLWhlaWdodDogNC4ycmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX2Rlc2MgLnZyX192aWRlb0l0ZW1fX2Rlc2NUZXh0LS1oaWRkZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBoZWlnaHQ6IDQuMnJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG4udnJfX3ZpZGVvSXRlbV9fZGVzYyA+IGEge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICMyNjRDRTA7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi52cl9fdmlkZW9JdGVtX19waW4ge1xuICBmb250LXNpemU6IDEuNDI4NTcxNDNyZW0gIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEuNTcxcmVtO1xuICByaWdodDogMS43ODZyZW07XG4gIGNvbG9yOiAjNzY4MDlCO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udnJfX3ZpZGVvSXRlbV9fcGxheWVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBBMjU0MDtcbiAgYm9yZGVyLXJhZGl1czogMC4zNTdyZW07XG4gIGhlaWdodDogY2FsYyg0MS4wNjc3NjE4MXZ3KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX192aWRlb0l0ZW1fX3BsYXllciB7XG4gICAgbWFyZ2luOiBhdXRvIC0xLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIGhlaWdodDogY2FsYyg1Ny4xNDI4NTcxNHZ3KTtcbiAgfVxufVxuLnZyX19wbGF5YmFja19fbGVmdCAudnJfX3ZpZGVvSXRlbV9fZGV0YWlscyB7XG4gIHBhZGRpbmctbGVmdDogMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG59XG4udnJfX3BsYXliYWNrIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX19wbGF5YmFjay51aS5ncmlkID4gLndpZGUuY29sdW1uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4udnJfX3RhYnNfX2xpc3Qge1xuICBiYWNrZ3JvdW5kOiAjRkZGRkZGO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICBib3JkZXItcmFkaXVzOiAwLjM1N3JlbTtcbiAgbWFyZ2luOiAxLjQyODU3MTQzcmVtIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcbiAgLnZyX190YWJzX19saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnZyX190YWJzX19saXN0ID4gdWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwcHg7XG4gIG1hcmdpbjogMHB4O1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIHBhZGRpbmctYm90dG9tOiAuMTI1cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yaWdodDogLjA2MjVyZW0gc29saWQgI2RlZGVkZjtcbiAgLyogd2lkdGggKi9cbiAgLyogSGFuZGxlICovXG59XG4udnJfX3RhYnNfX2xpc3QgPiB1bDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBoZWlnaHQ6IC4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogLjEyNXJlbTtcbn1cbi52cl9fdGFic19fbGlzdCA+IHVsOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoODAsIDkyLCAxMjQsIDAuMjUpO1xuICBib3JkZXItcmFkaXVzOiAuMTI1cmVtO1xuICBvcGFjaXR5OiAwLjU7XG59XG4udnJfX3RhYnNfX2xpc3QgPiB1bCA+ICoge1xuICBmb250LXNpemU6IDEuMDcxcmVtO1xuICBsaW5lLWhlaWdodDogMS4yODZyZW07XG4gIHBhZGRpbmc6IDEuMjg2cmVtIDA7XG4gIG1hcmdpbjogMCAxcmVtIDAgMS40Mjg1NzE0M3JlbTtcbiAgY29sb3I6ICM1MDVDN0M7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMC4yMTQyODU3MXJlbSBzb2xpZCAjRkZGRkZGO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yNXM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi52cl9fdGFic19fbGlzdCA+IHVsID4gKjpob3ZlciB7XG4gIGNvbG9yOiAjMjY0Q0UwO1xufVxuLnZyX190YWJzX19saXN0ID4gdWwgPiBsaS52cl9fdGFiLS1hY3RpdmUge1xuICBjb2xvcjogIzI2NENFMDtcbiAgYm9yZGVyLWJvdHRvbTogMC4yMTQyODU3MXJlbSBzb2xpZCAjMjY0Q0UwO1xufVxuLnZyX190YWJzX19saXN0ID4gdWwgPiBsaSA+IGkuY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMS4xNXJlbTtcbiAgdG9wOiAxLjM3NXJlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBtYXJnaW46IDBweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzO1xufVxuLnZyX190YWJzX19saXN0ID4gdWwgPiBsaTpob3ZlciA+IGkuY2xvc2Uge1xuICBvcGFjaXR5OiAxO1xufVxuLnZyX19zZWFyY2gge1xuICBtYXJnaW46IDAgMC44NTcxNDI4NnJlbTtcbiAgZmxleDogMCAwIDMxLjI1cmVtO1xufVxuLnZyX19zZWFyY2ggLnZyX19idG4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnZyX19zZWFyY2ggLnVpLmlucHV0IHtcbiAgaGVpZ2h0OiAyLjgxMjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC52cl9fc2VhcmNoIC51aS5kcm9wZG93bixcbiAgLnZyX19zZWFyY2ggLnVpLmlucHV0IHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLnZyX19zZWFyY2ggLnVpLmlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIH1cbiAgLnZyX19zZWFyY2ggLnZyX19idG4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnZyX192aWRlb19fc29ydCB7XG4gIHdpZHRoOiAyMzBweDtcbn1cbi52cl9fdmlkZW9JdGVtX19vcHRpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwLjVyZW07XG4gIHRvcDogMC41cmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX29wdGlvbnMgLnVpLmJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGMTRGNjMgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtO1xufVxuLnZyX192aWRlb0l0ZW1fX29wdGlvbnMgLnVpLmJ1dHRvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG4udnJfX3ZpZGVvSXRlbXMtLXByZXZpZXcge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuLnZyX192aWRlb0l0ZW1zLS1wcmV2aWV3ID4gLnZyX192aWRlb0l0ZW0ge1xuICBmbGV4OiAwIDAgMjByZW0gIWltcG9ydGFudDtcbn1cbi52cl9fdmlkZW9JdGVtcy0tcHJldmlldyAudnJfX3ZpZGVvSXRlbV9fb3B0aW9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udnJfX3ZpZGVvSXRlbXMtLXByZXZpZXcgLnZyX192aWRlb0l0ZW1fX2Rlc2Mge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnZyX19hbmFseXN0cyA+IC52cl9fYW5hbHlzdEl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmUyZTI7XG59XG4udnJfX2FuYWx5c3RJdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLnZyX19hbmFseXN0SXRlbV9fbmFtZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEluZGljZXMgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNjcy1ldGYgLnVpLmxvYWRpbmcuc2VnbWVudDpiZWZvcmUsXG4jY3MtZXRmIC51aS5sb2FkaW5nLnNlZ21lbnQ6YWZ0ZXIge1xuICB6LWluZGV4OiAxMDtcbn1cbiNjcy1ldGYgPiAudWkuZ3JpZCA+IC5yb3cge1xuICBwYWRkaW5nOiAwcHg7XG59XG4jY3MtZXRmID4gLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cbiNjcy1ldGYgLnVpLnNlZ21lbnQ6bm90KC50YWIpIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZXRmIC51aS5zZWdtZW50Om5vdCgudGFiKSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gIH1cbn1cbiNjcy1ldGYgLnVpLnNlZ21lbnQubG9hZGluZzpub3QoLnRhYikge1xuICBtaW4taGVpZ2h0OiAzMDBweDtcbn1cbi5ldGZfX3RpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmV0Zl9fdGl0bGUgLnVpLmhlYWRlciB7XG4gIG1hcmdpbjogMHB4O1xufVxuLmV0Zl9fc2VjdG9yIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4uZXRmX19jbG9zZSxcbi5ldGZfX2NoYW5nZSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuLmV0Zl9fY2xvc2Uge1xuICBjb2xvcjogIzJDNkE5RTtcbn1cbi5ldGZfX2NoYW5nZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDAuNWVtIDA7XG59XG4uZXRmX19jaGFuZ2UtLXJlZCB7XG4gIGNvbG9yOiAjREIyODI4O1xufVxuLmV0Zl9fY2hhbmdlLS1ncmVlbiB7XG4gIGNvbG9yOiAjMjFCQTQ1O1xufVxuLmV0Zl9fc3VtbWFyeSAudWkuc3RhdGlzdGljcyA+IC5zdGF0aXN0aWMge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uZXRmX19zdW1tYXJ5IC51aS5zdGF0aXN0aWNzID4gLnN0YXRpc3RpYzpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UyZTJlMjtcbiAgcGFkZGluZy1yaWdodDogMWVtO1xufVxuLmV0Zl9fc3VtbWFyeSAudXBkYXRlIHtcbiAgZm9udC1zaXplOiAwLjllbTtcbiAgY29sb3I6IGdyZXk7XG59XG4uZXRmX19yYW5nZSAudWkuaGVhZGVyLFxuLmV0Zl9fcmFuZ2UgLmhlYWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmV0Zl9fY2hhcnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZXRmX19jaGFydF9fbm90ZSB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMWVtO1xuICByaWdodDogMWVtO1xufVxuLmV0Zl9fY2hhcnRfX29wdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4uZXRmX19jaGFydF9fb3B0aW9ucyAuaXRlbS5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4uZXRmX19jaGFydF9fZW1wdHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZXRmX19jaGFydF9fZW1wdHk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdDYW5cXCd0IFJlbmRlciBDaGFydC4gRGF0YSBpcyBFbXB0eSEnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgdG9wOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uZXRmX19jaGFydF9fb3B0aW9ucyAudWkuc2Vjb25kYXJ5Lm1lbnUgLmFjdGl2ZS5pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwQjVBRDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG4uZXRmX190YWJzIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmV0Zl9fdGFicyA+IC51aS5tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDI7XG59XG4uZXRmX190YWJzID4gLnVpLm1lbnUuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDAuOGVtO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMS42ZW0pO1xufVxuLmV0Zl9fdGFicyAudWkuc2VnbWVudC50YWIge1xuICBtYXJnaW46IDBweDtcbiAgbWluLWhlaWdodDogNzB2aDtcbn1cbi5ldGZfX3RhYnMgLnVpLmludmVydGVkLnBvaW50aW5nLm1lbnUgLmFjdGl2ZS5pdGVtOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTQ5ZCAhaW1wb3J0YW50O1xufVxuLmV0Zl9fdGFicyAudWkudmVyeS5iYXNpYy50YWJsZSB0aGVhZCB0ciB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCAjYmJiO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbn1cbi5ldGZfX3RhYnMgLnVpLnZlcnkuYmFzaWMudGFibGUgdGhlYWQgdHIgdGgge1xuICBwYWRkaW5nLXRvcDogMC41ZW07XG4gIHBhZGRpbmctYm90dG9tOiAwLjVlbTtcbn1cbi5ldGZfX3RhYnMgLnVpLnZlcnkuYmFzaWMudGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDIzMCwgMjIxLCAwLjIpICFpbXBvcnRhbnQ7XG59XG4uZXRmX190YWJzIC51aS52ZXJ5LmJhc2ljLnRhYmxlIHRmb290IHRyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODtcbn1cbi5ldGZfX3RhYnMgLnVpLnZlcnkuYmFzaWMudGFibGUgdGZvb3QgdHIgdGgge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5ldGZfX3RhYnMtLWVycm9yIHtcbiAgbWluLWhlaWdodDogMzAwcHg7XG4gIGNvbG9yOiAjMjgyODI4ICFpbXBvcnRhbnQ7XG59XG4uZXRmX190YWJzLS1lcnJvcjo6YmVmb3JlIHtcbiAgY29udGVudDogJ0RhdGEgTm90IEZvdW5kISc7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgdG9wOiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uZXRmX190YWJzX190ZXh0IHtcbiAgZm9udC1zaXplOiAxLjNlbTtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG4uZXRmX19zeW1ib2wge1xuICBtYXJnaW4tcmlnaHQ6IDFlbSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDYwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5ldGZfX292ZXJ2aWV3X19zdGF0cyB7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbn1cbi5ldGZfX292ZXJ2aWV3X19zdW5idXJzdENoYXJ0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4O1xufVxuLmV0Zl9fb3ZlcnZpZXdfX3N1bmJ1cnN0Q2hhcnQgLmNzLXNlY3Rvci10cmVlbWFwLFxuLmV0Zl9fb3ZlcnZpZXdfX3N1bmJ1cnN0Q2hhcnQgLmluZGljZXNfX25vdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmV0Zl9fb3ZlcnZpZXdfX3NlY3RvckhvbGRpbmdzIHtcbiAgcGFkZGluZy10b3A6IDExMHB4O1xufVxuLmV0Zl9fb3ZlcnZpZXdfX3NlY3RvckhvbGRpbmdzIHRhYmxlLFxuLmV0Zl9fb3ZlcnZpZXdfX2hvbGRpbmdzIHRhYmxlIHtcbiAgZm9udC1zaXplOiAwLjllbSAhaW1wb3J0YW50O1xufVxuLmV0Zl9fc3VtbWFyeSAuZXRmX19jbG9zZSxcbi5ldGZfX3N1bW1hcnkgLmV0Zl9fY2hhbmdlIHtcbiAgZm9udC1zaXplOiAxLjhlbTtcbn1cbi5ldGZfX3N1bW1hcnkgLnVpLnN0YXRpc3RpY3Mge1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuLmV0Zl9fY29tcGFueV9faG9sZGluZ3Mge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4uZXRmX19jb21wYW55X19ob2xkaW5ncyAudWkuaGVhZGVyIHtcbiAgbWFyZ2luOiAwcHg7XG59XG4uZXRmX19jb21wYW55X19ob2xkaW5ncyB0YWJsZSB0Ym9keSB0ciB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHdpZHRoOiAxMzBweDtcbn1cbi5ldGZfX2Fubm91bmNlbWVudHMgLmFubm91Y2VtZW50LWNhbGVuZGFyLXdyYXBwZXIsXG4uZXRmX19hbm5vdW5jZW1lbnRzIC5hbm5vdWNlbWVudC10YWJsZS13cmFwcGVyIHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG59XG4uZXRmX19hbm5vdW5jZW1lbnRzICNhbm5vdW5jZS1jYWxlbmRhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5ldGZfX21lc3NhZ2Uge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmV0Zl9fZmluYW5jaWFscyAuZmlzY2FsLXllYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMWVtO1xuICBmb250LXNpemU6IDEuM2VtO1xuICByaWdodDogMWVtO1xuICBjb2xvcjogI2E0YTRhNDtcbn1cbi5ldGZfX2NvbXBhbnkge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uZXRmX190YWJsZV9fd3JhcHBlciB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbn1cbi5ldGZfX3RhYmxlX193cmFwcGVyIHRhYmxlIHtcbiAgbWluLXdpZHRoOiA4MDBweDtcbn1cbi5ldGZfX2NoYXJ0IC5saW5lIHtcbiAgc3Ryb2tlLXdpZHRoOiAycHg7XG59XG4uZXRmX19jaGFydF9fbW9iaWxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5ldGZfX2NoYXJ0X19jb2xvckJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3MtZXRmID4gLnVpLmdyaWQgPiAucm93ID4gLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMC41ZW0gMCAhaW1wb3J0YW50O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19jb2x1bW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuZXRmX190YWJzIC51aS5tZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIH1cbiAgLmV0Zl9fb3ZlcnZpZXdfX3NlY3RvckhvbGRpbmdzIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICB9XG4gIC5ldGZfX2ZpbmFuY2lhbHMgLnVpLnRhYi5zZWdtZW50IHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gIH1cbiAgLmV0Zl9fZmluYW5jaWFscyAuZmlzY2FsLXllYXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luOiAxZW0gMHB4O1xuICB9XG4gIC5ldGZfX2Fubm91bmNlbWVudHMgLmFubm91bmNlX19maWx0ZXJzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgfVxuICAuZXRmX190YWJzIC5jcy10YWJsZS1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgfVxuICAuZXRmX190YWJzIC5jcy10YWJsZS1jb250YWluZXIgdGFibGUge1xuICAgIG1pbi13aWR0aDogMTEwMHB4O1xuICB9XG4gIC5ldGZfX3RhYnMgI2NzLWNvbXBhbnktZnVuZGFtZW50YWxzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZXRmX190aXRsZSAudWkubGFiZWwge1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG4gIC5ldGZfX3RpdGxlIC51aS5oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG4gIC5ldGZfX3RhYnMgPiAudWkubWVudS5maXhlZCB7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG4gIC5ldGZfX292ZXJ2aWV3X19zdGF0cyB7XG4gICAgbWFyZ2luLXRvcDogNGVtO1xuICB9XG4gIC5ldGZfX3N1bW1hcnlfX21vYmlsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG4gIC5ldGZfX3N1bW1hcnlfX21vYmlsZSAuZXRmX19wcmljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICB9XG4gIC5ldGZfX3N1bW1hcnlfX21vYmlsZSAuZXRmX19wcmljZSA+IGRpdiB7XG4gICAgbWFyZ2luOiAwcHg7XG4gIH1cbiAgLmV0Zl9fc3VtbWFyeV9fbW9iaWxlIC51cGRhdGUge1xuICAgIGNvbG9yOiBncmV5O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLnktZ3JpZCxcbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAueC1ncmlkIHtcbiAgICBzdHJva2U6IHJnYmEoMjIwLCAyMjAsIDIyMCwgMC41Mik7XG4gIH1cbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAuYXJlYSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnQtLXJlZCBsaW5lYXJHcmFkaWVudCBzdG9wIHtcbiAgICBzdG9wLWNvbG9yOiAjZGIyODI4O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnQtLXJlZCAubGluZSB7XG4gICAgc3Ryb2tlOiAjZGIyODI4O1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnQtLWdyZWVuIGxpbmVhckdyYWRpZW50IHN0b3Age1xuICAgIHN0b3AtY29sb3I6ICMyMWJhNDU7XG4gIH1cbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAuZXRmX19jaGFydC0tZ3JlZW4gLmxpbmUge1xuICAgIHN0cm9rZTogIzIxYmE0NTtcbiAgfVxuICAuZXRmX19jaGFydF9fbW9iaWxlIC51aS5zZWdtZW50IHtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxuICAuZXRmX19jaGFydF9fbW9iaWxlIC5ldGZfX2NoYXJ0X19ub3RlIHtcbiAgICBib3R0b206IC0yZW07XG4gICAgcmlnaHQ6IDBlbTtcbiAgfVxuICAuZXRmX19jaGFydF9fbW9iaWxlIC5ldGZfX2NoYXJ0X19vcHRpb25zIC51aS5zZWNvbmRhcnkubWVudSB7XG4gICAgcGFkZGluZzogMC41ZW0gMHB4O1xuICAgIG1hcmdpbjogMC41ZW0gMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlMmUyO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlMmUyO1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnRfX29wdGlvbnMgLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtIHtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuICB9XG4gIC5ldGZfX2NoYXJ0X19tb2JpbGUgLmV0Zl9fY2hhcnRfX29wdGlvbnMgLnVpLnNlY29uZGFyeS5tZW51IC5pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDFCNUFEICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmV0Zl9fY2hhcnRfX21vYmlsZSAuZXRmX19jaGFydF9fb3B0aW9ucyAudWkuc2Vjb25kYXJ5Lm1lbnUgLml0ZW0uYWN0aXZlIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIH1cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgIEFkbWluIFBhbmVsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmFwX190ZXh0LS1jb2RlIHtcbiAgY29sb3I6IGNyaW1zb247XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG4uYXBfX3RleHQtLW5vQnJlYWsge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFwX190ZXh0LS10eHRVcENhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmFwX190ZXh0LS1ub01nIHtcbiAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbn1cbi5hcF9faW1hZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5hcF9faW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYXBfX3NpZGViYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDMwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmM3MGIzO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBwYWRkaW5nOiAxZW07XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5hcF9fc2lkZWJhcl9fdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFwX19zaWRlYmFyX190aXRsZUltYWdlIHtcbiAgZmxleDogMCAwIDYwcHg7XG4gIG1hcmdpbi1yaWdodDogMWVtO1xufVxuLmFwX19zaWRlYmFyX190aXRsZVRleHQge1xuICBmb250LXNpemU6IDEuNWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uIHtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgbWF4LWhlaWdodDogNzB2aDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnRpdGxlOjpiZWZvcmUge1xuICBjb250ZW50OiAnICc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDFlbSk7XG4gIGhlaWdodDogY2FsYygxMDAlICsgMWVtKTtcbiAgdG9wOiAtMC41ZW07XG4gIGxlZnQ6IC0wLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnRpdGxlOmhvdmVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uYXBfX3NpZGViYXJfX2FjY29yZGlvbiAudWkudmVydGljYWwubWVudSA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwcHg7XG59XG4uYXBfX3NpZGViYXJfX2FjY29yZGlvbiAudWkudmVydGljYWwubWVudSA+IC5pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMHB4O1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0ge1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmFwX19zaWRlYmFyX19hY2NvcmRpb24gLnVpLnZlcnRpY2FsLm1lbnUgLml0ZW0gLml0ZW1bZGF0YS1zZWN0aW9uXSB7XG4gIHBhZGRpbmctbGVmdDogMWVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTtcbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uIC51aS52ZXJ0aWNhbC5tZW51IC5pdGVtOmhvdmVyIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmFwX19jb250ZW50IHtcbiAgd2lkdGg6IGNhbGMoMTAwdncgLSAzMDBweCk7XG4gIGhlaWdodDogMTAwdmg7XG4gIG1hcmdpbi1sZWZ0OiAzMDBweDtcbiAgcGFkZGluZzogMWVtO1xufVxuLmFwX19jb250ZW50ID4gLnVpLnNlZ21lbnQge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbi5hcF9fc2VjdGlvbixcbi5hcF9fc2VjdGlvbl9fc3ViIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5hcF9fc2VjdGlvbi0tYWN0aXZlLFxuLmFwX19zZWN0aW9uX19zdWItLWFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFwX19zaWRlYmFyX19uYXYge1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQwN2NiYTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmFwX19zaWRlYmFyX19uYXZJdGVtIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXM7XG59XG4uYXBfX3NpZGViYXJfX25hdkl0ZW0tLWFjdGl2ZSB7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmFwX19zaWRlYmFyX19uYXZJdGVtOmhvdmVyIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4uYXBfX3RhYmxlIHRib2R5IHRyOmhvdmVyIHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3NiwgMTc1LCA4MCwgMC4wNikgIWltcG9ydGFudDtcbn1cbi5hcF9fcGVyZm9tYW5jZVRhYmxlIHRoZWFkIHRoOmZpcnN0LWNoaWxkIHtcbiAgY29sb3I6ICMyZDY5OWUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgd2lkdGg6IDI1MHB4O1xufVxuLmFwX19wZXJmb21hbmNlVGFibGUgdHIgdGQ6Zmlyc3QtY2hpbGQ6bm90KC5pZ25vcmVkKSxcbi5hcF9fcGVyZm9tYW5jZVRhYmxlIHRyIHRkLmRlZmluaXRpb24ge1xuICBiYWNrZ3JvdW5kOiAjZTVmM2ZmICFpbXBvcnRhbnQ7XG59XG4uYXBfX21lc3NhZ2VzIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDBweDtcbiAgcmlnaHQ6IDBweDtcbiAgcGFkZGluZzogMWVtO1xuICB6LWluZGV4OiAxMDAwMTtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG59XG4uYXBfX2ltYWdlVXBsb2FkIC50d28uY29sdW1uLndpZGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFwX19pbWFnZVVwbG9hZCAudWkuaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYXBfX2ltYWdlVXBsb2FkIC51aS5pbnB1dDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG4uYXBfX2ltYWdlVXBsb2FkIGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYXBfX3BlcnNvblNlY3Rpb24tLWRldGFpbHMgdGFibGUgdGJvZHkgdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gIHdpZHRoOiAyNTBweDtcbn1cbi5hcF9fcGVyc29uU2VjdGlvbi0tdXBsb2FkSW1hZ2VGb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgbWF4LWhlaWdodDogMTUwcHg7XG59XG4uYXBfX3BlcnNvblNlY3Rpb24tLXVwbG9hZEltYWdlRm9ybSAudWkuaW1hZ2Uge1xuICBoZWlnaHQ6IDE1MHB4O1xuICB3aWR0aDogMTUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMmUyZTI7XG59XG4uYXBfX2ZpbGV1cGxvYWQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmFwX19maWxldXBsb2FkIC51aS5idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYXBfX2ZpbGV1cGxvYWQgLnVpLmJ1dHRvbiBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbn1cbi5hcF9fY29tcGFueVN0YXRlbWVudExvZ3Mge1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAuMjVyZW07XG4gIGJvcmRlcjogLjA2MjVyZW0gc29saWQgI2UyZTJlMjtcbiAgbWFyZ2luOiAxcmVtIDA7XG59XG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG59XG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB0aGVhZCA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB3aWR0aDogMTIuNXJlbTtcbiAgei1pbmRleDogMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuLmFwX19zZWN0aW9uW2RhdGEtc2VjdGlvbj1cInRyYWNraW5nLXNoZWV0XCJdIC5hcF9fdGFibGUgdGgsXG4uYXBfX3NlY3Rpb25bZGF0YS1zZWN0aW9uPVwidHJhY2tpbmctc2hlZXRcIl0gLmFwX190YWJsZSB0ZCB7XG4gIHdpZHRoOiAxNi4yNXJlbTtcbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIC8qIHdpZHRoIG9mIHRoZSBzY3JvbGxiYXIgKi9cbn1cbi5hcF9fc2lkZWJhcl9fYWNjb3JkaW9uOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgLyogY29sb3Igb2YgdGhlIHNjcm9sbGJhciB0aHVtYiAqL1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC8qIHJvdW5kbmVzcyBvZiB0aGUgc2Nyb2xsYmFyIHRodW1iICovXG59XG4uYXBfX3NpZGViYXJfX2FjY29yZGlvbjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIC8qIGNvbG9yIG9mIHRoZSBzY3JvbGxiYXIgdHJhY2sgKi9cbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBUaGVtZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qXG5cbuKWiOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVlyAg4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4pWXICAg4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG7ilZrilZDilZDilojilojilZTilZDilZDilZ3ilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4pWU4paI4paI4paI4paI4pWU4paI4paI4pWR4paI4paI4paI4paI4paI4pWXICDilojilojilojilojilojilojilojilZdcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWR4pWa4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilZrilZDilZDilZDilZDilojilojilZFcbiAgIOKWiOKWiOKVkSAgIOKWiOKWiOKVkSAg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRIOKVmuKVkOKVnSDilojilojilZHilojilojilojilojilojilojilojilZfilojilojilojilojilojilojilojilZFcbiAgIOKVmuKVkOKVnSAgIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICAgICDilZrilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ3ilZrilZDilZDilZDilZDilZDilZDilZ1cblxuKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgIFRoZW1lIFNlbGVjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFRvIG92ZXJyaWRlIGEgdGhlbWUgZm9yIGFuIGluZGl2aWR1YWwgZWxlbWVudFxuICAgc3BlY2lmeSB0aGVtZSBuYW1lIGJlbG93XG4qL1xuLyogR2xvYmFsICovXG4vKiBFbGVtZW50cyAqL1xuLyogQ29sbGVjdGlvbnMgKi9cbi8qIE1vZHVsZXMgKi9cbi8qIFZpZXdzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgRm9sZGVyc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qIFBhdGggdG8gdGhlbWUgcGFja2FnZXMgKi9cbi8qIFBhdGggdG8gc2l0ZSBvdmVycmlkZSBmb2xkZXIgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBJbXBvcnQgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBJbXBvcnQgRGlyZWN0aXZlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgVGhlbWVcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0ZSBWYXJpYWJsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEZWZhdWx0IHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogUGFja2FnZWQgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBDb21wb25lbnQncyBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgdGhlbWUgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiBDb21wb25lbnQgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIFRoZW1lICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogU2l0ZSBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgVXNlciBHbG9iYWwgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRGFyayBDb2xvcnMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgTWl4LWluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgT3ZlcnJpZGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEVuZCBDb25maWcgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8gQ29uZGVuc2VkJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIHNyYzogdXJsKGh0dHBzOi8vZm9udHMuZ3N0YXRpYy5jb20vcy9yb2JvdG9jb25kZW5zZWQvdjMxL2llVm8yWmhaSTJlQ041anpiakVFVFM5d2VxOC1fZDZUX1BPbDBmUkpleVd5b3ZCSi50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgUmVwb3J0cyBCdWlsZGVyIFBhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIHtcbiAgZm9udC1zaXplOiAxLjE1cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjdiMTg7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgaGVpZ2h0OiA1MHB4O1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSB0YWJsZSB0Ym9keSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIHRhYmxlIHRib2R5IHRyIHRkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAuMzVyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSB0YWJsZSAudG90YWwgdGQge1xuICBib3JkZXItdG9wOiAycHggc29saWQgYmxhY2s7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibGFjaztcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgLmhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgLmZvb3RlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIC5mb290ZXIgPiBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSAuZm9vdGVyIC5ub3RlIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogZ3JleTtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUgLmZvb3RlciAubm90ZV9fcGFkZGVkIHtcbiAgcGFkZGluZzogMCAwLjVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIC5mb290ZXIgLmZvb3Rlcl9fbG9nbyA+IGltZyB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZSAuZm9vdGVyIC5mb290ZXJfX2xvZ28uZm9vdGVyX19sb2dvLS1tbWFrcyB7XG4gIHdpZHRoOiAxMDBweDtcbiAgZmxleDogMCAwIGF1dG87XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlIC5mb290ZXIgLmZvb3Rlcl9fbG9nby5mb290ZXJfX2xvZ28tLWNzIHtcbiAgd2lkdGg6IDUwcHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5tbWFrcy10YWJsZS5jZWxsLWJvcmRlcnMgdGFibGUsXG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLmNlbGwtYm9yZGVycyB0aCxcbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUuY2VsbC1ib3JkZXJzIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgZ3JleTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdHIgPiA6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDFweCBkb3R0ZWQgZ3JleTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdHIgPiA6bnRoLWNoaWxkKDQpIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkIGdyZXk7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLm1tYWtzLXRhYmxlLS1maXBpTGlwaSAud3JhcHBlci0tZmlwaS1saXBpIHRhYmxlIHRib2R5IHRyIHRkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLm1tYWtzLXRhYmxlLS1maXBpTGlwaSAud3JhcHBlci0tZmlwaS1saXBpIHRhYmxlIHRib2R5IHRyID4gOm50aC1jaGlsZCg0KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1jdW11bGF0aXZlLWFjdGl2aXR5IHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogM3JlbSAwIDJyZW0gMDtcbn1cbi5jcy1yZXBvcnQtcGFnZSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1jdW11bGF0aXZlLWFjdGl2aXR5IHRhYmxlIHRyID4gOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggZG90dGVkIGdyZXk7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLm1tYWtzLXRhYmxlLm1tYWtzLXRhYmxlLS1maXBpTGlwaSAud3JhcHBlci0tY3VtdWxhdGl2ZS1hY3Rpdml0eSB0YWJsZSB0Ym9keSB0ciB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG4uY3MtcmVwb3J0LXBhZ2UgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiIHtcbiAgcGFkZGluZzogMXJlbTtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWJfX2xvZ29zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAzLjEyNXJlbTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWJfX2xvZ29zID4gaW1nIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fdGV4dCB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogI2FlYjBhZTtcbiAgd2lkdGg6IDguNzVyZW07XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyID4gZGl2IHtcbiAgZmxleDogMTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyID4gLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiIHtcbiAgZmxleDogbm9uZTtcbn1cbi5jcy1yZXBvcnQtcGFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX190ZXh0IHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjc1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLXNtYWxsIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zcmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLWZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNzLXJlcG9ydC1wYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLWZsZXggKiB7XG4gIGZsZXg6IDE7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4uY3MtcmVwb3J0LXBhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2YyZjJmMjtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgTU1BS1MgUmVwb3J0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLm1tYWtzLXRhYmxlIC5mb290ZXItLW1tYWtzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgPiAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWItLW1tYWtzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLW1pbmkge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE1cmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tbWFrcyAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLXNtYWxsIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiIHtcbiAgcGFkZGluZzogMXJlbTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fY29sbGFiX19sb2dvcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMy4xMjVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3MgPiBpbWcge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fdGV4dCB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogI2FlYjBhZTtcbiAgd2lkdGg6IDguNzVyZW07XG4gIGZvbnQtc2l6ZTogLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9fbm90ZSB7XG4gIGNvbG9yOiAjYjhiMmIwO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRkIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgaGVpZ2h0OiAycmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tbWFrcyAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBib3JkZXItdG9wOiAuMjVyZW0gc29saWQgI2U0ODEzZDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbW1ha3MgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIC5jcy1yZXBvcnRfX2NvbXBUYWJsZV9fZW1wdHlSb3dzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIG1pbi1oZWlnaHQ6IDQuNjg3NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0taGVhZEJvcmRlckJvdHRvbSB0YWJsZSB0aGVhZCA+IHRyOmxhc3QtY2hpbGQgPiB0aCB7XG4gIGJvcmRlci1ib3R0b206IC4yNXJlbSBzb2xpZCAjZTQ4MTNkO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tbWFrcyAuY3MtcmVwb3J0X19jb21wVGFibGUuY3MtcmVwb3J0X19jb21wVGFibGUtLWhlYWRsaW5lSGVpZ2h0IHRhYmxlIHRoIHtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tZm9udEZhbVJvYm90byB0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvIENvbmRlbnNlZCcsIHNhbnMtc2VyaWY7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tZm9udFNpemVNZWQgdGFibGUgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1tYWtzIC5jcy1yZXBvcnRfX2NvbXBUYWJsZS5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tZm9udFNpemVNZWQgdGFibGUgdGQge1xuICBmb250LXNpemU6IDEuMzVyZW07XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFN1bW1pdCBSZXBvcnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLm1tYWtzLXRhYmxlIC5mb290ZXItLXN1bW1pdCxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5tbWFrcy10YWJsZSAuZm9vdGVyLS1zdW1taXQsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgLmZvb3Rlci0tc3VtbWl0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGMwO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLm1tYWtzLXRhYmxlIC5ncmVlbixcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5tbWFrcy10YWJsZSAuZ3JlZW4sXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgLmdyZWVuIHtcbiAgY29sb3I6ICMxNWI3M2M7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAubW1ha3MtdGFibGUgLnJlZCxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5tbWFrcy10YWJsZSAucmVkLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIC5yZWQge1xuICBjb2xvcjogI2MwMDAwMDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9faGVyb0hlYWRlciB7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tc3VtbWl0LFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tc3VtbWl0LFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tc3VtbWl0IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3MsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3MsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYl9fbG9nb3Mge1xuICBoZWlnaHQ6IDRyZW07XG4gIHBhZGRpbmc6IDBweDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dCxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dCB7XG4gIGNvbG9yOiAjMDA3OGMwO1xuICBmb250LXNpemU6IDJyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQtLXNtYWxsLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9faGVyb0hlYWRlciAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX190ZXh0LS1zbWFsbCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dC0tc21hbGwge1xuICBjb2xvcjogI2Q0MDYxOTtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGQsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGQsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdHIgdGQge1xuICBwYWRkaW5nOiAwLjE1cmVtO1xuICBmb250LXNpemU6IDEuMTVyZW07XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGMwO1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdCAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6bnRoLWNoaWxkKDIpIHRoLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRoZWFkIHRyOm50aC1jaGlsZCgyKSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0aGVhZCB0cjpudGgtY2hpbGQoMikgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkMGQwO1xuICBjb2xvcjogI2Q0MDYxOTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tbTJtLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlLS1tMm0sXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUtLW0ybSxcbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0IC5jcy1yZXBvcnRfX2NvbXBUYWJsZS0tYzJjLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlLS1jMmMsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUtLWMyYyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFN1bW1pdCBSZXBvcnRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIC5mb290ZXItLXN1bW1pdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgLmZvb3Rlci0tbXJhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUgdGFibGUgdGhlYWQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzliOWI5ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGNvbG9yOiBibGFjaztcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZSB0YWJsZSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZSB0YWJsZSB0ZCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIHRhYmxlIHRoZWFkIHRyOmZpcnN0LWNoaWxkIHRoIHtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLm1tYWtzLXRhYmxlIHRhYmxlIHRoZWFkIHRyOm50aC1jaGlsZCgyKSB0aCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGQwZDAgIWltcG9ydGFudDtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdGJvZHkgdHIgPiA6bnRoLWNoaWxkKDQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZS5tbWFrcy10YWJsZS0tZmlwaUxpcGkgLndyYXBwZXItLWZpcGktbGlwaSB0YWJsZSB0Ym9keSB0ciA+IDpudGgtY2hpbGQoNSksXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAubW1ha3MtdGFibGUubW1ha3MtdGFibGUtLWZpcGlMaXBpIC53cmFwcGVyLS1maXBpLWxpcGkgdGFibGUgdGJvZHkgdHIgPiA6bGFzdC1jaGlsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTYgIWltcG9ydGFudDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5tbWFrcy10YWJsZS5tbWFrcy10YWJsZS0tZmlwaUxpcGkgLndyYXBwZXItLWZpcGktbGlwaSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoMykgPiB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjYmU1ZTYgIWltcG9ydGFudDtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgPiAuY3MtcmVwb3J0X19oZXJvSGVhZGVyX19jb2xsYWIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9faGVyb0hlYWRlciA+IC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX2NvbGxhYi0tbXJhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19oZXJvSGVhZGVyIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXJfX3RleHQge1xuICBjb2xvcjogIzc5YjliOTtcbn1cbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2hlcm9IZWFkZXIgLmNzLXJlcG9ydF9faGVyb0hlYWRlcl9fdGV4dC0tc21hbGwge1xuICBjb2xvcjogYmxhY2s7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzliOWI5O1xufVxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBTdW1taXQgTGV2ZXJhZ2UgJiBNUkEgUmVwb3J0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1yZXBvcnQtcGFnZS0tc3VtbWl0LWxldmVyYWdlIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0aGVhZCB0cjpudGgtY2hpbGQoMikgdGgsXG4uY3MtcmVwb3J0LXBhZ2UtLW1yYSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGhlYWQgdHI6bnRoLWNoaWxkKDIpIHRoLFxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRoZWFkIHRyIHRoLFxuLmNzLXJlcG9ydC1wYWdlLS1tcmEgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRoZWFkIHRyIHRoIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uY3MtcmVwb3J0LXBhZ2UtLXN1bW1pdC1sZXZlcmFnZSAuY3MtcmVwb3J0X19jb21wVGFibGUgdGFibGUgdGJvZHkgdHIuc3ViLXRvdGFsLXJvdyB0ZCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0Ym9keSB0ci5zdWItdG90YWwtcm93IHRkIHtcbiAgYmFja2dyb3VuZDogI2RjZGJkYiAhaW1wb3J0YW50O1xufVxuLmNzLXJlcG9ydC1wYWdlLS1zdW1taXQtbGV2ZXJhZ2UgLmNzLXJlcG9ydF9fY29tcFRhYmxlIHRhYmxlIHRib2R5IHRyLnRvdGFsLXJvdyB0ZCxcbi5jcy1yZXBvcnQtcGFnZS0tbXJhIC5jcy1yZXBvcnRfX2NvbXBUYWJsZSB0YWJsZSB0Ym9keSB0ci50b3RhbC1yb3cgdGQge1xuICBiYWNrZ3JvdW5kOiAjZDBkMGQwICFpbXBvcnRhbnQ7XG59XG4jcmVwb3J0cy1zY3JlZW5zaG90LWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAyMDB2aDtcbiAgbGVmdDogMjAwdnc7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB6LWluZGV4OiAyMDtcbn1cbiNyZXBvcnRzLXNjcmVlbnNob3QtY29udGFpbmVyID4gZGl2KiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICBDbGllbnQgUmVzZWFyY2ggVjIgUGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jcy1jbGllbnRSZXMgLl9faGVhZGluZyxcbi5jcy1jbGllbnRSZXMgLl9fcGFyYSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3MtY2xpZW50UmVzIC5fX2hlYWRpbmcsXG4gIC5jcy1jbGllbnRSZXMgLl9fcGFyYSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5jcy1jbGllbnRSZXMgLl9fZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmNzLWNsaWVudFJlcyAuX19ncm91cC4tLWFsaWduQ2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jcy1jbGllbnRSZXMgLl9fZ3JvdXAuLS1qdXN0aWZ5U3BjQnR3IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmNzLWNsaWVudFJlcyAuX19ncm91cC4tLWp1c3RpZnlDZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jcy1jbGllbnRSZXMgLl9fZ3JvdXAuLS1kaXJDb2wge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmNzLWNsaWVudFJlcyAuX19ncm91cC4tLWhlaWdodEZpdENvbnRlbnQge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY3MtY2xpZW50UmVzIC5fX3ByZXZpZXcge1xuICBoZWlnaHQ6IDc3dmg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jcy1jbGllbnRSZXMgLl9fcHJldmlldyB7XG4gICAgaGVpZ2h0OiA1NXZoO1xuICB9XG59XG4uY3MtY2xpZW50UmVzIC5fX3ByZXZpZXcgLl9faWZyYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNzJ2aDtcbiAgYmFja2dyb3VuZDogZ3JleTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLWNsaWVudFJlcyAuX19wcmV2aWV3IC5fX2lmcmFtZSB7XG4gICAgaGVpZ2h0OiA1MHZoO1xuICB9XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IHtcbiAgcGFkZGluZzogMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyNCwgMTI0LCAxMjQsIDAuOCk7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5fX2xpc3QgLmxpc3Qge1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIG1heC1oZWlnaHQ6IDE4Ljc1cmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5fX2xpc3QgLmxpc3QgPiAuaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4xNXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IC5saXN0ID4gLml0ZW0gPiAuY29udGVudCA+IC5oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IC5saXN0ID4gLml0ZW0gLml0ZW1fX2NvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IC5saXN0ID4gLml0ZW0gLml0ZW1fX2NvbnRyb2xzIGkge1xuICBjb2xvcjogd2hpdGU7XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5fX2xpc3QgLmxpc3QgPiAuaXRlbSAuaXRlbV9fY29udHJvbHMgaTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jcy1jbGllbnRSZXMgLl9fY2F0ZWdvcmllcyAudWkuYWNjb3JkaW9uID4gLmNvbnRlbnQgLmRlc2NyaXB0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMjVyZW07XG59XG4uY3MtY2xpZW50UmVzIC5fX2NhdGVnb3JpZXMgLnVpLmFjY29yZGlvbiA+IC5jb250ZW50IC5kZXNjcmlwdGlvbiAudWkubGFiZWwge1xuICBtYXJnaW46IDBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuZGVzY3JpcHRpb24gLnVpLmxhYmVsLnRpbnk6bm90KC5ncmV5KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmNzLWNsaWVudFJlcyAuX19jYXRlZ29yaWVzIC51aS5hY2NvcmRpb24gPiAuY29udGVudCAuX19saXN0IHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbn1cbi5jcy1jbGllbnRSZXMgLl9fY2F0ZWdvcmllcyAudWkuYWNjb3JkaW9uIC5fX2FyY2hpdmUge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG4jcmVzLXNlYXJjaC1yZXNlYXJjaCAuX19zZWFyY2hSZXN1bHRzIHtcbiAgbWluLWhlaWdodDogMjVyZW07XG4gIG1heC1oZWlnaHQ6IDI1cmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHBhZGRpbmc6IDBweDtcbn1cbiNyZXMtc2VhcmNoLXJlc2VhcmNoIC5fX3NlYXJjaFJlc3VsdHMgdGgge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIC8qIERvbid0IGZvcmdldCB0aGlzLCByZXF1aXJlZCBmb3IgdGhlIHN0aWNraW5lc3MgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4jcmVzLXNlYXJjaC1yZXNlYXJjaCAuX19zZWFyY2hSZXN1bHRzIC5fX3ByZXZpZXdQZGYge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jcmVzLXNlYXJjaC1yZXNlYXJjaCAuX19zZWFyY2hSZXN1bHRzIC5fX3ByZXZpZXdQZGY6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiNyZXMtc2VhcmNoLXJlc2VhcmNoIC5fX3NlYXJjaFJlc3VsdHMgLl9fZW1wdHlNZXNzYWdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbiNyZXMtc2VhcmNoLXJlc2VhcmNoIC5fX3NlYXJjaFJlc3VsdHMgdGFibGUge1xuICBtaW4td2lkdGg6IDcxcmVtO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjcmVzLXNlYXJjaC1yZXNlYXJjaCAuX190b2dnbGVGaWx0ZXJzIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiNyZXMtYWRkLXJlc2VhcmNoLW1vZGFsIC5fX2Ryb3B6b25lIHtcbiAgYm9yZGVyOiAycHggZGFzaGVkICMwMDg3RkU7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1pbi1oZWlnaHQ6IDEyLjVyZW07XG59XG4jcmVzLWFkZC1yZXNlYXJjaC1tb2RhbCAuX19kcm9wem9uZSAuZHotbWVzc2FnZSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4jcmVzLWFkZC1yZXNlYXJjaC1tb2RhbCAuX19kcm9wem9uZSAuZHotZmlsZW5hbWUge1xuICBtYXJnaW4tdG9wOiAzLjVlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLW1vZGFsIC5fX2Ryb3B6b25lIC5kei1kZXRhaWxzIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLW1vZGFsIC5fX2Ryb3B6b25lIC5kei1wcm9ncmVzcyB7XG4gIHRvcDogNDAlO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtbW9kYWwgLl9fZHJvcHpvbmUgLmR6LXByZXZpZXcge1xuICB6LWluZGV4OiAxO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtbW9kYWwgLl9fZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVycm9yLW1lc3NhZ2Uge1xuICB0b3A6IDExcmVtICFpbXBvcnRhbnQ7XG59XG4jcmVzLWFkZC1yZXNlYXJjaC10YXJnZXQtbW9kYWwge1xuICBtYXgtd2lkdGg6IDUzLjEyNXJlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLXRhcmdldC1tb2RhbCAuX19saXN0IHtcbiAgbWF4LWhlaWdodDogMTUuNjI1cmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4jcmVzLWFkZC1yZXNlYXJjaC10YXJnZXQtbW9kYWwgLl9fbGlzdEl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMC4xNXJlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLXRhcmdldC1tb2RhbCAuX19saXN0SXRlbSAuX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMjVyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbiNyZXMtYWRkLXJlc2VhcmNoLXRhcmdldC1tb2RhbCAuX19saXN0SXRlbSAuX19oZWFkZXIgPiBhIHtcbiAgbWluLXdpZHRoOiAzLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtdGFyZ2V0LW1vZGFsIC5fX2NvbnRlbnRXcmFwcGVyIHtcbiAgcGFkZGluZzogMHB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuI3Jlcy1hZGQtcmVzZWFyY2gtdGFyZ2V0LW1vZGFsIC5fX2xpc3RJdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNyZXMtbWFuYWdlLWNhdGVnb3JpZXMgLl9fbGlzdCxcbiNyZXMtbWFuYWdlLWFuYWx5c3RzIC5fX2xpc3QsXG4jcmVzLWFkZC1hbmFseXN0IC5fX2xpc3Qge1xuICBtYXgtaGVpZ2h0OiAxOC43NXJlbTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuI3Jlcy1tYW5hZ2UtY2F0ZWdvcmllcyAuX19saXN0IC5fX2l0ZW0sXG4jcmVzLW1hbmFnZS1hbmFseXN0cyAuX19saXN0IC5fX2l0ZW0sXG4jcmVzLWFkZC1hbmFseXN0IC5fX2xpc3QgLl9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiNyZXMtbWFuYWdlLWNhdGVnb3JpZXMgLl9fbGlzdCAuX19pdGVtIC5jb250ZW50LFxuI3Jlcy1tYW5hZ2UtYW5hbHlzdHMgLl9fbGlzdCAuX19pdGVtIC5jb250ZW50LFxuI3Jlcy1hZGQtYW5hbHlzdCAuX19saXN0IC5fX2l0ZW0gLmNvbnRlbnQge1xuICBnYXA6IDAuMjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jcmVzLW1hbmFnZS1jYXRlZ29yaWVzIC5fX2xpc3QgLl9faXRlbTphZnRlcixcbiNyZXMtbWFuYWdlLWFuYWx5c3RzIC5fX2xpc3QgLl9faXRlbTphZnRlcixcbiNyZXMtYWRkLWFuYWx5c3QgLl9fbGlzdCAuX19pdGVtOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNyZXMtbWFuYWdlLWNhdGVnb3JpZXMgLl9fc2VnbWVudCxcbiNyZXMtbWFuYWdlLWFuYWx5c3RzIC5fX3NlZ21lbnQsXG4jcmVzLWFkZC1hbmFseXN0IC5fX3NlZ21lbnQge1xuICBwYWRkaW5nOiAwcHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVGhlbWVcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKlxuXG7ilojilojilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKVlyAgIOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xu4pWa4pWQ4pWQ4paI4paI4pWU4pWQ4pWQ4pWd4paI4paI4pWRICDilojilojilZHilojilojilZTilZDilZDilZDilZDilZ3ilojilojilojilojilZcg4paI4paI4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWdXG4gICDilojilojilZEgICDilojilojilojilojilojilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKVlOKWiOKWiOKWiOKWiOKVlOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4paI4paI4pWXXG4gICDilojilojilZEgICDilojilojilZTilZDilZDilojilojilZHilojilojilZTilZDilZDilZ0gIOKWiOKWiOKVkeKVmuKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4pWa4pWQ4pWQ4pWQ4pWQ4paI4paI4pWRXG4gICDilojilojilZEgICDilojilojilZEgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSDilZrilZDilZ0g4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWRXG4gICDilZrilZDilZ0gICDilZrilZDilZ0gIOKVmuKVkOKVneKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAgICAg4pWa4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdXG5cbiovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICBUaGVtZSBTZWxlY3Rpb25cbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBUbyBvdmVycmlkZSBhIHRoZW1lIGZvciBhbiBpbmRpdmlkdWFsIGVsZW1lbnRcbiAgIHNwZWNpZnkgdGhlbWUgbmFtZSBiZWxvd1xuKi9cbi8qIEdsb2JhbCAqL1xuLyogRWxlbWVudHMgKi9cbi8qIENvbGxlY3Rpb25zICovXG4vKiBNb2R1bGVzICovXG4vKiBWaWV3cyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgIEZvbGRlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKiBQYXRoIHRvIHRoZW1lIHBhY2thZ2VzICovXG4vKiBQYXRoIHRvIHNpdGUgb3ZlcnJpZGUgZm9sZGVyICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgSW1wb3J0IFRoZW1lXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgSW1wb3J0IERpcmVjdGl2ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIFRoZW1lXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNpdGUgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGVmYXVsdCBzaXRlLnZhcmlhYmxlcyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFBhY2thZ2VkIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgU2l0ZSBTZXR0aW5nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJhc2UgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgaXMgdGhlIHNpbmdsZSB2YXJpYWJsZSB0aGF0IGNvbnRyb2xzIHRoZW0gYWxsICovXG4vKiBUaGUgc2l6ZSBvZiBwYWdlIHRleHQgICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBTZWUgUG93ZXItdXNlciBzZWN0aW9uIGJlbG93XG4gICBmb3IgZXhwbGFuYXRpb24gb2YgQHB4IHZhcmlhYmxlc1xuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gICBGb3JtIElucHV0XG4tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBhZGp1c3RzIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgYWNyb3NzIGFsbCBlbGVtZW50cyAqL1xuLyogSW5wdXQgVGV4dCBDb2xvciAqL1xuLyogTGluZSBIZWlnaHQgRGVmYXVsdCBGb3IgSW5wdXRzIGluIEJyb3dzZXIgKERlc2NlbmRlcnMgYXJlIDE3cHggYXQgMTRweCBiYXNlIGVtKSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRm9jdXNlZCBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVXNlZCBvbiBpbnB1dHMsIHRleHRhcmVhIGV0YyAqL1xuLyogVXNlZCBvbiBkcm9wZG93bnMsIG90aGVyIGxhcmdlciBibG9ja3MgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgU2l6ZXMgYXJlIGFsbCBleHByZXNzZWQgaW4gdGVybXMgb2YgMTRweC9lbSAoZGVmYXVsdCBlbSlcbiAgVGhpcyBlbnN1cmVzIHRoZXNlIFwicmF0aW9zXCIgcmVtYWluIGNvbnN0YW50IGRlc3BpdGUgY2hhbmdlcyBpbiBFTVxuKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNjcm9sbCBCYXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBJbnZlcnRlZCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEhpZ2hsaWdodGVkIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExvYWRlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEdyaWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBUcmFuc2l0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyZWFrcG9pbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICAgTmV1dHJhbHMgIC0tLSovXG4vKi0tLSBDb2xvcmVkIEJhY2tncm91bmRzIC0tLSovXG4vKi0tLSBDb2xvcmVkIEhlYWRlcnMgLS0tKi9cbi8qLS0tIENvbG9yZWQgVGV4dCAtLS0qL1xuLyotLS0gQ29sb3JlZCBCb3JkZXIgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBBbHBoYSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEFjY2VudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERpZmZlcmVudGlhdGluZyBOZXV0cmFscyAqL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgUG93ZXItVXNlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEVtb3RpdmUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBQb3NpdGl2ZSAqL1xuLyogTmVnYXRpdmUgKi9cbi8qIEluZm8gKi9cbi8qIFdhcm5pbmcgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRm9yIHNvdXJjZSBvbmx5LiBNb2RpZmllZCBpbiBndWxwIGZvciBkaXN0ICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBFbSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhpcyByb3VuZHMgQHNpemUgdmFsdWVzIHRvIHRoZSBjbG9zZXN0IHBpeGVsIHRoZW4gZXhwcmVzc2VzIHRoYXQgdmFsdWUgaW4gKHIpZW0uXG4gIFRoaXMgZW5zdXJlcyBhbGwgc2l6ZSB2YWx1ZXMgcm91bmQgdG8gZXhhY3QgcGl4ZWxzXG4qL1xuLyogZW0gKi9cbi8qIHJlbSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgSWNvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIE1heGltdW0gR2x5cGggV2lkdGggb2YgSWNvbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE5ldXRyYWwgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEJyYW5kIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCb3JkZXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEZXJpdmVkIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTG9hZGVycyBQb3NpdGlvbiBPZmZzZXQgKi9cbi8qIFJlbmRlcmVkIFNjcm9sbGJhciBXaWR0aCAqL1xuLyogTWF4aW11bSBTaW5nbGUgQ2hhcmFjdGVyIEdseXBoIFdpZHRoLCBha2EgQ2FwaXRhbCBcIldcIiAqL1xuLyogVXNlZCB0byBtYXRjaCBmbG9hdHMgd2l0aCB0ZXh0ICovXG4vKiBIZWFkZXIgU3BhY2luZyAqL1xuLyogTWluaW11bSBNb2JpbGUgV2lkdGggKi9cbi8qIFBvc2l0aXZlIC8gTmVnYXRpdmUgRHVwZXMgKi9cbi8qIFJlc3BvbnNpdmUgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBFeGFjdCBQaXhlbCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoZXNlIGFyZSB1c2VkIHRvIHNwZWNpZnkgZXhhY3QgcGl4ZWwgdmFsdWVzIGluIGVtXG4gIGZvciB0aGluZ3MgbGlrZSBib3JkZXJzIHRoYXQgcmVtYWluIGNvbnN0YW50bHlcbiAgc2l6ZWQgYXMgZW1TaXplIGFkanVzdHNcblxuICBTaW5jZSB0aGVyZSBhcmUgbWFueSBtb3JlIHNpemVzIHRoYW4gbmFtZXMgZm9yIHNpemVzLFxuICB0aGVzZSBhcmUgbmFtZWQgYnkgdGhlaXIgb3JpZ2luYWwgcGl4ZWwgdmFsdWVzLlxuXG4qL1xuLyogQ29sdW1ucyAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICBTdGF0ZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIERpc2FibGVkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgSG92ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBTaGFkb3dzICAtLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEZvY3VzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBEb3duICg6YWN0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEFjdGl2ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyogQ29tcG9uZW50J3Mgc2l0ZS52YXJpYWJsZXMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBTaXRlIHRoZW1lIHNpdGUudmFyaWFibGVzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICBVc2VyIEdsb2JhbCBWYXJpYWJsZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICBQYWdlIEhlYWRpbmdcbi0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFNpdGUgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIExpZ2h0IENvbG9ycyAgLS0tKi9cbi8qLS0tICBEYXJrIENvbG9ycyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYWdlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIFBhcmFncmFwaFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIExheWVycyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gQ29tcG9uZW50IFZhcmlhYmxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIERlZmF1bHQgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICBTaXRlIFNldHRpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRm9udHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQmFzZSBTaXplc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogVGhpcyBpcyB0aGUgc2luZ2xlIHZhcmlhYmxlIHRoYXQgY29udHJvbHMgdGhlbSBhbGwgKi9cbi8qIFRoZSBzaXplIG9mIHBhZ2UgdGV4dCAgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEJvcmRlciBSYWRpdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFNlZSBQb3dlci11c2VyIHNlY3Rpb24gYmVsb3dcbiAgIGZvciBleHBsYW5hdGlvbiBvZiBAcHggdmFyaWFibGVzXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgIEZvcm0gSW5wdXRcbi0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGFkanVzdHMgdGhlIGRlZmF1bHQgZm9ybSBpbnB1dCBhY3Jvc3MgYWxsIGVsZW1lbnRzICovXG4vKiBJbnB1dCBUZXh0IENvbG9yICovXG4vKiBMaW5lIEhlaWdodCBEZWZhdWx0IEZvciBJbnB1dHMgaW4gQnJvd3NlciAoRGVzY2VuZGVycyBhcmUgMTdweCBhdCAxNHB4IGJhc2UgZW0pICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBGb2N1c2VkIElucHV0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBVc2VkIG9uIGlucHV0cywgdGV4dGFyZWEgZXRjICovXG4vKiBVc2VkIG9uIGRyb3Bkb3ducywgb3RoZXIgbGFyZ2VyIGJsb2NrcyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBTaXplcyBhcmUgYWxsIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiAxNHB4L2VtIChkZWZhdWx0IGVtKVxuICBUaGlzIGVuc3VyZXMgdGhlc2UgXCJyYXRpb3NcIiByZW1haW4gY29uc3RhbnQgZGVzcGl0ZSBjaGFuZ2VzIGluIEVNXG4qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgU2Nyb2xsIEJhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEludmVydGVkICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgSGlnaGxpZ2h0ZWQgVGV4dFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTG9hZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgR3JpZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIFRyYW5zaXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJlYWtwb2ludHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gICBOZXV0cmFscyAgLS0tKi9cbi8qLS0tIENvbG9yZWQgQmFja2dyb3VuZHMgLS0tKi9cbi8qLS0tIENvbG9yZWQgSGVhZGVycyAtLS0qL1xuLyotLS0gQ29sb3JlZCBUZXh0IC0tLSovXG4vKi0tLSBDb2xvcmVkIEJvcmRlciAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEFscGhhIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgQWNjZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogRGlmZmVyZW50aWF0aW5nIE5ldXRyYWxzICovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICBQb3dlci1Vc2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRW1vdGl2ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFBvc2l0aXZlICovXG4vKiBOZWdhdGl2ZSAqL1xuLyogSW5mbyAqL1xuLyogV2FybmluZyAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhdGhzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBGb3Igc291cmNlIG9ubHkuIE1vZGlmaWVkIGluIGd1bHAgZm9yIGRpc3QgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEVtIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGlzIHJvdW5kcyBAc2l6ZSB2YWx1ZXMgdG8gdGhlIGNsb3Nlc3QgcGl4ZWwgdGhlbiBleHByZXNzZXMgdGhhdCB2YWx1ZSBpbiAocillbS5cbiAgVGhpcyBlbnN1cmVzIGFsbCBzaXplIHZhbHVlcyByb3VuZCB0byBleGFjdCBwaXhlbHNcbiovXG4vKiBlbSAqL1xuLyogcmVtICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBJY29uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogTWF4aW11bSBHbHlwaCBXaWR0aCBvZiBJY29uICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgTmV1dHJhbCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQnJhbmQgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgIEJvcmRlcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERlcml2ZWQgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBMb2FkZXJzIFBvc2l0aW9uIE9mZnNldCAqL1xuLyogUmVuZGVyZWQgU2Nyb2xsYmFyIFdpZHRoICovXG4vKiBNYXhpbXVtIFNpbmdsZSBDaGFyYWN0ZXIgR2x5cGggV2lkdGgsIGFrYSBDYXBpdGFsIFwiV1wiICovXG4vKiBVc2VkIHRvIG1hdGNoIGZsb2F0cyB3aXRoIHRleHQgKi9cbi8qIEhlYWRlciBTcGFjaW5nICovXG4vKiBNaW5pbXVtIE1vYmlsZSBXaWR0aCAqL1xuLyogUG9zaXRpdmUgLyBOZWdhdGl2ZSBEdXBlcyAqL1xuLyogUmVzcG9uc2l2ZSAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEV4YWN0IFBpeGVsIFZhbHVlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLypcbiAgVGhlc2UgYXJlIHVzZWQgdG8gc3BlY2lmeSBleGFjdCBwaXhlbCB2YWx1ZXMgaW4gZW1cbiAgZm9yIHRoaW5ncyBsaWtlIGJvcmRlcnMgdGhhdCByZW1haW4gY29uc3RhbnRseVxuICBzaXplZCBhcyBlbVNpemUgYWRqdXN0c1xuXG4gIFNpbmNlIHRoZXJlIGFyZSBtYW55IG1vcmUgc2l6ZXMgdGhhbiBuYW1lcyBmb3Igc2l6ZXMsXG4gIHRoZXNlIGFyZSBuYW1lZCBieSB0aGVpciBvcmlnaW5hbCBwaXhlbCB2YWx1ZXMuXG5cbiovXG4vKiBDb2x1bW5zICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIFN0YXRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgRGlzYWJsZWRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBIb3ZlclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIFNoYWRvd3MgIC0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgRm9jdXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIERvd24gKDphY3RpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgQWN0aXZlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgQ29sb3JzICAtLS0qL1xuLyotLS0gIEVtb3RpdmUgIC0tLSovXG4vKi0tLSAgQnJhbmQgICAtLS0qL1xuLyotLS0gIERhcmsgVG9uZXMgIC0tLSovXG4vKi0tLSAgTGlnaHQgVG9uZXMgIC0tLSovXG4vKiBQYWNrYWdlZCBUaGVtZSAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgIFNpdGUgU2V0dGluZ3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBGb250c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBCYXNlIFNpemVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBUaGlzIGlzIHRoZSBzaW5nbGUgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGVtIGFsbCAqL1xuLyogVGhlIHNpemUgb2YgcGFnZSB0ZXh0ICAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQm9yZGVyIFJhZGl1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogU2VlIFBvd2VyLXVzZXIgc2VjdGlvbiBiZWxvd1xuICAgZm9yIGV4cGxhbmF0aW9uIG9mIEBweCB2YXJpYWJsZXNcbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS1cbiAgUGFnZSBIZWFkaW5nXG4tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLVxuICAgRm9ybSBJbnB1dFxuLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRoaXMgYWRqdXN0cyB0aGUgZGVmYXVsdCBmb3JtIGlucHV0IGFjcm9zcyBhbGwgZWxlbWVudHMgKi9cbi8qIElucHV0IFRleHQgQ29sb3IgKi9cbi8qIExpbmUgSGVpZ2h0IERlZmF1bHQgRm9yIElucHV0cyBpbiBCcm93c2VyIChEZXNjZW5kZXJzIGFyZSAxN3B4IGF0IDE0cHggYmFzZSBlbSkgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEZvY3VzZWQgSW5wdXRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFVzZWQgb24gaW5wdXRzLCB0ZXh0YXJlYSBldGMgKi9cbi8qIFVzZWQgb24gZHJvcGRvd25zLCBvdGhlciBsYXJnZXIgYmxvY2tzICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFNpemVzIGFyZSBhbGwgZXhwcmVzc2VkIGluIHRlcm1zIG9mIDE0cHgvZW0gKGRlZmF1bHQgZW0pXG4gIFRoaXMgZW5zdXJlcyB0aGVzZSBcInJhdGlvc1wiIHJlbWFpbiBjb25zdGFudCBkZXNwaXRlIGNoYW5nZXMgaW4gRU1cbiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBQYXJhZ3JhcGhcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBTY3JvbGwgQmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogSW52ZXJ0ZWQgKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBIaWdobGlnaHRlZCBUZXh0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBMb2FkZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBHcmlkXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgVHJhbnNpdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmVha3BvaW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBTaXRlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBMaWdodCBDb2xvcnMgIC0tLSovXG4vKi0tLSAgIE5ldXRyYWxzICAtLS0qL1xuLyotLS0gQ29sb3JlZCBCYWNrZ3JvdW5kcyAtLS0qL1xuLyotLS0gQ29sb3JlZCBIZWFkZXJzIC0tLSovXG4vKi0tLSBDb2xvcmVkIFRleHQgLS0tKi9cbi8qLS0tIENvbG9yZWQgQm9yZGVyIC0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgQWxwaGEgQ29sb3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTmV1dHJhbHMgKi9cbi8qIERpZmZlcmVudGlhdGluZyBMYXllcnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgIFBvd2VyLVVzZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBFbW90aXZlIENvbG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyogUG9zaXRpdmUgKi9cbi8qIE5lZ2F0aXZlICovXG4vKiBJbmZvICovXG4vKiBXYXJuaW5nICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgUGF0aHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIEZvciBzb3VyY2Ugb25seS4gTW9kaWZpZWQgaW4gZ3VscCBmb3IgZGlzdCAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgRW0gU2l6ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gIFRoaXMgcm91bmRzIEBzaXplIHZhbHVlcyB0byB0aGUgY2xvc2VzdCBwaXhlbCB0aGVuIGV4cHJlc3NlcyB0aGF0IHZhbHVlIGluIChyKWVtLlxuICBUaGlzIGVuc3VyZXMgYWxsIHNpemUgdmFsdWVzIHJvdW5kIHRvIGV4YWN0IHBpeGVsc1xuKi9cbi8qIGVtICovXG4vKiByZW0gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEljb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBNYXhpbXVtIEdseXBoIFdpZHRoIG9mIEljb24gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBOZXV0cmFsIFRleHRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBCcmFuZCBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgQm9yZGVyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRGVyaXZlZCBWYWx1ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIExvYWRlcnMgUG9zaXRpb24gT2Zmc2V0ICovXG4vKiBSZW5kZXJlZCBTY3JvbGxiYXIgV2lkdGggKi9cbi8qIE1heGltdW0gU2luZ2xlIENoYXJhY3RlciBHbHlwaCBXaWR0aCwgYWthIENhcGl0YWwgXCJXXCIgKi9cbi8qIFVzZWQgdG8gbWF0Y2ggZmxvYXRzIHdpdGggdGV4dCAqL1xuLyogSGVhZGVyIFNwYWNpbmcgKi9cbi8qIE1pbmltdW0gTW9iaWxlIFdpZHRoICovXG4vKiBQb3NpdGl2ZSAvIE5lZ2F0aXZlIER1cGVzICovXG4vKiBSZXNwb25zaXZlICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgRXhhY3QgUGl4ZWwgVmFsdWVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuICBUaGVzZSBhcmUgdXNlZCB0byBzcGVjaWZ5IGV4YWN0IHBpeGVsIHZhbHVlcyBpbiBlbVxuICBmb3IgdGhpbmdzIGxpa2UgYm9yZGVycyB0aGF0IHJlbWFpbiBjb25zdGFudGx5XG4gIHNpemVkIGFzIGVtU2l6ZSBhZGp1c3RzXG5cbiAgU2luY2UgdGhlcmUgYXJlIG1hbnkgbW9yZSBzaXplcyB0aGFuIG5hbWVzIGZvciBzaXplcyxcbiAgdGhlc2UgYXJlIG5hbWVkIGJ5IHRoZWlyIG9yaWdpbmFsIHBpeGVsIHZhbHVlcy5cblxuKi9cbi8qIENvbHVtbnMgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgU3RhdGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICBEaXNhYmxlZFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIEhvdmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLSAgU2hhZG93cyAgLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBGb2N1c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0gIENvbG9ycyAgLS0tKi9cbi8qLS0tICBFbW90aXZlICAtLS0qL1xuLyotLS0gIEJyYW5kICAgLS0tKi9cbi8qLS0tICBEYXJrIFRvbmVzICAtLS0qL1xuLyotLS0gIExpZ2h0IFRvbmVzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgRG93biAoOmFjdGl2ZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBBY3RpdmVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgRW1vdGl2ZSAgLS0tKi9cbi8qLS0tICBCcmFuZCAgIC0tLSovXG4vKi0tLSAgRGFyayBUb25lcyAgLS0tKi9cbi8qLS0tICBMaWdodCBUb25lcyAgLS0tKi9cbi8qIFNpdGUgVGhlbWUgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgIFVzZXIgR2xvYmFsIFZhcmlhYmxlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tXG4gIFBhZ2UgSGVhZGluZ1xuLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgU2l0ZSBDb2xvcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tICBDb2xvcnMgIC0tLSovXG4vKi0tLSAgTGlnaHQgQ29sb3JzICAtLS0qL1xuLyotLS0gIERhcmsgQ29sb3JzICAtLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICBQYXRoc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgTGlua3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgUGFyYWdyYXBoXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBCb3JkZXIgUmFkaXVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICBBY2NlbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBEaWZmZXJlbnRpYXRpbmcgTGF5ZXJzICovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgIE1peC1pbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIEZvbnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIE92ZXJyaWRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKiBFbmQgQ29uZmlnICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgUFggdG8gUkVNXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAgICAgICAgVmFyaWFibGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgIEZPT1RFUlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2Rpc2NsYWltZXItYm94IHtcbiAgd2lkdGg6IDUwMHB4O1xuICBtYXJnaW46IDBlbSAwZW0gMGVtIC0xNWVtO1xufVxuI2Rpc2NsYWltZXItYm94IC51aS5zZWdtZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZGVkZTtcbiAgaGVpZ2h0OiA0MDBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuI2Rpc2NsYWltZXItYm94IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG4jZGlzY2xhaW1lci1ib3ggcCB7XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xufVxuI2Rpc2NsYWltZXItYm94IGxpIHtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNkaXNjbGFpbWVyLWJveCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgI2Rpc2NsYWltZXItYm94IC51aS5zZWdtZW50IHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICB9XG59XG4jY3MtZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFCNTU4NiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAzZW0gMDtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG59XG4jY3MtZm9vdGVyLmNhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMjk5OTIgIWltcG9ydGFudDtcbn1cbiNjcy1mb290ZXIgLnVpLmRpdmlkZXIge1xuICBtYXJnaW46IDJyZW0gMHB4O1xufVxuI2NzLWZvb3RlciAuY3MtZGlzY2xhaW1lci1mb290ZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDAuOGVtO1xuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWZvb3RlciB7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjY3MtZm9vdGVyIC5jb2x1bW4ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDI3MjlhO1xuICAgIG9yZGVyOiAzO1xuICB9XG4gICNjcy1mb290ZXIgLmNzLWRpc2NsYWltZXItZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgfVxuICAjY3MtZm9vdGVyIC5jcy1zaG93LXRlcm1zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIH1cbiAgI2NzLWZvb3RlciAuY29sdW1uLnNvY2lhbC1jb2x1bW4ge1xuICAgIG9yZGVyOiAyO1xuICB9XG4gICNjcy1mb290ZXIgLmNvbHVtbi5mb290ZXItbG9nbyB7XG4gICAgb3JkZXI6IDE7XG4gIH1cbn1cbi8qIC0tLS0gcGFydGljbGVzLmpzIGNvbnRhaW5lciAtLS0tICovXG4jY3MtcGFydGljbGVzLWpzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDI5OTkyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgU1RPQ0sgVElDS0VSXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4jY3NUaWNrZXIge1xuICBiYWNrZ3JvdW5kOiAjNGM0YzRjO1xuICBkaXNwbGF5OiBmbGV4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHdoaXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxNTtcbn1cbiNjc1RpY2tlciA+IC5pbmRpY2VzLXdyYXBwZXIge1xuICB3aWR0aDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzMzMztcbn1cbiNjc1RpY2tlciA+IC5pbmRpY2VzLXdyYXBwZXIgPiAuYm9yZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTdweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICB3aWR0aDogNDJweDtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXcoLTIyZGVnLCAwZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogc2tldygtMjJkZWcsIDBkZWcpO1xuICAtby10cmFuc2Zvcm06IHNrZXcoLTIyZGVnLCAwZGVnKTtcbiAgdHJhbnNmb3JtOiBza2V3KC0yMmRlZywgMGRlZyk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7XG4gIGJveC1zaGFkb3c6IDJweCAtMnB4IDNweCAjMDAwO1xufVxuI2NzVGlja2VyID4gLmluZGljZXMtd3JhcHBlciA+IC5pbmRpY2VzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI2NzVGlja2VyID4gLnN0b2Nrcy13cmFwcGVyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwMHB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiNjc1RpY2tlciAuaXRlbSA+IC53cmFwcGVyIHtcbiAgcGFkZGluZzogMnB4IDdweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2NzVGlja2VyIC5pdGVtIC5uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6ICNjY2M7XG59XG4jY3NUaWNrZXIgLml0ZW0gLnZhbHVlIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbiNjc1RpY2tlciAuaXRlbSAuY29scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjc1RpY2tlciAuY2hhbmdlLXdyYXBwZXIge1xuICBmb250LXNpemU6IDEuM2VtO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMCAjMTExO1xufVxuI2NzVGlja2VyIC5pbmRpY2VzIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbiNjc1RpY2tlciAuaW5kaWNlcyAuaXRlbSB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzJTtcbn1cbiNjc1RpY2tlciAuc3RvY2tzIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbiNjc1RpY2tlciAuaXRlbSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzFkMWQxZDtcbn1cbiNjc1RpY2tlciAuc3RvY2tzIC5pdGVtIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDA0MDQwO1xufVxuI2NzVGlja2VyIC5wb3Mge1xuICBjb2xvcjogIzI2ZDIyNjtcbn1cbiNjc1RpY2tlciAubmVnIHtcbiAgY29sb3I6ICNmZjg2ODY7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjc1RpY2tlciB7XG4gICAgdG9wOiA2MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgI2NzVGlja2VyID4gLmluZGljZXMtd3JhcHBlciB7XG4gICAgd2lkdGg6IDEzMHB4O1xuICB9XG4gIC5pdGVtW2RhdGEtc3ltYm9sPVwiQUxMU0hSXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pdGVtW2RhdGEtc3ltYm9sPVwiS01JQUxMU0hSXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNjc1RpY2tlciAuaW5kaWNlcyAuaXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgI2NzVGlja2VyID4gLnN0b2Nrcy13cmFwcGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTMwcHgpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgI2NzVGlja2VyIC5pdGVtID4gLndyYXBwZXIge1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgIE5PVElGWVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLW5vdGlmeSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDBweDtcbiAgYm90dG9tOiAwcHg7XG4gIHotaW5kZXg6IDEwMjtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS1idXR0b24td3JhcHBlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMWVtIDFlbTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS1idXR0b24td3JhcHBlci0tc2hvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG9wYWNpdHk6IDE7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciB7XG4gIHBhZGRpbmc6IDFlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICB9XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlOm5vdCg6bGFzdC1jaGlsZCkge1xuICBvcGFjaXR5OiAwLjU7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS13cmFwcGVyID4gLnVpLm1lc3NhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3gtc2hhZG93OiAwcHggM3B4IDIwcHggIzAwMDAwMDc1O1xuICB3aWR0aDogNDAwcHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIgPiAudWkubWVzc2FnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS13cmFwcGVyID4gLnVpLm1lc3NhZ2UgLnVpLnNlZ21lbnQge1xuICBjb2xvcjogIzAwMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIgPiAudWkubWVzc2FnZSAudWkuc2VnbWVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuI2NzLW5vdGlmeSAubm90aWZ5LXdyYXBwZXIgPiAudWkubWVzc2FnZSAudWkubGFiZWwge1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlIC5sb2FkaW5nLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBQUI7XG4gIGhlaWdodDogNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBhbGwgMjAwbXMgZWFzZS1vdXQ7XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlIC50eXBlLXBkZiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4jY3Mtbm90aWZ5IC5ub3RpZnktd3JhcHBlciA+IC51aS5tZXNzYWdlIGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbiNjcy1ub3RpZnkgLm5vdGlmeS13cmFwcGVyID4gLnVpLm1lc3NhZ2UgcCB7XG4gIG1hcmdpbjogMC41ZW0gMHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtbm90aWZ5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAjY3Mtbm90aWZ5IC5oZWFkZXIgLm5hbWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICBDT05URU5UXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uY3MtY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDBlbSAhaW1wb3J0YW50O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudWkuY29udGFpbmVyLmdyaWQuY3MtY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogNi43NWVtICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAudWkuY29udGFpbmVyLmdyaWQuY3MtY29udGVudCAuc2l4dGVlbi53aWRlLmNvbHVtbiB7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgT1ZFUlZJRVcgVEFCTEVTXG4tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIFRhYmxlIENvbnRlbnQgKi9cbi51aS50YWJsZSB0aC5yZWQsXG4udWkudGFibGUgdGQucmVkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4udWkudGFibGUgdGguZ3JlZW4sXG4udWkudGFibGUgdGQuZ3JlZW4ge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi51aS50YWJsZSB0aC5ibHVlLFxuLnVpLnRhYmxlIHRkLmJsdWUge1xuICBjb2xvcjogIzJDNkE5RTtcbn1cbiNjcy1tYXJrZXQtcGVyZm9ybWVycyAudWkudGFiIHtcbiAgbWluLWhlaWdodDogMjAwcHg7XG59XG4jY3MtbWFya2V0LW92ZXJ2aWV3IC51aS50YWIge1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIFNVTU1BUlkgUEFHRVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAjY3Mtc3VtbWFyeSAuY3MtY2hhcnQtb3B0aW9ucyAudWkuYnV0dG9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxZW07XG4gIH1cbiAgI2NzLXN1bW1hcnkgLmNzLWNoYXJ0LW9wdGlvbnMgLmNzLWNoYXJ0LWNvbGxhcHNlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4jY3Mtc3VtbWFyeS1zdGF0cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMTUwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1zdW1tYXJ5LXN0YXRzIC51aS5ncmlkIC5jb2x1bW4ge1xuICAgIHBhZGRpbmc6IDFlbSAhaW1wb3J0YW50O1xuICB9XG59XG4jY3Mtc3VtbWFyeS1zdGF0cyAudWkuaG9yaXpvbnRhbC5zZWdtZW50IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuI2NzLXN1bW1hcnkgLmNzLXJhbmdlLXNjYWxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFRSQURFIFNDUkVFTiBQQUdFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4jY3MtdHJhZGUtdGFibGUgdHIucmVkIHRkIHtcbiAgY29sb3I6ICNEQjI4Mjg7XG59XG4jY3MtdHJhZGUtdGFibGUgdHIuZ3JlZW4gdGQge1xuICBjb2xvcjogIzIxQkE0NTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEFSVElDTEUgUEFHRVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLWFydGljbGUtY29udGVudCB7XG4gIG1hcmdpbjogMWVtIDA7XG4gIGZvbnQtc2l6ZTogMS4zZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjZlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFNZTUJPTCBMQUJFTFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4udWkuaG9yaXpvbnRhbC5sYWJlbC5jcy1zeW1ib2wtbGFiZWwge1xuICBtaW4td2lkdGg6IDVlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIEFubm91bmNlbWVudHMgUGFnZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuI2NzLWFubm91bmNlbWVudHMgLmNzLWRldGFpbHMuaG9yaXpvbnRhbC5saXN0ID4gLml0ZW0ge1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1pbi13aWR0aDogMTIwcHg7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtZGV0YWlscy5ob3Jpem9udGFsLmxpc3QgPiAuaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgzNCwgMzYsIDM4LCAwLjE1KTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbSAhaW1wb3J0YW50O1xufVxuI2NzLWFubm91bmNlbWVudHMgLmNzLWRldGFpbHMubGlzdCA+IC5pdGVtIC5kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGNvbG9yOiAjOTk5O1xufVxuI2NzLWFubm91bmNlbWVudHMgLm5lZ2F0aXZlIHtcbiAgY29sb3I6ICNFNjBEMEQ7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgdGhlYWQgdHIgdGhbZGF0YS1rZXk9XCJkYXRlXCJdLFxuI2NzLWFubm91bmNlbWVudHMgLmNzLXRhYmxlIHRoZWFkIHRyIHRoW2RhdGEta2V5PVwiYWN0aW9uc1wiXSB7XG4gIHdpZHRoOiAxMzBweDtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSB0aGVhZCB0ciB0aFtkYXRhLWtleT1cIm5hbWVcIl0ge1xuICB3aWR0aDogMjAwcHg7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgdGhlYWQgdHIgdGhbZGF0YS1rZXk9XCJ2ZXJpZmllZFwiXSB7XG4gIHdpZHRoOiA4MHB4O1xufVxuI2NzLWFubm91bmNlbWVudHMgLnVpLnRhYltkYXRhLXRhYj1cImZpbmFuY2lhbHNcIl0gLmNzLXRhYmxlIHRoZWFkIHRyIHRoW2RhdGEta2V5PVwiZGV0YWlsc1wiXSB7XG4gIHdpZHRoOiA2OTVweDtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSB0aGVhZCB0ciB0aFtkYXRhLWtleT1cImxpbmtcIl0ge1xuICB3aWR0aDogNDVweDtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSB0Ym9keSB0ciB0ZCAuY29tcGFueSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgdGJvZHkgdHIgdGQgLmNvbXBhbnkgLmxhYmVsIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSAuZWRpdCAucmF0aW8tZmllbGRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiNjcy1hbm5vdW5jZW1lbnRzIC5jcy10YWJsZSAuZWRpdCAucmF0aW8tZmllbGRzIGlucHV0IHtcbiAgd2lkdGg6IDcwcHg7XG59XG4jY3MtYW5ub3VuY2VtZW50cyAuY3MtdGFibGUgLmVkaXQgLnJhdGlvLWZpZWxkcyBzcGFuIHtcbiAgcGFkZGluZzogMCAwLjVlbTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWFubm91bmNlbWVudHMgLnVpLm1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICNjcy1hbm5vdW5jZW1lbnRzIC51aS50YWIuYmFzaWMuc2VnbWVudCB7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG59XG4jY3MtYW5ub3VuY2VtZW50cyAjY3MtYW5ub3VuY2VtZW50cy1maWx0ZXJzIHtcbiAgcGFkZGluZzogMWVtO1xuICBiYWNrZ3JvdW5kOiAjRUVFO1xuICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG4vKi0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQ29tcGFuaWVzIFBhZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiNjcy1jb21wYW5pZXMgLmNzLXRhYmxlIHtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMTgwcHg7XG59XG4jY3MtY29tcGFuaWVzIC5jcy10YWJsZSAubGlzdCAuZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgI2NzLWNvbXBhbmllcyAuY3MtdGFibGUge1xuICAgIG1hcmdpbjogMHB4O1xuICB9XG59XG4jY3MtY29tcGFuaWVzIC5iYWxsLWdyaWQtYmVhdCA+IGRpdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQzZBOUU7XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDE7XG4gIHRvcDogMTI4cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1ZW0pO1xuICBtYXJnaW46IGF1dG8gMi41ZW07XG4gIGxlZnQ6IDBweDtcbiAgYm94LXNoYWRvdzogMHB4IDdweCAyMHB4IDBweCByZ2JhKDQ2LCA2MSwgNzMsIDAuMTUpO1xuICBtYXJnaW4tYm90dG9tOiAwLjhlbTtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAudWkuZm9ybSBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC51aS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMUQ1MjdGO1xufVxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC51aS5zZWxlY3Rpb24uZHJvcGRvd24ge1xuICB3aWR0aDogMTAwJTtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAuZmlsdGVyLW9wdGlvbnMgLmZpZWxkLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlci1vcHRpb25zIC5pbmxpbmUuZmllbGRzIC5maWVsZCA+IC51aS5pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlci1vcHRpb25zIC51aS5kcm9wZG93biA+IC50ZXh0IHtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAuZmlsdGVyLW9wdGlvbnMgLnVpLnNlbGVjdGlvbi55ZWFyLmRyb3Bkb3duIHtcbiAgd2lkdGg6IDhlbTtcbiAgbWluLXdpZHRoOiA4ZW07XG59XG4jY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlci1vcHRpb25zIC5pbmxpbmUuZmllbGRzIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAuZmlsdGVyLW9wdGlvbnMgLnVpLmdyZWVuLmxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4QTczOSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6ICMxOEE3MzkgIWltcG9ydGFudDtcbn1cbiNjcy1jb21wYW5pZXMtZmlsdGVycyAudWkuaW52ZXJ0ZWQuZm9ybSAuaW5saW5lLmZpZWxkcyAuZmllbGQgPiBsYWJlbCB7XG4gIGNvbG9yOiAjZmZmO1xufVxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC5maWx0ZXJzIC51aS5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuI2NzLWNvbXBhbmllcy1maWx0ZXJzIC51aS5pbWFnZS5sYWJlbCAuZGV0YWlsIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcGFkZGluZy1sZWZ0OiAwLjRlbTtcbiAgcGFkZGluZy1yaWdodDogMC40ZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG9wYWNpdHk6IDAuODtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICNjcy1jb21wYW5pZXMtZmlsdGVycyB7XG4gICAgcG9zaXRpb246IGluaGVyaXQ7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0b3A6IDBweDtcbiAgfVxuICAjY3MtY29tcGFuaWVzLWZpbHRlcnMgLmZpbHRlcnMgLnVpLmxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXRvcDogMC4zZW07XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmNzLXRhYmxlIHtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNzLXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogODAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tXG4gIERhc2hib2FyZCBPcGluaW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmNzLW9waW5pb24tbGlzdC5kYXNoYm9hcmQge1xuICBoZWlnaHQ6IDQwcmVtO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG59XG4uY3Mtb3Bpbmlvbi1saXN0LnJlc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UyZTJlMjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAxZW07XG4gIG1hcmdpbjogMC41ZW0gMHB4IDFlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdyAuY29sIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdyAuY29sIC5oZWFkIHtcbiAgY29sb3I6ICNjM2MxYzE7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG1hcmdpbjogMHB4O1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAucm93IC5jb2wgLmRhdGUge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBjb2xvcjogI2MzYzFjMTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnJvdy50YXJnZXQtcm93IHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC5jb21wYW55IC5zeW1ib2wtZmlsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDAuM2VtO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAuY29tcGFueSAuc3ltYm9sLWZpbGUgLnN5bWJvbCB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAuY29tcGFueSAuc3ltYm9sLWZpbGUgLm9wZW4tcGRmIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC5jb21wYW55IC5wcmljZSB7XG4gIGNvbG9yOiAjMjhhNWRmO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3BpbmlvbiAuY29tcGFueSAucHJpY2Ugc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnVwLWRvd24ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnVwLWRvd24gLnVpLmxhYmVsIHtcbiAgbWFyZ2luLXRvcDogMC4zZW07XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC51aS5sYWJlbCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24gLnVpLmxhYmVsLmJ1eSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGI3NDk7XG59XG4uY3Mtb3Bpbmlvbi1saXN0IC5vcGluaW9uIC51aS5sYWJlbC5zZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3MmMxYztcbn1cbi5jcy1vcGluaW9uLWxpc3QgLm9waW5pb24uYnV5IHtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjMDBiNzQ5O1xufVxuLmNzLW9waW5pb24tbGlzdCAub3Bpbmlvbi5zZWxsIHtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjZTcyYzFjO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3Bpbmlvbi5ob2xkIHtcbiAgYm9yZGVyLWxlZnQ6IDdweCBzb2xpZCAjMmM2YTllO1xufVxuLmNzLW9waW5pb24tbGlzdCAub3Bpbmlvbi5wYXNzZWQge1xuICBvcGFjaXR5OiAwLjU7XG59XG4uY3Mtb3Bpbmlvbi1saXN0LmRhc2hib2FyZCAub3BpbmlvbiAucm93LnRhcmdldC1yb3cgLmNvbCB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLmNvbXBhbnktdHlwZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGZvbnQtc2l6ZTogMS40ZW07XG59XG4uY29tcGFueS10eXBlIC50eXBlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRlYWw7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAuNWVtO1xuICBwYWRkaW5nOiAwIDAuN2VtO1xuICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGxpbmUtaGVpZ2h0OiAyO1xufVxuLmNvbXBhbnktdHlwZSAudHlwZS5yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGIyODI4O1xufVxuQG1lZGlhIG5vdCBhbGwgYW5kIChtaW4tcmVzb2x1dGlvbjogMC4wMDFkcGNtKSB7XG4gIC51aS5tb2RhbCBpLmNsb3NlLmljb24ge1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiAwcHg7XG4gIH1cbn1cbi5jc19fbG9hZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uY3NfX2xvYWRlciAuc3Age1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuLmNzX19sb2FkZXIgLnNwLWNpcmNsZSB7XG4gIGJvcmRlcjogNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSkgc29saWQ7XG4gIGJvcmRlci10b3A6IDRweCBibGFjayBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IHNwQ2lyY1JvdCAuNnMgaW5maW5pdGUgbGluZWFyO1xufVxuQGtleWZyYW1lcyBzcENpcmNSb3Qge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuLyogQ2hyb21lLCBTYWZhcmksIEVkZ2UsIE9wZXJhICovXG5pbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbmlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4vKiBGaXJlZm94ICovXG5pbnB1dFt0eXBlPW51bWJlcl0ge1xuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cbiJdfQ== */