/home/ryakenya/www/wp-content__4727f99/plugins/feeds-for-youtube/js/sb-youtube.min.js
/*! For license information please see sb-youtube.min.js.LICENSE.txt */
(()=>{var t={473:(t,e,i)=>{var s=i(43),n=i(323);function a(t){return null==t}function o(t){(t=function(t){var e={};for(var i in t)e[i]=t[i];return e}(t||{})).whiteList=t.whiteList||s.whiteList,t.onAttr=t.onAttr||s.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||s.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||s.safeAttrValue,this.options=t}i(100),o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,i=e.whiteList,s=e.onAttr,o=e.onIgnoreAttr,r=e.safeAttrValue;return n(t,(function(t,e,n,l,d){var h=i[n],c=!1;if(!0===h?c=h:"function"==typeof h?c=h(l):h instanceof RegExp&&(c=h.test(l)),!0!==c&&(c=!1),l=r(n,l)){var u,g={position:e,sourcePosition:t,source:d,isWhite:c};return c?a(u=s(n,l,g))?n+":"+l:u:a(u=o(n,l,g))?void 0:u}}))},t.exports=o},43:(t,e)=>{function i(){return{"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1}}var s=/javascript\s*\:/gim;e.whiteList={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1},e.getDefaultWhiteList=i,e.onAttr=function(t,e,i){},e.onIgnoreAttr=function(t,e,i){},e.safeAttrValue=function(t,e){return s.test(e)?"":e}},18:(t,e,i)=>{var s=i(43),n=i(473);for(var a in(e=t.exports=function(t,e){return new n(e).process(t)}).FilterCSS=n,s)e[a]=s[a];"undefined"!=typeof window&&(window.filterCSS=t.exports)},323:(t,e,i)=>{var s=i(100);t.exports=function(t,e){";"!==(t=s.trimRight(t))[t.length-1]&&(t+=";");var i=t.length,n=!1,a=0,o=0,r="";function l(){if(!n){var i=s.trim(t.slice(a,o)),l=i.indexOf(":");if(-1!==l){var d=s.trim(i.slice(0,l)),h=s.trim(i.slice(l+1));if(d){var c=e(a,r.length,d,h,i);c&&(r+=c+"; ")}}}a=o+1}for(;o<i;o++){var d=t[o];if("/"===d&&"*"===t[o+1]){var h=t.indexOf("*/",o+2);if(-1===h)break;a=(o=h+1)+1,n=!1}else"("===d?n=!0:")"===d?n=!1:";"===d?n||l():"\n"===d&&l()}return s.trim(r)}},100:t=>{t.exports={indexOf:function(t,e){var i,s;if(Array.prototype.indexOf)return t.indexOf(e);for(i=0,s=t.length;i<s;i++)if(t[i]===e)return i;return-1},forEach:function(t,e,i){var s,n;if(Array.prototype.forEach)return t.forEach(e,i);for(s=0,n=t.length;s<n;s++)e.call(i,t[s],s,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},48:(t,e,i)=>{var s=i(18).FilterCSS,n=i(18).getDefaultWhiteList,a=i(349);var o=new s;function r(t){return t.replace(l,"&lt;").replace(d,"&gt;")}var l=/</g,d=/>/g,h=/"/g,c=/&quot;/g,u=/&#([a-zA-Z0-9]*);?/gim,g=/&colon;?/gim,p=/&newline;?/gim,y=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a):/gi,f=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,b=/u\s*r\s*l\s*\(.*/gi;function m(t){return t.replace(h,"&quot;")}function _(t){return t.replace(c,'"')}function v(t){return t.replace(u,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function w(t){return t.replace(g,":").replace(p," ")}function x(t){for(var e="",i=0,s=t.length;i<s;i++)e+=t.charCodeAt(i)<32?" ":t.charAt(i);return a.trim(e)}function C(t){return x(t=w(t=v(t=_(t))))}function I(t){return r(t=m(t))}e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]},e.getDefaultWhiteList=function(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","crossorigin","loop","muted","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],figcaption:[],figure:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height","loading"],ins:["datetime"],kbd:[],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],summary:[],sup:[],strong:[],strike:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","crossorigin","loop","muted","playsinline","poster","preload","src","height","width"]}},e.onTag=function(t,e,i){},e.onIgnoreTag=function(t,e,i){},e.onTagAttr=function(t,e,i){},e.onIgnoreTagAttr=function(t,e,i){},e.safeAttrValue=function(t,e,i,s){if(i=C(i),"href"===e||"src"===e){if("#"===(i=a.trim(i)))return"#";if("http://"!==i.substr(0,7)&&"https://"!==i.substr(0,8)&&"mailto:"!==i.substr(0,7)&&"tel:"!==i.substr(0,4)&&"data:image/"!==i.substr(0,11)&&"ftp://"!==i.substr(0,6)&&"./"!==i.substr(0,2)&&"../"!==i.substr(0,3)&&"#"!==i[0]&&"/"!==i[0])return""}else if("background"===e){if(y.lastIndex=0,y.test(i))return""}else if("style"===e){if(f.lastIndex=0,f.test(i))return"";if(b.lastIndex=0,b.test(i)&&(y.lastIndex=0,y.test(i)))return"";!1!==s&&(i=(s=s||o).process(i))}return I(i)},e.escapeHtml=r,e.escapeQuote=m,e.unescapeQuote=_,e.escapeHtmlEntities=v,e.escapeDangerHtml5Entities=w,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=C,e.escapeAttrValue=I,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var i=!Array.isArray(t),s=[],n=!1;return{onIgnoreTag:function(o,r,l){if(function(e){return!!i||-1!==a.indexOf(t,e)}(o)){if(l.isClosing){var d=l.position+10;return s.push([!1!==n?n:l.position,d]),n=!1,"[/removed]"}return n||(n=l.position),"[removed]"}return e(o,r,l)},remove:function(t){var e="",i=0;return a.forEach(s,(function(s){e+=t.slice(i,s[0]),i=s[1]})),e+=t.slice(i)}}},e.stripCommentTag=function(t){for(var e="",i=0;i<t.length;){var s=t.indexOf("\x3c!--",i);if(-1===s){e+=t.slice(i);break}e+=t.slice(i,s);var n=t.indexOf("--\x3e",s);if(-1===n)break;i=n+3}return e},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return!(127===e||e<=31&&10!==e&&13!==e)}))).join("")},e.attributeWrapSign='"',e.cssFilter=o,e.getDefaultCSSWhiteList=n},5:(t,e,i)=>{var s=i(48),n=i(930),a=i(327);function o(t,e){return new a(e).process(t)}(e=t.exports=o).filterXSS=o,e.FilterXSS=a,function(){for(var t in s)e[t]=s[t];for(var i in n)e[i]=n[i]}(),"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},930:(t,e,i)=>{var s=i(349);function n(t){var e,i=s.spaceIndex(t);return e=-1===i?t.slice(1,-1):t.slice(1,i+1),"/"===(e=s.trim(e).toLowerCase()).slice(0,1)&&(e=e.slice(1)),"/"===e.slice(-1)&&(e=e.slice(0,-1)),e}function a(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9\\_:.-]/gim;function r(t,e){for(;e<t.length;e++){var i=t[e];if(" "!==i)return"="===i?e:-1}}function l(t,e){for(;e<t.length;e++){var i=t[e];if(" "!==i)return"'"===i||'"'===i?e:-1}}function d(t,e){for(;e>0;e--){var i=t[e];if(" "!==i)return"="===i?e:-1}}function h(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,i){"use strict";var s="",o=0,r=!1,l=!1,d=0,h=t.length,c="",u="";t:for(d=0;d<h;d++){var g=t.charAt(d);if(!1===r){if("<"===g){r=d;continue}}else if(!1===l){if("<"===g){s+=i(t.slice(o,d)),r=d,o=d;continue}if(">"===g||d===h-1){s+=i(t.slice(o,r)),c=n(u=t.slice(r,d+1)),s+=e(r,s.length,c,u,a(u)),o=d+1,r=!1;continue}if('"'===g||"'"===g)for(var p=1,y=t.charAt(d-p);""===y.trim()||"="===y;){if("="===y){l=g;continue t}y=t.charAt(d-++p)}}else if(g===l){l=!1;continue}}return o<h&&(s+=i(t.substr(o))),s},e.parseAttr=function(t,e){"use strict";var i=0,n=0,a=[],c=!1,u=t.length;function g(t,i){if(!((t=(t=s.trim(t)).replace(o,"").toLowerCase()).length<1)){var n=e(t,i||"");n&&a.push(n)}}for(var p=0;p<u;p++){var y,f=t.charAt(p);if(!1!==c||"="!==f)if(!1===c||p!==n){if(/\s|\n|\t/.test(f)){if(t=t.replace(/\s|\n|\t/g," "),!1===c){if(-1===(y=r(t,p))){g(s.trim(t.slice(i,p))),c=!1,i=p+1;continue}p=y-1;continue}if(-1===(y=d(t,p-1))){g(c,h(s.trim(t.slice(i,p)))),c=!1,i=p+1;continue}}}else{if(-1===(y=t.indexOf(f,p+1)))break;g(c,s.trim(t.slice(n+1,y))),c=!1,i=(p=y)+1}else c=t.slice(i,p),i=p+1,n='"'===t.charAt(i)||"'"===t.charAt(i)?i:l(t,p+1)}return i<t.length&&(!1===c?g(t.slice(i)):g(c,h(s.trim(t.slice(i))))),s.trim(a.join(" "))}},349:t=>{t.exports={indexOf:function(t,e){var i,s;if(Array.prototype.indexOf)return t.indexOf(e);for(i=0,s=t.length;i<s;i++)if(t[i]===e)return i;return-1},forEach:function(t,e,i){var s,n;if(Array.prototype.forEach)return t.forEach(e,i);for(s=0,n=t.length;s<n;s++)e.call(i,t[s],s,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},327:(t,e,i)=>{var s=i(18).FilterCSS,n=i(48),a=i(930),o=a.parseTag,r=a.parseAttr,l=i(349);function d(t){return null==t}function h(t){(t=function(t){var e={};for(var i in t)e[i]=t[i];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=n.onIgnoreTagStripAll),t.whiteList||t.allowList?t.whiteList=function(t){var e={};for(var i in t)Array.isArray(t[i])?e[i.toLowerCase()]=t[i].map((function(t){return t.toLowerCase()})):e[i.toLowerCase()]=t[i];return e}(t.whiteList||t.allowList):t.whiteList=n.whiteList,this.attributeWrapSign=!0===t.singleQuotedAttributeValue?"'":n.attributeWrapSign,t.onTag=t.onTag||n.onTag,t.onTagAttr=t.onTagAttr||n.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||n.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||n.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||n.safeAttrValue,t.escapeHtml=t.escapeHtml||n.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new s(t.css))}h.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this,i=e.options,s=i.whiteList,a=i.onTag,h=i.onIgnoreTag,c=i.onTagAttr,u=i.onIgnoreTagAttr,g=i.safeAttrValue,p=i.escapeHtml,y=e.attributeWrapSign,f=e.cssFilter;i.stripBlankChar&&(t=n.stripBlankChar(t)),i.allowCommentTag||(t=n.stripCommentTag(t));var b=!1;i.stripIgnoreTagBody&&(b=n.StripTagBody(i.stripIgnoreTagBody,h),h=b.onIgnoreTag);var m=o(t,(function(t,e,i,n,o){var b={sourcePosition:t,position:e,isClosing:o,isWhite:Object.prototype.hasOwnProperty.call(s,i)},m=a(i,n,b);if(!d(m))return m;if(b.isWhite){if(b.isClosing)return"</"+i+">";var _=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var i="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return i&&(t=l.trim(t.slice(0,-1))),{html:t,closing:i}}(n),v=s[i],w=r(_.html,(function(t,e){var s=-1!==l.indexOf(v,t),n=c(i,t,e,s);return d(n)?s?(e=g(i,t,e,f))?t+"="+y+e+y:t:d(n=u(i,t,e,s))?void 0:n:n}));return n="<"+i,w&&(n+=" "+w),_.closing&&(n+=" /"),n+">"}return d(m=h(i,n,b))?p(n):m}),p);return b&&(m=b.remove(m)),m},t.exports=h}},e={};function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}var s,n,a,o,r,l,d,h,c,u=function i(s){var n=e[s];if(void 0!==n)return n.exports;var a=e[s]={exports:{}};return t[s](a,a.exports,i),a.exports}(5),g=void 0!==g;if(!g){var p=function(t){return u(t)},y=function(){return!!document.createElement("video").canPlayType};if(window.sbyLinkify=(n="[a-z\\d.-]+://",a="(?:(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)|(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5]))",o="(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?",r="mailto:",l=new RegExp("(?:\\b"+n+"[^<>\\s]+|\\b"+a+"(?:[;/][^#?<>\\s]*)?"+o+"(?!\\w)|(?:"+r+")?[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@"+a+o+"(?!\\w))","ig"),d=new RegExp("^"+n,"i"),h={"'":"`",">":"<",")":"(","]":"[","}":"{","B;":"B+","b:":"b9"},c={callback:function(t,e){return e?'<a href="'+e+'" title="'+e+'" target="_blank" rel="noopener">'+t+"</a>":t},punct_regexp:/(?:[!?.,:;'"]|(?:&|&amp;)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)$/},function(t,e){e=e||{};var i,s,n,a,o,u,g,p,y,f,b,m,_="",v=[];for(s in c)void 0===e[s]&&(e[s]=c[s]);for(;i=l.exec(t);)if(n=i[0],g=(u=l.lastIndex)-n.length,!/[\/:]/.test(t.charAt(g-1))){do{p=n,m=n.substr(-1),(b=h[m])&&(y=n.match(new RegExp("\\"+b+"(?!$)","g")),f=n.match(new RegExp("\\"+m,"g")),(y?y.length:0)<(f?f.length:0)&&(n=n.substr(0,n.length-1),u--)),e.punct_regexp&&(n=n.replace(e.punct_regexp,(function(t){return u-=t.length,""})))}while(n.length&&n!==p);a=n,d.test(a)||(a=(-1!==a.indexOf("@")?a.indexOf(r)?r:"":a.indexOf("irc.")?a.indexOf("ftp.")?"http://":"ftp://":"irc://")+a),o!=g&&(v.push([t.slice(o,g)]),o=u),v.push([n,a])}for(v.push([t.substr(o)]),s=0;s<v.length;s++)_+=e.callback.apply(window,v[s]);return _||t}),function(t,e,s,n){function a(e,i){this.settings=null,this.options=t.extend({},a.Defaults,i),this.$element=t(e),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},t.each(["onResize","onThrottledResize"],t.proxy((function(e,i){this._handlers[i]=t.proxy(this[i],this)}),this)),t.each(a.Plugins,t.proxy((function(t,e){this._plugins[t.charAt(0).toLowerCase()+t.slice(1)]=new e(this)}),this)),t.each(a.Workers,t.proxy((function(e,i){this._pipe.push({filter:i.filter,run:t.proxy(i.run,this)})}),this)),this.setup(),this.initialize()}a.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:e,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"sby-owl-refresh",loadedClass:"sby-owl-loaded",loadingClass:"sby-owl-loading",rtlClass:"sby-owl-rtl",responsiveClass:"sby-owl-responsive",dragClass:"sby-owl-drag",itemClass:"sby-owl-item",stageClass:"sby-owl-stage",stageOuterClass:"sby-owl-stage-outer",grabClass:"sby-owl-grab"},a.Width={Default:"default",Inner:"inner",Outer:"outer"},a.Type={Event:"event",State:"state"},a.Plugins={},a.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(t){t.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(t){var e=this.settings.margin||"",i=!this.settings.autoWidth,s=this.settings.rtl,n={width:"auto","margin-left":s?e:"","margin-right":s?"":e};!i&&this.$stage.children().css(n),t.css=n}},{filter:["width","items","settings"],run:function(t){var e=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,i=null,s=this._items.length,n=!this.settings.autoWidth,a=[];for(t.items={merge:!1,width:e};s--;)i=this._mergers[s],i=this.settings.mergeFit&&Math.min(i,this.settings.items)||i,t.items.merge=i>1||t.items.merge,a[s]=n?e*i:this._items[s].width();this._widths=a}},{filter:["items","settings"],run:function(){var e=[],i=this._items,s=this.settings,n=Math.max(2*s.items,4),a=2*Math.ceil(i.length/2),o=s.loop&&i.length?s.rewind?n:Math.max(n,a):0,r="",l="";for(o/=2;o--;)e.push(this.normalize(e.length/2,!0)),r+=i[e[e.length-1]][0].outerHTML,e.push(this.normalize(i.length-1-(e.length-1)/2,!0)),l=i[e[e.length-1]][0].outerHTML+l;this._clones=e,t(r).addClass("cloned").appendTo(this.$stage),t(l).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var t=this.settings.rtl?1:-1,e=this._clones.length+this._items.length,i=-1,s=0,n=0,a=[];++i<e;)s=a[i-1]||0,n=this._widths[this.relative(i)]+this.settings.margin,a.push(s+n*t);this._coordinates=a}},{filter:["width","items","settings"],run:function(){var t=this.settings.stagePadding,e=this._coordinates,i={width:Math.ceil(Math.abs(e[e.length-1]))+2*t,"padding-left":t||"","padding-right":t||""};this.$stage.css(i)}},{filter:["width","items","settings"],run:function(t){var e=this._coordinates.length,i=!this.settings.autoWidth,s=this.$stage.children();if(i&&t.items.merge)for(;e--;)t.css.width=this._widths[this.relative(e)],s.eq(e).css(t.css);else i&&(t.css.width=t.items.width,s.css(t.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(t){t.current=t.current?this.$stage.children().index(t.current):0,t.current=Math.max(this.minimum(),Math.min(this.maximum(),t.current)),this.reset(t.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var t,e,i,s,n=this.settings.rtl?1:-1,a=2*this.settings.stagePadding,o=this.coordinates(this.current())+a,r=o+this.width()*n,l=[];for(i=0,s=this._coordinates.length;i<s;i++)t=this._coordinates[i-1]||0,e=Math.abs(this._coordinates[i])+a*n,(this.op(t,"<=",o)&&this.op(t,">",r)||this.op(e,"<",o)&&this.op(e,">",r))&&l.push(i);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+l.join("), :eq(")+")").addClass("active"),this.settings.center&&(this.$stage.children(".center").removeClass("center"),this.$stage.children().eq(this.current()).addClass("center"))}}],a.prototype.initialize=function(){var e,i,s;this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")&&(e=this.$element.find("img"),i=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:n,s=this.$element.children(i).width(),e.length&&s<=0&&this.preloadAutoWidthImages(e)),this.$element.addClass(this.options.loadingClass),this.$stage=t("<"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/>').wrap('<div class="'+this.settings.stageOuterClass+'"/>'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(":visible")?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},a.prototype.setup=function(){var e=this.viewport(),i=this.options.responsive,s=-1,n=null;i?(t.each(i,(function(t){t<=e&&t>s&&(s=Number(t))})),"function"==typeof(n=t.extend({},this.options,i[s])).stagePadding&&(n.stagePadding=n.stagePadding()),delete n.responsive,n.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+s))):n=t.extend({},this.options),this.trigger("change",{property:{name:"settings",value:n}}),this._breakpoint=s,this.settings=n,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},a.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},a.prototype.prepare=function(e){var i=this.trigger("prepare",{content:e});return i.data||(i.data=t("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(e)),this.trigger("prepared",{content:i.data}),i.data},a.prototype.update=function(){for(var e=0,i=this._pipe.length,s=t.proxy((function(t){return this[t]}),this._invalidated),n={};e<i;)(this._invalidated.all||t.grep(this._pipe[e].filter,s).length>0)&&this._pipe[e].run(n),e++;this._invalidated={},!this.is("valid")&&this.enter("valid")},a.prototype.width=function(t){switch(t=t||a.Width.Default){case a.Width.Inner:case a.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},a.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},a.prototype.onThrottledResize=function(){e.clearTimeout(this.resizeTimer),this.resizeTimer=e.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},a.prototype.onResize=function(){return!!this._items.length&&this._width!==this.$element.width()&&!!this.$element.is(":visible")&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))},a.prototype.registerEventHandlers=function(){t.support.transition&&this.$stage.on(t.support.transition.end+".owl.core",t.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(e,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",t.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",(function(){return!1}))),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",t.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",t.proxy(this.onDragEnd,this)))},a.prototype.onDragStart=function(e){var i=null;3!==e.which&&(t.support.transform?i={x:(i=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","))[16===i.length?12:4],y:i[16===i.length?13:5]}:(i=this.$stage.position(),i={x:this.settings.rtl?i.left+this.$stage.width()-this.width()+this.settings.margin:i.left,y:i.top}),this.is("animating")&&(t.support.transform?this.animate(i.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===e.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=t(e.target),this._drag.stage.start=i,this._drag.stage.current=i,this._drag.pointer=this.pointer(e),t(s).on("mouseup.owl.core touchend.owl.core",t.proxy(this.onDragEnd,this)),t(s).one("mousemove.owl.core touchmove.owl.core",t.proxy((function(e){var i=this.difference(this._drag.pointer,this.pointer(e));t(s).on("mousemove.owl.core touchmove.owl.core",t.proxy(this.onDragMove,this)),Math.abs(i.x)<Math.abs(i.y)&&this.is("valid")||(e.preventDefault(),this.enter("dragging"),this.trigger("drag"))}),this)))},a.prototype.onDragMove=function(t){var e=null,i=null,s=null,n=this.difference(this._drag.pointer,this.pointer(t)),a=this.difference(this._drag.stage.start,n);this.is("dragging")&&(t.preventDefault(),this.settings.loop?(e=this.coordinates(this.minimum()),i=this.coordinates(this.maximum()+1)-e,a.x=((a.x-e)%i+i)%i+e):(e=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),i=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),s=this.settings.pullDrag?-1*n.x/5:0,a.x=Math.max(Math.min(a.x,e+s),i+s)),this._drag.stage.current=a,this.animate(a.x))},a.prototype.onDragEnd=function(e){var i=this.difference(this._drag.pointer,this.pointer(e)),n=this._drag.stage.current,a=i.x>0^this.settings.rtl?"left":"right";t(s).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==i.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(n.x,0!==i.x?a:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=a,(Math.abs(i.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",(function(){return!1}))),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},a.prototype.closest=function(e,i){var s=-1,n=this.width(),a=this.coordinates();return this.settings.freeDrag||t.each(a,t.proxy((function(t,o){return"left"===i&&e>o-30&&e<o+30?s=t:"right"===i&&e>o-n-30&&e<o-n+30?s=t+1:this.op(e,"<",o)&&this.op(e,">",a[t+1]||o-n)&&(s="left"===i?t+1:t),-1===s}),this)),this.settings.loop||(this.op(e,">",a[this.minimum()])?s=e=this.minimum():this.op(e,"<",a[this.maximum()])&&(s=e=this.maximum())),s},a.prototype.animate=function(e){var i=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),i&&(this.enter("animating"),this.trigger("translate")),t.support.transform3d&&t.support.transition?this.$stage.css({transform:"translate3d("+e+"px,0px,0px)",transition:this.speed()/1e3+"s"}):i?this.$stage.animate({left:e+"px"},this.speed(),this.settings.fallbackEasing,t.proxy(this.onTransitionEnd,this)):this.$stage.css({left:e+"px"})},a.prototype.is=function(t){return this._states.current[t]&&this._states.current[t]>0},a.prototype.current=function(t){if(t===n)return this._current;if(0===this._items.length)return n;if(t=this.normalize(t),this._current!==t){var e=this.trigger("change",{property:{name:"position",value:t}});e.data!==n&&(t=this.normalize(e.data)),this._current=t,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},a.prototype.invalidate=function(e){return"string"===t.type(e)&&(this._invalidated[e]=!0,this.is("valid")&&this.leave("valid")),t.map(this._invalidated,(function(t,e){return e}))},a.prototype.reset=function(t){(t=this.normalize(t))!==n&&(this._speed=0,this._current=t,this.suppress(["translate","translated"]),this.animate(this.coordinates(t)),this.release(["translate","translated"]))},a.prototype.normalize=function(t,e){var i=this._items.length,s=e?0:this._clones.length;return!this.isNumeric(t)||i<1?t=n:(t<0||t>=i+s)&&(t=((t-s/2)%i+i)%i+s/2),t},a.prototype.relative=function(t){return t-=this._clones.length/2,this.normalize(t,!0)},a.prototype.maximum=function(t){var e,i,s,n=this.settings,a=this._coordinates.length;if(n.loop)a=this._clones.length/2+this._items.length-1;else if(n.autoWidth||n.merge){for(e=this._items.length,i=this._items[--e].width(),s=this.$element.width();e--&&!((i+=this._items[e].width()+this.settings.margin)>s););a=e+1}else a=n.center?this._items.length-1:this._items.length-n.items;return t&&(a-=this._clones.length/2),Math.max(a,0)},a.prototype.minimum=function(t){return t?0:this._clones.length/2},a.prototype.items=function(t){return t===n?this._items.slice():(t=this.normalize(t,!0),this._items[t])},a.prototype.mergers=function(t){return t===n?this._mergers.slice():(t=this.normalize(t,!0),this._mergers[t])},a.prototype.clones=function(e){var i=this._clones.length/2,s=i+this._items.length,a=function(t){return t%2==0?s+t/2:i-(t+1)/2};return e===n?t.map(this._clones,(function(t,e){return a(e)})):t.map(this._clones,(function(t,i){return t===e?a(i):null}))},a.prototype.speed=function(t){return t!==n&&(this._speed=t),this._speed},a.prototype.coordinates=function(e){var i,s=1,a=e-1;return e===n?t.map(this._coordinates,t.proxy((function(t,e){return this.coordinates(e)}),this)):(this.settings.center?(this.settings.rtl&&(s=-1,a=e+1),i=this._coordinates[e],i+=(this.width()-i+(this._coordinates[a]||0))/2*s):i=this._coordinates[a]||0,i=Math.ceil(i))},a.prototype.duration=function(t,e,i){return 0===i?0:Math.min(Math.max(Math.abs(e-t),1),6)*Math.abs(i||this.settings.smartSpeed)},a.prototype.to=function(t,e){var i=this.current(),s=null,n=t-this.relative(i),a=(n>0)-(n<0),o=this._items.length,r=this.minimum(),l=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(n)>o/2&&(n+=-1*a*o),(s=(((t=i+n)-r)%o+o)%o+r)!==t&&s-n<=l&&s-n>0&&(i=s-n,t=s,this.reset(i))):t=this.settings.rewind?(t%(l+=1)+l)%l:Math.max(r,Math.min(l,t)),this.speed(this.duration(i,t,e)),this.current(t),this.$element.is(":visible")&&this.update()},a.prototype.next=function(t){t=t||!1,this.to(this.relative(this.current())+1,t)},a.prototype.prev=function(t){t=t||!1,this.to(this.relative(this.current())-1,t)},a.prototype.onTransitionEnd=function(t){if(t!==n&&(t.stopPropagation(),(t.target||t.srcElement||t.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},a.prototype.viewport=function(){var i;return this.options.responsiveBaseElement!==e?i=t(this.options.responsiveBaseElement).width():e.innerWidth?i=e.innerWidth:s.documentElement&&s.documentElement.clientWidth?i=s.documentElement.clientWidth:console.warn("Can not detect viewport width."),i},a.prototype.replace=function(e){this.$stage.empty(),this._items=[],e&&(e=e instanceof jQuery?e:t(e)),this.settings.nestedItemSelector&&(e=e.find("."+this.settings.nestedItemSelector)),e.filter((function(){return 1===this.nodeType})).each(t.proxy((function(t,e){e=this.prepare(e),this.$stage.append(e),this._items.push(e),this._mergers.push(1*e.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)}),this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},a.prototype.add=function(e,i){var s=this.relative(this._current);i=i===n?this._items.length:this.normalize(i,!0),e=e instanceof jQuery?e:t(e),this.trigger("add",{content:e,position:i}),e=this.prepare(e),0===this._items.length||i===this._items.length?(0===this._items.length&&this.$stage.append(e),0!==this._items.length&&this._items[i-1].after(e),this._items.push(e),this._mergers.push(1*e.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[i].before(e),this._items.splice(i,0,e),this._mergers.splice(i,0,1*e.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[s]&&this.reset(this._items[s].index()),this.invalidate("items"),this.trigger("added",{content:e,position:i})},a.prototype.remove=function(t){(t=this.normalize(t,!0))!==n&&(this.trigger("remove",{content:this._items[t],position:t}),this._items[t].remove(),this._items.splice(t,1),this._mergers.splice(t,1),this.invalidate("items"),this.trigger("removed",{content:null,position:t}))},a.prototype.preloadAutoWidthImages=function(e){e.each(t.proxy((function(e,i){this.enter("pre-loading"),i=t(i),t(new Image).one("load",t.proxy((function(t){i.attr("src",t.target.src),i.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()}),this)).attr("src",i.attr("src")||i.attr("data-src")||i.attr("data-src-retina"))}),this))},a.prototype.destroy=function(){for(var i in this.$element.off(".owl.core"),this.$stage.off(".owl.core"),t(s).off(".owl.core"),!1!==this.settings.responsive&&(e.clearTimeout(this.resizeTimer),this.off(e,"resize",this._handlers.onThrottledResize)),this._plugins)this._plugins[i].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},a.prototype.op=function(t,e,i){var s=this.settings.rtl;switch(e){case"<":return s?t>i:t<i;case">":return s?t<i:t>i;case">=":return s?t<=i:t>=i;case"<=":return s?t>=i:t<=i}},a.prototype.on=function(t,e,i,s){t.addEventListener?t.addEventListener(e,i,s):t.attachEvent&&t.attachEvent("on"+e,i)},a.prototype.off=function(t,e,i,s){t.removeEventListener?t.removeEventListener(e,i,s):t.detachEvent&&t.detachEvent("on"+e,i)},a.prototype.trigger=function(e,i,s,n,o){var r={item:{count:this._items.length,index:this.current()}},l=t.camelCase(t.grep(["on",e,s],(function(t){return t})).join("-").toLowerCase()),d=t.Event([e,"owl",s||"carousel"].join(".").toLowerCase(),t.extend({relatedTarget:this},r,i));return this._supress[e]||(t.each(this._plugins,(function(t,e){e.onTrigger&&e.onTrigger(d)})),this.register({type:a.Type.Event,name:e}),this.$element.trigger(d),this.settings&&"function"==typeof this.settings[l]&&this.settings[l].call(this,d)),d},a.prototype.enter=function(e){t.each([e].concat(this._states.tags[e]||[]),t.proxy((function(t,e){this._states.current[e]===n&&(this._states.current[e]=0),this._states.current[e]++}),this))},a.prototype.leave=function(e){t.each([e].concat(this._states.tags[e]||[]),t.proxy((function(t,e){this._states.current[e]--}),this))},a.prototype.register=function(e){if(e.type===a.Type.Event){if(t.event.special[e.name]||(t.event.special[e.name]={}),!t.event.special[e.name].owl){var i=t.event.special[e.name]._default;t.event.special[e.name]._default=function(t){return!i||!i.apply||t.namespace&&-1!==t.namespace.indexOf("owl")?t.namespace&&t.namespace.indexOf("owl")>-1:i.apply(this,arguments)},t.event.special[e.name].owl=!0}}else e.type===a.Type.State&&(this._states.tags[e.name]?this._states.tags[e.name]=this._states.tags[e.name].concat(e.tags):this._states.tags[e.name]=e.tags,this._states.tags[e.name]=t.grep(this._states.tags[e.name],t.proxy((function(i,s){return t.inArray(i,this._states.tags[e.name])===s}),this)))},a.prototype.suppress=function(e){t.each(e,t.proxy((function(t,e){this._supress[e]=!0}),this))},a.prototype.release=function(e){t.each(e,t.proxy((function(t,e){delete this._supress[e]}),this))},a.prototype.pointer=function(t){var i={x:null,y:null};return(t=(t=t.originalEvent||t||e.event).touches&&t.touches.length?t.touches[0]:t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t).pageX?(i.x=t.pageX,i.y=t.pageY):(i.x=t.clientX,i.y=t.clientY),i},a.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))},a.prototype.difference=function(t,e){return{x:t.x-e.x,y:t.y-e.y}},t.fn.sbyOwlCarousel=function(e){var s=Array.prototype.slice.call(arguments,1);return this.each((function(){var n=t(this),o=n.data("owl.carousel");o||(o=new a(this,"object"==i(e)&&e),n.data("owl.carousel",o),t.each(["next","prev","to","destroy","refresh","replace","add","remove"],(function(e,i){o.register({type:a.Type.Event,name:i}),o.$element.on(i+".owl.carousel.core",t.proxy((function(t){t.namespace&&t.relatedTarget!==this&&(this.suppress([i]),o[i].apply(this,[].slice.call(arguments,1)),this.release([i]))}),o))}))),"string"==typeof e&&"_"!==e.charAt(0)&&o[e].apply(o,s)}))},t.fn.sbyOwlCarousel.Constructor=a}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoRefresh&&this.watch()}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};n.Defaults={autoRefresh:!0,autoRefreshInterval:500},n.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(":visible"),this._interval=e.setInterval(t.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},n.prototype.refresh=function(){this._core.$element.is(":visible")!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("sby-owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},n.prototype.destroy=function(){var t,i;for(t in e.clearInterval(this._interval),this._handlers)this._core.$element.off(t,this._handlers[t]);for(i in Object.getOwnPropertyNames(this))"function"!=typeof this[i]&&(this[i]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.AutoRefresh=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":t.proxy((function(e){if(e.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(e.property&&"position"==e.property.name||"initialized"==e.type))for(var i=this._core.settings,s=i.center&&Math.ceil(i.items/2)||i.items,n=i.center&&-1*s||0,a=(e.property&&void 0!==e.property.value?e.property.value:this._core.current())+n,o=this._core.clones().length,r=t.proxy((function(t,e){this.load(e)}),this);n++<s;)this.load(o/2+this._core.relative(a)),o&&t.each(this._core.clones(this._core.relative(a)),r),a++}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};n.Defaults={lazyLoad:!1},n.prototype.load=function(i){var s=this._core.$stage.children().eq(i),n=s&&s.find(".sby-owl-lazy");!n||t.inArray(s.get(0),this._loaded)>-1||(n.each(t.proxy((function(i,s){var n,a=t(s),o=e.devicePixelRatio>1&&a.attr("data-src-retina")||a.attr("data-src");this._core.trigger("load",{element:a,url:o},"lazy"),a.is("img")?a.one("load.owl.lazy",t.proxy((function(){a.css("opacity",1),this._core.trigger("loaded",{element:a,url:o},"lazy")}),this)).attr("src",o):((n=new Image).onload=t.proxy((function(){a.css({"background-image":'url("'+o+'")',opacity:"1"}),this._core.trigger("loaded",{element:a,url:o},"lazy")}),this),n.src=o)}),this)),this._loaded.push(s.get(0)))},n.prototype.destroy=function(){var t,e;for(t in this.handlers)this._core.$element.off(t,this.handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Lazy=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoHeight&&this.update()}),this),"changed.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoHeight&&"position"==t.property.name&&this.update()}),this),"loaded.owl.lazy":t.proxy((function(t){t.namespace&&this._core.settings.autoHeight&&t.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};n.Defaults={autoHeight:!1,autoHeightClass:"sby-owl-height"},n.prototype.update=function(){var e,i=this._core._current,s=i+this._core.settings.items,n=this._core.$stage.children().toArray().slice(i,s),a=[];t.each(n,(function(e,i){a.push(t(i).height())})),e=Math.max.apply(null,a),this._core.$stage.parent().height(e).addClass(this._core.settings.autoHeightClass)},n.prototype.destroy=function(){var t,e;for(t in this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.AutoHeight=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":t.proxy((function(t){t.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})}),this),"resize.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.video&&this.isInFullScreen()&&t.preventDefault()}),this),"refreshed.owl.carousel":t.proxy((function(t){t.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .sby-owl-video-frame").remove()}),this),"changed.owl.carousel":t.proxy((function(t){t.namespace&&"position"===t.property.name&&this._playing&&this.stop()}),this),"prepared.owl.carousel":t.proxy((function(e){if(e.namespace){var i=t(e.content).find(".sby-owl-video");i.length&&(i.css("display","none"),this.fetch(i,t(e.content)))}}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".sby-owl-video-play-icon",t.proxy((function(t){this.play(t)}),this))};n.Defaults={video:!1,videoHeight:!1,videoWidth:!1},n.prototype.fetch=function(t,e){var i=t.attr("data-vimeo-id")?"vimeo":t.attr("data-vzaar-id")?"vzaar":"youtube",s=t.attr("data-vimeo-id")||t.attr("data-youtube-id")||t.attr("data-vzaar-id"),n=t.attr("data-width")||this._core.settings.videoWidth,a=t.attr("data-height")||this._core.settings.videoHeight,o=t.attr("href");if(!o)throw new Error("Missing video URL.");if((s=o.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/))[3].indexOf("youtu")>-1)i="youtube";else if(s[3].indexOf("vimeo")>-1)i="vimeo";else{if(!(s[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");i="vzaar"}s=s[6],this._videos[o]={type:i,id:s,width:n,height:a},e.attr("data-video",o),this.thumbnail(t,this._videos[o])},n.prototype.thumbnail=function(e,i){var s,n,a=i.width&&i.height?'style="width:'+i.width+"px;height:"+i.height+'px;"':"",o=e.find("img"),r="src",l="",d=this._core.settings,h=function(t){s=d.lazyLoad?'<div class="sby-owl-video-tn '+l+'" '+r+'="'+t+'"></div>':'<div class="sby-owl-video-tn" style="opacity:1;background-image:url('+t+')"></div>',e.after(s),e.after('<div class="sby-owl-video-play-icon"></div>')};if(e.wrap('<div class="sby-owl-video-wrapper"'+a+"></div>"),this._core.settings.lazyLoad&&(r="data-src",l="sby-owl-lazy"),o.length)return h(o.attr(r)),o.remove(),!1;"youtube"===i.type?(n="//img.youtube.com/vi/"+i.id+"/hqdefault.jpg",h(n)):"vimeo"===i.type?t.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+i.id+".json",jsonp:"callback",dataType:"jsonp",success:function(t){n=t[0].thumbnail_large,h(n)}}):"vzaar"===i.type&&t.ajax({type:"GET",url:"//vzaar.com/api/videos/"+i.id+".json",jsonp:"callback",dataType:"jsonp",success:function(t){n=t.framegrab_url,h(n)}})},n.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".sby-owl-video-frame").remove(),this._playing.removeClass("sby-owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},n.prototype.play=function(e){var i,s=t(e.target).closest("."+this._core.settings.itemClass),n=this._videos[s.attr("data-video")],a=n.width||"100%",o=n.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),s=this._core.items(this._core.relative(s.index())),this._core.reset(s.index()),"youtube"===n.type?i='<iframe width="'+a+'" height="'+o+'" src="//www.youtube.com/embed/'+n.id+"?autoplay=1&rel=0&v="+n.id+'" frameborder="0" allowfullscreen></iframe>':"vimeo"===n.type?i='<iframe src="//player.vimeo.com/video/'+n.id+'?autoplay=1" width="'+a+'" height="'+o+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>':"vzaar"===n.type&&(i='<iframe frameborder="0"height="'+o+'"width="'+a+'" allowfullscreen mozallowfullscreen webkitAllowFullScreen src="//view.vzaar.com/'+n.id+'/player?autoplay=true"></iframe>'),t('<div class="sby-owl-video-frame">'+i+"</div>").insertAfter(s.find(".sby-owl-video")),this._playing=s.addClass("sby-owl-video-playing"))},n.prototype.isInFullScreen=function(){var e=i.fullscreenElement||i.mozFullScreenElement||i.webkitFullscreenElement;return e&&t(e).parent().hasClass("sby-owl-video-frame")},n.prototype.destroy=function(){var t,e;for(t in this._core.$element.off("click.owl.video"),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Video=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this.core=i,this.core.options=t.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=s,this.next=s,this.handlers={"change.owl.carousel":t.proxy((function(t){t.namespace&&"position"==t.property.name&&(this.previous=this.core.current(),this.next=t.property.value)}),this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":t.proxy((function(t){t.namespace&&(this.swapping="translated"==t.type)}),this),"translate.owl.carousel":t.proxy((function(t){t.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()}),this)},this.core.$element.on(this.handlers)};n.Defaults={animateOut:!1,animateIn:!1},n.prototype.swap=function(){if(1===this.core.settings.items&&t.support.animation&&t.support.transition){this.core.speed(0);var e,i=t.proxy(this.clear,this),s=this.core.$stage.children().eq(this.previous),n=this.core.$stage.children().eq(this.next),a=this.core.settings.animateIn,o=this.core.settings.animateOut;this.core.current()!==this.previous&&(o&&(e=this.core.coordinates(this.previous)-this.core.coordinates(this.next),s.one(t.support.animation.end,i).css({left:e+"px"}).addClass("animated sby-owl-animated-out").addClass(o)),a&&n.one(t.support.animation.end,i).addClass("animated sby-owl-animated-in").addClass(a))}},n.prototype.clear=function(e){t(e.target).css({left:""}).removeClass("animated sby-owl-animated-out sby-owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},n.prototype.destroy=function(){var t,e;for(t in this.handlers)this.core.$element.off(t,this.handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Animate=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){var n=function e(i){this._core=i,this._timeout=null,this._paused=!1,this._handlers={"changed.owl.carousel":t.proxy((function(t){t.namespace&&"settings"===t.property.name?this._core.settings.autoplay?this.play():this.stop():t.namespace&&"position"===t.property.name&&this._core.settings.autoplay&&this._setAutoPlayInterval()}),this),"initialized.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.autoplay&&this.play()}),this),"play.owl.autoplay":t.proxy((function(t,e,i){t.namespace&&this.play(e,i)}),this),"stop.owl.autoplay":t.proxy((function(t){t.namespace&&this.stop()}),this),"mouseover.owl.autoplay":t.proxy((function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()}),this),"mouseleave.owl.autoplay":t.proxy((function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()}),this),"touchstart.owl.core":t.proxy((function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()}),this),"touchend.owl.core":t.proxy((function(){this._core.settings.autoplayHoverPause&&this.play()}),this)},this._core.$element.on(this._handlers),this._core.options=t.extend({},e.Defaults,this._core.options)};n.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},n.prototype.play=function(t,e){this._paused=!1,this._core.is("rotating")||(this._core.enter("rotating"),this._setAutoPlayInterval())},n.prototype._getNextTimeout=function(s,n){return this._timeout&&e.clearTimeout(this._timeout),e.setTimeout(t.proxy((function(){this._paused||this._core.is("busy")||this._core.is("interacting")||i.hidden||this._core.next(n||this._core.settings.autoplaySpeed)}),this),s||this._core.settings.autoplayTimeout)},n.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},n.prototype.stop=function(){this._core.is("rotating")&&(e.clearTimeout(this._timeout),this._core.leave("rotating"))},n.prototype.pause=function(){this._core.is("rotating")&&(this._paused=!0)},n.prototype.destroy=function(){var t,e;for(t in this.stop(),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&&(this[e]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.autoplay=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){"use strict";var n=function e(i){this._core=i,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":t.proxy((function(e){e.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+t(e.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")}),this),"added.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.dotsData&&this._templates.splice(t.position,0,this._templates.pop())}),this),"remove.owl.carousel":t.proxy((function(t){t.namespace&&this._core.settings.dotsData&&this._templates.splice(t.position,1)}),this),"changed.owl.carousel":t.proxy((function(t){t.namespace&&"position"==t.property.name&&this.draw()}),this),"initialized.owl.carousel":t.proxy((function(t){t.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))}),this),"refreshed.owl.carousel":t.proxy((function(t){t.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))}),this)},this._core.options=t.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};n.Defaults={nav:!1,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"sby-owl-nav",navClass:["sby-owl-prev","sby-owl-next"],slideBy:1,dotClass:"sby-owl-dot",dotsClass:"sby-owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},n.prototype.initialize=function(){var e,i=this._core.settings;for(e in this._controls.$relative=(i.navContainer?t(i.navContainer):t("<div>").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=t("<"+i.navElement+">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click",t.proxy((function(t){this.prev(i.navSpeed)}),this)),this._controls.$next=t("<"+i.navElement+">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click",t.proxy((function(t){this.next(i.navSpeed)}),this)),i.dotsData||(this._templates=[t("<div>").addClass(i.dotClass).append(t("<span>")).prop("outerHTML")]),this._controls.$absolute=(i.dotsContainer?t(i.dotsContainer):t("<div>").addClass(i.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","div",t.proxy((function(e){var s=t(e.target).parent().is(this._controls.$absolute)?t(e.target).index():t(e.target).parent().index();e.preventDefault(),this.to(s,i.dotsSpeed)}),this)),this._overrides)this._core[e]=t.proxy(this[e],this)},n.prototype.destroy=function(){var t,e,i,s;for(t in this._handlers)this.$element.off(t,this._handlers[t]);for(e in this._controls)this._controls[e].remove();for(s in this.overides)this._core[s]=this._overrides[s];for(i in Object.getOwnPropertyNames(this))"function"!=typeof this[i]&&(this[i]=null)},n.prototype.update=function(){var t,e,i=this._core.clones().length/2,s=i+this._core.items().length,n=this._core.maximum(!0),a=this._core.settings,o=a.center||a.autoWidth||a.dotsData?1:a.dotsEach||a.items;if("page"!==a.slideBy&&(a.slideBy=Math.min(a.slideBy,a.items)),a.dots||"page"==a.slideBy)for(this._pages=[],t=i,e=0;t<s;t++){if(e>=o||0===e){if(this._pages.push({start:Math.min(n,t-i),end:t-i+o-1}),Math.min(n,t-i)===n)break;e=0}e+=this._core.mergers(this._core.relative(t))}},n.prototype.draw=function(){var e,i=this._core.settings,s=this._core.items().length<=i.items,n=this._core.relative(this._core.current()),a=i.loop||i.rewind;this._controls.$relative.toggleClass("disabled",!i.nav||s),i.nav&&(this._controls.$previous.toggleClass("disabled",!a&&n<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!a&&n>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!i.dots||s),i.dots&&(e=this._pages.length-this._controls.$absolute.children().length,i.dotsData&&0!==e?this._controls.$absolute.html(this._templates.join("")):e>0?this._controls.$absolute.append(new Array(e+1).join(this._templates[0])):e<0&&this._controls.$absolute.children().slice(e).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(t.inArray(this.current(),this._pages)).addClass("active"))},n.prototype.onTrigger=function(e){var i=this._core.settings;e.page={index:t.inArray(this.current(),this._pages),count:this._pages.length,size:i&&(i.center||i.autoWidth||i.dotsData?1:i.dotsEach||i.items)}},n.prototype.current=function(){var e=this._core.relative(this._core.current());return t.grep(this._pages,t.proxy((function(t,i){return t.start<=e&&t.end>=e}),this)).pop()},n.prototype.getPosition=function(e){var i,s,n=this._core.settings;return"page"==n.slideBy?(i=t.inArray(this.current(),this._pages),s=this._pages.length,e?++i:--i,i=this._pages[(i%s+s)%s].start):(i=this._core.relative(this._core.current()),s=this._core.items().length,e?i+=n.slideBy:i-=n.slideBy),i},n.prototype.next=function(e){t.proxy(this._overrides.to,this._core)(this.getPosition(!0),e)},n.prototype.prev=function(e){t.proxy(this._overrides.to,this._core)(this.getPosition(!1),e)},n.prototype.to=function(e,i,s){var n;!s&&this._pages.length?(n=this._pages.length,t.proxy(this._overrides.to,this._core)(this._pages[(e%n+n)%n].start,i)):t.proxy(this._overrides.to,this._core)(e,i)},t.fn.sbyOwlCarousel.Constructor.Plugins.Navigation=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){"use strict";var n=function i(s){this._core=s,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":t.proxy((function(i){i.namespace&&"URLHash"===this._core.settings.startPosition&&t(e).trigger("hashchange.owl.navigation")}),this),"prepared.owl.carousel":t.proxy((function(e){if(e.namespace){var i=t(e.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!i)return;this._hashes[i]=e.content}}),this),"changed.owl.carousel":t.proxy((function(i){if(i.namespace&&"position"===i.property.name){var s=this._core.items(this._core.relative(this._core.current())),n=t.map(this._hashes,(function(t,e){return t===s?e:null})).join();if(!n||e.location.hash.slice(1)===n)return;e.location.hash=n}}),this)},this._core.options=t.extend({},i.Defaults,this._core.options),this.$element.on(this._handlers),t(e).on("hashchange.owl.navigation",t.proxy((function(t){var i=e.location.hash.substring(1),s=this._core.$stage.children(),n=this._hashes[i]&&s.index(this._hashes[i]);void 0!==n&&n!==this._core.current()&&this._core.to(this._core.relative(n),!1,!0)}),this))};n.Defaults={URLhashListener:!1},n.prototype.destroy=function(){var i,s;for(i in t(e).off("hashchange.owl.navigation"),this._handlers)this._core.$element.off(i,this._handlers[i]);for(s in Object.getOwnPropertyNames(this))"function"!=typeof this[s]&&(this[s]=null)},t.fn.sbyOwlCarousel.Constructor.Plugins.Hash=n}(window.Zepto||window.jQuery,window,document),function(t,e,i,s){function n(e,i){var n=!1,a=e.charAt(0).toUpperCase()+e.slice(1);return t.each((e+" "+r.join(a+" ")+a).split(" "),(function(t,e){if(o[e]!==s)return n=!i||e,!1})),n}function a(t){return n(t,!0)}var o=t("<support>").get(0).style,r="Webkit Moz O ms".split(" "),l={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}};!!n("transition")&&(t.support.transition=new String(a("transition")),t.support.transition.end=l.transition.end[t.support.transition]),!!n("animation")&&(t.support.animation=new String(a("animation")),t.support.animation.end=l.animation.end[t.support.animation]),n("transform")&&(t.support.transform=new String(a("transform")),t.support.transform3d=!!n("perspective"))}(window.Zepto||window.jQuery,window,document),s=window.Zepto||window.jQuery,window,document,Owl2row=function(t){function e(e){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}((function(t){this.owl=t,this.owl.options=s.extend({},Owl2row.Defaults,this.owl.options),this.handlers={"initialize.owl.carousel":s.proxy((function(t){this.owl.settings.owl2row&&this.build2row(this)}),this)},this.owl.$element.on(this.handlers)})),Owl2row.Defaults={owl2row:!1,owl2rowTarget:"sby_item",owl2rowContainer:"sby_owl2row-item",owl2rowDirection:"utd"},Owl2row.prototype.build2row=function(t){var e=s(t.owl.$element),i=e.find("."+t.owl.options.owl2rowTarget),n=[],a=[];s.each(i,(function(t,e){t%2==0?n.push(e):a.push(e)})),"ltr"===t.owl.options.owl2rowDirection?t.leftToright(t,e,i):t.upTodown(t,n,a,e)},Owl2row.prototype.leftToright=function(t,e,i){var n=t.owl.options.owl2rowContainer,a=t.owl.options.margin,o=i.length,r=[],l=[];o%2==1?o=(o-1)/2+1:o/=2,s.each(i,(function(t,e){t<o?r.push(e):l.push(e)})),s.each(r,(function(t,i){var o=s('<div class="'+n+'"/>'),d=r[t];d.style.marginBottom=a+"px",o.append(d).append(l[t]),e.append(o)}))},Owl2row.prototype.upTodown=function(t,e,i,n){var a=t.owl.options.owl2rowContainer,o=t.owl.options.margin;s.each(e,(function(t,r){var l=s('<div class="'+a+'"/>'),d=e[t];d.style.marginBottom=o+"px",l.append(d).append(i[t]),n.append(l)}))},Owl2row.prototype.destroy=function(){},s.fn.sbyOwlCarousel.Constructor.Plugins.owl2row=Owl2row,function(t){function e(){this.feeds={},this.ctas={},this.options=sbyOptions,this.isTouch="ontouchstart"in document.documentElement}function i(t,e,i){this.el=t,this.index=e,this.settings=i,this.placeholderURL=window.sby.options.placeholder,i.narrowPlayer&&(this.placeholderURL=window.sby.options.placeholderNarrow),this.playerAPIReady=!1,this.consentGiven=i.consentGiven,this.players={},this.minImageWidth=0,this.imageResolution=150,this.resizedImages={},this.needsResizing=[],this.outOfPages=!1,this.isInitialized=!1,this.mostRecentlyLoadedPosts=[],this.embedURL="//www.youtube-nocookie.com",i.allowCookies&&(this.embedURL="//www.youtube.com")}function s(e,s,n){i.call(this,e,s,n),this.CTA={},this.initLayout=function(){this.initGalleryLayout(),this.initGrid(),this.initCarousels();var t=jQuery.Event("sbyafterlayoutinit");t.feed=this,jQuery(window).trigger(t),P()},this.initGrid=function(){if(window.sbySemiEagerLoading&&jQuery("#sby_lightbox").length){var e=this;playerID="sby_lb-player",jQuery("#sby_lightbox").addClass("sby_video_lightbox"),window.sbyOptions.isPro||jQuery("#sby_lightbox").addClass("sby_lightbox_free");var i=t(this.el).find("sby_item").first().attr("data-video-id"),s=sbyOptions.autoplay;if(void 0===window.sbyLightboxPlayer){var n={host:window.location.protocol+e.embedURL,videoId:i,playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(i){var s=i.target.getVideoData().video_id;e.afterStateChange(playerID,s,i,t("#"+playerID).closest(".sby_video_thumbnail_wrap"))}}};e.maybeAddCTA(playerID),window.sbyLightboxPlayer=new window.YT.Player(playerID,n)}}},this.initCarousels=function(){var e=this,i=t(this.el);if(void 0!==this.settings.general.carousel){var s=this.settings.cols,n=this.settings.colsmobile;i.find(".sby_items_wrap").addClass("sby_carousel"),i.find(".sby_load_btn").remove(),i.find(".sby_item").css({"padding-top":i.find(".sby_items_wrap").css("padding-top"),"padding-right":i.find(".sby_items_wrap").css("padding-top"),"padding-bottom":i.find(".sby_items_wrap").css("padding-top"),"padding-left":i.find(".sby_items_wrap").css("padding-top")}),i.find(".sby_item").each((function(){t(this).attr("style",t(this).attr("style").replace("padding: "+i.find(".sby_items_wrap").css("padding-top"),"padding: "+i.find(".sby_items_wrap").css("padding-top")+" !important"))}));var a=e.settings.general.carousel[0],o=e.settings.general.carousel[1],r=e.settings.general.carousel[2],l=e.settings.general.carousel[3],d=e.settings.general.carousel[4],h=e.settings.general.carousel[5];r||(l=!1);var c=s,u=s,g=(a=a?"onhover":"hide",r=!1!==l,2==h);d=!d,i.hasClass("sby_mob_col_auto")?(c=2,2!=parseInt(s)&&(u=1),2==parseInt(s)&&(u=2)):u=n,this.carouselArgs={items:s,loop:d,rewind:!d,autoplay:r,autoplayTimeout:Math.max(l,2e3),autoplayHoverPause:!0,nav:!0,navText:['<svg class="svg-inline--fa fa-chevron-left fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-left" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"></path></svg>','<svg class="svg-inline--fa fa-chevron-right fa-w-10" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="chevron-right" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"></path></svg>'],dots:o,owl2row:g,responsive:{0:{items:u},480:{items:c},640:{items:s}},onChange:function(){setTimeout((function(){e.afterResize()}),1)},onInitialize:function(){var t=jQuery(e.el);t.find(".sby_items_wrap.sby_carousel").fadeIn(),setTimeout((function(){t.find(".sby_items_wrap.sby_carousel .sby_info, .sby_owl2row-item,.sby_items_wrap.sby_carousel").fadeIn()}),1),setTimeout((function(){var e=t.find(".sby-owl-nav");if("onhover"===a);else if("below"===a){var i=t.find(".sby-owl-dots"),s=t.find(".sby-owl-prev"),n=t.find(".sby-owl-next"),o=t.find(".sby-owl-nav"),r=t.find(".sby-owl-dot"),l=r.length*r.innerWidth();t.innerWidth(),s.after(i),o.css("position","relative"),n.css("position","absolute").css("top","-6px").css("right",Math.max(.5*o.innerWidth()-.5*l-n.innerWidth()-6,0)),s.css("position","absolute").css("top","-6px").css("left",Math.max(.5*o.innerWidth()-.5*l-s.innerWidth()-6,0))}else"hide"===a&&e.addClass("hide").hide()}),1)}}}},this.stripEmojihtml=function(e){return e.find(".emoji").each((function(){t(this).replaceWith(t(this).attr("alt"))})),e.html()},this.afterItemRevealed=function(t){var e=this;if(t.find(".sby_caption").length&&!t.find(".sby_caption").hasClass("sby_full_caption")){var i=t.find(".sby_item_caption_wrap .sby_caption"),s=t.find(".sby_item_video_thumbnail .sby_caption"),n=void 0!==e.settings.general.descriptionlength?parseInt(e.settings.general.descriptionlength):150;n<1&&(n=99999);var a=this.stripEmojihtml(t.find(".sby_caption").first()),o=((a.match(/<br>/g)||[]).length,void 0===sbyOptions.brAdjust||"1"===sbyOptions.brAdjust||sbyOptions.brAdjust,a.substring(0,n));if(o=a.length>n?o.substr(0,Math.min(o.length,o.lastIndexOf(" "))):o,i.length&&(i.html(sbyLinkify(o)),o===a&&i.next(".sby_expand").remove()),s.length){var r=o;o!==a&&(r+='<span class="sby_more">...</span>'),s.html(r)}a.length>n&&t.find(".sby_expand").show(),t.find(".sby_expand a").off("click").on("click",(function(s){s.preventDefault(),jQuery(this),i=void 0!==i?i:t.find(".sby_info .sby_caption"),a="undefined"!=typeof captiontext?a:p(t.find(".sby_item_video_thumbnail").attr("data-title")),t.hasClass("sby_caption_full")&&void 0!==o?(i.html(o),t.removeClass("sby_caption_full")):(i.html(sbyLinkify(a)),t.addClass("sby_caption_full")),e.afterResize()}))}this.setUpCTA(t);var l=void 0!==e.settings.general.disablelightbox&&e.settings.general.disablelightbox,d=void 0!==e.settings.general.captionlinks&&e.settings.general.captionlinks;if(l||d){if(d){var h="";void 0!==t.find("img").attr("alt")?h=t.find("img").attr("alt"):void 0!==t.find("video").attr("alt")&&(h=t.find("video").attr("alt"));var c=h.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);c&&t.find("a").attr("href",c)}t.find(".sby_link").addClass("sby_disable_lightbox")}else{var u=t.find(".sby_photo_wrap"),g=u.find(".sby_link");feedOptions={hovereffect:"true"},"none"==feedOptions.hovereffect?(g.css("background","none").show(),g.find("*").hide().end().find(".sby_link_area").show()):u.on("mouseenter mouseleave",(function(e){switch(e.type){case"mouseenter":t.addClass("sby_animate");break;case"mouseleave":t.removeClass("sby_animate")}}))}var y=void 0!==t.attr("data-video-id")?t.attr("data-video-id"):t.find(".sby_video_thumbnail").attr("data-video-id");this.mostRecentlyLoadedPosts.push(y)},this.afterFeedSet=function(){void 0!==this.carouselArgs&&(t(this.el).find(".sby_carousel").sbyOwlCarousel(this.carouselArgs),2===parseInt(this.settings.general.carousel[5])&&t(this.el).addClass("sby_carousel_2_row"))},this.setUpCTA=function(t,e){e=void 0!==e?e:t.find(".sby_item_video_thumbnail").attr("data-video-id");var i=p(void 0!==t.find(".sby_item_video_thumbnail").attr("data-title")?t.find(".sby_item_video_thumbnail").attr("data-title"):""),s=window.sby.ctaDetect(i);window.sby.ctas[e]=s||this.getDefaultCTA()},this.getDefaultCTA=function(){return void 0!==this.settings.general.cta&&"default"!==this.settings.general.cta.type&&("link"===this.settings.general.cta.type?{callback:"link",url:this.settings.general.cta.defaultLink,text:this.settings.general.cta.defaultText}:{callback:"related",related:this.settings.general.cta.defaultPosts})},this.afterResize=function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass(),this.setAllCTADimensions(),this.sizePlayer(),this.sizeItems()},this.setAllCTADimensions=function(){t.each(this.CTA,(function(t,e){e.isInitialized&&e.setCTAStyles()}))},this.afterSendCheckWPPostsToServer=function(e){var i=t(this.el);i.find(".sby_item").each((function(){if(void 0!==e[t(this).attr("data-video-id")]){var i=e[t(this).attr("data-video-id")];t(this).find(".sby_view_count").text(i.sby_view_count),t(this).find(".sby_comment_count").text(i.sby_comment_count),t(this).find(".sby_like_count").text(i.sby_like_count),t(this).find(".sby_video_thumbnail").attr("data-views",i.sby_view_count),t(this).find(".sby_video_thumbnail").attr("data-comment-count",i.sby_comment_count),"none"!==i.sby_live_broadcast.broadcast_type&&(t(this).find(".sby_ls_message").text(i.sby_live_broadcast.live_streaming_string),t(this).find(".sby_date").html(i.sby_live_broadcast.live_streaming_date)),void 0!==i.sby_live_broadcast.live_streaming_timestamp&&t(this).attr("data-live-date",i.sby_live_broadcast.live_streaming_timestamp),void 0!==i.sby_description&&t(this).find(".sby_item_video_thumbnail").attr("data-title",p(i.sby_description))}})),i.find(".sby_player_item").each((function(){if(void 0!==e[t(this).find(".sby_video_thumbnail").attr("data-video-id")]){var i=e[t(this).find(".sby_video_thumbnail").attr("data-video-id")];t(this).find(".sby_view_count").text(i.sby_view_count),t(this).find(".sby_comment_count").text(i.sby_comment_count),t(this).find(".sby_like_count").text(i.sby_like_count),"none"!==i.sby_live_broadcast.broadcast_type&&(t(this).find(".sby_ls_message").text(i.sby_live_broadcast.live_streaming_string),t(this).find(".sby_date").html(i.sby_live_broadcast.live_streaming_date)),void 0!==i.sby_live_broadcast.live_streaming_timestamp&&t(this).attr("data-live-date",i.sby_live_broadcast.live_streaming_timestamp)}}));var n=jQuery.Event("sbyaftercheckposts");n.feed=window.sby.feeds[s],n.response=e,jQuery(window).trigger(n)},this.afterStateChange=function(t,e,i,s){this.CTA[t].toggleCTA(e,i.data,s)},this.changePlayerInfo=function(e){var i=t(this.el);i.find(".sby_player_item").find(".sby_info").replaceWith(e.find(".sby_info").clone(!0,!0));var s=j(e.attr("data-video-title")),n=j(e.find(".sby_video_thumbnail").attr("data-formatted-published-date"));i.find(".sby-player-info .sby-video-header-info .sby-video-info-header h5").text(s),i.find(".sby-player-info .sby-video-header-meta .sby-video-date").text(n),O(i),P()},this.maybeAddCTA=function(t,e){void 0===this.CTA[t]&&(this.CTA[t]=new o(t,this))}}function n(){}function a(){n.call(this),this.getData=function(t){var e=t.closest(".sb_youtube"),i=parseInt(e.attr("data-sby-index")-1),s=e.attr("data-subscribe-btn-text"),n=e.attr("data-subscribe-btn"),a=e.hasClass("sby_palette_dark")?"dark":"light",o=e.attr("data-shortcode-atts"),r=t.closest(".sby_item").attr("data-live-date"),l=e.attr("data_channel_header_colors")?JSON.parse(e.attr("data_channel_header_colors")):"";return{feedIndex:i,link:t.attr("href"),video:t.attr("data-video-id"),title:p(t.attr("data-title")),videoTitle:void 0!==t.attr("data-video-title")?p(t.attr("data-video-title")):"YouTube Video",avatar:t.attr("data-avatar"),user:p(t.attr("data-user")),channelURL:t.attr("data-url"),channelID:t.attr("data-channel-id"),channelSubscribers:t.closest(".sb_youtube").attr("data-channel-subscribers"),subscribeBtn:n,subscribeBtnText:s,colorScheme:a,publishedDate:t.attr("data-published-date"),commentCount:t.attr("data-comment-count"),views:t.attr("data-views"),liveData:r,channelHeaderColors:l,atts:o}},this.template=function(){return"\n                <div id='sby_lightboxOverlay' class='sby_lightboxOverlay'></div>\n                <div id='sby_lightbox' class='sby_lightbox'>\n                 <div class='sby_lb-header'></div>\n                  <div class='sby_lb-outerContainer'>\n                    <a class='sby_lb-close'></a>\n                    <div class='sby_lb-container'>\n                      <div class='sby_lb_video_thumbnail_wrap'>\n                        <span class='sby_lb_video_thumbnail'>\n                          <img class='sby_lb-image' alt='Lightbox image placeholder' src='' />\n                          <div class='sby_lb-player' id='sby_lb-player'></div>\n                        </span>\n                      </div>\n                      <div class='sby_lb-nav'>\n                        <a class='sby_lb-prev' href='#'>\n                          <p class='sby-screenreader'>Previous Slide</p>\n                          <span></span>\n                        </a>\n                        <a class='sby_lb-next' href='#'>\n                          <p class='sby-screenreader'>Next Slide</p>\n                          <span></span>\n                        </a>\n                      </div>\n                      <div class='sby_lb-loader'>\n                        <a class='sby_lb-cancel'></a>\n                      </div>\n                    </div>\n                  </div>\n                  <div class='sby_lb-dataContainer'>\n                    <div class='sby_lb-data'>\n                      <div class='sby_lb-details'>\n                        <div class='sby_lb-caption'>\n                        </div>\n                        <div class='sby_lb-info'>\n                          <div class='sby_lb-number'></div>\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                </div>"},this.beforePlayerSetup=function(e,i,s,n,a){t("body").css("overflow","hidden"),e.find(".sby_cta_items_wraps").length?e.find(".sby_cta_items_wraps").replaceWith(t(a.el).find(".sby_cta_items_wraps").clone()):e.find(".sby_lb_video_thumbnail_wrap").append(t(a.el).find(".sby_cta_items_wraps").clone())},this.afterPlayerSetup=function(t,e,i,s){this.availableAvatarUrls={};var n=!(null==e||!e.subscribeBtn)&&e.subscribeBtn,a=null!=e&&e.subscribeBtnText?e.subscribeBtnText:"",o=n?"sby_lb-channel-info":"sby_lb-no-channel-info";"function"==typeof sbyLightboxAction&&setTimeout((function(){sbyLightboxAction()}),100),null!=e&&e.colorScheme&&"dark"===e.colorScheme&&z(e.colorScheme,!0);var r="",l=n?'<a class="sby-lb-subscribe-btn" href="http://www.youtube.com/channel/'+e.channelID+'?sub_confirmation=1&feature=subscribe-embed-click" target="_blank" rel="noopener noreferrer">'+w("youtube")+" <p>"+a+"</p></a>":"";void 0!==e.avatar&&""!==e.avatar&&void 0!==e.user?r="undefined"!==e.avatar?e.avatar:"":void 0!==e.user&&jQuery.each(window.sby.feeds,(function(){void 0!==this.availableAvatarUrls&&void 0!==this.availableAvatarUrls[e.user]&&"undefined"!==this.availableAvatarUrls[e.user]&&(r=this.availableAvatarUrls[e.user])}));var d,h,c=r?'<img src="'+r+'" referrerPolicy="no-referrer"/>':w("profile-picture"),u=n?'<div class="sby-lb-channel-header"><a class="sby_lightbox_username" href="'+e.channelURL+'" target="_blank" rel="noopener">'+c+'<p class="sby-lb-channel-name-with-subs"><span>@'+e.user+"</span><span>"+e.channelSubscribers+"</span></p></a> "+l+"</div>":"";if(window.sbyOptions.isPro){var g=null!=e&&e.title?(h=e.title)?(h=h.replace(/(>#)/g,"> #"),sbyLinkify(h)):"":"",p=null!=e&&e.publishedDate?I((d=e.publishedDate)?new Date(1e3*parseInt(d)):""):"",y=null!=e&&e.views?e.views:"",f='\n                    <div class="sby_lb-video-heading">\n                        <h3>'.concat(e.videoTitle,'</h3>\n                        <div class="sby_lb-video-info">\n                            <span>').concat(y,'</span>\n                            <span class="sby_lb-spacer">·</span>\n                            <span>').concat(p,"</span>\n                        </div>\n                    </div>\n                "),b='\n                    <div class="sby_lb-video-description-wrap">\n                        <div class="sby_lb-description sby-read-more-target">\n                            '.concat(g,'\n                        </div>\n                        <button class="sby_lb-more-info-btn sby-read-more-trigger">Description').concat(w("angle-down"),"</button>\n                    </div>\n                "),m=g?b:"";if(t.find(".sby_lb-caption").html('<div class="sby_lb-caption-inner '.concat(o,'">')+f+u+m+'\n                    <div class="sby-comments-wrap">\n                    </div>\n                </div>').fadeIn("fast"),null!=e&&e.liveData&&"0"===e.liveData){var _=null!=e&&e.video?e.video:"",v=null!=e&&e.atts?e.atts:"",x=null!=e&&e.commentCount?e.commentCount:"";A(_,v,t.find(".sby-comments-wrap"),x)}else k();null!=e&&e.channelHeaderColors&&function(t){var e=t.channelName,i=t.subscribeCount,s=t.buttonBackground,n=t.buttonText,a=jQuery(".sby_lb-dataContainer .sby-lb-channel-header");if(!a)return!1;e&&a.find(".sby-lb-channel-name-with-subs span:first-child").css("color",e),i&&a.find(".sby-lb-channel-name-with-subs span:nth-child(2)").css("color",i),s&&a.find(".sby-lb-subscribe-btn").css("background",s),n&&a.find(".sby-lb-subscribe-btn").css("color",n)}(e.channelHeaderColors)}}}function o(t,e){this.isInitialized=!1,this.videoID=t,this.callback=this.related,this.callbackArgs={},this.feedObjInContext=e,this.state=1,this.numItems=4,this.numItemColumns=2,this.$player=!1}e.prototype={createPage:function(e,i){void 0!==window.sbyajaxurl&&-1!==window.sbyajaxurl.indexOf(window.location.hostname)||(window.sbyajaxurl=window.location.hostname+"/wp-admin/admin-ajax.php"),t(".sby_no_js_error_message").remove(),t(".sby_no_js").removeClass("sby_no_js"),e(i)},maybeAddYTAPI:function(){var t="sby-youtube-api";if(null===document.getElementById(t)){var e=document.createElement("script"),i=document.getElementsByTagName("script")[0];e.src="https://www.youtube.com/iframe_api",e.id=t,i.parentNode.insertBefore(e,i)}},createLightbox:function(){var e,i=new a,s=(e=0,function(t,i){clearTimeout(e),e=setTimeout(t,i)});jQuery(window).on("resize",(function(){s((function(){i.afterResize()}),200)})),function(){var e=jQuery,s=function(){function t(){this.fadeDuration=500,this.fitImagesInViewport=!0,this.resizeDuration=700,this.positionFromTop=50,this.showImageNumberLabel=!0,this.alwaysShowNavOnTouchDevices=!1,this.wrapAround=!1}return t.prototype.albumLabel=function(t,e){return t+" / "+e},t}(),n=function(){function s(t){this.options=t,this.album=[],this.currentImageIndex=void 0,this.init()}return s.prototype.init=function(){this.enable(),this.build()},s.prototype.enable=function(){var t=this;e("body").on("click","a[data-sby-lightbox]",(function(i){return t.start(e(i.currentTarget)),!1}))},s.prototype.build=function(){var t=this;e(""+i.template()).appendTo(e("body")),this.$lightbox=e("#sby_lightbox"),this.$overlay=e("#sby_lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".sby_lb-outerContainer"),this.$container=this.$lightbox.find(".sby_lb-container"),this.containerTopPadding=parseInt(this.$container.css("padding-top"),10),this.containerRightPadding=parseInt(this.$container.css("padding-right"),10),this.containerBottomPadding=parseInt(this.$container.css("padding-bottom"),10),this.containerLeftPadding=parseInt(this.$container.css("padding-left"),10),this.$overlay.hide().on("click",(function(){return t.end(),!1})),jQuery(document).on("click",(function(t,e,s){jQuery(t.target).closest(".sby_lb-outerContainer").length||jQuery(t.target).closest(".sby_lb-dataContainer").length||(T(),i.pausePlayer(),jQuery("#sby_lightboxOverlay, #sby_lightbox").fadeOut())})),this.$lightbox.hide(),jQuery("#sby_lightboxOverlay").on("click",(function(s){return i.pausePlayer(),"sby_lightbox"===e(s.target).attr("id")&&t.end(),!1})),this.$lightbox.find(".sby_lb-prev").on("click",(function(){return i.pausePlayer(),t.changeImage(0===t.currentImageIndex?t.album.length-1:t.currentImageIndex-1),!1})),this.$lightbox.find(".sby_lb-container").on("swiperight",(function(){return i.pausePlayer(),t.changeImage(0===t.currentImageIndex?t.album.length-1:t.currentImageIndex-1),!1})),this.$lightbox.find(".sby_lb-next").on("click",(function(){return i.pausePlayer(),t.changeImage(t.currentImageIndex===t.album.length-1?0:t.currentImageIndex+1),!1})),this.$lightbox.find(".sby_lb-container").on("swipeleft",(function(){return i.pausePlayer(),t.changeImage(t.currentImageIndex===t.album.length-1?0:t.currentImageIndex+1),!1})),this.$lightbox.find(".sby_lb-loader, .sby_lb-close").on("click",(function(){return T(),i.pausePlayer(),t.end(),!1}))},s.prototype.start=function(t){function s(t){n.album.push(i.getData(t))}var n=this,a=e(window);a.on("resize",e.proxy(this.sizeOverlay,this)),e("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var o,r=0,l=t.attr("data-sby-lightbox");if(l){o=e(t.prop("tagName")+'[data-sby-lightbox="'+l+'"]');for(var d=0;d<o.length;d=++d)s(e(o[d])),o[d]===t[0]&&(r=d)}else if("lightbox"===t.attr("rel"))s(t);else{o=e(t.prop("tagName")+'[rel="'+t.attr("rel")+'"]');for(var h=0;h<o.length;h=++h)s(e(o[h])),o[h]===t[0]&&(r=h)}var c=a.scrollTop()+this.options.positionFromTop-50,u=a.scrollLeft();this.$lightbox.css({top:c+"px",left:u+"px"}).fadeIn(this.options.fadeDuration),this.changeImage(r)},s.prototype.changeImage=function(t){var i=this;this.disableKeyboardNav();var s=this.$lightbox.find(".sby_lb-image");this.$overlay.fadeIn(this.options.fadeDuration),e(".sby_lb-loader").fadeIn("slow"),this.$lightbox.find(".sby_lb-image, .sby_lb-nav, .sby_lb-prev, .sby_lb-next, .sby_lb-dataContainer, .sby_lb-numbers, .sby_lb-caption").hide(),this.$outerContainer.addClass("animating");var n=new Image;n.onload=function(){var a,o,r,l,d,h;s.attr("src",i.album[t].link),e(n),s.width(n.width),s.height(n.height),i.options.fitImagesInViewport&&(h=e(window).width(),d=e(window).height(),l=h-i.containerLeftPadding-i.containerRightPadding-20-100,r=d-i.containerTopPadding-i.containerBottomPadding-150,(n.width>l||n.height>r)&&(n.width/l>n.height/r?(o=l,a=parseInt(n.height/(n.width/o),10),s.width(o),s.height(a)):(a=r,o=parseInt(n.width/(n.height/a),10),s.width(o),s.height(a)))),i.sizeContainer(s.width(),s.height())},n.src=this.album[t].link,this.currentImageIndex=t},s.prototype.sizeOverlay=function(){this.$overlay.width(e(window).width()).height(e(document).height())},s.prototype.sizeContainer=function(t,e){function i(){s.$lightbox.find(".sby_lb-dataContainer").width(o),s.$lightbox.find(".sby_lb-prevLink").height(r),s.$lightbox.find(".sby_lb-nextLink").height(r),s.showImage()}var s=this,n=this.$outerContainer.outerWidth(),a=this.$outerContainer.outerHeight(),o=t+this.containerLeftPadding+this.containerRightPadding,r=e+this.containerTopPadding+this.containerBottomPadding;n!==o||a!==r?this.$outerContainer.animate({width:o,height:r},this.options.resizeDuration,"swing",(function(){i()})):i()},s.prototype.showImage=function(){this.$lightbox.find(".sby_lb-loader").hide(),this.$lightbox.find(".sby_lb-image").fadeIn("slow"),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},s.prototype.updateNav=function(){var t=!1;try{document.createEvent("TouchEvent"),t=!!this.options.alwaysShowNavOnTouchDevices}catch(t){}this.$lightbox.find(".sby_lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(t&&this.$lightbox.find(".sby_lb-prev, .sby_lb-next").css("opacity","1"),this.$lightbox.find(".sby_lb-prev, .sby_lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".sby_lb-prev").show(),t&&this.$lightbox.find(".sby_lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".sby_lb-next").show(),t&&this.$lightbox.find(".sby_lb-next").css("opacity","1"))))},s.prototype.updateDetails=function(){var e=this;jQuery("iframe.sby_lb-player-loaded").length&&(jQuery(".sby_lb-player-placeholder").replaceWith(jQuery("iframe.sby_lb-player-loaded")),jQuery("iframe.sby_lb-player-loaded").removeClass("sby_lb-player-loaded").show());var s=window.sby.feeds[this.album[this.currentImageIndex].feedIndex];if(i.beforePlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album,s),y()){if(jQuery("#sby_lightbox").removeClass("sby_video_lightbox"),s.settings.consentGiven&&this.album[this.currentImageIndex].video.length){jQuery(".sby_gdpr_notice").remove();var n="sby_lb-player";jQuery("#sby_lightbox").addClass("sby_video_lightbox"),window.sbyOptions.isPro||jQuery("#sby_lightbox").addClass("sby_lightbox_free");var a=this.album[this.currentImageIndex].video,o=sbyOptions.autoplay;if(void 0===window.sbyLightboxPlayer){var r={host:window.location.protocol+s.embedURL,videoId:a,playerVars:{modestbranding:1,rel:0,autoplay:o},events:{onStateChange:function(e){var i=e.target.getVideoData().video_id;s.afterStateChange(n,i,e,t("#"+n).closest(".sby_video_thumbnail_wrap"))}}};s.maybeAddCTA(n),window.sbyLightboxPlayer=new window.YT.Player(n,r)}else window.sbyLightboxPlayer.loadVideoById(a);this.$outerContainer.removeClass("animating"),this.$lightbox.find(".sby_lb-dataContainer").fadeIn(this.options.resizeDuration,(function(){return e.sizeOverlay()})),setTimeout((function(){t("#sby_lightbox .sby_lb-player").css({height:t("#sby_lightbox .sby_lb-outerContainer").height()+"px",width:t("#sby_lightbox .sby_lb-outerContainer").width()+"px",top:0})}),1),this.$lightbox.find("iframe").length&&this.$lightbox.find("iframe").attr("title",this.album[this.currentImageIndex].videoTitle)}else{var l=t(".sby_item[data-video-id="+this.album[this.currentImageIndex].video+"]").find(".sby_video_thumbnail").attr("data-full-res");t(".sby_lb-image").attr("src",l),this.$outerContainer.removeClass("animating"),this.$lightbox.find(".sby_lb-dataContainer").fadeIn(this.options.resizeDuration,(function(){return e.sizeOverlay()})),jQuery(".sby_lb-container").prepend('<a href="https://www.youtube.com/watch?v='+this.album[this.currentImageIndex].video+'" target="_blank" rel="noopener noreferrer" class="sby_gdpr_notice"><svg style="color: rgba(255,255,255,1)" class="svg-inline--fa fa-play fa-w-14 sby_playbtn" aria-label="Play" aria-hidden="true" data-fa-processed="" data-prefix="fa" data-icon="play" role="presentation" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"></path></svg></a>')}i.afterPlayerSetup(this.$lightbox,this.album[this.currentImageIndex],this.currentImageIndex,this.album),this.album.length>1&&this.options.showImageNumberLabel?this.$lightbox.find(".sby_lb-number").text(this.options.albumLabel(this.currentImageIndex+1,this.album.length)).fadeIn("fast"):this.$lightbox.find(".sby_lb-number").hide()}},s.prototype.preloadNeighboringImages=function(){this.album.length>this.currentImageIndex+1&&((new Image).src=this.album[this.currentImageIndex+1].link),this.currentImageIndex>0&&((new Image).src=this.album[this.currentImageIndex-1].link)},s.prototype.enableKeyboardNav=function(){e(document).on("keyup.keyboard",e.proxy(this.keyboardAction,this))},s.prototype.disableKeyboardNav=function(){e(document).off(".keyboard")},s.prototype.keyboardAction=function(e){var s=event.keyCode,n=String.fromCharCode(s).toLowerCase();27===s||n.match(/x|o|c/)?(y()&&t("#sby_lightbox video.sby_video")[0].pause(),t("#sby_lightbox iframe").attr("src",""),this.end()):"p"===n||37===s?(0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1),y()&&t("#sby_lightbox video.sby_video")[0].pause(),t("#sby_lightbox iframe").attr("src","")):"n"!==n&&39!==s||(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0),i.pausePlayer())},s.prototype.end=function(){this.disableKeyboardNav(),e(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),e("select, object, embed").css({visibility:"visible"})},s}();e((function(){var e=new s;new n(e),t(".sby_lightbox_action a").off().on("click",(function(){t(this).parent().find(".sby_lightbox_tooltip").toggle()}))}))}.call(this),window.sbyOptions.lightboxCreated=!0},createFeeds:function(e){sbyOptions.isAdmin||void 0!==sbyOptions.lightboxCreated||window.sby.createLightbox(),e.whenFeedsCreated(t(".sb_youtube").each((function(e){t(this).attr("data-sby-index",e+1),t(this).find(".sby_player").replaceWith('<div id="sby_player'+e+'"></div>');var i=t(this),n=void 0!==i.attr("data-sby-flags")?i.attr("data-sby-flags").split(","):[],a=void 0!==i.attr("data-options")?JSON.parse(i.attr("data-options")):{};n.indexOf("testAjax")>-1&&(window.sby.triggeredTest=!0,$({action:"sby_on_ajax_test_trigger"},(function(t){console.log("did test")})));var o={cols:i.attr("data-cols"),colsmobile:"same"!==i.attr("data-colsmobile")?i.attr("data-colsmobile"):i.attr("data-cols"),num:i.attr("data-num"),imgRes:i.attr("data-res"),feedID:i.attr("data-feedid"),postID:void 0!==i.attr("data-postid")?i.attr("data-postid"):"unknown",shortCodeAtts:i.attr("data-shortcode-atts"),resizingEnabled:-1===n.indexOf("resizeDisable"),imageLoadEnabled:-1===n.indexOf("imageLoadDisable"),debugEnabled:n.indexOf("debug")>-1,favorLocal:n.indexOf("favorLocal")>-1,ajaxPostLoad:n.indexOf("ajaxPostLoad")>-1,checkWPPosts:n.indexOf("checkWPPosts")>-1,singleCheckPosts:n.indexOf("singleCheckPosts")>-1,narrowPlayer:n.indexOf("narrowPlayer")>-1,gdpr:n.indexOf("gdpr")>-1,consentGiven:-1===n.indexOf("gdpr"),noCDN:n.indexOf("disablecdn")>-1,allowCookies:n.indexOf("allowcookies")>-1,lightboxEnabled:void 0!==i.attr("data-sby-supports-lightbox"),locator:n.indexOf("locator")>-1,autoMinRes:1,general:a,subscribeBarEnabled:!0};window.sby.feeds[e]=function(t,e,i){return new s(t,e,i)}(this,e,o),void 0!==window.sbyAPIReady&&(window.sby.feeds[e].playerAPIReady=!0),window.sby.feeds[e].setResizedImages(),window.sby.feeds[e].init();var r=jQuery.Event("sbyafterfeedcreate");r.feed=window.sby.feeds[e],jQuery(window).trigger(r)})))},afterFeedsCreated:function(){if(t(".sb_youtube_header").each((function(){var e=t(this);e.find(".sby_header_link").on("mouseenter mouseleave",(function(t){switch(t.type){case"mouseenter":e.find(".sby_header_img_hover").addClass("sby_fade_in");break;case"mouseleave":e.find(".sby_header_img_hover").removeClass("sby_fade_in")}}))})),window.sbyAPIReady){var e=jQuery.Event("sbyfeedandytready");jQuery(window).trigger(e)}},encodeHTML:function(t){return void 0===t?"":t.replace(/(>)/g,"&gt;").replace(/(<)/g,"&lt;").replace(/(&lt;br\/&gt;)/g,"<br>").replace(/(&lt;br&gt;)/g,"<br>")},urlDetect:function(t){return t.match(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g)},ctaDetect:function(t){var e=t.match(/{Link:(.*)}/g),i=!1;if(null!==e){var s=window.sby.urlDetect(e[0]);if(null!==s){var n=s[0].trim();i={callback:"link",url:n,text:e[0].replace("{Link:","").replace("}","").replace(n,"").replace("  "," ").trim()}}else console.log("CTA found but no URL")}return i},shuffle:function(t){for(var e,i,s=t.length;0!==s;)i=Math.floor(Math.random()*s),e=t[s-=1],t[s]=t[i],t[i]=e;return t}},i.prototype={init:function(){var e=this;e.settings.consentGiven=e.checkConsent(),e.settings.consentGiven&&window.sby.maybeAddYTAPI(),e.settings.noCDN&&!e.settings.consentGiven&&(t(this.el).find(".sb_youtube_header").length?t(this.el).find(".sb_youtube_header").addClass("sby_no_consent"):t(this.el).prev(".sb_youtube_header").length&&t(this.el).prev(".sb_youtube_header").addClass("sby_no_consent")),t(this.el).find("#sby_mod_error").length&&t(this.el).prepend(t(this.el).find("#sby_mod_error")),this.settings.ajaxPostLoad?this.getNewPostSet():this.afterInitialImagesLoaded();var i,s=(i=0,function(t,e){clearTimeout(i),i=setTimeout(t,e)});jQuery(window).on("resize",(function(){s((function(){e.afterResize()}),1)}))},initLayout:function(){this.initGalleryLayout()},initGalleryLayout:function(){var e=t(this.el),i=this;e.hasClass("sby_layout_gallery")&&e.find(".sby_player_outer_wrap").length&&(this.maybeRaiseSingleImageResolution(e.find(".sby_player_outer_wrap"),0,!0),e.find(".sby_player_outer_wrap .sby_video_thumbnail").off().on("click",(function(e){!(!i.settings.lightboxEnabled||i.settings.lightboxEnabled&&i.settings.noCDN)||!i.settings.noCDN&&i.settings.consentGiven?(e.preventDefault(),i.onThumbnailClick(t(this),!0)):t(this).closest(".sby_item").length&&void 0!==t(this).closest(".sby_item").attr("data-video-id")&&t(this).attr("href","https://www.youtube.com/watch?v="+t(this).closest(".sby_item").attr("data-video-id"))})),e.find(".sby_item").first().addClass("sby_current"),e.on("mouseenter",(function(){i.canCreatePlayer()&&(e.find(".sby_player_outer_wrap iframe").length?void 0===i.player&&i.playerEagerLoaded()&&i.createPlayer("sby_player"+i.index):(e.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),e.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),i.createPlayer("sby_player"+i.index)))})),window.sbySemiEagerLoading&&i.createPlayer("sby_player"+i.index),i.settings.noCDN&&e.find(".sby_player_outer_wrap").append('<div class="sby_play_btn">\n                        <span class="sby_play_btn_bg"></span>\n                    <svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="youtube" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="svg-inline--fa fa-youtube fa-w-18"><path fill="currentColor" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z" class=""></path></svg>                    </div>'))},createPlayer:function(e,i,s,n){var a=t(this.el),o=this;if(i=void 0!==i?i:this.getVideoID(a.find(".sby_item").first()),s=void 0!==s?s:0,void 0===sbyOptions.isCustomizer||!sbyOptions.isCustomizer){if(void 0===n&&(n={host:window.location.protocol+o.embedURL,videoId:i,playerVars:{modestbranding:1,rel:0,autoplay:s}}),void 0===n.events&&(n.events={onReady:function(){a.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden"),t("#"+e).length&&t("#"+e).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").length&&t("#"+e).closest(".sby_video_thumbnail_wrap").find(".sby_video_thumbnail").fadeTo(0,"slow",(function(){t(this).css("z-index",-1),t(this).find(".sby_loader").hide().addClass("sby_hidden"),t(this).closest(".sby_item").removeClass("sby_player_loading")}));var i=jQuery.Event("sbyafterplayerready");i.feed=o,i.player=this,jQuery(window).trigger(i)},onStateChange:function(s){a.find(".sby_player_outer_wrap").removeClass("sby_player_loading").find(".sby_video_thumbnail").css("z-index",-1).find(".sby_loader").hide().addClass("sby_hidden"),o.afterStateChange(e,i,s,t("#"+e).closest(".sby_video_thumbnail_wrap")),1===s.data&&void 0!==o.players&&a.find(".sby_item").each((function(){var e=o.getVideoID(t(this));t(this).find("iframe").length&&e!==i&&void 0!==o.players[e]&&"function"==typeof o.players[e].pauseVideo&&o.players[e].pauseVideo()}))}}),window.sbyEagerLoading)var r=YT.get(e);else r=new window.YT.Player(e,n);this.maybeAddCTA(e),a.hasClass("sby_layout_list")&&void 0===this.players[i]?this.players[i]=r:void 0===this.player&&(this.player=r);var l=jQuery.Event("sbyafterplayercreated");return l.feed=this,jQuery(window).trigger(l),a.find(".sby_player_outer_wrap .sby_play_btn").remove(),r}},afterStateChange:function(t,e,i,s){},afterInitialImagesLoaded:function(){this.initLayout(),this.loadMoreButtonInit(),this.hideExtraItemsForWidth(),this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.afterFeedSet(),this.sizePlayer(),this.sizeItems(),this.settings.consentGiven?this.applyFullFeatures():this.removeFeatures()},afterResize:function(){this.setImageHeight(),this.setImageResolution(),this.maybeRaiseImageResolution(),this.setImageSizeClass()},afterLoadMoreClicked:function(t){t.find(".sby_loader").removeClass("sby_hidden"),t.find(".sby_btn_text").addClass("sby_hidden"),t.closest(".sb_youtube").find(".sby_num_diff_hide").addClass("sby_transition").removeClass("sby_num_diff_hide")},afterNewImagesLoaded:function(){var e=t(this.el),i=this;this.beforeNewImagesRevealed(),this.revealNewImages(),this.afterNewImagesRevealed(),this.sizePlayer(),this.sizeItems(),setTimeout((function(){e.find(".sby_loader").addClass("sby_hidden"),e.find(".sby_btn_text").removeClass("sby_hidden"),i.maybeRaiseImageResolution()}),1),this.settings.consentGiven?this.applyFullFeatures():this.removeFeatures()},beforeNewImagesRevealed:function(){this.setImageHeight(),this.maybeRaiseImageResolution(!0),this.setImageSizeClass()},afterFeedSet:function(){},sizePlayer:function(){var e=t(this.el),i=this;if(e.hasClass("sby_layout_gallery")){$playerThumbnail=e.find(".sby_player_item").find(".sby_player_video_thumbnail");var s=$playerThumbnail.innerWidth(),n=Math.floor(9*s/16);i.settings.narrowPlayer&&(n=Math.floor(3*s/4)),$playerThumbnail.css("height",n+"px").css("overflow","hidden")}else e.hasClass("sby_layout_list")&&e.find(".sby_item").each((function(){$playerThumbnail=t(this).find(".sby_item_video_thumbnail");var e=$playerThumbnail.innerWidth(),s=Math.floor(9*e/16);i.settings.narrowPlayer&&(s=Math.floor(3*e/4)),$playerThumbnail.css("height",s+"px").css("overflow","hidden")}))},sizeItems:function(){var e=t(this.el);e.hasClass("sby_layout_list")||e.find(".sby_item").find(".sby_item_video_thumbnail").each((function(){if(t(this).hasClass("sby_imgLiquid_ready")){var e=t(this).innerWidth(),i=Math.floor(9*e/16);t(this).css("height",i+"px").css("overflow","hidden")}}))},revealNewImages:function(){var e=t(this.el),i=this;this.applyImageLiquid(),"function"==typeof sbyCustomJS&&setTimeout((function(){sbyCustomJS()}),100),e.find(".sby-screenreader").find("img").remove(),e.find(".sby_item.sby_new").each((function(e){var s=jQuery(this);videoID=s.attr("data-video-id"),window.sbyEagerLoading&&i.canCreatePlayer()&&t("#sby_player_"+videoID).length&&(player=new YT.Player("sby_player_"+videoID,{height:"100",width:"100",videoId:videoID,playerVars:{modestbranding:1,rel:0,autoplay:0},events:{onStateChange:function(t){t.target.getVideoData().video_id,1===t.data&&s.find(".sby_item").each((function(){var e=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(t.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+e).pauseVideo()}))}}})),s.find(".sby_video_thumbnail").on("mouseenter",(function(){i.onThumbnailEnter(t(this),!1)})),s.find(".sby_player_wrap").on("mouseleave",(function(){i.onThumbnailLeave(t(this),!1)})),s.find(".sby_video_thumbnail").on("click",(function(e){!(!i.settings.lightboxEnabled||i.settings.lightboxEnabled&&i.settings.noCDN)||!i.settings.noCDN&&i.settings.consentGiven?(e.preventDefault(),i.onThumbnailClick(t(this),!1)):t(this).closest(".sby_item").length&&void 0!==t(this).closest(".sby_item").attr("data-video-id")&&t(this).attr("href","https://www.youtube.com/watch?v="+t(this).closest(".sby_item").attr("data-video-id"))})),i.settings.lightboxEnabled&&(s.find(".sby_video_thumbnail").attr("data-sby-lightbox",i.index),"undefined"!=typeof sbyOptions&&void 0!==sbyOptions.lightboxPlaceholder&&(i.settings.narrowPlayer?s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholderNarrow):s.find(".sby_video_thumbnail").attr("href",sbyOptions.lightboxPlaceholder))),i.afterItemRevealed(s),""===s.find(".sby_info_item").text().trim()&&s.find(".sby_info_item").addClass("sby_no_space")})),e.find(".sby_player_item").each((function(t){var e=jQuery(this);i.afterItemRevealed(e)})),setTimeout((function(){e.find(".sby_item.sby_new").removeClass("sby_new"),e.find(".sby_transition").length,e.find(".sby_transition").each((function(t){var e=jQuery(this);setTimeout((function(){e.removeClass("sby_transition")}),1)}))}),1)},afterItemRevealed:function(){},afterNewImagesRevealed:function(){this.listenForVisibilityChange(),this.sendNeedsResizingToServer(),this.sendCheckWPPostsToServer(),this.settings.imageLoadEnabled||t(".sby_no_resraise").removeClass("sby_no_resraise");var e=t.Event("sbyafterimagesloaded");e.el=t(this.el),t(window).trigger(e)},setResizedImages:function(){t(this.el).find(".sby_resized_image_data").length&&void 0!==t(this.el).find(".sby_resized_image_data").attr("data-resized")&&0===t(this.el).find(".sby_resized_image_data").attr("data-resized").indexOf('{"')&&(this.resizedImages=JSON.parse(t(this.el).find(".sby_resized_image_data").attr("data-resized")),t(this.el).find(".sby_resized_image_data").remove())},sendNeedsResizingToServer:function(){var e=this;if(e.needsResizing.length>0&&e.settings.resizingEnabled){var i=t(this.el).find(".sby_item").length;$({action:"sby_resized_images_submit",needs_resizing:e.needsResizing,offset:i,feed_id:e.settings.feedID,location:e.locationGuess(),post_id:e.settings.postID,atts:e.settings.shortCodeAtts},(function(t){if(0===t.trim().indexOf("{")){var i=JSON.parse(t);e.settings.debugEnabled&&console.log(i)}}))}},sendCheckWPPostsToServer:function(){var e=this;if(e.settings.checkWPPosts||e.settings.singleCheckPosts){var i=void 0!==e.settings.feedID?e.settings.feedID:"sby_single",s=e.mostRecentlyLoadedPosts;e.mostRecentlyLoadedPosts=[],$({action:"sby_check_wp_submit",feed_id:i,atts:e.settings.shortCodeAtts,location:e.locationGuess(),post_id:e.settings.postID,offset:t(this.el).hasClass("sby_layout_carousel")?Math.floor(t(this.el).find(".sby_item").length/2-1):t(this.el).find(".sby_item").length,posts:s},(function(t){if(0===t.trim().indexOf("{")){var i=JSON.parse(t);e.settings.debugEnabled&&console.log(i),e.afterSendCheckWPPostsToServer(i)}}))}},afterSendCheckWPPostsToServer:function(t){},loadMoreButtonInit:function(){var e=t(this.el),i=this;e.find(".sby_footer .sby_load_btn").off().on("click",(function(){i.afterLoadMoreClicked(jQuery(this)),i.getNewPostSet()}))},getNewPostSet:function(){var e=t(this.el),i=this;$({action:"sby_load_more_clicked",offset:e.find(".sby_item").length,feed_id:i.settings.feedID,atts:i.settings.shortCodeAtts,location:i.locationGuess(),post_id:i.settings.postID,current_resolution:i.imageResolution},(function(s){if(0===s.trim().indexOf("{")){var n=JSON.parse(s),a=void 0!==n.feedStatus.checkWPPosts&&n.feedStatus.checkWPPosts;i.settings.debugEnabled&&console.log(n),i.settings.checkWPPosts=!!a,i.appendNewPosts(n.html),i.addResizedImages(n.resizedImages),i.settings.ajaxPostLoad?(i.settings.ajaxPostLoad=!1,i.afterInitialImagesLoaded()):i.afterNewImagesLoaded(),n.feedStatus.shouldPaginate?i.outOfPages=!1:(i.outOfPages=!0,e.find(".sby_load_btn").hide()),t(".sby_no_js").removeClass("sby_no_js"),P()}}))},appendNewPosts:function(e){var i=t(this.el);i.find(".sby_items_wrap .sby_item").length?i.find(".sby_items_wrap .sby_item").last().after(e):i.find(".sby_items_wrap").append(e)},addResizedImages:function(t){for(var e in t)this.resizedImages[e]=t[e]},setImageHeight:function(){},maybeRaiseSingleImageResolution:function(e,i,s){var n=this,a=n.getImageUrls(e),o=e.find(".sby_video_thumbnail > img").attr("src"),r=150;if(s=void 0!==s&&s,!(e.hasClass("sby_no_resraise")||!n.settings.consentGiven&&n.settings.noCDN)){t.each(a,(function(t,e){e===o&&(r=parseInt(t),s=!1)}));var l=640;switch(n.settings.imgRes){case"thumb":l=120;break;case"medium":l=320;break;case"large":l=480;break;case"full":l=640;break;default:var d=Math.max(n.settings.autoMinRes,e.find(".sby_video_thumbnail").innerWidth());switch(n.getBestResolutionForAuto(d,1,t(this.el).find("sby_item").first())){case 480:l=480;break;case 320:l=320;break;case 120:l=120}}if(l>r||o===n.placeholderURL||s){if(n.settings.debugEnabled){var h=o===n.placeholderURL?"was placeholder":"too small";console.log("rais res for "+o,h)}var c=a[l];e.find(".sby_video_thumbnail > img").attr("src",c),e.find(".sby_video_thumbnail").hasClass("sby_imgLiquid_ready")&&e.find(".sby_video_thumbnail").css("background-image",'url("'+c+'")')}e.find("img").on("error",(function(){if(t(this).hasClass("sby_img_error"))console.log("unfixed error "+t(this).attr("src"));else{if(t(this).addClass("sby_img_error"),t(this).attr("src").indexOf("i.ytimg.com")>-1){n.settings.favorLocal=!0;var e=n.getImageUrls(t(this).closest(".sby_item"));void 0!==e[640]&&(t(this).attr("src",e[640]),t(this).closest(".sby_video_thumbnail").css("background-image","url("+e[640]+")"))}else void 0!==t(this).closest(".sby_video_thumbnail").attr("data-full-res")?(t(this).attr("src",t(this).closest(".sby_video_thumbnail").attr("data-full-res")),t(this).closest(".sby_video_thumbnail").css("background-image","url("+t(this).closest(".sby_video_thumbnail").attr("data-full-res")+")")):"undefined"!==t(this).closest(".sby_video_thumbnail").attr("href")&&(t(this).attr("src",t(this).closest(".sby_video_thumbnail").attr("href")+"media?size=l"),t(this).closest(".sby_video_thumbnail").css("background-image","url("+t(this).closest(".sby_video_thumbnail").attr("href")+"media?size=l)"));setTimeout((function(){n.afterResize()}),1)}}))}},maybeRaiseImageResolution:function(e){var i=this,s=void 0!==e&&!0===e?".sby_item.sby_new":".sby_item",n=!i.isInitialized;t(i.el).find(s).each((function(e){!t(this).hasClass("sby_num_diff_hide")&&t(this).find(".sby_video_thumbnail").length&&void 0!==t(this).find(".sby_video_thumbnail").attr("data-img-src-set")&&i.maybeRaiseSingleImageResolution(t(this),e,n)})),i.isInitialized=!0},getBestResolutionForAuto:function(e,i,s){(isNaN(i)||i<1)&&(i=1);var n=e*i,a=10*Math.ceil(n/10),o=[120,320,480,640];if(s.hasClass("sby_highlighted")&&(a*=2),-1===o.indexOf(parseInt(a))){var r=!1;t.each(o,(function(t,e){e>parseInt(a)&&!r&&(a=e,r=!0)}))}return a},hideExtraItemsForWidth:function(){if("carousel"!==this.layout){var e=t(this.el),i=void 0!==e.attr("data-num")&&""!==e.attr("data-num")?parseInt(e.attr("data-num")):1,s=void 0!==e.attr("data-nummobile")&&""!==e.attr("data-nummobile")?parseInt(e.attr("data-nummobile")):i;e.hasClass(".sby_layout_carousel")||(t(window).width()<480?s<e.find(".sby_item").length&&e.find(".sby_item").slice(s-e.find(".sby_item").length).addClass("sby_num_diff_hide"):i<e.find(".sby_item").length&&e.find(".sby_item").slice(i-e.find(".sby_item").length).addClass("sby_num_diff_hide"))}},setImageSizeClass:function(){var e=t(this.el);e.removeClass("sby_small sby_medium");var i=e.innerWidth(),s=parseInt(e.find(".sby_items_wrap").outerWidth()-e.find(".sby_items_wrap").width())/2,n=this.getColumnCount(),a=(i-s*(n+2))/n;a>140&&a<240?e.addClass("sby_medium"):a<=140&&e.addClass("sby_small")},setMinImageWidth:function(){t(this.el).find(".sby_item .sby_video_thumbnail").first().length?this.minImageWidth=t(this.el).find(".sby_item .sby_video_thumbnail").first().innerWidth():this.minImageWidth=150},setImageResolution:function(){if("auto"===this.settings.imgRes)this.imageResolution="auto";else switch(this.settings.imgRes){case"thumb":this.imageResolution=150;break;case"medium":this.imageResolution=320;break;default:this.imageResolution=640}},getImageUrls:function(t){var e=JSON.parse(t.find(".sby_video_thumbnail").attr("data-img-src-set").replace(/\\\//g,"/")),i=t.attr("id").replace("sby_","").replace("player_","");if(void 0!==this.resizedImages[i]&&"video"!==this.resizedImages[i]&&"pending"!==this.resizedImages[i]&&"error"!==this.resizedImages[i].id&&"video"!==this.resizedImages[i].id&&"pending"!==this.resizedImages[i].id){if(void 0!==this.resizedImages[i].sizes){var s=[];void 0!==this.resizedImages[i].sizes.full&&(s.push(640),e[640]=sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg",t.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg"),t.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg")),void 0!==this.resizedImages[i].sizes.low&&(s.push(320),e[320]=sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg",this.settings.favorLocal&&void 0===this.resizedImages[i].sizes.full&&(t.find(".sby_link_area").attr("href",sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg"),t.find(".sby_video_thumbnail").attr("data-full-res",sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg"))),void 0!==this.resizedImages[i].sizes.thumb&&(s.push(150),e[150]=sbyOptions.resized_url+this.resizedImages[i].id+"thumb.jpg"),this.settings.favorLocal&&(-1===s.indexOf(640)&&s.indexOf(320)>-1&&(e[640]=sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg"),-1===s.indexOf(320)&&(s.indexOf(640)>-1?e[320]=sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg":s.indexOf(150)>-1&&(e[320]=sbyOptions.resized_url+this.resizedImages[i].id+"thumb.jpg")),-1===s.indexOf(150)&&(s.indexOf(320)>-1?e[150]=sbyOptions.resized_url+this.resizedImages[i].id+"low.jpg":s.indexOf(640)>-1&&(e[150]=sbyOptions.resized_url+this.resizedImages[i].id+"full.jpg")))}}else(void 0===this.resizedImages[i]||void 0!==this.resizedImages[i].id&&"pending"!==this.resizedImages[i].id&&"error"!==this.resizedImages[i].id)&&this.addToNeedsResizing(i);return e},getVideoID:function(e){if(e.hasClass("sby_item")||e.hasClass("sby_player_item")){if(void 0!==e.find(".sby_video_thumbnail").attr("data-video-id"))return e.find(".sby_video_thumbnail").attr("data-video-id")}else if(e.closest("sby_item").length||e.closest("sby_player_item").length){var i=e.closest("sby_item").length?e.closest("sby_item"):e.closest("sby_player_item");if(void 0!==i.find(".sby_video_thumbnail").attr("data-video-id"))return i.find(".sby_video_thumbnail").attr("data-video-id")}else{if(e.hasClass("sb_youtube"))return e.find(".sby_item").first().find(".sby_video_thumbnail").attr("data-video-id");if(t(this.el).find(".sby_video_thumbnail").first().length&&void 0!==t(this.el).find(".sby_video_thumbnail").first().attr("data-video-id"))return t(this.el).find(".sby_video_thumbnail").first().attr("data-video-id")}return""},getAvatarUrl:function(t,e){if(""===t)return"";var i=this.settings.general.avatars;return"local"===(e=void 0!==e?e:"local")?void 0!==i["LCL"+t]&&1===parseInt(i["LCL"+t])?sbyOptions.resized_url+t+".jpg":void 0!==i[t]?i[t]:"":void 0!==i[t]?i[t]:void 0!==i["LCL"+t]&&1===parseInt(i["LCL"+t])?sbyOptions.resized_url+t+".jpg":""},addToNeedsResizing:function(t){-1===this.needsResizing.indexOf(t)&&this.needsResizing.push(t)},applyImageLiquid:function(){var e=t(this.el);(function(){var t,e,i,s,n=n||{VER:"0.9.944"};n.bgs_Available=!1,n.bgs_CheckRunned=!1,(t=jQuery).fn.extend({sby_imgLiquid:function(e){this.defaults={fill:!0,verticalAlign:"center",horizontalAlign:"center",useBackgroundSize:!0,useDataHtmlAttr:!0,responsive:!0,delay:0,fadeInTime:0,removeBoxBackground:!0,hardPixels:!0,responsiveCheckTime:500,timecheckvisibility:500,onStart:null,onFinish:null,onItemStart:null,onItemFinish:null,onItemError:null},function(){if(!n.bgs_CheckRunned){n.bgs_CheckRunned=!0;var e=t('<span style="background-size:cover" />');t("body").append(e),function(){var t=e[0];if(t&&window.getComputedStyle){var i=window.getComputedStyle(t,null);i&&i.backgroundSize&&(n.bgs_Available="cover"===i.backgroundSize)}}(),e.remove()}}();var i=this;return this.options=e,this.settings=t.extend({},this.defaults,this.options),this.settings.onStart&&this.settings.onStart(),this.each((function(e){function s(){(l.responsive||h.data("sby_imgLiquid_oldProcessed"))&&h.data("sby_imgLiquid_settings")&&(l=h.data("sby_imgLiquid_settings"),d.actualSize=d.get(0).offsetWidth+d.get(0).offsetHeight/1e4,d.sizeOld&&d.actualSize!==d.sizeOld&&o(),d.sizeOld=d.actualSize,setTimeout(s,l.responsiveCheckTime))}function a(){h.data("sby_imgLiquid_error",!0),d.addClass("sby_imgLiquid_error"),l.onItemError&&l.onItemError(e,d,h),r()}function o(){var t,i,s,n,a,o,c,u,g=0,p=0,y=d.width(),f=d.height();void 0===h.data("owidth")&&h.data("owidth",h[0].width),void 0===h.data("oheight")&&h.data("oheight",h[0].height),l.fill===y/f>=h.data("owidth")/h.data("oheight")?(t="100%",i="auto",s=Math.floor(y),n=Math.floor(y*(h.data("oheight")/h.data("owidth")))):(t="auto",i="100%",s=Math.floor(f*(h.data("owidth")/h.data("oheight"))),n=Math.floor(f)),c=y-s,"left"===(a=l.horizontalAlign.toLowerCase())&&(p=0),"center"===a&&(p=.5*c),"right"===a&&(p=c),-1!==a.indexOf("%")&&(a=parseInt(a.replace("%",""),10))>0&&(p=c*a*.01),u=f-n,"left"===(o=l.verticalAlign.toLowerCase())&&(g=0),"center"===o&&(g=.5*u),"bottom"===o&&(g=u),-1!==o.indexOf("%")&&(o=parseInt(o.replace("%",""),10))>0&&(g=u*o*.01),l.hardPixels&&(t=s,i=n),h.css({width:t,height:i,"margin-left":Math.floor(p),"margin-top":Math.floor(g)}),h.data("sby_imgLiquid_oldProcessed")||(h.fadeTo(l.fadeInTime,1),h.data("sby_imgLiquid_oldProcessed",!0),l.removeBoxBackground&&d.css("background-image","none"),d.addClass("sby_imgLiquid_nobgSize"),d.addClass("sby_imgLiquid_ready")),l.onItemFinish&&l.onItemFinish(e,d,h),r()}function r(){e===i.length-1&&i.settings.onFinish&&i.settings.onFinish()}var l=i.settings,d=t(this),h=t("img:first",d);return h.length?(h.data("sby_imgLiquid_settings")?(d.removeClass("sby_imgLiquid_error").removeClass("sby_imgLiquid_ready"),l=t.extend({},h.data("sby_imgLiquid_settings"),i.options)):l=t.extend({},i.settings,function(){var t={};if(i.settings.useDataHtmlAttr){var e=d.attr("data-sby_imgLiquid-fill"),s=d.attr("data-sby_imgLiquid-horizontalAlign"),a=d.attr("data-sby_imgLiquid-verticalAlign");("true"===e||"false"===e)&&(t.fill=Boolean("true"===e)),void 0===s||"left"!==s&&"center"!==s&&"right"!==s&&-1===s.indexOf("%")||(t.horizontalAlign=s),void 0===a||"top"!==a&&"bottom"!==a&&"center"!==a&&-1===a.indexOf("%")||(t.verticalAlign=a)}return n.isIE&&i.settings.ieFadeInDisabled&&(t.fadeInTime=0),t}()),h.data("sby_imgLiquid_settings",l),l.onItemStart&&l.onItemStart(e,d,h),void(n.bgs_Available&&l.useBackgroundSize?(-1===d.css("background-image").indexOf(encodeURI(h.attr("src")))&&d.css({"background-image":'url("'+encodeURI(h.attr("src"))+'")'}),d.css({"background-size":l.fill?"cover":"contain","background-position":(l.horizontalAlign+" "+l.verticalAlign).toLowerCase(),"background-repeat":"no-repeat"}),t("a:first",d).css({display:"block",width:"100%",height:"100%"}),t("img",d).css({display:"none"}),l.onItemFinish&&l.onItemFinish(e,d,h),d.addClass("sby_imgLiquid_bgSize"),d.addClass("sby_imgLiquid_ready"),r()):function i(){if(h.data("oldSrc")&&h.data("oldSrc")!==h.attr("src")){var n=h.clone().removeAttr("style");return n.data("sby_imgLiquid_settings",h.data("sby_imgLiquid_settings")),h.parent().prepend(n),h.remove(),(h=n)[0].width=0,void setTimeout(i,10)}return h.data("sby_imgLiquid_oldProcessed")?void o():(h.data("sby_imgLiquid_oldProcessed",!1),h.data("oldSrc",h.attr("src")),t("img:not(:first)",d).css("display","none"),d.css({overflow:"hidden"}),h.fadeTo(0,0).removeAttr("width").removeAttr("height").css({visibility:"visible","max-width":"none","max-height":"none",width:"auto",height:"auto",display:"block"}),h.on("error",a),h[0].onerror=a,function t(){h.data("sby_imgLiquid_error")||h.data("sby_imgLiquid_loaded")||h.data("sby_imgLiquid_oldProcessed")||(d.is(":visible")&&h[0].complete&&h[0].width>0&&h[0].height>0?(h.data("sby_imgLiquid_loaded",!0),setTimeout(o,e*l.delay)):setTimeout(t,l.timecheckvisibility))}(),void s())}())):void a()}))}}),e=n.injectCss,i=document.getElementsByTagName("head")[0],(s=document.createElement("style")).type="text/css",s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),i.appendChild(s)})(),"function"==typeof e.find(".sby_player_item").sby_imgLiquid&&(e.find(".sby_player_item").length&&e.find(".sby_player_item .sby_player_video_thumbnail").sby_imgLiquid({fill:!0}),e.find(".sby_item .sby_item_video_thumbnail").sby_imgLiquid({fill:!0}))},listenForVisibilityChange:function(){var e=this;!function(t){var e={callback:function(){},runOnLoad:!0,frequency:100,sbyPreviousVisibility:null},i={sbyCheckVisibility:function(t,e){if(jQuery.contains(document,t[0])){var s=e.sbyPreviousVisibility,n=t.is(":visible");e.sbyPreviousVisibility=n,null==s?e.runOnLoad&&e.callback(t,n):s!==n&&e.callback(t,n),setTimeout((function(){i.sbyCheckVisibility(t,e)}),e.frequency)}}};t.fn.sbyVisibilityChanged=function(s){var n=t.extend({},e,s);return this.each((function(){i.sbyCheckVisibility(t(this),n)}))}}(jQuery),"function"==typeof t(this.el).filter(":hidden").sbyVisibilityChanged&&t(this.el).filter(":hidden").sbyVisibilityChanged({callback:function(t,i){e.afterResize()},runOnLoad:!1})},getColumnCount:function(){var e=t(this.el),i=this.settings.cols,s=this.settings.colsmobile,n=i;return sbyWindowWidth=window.innerWidth,e.hasClass("sby_mob_col_auto")?(sbyWindowWidth<640&&parseInt(i)>2&&parseInt(i)<7&&(n=2),sbyWindowWidth<640&&parseInt(i)>6&&parseInt(i)<11&&(n=4),sbyWindowWidth<=480&&parseInt(i)>2&&(n=1)):sbyWindowWidth<=480&&(n=s),parseInt(n)},onThumbnailClick:function(e,i,s){if(this.canCreatePlayer()){var n=t(this.el);if(n.hasClass("sby_layout_gallery")){if(n.find(".sby_current").removeClass("sby_current"),e.closest(".sby_item").addClass("sby_current"),e.closest(".sby_item").addClass("sby_current"),n.addClass("sby_player_added").find(".sby_player_outer_wrap").addClass("sby_player_loading"),n.find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").show().removeClass("sby_hidden"),n.find(".sby_player_outer_wrap iframe").length)i?(s=void 0===s?this.getVideoID(n.find(".sby_item").first()):s,this.playVideoInPlayer(s)):(s=void 0===s?this.getVideoID(e.closest(".sby_item")):s,this.changePlayerInfo(e.closest(".sby_item")),this.playVideoInPlayer(s),this.afterVideoChanged());else if(i)this.createPlayer("sby_player"+this.index);else{s=void 0===s?this.getVideoID(e.closest(".sby_item")):s;this.createPlayer("sby_player"+this.index,s)}this.updateGalleryPlayerSubscribeBtn(e)}else if(t(this.el).hasClass("sby_layout_grid")||t(this.el).hasClass("sby_layout_carousel")){var a=e.closest(".sby_item");s=void 0===s?this.getVideoID(a):s,this.playVideoInPlayer(s),this.afterVideoChanged()}else t(this.el).hasClass("sby_layout_list")&&(a=e.closest(".sby_item"),s=void 0===s?this.getVideoID(a):s,a.length&&!a.find("iframe").length?(a.find(".sby_loader").show().removeClass("sby_hidden"),a.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s)):(this.playVideoInPlayer(s,a.attr("data-video-id")),this.afterVideoChanged()))}},onThumbnailEnter:function(e){if(this.canCreatePlayer()&&t(this.el).hasClass("sby_layout_list")){var i=e.closest(".sby_item"),s=this.getVideoID(i);i.find("iframe").length||(i.find(".sby_loader").show().removeClass("sby_hidden"),i.addClass("sby_player_loading sby_player_loaded"),this.createPlayer("sby_player_"+s,s,0))}},onThumbnailLeave:function(t){},changePlayerInfo:function(t){},playerEagerLoaded:function(){if(void 0!==this.player||t(this.el).hasClass("sby_player_loaded"))return!0},canCreatePlayer:function(){return!t(this.el).find("#sby_blank").length&&(this.playerEagerLoaded()||this.playerAPIReady&&this.settings.consentGiven||window.sbyAPIReady&&this.settings.consentGiven)},playVideoInPlayer:function(t,e){void 0!==this.player&&void 0!==this.player.loadVideoById?this.player.loadVideoById(t):void 0!==window.sbyLightboxPlayer&&void 0!==window.sbyLightboxPlayer.loadVideoById?window.sbyLightboxPlayer.loadVideoById(t):void 0!==e&&void 0!==this.players&&void 0!==this.players[e]&&void 0!==this.players[e].loadVideoById&&this.players[e].loadVideoById(t)},afterVideoChanged:function(){t(this.el).hasClass("sby_layout_gallery")&&(t(this.el).find(".sby_player_outer_wrap").removeClass("sby_player_loading"),t(this.el).find(".sby_player_outer_wrap .sby_video_thumbnail").find(".sby_loader").hide().addClass("sby_hidden"),t("html, body").animate({scrollTop:t(this.el).find(".sby_player_outer_wrap").offset().top},300))},updateGalleryPlayerSubscribeBtn:function(e){var i=e.attr("href").match(/channel\/(.*)$/);if(i){var s="http://www.youtube.com/channel/"+i[1]+"?sub_confirmation=1&feature=subscribe-embed-click";t(".sby-channel-subscribe-btn a").attr("href",s)}},checkConsent:function(){if(this.settings.consentGiven||!this.settings.gdpr)return this.settings.noCDN=!1,!0;if("undefined"!=typeof CLI_Cookie)null!==CLI_Cookie.read(CLI_ACCEPT_COOKIE_NAME)&&("null"!==CLI_Cookie.read("cookielawinfo-checkbox-non-necessary")&&(this.settings.consentGiven="yes"===CLI_Cookie.read("cookielawinfo-checkbox-non-necessary")),"null"!==CLI_Cookie.read("cookielawinfo-checkbox-necessary")&&(this.settings.consentGiven="yes"===CLI_Cookie.read("cookielawinfo-checkbox-necessary")));else if(void 0!==window.cnArgs){var t=("; "+document.cookie).split("; cookie_notice_accepted=");if(2===t.length){var e=t.pop().split(";").shift();this.settings.consentGiven="true"===e}}else void 0!==window.complianz?this.settings.consentGiven="allow"===function(t){for(var e="cmplz_marketing=",i=window.document.cookie.split(";"),s=0;s<i.length;s++){var n=i[s].trim();if(0==n.indexOf(e))return n.substring(16,n.length)}return""}()||jQuery("body").hasClass("cmplz-status-marketing"):void 0!==window.Cookiebot?this.settings.consentGiven=Cookiebot.consented:void 0!==window.BorlabsCookie&&(this.settings.consentGiven=void 0!==window.BorlabsCookie.Consents?window.BorlabsCookie.Consents.hasConsent("youtube"):window.BorlabsCookie.checkCookieConsent("youtube"));var i=jQuery.Event("sbycheckconsent");return i.feed=this,jQuery(window).trigger(i),this.settings.consentGiven&&(this.settings.noCDN=!1),this.settings.consentGiven},afterConsentToggled:function(){if(this.checkConsent()){var t=this;window.sby.maybeAddYTAPI(),t.maybeRaiseImageResolution(),t.applyFullFeatures(),setTimeout((function(){t.afterResize()}),500)}},removeFeatures:function(){this.settings.noCDN&&t(this.el).find(".sby_video_thumbnail").each((function(){t(this).removeAttr("data-sby-lightbox")}))},applyFullFeatures:function(){var e=this;t(e.el).find(".sby_header_img img").attr("src",t(e.el).find(".sby_header_img").attr("data-avatar-url")),void 0===t(e.el).find(".sby_video_thumbnail").first().attr("data-sby-lightbox")&&e.settings.lightboxEnabled&&t(e.el).find(".sby_video_thumbnail").each((function(){t(this).attr("data-sby-lightbox",e.index)}));var i=t(e.el);if(i.find(".sby_no_consent").removeClass("sby_no_consent"),i.hasClass("sby_layout_gallery")&&i.find(".sby_player_outer_wrap").length){if(this.maybeRaiseSingleImageResolution(i.find(".sby_player_outer_wrap"),0,!0),i.find(".sby_item").first().addClass("sby_current"),!e.canCreatePlayer())return;i.find(".sby_player_outer_wrap iframe").length||e.createPlayer("sby_player"+e.index)}},locationGuess:function(){var e=t(this.el),i="content";return e.closest("footer").length?i="footer":e.closest(".header").length||e.closest("header").length?i="header":(e.closest(".sidebar").length||e.closest("aside").length)&&(i="sidebar"),i}},s.prototype=Object.create(i.prototype),n.prototype={getData:function(t){return{feedIndex:parseInt(t.closest(".sb_youtube").attr("data-sby-index")-1),link:t.attr("href"),videoTitle:void 0!==t.attr("data-video-title")?p(t.attr("data-video-title")):"YouTube Video",video:t.attr("data-video-id"),channelID:t.attr("data-channel-id")}},template:function(){return"<div id='sby_lightboxOverlay' class='sby_lightboxOverlay'></div><div id='sby_lightbox' class='sby_lightbox'><div class='sby_lb-outerContainer'><div class='sby_lb-container'><img class='sby_lb-image' alt='Lightbox image placeholder' src='' /><div class='sby_lb-player sby_lb-player-placeholder' id='sby_lb-player'></div><div class='sby_lb-nav'><a class='sby_lb-prev' href='#' ><p class='sby-screenreader'>Previous Slide</p><span></span></a><a class='sby_lb-next' href='#' ><p class='sby-screenreader'>Next Slide</p><span></span></a></div><div class='sby_lb-loader'><a class='sby_lb-cancel'></a></div></div></div><div class='sby_lb-dataContainer'><div class='sby_lb-data'><div class='sby_lb-details'><div class='sby_lb-caption'></div><div class='sby_lb-info'><div class='sby_lb-number'></div></div></div><div class='sby_lb-closeContainer'><a class='sby_lb-close'></a></div></div></div></div>"},beforePlayerSetup:function(t,e,i,s,n){},afterPlayerSetup:function(t,e,i,s){},afterResize:function(){var e=t("#sby_lightbox .sby_lb-player").height();if(e>100){var i=t("#sby_lightbox .sby_lb-outerContainer").height()-e;i>10&&t("#sby_lightbox .sby_lb-player").css("top",i/2)}},pausePlayer:function(){void 0===window.sbyLightboxPlayer&&"undefined"==typeof YT||(void 0!==YT.get("sby_lb-player")&&"function"==typeof YT.get("sby_lb-player").pauseVideo?YT.get("sby_lb-player").pauseVideo():void 0!==window.sbyLightboxPlayer&&"function"==typeof window.sbyLightboxPlayer.pauseVideo&&window.sbyLightboxPlayer.pauseVideo())}},a.prototype=Object.create(n.prototype),o.prototype={toggleCTA:function(e,i,s){this.$player=s.length?s:t(".sby_lb-container"),this.state=i,this.videoID=e,this.isInitialized=!0,this.resetCTA(),void 0!==window.sby.ctas[e]&&(this.callbackArgs=window.sby.ctas[e]);var n=this.callbackArgs.callback;if("link"===n)this.callback=this.link;else{if("related"!==n)return;this.callback=this.related}2===i||0===i?(this.$player.find(".sby_cta_items_wraps").addClass("sby_cta_is_open"),2===i?this.$player.find(".sby_cta_items_wraps").addClass("sby_cta_state_paused"):this.$player.find(".sby_cta_items_wraps").addClass("sby_cta_state_ended"),this.$player.find(".sby_cta_items_wraps").show(),this.callback(),this.setCTAStyles()):(this.$player.find(".sby_cta_items_wraps").removeClass("sby_cta_is_open"),this.$player.find(".sby_cta_items_wraps").hide().removeClass("sby_cta_state_paused").removeClass("sby_cta_state_ended").removeClass("sby_cta_is_open"))},related:function(e){var i=this,s=this.feedObjInContext,n=window.sby.shuffle(this.getRelated(s)),a=0,o=this.videoID,r=this.$player;this.$player.find(".sby_cta_items_wraps").removeClass("sby_cta_cols_"+this.numItemColumns),this.numItems=4,this.numItemColumns=2,r.width()<480&&(this.numItems=1,this.numItemColumns=1);var l=this.numItems;t.each(n,(function(t,e){e.videoID!==o&&a<l&&(r.find(".sby_cta_items_wraps .sby_cta_inner_wrap").append('<div class="sby_cta_item"><div class="sby_video_thumbnail_wrap"><a class="sby_video_thumbnail" href="javascript:void(0);" target="_blank" rel="noopener" data-video-id="'+e.videoID+'"><div class="sby_thumbnail_hover"><div class="sby_thumbnail_hover_inner"><span class="sby_video_title">'+e.title+'</span></div></div><span class="sby-screenreader">Play</span><img src="'+e.thumbnail+'" alt="'+e.title+'"><span class="sby_loader sby_hidden" style="background-color: rgb(255, 255, 255);"></span></a></div></div>'),a++)})),r.find(".sby_cta_items_wraps .sby_video_thumbnail").each((function(){t(this).off().on("click",(function(e){e.preventDefault();var n=t(this).attr("data-video-id");s.onThumbnailClick(t(this),!0,n),i.videoID=n}))}))},getRelated:function(e){if(void 0===e.settings.general.cta.defaultPosts[0]){var i=t(e.el),s=[];return i.find(".sby_item").each((function(){if(void 0!==t(this).find(".sby_item_video_thumbnail").attr("data-full-res")){var e={videoID:t(this).attr("data-video-id"),title:p(t(this).attr("data-video-title")),thumbnail:t(this).find(".sby_item_video_thumbnail").attr("data-full-res")};s.push(e)}})),s}return e.settings.general.cta.defaultPosts},link:function(t){var e=this.$player,i=this.feedObjInContext;this.$player.find(".sby_cta_items_wraps").removeClass("sby_cta_cols_"+this.numItemColumns),this.numItems=1,this.numItemColumns=1;var s="",n="";""===i.settings.general.cta.color&&""===i.settings.general.cta.textColor||(s=' style="',n=" sby_custom",""!==i.settings.general.cta.color&&(s+="background: rgb("+i.settings.general.cta.color+");"),""!==i.settings.general.cta.textColor&&(s+="color: rgb("+i.settings.general.cta.textColor+");"),s+='"');var a="";"newwindow"===i.settings.general.cta.openType&&(a=' target="_blank" rel="noopener"'),e.find(".sby_cta_items_wraps .sby_cta_inner_wrap").append('<div class="sby_cta_item"><div class="sby_btn_wrap"><div class="sby_btn'+n+'"><a class="sby_cta_button" href="'+this.callbackArgs.url+'"'+a+' data-video-id="'+this.videoID+'"'+s+">"+this.callbackArgs.text+"</a></div></div></div>")},setCTAStyles:function(){var t=Math.max(90,this.$player.height()-60-49);this.$player.find(".sby_cta_items_wraps").css("height",t+"px").css("width",this.$player.find("iframe").width()-20+"px").addClass("sby_cta_cols_"+this.numItemColumns);var e=Math.max(1,this.numItems/this.numItemColumns),i=2*parseInt(this.$player.find(".sby_cta_items_wraps").css("padding-top").replace("px","")),s=Math.max(90,(t-i)/e);this.$player.find(".sby_cta_item").css("max-height",s+"px").find("img").css({"max-height":s+"px",width:"auto",margin:"auto"}),this.$player.find(".sby_btn_wrap").css("height",s+"px")},resetCTA:function(){this.$player.find(".sby_cta_items_wraps .sby_cta_inner_wrap").empty()}},window.sby_init=function(){window.sby=new e,window.sby.createPage(window.sby.createFeeds,{whenFeedsCreated:window.sby.afterFeedsCreated})},window.sby_carousel_init=function(){console.log("log")}}(jQuery),void 0===window.sbyEagerLoading){if(window.sbyEagerLoading=void 0!==window.sbyOptions&&window.sbyOptions.eagerload,jQuery(".elementor-widget-video").length){var f=void 0!==jQuery(".elementor-widget-video").attr("data-settings")&&JSON.parse(jQuery(".elementor-widget-video").attr("data-settings"));f&&void 0!==f.youtube_url&&(window.sbyEagerLoading=!0)}jQuery("div[data-vc-video-bg]").length&&(window.sbyEagerLoading=!0)}void 0===window.sbySemiEagerLoading&&(window.sbySemiEagerLoading=void 0!==window.sbyOptions&&window.sbyOptions.semiEagerload,(jQuery("div[data-vc-video-bg]").length||window.sbyEagerLoading)&&(window.sbySemiEagerLoading=!1)),jQuery(document).ready((function(t){window.sbySemiEagerLoading||sby_init(),t("#cookie-notice a").on("click",(function(){setTimeout((function(){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].afterConsentToggled()}))}),1e3)})),t("#cookie-law-info-bar a").on("click",(function(){setTimeout((function(){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].afterConsentToggled()}))}),1e3)})),t(".cli-user-preference-checkbox").on("click",(function(){setTimeout((function(){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!1,window.sby.feeds[t].afterConsentToggled()}))}),1e3)})),t(window).on("CookiebotOnAccept",(function(e){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!0,window.sby.feeds[t].afterConsentToggled()}))})),document.addEventListener("cmplz_status_change",(function(e){"marketing"===e.detail.category&&"allow"===e.detail.value&&t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!0,window.sby.feeds[t].afterConsentToggled()}))})),t(document).on("cmplzFireCategories",(function(e){"marketing"===e.detail.category&&t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!0,window.sby.feeds[t].afterConsentToggled()}))})),t(document).on("borlabs-cookie-consent-saved",(function(e){t.each(window.sby.feeds,(function(t){window.sby.feeds[t].settings.consentGiven=!1,window.sby.feeds[t].afterConsentToggled()}))})),t("#sby-frce-hide-license-error").on("click",(function(){t("#sby-fr-ce-license-error").slideUp(),jQuery.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:{action:"sby_hide_frontend_license_error",nonce:sbyOptions.nonce},success:function(t){console.log(t)}})}))}))}if(window.sbySemiEagerLoading){var b="sby-youtube-api";if(null===document.getElementById(b)){var m=document.createElement("script"),_=document.getElementsByTagName("script")[0];m.src="https://www.youtube.com/iframe_api",m.id=b,_.parentNode.insertBefore(m,_)}}function v(t,e){var i,s,n,a,o,r;switch(e){case"authorProfileImageUrl":return null!=t&&null!==(i=t.snippet)&&void 0!==i&&i.authorProfileImageUrl?t.snippet.authorProfileImageUrl:"";case"authorDisplayName":return null!=t&&null!==(s=t.snippet)&&void 0!==s&&s.authorDisplayName?t.snippet.authorDisplayName:"";case"authorChannelUrl":return null!=t&&null!==(n=t.snippet)&&void 0!==n&&n.authorChannelUrl?t.snippet.authorChannelUrl:"";case"textDisplay":return null!=t&&null!==(a=t.snippet)&&void 0!==a&&a.textDisplay?t.snippet.textDisplay:"";case"likeCount":return null!=t&&null!==(o=t.snippet)&&void 0!==o&&o.likeCount?t.snippet.likeCount:"";case"publishedAt":return null!=t&&null!==(r=t.snippet)&&void 0!==r&&r.publishedAt?t.snippet.publishedAt:"";case"totalReplyCount":return null!=t&&t.totalReplyCount?t.totalReplyCount:"";default:return!1}}function w(t){switch(t){case"profile-picture":return'<svg fill="currentColor" width="800px" height="800px" viewBox="0 0 512 512" id="_x30_1" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M256,0C114.615,0,0,114.615,0,256s114.615,256,256,256s256-114.615,256-256S397.385,0,256,0z M256,90  c37.02,0,67.031,35.468,67.031,79.219S293.02,248.438,256,248.438s-67.031-35.468-67.031-79.219S218.98,90,256,90z M369.46,402  H142.54c-11.378,0-20.602-9.224-20.602-20.602C121.938,328.159,181.959,285,256,285s134.062,43.159,134.062,96.398  C390.062,392.776,380.839,402,369.46,402z"/></svg>';case"thumbs-up":return'<svg width="15" height="13" viewBox="0 0 15 13" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.4159 4.18027C13.761 4.18027 14.0778 4.32177 14.3664 4.60477C14.6549 4.88777 14.7992 5.20738 14.7992 5.5636V6.2706C14.7992 6.36471 14.7902 6.45188 14.7722 6.5321C14.7542 6.61232 14.7272 6.69266 14.6912 6.7731L12.684 11.4908C12.5845 11.7449 12.4181 11.9486 12.1849 12.1019C11.9517 12.2552 11.69 12.3318 11.3999 12.3318H5.15938C4.77282 12.3318 4.44566 12.2006 4.17788 11.9383C3.90999 11.6759 3.77604 11.346 3.77604 10.9484V4.7561C3.77604 4.56277 3.81332 4.38049 3.88788 4.20927C3.96254 4.03804 4.06477 3.88754 4.19454 3.75777L7.28938 0.662932C7.5186 0.431043 7.79427 0.281321 8.11638 0.213765C8.43849 0.146321 8.71416 0.178988 8.94338 0.311765C9.22549 0.46421 9.40932 0.695932 9.49488 1.00693C9.58032 1.31793 9.58999 1.62804 9.52388 1.93727L9.09554 4.18027H13.4159ZM1.34404 12.3318C1.01393 12.3318 0.726767 12.2097 0.482544 11.9654C0.238322 11.7212 0.116211 11.434 0.116211 11.1039V5.40827C0.116211 5.07804 0.236989 4.79082 0.478544 4.5466C0.7201 4.30238 1.00466 4.18027 1.33221 4.18027H1.34804C1.67827 4.18027 1.96549 4.30238 2.20971 4.5466C2.45393 4.79082 2.57604 5.07804 2.57604 5.40827V11.1039C2.57604 11.434 2.45393 11.7212 2.20971 11.9654C1.96549 12.2097 1.67827 12.3318 1.34804 12.3318H1.34404Z" fill="currentColor"/></svg>';case"angle-down":return'<svg width="8" height="6" viewBox="0 0 8 6" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.94 0.726654L4 3.77999L7.06 0.726654L8 1.66665L4 5.66665L0 1.66665L0.94 0.726654Z" fill="currentColor"/></svg>';case"youtube":return'<svg width="14" height="11" viewBox="0 0 14 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.66671 7.5L9.12671 5.5L5.66671 3.5V7.5ZM13.3734 2.28C13.46 2.59334 13.52 3.01334 13.56 3.54667C13.6067 4.08 13.6267 4.54 13.6267 4.94L13.6667 5.5C13.6667 6.96 13.56 8.03334 13.3734 8.72C13.2067 9.32 12.82 9.70667 12.22 9.87334C11.9067 9.96 11.3334 10.02 10.4534 10.06C9.58671 10.1067 8.79337 10.1267 8.06004 10.1267L7.00004 10.1667C4.20671 10.1667 2.46671 10.06 1.78004 9.87334C1.18004 9.70667 0.793374 9.32 0.626707 8.72C0.540041 8.40667 0.480041 7.98667 0.440041 7.45334C0.393374 6.92 0.373374 6.46 0.373374 6.06L0.333374 5.5C0.333374 4.04 0.440041 2.96667 0.626707 2.28C0.793374 1.68 1.18004 1.29334 1.78004 1.12667C2.09337 1.04 2.66671 0.980002 3.54671 0.940002C4.41337 0.893336 5.20671 0.873336 5.94004 0.873336L7.00004 0.833336C9.79337 0.833336 11.5334 0.940003 12.22 1.12667C12.82 1.29334 13.2067 1.68 13.3734 2.28Z" fill="currentColor"/></svg>';case"cross":return'<svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 1.41L12.84 0L7.25 5.59L1.66 0L0.25 1.41L5.84 7L0.25 12.59L1.66 14L7.25 8.41L12.84 14L14.25 12.59L8.66 7L14.25 1.41Z" fill="currentColor"/></svg>';case"message":return'<svg width="28" height="26" viewBox="0 0 28 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.33341 22C2.60008 22 1.9723 21.7389 1.45008 21.2167C0.927859 20.6944 0.666748 20.0667 0.666748 19.3333V3.33334C0.666748 2.6 0.927859 1.97223 1.45008 1.45001C1.9723 0.927783 2.60008 0.666672 3.33341 0.666672H24.6667C25.4001 0.666672 26.0279 0.927783 26.5501 1.45001C27.0723 1.97223 27.3334 2.6 27.3334 3.33334V24.1C27.3334 24.7 27.0612 25.1167 26.5167 25.35C25.9723 25.5833 25.489 25.4889 25.0667 25.0667L22.0001 22H3.33341ZM23.1334 19.3333L24.6667 20.8333V3.33334H3.33341V19.3333H23.1334Z" fill="currentColor"/></svg>';default:return!1}}function x(t,e,i,s,n,a,o){var r,l=t?"<img src=".concat(t,' loading="lazy" referrerPolicy="no-referrer"/>'):w("profile-picture"),d=o?'<button class="sby-replies">'.concat(o||0," Replies ").concat(w("angle-down"),"</button>"):"";return'\n            <div class="sby-comment-profile-pic">\n                '.concat(l,'\n            </div>\n            <div class="sby-comment-heading">\n                <a href="').concat(i,'" target="_blank" class="sby-comment-user-name">').concat(e,"</a>\n                <span>").concat(I(a),'</span>\n            </div>\n                <div class="sby-comment-text">\n                <p class="sby-read-more-target">').concat(s,'</p>\n                <div class="sby-read-more-trigger">\n                    <button class="sby-read-more-text">Read More</button>\n                    <button class="sby-read-less-text">Read Less</button>\n                </div>\n             </div>\n            <div class="sby-comment-bottom">\n                <span class="sby-comment-likes">\n                    ').concat(w("thumbs-up")," ").concat(n?(r=n,r>=1e9?(r/1e9).toFixed(1)+"B":r>=1e6?(r/1e6).toFixed(1)+"M":r>=1e3?(r/1e3).toFixed(1)+"K":r):0,"\n                </span>\n                ").concat(d,"\n            </div>\n    ")}function C(t){return'\n        <h4 class="sby-comments-sub-heading">Comments</h4>\n        <div class="sby-no-comments">\n            <p>'.concat(t,"</p>\n        </div>")}function I(t){var e=new Date-new Date(t),i=Math.floor(e/1e3),s=Math.floor(i/60),n=Math.floor(s/60),a=Math.floor(n/24),o=Math.floor(a/30),r=Math.floor(o/12);return r>0?"".concat(r," year").concat(r>1?"s":""," ago"):o>0?"".concat(o," month").concat(o>1?"s":""," ago"):a>0?"".concat(a," day").concat(a>1?"s":""," ago"):n>0?"".concat(n," hour").concat(n>1?"s":""," ago"):s>0?"".concat(s," minute").concat(s>1?"s":""," ago"):i>0?"".concat(i," second").concat(i>1?"s":""," ago"):"just now"}function k(){var t=jQuery(".sby-read-more-target"),e=".sby-read-more-trigger";t.each((function(t){var i=jQuery(this)[0],s=i.scrollHeight,n=i.offsetHeight;if(s>n&&s>n+1){var a=jQuery(this).parent().find(e);a.unbind("click"),a.click((function(){jQuery(this).toggleClass("sby-read-more-trigger-active"),jQuery(this).parent().find(".sby-read-more-target").toggleClass("sby-read-more-target-active")}))}else jQuery(this).parent().find(e).hide()}))}function z(t,e){var i=jQuery(".sby_lb-caption"),s="sby-lb-dark-scheme";return!1===e?(i.removeClass(s),!1):"dark"===t&&!0===e?(i.addClass(s),!1):void 0}function T(){jQuery("body").css("overflow","auto"),z("",!1)}function L(t){var e=t.closest(".sb_youtube");return e.hasClass("sby_layout_list")?"list":e.hasClass("sby_layout_grid")?"grid":e.hasClass("sby_layout_carousel")?"carousel":!!e.hasClass("sby_layout_gallery")&&"gallery"}function P(){if(!window.sbyOptions.isPro)return!1;var t=jQuery(".sby-comments-trigger");t.unbind("click"),t.click((function(){var t=".sby-comments-wrap",e=jQuery(this).closest(".sby-comment-container"),i=e.find(t),s=L(jQuery(this));if(i.text().length<=0){var n,a,o;if("gallery"===s){var r=jQuery(this).closest(".sb_youtube"),l=r.find(".sby_item.sby_current");r&&l&&(a=j(l.attr("data-video-id")),n=j(l.find("a").attr("data-comment-count")),o=r.find(t))}if("list"===s){var d=jQuery(this).closest(".sby_item");d&&(a=j(d.attr("data-video-id")),n=j(d.find("a").attr("data-comment-count")),o=d.find(t)),O(jQuery(this).closest(".sb_youtube"))}A(a,j(jQuery(this).closest(".sb_youtube").attr("data-shortcode-atts")),o,n),i.addClass("sby-comments-active")}else i.toggle(),i.toggleClass("sby-comments-active");var h=e.find(".sby-comments-trigger p");h&&function(t,e,i){if(t&&e&&i){var s=e===t.text()?i:e;t.text(s)}}(h,"Show Comments","Hide Comments")}))}function j(t){return t||""}function $(t,e){jQuery.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:t,success:e})}function A(t,e,i,s){submitData={action:"sby_get_comments",video_id:t,atts:e},k(),$(submitData,(function(e){var n;if(!e)return!1;if(!1===e.success)return i.html(C(e.data)),!1;var a=JSON.parse(e);if(!a)return!1;if(null!=a&&a.success&&!1===a.success)return i.html(C(a.data)),!1;if(null!=a&&a.error&&null!=a&&null!==(n=a.error)&&void 0!==n&&n.message){var o=a.error.message;return o.includes("disabled comments")&&(o="Comments are turned off"),i.html(C(o)),!1}var r=null!=a&&a.items&&null!=a&&a.items.length?a.items.length:"",l=t?"https://www.youtube.com/watch?v=".concat(t):"";if(!r)return i.html('\n        <h4 class="sby-comments-sub-heading">Comments</h4>\n        <div class="sby-no-comments">\n            '.concat(w("message"),"\n            <p>There are no comments to display</p>\n        </div>")),k(),!1;currentCommentCount=s?"( ".concat(s," )"):"";var d='<h4 class="sby-comments-sub-heading">Comments '.concat(currentCommentCount,'</h4><ul class="sby-comments">');jQuery.each(a.items,(function(t,e){var i,s,n=null==e||null===(i=e.snippet)||void 0===i?void 0:i.topLevelComment,a=null==e?void 0:e.snippet;d+='<li class="sby-comment">'.concat(x(v(n,"authorProfileImageUrl"),v(n,"authorDisplayName"),v(n,"authorChannelUrl"),v(n,"textDisplay"),v(n,"likeCount"),v(n,"publishedAt"),v(a,"totalReplyCount")),'\n            <ul class="sby-reply-comments">'),null!=e&&null!==(s=e.replies)&&void 0!==s&&s.comments&&jQuery.each(e.replies.comments,(function(t,e){d+='<li class="sby-reply-comment" >'.concat(x(v(e,"authorProfileImageUrl"),v(e,"authorDisplayName"),v(e,"authorChannelUrl"),v(e,"textDisplay"),v(e,"likeCount"),v(e,"publishedAt")),"</li>")})),d+="</ul></li>"})),d+="</ul>",d+='<a href="'.concat(l,'" target="_blank" class="sby-view-all-button ">View all comments on YouTube</a>'),i.html(d).fadeIn("fast"),k(),function(t,e,i,s){jQuery(s).css("display","none"),jQuery(e).unbind("click"),jQuery(e).click((function(){jQuery(this).toggleClass("sby-active-trigger"),jQuery(this).closest(".sby-comment").find(s).toggle()}))}(0,".sby-replies",0,".sby-reply-comments")}))}function O(t){"gallery"!==L(t)&&"list"!==L(t)||(t.find(".sby-comments-trigger").find("p").text("Show Comments"),t.find(".sby-comments-wrap").html(""))}window.onYouTubeIframeAPIReady=function(){var t=document.getElementsByClassName("sb_youtube").length;if(t>0){if(window.sbySemiEagerLoading){if(void 0!==window.sby)for(var e=0;e<t;e++)window.sby.feeds[e].playerAPIReady=!0;else window.sbyAPIReady=!0;sby_init()}else if(window.sbyEagerLoading){var i=!1,s=!1;jQuery(".sb_youtube").each((function(t){var e=jQuery(this);e.hasClass("sby_layout_list")?(jQuery(this).addClass("sby_player_loaded"),e.find(".sby_item").each((function(){videoID=jQuery(this).attr("data-video-id"),player=new YT.Player("sby_player_"+videoID,{height:"100",width:"100",videoId:videoID,playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(t){t.target.getVideoData().video_id,1===t.data&&e.find(".sby_item").each((function(){var e=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(t.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+e).pauseVideo()}))}}})}))):e.hasClass("sby_layout_gallery")?(jQuery(this).addClass("sby_player_loaded"),player=new YT.Player("sby_player"+t,{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:s},events:{onStateChange:function(t){t.target.getVideoData().video_id,1===t.data&&e.find(".sby_item").each((function(){var e=jQuery(this).attr("data-video-id");jQuery(this).find("iframe").length&&jQuery(t.target.a).attr("id")!==jQuery(this).find("iframe").attr("id")&&YT.get("sby_player_"+e).pauseVideo()}))}}})):i=!0}))}else if(void 0!==window.sby)for(e=0;e<t;e++)window.sby.feeds[e].playerAPIReady=!0;else window.sbyAPIReady=!0;jQuery(".sb_youtube").each((function(t){var e=jQuery(this);e.find(".sby_live_player").length&&(player=new YT.Player(e.find(".sby_live_player").attr("id"),{events:{onReady:function(){e.find(".sby_live_player").hide(),e.find(".sby_item").remove();var i=YT.get(e.find(".sby_live_player").attr("id")).getVideoData().video_id;e.find(".sby_player_video_thumbnail").attr("data-video-id",i).css("z-index",-1),e.find(".sby_item").length;var s={action:"sby_live_retrieve",video_id:i,feed_id:e.attr("data-feedid"),atts:e.attr("data-shortcode-atts")};jQuery.ajax({url:sbyOptions.adminAjaxUrl,type:"post",data:s,success:function(i){if(0===i.trim().indexOf("{")){var s=window.sby.feeds[t],n=JSON.parse(i),a=void 0!==n.feedStatus.checkWPPosts&&n.feedStatus.checkWPPosts;s.settings.debugEnabled&&console.log(n),s.settings.checkWPPosts=!!a,s.appendNewPosts(n.html),s.addResizedImages(n.resizedImages),s.afterInitialImagesLoaded(),n.feedStatus.shouldPaginate?s.outOfPages=!1:(s.outOfPages=!0,e.find(".sby_load_btn").hide()),jQuery(".sby_no_js").removeClass("sby_no_js"),e.find(".sby_live_player").remove(),e.hasClass("sby_layout_gallery")&&s.createPlayer("sby_player"+s.index),e.find(".sby_player_item").css("opacity",1),e.find(".sby_item").css("opacity",1),e.find(".sby_player_loading").removeClass("sby_player_loading"),e.hasClass("sby_layout_list")&&e.find(".sby_item_video_thumbnail").on("mouseenter",(function(){jQuery(this).css("z-index",-1)}))}}})}}}))})),i&&(jQuery("#sby_lb-player").length||jQuery(".sb_youtube").first().append('<div class="sby_lb-player-loaded sby_lb-player" id="sby_lb-player" style="display: none;"></div>'),player=new YT.Player("sby_lb-player",{height:"100",width:"100",videoId:jQuery(this).find(".sby_item").first().attr("data-video-id"),playerVars:{modestbranding:1,rel:0,autoplay:s}}),window.sbyLightboxPlayer=player)}if(void 0!==window.sby){var n=jQuery.Event("sbyfeedandytready");jQuery(window).trigger(n)}}})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QWlCL08sRUFBU3BHLGVBRS9CYyxFQUFLa1IsMkJBRUE1TCxFQUFTNk8sV0FBV0csZUFJckJ0VSxFQUFLWixZQUFhLEdBSGxCWSxFQUFLWixZQUFhLEVBQ2xCaUMsRUFBTXhTLEtBQUssaUJBQWlCNlQsUUFLaEMzUCxPQUFPLGNBQWN2RSxZQUFZLGFBQ2pDNlMsRUFBTXhTLEtBQUssb0JBQW9Cbk4sU0FDM0IyZixFQUFNOUksU0FBUyx1QkFDZnlILEVBQUt5UixhQUFhLGFBQWF6UixFQUFLM2IsT0FFeENnZCxFQUFNeFMsS0FBSyxvQkFBb0I5VyxJQUFJLFVBQVUsR0FDN0NzcEIsRUFBTXhTLEtBQUssYUFBYTlXLElBQUksVUFBVSxHQUN0Q3NwQixFQUFNeFMsS0FBSyx1QkFBdUJMLFlBQVksc0JBQzFDNlMsRUFBTTlJLFNBQVMsb0JBQ2Y4SSxFQUFNeFMsS0FBSyw2QkFBNkI2QixHQUFHLGNBQWEsV0FDcERxQyxPQUFPbmIsTUFBTUcsSUFBSSxXQUFXLEVBQ2hDLEdBR1IsQ0FFSixHQU9KLEtBSWhCLElBRUk0cUMsSUFDSzV2QixPQUFPLGtCQUFrQjNaLFFBQzFCMlosT0FBTyxlQUFldU4sUUFBUXRSLE9BQU8sb0dBRXpDdWlCLE9BQVMsSUFBSXBRLEdBQUdDLE9BQU8sZ0JBQWlCLENBQ3BDbkssT0FBUSxNQUNSakssTUFBTyxNQUNQMlQsUUFBUzVOLE9BQU9uYixNQUFNaVgsS0FBSyxhQUFheVIsUUFBUTdRLEtBQUssaUJBQ3JEbVIsV0FBWSxDQUNSQyxlQUFnQixFQUNoQkMsSUFBSyxFQUNMMUgsU0FBVUEsS0FHbEJwZ0IsT0FBT3VuQixrQkFBb0JnUixPQUduQyxDQUVBLFFBQTBCLElBQWZ2NEIsT0FBT3lsQixJQUFxQixDQUNuQyxJQUFJc0IsRUFBTWhOLE9BQU9qRyxNQUFNLHFCQUN2QmlHLE9BQU8vWixRQUFRMFYsUUFBUXFSLEVBQzNCLENBRUoiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vbm9kZV9tb2R1bGVzL2Nzc2ZpbHRlci9saWIvY3NzLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMvY3NzZmlsdGVyL2xpYi9kZWZhdWx0LmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMvY3NzZmlsdGVyL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vbm9kZV9tb2R1bGVzL2Nzc2ZpbHRlci9saWIvcGFyc2VyLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMvY3NzZmlsdGVyL2xpYi91dGlsLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi9kZWZhdWx0LmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vbm9kZV9tb2R1bGVzL3hzcy9saWIvcGFyc2VyLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi91dGlsLmpzIiwid2VicGFjazovL3lvdXR1YmUtZmVlZC1wcm8vLi9ub2RlX21vZHVsZXMveHNzL2xpYi94c3MuanMiLCJ3ZWJwYWNrOi8veW91dHViZS1mZWVkLXByby93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly95b3V0dWJlLWZlZWQtcHJvLy4vanMvc2IteW91dHViZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNzc2ZpbHRlclxuICpcbiAqIEBhdXRob3Ig6ICB6Zu3PGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBERUZBVUxUID0gcmVxdWlyZSgnLi9kZWZhdWx0Jyk7XG52YXIgcGFyc2VTdHlsZSA9IHJlcXVpcmUoJy4vcGFyc2VyJyk7XG52YXIgXyA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuXG5cbi8qKlxuICog6L+U5Zue5YC85piv5ZCm5Li656m6XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gaXNOdWxsIChvYmopIHtcbiAgcmV0dXJuIChvYmogPT09IHVuZGVmaW5lZCB8fCBvYmogPT09IG51bGwpO1xufVxuXG4vKipcbiAqIOa1heaLt+i0neWvueixoVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqL1xuZnVuY3Rpb24gc2hhbGxvd0NvcHlPYmplY3QgKG9iaikge1xuICB2YXIgcmV0ID0ge307XG4gIGZvciAodmFyIGkgaW4gb2JqKSB7XG4gICAgcmV0W2ldID0gb2JqW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICog5Yib5bu6Q1NT6L+H5ruk5ZmoXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqICAgLSB7T2JqZWN0fSB3aGl0ZUxpc3RcbiAqICAgLSB7RnVuY3Rpb259IG9uQXR0clxuICogICAtIHtGdW5jdGlvbn0gb25JZ25vcmVBdHRyXG4gKiAgIC0ge0Z1bmN0aW9ufSBzYWZlQXR0clZhbHVlXG4gKi9cbmZ1bmN0aW9uIEZpbHRlckNTUyAob3B0aW9ucykge1xuICBvcHRpb25zID0gc2hhbGxvd0NvcHlPYmplY3Qob3B0aW9ucyB8fCB7fSk7XG4gIG9wdGlvbnMud2hpdGVMaXN0ID0gb3B0aW9ucy53aGl0ZUxpc3QgfHwgREVGQVVMVC53aGl0ZUxpc3Q7XG4gIG9wdGlvbnMub25BdHRyID0gb3B0aW9ucy5vbkF0dHIgfHwgREVGQVVMVC5vbkF0dHI7XG4gIG9wdGlvbnMub25JZ25vcmVBdHRyID0gb3B0aW9ucy5vbklnbm9yZUF0dHIgfHwgREVGQVVMVC5vbklnbm9yZUF0dHI7XG4gIG9wdGlvbnMuc2FmZUF0dHJWYWx1ZSA9IG9wdGlvbnMuc2FmZUF0dHJWYWx1ZSB8fCBERUZBVUxULnNhZmVBdHRyVmFsdWU7XG4gIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG59XG5cbkZpbHRlckNTUy5wcm90b3R5cGUucHJvY2VzcyA9IGZ1bmN0aW9uIChjc3MpIHtcbiAgLy8g5YW85a655ZCE56eN5aWH6JGp6L6T5YWlXG4gIGNzcyA9IGNzcyB8fCAnJztcbiAgY3NzID0gY3NzLnRvU3RyaW5nKCk7XG4gIGlmICghY3NzKSByZXR1cm4gJyc7XG5cbiAgdmFyIG1lID0gdGhpcztcbiAgdmFyIG9wdGlvbnMgPSBtZS5vcHRpb25zO1xuICB2YXIgd2hpdGVMaXN0ID0gb3B0aW9ucy53aGl0ZUxpc3Q7XG4gIHZhciBvbkF0dHIgPSBvcHRpb25zLm9uQXR0cjtcbiAgdmFyIG9uSWdub3JlQXR0ciA9IG9wdGlvbnMub25JZ25vcmVBdHRyO1xuICB2YXIgc2FmZUF0dHJWYWx1ZSA9IG9wdGlvbnMuc2FmZUF0dHJWYWx1ZTtcblxuICB2YXIgcmV0Q1NTID0gcGFyc2VTdHlsZShjc3MsIGZ1bmN0aW9uIChzb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24sIG5hbWUsIHZhbHVlLCBzb3VyY2UpIHtcblxuICAgIHZhciBjaGVjayA9IHdoaXRlTGlzdFtuYW1lXTtcbiAgICB2YXIgaXNXaGl0ZSA9IGZhbHNlO1xuICAgIGlmIChjaGVjayA9PT0gdHJ1ZSkgaXNXaGl0ZSA9IGNoZWNrO1xuICAgIGVsc2UgaWYgKHR5cGVvZiBjaGVjayA9PT0gJ2Z1bmN0aW9uJykgaXNXaGl0ZSA9IGNoZWNrKHZhbHVlKTtcbiAgICBlbHNlIGlmIChjaGVjayBpbnN0YW5jZW9mIFJlZ0V4cCkgaXNXaGl0ZSA9IGNoZWNrLnRlc3QodmFsdWUpO1xuICAgIGlmIChpc1doaXRlICE9PSB0cnVlKSBpc1doaXRlID0gZmFsc2U7XG5cbiAgICAvLyDlpoLmnpzov4fmu6TlkI4gdmFsdWUg5Li656m65YiZ55u05o6l5b+955WlXG4gICAgdmFsdWUgPSBzYWZlQXR0clZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB2YXIgb3B0cyA9IHtcbiAgICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICAgIHNvdXJjZVBvc2l0aW9uOiBzb3VyY2VQb3NpdGlvbixcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgaXNXaGl0ZTogaXNXaGl0ZVxuICAgIH07XG5cbiAgICBpZiAoaXNXaGl0ZSkge1xuXG4gICAgICB2YXIgcmV0ID0gb25BdHRyKG5hbWUsIHZhbHVlLCBvcHRzKTtcbiAgICAgIGlmIChpc051bGwocmV0KSkge1xuICAgICAgICByZXR1cm4gbmFtZSArICc6JyArIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIHZhciByZXQgPSBvbklnbm9yZUF0dHIobmFtZSwgdmFsdWUsIG9wdHMpO1xuICAgICAgaWYgKCFpc051bGwocmV0KSkge1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmV0Q1NTO1xufTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IEZpbHRlckNTUztcbiIsIi8qKlxuICogY3NzZmlsdGVyXG4gKlxuICogQGF1dGhvciDogIHpm7c8bGVpem9uZ21pbkBnbWFpbC5jb20+XG4gKi9cblxuZnVuY3Rpb24gZ2V0RGVmYXVsdFdoaXRlTGlzdCAoKSB7XG4gIC8vIOeZveWQjeWNleWAvOivtOaYju+8mlxuICAvLyB0cnVlOiDlhYHorrjor6XlsZ7mgKdcbiAgLy8gRnVuY3Rpb246IGZ1bmN0aW9uICh2YWwpIHsgfSDov5Tlm550cnVl6KGo56S65YWB6K646K+l5bGe5oCn77yM5YW25LuW5YC85Z2H6KGo56S65LiN5YWB6K64XG4gIC8vIFJlZ0V4cDogcmVnZXhwLnRlc3QodmFsKSDov5Tlm550cnVl6KGo56S65YWB6K646K+l5bGe5oCn77yM5YW25LuW5YC85Z2H6KGo56S65LiN5YWB6K64XG4gIC8vIOmZpOS4iumdouWIl+WHuueahOWAvOWkluWdh+ihqOekuuS4jeWFgeiuuFxuICB2YXIgd2hpdGVMaXN0ID0ge307XG5cbiAgd2hpdGVMaXN0WydhbGlnbi1jb250ZW50J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2FsaWduLWl0ZW1zJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2FsaWduLXNlbGYnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnYWxpZ25tZW50LWFkanVzdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydhbGlnbm1lbnQtYmFzZWxpbmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBiYXNlbGluZVxuICB3aGl0ZUxpc3RbJ2FsbCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydhbmNob3ItcG9pbnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYW5pbWF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2FuaW1hdGlvbi1kZWxheSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tZGlyZWN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnYW5pbWF0aW9uLWR1cmF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ2FuaW1hdGlvbi1maWxsLW1vZGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tbmFtZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tcGxheS1zdGF0ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHJ1bm5pbmdcbiAgd2hpdGVMaXN0WydhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZWFzZVxuICB3aGl0ZUxpc3RbJ2F6aW11dGgnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjZW50ZXJcbiAgd2hpdGVMaXN0WydiYWNrZmFjZS12aXNpYmlsaXR5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogdmlzaWJsZVxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHNjcm9sbFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtY2xpcCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYm9yZGVyLWJveFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHRyYW5zcGFyZW50XG4gIHdoaXRlTGlzdFsnYmFja2dyb3VuZC1pbWFnZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtb3JpZ2luJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBwYWRkaW5nLWJveFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtcG9zaXRpb24nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDAlIDAlXG4gIHdoaXRlTGlzdFsnYmFja2dyb3VuZC1yZXBlYXQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHJlcGVhdFxuICB3aGl0ZUxpc3RbJ2JhY2tncm91bmQtc2l6ZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2Jhc2VsaW5lLXNoaWZ0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYmFzZWxpbmVcbiAgd2hpdGVMaXN0WydiaW5kaW5nJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2JsZWVkJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNnB0XG4gIHdoaXRlTGlzdFsnYm9va21hcmstbGFiZWwnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjb250ZW50KClcbiAgd2hpdGVMaXN0Wydib29rbWFyay1sZXZlbCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib29rbWFyay1zdGF0ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG9wZW5cbiAgd2hpdGVMaXN0Wydib3JkZXInXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydib3JkZXItYm90dG9tJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWJvdHRvbS1jb2xvciddID0gdHJ1ZTsgLy8gZGVmYXVsdDogY3VycmVudCBjb2xvclxuICB3aGl0ZUxpc3RbJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ2JvcmRlci1ib3R0b20tc3R5bGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib3JkZXItYm90dG9tLXdpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBtZWRpdW1cbiAgd2hpdGVMaXN0Wydib3JkZXItY29sbGFwc2UnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHNlcGFyYXRlXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWltYWdlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWltYWdlLW91dHNldCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ2JvcmRlci1pbWFnZS1yZXBlYXQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IHN0cmV0Y2hcbiAgd2hpdGVMaXN0Wydib3JkZXItaW1hZ2Utc2xpY2UnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDEwMCVcbiAgd2hpdGVMaXN0Wydib3JkZXItaW1hZ2Utc291cmNlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWltYWdlLXdpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAxXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWxlZnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydib3JkZXItbGVmdC1jb2xvciddID0gdHJ1ZTsgLy8gZGVmYXVsdDogY3VycmVudCBjb2xvclxuICB3aGl0ZUxpc3RbJ2JvcmRlci1sZWZ0LXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLWxlZnQtd2lkdGgnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2JvcmRlci1yYWRpdXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQtY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGN1cnJlbnQgY29sb3JcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQtc3R5bGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib3JkZXItcmlnaHQtd2lkdGgnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2JvcmRlci1zcGFjaW5nJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXRvcCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2JvcmRlci10b3AtY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGN1cnJlbnQgY29sb3JcbiAgd2hpdGVMaXN0Wydib3JkZXItdG9wLWxlZnQtcmFkaXVzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydib3JkZXItdG9wLXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXRvcC13aWR0aCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsnYm9yZGVyLXdpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnYm90dG9tJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2JveC1kZWNvcmF0aW9uLWJyZWFrJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzbGljZVxuICB3aGl0ZUxpc3RbJ2JveC1zaGFkb3cnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydib3gtc2l6aW5nJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBjb250ZW50LWJveFxuICB3aGl0ZUxpc3RbJ2JveC1zbmFwJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnYm94LXN1cHByZXNzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzaG93XG4gIHdoaXRlTGlzdFsnYnJlYWstYWZ0ZXInXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydicmVhay1iZWZvcmUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydicmVhay1pbnNpZGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydjYXB0aW9uLXNpZGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiB0b3BcbiAgd2hpdGVMaXN0WydjaGFpbnMnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY2xlYXInXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydjbGlwJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2NsaXAtcGF0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydjbGlwLXJ1bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub256ZXJvXG4gIHdoaXRlTGlzdFsnY29sb3InXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGltcGxlbWVudGF0aW9uIGRlcGVuZGVudFxuICB3aGl0ZUxpc3RbJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2NvbHVtbi1jb3VudCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wydjb2x1bW4tZmlsbCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGJhbGFuY2VcbiAgd2hpdGVMaXN0Wydjb2x1bW4tZ2FwJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnY29sdW1uLXJ1bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnY29sdW1uLXJ1bGUtY29sb3InXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjdXJyZW50IGNvbG9yXG4gIHdoaXRlTGlzdFsnY29sdW1uLXJ1bGUtc3R5bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBtZWRpdW1cbiAgd2hpdGVMaXN0Wydjb2x1bW4tcnVsZS13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2NvbHVtbi1zcGFuJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2NvbHVtbi13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wydjb2x1bW5zJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2NvbnRhaW4nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY29udGVudCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2NvdW50ZXItaW5jcmVtZW50J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2NvdW50ZXItcmVzZXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY291bnRlci1zZXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY3JvcCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydjdWUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnY3VlLWFmdGVyJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2N1ZS1iZWZvcmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnY3Vyc29yJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2RpcmVjdGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGx0clxuICB3aGl0ZUxpc3RbJ2Rpc3BsYXknXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydkaXNwbGF5LWluc2lkZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2Rpc3BsYXktbGlzdCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2Rpc3BsYXktb3V0c2lkZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogaW5saW5lLWxldmVsXG4gIHdoaXRlTGlzdFsnZG9taW5hbnQtYmFzZWxpbmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnZWxldmF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbGV2ZWxcbiAgd2hpdGVMaXN0WydlbXB0eS1jZWxscyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHNob3dcbiAgd2hpdGVMaXN0WydmaWx0ZXInXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnZmxleCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydmbGV4LWJhc2lzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2ZsZXgtZGlyZWN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogcm93XG4gIHdoaXRlTGlzdFsnZmxleC1mbG93J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2ZsZXgtZ3JvdyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydmbGV4LXNocmluayddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydmbGV4LXdyYXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub3dyYXBcbiAgd2hpdGVMaXN0WydmbG9hdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydmbG9hdC1vZmZzZXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiAwIDBcbiAgd2hpdGVMaXN0WydmbG9vZC1jb2xvciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGJsYWNrXG4gIHdoaXRlTGlzdFsnZmxvb2Qtb3BhY2l0eSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydmbG93LWZyb20nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnZmxvdy1pbnRvJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2ZvbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wydmb250LWZhbWlseSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogaW1wbGVtZW50YXRpb24gZGVwZW5kZW50XG4gIHdoaXRlTGlzdFsnZm9udC1mZWF0dXJlLXNldHRpbmdzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LWtlcm5pbmcnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wydmb250LWxhbmd1YWdlLW92ZXJyaWRlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LXNpemUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ2ZvbnQtc2l6ZS1hZGp1c3QnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wydmb250LXN0cmV0Y2gnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtc3R5bGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtc3ludGhlc2lzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiB3ZWlnaHQgc3R5bGVcbiAgd2hpdGVMaXN0Wydmb250LXZhcmlhbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtdmFyaWFudC1hbHRlcm5hdGVzJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LXZhcmlhbnQtY2FwcyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtdmFyaWFudC1saWdhdHVyZXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtdmFyaWFudC1udW1lcmljJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wydmb250LXZhcmlhbnQtcG9zaXRpb24nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ZvbnQtd2VpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0WydncmlkJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ2dyaWQtYXJlYSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydncmlkLWF1dG8tY29sdW1ucyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydncmlkLWF1dG8tZmxvdyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydncmlkLWF1dG8tcm93cyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydncmlkLWNvbHVtbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydncmlkLWNvbHVtbi1lbmQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnZ3JpZC1jb2x1bW4tc3RhcnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnZ3JpZC1yb3cnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnZ3JpZC1yb3ctZW5kJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2dyaWQtcm93LXN0YXJ0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2dyaWQtdGVtcGxhdGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnZ3JpZC10ZW1wbGF0ZS1hcmVhcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2hhbmdpbmctcHVuY3R1YXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnaGVpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnaHlwaGVucyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1hbnVhbFxuICB3aGl0ZUxpc3RbJ2ljb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnaW1hZ2Utb3JpZW50YXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnaW1hZ2UtcmVzb2x1dGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2ltZS1tb2RlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2luaXRpYWwtbGV0dGVycyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2lubGluZS1ib3gtYWxpZ24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBsYXN0XG4gIHdoaXRlTGlzdFsnanVzdGlmeS1jb250ZW50J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2p1c3RpZnktaXRlbXMnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnanVzdGlmeS1zZWxmJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2xlZnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnbGV0dGVyLXNwYWNpbmcnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ2xpZ2h0aW5nLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiB3aGl0ZVxuICB3aGl0ZUxpc3RbJ2xpbmUtYm94LWNvbnRhaW4nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBibG9jayBpbmxpbmUgcmVwbGFjZWRcbiAgd2hpdGVMaXN0WydsaW5lLWJyZWFrJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ2xpbmUtZ3JpZCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1hdGNoLXBhcmVudFxuICB3aGl0ZUxpc3RbJ2xpbmUtaGVpZ2h0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnbGluZS1zbmFwJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2xpbmUtc3RhY2tpbmcnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnbGluZS1zdGFja2luZy1ydWJ5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZXhjbHVkZS1ydWJ5XG4gIHdoaXRlTGlzdFsnbGluZS1zdGFja2luZy1zaGlmdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGNvbnNpZGVyLXNoaWZ0c1xuICB3aGl0ZUxpc3RbJ2xpbmUtc3RhY2tpbmctc3RyYXRlZ3knXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBpbmxpbmUtbGluZS1oZWlnaHRcbiAgd2hpdGVMaXN0WydsaXN0LXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnbGlzdC1zdHlsZS1pbWFnZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ2xpc3Qtc3R5bGUtcG9zaXRpb24nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG91dHNpZGVcbiAgd2hpdGVMaXN0WydsaXN0LXN0eWxlLXR5cGUnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRpc2NcbiAgd2hpdGVMaXN0WydtYXJnaW4nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0WydtYXJnaW4tYm90dG9tJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnbWFyZ2luLWxlZnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydtYXJnaW4tcmlnaHQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydtYXJnaW4tdG9wJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnbWFya2VyLW9mZnNldCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydtYXJrZXItc2lkZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGxpc3QtaXRlbVxuICB3aGl0ZUxpc3RbJ21hcmtzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ21hc2snXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBib3JkZXItYm94XG4gIHdoaXRlTGlzdFsnbWFzay1ib3gnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBzZWUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnbWFzay1ib3gtb3V0c2V0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ21hc2stYm94LXJlcGVhdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHN0cmV0Y2hcbiAgd2hpdGVMaXN0WydtYXNrLWJveC1zbGljZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDAgZmlsbFxuICB3aGl0ZUxpc3RbJ21hc2stYm94LXNvdXJjZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydtYXNrLWJveC13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydtYXNrLWNsaXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBib3JkZXItYm94XG4gIHdoaXRlTGlzdFsnbWFzay1pbWFnZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydtYXNrLW9yaWdpbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGJvcmRlci1ib3hcbiAgd2hpdGVMaXN0WydtYXNrLXBvc2l0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogY2VudGVyXG4gIHdoaXRlTGlzdFsnbWFzay1yZXBlYXQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBuby1yZXBlYXRcbiAgd2hpdGVMaXN0WydtYXNrLXNpemUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBib3JkZXItYm94XG4gIHdoaXRlTGlzdFsnbWFzay1zb3VyY2UtdHlwZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydtYXNrLXR5cGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBsdW1pbmFuY2VcbiAgd2hpdGVMaXN0WydtYXgtaGVpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnbWF4LWxpbmVzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ21heC13aWR0aCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ21pbi1oZWlnaHQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydtaW4td2lkdGgnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wydtb3ZlLXRvJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnbmF2LWRvd24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnbmF2LWluZGV4J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ25hdi1sZWZ0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ25hdi1yaWdodCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WyduYXYtdXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnb2JqZWN0LWZpdCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGZpbGxcbiAgd2hpdGVMaXN0WydvYmplY3QtcG9zaXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiA1MCUgNTAlXG4gIHdoaXRlTGlzdFsnb3BhY2l0eSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDFcbiAgd2hpdGVMaXN0WydvcmRlciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0WydvcnBoYW5zJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMlxuICB3aGl0ZUxpc3RbJ291dGxpbmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsnb3V0bGluZS1jb2xvciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGludmVydFxuICB3aGl0ZUxpc3RbJ291dGxpbmUtb2Zmc2V0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ291dGxpbmUtc3R5bGUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsnb3V0bGluZS13aWR0aCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ292ZXJmbG93J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ292ZXJmbG93LXdyYXAnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0WydvdmVyZmxvdy14J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogdmlzaWJsZVxuICB3aGl0ZUxpc3RbJ292ZXJmbG93LXknXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiB2aXNpYmxlXG4gIHdoaXRlTGlzdFsncGFkZGluZyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogZGVwZW5kaW5nIG9uIGluZGl2aWR1YWwgcHJvcGVydGllc1xuICB3aGl0ZUxpc3RbJ3BhZGRpbmctYm90dG9tJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncGFkZGluZy1sZWZ0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncGFkZGluZy1yaWdodCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ3BhZGRpbmctdG9wJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncGFnZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydwYWdlLWJyZWFrLWFmdGVyJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3BhZ2UtYnJlYWstYmVmb3JlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3BhZ2UtYnJlYWstaW5zaWRlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3BhZ2UtcG9saWN5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogc3RhcnRcbiAgd2hpdGVMaXN0WydwYXVzZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGltcGxlbWVudGF0aW9uIGRlcGVuZGVudFxuICB3aGl0ZUxpc3RbJ3BhdXNlLWFmdGVyJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogaW1wbGVtZW50YXRpb24gZGVwZW5kZW50XG4gIHdoaXRlTGlzdFsncGF1c2UtYmVmb3JlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogaW1wbGVtZW50YXRpb24gZGVwZW5kZW50XG4gIHdoaXRlTGlzdFsncGVyc3BlY3RpdmUnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsncGVyc3BlY3RpdmUtb3JpZ2luJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNTAlIDUwJVxuICB3aGl0ZUxpc3RbJ3BpdGNoJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsncGl0Y2gtcmFuZ2UnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiA1MFxuICB3aGl0ZUxpc3RbJ3BsYXktZHVyaW5nJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3Bvc2l0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogc3RhdGljXG4gIHdoaXRlTGlzdFsncHJlc2VudGF0aW9uLWxldmVsJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMFxuICB3aGl0ZUxpc3RbJ3F1b3RlcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IHRleHRcbiAgd2hpdGVMaXN0WydyZWdpb24tZnJhZ21lbnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsncmVzaXplJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3Jlc3QnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsncmVzdC1hZnRlciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydyZXN0LWJlZm9yZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydyaWNobmVzcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDUwXG4gIHdoaXRlTGlzdFsncmlnaHQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsncm90YXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsncm90YXRpb24tcG9pbnQnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiA1MCUgNTAlXG4gIHdoaXRlTGlzdFsncnVieS1hbGlnbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydydWJ5LW1lcmdlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogc2VwYXJhdGVcbiAgd2hpdGVMaXN0WydydWJ5LXBvc2l0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYmVmb3JlXG4gIHdoaXRlTGlzdFsnc2hhcGUtaW1hZ2UtdGhyZXNob2xkJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMC4wXG4gIHdoaXRlTGlzdFsnc2hhcGUtb3V0c2lkZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0WydzaGFwZS1tYXJnaW4nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiAwXG4gIHdoaXRlTGlzdFsnc2l6ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydzcGVhayddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0WydzcGVhay1hcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3NwZWFrLWhlYWRlciddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG9uY2VcbiAgd2hpdGVMaXN0WydzcGVhay1udW1lcmFsJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogY29udGludW91c1xuICB3aGl0ZUxpc3RbJ3NwZWFrLXB1bmN0dWF0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3NwZWVjaC1yYXRlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsnc3RyZXNzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNTBcbiAgd2hpdGVMaXN0WydzdHJpbmctc2V0J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RhYi1zaXplJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogOFxuICB3aGl0ZUxpc3RbJ3RhYmxlLWxheW91dCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd0ZXh0LWFsaWduJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzdGFydFxuICB3aGl0ZUxpc3RbJ3RleHQtYWxpZ24tbGFzdCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3RleHQtY29tYmluZS11cHJpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsndGV4dC1kZWNvcmF0aW9uJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub25lXG4gIHdoaXRlTGlzdFsndGV4dC1kZWNvcmF0aW9uLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBjdXJyZW50Q29sb3JcbiAgd2hpdGVMaXN0Wyd0ZXh0LWRlY29yYXRpb24tbGluZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RleHQtZGVjb3JhdGlvbi1za2lwJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBvYmplY3RzXG4gIHdoaXRlTGlzdFsndGV4dC1kZWNvcmF0aW9uLXN0eWxlJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBzb2xpZFxuICB3aGl0ZUxpc3RbJ3RleHQtZW1waGFzaXMnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGRlcGVuZGluZyBvbiBpbmRpdmlkdWFsIHByb3BlcnRpZXNcbiAgd2hpdGVMaXN0Wyd0ZXh0LWVtcGhhc2lzLWNvbG9yJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBjdXJyZW50Q29sb3JcbiAgd2hpdGVMaXN0Wyd0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBvdmVyIHJpZ2h0XG4gIHdoaXRlTGlzdFsndGV4dC1lbXBoYXNpcy1zdHlsZSddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RleHQtaGVpZ2h0J10gPSB0cnVlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsndGV4dC1pbmRlbnQnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IDBcbiAgd2hpdGVMaXN0Wyd0ZXh0LWp1c3RpZnknXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd0ZXh0LW9yaWVudGF0aW9uJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBtaXhlZFxuICB3aGl0ZUxpc3RbJ3RleHQtb3ZlcmZsb3cnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGNsaXBcbiAgd2hpdGVMaXN0Wyd0ZXh0LXNoYWRvdyddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9uZVxuICB3aGl0ZUxpc3RbJ3RleHQtc3BhY2UtY29sbGFwc2UnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IGNvbGxhcHNlXG4gIHdoaXRlTGlzdFsndGV4dC10cmFuc2Zvcm0nXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wyd0ZXh0LXVuZGVybGluZS1wb3NpdGlvbiddID0gdHJ1ZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3RleHQtd3JhcCddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsndG9wJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYXV0b1xuICB3aGl0ZUxpc3RbJ3RyYW5zZm9ybSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vbmVcbiAgd2hpdGVMaXN0Wyd0cmFuc2Zvcm0tb3JpZ2luJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogNTAlIDUwJSAwXG4gIHdoaXRlTGlzdFsndHJhbnNmb3JtLXN0eWxlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZmxhdFxuICB3aGl0ZUxpc3RbJ3RyYW5zaXRpb24nXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBkZXBlbmRpbmcgb24gaW5kaXZpZHVhbCBwcm9wZXJ0aWVzXG4gIHdoaXRlTGlzdFsndHJhbnNpdGlvbi1kZWxheSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBzXG4gIHdoaXRlTGlzdFsndHJhbnNpdGlvbi1kdXJhdGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IDBzXG4gIHdoaXRlTGlzdFsndHJhbnNpdGlvbi1wcm9wZXJ0eSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGFsbFxuICB3aGl0ZUxpc3RbJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogZWFzZVxuICB3aGl0ZUxpc3RbJ3VuaWNvZGUtYmlkaSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3ZlcnRpY2FsLWFsaWduJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogYmFzZWxpbmVcbiAgd2hpdGVMaXN0Wyd2aXNpYmlsaXR5J10gPSBmYWxzZTsgLy8gZGVmYXVsdDogdmlzaWJsZVxuICB3aGl0ZUxpc3RbJ3ZvaWNlLWJhbGFuY2UnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBjZW50ZXJcbiAgd2hpdGVMaXN0Wyd2b2ljZS1kdXJhdGlvbiddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd2b2ljZS1mYW1pbHknXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnRcbiAgd2hpdGVMaXN0Wyd2b2ljZS1waXRjaCddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ3ZvaWNlLXJhbmdlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbWVkaXVtXG4gIHdoaXRlTGlzdFsndm9pY2UtcmF0ZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3ZvaWNlLXN0cmVzcyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3ZvaWNlLXZvbHVtZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ3ZvbHVtZSddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IG1lZGl1bVxuICB3aGl0ZUxpc3RbJ3doaXRlLXNwYWNlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnd2lkb3dzJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogMlxuICB3aGl0ZUxpc3RbJ3dpZHRoJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnd2lsbC1jaGFuZ2UnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG4gIHdoaXRlTGlzdFsnd29yZC1icmVhayddID0gdHJ1ZTsgLy8gZGVmYXVsdDogbm9ybWFsXG4gIHdoaXRlTGlzdFsnd29yZC1zcGFjaW5nJ10gPSB0cnVlOyAvLyBkZWZhdWx0OiBub3JtYWxcbiAgd2hpdGVMaXN0Wyd3b3JkLXdyYXAnXSA9IHRydWU7IC8vIGRlZmF1bHQ6IG5vcm1hbFxuICB3aGl0ZUxpc3RbJ3dyYXAtZmxvdyddID0gZmFsc2U7IC8vIGRlZmF1bHQ6IGF1dG9cbiAgd2hpdGVMaXN0Wyd3cmFwLXRocm91Z2gnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiB3cmFwXG4gIHdoaXRlTGlzdFsnd3JpdGluZy1tb2RlJ10gPSBmYWxzZTsgLy8gZGVmYXVsdDogaG9yaXpvbnRhbC10YlxuICB3aGl0ZUxpc3RbJ3otaW5kZXgnXSA9IGZhbHNlOyAvLyBkZWZhdWx0OiBhdXRvXG5cbiAgcmV0dXJuIHdoaXRlTGlzdDtcbn1cblxuXG4vKipcbiAqIOWMuemFjeWIsOeZveWQjeWNleS4iueahOS4gOS4quWxnuaAp+aXtlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uQXR0ciAobmFtZSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgLy8gZG8gbm90aGluZ1xufVxuXG4vKipcbiAqIOWMuemFjeWIsOS4jeWcqOeZveWQjeWNleS4iueahOS4gOS4quWxnuaAp+aXtlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uSWdub3JlQXR0ciAobmFtZSwgdmFsdWUsIG9wdGlvbnMpIHtcbiAgLy8gZG8gbm90aGluZ1xufVxuXG52YXIgUkVHRVhQX1VSTF9KQVZBU0NSSVBUID0gL2phdmFzY3JpcHRcXHMqXFw6L2ltZztcblxuLyoqXG4gKiDov4fmu6TlsZ7mgKflgLxcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNhZmVBdHRyVmFsdWUobmFtZSwgdmFsdWUpIHtcbiAgaWYgKFJFR0VYUF9VUkxfSkFWQVNDUklQVC50ZXN0KHZhbHVlKSkgcmV0dXJuICcnO1xuICByZXR1cm4gdmFsdWU7XG59XG5cblxuZXhwb3J0cy53aGl0ZUxpc3QgPSBnZXREZWZhdWx0V2hpdGVMaXN0KCk7XG5leHBvcnRzLmdldERlZmF1bHRXaGl0ZUxpc3QgPSBnZXREZWZhdWx0V2hpdGVMaXN0O1xuZXhwb3J0cy5vbkF0dHIgPSBvbkF0dHI7XG5leHBvcnRzLm9uSWdub3JlQXR0ciA9IG9uSWdub3JlQXR0cjtcbmV4cG9ydHMuc2FmZUF0dHJWYWx1ZSA9IHNhZmVBdHRyVmFsdWU7XG4iLCIvKipcbiAqIGNzc2ZpbHRlclxuICpcbiAqIEBhdXRob3Ig6ICB6Zu3PGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBERUZBVUxUID0gcmVxdWlyZSgnLi9kZWZhdWx0Jyk7XG52YXIgRmlsdGVyQ1NTID0gcmVxdWlyZSgnLi9jc3MnKTtcblxuXG4vKipcbiAqIFhTU+i/h+a7pFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjc3Mg6KaB6L+H5ruk55qEQ1NT5Luj56CBXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyDpgInpobnvvJp3aGl0ZUxpc3QsIG9uQXR0ciwgb25JZ25vcmVBdHRyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGZpbHRlckNTUyAoaHRtbCwgb3B0aW9ucykge1xuICB2YXIgeHNzID0gbmV3IEZpbHRlckNTUyhvcHRpb25zKTtcbiAgcmV0dXJuIHhzcy5wcm9jZXNzKGh0bWwpO1xufVxuXG5cbi8vIOi+k+WHulxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZmlsdGVyQ1NTO1xuZXhwb3J0cy5GaWx0ZXJDU1MgPSBGaWx0ZXJDU1M7XG5mb3IgKHZhciBpIGluIERFRkFVTFQpIGV4cG9ydHNbaV0gPSBERUZBVUxUW2ldO1xuXG4vLyDlnKjmtY/op4jlmajnq6/kvb/nlKhcbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICB3aW5kb3cuZmlsdGVyQ1NTID0gbW9kdWxlLmV4cG9ydHM7XG59XG4iLCIvKipcbiAqIGNzc2ZpbHRlclxuICpcbiAqIEBhdXRob3Ig6ICB6Zu3PGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBfID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cblxuLyoqXG4gKiDop6PmnpBzdHlsZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjc3NcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uQXR0ciDlpITnkIblsZ7mgKfnmoTlh73mlbBcbiAqICAg5Y+C5pWw5qC85byP77yaIGZ1bmN0aW9uIChzb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24sIG5hbWUsIHZhbHVlLCBzb3VyY2UpXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHBhcnNlU3R5bGUgKGNzcywgb25BdHRyKSB7XG4gIGNzcyA9IF8udHJpbVJpZ2h0KGNzcyk7XG4gIGlmIChjc3NbY3NzLmxlbmd0aCAtIDFdICE9PSAnOycpIGNzcyArPSAnOyc7XG4gIHZhciBjc3NMZW5ndGggPSBjc3MubGVuZ3RoO1xuICB2YXIgaXNQYXJlbnRoZXNpc09wZW4gPSBmYWxzZTtcbiAgdmFyIGxhc3RQb3MgPSAwO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXRDU1MgPSAnJztcblxuICBmdW5jdGlvbiBhZGROZXdBdHRyICgpIHtcbiAgICAvLyDlpoLmnpzmsqHmnInmraPluLjnmoTpl63lkIjlnIbmi6zlj7fvvIzliJnnm7TmjqXlv73nlaXlvZPliY3lsZ7mgKdcbiAgICBpZiAoIWlzUGFyZW50aGVzaXNPcGVuKSB7XG4gICAgICB2YXIgc291cmNlID0gXy50cmltKGNzcy5zbGljZShsYXN0UG9zLCBpKSk7XG4gICAgICB2YXIgaiA9IHNvdXJjZS5pbmRleE9mKCc6Jyk7XG4gICAgICBpZiAoaiAhPT0gLTEpIHtcbiAgICAgICAgdmFyIG5hbWUgPSBfLnRyaW0oc291cmNlLnNsaWNlKDAsIGopKTtcbiAgICAgICAgdmFyIHZhbHVlID0gXy50cmltKHNvdXJjZS5zbGljZShqICsgMSkpO1xuICAgICAgICAvLyDlv4XpobvmnInlsZ7mgKflkI3np7BcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICB2YXIgcmV0ID0gb25BdHRyKGxhc3RQb3MsIHJldENTUy5sZW5ndGgsIG5hbWUsIHZhbHVlLCBzb3VyY2UpO1xuICAgICAgICAgIGlmIChyZXQpIHJldENTUyArPSByZXQgKyAnOyAnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGxhc3RQb3MgPSBpICsgMTtcbiAgfVxuXG4gIGZvciAoOyBpIDwgY3NzTGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IGNzc1tpXTtcbiAgICBpZiAoYyA9PT0gJy8nICYmIGNzc1tpICsgMV0gPT09ICcqJykge1xuICAgICAgLy8g5aSH5rOo5byA5aeLXG4gICAgICB2YXIgaiA9IGNzcy5pbmRleE9mKCcqLycsIGkgKyAyKTtcbiAgICAgIC8vIOWmguaenOayoeacieato+W4uOeahOWkh+azqOe7k+adn++8jOWImeWQjumdoueahOmDqOWIhuWFqOmDqOi3s+i/h1xuICAgICAgaWYgKGogPT09IC0xKSBicmVhaztcbiAgICAgIC8vIOebtOaOpeWwhuW9k+WJjeS9jee9ruiwg+WIsOWkh+azqOe7k+Wwvu+8jOW5tuS4lOWIneWni+WMlueKtuaAgVxuICAgICAgaSA9IGogKyAxO1xuICAgICAgbGFzdFBvcyA9IGkgKyAxO1xuICAgICAgaXNQYXJlbnRoZXNpc09wZW4gPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGMgPT09ICcoJykge1xuICAgICAgaXNQYXJlbnRoZXNpc09wZW4gPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoYyA9PT0gJyknKSB7XG4gICAgICBpc1BhcmVudGhlc2lzT3BlbiA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoYyA9PT0gJzsnKSB7XG4gICAgICBpZiAoaXNQYXJlbnRoZXNpc09wZW4pIHtcbiAgICAgICAgLy8g5Zyo5ZyG5ous5Y+36YeM6Z2i77yM5b+955WlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGROZXdBdHRyKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjID09PSAnXFxuJykge1xuICAgICAgYWRkTmV3QXR0cigpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfLnRyaW0ocmV0Q1NTKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZVN0eWxlO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gIGluZGV4T2Y6IGZ1bmN0aW9uIChhcnIsIGl0ZW0pIHtcbiAgICB2YXIgaSwgajtcbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICAgIHJldHVybiBhcnIuaW5kZXhPZihpdGVtKTtcbiAgICB9XG4gICAgZm9yIChpID0gMCwgaiA9IGFyci5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgIGlmIChhcnJbaV0gPT09IGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfSxcbiAgZm9yRWFjaDogZnVuY3Rpb24gKGFyciwgZm4sIHNjb3BlKSB7XG4gICAgdmFyIGksIGo7XG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSB7XG4gICAgICByZXR1cm4gYXJyLmZvckVhY2goZm4sIHNjb3BlKTtcbiAgICB9XG4gICAgZm9yIChpID0gMCwgaiA9IGFyci5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgIGZuLmNhbGwoc2NvcGUsIGFycltpXSwgaSwgYXJyKTtcbiAgICB9XG4gIH0sXG4gIHRyaW06IGZ1bmN0aW9uIChzdHIpIHtcbiAgICBpZiAoU3RyaW5nLnByb3RvdHlwZS50cmltKSB7XG4gICAgICByZXR1cm4gc3RyLnRyaW0oKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oXlxccyopfChcXHMqJCkvZywgJycpO1xuICB9LFxuICB0cmltUmlnaHQ6IGZ1bmN0aW9uIChzdHIpIHtcbiAgICBpZiAoU3RyaW5nLnByb3RvdHlwZS50cmltUmlnaHQpIHtcbiAgICAgIHJldHVybiBzdHIudHJpbVJpZ2h0KCk7XG4gICAgfVxuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKFxccyokKS9nLCAnJyk7XG4gIH1cbn07XG4iLCIvKipcbiAqIGRlZmF1bHQgc2V0dGluZ3NcbiAqXG4gKiBAYXV0aG9yIFpvbmdtaW4gTGVpPGxlaXpvbmdtaW5AZ21haWwuY29tPlxuICovXG5cbnZhciBGaWx0ZXJDU1MgPSByZXF1aXJlKFwiY3NzZmlsdGVyXCIpLkZpbHRlckNTUztcbnZhciBnZXREZWZhdWx0Q1NTV2hpdGVMaXN0ID0gcmVxdWlyZShcImNzc2ZpbHRlclwiKS5nZXREZWZhdWx0V2hpdGVMaXN0O1xudmFyIF8gPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0V2hpdGVMaXN0KCkge1xuICByZXR1cm4ge1xuICAgIGE6IFtcInRhcmdldFwiLCBcImhyZWZcIiwgXCJ0aXRsZVwiXSxcbiAgICBhYmJyOiBbXCJ0aXRsZVwiXSxcbiAgICBhZGRyZXNzOiBbXSxcbiAgICBhcmVhOiBbXCJzaGFwZVwiLCBcImNvb3Jkc1wiLCBcImhyZWZcIiwgXCJhbHRcIl0sXG4gICAgYXJ0aWNsZTogW10sXG4gICAgYXNpZGU6IFtdLFxuICAgIGF1ZGlvOiBbXG4gICAgICBcImF1dG9wbGF5XCIsXG4gICAgICBcImNvbnRyb2xzXCIsXG4gICAgICBcImNyb3Nzb3JpZ2luXCIsXG4gICAgICBcImxvb3BcIixcbiAgICAgIFwibXV0ZWRcIixcbiAgICAgIFwicHJlbG9hZFwiLFxuICAgICAgXCJzcmNcIixcbiAgICBdLFxuICAgIGI6IFtdLFxuICAgIGJkaTogW1wiZGlyXCJdLFxuICAgIGJkbzogW1wiZGlyXCJdLFxuICAgIGJpZzogW10sXG4gICAgYmxvY2txdW90ZTogW1wiY2l0ZVwiXSxcbiAgICBicjogW10sXG4gICAgY2FwdGlvbjogW10sXG4gICAgY2VudGVyOiBbXSxcbiAgICBjaXRlOiBbXSxcbiAgICBjb2RlOiBbXSxcbiAgICBjb2w6IFtcImFsaWduXCIsIFwidmFsaWduXCIsIFwic3BhblwiLCBcIndpZHRoXCJdLFxuICAgIGNvbGdyb3VwOiBbXCJhbGlnblwiLCBcInZhbGlnblwiLCBcInNwYW5cIiwgXCJ3aWR0aFwiXSxcbiAgICBkZDogW10sXG4gICAgZGVsOiBbXCJkYXRldGltZVwiXSxcbiAgICBkZXRhaWxzOiBbXCJvcGVuXCJdLFxuICAgIGRpdjogW10sXG4gICAgZGw6IFtdLFxuICAgIGR0OiBbXSxcbiAgICBlbTogW10sXG4gICAgZmlnY2FwdGlvbjogW10sXG4gICAgZmlndXJlOiBbXSxcbiAgICBmb250OiBbXCJjb2xvclwiLCBcInNpemVcIiwgXCJmYWNlXCJdLFxuICAgIGZvb3RlcjogW10sXG4gICAgaDE6IFtdLFxuICAgIGgyOiBbXSxcbiAgICBoMzogW10sXG4gICAgaDQ6IFtdLFxuICAgIGg1OiBbXSxcbiAgICBoNjogW10sXG4gICAgaGVhZGVyOiBbXSxcbiAgICBocjogW10sXG4gICAgaTogW10sXG4gICAgaW1nOiBbXCJzcmNcIiwgXCJhbHRcIiwgXCJ0aXRsZVwiLCBcIndpZHRoXCIsIFwiaGVpZ2h0XCIsIFwibG9hZGluZ1wiXSxcbiAgICBpbnM6IFtcImRhdGV0aW1lXCJdLFxuICAgIGtiZDogW10sXG4gICAgbGk6IFtdLFxuICAgIG1hcms6IFtdLFxuICAgIG5hdjogW10sXG4gICAgb2w6IFtdLFxuICAgIHA6IFtdLFxuICAgIHByZTogW10sXG4gICAgczogW10sXG4gICAgc2VjdGlvbjogW10sXG4gICAgc21hbGw6IFtdLFxuICAgIHNwYW46IFtdLFxuICAgIHN1YjogW10sXG4gICAgc3VtbWFyeTogW10sXG4gICAgc3VwOiBbXSxcbiAgICBzdHJvbmc6IFtdLFxuICAgIHN0cmlrZTogW10sXG4gICAgdGFibGU6IFtcIndpZHRoXCIsIFwiYm9yZGVyXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdGJvZHk6IFtcImFsaWduXCIsIFwidmFsaWduXCJdLFxuICAgIHRkOiBbXCJ3aWR0aFwiLCBcInJvd3NwYW5cIiwgXCJjb2xzcGFuXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdGZvb3Q6IFtcImFsaWduXCIsIFwidmFsaWduXCJdLFxuICAgIHRoOiBbXCJ3aWR0aFwiLCBcInJvd3NwYW5cIiwgXCJjb2xzcGFuXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdGhlYWQ6IFtcImFsaWduXCIsIFwidmFsaWduXCJdLFxuICAgIHRyOiBbXCJyb3dzcGFuXCIsIFwiYWxpZ25cIiwgXCJ2YWxpZ25cIl0sXG4gICAgdHQ6IFtdLFxuICAgIHU6IFtdLFxuICAgIHVsOiBbXSxcbiAgICB2aWRlbzogW1xuICAgICAgXCJhdXRvcGxheVwiLFxuICAgICAgXCJjb250cm9sc1wiLFxuICAgICAgXCJjcm9zc29yaWdpblwiLFxuICAgICAgXCJsb29wXCIsXG4gICAgICBcIm11dGVkXCIsXG4gICAgICBcInBsYXlzaW5saW5lXCIsXG4gICAgICBcInBvc3RlclwiLFxuICAgICAgXCJwcmVsb2FkXCIsXG4gICAgICBcInNyY1wiLFxuICAgICAgXCJoZWlnaHRcIixcbiAgICAgIFwid2lkdGhcIixcbiAgICBdLFxuICB9O1xufVxuXG52YXIgZGVmYXVsdENTU0ZpbHRlciA9IG5ldyBGaWx0ZXJDU1MoKTtcblxuLyoqXG4gKiBkZWZhdWx0IG9uVGFnIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHRhZ1xuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uVGFnKHRhZywgaHRtbCwgb3B0aW9ucykge1xuICAvLyBkbyBub3RoaW5nXG59XG5cbi8qKlxuICogZGVmYXVsdCBvbklnbm9yZVRhZyBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0YWdcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBvbklnbm9yZVRhZyh0YWcsIGh0bWwsIG9wdGlvbnMpIHtcbiAgLy8gZG8gbm90aGluZ1xufVxuXG4vKipcbiAqIGRlZmF1bHQgb25UYWdBdHRyIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHRhZ1xuICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZVxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBvblRhZ0F0dHIodGFnLCBuYW1lLCB2YWx1ZSkge1xuICAvLyBkbyBub3RoaW5nXG59XG5cbi8qKlxuICogZGVmYXVsdCBvbklnbm9yZVRhZ0F0dHIgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdGFnXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG9uSWdub3JlVGFnQXR0cih0YWcsIG5hbWUsIHZhbHVlKSB7XG4gIC8vIGRvIG5vdGhpbmdcbn1cblxuLyoqXG4gKiBkZWZhdWx0IGVzY2FwZUh0bWwgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaHRtbFxuICovXG5mdW5jdGlvbiBlc2NhcGVIdG1sKGh0bWwpIHtcbiAgcmV0dXJuIGh0bWwucmVwbGFjZShSRUdFWFBfTFQsIFwiJmx0O1wiKS5yZXBsYWNlKFJFR0VYUF9HVCwgXCImZ3Q7XCIpO1xufVxuXG4vKipcbiAqIGRlZmF1bHQgc2FmZUF0dHJWYWx1ZSBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0YWdcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBjc3NGaWx0ZXJcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc2FmZUF0dHJWYWx1ZSh0YWcsIG5hbWUsIHZhbHVlLCBjc3NGaWx0ZXIpIHtcbiAgLy8gdW5lc2NhcGUgYXR0cmlidXRlIHZhbHVlIGZpcnN0bHlcbiAgdmFsdWUgPSBmcmllbmRseUF0dHJWYWx1ZSh2YWx1ZSk7XG5cbiAgaWYgKG5hbWUgPT09IFwiaHJlZlwiIHx8IG5hbWUgPT09IFwic3JjXCIpIHtcbiAgICAvLyBmaWx0ZXIgYGhyZWZgIGFuZCBgc3JjYCBhdHRyaWJ1dGVcbiAgICAvLyBvbmx5IGFsbG93IHRoZSB2YWx1ZSB0aGF0IHN0YXJ0cyB3aXRoIGBodHRwOi8vYCB8IGBodHRwczovL2AgfCBgbWFpbHRvOmAgfCBgL2AgfCBgI2BcbiAgICB2YWx1ZSA9IF8udHJpbSh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlID09PSBcIiNcIikgcmV0dXJuIFwiI1wiO1xuICAgIGlmIChcbiAgICAgICEoXG4gICAgICAgIHZhbHVlLnN1YnN0cigwLCA3KSA9PT0gXCJodHRwOi8vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDgpID09PSBcImh0dHBzOi8vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDcpID09PSBcIm1haWx0bzpcIiB8fFxuICAgICAgICB2YWx1ZS5zdWJzdHIoMCwgNCkgPT09IFwidGVsOlwiIHx8XG4gICAgICAgIHZhbHVlLnN1YnN0cigwLCAxMSkgPT09IFwiZGF0YTppbWFnZS9cIiB8fFxuICAgICAgICB2YWx1ZS5zdWJzdHIoMCwgNikgPT09IFwiZnRwOi8vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDIpID09PSBcIi4vXCIgfHxcbiAgICAgICAgdmFsdWUuc3Vic3RyKDAsIDMpID09PSBcIi4uL1wiIHx8XG4gICAgICAgIHZhbHVlWzBdID09PSBcIiNcIiB8fFxuICAgICAgICB2YWx1ZVswXSA9PT0gXCIvXCJcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfSBlbHNlIGlmIChuYW1lID09PSBcImJhY2tncm91bmRcIikge1xuICAgIC8vIGZpbHRlciBgYmFja2dyb3VuZGAgYXR0cmlidXRlIChtYXliZSBubyB1c2UpXG4gICAgLy8gYGphdmFzY3JpcHQ6YFxuICAgIFJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzQubGFzdEluZGV4ID0gMDtcbiAgICBpZiAoUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNC50ZXN0KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9IGVsc2UgaWYgKG5hbWUgPT09IFwic3R5bGVcIikge1xuICAgIC8vIGBleHByZXNzaW9uKClgXG4gICAgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNy5sYXN0SW5kZXggPSAwO1xuICAgIGlmIChSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl83LnRlc3QodmFsdWUpKSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgLy8gYHVybCgpYFxuICAgIFJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzgubGFzdEluZGV4ID0gMDtcbiAgICBpZiAoUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfOC50ZXN0KHZhbHVlKSkge1xuICAgICAgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNC5sYXN0SW5kZXggPSAwO1xuICAgICAgaWYgKFJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzQudGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjc3NGaWx0ZXIgIT09IGZhbHNlKSB7XG4gICAgICBjc3NGaWx0ZXIgPSBjc3NGaWx0ZXIgfHwgZGVmYXVsdENTU0ZpbHRlcjtcbiAgICAgIHZhbHVlID0gY3NzRmlsdGVyLnByb2Nlc3ModmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzY2FwZSBgPD5cImAgYmVmb3JlIHJldHVybnNcbiAgdmFsdWUgPSBlc2NhcGVBdHRyVmFsdWUodmFsdWUpO1xuICByZXR1cm4gdmFsdWU7XG59XG5cbi8vIFJlZ0V4cCBsaXN0XG52YXIgUkVHRVhQX0xUID0gLzwvZztcbnZhciBSRUdFWFBfR1QgPSAvPi9nO1xudmFyIFJFR0VYUF9RVU9URSA9IC9cIi9nO1xudmFyIFJFR0VYUF9RVU9URV8yID0gLyZxdW90Oy9nO1xudmFyIFJFR0VYUF9BVFRSX1ZBTFVFXzEgPSAvJiMoW2EtekEtWjAtOV0qKTs/L2dpbTtcbnZhciBSRUdFWFBfQVRUUl9WQUxVRV9DT0xPTiA9IC8mY29sb247Py9naW07XG52YXIgUkVHRVhQX0FUVFJfVkFMVUVfTkVXTElORSA9IC8mbmV3bGluZTs/L2dpbTtcbi8vIHZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl8zID0gL1xcL1xcKnxcXCpcXC8vZ207XG52YXIgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfNCA9XG4gIC8oKGpcXHMqYVxccyp2XFxzKmF8dlxccypifGxcXHMqaVxccyp2XFxzKmUpXFxzKnNcXHMqY1xccypyXFxzKmlcXHMqcFxccyp0XFxzKnxtXFxzKm9cXHMqY1xccypoXFxzKmEpOi9naTtcbi8vIHZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl81ID0gL15bXFxzXCInYF0qKGRcXHMqYVxccyp0XFxzKmFcXHMqKVxcOi9naTtcbi8vIHZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl82ID0gL15bXFxzXCInYF0qKGRcXHMqYVxccyp0XFxzKmFcXHMqKVxcOlxccyppbWFnZVxcLy9naTtcbnZhciBSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl83ID1cbiAgL2VcXHMqeFxccypwXFxzKnJcXHMqZVxccypzXFxzKnNcXHMqaVxccypvXFxzKm5cXHMqXFwoLiovZ2k7XG52YXIgUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfOCA9IC91XFxzKnJcXHMqbFxccypcXCguKi9naTtcblxuLyoqXG4gKiBlc2NhcGUgZG91YmxlIHF1b3RlXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfSBzdHJcbiAqL1xuZnVuY3Rpb24gZXNjYXBlUXVvdGUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShSRUdFWFBfUVVPVEUsIFwiJnF1b3Q7XCIpO1xufVxuXG4vKipcbiAqIHVuZXNjYXBlIGRvdWJsZSBxdW90ZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge1N0cmluZ30gc3RyXG4gKi9cbmZ1bmN0aW9uIHVuZXNjYXBlUXVvdGUoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZShSRUdFWFBfUVVPVEVfMiwgJ1wiJyk7XG59XG5cbi8qKlxuICogZXNjYXBlIGh0bWwgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUh0bWxFbnRpdGllcyhzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKFJFR0VYUF9BVFRSX1ZBTFVFXzEsIGZ1bmN0aW9uIHJlcGxhY2VVbmljb2RlKHN0ciwgY29kZSkge1xuICAgIHJldHVybiBjb2RlWzBdID09PSBcInhcIiB8fCBjb2RlWzBdID09PSBcIlhcIlxuICAgICAgPyBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGNvZGUuc3Vic3RyKDEpLCAxNikpXG4gICAgICA6IFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoY29kZSwgMTApKTtcbiAgfSk7XG59XG5cbi8qKlxuICogZXNjYXBlIGh0bWw1IG5ldyBkYW5nZXIgZW50aXRpZXNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMoc3RyKSB7XG4gIHJldHVybiBzdHJcbiAgICAucmVwbGFjZShSRUdFWFBfQVRUUl9WQUxVRV9DT0xPTiwgXCI6XCIpXG4gICAgLnJlcGxhY2UoUkVHRVhQX0FUVFJfVkFMVUVfTkVXTElORSwgXCIgXCIpO1xufVxuXG4vKipcbiAqIGNsZWFyIG5vbnByaW50YWJsZSBjaGFyYWN0ZXJzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBjbGVhck5vblByaW50YWJsZUNoYXJhY3RlcihzdHIpIHtcbiAgdmFyIHN0cjIgPSBcIlwiO1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgc3RyMiArPSBzdHIuY2hhckNvZGVBdChpKSA8IDMyID8gXCIgXCIgOiBzdHIuY2hhckF0KGkpO1xuICB9XG4gIHJldHVybiBfLnRyaW0oc3RyMik7XG59XG5cbi8qKlxuICogZ2V0IGZyaWVuZGx5IGF0dHJpYnV0ZSB2YWx1ZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZnJpZW5kbHlBdHRyVmFsdWUoc3RyKSB7XG4gIHN0ciA9IHVuZXNjYXBlUXVvdGUoc3RyKTtcbiAgc3RyID0gZXNjYXBlSHRtbEVudGl0aWVzKHN0cik7XG4gIHN0ciA9IGVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMoc3RyKTtcbiAgc3RyID0gY2xlYXJOb25QcmludGFibGVDaGFyYWN0ZXIoc3RyKTtcbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiB1bmVzY2FwZSBhdHRyaWJ1dGUgdmFsdWVcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUF0dHJWYWx1ZShzdHIpIHtcbiAgc3RyID0gZXNjYXBlUXVvdGUoc3RyKTtcbiAgc3RyID0gZXNjYXBlSHRtbChzdHIpO1xuICByZXR1cm4gc3RyO1xufVxuXG4vKipcbiAqIGBvbklnbm9yZVRhZ2AgZnVuY3Rpb24gZm9yIHJlbW92aW5nIGFsbCB0aGUgdGFncyB0aGF0IGFyZSBub3QgaW4gd2hpdGVsaXN0XG4gKi9cbmZ1bmN0aW9uIG9uSWdub3JlVGFnU3RyaXBBbGwoKSB7XG4gIHJldHVybiBcIlwiO1xufVxuXG4vKipcbiAqIHJlbW92ZSB0YWcgYm9keVxuICogc3BlY2lmeSBhIGB0YWdzYCBsaXN0LCBpZiB0aGUgdGFnIGlzIG5vdCBpbiB0aGUgYHRhZ3NgIGxpc3QgdGhlbiBwcm9jZXNzIGJ5IHRoZSBzcGVjaWZ5IGZ1bmN0aW9uIChvcHRpb25hbClcbiAqXG4gKiBAcGFyYW0ge2FycmF5fSB0YWdzXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBuZXh0XG4gKi9cbmZ1bmN0aW9uIFN0cmlwVGFnQm9keSh0YWdzLCBuZXh0KSB7XG4gIGlmICh0eXBlb2YgbmV4dCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgbmV4dCA9IGZ1bmN0aW9uICgpIHt9O1xuICB9XG5cbiAgdmFyIGlzUmVtb3ZlQWxsVGFnID0gIUFycmF5LmlzQXJyYXkodGFncyk7XG4gIGZ1bmN0aW9uIGlzUmVtb3ZlVGFnKHRhZykge1xuICAgIGlmIChpc1JlbW92ZUFsbFRhZykgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIF8uaW5kZXhPZih0YWdzLCB0YWcpICE9PSAtMTtcbiAgfVxuXG4gIHZhciByZW1vdmVMaXN0ID0gW107XG4gIHZhciBwb3NTdGFydCA9IGZhbHNlO1xuXG4gIHJldHVybiB7XG4gICAgb25JZ25vcmVUYWc6IGZ1bmN0aW9uICh0YWcsIGh0bWwsIG9wdGlvbnMpIHtcbiAgICAgIGlmIChpc1JlbW92ZVRhZyh0YWcpKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmlzQ2xvc2luZykge1xuICAgICAgICAgIHZhciByZXQgPSBcIlsvcmVtb3ZlZF1cIjtcbiAgICAgICAgICB2YXIgZW5kID0gb3B0aW9ucy5wb3NpdGlvbiArIHJldC5sZW5ndGg7XG4gICAgICAgICAgcmVtb3ZlTGlzdC5wdXNoKFtcbiAgICAgICAgICAgIHBvc1N0YXJ0ICE9PSBmYWxzZSA/IHBvc1N0YXJ0IDogb3B0aW9ucy5wb3NpdGlvbixcbiAgICAgICAgICAgIGVuZCxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICBwb3NTdGFydCA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiByZXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCFwb3NTdGFydCkge1xuICAgICAgICAgICAgcG9zU3RhcnQgPSBvcHRpb25zLnBvc2l0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gXCJbcmVtb3ZlZF1cIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5leHQodGFnLCBodG1sLCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gKGh0bWwpIHtcbiAgICAgIHZhciByZXRodG1sID0gXCJcIjtcbiAgICAgIHZhciBsYXN0UG9zID0gMDtcbiAgICAgIF8uZm9yRWFjaChyZW1vdmVMaXN0LCBmdW5jdGlvbiAocG9zKSB7XG4gICAgICAgIHJldGh0bWwgKz0gaHRtbC5zbGljZShsYXN0UG9zLCBwb3NbMF0pO1xuICAgICAgICBsYXN0UG9zID0gcG9zWzFdO1xuICAgICAgfSk7XG4gICAgICByZXRodG1sICs9IGh0bWwuc2xpY2UobGFzdFBvcyk7XG4gICAgICByZXR1cm4gcmV0aHRtbDtcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIHJlbW92ZSBodG1sIGNvbW1lbnRzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc3RyaXBDb21tZW50VGFnKGh0bWwpIHtcbiAgdmFyIHJldEh0bWwgPSBcIlwiO1xuICB2YXIgbGFzdFBvcyA9IDA7XG4gIHdoaWxlIChsYXN0UG9zIDwgaHRtbC5sZW5ndGgpIHtcbiAgICB2YXIgaSA9IGh0bWwuaW5kZXhPZihcIjwhLS1cIiwgbGFzdFBvcyk7XG4gICAgaWYgKGkgPT09IC0xKSB7XG4gICAgICByZXRIdG1sICs9IGh0bWwuc2xpY2UobGFzdFBvcyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0SHRtbCArPSBodG1sLnNsaWNlKGxhc3RQb3MsIGkpO1xuICAgIHZhciBqID0gaHRtbC5pbmRleE9mKFwiLS0+XCIsIGkpO1xuICAgIGlmIChqID09PSAtMSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGxhc3RQb3MgPSBqICsgMztcbiAgfVxuICByZXR1cm4gcmV0SHRtbDtcbn1cblxuLyoqXG4gKiByZW1vdmUgaW52aXNpYmxlIGNoYXJhY3RlcnNcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaHRtbFxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBzdHJpcEJsYW5rQ2hhcihodG1sKSB7XG4gIHZhciBjaGFycyA9IGh0bWwuc3BsaXQoXCJcIik7XG4gIGNoYXJzID0gY2hhcnMuZmlsdGVyKGZ1bmN0aW9uIChjaGFyKSB7XG4gICAgdmFyIGMgPSBjaGFyLmNoYXJDb2RlQXQoMCk7XG4gICAgaWYgKGMgPT09IDEyNykgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChjIDw9IDMxKSB7XG4gICAgICBpZiAoYyA9PT0gMTAgfHwgYyA9PT0gMTMpIHJldHVybiB0cnVlO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG4gIHJldHVybiBjaGFycy5qb2luKFwiXCIpO1xufVxuXG5leHBvcnRzLndoaXRlTGlzdCA9IGdldERlZmF1bHRXaGl0ZUxpc3QoKTtcbmV4cG9ydHMuZ2V0RGVmYXVsdFdoaXRlTGlzdCA9IGdldERlZmF1bHRXaGl0ZUxpc3Q7XG5leHBvcnRzLm9uVGFnID0gb25UYWc7XG5leHBvcnRzLm9uSWdub3JlVGFnID0gb25JZ25vcmVUYWc7XG5leHBvcnRzLm9uVGFnQXR0ciA9IG9uVGFnQXR0cjtcbmV4cG9ydHMub25JZ25vcmVUYWdBdHRyID0gb25JZ25vcmVUYWdBdHRyO1xuZXhwb3J0cy5zYWZlQXR0clZhbHVlID0gc2FmZUF0dHJWYWx1ZTtcbmV4cG9ydHMuZXNjYXBlSHRtbCA9IGVzY2FwZUh0bWw7XG5leHBvcnRzLmVzY2FwZVF1b3RlID0gZXNjYXBlUXVvdGU7XG5leHBvcnRzLnVuZXNjYXBlUXVvdGUgPSB1bmVzY2FwZVF1b3RlO1xuZXhwb3J0cy5lc2NhcGVIdG1sRW50aXRpZXMgPSBlc2NhcGVIdG1sRW50aXRpZXM7XG5leHBvcnRzLmVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMgPSBlc2NhcGVEYW5nZXJIdG1sNUVudGl0aWVzO1xuZXhwb3J0cy5jbGVhck5vblByaW50YWJsZUNoYXJhY3RlciA9IGNsZWFyTm9uUHJpbnRhYmxlQ2hhcmFjdGVyO1xuZXhwb3J0cy5mcmllbmRseUF0dHJWYWx1ZSA9IGZyaWVuZGx5QXR0clZhbHVlO1xuZXhwb3J0cy5lc2NhcGVBdHRyVmFsdWUgPSBlc2NhcGVBdHRyVmFsdWU7XG5leHBvcnRzLm9uSWdub3JlVGFnU3RyaXBBbGwgPSBvbklnbm9yZVRhZ1N0cmlwQWxsO1xuZXhwb3J0cy5TdHJpcFRhZ0JvZHkgPSBTdHJpcFRhZ0JvZHk7XG5leHBvcnRzLnN0cmlwQ29tbWVudFRhZyA9IHN0cmlwQ29tbWVudFRhZztcbmV4cG9ydHMuc3RyaXBCbGFua0NoYXIgPSBzdHJpcEJsYW5rQ2hhcjtcbmV4cG9ydHMuYXR0cmlidXRlV3JhcFNpZ24gPSAnXCInO1xuZXhwb3J0cy5jc3NGaWx0ZXIgPSBkZWZhdWx0Q1NTRmlsdGVyO1xuZXhwb3J0cy5nZXREZWZhdWx0Q1NTV2hpdGVMaXN0ID0gZ2V0RGVmYXVsdENTU1doaXRlTGlzdDtcbiIsIi8qKlxuICogeHNzXG4gKlxuICogQGF1dGhvciBab25nbWluIExlaTxsZWl6b25nbWluQGdtYWlsLmNvbT5cbiAqL1xuXG52YXIgREVGQVVMVCA9IHJlcXVpcmUoXCIuL2RlZmF1bHRcIik7XG52YXIgcGFyc2VyID0gcmVxdWlyZShcIi4vcGFyc2VyXCIpO1xudmFyIEZpbHRlclhTUyA9IHJlcXVpcmUoXCIuL3hzc1wiKTtcblxuLyoqXG4gKiBmaWx0ZXIgeHNzIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIHsgd2hpdGVMaXN0LCBvblRhZywgb25UYWdBdHRyLCBvbklnbm9yZVRhZywgb25JZ25vcmVUYWdBdHRyLCBzYWZlQXR0clZhbHVlLCBlc2NhcGVIdG1sIH1cbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZmlsdGVyWFNTKGh0bWwsIG9wdGlvbnMpIHtcbiAgdmFyIHhzcyA9IG5ldyBGaWx0ZXJYU1Mob3B0aW9ucyk7XG4gIHJldHVybiB4c3MucHJvY2VzcyhodG1sKTtcbn1cblxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZmlsdGVyWFNTO1xuZXhwb3J0cy5maWx0ZXJYU1MgPSBmaWx0ZXJYU1M7XG5leHBvcnRzLkZpbHRlclhTUyA9IEZpbHRlclhTUztcblxuKGZ1bmN0aW9uICgpIHtcbiAgZm9yICh2YXIgaSBpbiBERUZBVUxUKSB7XG4gICAgZXhwb3J0c1tpXSA9IERFRkFVTFRbaV07XG4gIH1cbiAgZm9yICh2YXIgaiBpbiBwYXJzZXIpIHtcbiAgICBleHBvcnRzW2pdID0gcGFyc2VyW2pdO1xuICB9XG59KSgpO1xuXG4vLyB1c2luZyBgeHNzYCBvbiB0aGUgYnJvd3Nlciwgb3V0cHV0IGBmaWx0ZXJYU1NgIHRvIHRoZSBnbG9iYWxzXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICB3aW5kb3cuZmlsdGVyWFNTID0gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIHVzaW5nIGB4c3NgIG9uIHRoZSBXZWJXb3JrZXIsIG91dHB1dCBgZmlsdGVyWFNTYCB0byB0aGUgZ2xvYmFsc1xuZnVuY3Rpb24gaXNXb3JrZXJFbnYoKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICB0eXBlb2YgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICBzZWxmIGluc3RhbmNlb2YgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVcbiAgKTtcbn1cbmlmIChpc1dvcmtlckVudigpKSB7XG4gIHNlbGYuZmlsdGVyWFNTID0gbW9kdWxlLmV4cG9ydHM7XG59XG4iLCIvKipcbiAqIFNpbXBsZSBIVE1MIFBhcnNlclxuICpcbiAqIEBhdXRob3IgWm9uZ21pbiBMZWk8bGVpem9uZ21pbkBnbWFpbC5jb20+XG4gKi9cblxudmFyIF8gPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuXG4vKipcbiAqIGdldCB0YWcgbmFtZVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sIGUuZy4gJzxhIGhlZj1cIiNcIj4nXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldFRhZ05hbWUoaHRtbCkge1xuICB2YXIgaSA9IF8uc3BhY2VJbmRleChodG1sKTtcbiAgdmFyIHRhZ05hbWU7XG4gIGlmIChpID09PSAtMSkge1xuICAgIHRhZ05hbWUgPSBodG1sLnNsaWNlKDEsIC0xKTtcbiAgfSBlbHNlIHtcbiAgICB0YWdOYW1lID0gaHRtbC5zbGljZSgxLCBpICsgMSk7XG4gIH1cbiAgdGFnTmFtZSA9IF8udHJpbSh0YWdOYW1lKS50b0xvd2VyQ2FzZSgpO1xuICBpZiAodGFnTmFtZS5zbGljZSgwLCAxKSA9PT0gXCIvXCIpIHRhZ05hbWUgPSB0YWdOYW1lLnNsaWNlKDEpO1xuICBpZiAodGFnTmFtZS5zbGljZSgtMSkgPT09IFwiL1wiKSB0YWdOYW1lID0gdGFnTmFtZS5zbGljZSgwLCAtMSk7XG4gIHJldHVybiB0YWdOYW1lO1xufVxuXG4vKipcbiAqIGlzIGNsb3NlIHRhZz9cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaHRtbCDlpoLvvJonPGEgaGVmPVwiI1wiPidcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzQ2xvc2luZyhodG1sKSB7XG4gIHJldHVybiBodG1sLnNsaWNlKDAsIDIpID09PSBcIjwvXCI7XG59XG5cbi8qKlxuICogcGFyc2UgaW5wdXQgaHRtbCBhbmQgcmV0dXJucyBwcm9jZXNzZWQgaHRtbFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvblRhZyBlLmcuIGZ1bmN0aW9uIChzb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24sIHRhZywgaHRtbCwgaXNDbG9zaW5nKVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZXNjYXBlSHRtbFxuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5mdW5jdGlvbiBwYXJzZVRhZyhodG1sLCBvblRhZywgZXNjYXBlSHRtbCkge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgcmV0aHRtbCA9IFwiXCI7XG4gIHZhciBsYXN0UG9zID0gMDtcbiAgdmFyIHRhZ1N0YXJ0ID0gZmFsc2U7XG4gIHZhciBxdW90ZVN0YXJ0ID0gZmFsc2U7XG4gIHZhciBjdXJyZW50UG9zID0gMDtcbiAgdmFyIGxlbiA9IGh0bWwubGVuZ3RoO1xuICB2YXIgY3VycmVudFRhZ05hbWUgPSBcIlwiO1xuICB2YXIgY3VycmVudEh0bWwgPSBcIlwiO1xuXG4gIGNoYXJpdGVyYXRvcjogZm9yIChjdXJyZW50UG9zID0gMDsgY3VycmVudFBvcyA8IGxlbjsgY3VycmVudFBvcysrKSB7XG4gICAgdmFyIGMgPSBodG1sLmNoYXJBdChjdXJyZW50UG9zKTtcbiAgICBpZiAodGFnU3RhcnQgPT09IGZhbHNlKSB7XG4gICAgICBpZiAoYyA9PT0gXCI8XCIpIHtcbiAgICAgICAgdGFnU3RhcnQgPSBjdXJyZW50UG9zO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHF1b3RlU3RhcnQgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChjID09PSBcIjxcIikge1xuICAgICAgICAgIHJldGh0bWwgKz0gZXNjYXBlSHRtbChodG1sLnNsaWNlKGxhc3RQb3MsIGN1cnJlbnRQb3MpKTtcbiAgICAgICAgICB0YWdTdGFydCA9IGN1cnJlbnRQb3M7XG4gICAgICAgICAgbGFzdFBvcyA9IGN1cnJlbnRQb3M7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgPT09IFwiPlwiIHx8IGN1cnJlbnRQb3MgPT09IGxlbiAtIDEpIHtcbiAgICAgICAgICByZXRodG1sICs9IGVzY2FwZUh0bWwoaHRtbC5zbGljZShsYXN0UG9zLCB0YWdTdGFydCkpO1xuICAgICAgICAgIGN1cnJlbnRIdG1sID0gaHRtbC5zbGljZSh0YWdTdGFydCwgY3VycmVudFBvcyArIDEpO1xuICAgICAgICAgIGN1cnJlbnRUYWdOYW1lID0gZ2V0VGFnTmFtZShjdXJyZW50SHRtbCk7XG4gICAgICAgICAgcmV0aHRtbCArPSBvblRhZyhcbiAgICAgICAgICAgIHRhZ1N0YXJ0LFxuICAgICAgICAgICAgcmV0aHRtbC5sZW5ndGgsXG4gICAgICAgICAgICBjdXJyZW50VGFnTmFtZSxcbiAgICAgICAgICAgIGN1cnJlbnRIdG1sLFxuICAgICAgICAgICAgaXNDbG9zaW5nKGN1cnJlbnRIdG1sKVxuICAgICAgICAgICk7XG4gICAgICAgICAgbGFzdFBvcyA9IGN1cnJlbnRQb3MgKyAxO1xuICAgICAgICAgIHRhZ1N0YXJ0ID0gZmFsc2U7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgPT09ICdcIicgfHwgYyA9PT0gXCInXCIpIHtcbiAgICAgICAgICB2YXIgaSA9IDE7XG4gICAgICAgICAgdmFyIGljID0gaHRtbC5jaGFyQXQoY3VycmVudFBvcyAtIGkpO1xuXG4gICAgICAgICAgd2hpbGUgKGljLnRyaW0oKSA9PT0gXCJcIiB8fCBpYyA9PT0gXCI9XCIpIHtcbiAgICAgICAgICAgIGlmIChpYyA9PT0gXCI9XCIpIHtcbiAgICAgICAgICAgICAgcXVvdGVTdGFydCA9IGM7XG4gICAgICAgICAgICAgIGNvbnRpbnVlIGNoYXJpdGVyYXRvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGljID0gaHRtbC5jaGFyQXQoY3VycmVudFBvcyAtICsraSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYyA9PT0gcXVvdGVTdGFydCkge1xuICAgICAgICAgIHF1b3RlU3RhcnQgPSBmYWxzZTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAobGFzdFBvcyA8IGxlbikge1xuICAgIHJldGh0bWwgKz0gZXNjYXBlSHRtbChodG1sLnN1YnN0cihsYXN0UG9zKSk7XG4gIH1cblxuICByZXR1cm4gcmV0aHRtbDtcbn1cblxudmFyIFJFR0VYUF9JTExFR0FMX0FUVFJfTkFNRSA9IC9bXmEtekEtWjAtOVxcXFxfOi4tXS9naW07XG5cbi8qKlxuICogcGFyc2UgaW5wdXQgYXR0cmlidXRlcyBhbmQgcmV0dXJucyBwcm9jZXNzZWQgYXR0cmlidXRlc1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sIGUuZy4gYGhyZWY9XCIjXCIgdGFyZ2V0PVwiX2JsYW5rXCJgXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvbkF0dHIgZS5nLiBgZnVuY3Rpb24gKG5hbWUsIHZhbHVlKWBcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqL1xuZnVuY3Rpb24gcGFyc2VBdHRyKGh0bWwsIG9uQXR0cikge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgbGFzdFBvcyA9IDA7XG4gIHZhciBsYXN0TWFya1BvcyA9IDA7XG4gIHZhciByZXRBdHRycyA9IFtdO1xuICB2YXIgdG1wTmFtZSA9IGZhbHNlO1xuICB2YXIgbGVuID0gaHRtbC5sZW5ndGg7XG5cbiAgZnVuY3Rpb24gYWRkQXR0cihuYW1lLCB2YWx1ZSkge1xuICAgIG5hbWUgPSBfLnRyaW0obmFtZSk7XG4gICAgbmFtZSA9IG5hbWUucmVwbGFjZShSRUdFWFBfSUxMRUdBTF9BVFRSX05BTUUsIFwiXCIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKG5hbWUubGVuZ3RoIDwgMSkgcmV0dXJuO1xuICAgIHZhciByZXQgPSBvbkF0dHIobmFtZSwgdmFsdWUgfHwgXCJcIik7XG4gICAgaWYgKHJldCkgcmV0QXR0cnMucHVzaChyZXQpO1xuICB9XG5cbiAgLy8g6YCQ5Liq5YiG5p6Q5a2X56ymXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgYyA9IGh0bWwuY2hhckF0KGkpO1xuICAgIHZhciB2LCBqO1xuICAgIGlmICh0bXBOYW1lID09PSBmYWxzZSAmJiBjID09PSBcIj1cIikge1xuICAgICAgdG1wTmFtZSA9IGh0bWwuc2xpY2UobGFzdFBvcywgaSk7XG4gICAgICBsYXN0UG9zID0gaSArIDE7XG4gICAgICBsYXN0TWFya1BvcyA9IGh0bWwuY2hhckF0KGxhc3RQb3MpID09PSAnXCInIHx8IGh0bWwuY2hhckF0KGxhc3RQb3MpID09PSBcIidcIiA/IGxhc3RQb3MgOiBmaW5kTmV4dFF1b3RhdGlvbk1hcmsoaHRtbCwgaSArIDEpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICh0bXBOYW1lICE9PSBmYWxzZSkge1xuICAgICAgaWYgKFxuICAgICAgICBpID09PSBsYXN0TWFya1Bvc1xuICAgICAgKSB7XG4gICAgICAgIGogPSBodG1sLmluZGV4T2YoYywgaSArIDEpO1xuICAgICAgICBpZiAoaiA9PT0gLTEpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2ID0gXy50cmltKGh0bWwuc2xpY2UobGFzdE1hcmtQb3MgKyAxLCBqKSk7XG4gICAgICAgICAgYWRkQXR0cih0bXBOYW1lLCB2KTtcbiAgICAgICAgICB0bXBOYW1lID0gZmFsc2U7XG4gICAgICAgICAgaSA9IGo7XG4gICAgICAgICAgbGFzdFBvcyA9IGkgKyAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICgvXFxzfFxcbnxcXHQvLnRlc3QoYykpIHtcbiAgICAgIGh0bWwgPSBodG1sLnJlcGxhY2UoL1xcc3xcXG58XFx0L2csIFwiIFwiKTtcbiAgICAgIGlmICh0bXBOYW1lID09PSBmYWxzZSkge1xuICAgICAgICBqID0gZmluZE5leHRFcXVhbChodG1sLCBpKTtcbiAgICAgICAgaWYgKGogPT09IC0xKSB7XG4gICAgICAgICAgdiA9IF8udHJpbShodG1sLnNsaWNlKGxhc3RQb3MsIGkpKTtcbiAgICAgICAgICBhZGRBdHRyKHYpO1xuICAgICAgICAgIHRtcE5hbWUgPSBmYWxzZTtcbiAgICAgICAgICBsYXN0UG9zID0gaSArIDE7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaSA9IGogLSAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBqID0gZmluZEJlZm9yZUVxdWFsKGh0bWwsIGkgLSAxKTtcbiAgICAgICAgaWYgKGogPT09IC0xKSB7XG4gICAgICAgICAgdiA9IF8udHJpbShodG1sLnNsaWNlKGxhc3RQb3MsIGkpKTtcbiAgICAgICAgICB2ID0gc3RyaXBRdW90ZVdyYXAodik7XG4gICAgICAgICAgYWRkQXR0cih0bXBOYW1lLCB2KTtcbiAgICAgICAgICB0bXBOYW1lID0gZmFsc2U7XG4gICAgICAgICAgbGFzdFBvcyA9IGkgKyAxO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGxhc3RQb3MgPCBodG1sLmxlbmd0aCkge1xuICAgIGlmICh0bXBOYW1lID09PSBmYWxzZSkge1xuICAgICAgYWRkQXR0cihodG1sLnNsaWNlKGxhc3RQb3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWRkQXR0cih0bXBOYW1lLCBzdHJpcFF1b3RlV3JhcChfLnRyaW0oaHRtbC5zbGljZShsYXN0UG9zKSkpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gXy50cmltKHJldEF0dHJzLmpvaW4oXCIgXCIpKTtcbn1cblxuZnVuY3Rpb24gZmluZE5leHRFcXVhbChzdHIsIGkpIHtcbiAgZm9yICg7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IHN0cltpXTtcbiAgICBpZiAoYyA9PT0gXCIgXCIpIGNvbnRpbnVlO1xuICAgIGlmIChjID09PSBcIj1cIikgcmV0dXJuIGk7XG4gICAgcmV0dXJuIC0xO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZpbmROZXh0UXVvdGF0aW9uTWFyayhzdHIsIGkpIHtcbiAgZm9yICg7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYyA9IHN0cltpXTtcbiAgICBpZiAoYyA9PT0gXCIgXCIpIGNvbnRpbnVlO1xuICAgIGlmIChjID09PSBcIidcIiB8fCBjID09PSAnXCInKSByZXR1cm4gaTtcbiAgICByZXR1cm4gLTE7XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEJlZm9yZUVxdWFsKHN0ciwgaSkge1xuICBmb3IgKDsgaSA+IDA7IGktLSkge1xuICAgIHZhciBjID0gc3RyW2ldO1xuICAgIGlmIChjID09PSBcIiBcIikgY29udGludWU7XG4gICAgaWYgKGMgPT09IFwiPVwiKSByZXR1cm4gaTtcbiAgICByZXR1cm4gLTE7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNRdW90ZVdyYXBTdHJpbmcodGV4dCkge1xuICBpZiAoXG4gICAgKHRleHRbMF0gPT09ICdcIicgJiYgdGV4dFt0ZXh0Lmxlbmd0aCAtIDFdID09PSAnXCInKSB8fFxuICAgICh0ZXh0WzBdID09PSBcIidcIiAmJiB0ZXh0W3RleHQubGVuZ3RoIC0gMV0gPT09IFwiJ1wiKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RyaXBRdW90ZVdyYXAodGV4dCkge1xuICBpZiAoaXNRdW90ZVdyYXBTdHJpbmcodGV4dCkpIHtcbiAgICByZXR1cm4gdGV4dC5zdWJzdHIoMSwgdGV4dC5sZW5ndGggLSAyKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxufVxuXG5leHBvcnRzLnBhcnNlVGFnID0gcGFyc2VUYWc7XG5leHBvcnRzLnBhcnNlQXR0ciA9IHBhcnNlQXR0cjtcbiIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBpbmRleE9mOiBmdW5jdGlvbiAoYXJyLCBpdGVtKSB7XG4gICAgdmFyIGksIGo7XG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG4gICAgICByZXR1cm4gYXJyLmluZGV4T2YoaXRlbSk7XG4gICAgfVxuICAgIGZvciAoaSA9IDAsIGogPSBhcnIubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpZiAoYXJyW2ldID09PSBpdGVtKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH0sXG4gIGZvckVhY2g6IGZ1bmN0aW9uIChhcnIsIGZuLCBzY29wZSkge1xuICAgIHZhciBpLCBqO1xuICAgIGlmIChBcnJheS5wcm90b3R5cGUuZm9yRWFjaCkge1xuICAgICAgcmV0dXJuIGFyci5mb3JFYWNoKGZuLCBzY29wZSk7XG4gICAgfVxuICAgIGZvciAoaSA9IDAsIGogPSBhcnIubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBmbi5jYWxsKHNjb3BlLCBhcnJbaV0sIGksIGFycik7XG4gICAgfVxuICB9LFxuICB0cmltOiBmdW5jdGlvbiAoc3RyKSB7XG4gICAgaWYgKFN0cmluZy5wcm90b3R5cGUudHJpbSkge1xuICAgICAgcmV0dXJuIHN0ci50cmltKCk7XG4gICAgfVxuICAgIHJldHVybiBzdHIucmVwbGFjZSgvKF5cXHMqKXwoXFxzKiQpL2csIFwiXCIpO1xuICB9LFxuICBzcGFjZUluZGV4OiBmdW5jdGlvbiAoc3RyKSB7XG4gICAgdmFyIHJlZyA9IC9cXHN8XFxufFxcdC87XG4gICAgdmFyIG1hdGNoID0gcmVnLmV4ZWMoc3RyKTtcbiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaC5pbmRleCA6IC0xO1xuICB9LFxufTtcbiIsIi8qKlxuICogZmlsdGVyIHhzc1xuICpcbiAqIEBhdXRob3IgWm9uZ21pbiBMZWk8bGVpem9uZ21pbkBnbWFpbC5jb20+XG4gKi9cblxudmFyIEZpbHRlckNTUyA9IHJlcXVpcmUoXCJjc3NmaWx0ZXJcIikuRmlsdGVyQ1NTO1xudmFyIERFRkFVTFQgPSByZXF1aXJlKFwiLi9kZWZhdWx0XCIpO1xudmFyIHBhcnNlciA9IHJlcXVpcmUoXCIuL3BhcnNlclwiKTtcbnZhciBwYXJzZVRhZyA9IHBhcnNlci5wYXJzZVRhZztcbnZhciBwYXJzZUF0dHIgPSBwYXJzZXIucGFyc2VBdHRyO1xudmFyIF8gPSByZXF1aXJlKFwiLi91dGlsXCIpO1xuXG4vKipcbiAqIHJldHVybnMgYHRydWVgIGlmIHRoZSBpbnB1dCB2YWx1ZSBpcyBgdW5kZWZpbmVkYCBvciBgbnVsbGBcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBpc051bGwob2JqKSB7XG4gIHJldHVybiBvYmogPT09IHVuZGVmaW5lZCB8fCBvYmogPT09IG51bGw7XG59XG5cbi8qKlxuICogZ2V0IGF0dHJpYnV0ZXMgZm9yIGEgdGFnXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGh0bWxcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqICAgLSB7U3RyaW5nfSBodG1sXG4gKiAgIC0ge0Jvb2xlYW59IGNsb3NpbmdcbiAqL1xuZnVuY3Rpb24gZ2V0QXR0cnMoaHRtbCkge1xuICB2YXIgaSA9IF8uc3BhY2VJbmRleChodG1sKTtcbiAgaWYgKGkgPT09IC0xKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGh0bWw6IFwiXCIsXG4gICAgICBjbG9zaW5nOiBodG1sW2h0bWwubGVuZ3RoIC0gMl0gPT09IFwiL1wiLFxuICAgIH07XG4gIH1cbiAgaHRtbCA9IF8udHJpbShodG1sLnNsaWNlKGkgKyAxLCAtMSkpO1xuICB2YXIgaXNDbG9zaW5nID0gaHRtbFtodG1sLmxlbmd0aCAtIDFdID09PSBcIi9cIjtcbiAgaWYgKGlzQ2xvc2luZykgaHRtbCA9IF8udHJpbShodG1sLnNsaWNlKDAsIC0xKSk7XG4gIHJldHVybiB7XG4gICAgaHRtbDogaHRtbCxcbiAgICBjbG9zaW5nOiBpc0Nsb3NpbmcsXG4gIH07XG59XG5cbi8qKlxuICogc2hhbGxvdyBjb3B5XG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiBzaGFsbG93Q29weU9iamVjdChvYmopIHtcbiAgdmFyIHJldCA9IHt9O1xuICBmb3IgKHZhciBpIGluIG9iaikge1xuICAgIHJldFtpXSA9IG9ialtpXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBrZXlzVG9Mb3dlckNhc2Uob2JqKSB7XG4gIHZhciByZXQgPSB7fTtcbiAgZm9yICh2YXIgaSBpbiBvYmopIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmpbaV0pKSB7XG4gICAgICByZXRbaS50b0xvd2VyQ2FzZSgpXSA9IG9ialtpXS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0udG9Mb3dlckNhc2UoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXRbaS50b0xvd2VyQ2FzZSgpXSA9IG9ialtpXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBGaWx0ZXJYU1MgY2xhc3NcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogICAgICAgIHdoaXRlTGlzdCAob3IgYWxsb3dMaXN0KSwgb25UYWcsIG9uVGFnQXR0ciwgb25JZ25vcmVUYWcsXG4gKiAgICAgICAgb25JZ25vcmVUYWdBdHRyLCBzYWZlQXR0clZhbHVlLCBlc2NhcGVIdG1sXG4gKiAgICAgICAgc3RyaXBJZ25vcmVUYWdCb2R5LCBhbGxvd0NvbW1lbnRUYWcsIHN0cmlwQmxhbmtDaGFyXG4gKiAgICAgICAgY3Nze3doaXRlTGlzdCwgb25BdHRyLCBvbklnbm9yZUF0dHJ9IGBjc3M9ZmFsc2VgIG1lYW5zIGRvbid0IHVzZSBgY3NzZmlsdGVyYFxuICovXG5mdW5jdGlvbiBGaWx0ZXJYU1Mob3B0aW9ucykge1xuICBvcHRpb25zID0gc2hhbGxvd0NvcHlPYmplY3Qob3B0aW9ucyB8fCB7fSk7XG5cbiAgaWYgKG9wdGlvbnMuc3RyaXBJZ25vcmVUYWcpIHtcbiAgICBpZiAob3B0aW9ucy5vbklnbm9yZVRhZykge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgJ05vdGVzOiBjYW5ub3QgdXNlIHRoZXNlIHR3byBvcHRpb25zIFwic3RyaXBJZ25vcmVUYWdcIiBhbmQgXCJvbklnbm9yZVRhZ1wiIGF0IHRoZSBzYW1lIHRpbWUnXG4gICAgICApO1xuICAgIH1cbiAgICBvcHRpb25zLm9uSWdub3JlVGFnID0gREVGQVVMVC5vbklnbm9yZVRhZ1N0cmlwQWxsO1xuICB9XG4gIGlmIChvcHRpb25zLndoaXRlTGlzdCB8fCBvcHRpb25zLmFsbG93TGlzdCkge1xuICAgIG9wdGlvbnMud2hpdGVMaXN0ID0ga2V5c1RvTG93ZXJDYXNlKG9wdGlvbnMud2hpdGVMaXN0IHx8IG9wdGlvbnMuYWxsb3dMaXN0KTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLndoaXRlTGlzdCA9IERFRkFVTFQud2hpdGVMaXN0O1xuICB9XG5cbiAgdGhpcy5hdHRyaWJ1dGVXcmFwU2lnbiA9IG9wdGlvbnMuc2luZ2xlUXVvdGVkQXR0cmlidXRlVmFsdWUgPT09IHRydWUgPyBcIidcIiA6IERFRkFVTFQuYXR0cmlidXRlV3JhcFNpZ247XG5cbiAgb3B0aW9ucy5vblRhZyA9IG9wdGlvbnMub25UYWcgfHwgREVGQVVMVC5vblRhZztcbiAgb3B0aW9ucy5vblRhZ0F0dHIgPSBvcHRpb25zLm9uVGFnQXR0ciB8fCBERUZBVUxULm9uVGFnQXR0cjtcbiAgb3B0aW9ucy5vbklnbm9yZVRhZyA9IG9wdGlvbnMub25JZ25vcmVUYWcgfHwgREVGQVVMVC5vbklnbm9yZVRhZztcbiAgb3B0aW9ucy5vbklnbm9yZVRhZ0F0dHIgPSBvcHRpb25zLm9uSWdub3JlVGFnQXR0ciB8fCBERUZBVUxULm9uSWdub3JlVGFnQXR0cjtcbiAgb3B0aW9ucy5zYWZlQXR0clZhbHVlID0gb3B0aW9ucy5zYWZlQXR0clZhbHVlIHx8IERFRkFVTFQuc2FmZUF0dHJWYWx1ZTtcbiAgb3B0aW9ucy5lc2NhcGVIdG1sID0gb3B0aW9ucy5lc2NhcGVIdG1sIHx8IERFRkFVTFQuZXNjYXBlSHRtbDtcbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICBpZiAob3B0aW9ucy5jc3MgPT09IGZhbHNlKSB7XG4gICAgdGhpcy5jc3NGaWx0ZXIgPSBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zLmNzcyA9IG9wdGlvbnMuY3NzIHx8IHt9O1xuICAgIHRoaXMuY3NzRmlsdGVyID0gbmV3IEZpbHRlckNTUyhvcHRpb25zLmNzcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBzdGFydCBwcm9jZXNzIGFuZCByZXR1cm5zIHJlc3VsdFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBodG1sXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKi9cbkZpbHRlclhTUy5wcm90b3R5cGUucHJvY2VzcyA9IGZ1bmN0aW9uIChodG1sKSB7XG4gIC8vIGNvbXBhdGlibGUgd2l0aCB0aGUgaW5wdXRcbiAgaHRtbCA9IGh0bWwgfHwgXCJcIjtcbiAgaHRtbCA9IGh0bWwudG9TdHJpbmcoKTtcbiAgaWYgKCFodG1sKSByZXR1cm4gXCJcIjtcblxuICB2YXIgbWUgPSB0aGlzO1xuICB2YXIgb3B0aW9ucyA9IG1lLm9wdGlvbnM7XG4gIHZhciB3aGl0ZUxpc3QgPSBvcHRpb25zLndoaXRlTGlzdDtcbiAgdmFyIG9uVGFnID0gb3B0aW9ucy5vblRhZztcbiAgdmFyIG9uSWdub3JlVGFnID0gb3B0aW9ucy5vbklnbm9yZVRhZztcbiAgdmFyIG9uVGFnQXR0ciA9IG9wdGlvbnMub25UYWdBdHRyO1xuICB2YXIgb25JZ25vcmVUYWdBdHRyID0gb3B0aW9ucy5vbklnbm9yZVRhZ0F0dHI7XG4gIHZhciBzYWZlQXR0clZhbHVlID0gb3B0aW9ucy5zYWZlQXR0clZhbHVlO1xuICB2YXIgZXNjYXBlSHRtbCA9IG9wdGlvbnMuZXNjYXBlSHRtbDtcbiAgdmFyIGF0dHJpYnV0ZVdyYXBTaWduID0gbWUuYXR0cmlidXRlV3JhcFNpZ247XG4gIHZhciBjc3NGaWx0ZXIgPSBtZS5jc3NGaWx0ZXI7XG5cbiAgLy8gcmVtb3ZlIGludmlzaWJsZSBjaGFyYWN0ZXJzXG4gIGlmIChvcHRpb25zLnN0cmlwQmxhbmtDaGFyKSB7XG4gICAgaHRtbCA9IERFRkFVTFQuc3RyaXBCbGFua0NoYXIoaHRtbCk7XG4gIH1cblxuICAvLyByZW1vdmUgaHRtbCBjb21tZW50c1xuICBpZiAoIW9wdGlvbnMuYWxsb3dDb21tZW50VGFnKSB7XG4gICAgaHRtbCA9IERFRkFVTFQuc3RyaXBDb21tZW50VGFnKGh0bWwpO1xuICB9XG5cbiAgLy8gaWYgZW5hYmxlIHN0cmlwSWdub3JlVGFnQm9keVxuICB2YXIgc3RyaXBJZ25vcmVUYWdCb2R5ID0gZmFsc2U7XG4gIGlmIChvcHRpb25zLnN0cmlwSWdub3JlVGFnQm9keSkge1xuICAgIHN0cmlwSWdub3JlVGFnQm9keSA9IERFRkFVTFQuU3RyaXBUYWdCb2R5KFxuICAgICAgb3B0aW9ucy5zdHJpcElnbm9yZVRhZ0JvZHksXG4gICAgICBvbklnbm9yZVRhZ1xuICAgICk7XG4gICAgb25JZ25vcmVUYWcgPSBzdHJpcElnbm9yZVRhZ0JvZHkub25JZ25vcmVUYWc7XG4gIH1cblxuICB2YXIgcmV0SHRtbCA9IHBhcnNlVGFnKFxuICAgIGh0bWwsXG4gICAgZnVuY3Rpb24gKHNvdXJjZVBvc2l0aW9uLCBwb3NpdGlvbiwgdGFnLCBodG1sLCBpc0Nsb3NpbmcpIHtcbiAgICAgIHZhciBpbmZvID0ge1xuICAgICAgICBzb3VyY2VQb3NpdGlvbjogc291cmNlUG9zaXRpb24sXG4gICAgICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICAgICAgaXNDbG9zaW5nOiBpc0Nsb3NpbmcsXG4gICAgICAgIGlzV2hpdGU6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh3aGl0ZUxpc3QsIHRhZyksXG4gICAgICB9O1xuXG4gICAgICAvLyBjYWxsIGBvblRhZygpYFxuICAgICAgdmFyIHJldCA9IG9uVGFnKHRhZywgaHRtbCwgaW5mbyk7XG4gICAgICBpZiAoIWlzTnVsbChyZXQpKSByZXR1cm4gcmV0O1xuXG4gICAgICBpZiAoaW5mby5pc1doaXRlKSB7XG4gICAgICAgIGlmIChpbmZvLmlzQ2xvc2luZykge1xuICAgICAgICAgIHJldHVybiBcIjwvXCIgKyB0YWcgKyBcIj5cIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBhdHRycyA9IGdldEF0dHJzKGh0bWwpO1xuICAgICAgICB2YXIgd2hpdGVBdHRyTGlzdCA9IHdoaXRlTGlzdFt0YWddO1xuICAgICAgICB2YXIgYXR0cnNIdG1sID0gcGFyc2VBdHRyKGF0dHJzLmh0bWwsIGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgICAgICAgIC8vIGNhbGwgYG9uVGFnQXR0cigpYFxuICAgICAgICAgIHZhciBpc1doaXRlQXR0ciA9IF8uaW5kZXhPZih3aGl0ZUF0dHJMaXN0LCBuYW1lKSAhPT0gLTE7XG4gICAgICAgICAgdmFyIHJldCA9IG9uVGFnQXR0cih0YWcsIG5hbWUsIHZhbHVlLCBpc1doaXRlQXR0cik7XG4gICAgICAgICAgaWYgKCFpc051bGwocmV0KSkgcmV0dXJuIHJldDtcblxuICAgICAgICAgIGlmIChpc1doaXRlQXR0cikge1xuICAgICAgICAgICAgLy8gY2FsbCBgc2FmZUF0dHJWYWx1ZSgpYFxuICAgICAgICAgICAgdmFsdWUgPSBzYWZlQXR0clZhbHVlKHRhZywgbmFtZSwgdmFsdWUsIGNzc0ZpbHRlcik7XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAnPScgKyBhdHRyaWJ1dGVXcmFwU2lnbiArIHZhbHVlICsgYXR0cmlidXRlV3JhcFNpZ247XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gY2FsbCBgb25JZ25vcmVUYWdBdHRyKClgXG4gICAgICAgICAgICByZXQgPSBvbklnbm9yZVRhZ0F0dHIodGFnLCBuYW1lLCB2YWx1ZSwgaXNXaGl0ZUF0dHIpO1xuICAgICAgICAgICAgaWYgKCFpc051bGwocmV0KSkgcmV0dXJuIHJldDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGJ1aWxkIG5ldyB0YWcgaHRtbFxuICAgICAgICBodG1sID0gXCI8XCIgKyB0YWc7XG4gICAgICAgIGlmIChhdHRyc0h0bWwpIGh0bWwgKz0gXCIgXCIgKyBhdHRyc0h0bWw7XG4gICAgICAgIGlmIChhdHRycy5jbG9zaW5nKSBodG1sICs9IFwiIC9cIjtcbiAgICAgICAgaHRtbCArPSBcIj5cIjtcbiAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjYWxsIGBvbklnbm9yZVRhZygpYFxuICAgICAgICByZXQgPSBvbklnbm9yZVRhZyh0YWcsIGh0bWwsIGluZm8pO1xuICAgICAgICBpZiAoIWlzTnVsbChyZXQpKSByZXR1cm4gcmV0O1xuICAgICAgICByZXR1cm4gZXNjYXBlSHRtbChodG1sKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGVzY2FwZUh0bWxcbiAgKTtcblxuICAvLyBpZiBlbmFibGUgc3RyaXBJZ25vcmVUYWdCb2R5XG4gIGlmIChzdHJpcElnbm9yZVRhZ0JvZHkpIHtcbiAgICByZXRIdG1sID0gc3RyaXBJZ25vcmVUYWdCb2R5LnJlbW92ZShyZXRIdG1sKTtcbiAgfVxuXG4gIHJldHVybiByZXRIdG1sO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBGaWx0ZXJYU1M7XG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwibGV0IHhzcyA9IHJlcXVpcmUoXCJ4c3NcIik7XG52YXIgc2J5X2pzX2V4aXN0cyA9ICh0eXBlb2Ygc2J5X2pzX2V4aXN0cyAhPT0gJ3VuZGVmaW5lZCcpID8gdHJ1ZSA6IGZhbHNlO1xuaWYoIXNieV9qc19leGlzdHMpIHtcblxuICAgIC8qKlxuICAgICAqIFNhbml0aXplIHN0cmluZyBieSBlc2NhcGluZyBIVE1MIGVudGl0aWVzXG4gICAgICogQHBhcmFtIGlucHV0XG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzYnlFbmNvZGVJbnB1dChpbnB1dCkgIHtcbiAgICAgICAgcmV0dXJuIHhzcyhpbnB1dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2J5QWRkSW1nTGlxdWlkKCkge1xuICAgICAgICAvKiEgaW1nTGlxdWlkIHYwLjkuOTQ0IC8gMDMtMDUtMjAxMyBodHRwczovL2dpdGh1Yi5jb20va2FyYWNhcy9pbWdMaXF1aWQgKi9cbiAgICAgICAgdmFyIHNieV9pbWdMaXF1aWQgPSBzYnlfaW1nTGlxdWlkIHx8IHtWRVI6IFwiMC45Ljk0NFwifTtcbiAgICAgICAgc2J5X2ltZ0xpcXVpZC5iZ3NfQXZhaWxhYmxlID0gITEsIHNieV9pbWdMaXF1aWQuYmdzX0NoZWNrUnVubmVkID0gITEsIGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICBmdW5jdGlvbiB0KCkge1xuICAgICAgICAgICAgICAgIGlmICghc2J5X2ltZ0xpcXVpZC5iZ3NfQ2hlY2tSdW5uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2J5X2ltZ0xpcXVpZC5iZ3NfQ2hlY2tSdW5uZWQgPSAhMDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBpKCc8c3BhbiBzdHlsZT1cImJhY2tncm91bmQtc2l6ZTpjb3ZlclwiIC8+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGkoXCJib2R5XCIpLmFwcGVuZCh0KSwgIWZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpID0gdFswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICYmIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShpLCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlICYmIGUuYmFja2dyb3VuZFNpemUgJiYgKHNieV9pbWdMaXF1aWQuYmdzX0F2YWlsYWJsZSA9IFwiY292ZXJcIiA9PT0gZS5iYWNrZ3JvdW5kU2l6ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSgpLCB0LnJlbW92ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpLmZuLmV4dGVuZCh7XG4gICAgICAgICAgICAgICAgc2J5X2ltZ0xpcXVpZDogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWxBbGlnbjogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvcml6b250YWxBbGlnbjogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZUJhY2tncm91bmRTaXplOiAhMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZURhdGFIdG1sQXR0cjogITAsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlOiAhMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFkZUluVGltZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUJveEJhY2tncm91bmQ6ICEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFyZFBpeGVsczogITAsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaXZlQ2hlY2tUaW1lOiA1MDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lY2hlY2t2aXNpYmlsaXR5OiA1MDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBvblN0YXJ0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5pc2g6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkl0ZW1TdGFydDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uSXRlbUZpbmlzaDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uSXRlbUVycm9yOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIH0sIHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zID0gZSwgdGhpcy5zZXR0aW5ncyA9IGkuZXh0ZW5kKHt9LCB0aGlzLmRlZmF1bHRzLCB0aGlzLm9wdGlvbnMpLCB0aGlzLnNldHRpbmdzLm9uU3RhcnQgJiYgdGhpcy5zZXR0aW5ncy5vblN0YXJ0KCksIHRoaXMuZWFjaChmdW5jdGlvbiAodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSA9PT0gdS5jc3MoXCJiYWNrZ3JvdW5kLWltYWdlXCIpLmluZGV4T2YoZW5jb2RlVVJJKGMuYXR0cihcInNyY1wiKSkpICYmIHUuY3NzKHtcImJhY2tncm91bmQtaW1hZ2VcIjogJ3VybChcIicgKyBlbmNvZGVVUkkoYy5hdHRyKFwic3JjXCIpKSArICdcIiknfSksIHUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kLXNpemVcIjogZy5maWxsID8gXCJjb3ZlclwiIDogXCJjb250YWluXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFja2dyb3VuZC1wb3NpdGlvblwiOiAoZy5ob3Jpem9udGFsQWxpZ24gKyBcIiBcIiArIGcudmVydGljYWxBbGlnbikudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kLXJlcGVhdFwiOiBcIm5vLXJlcGVhdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIGkoXCJhOmZpcnN0XCIsIHUpLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIGkoXCJpbWdcIiwgdSkuY3NzKHtkaXNwbGF5OiBcIm5vbmVcIn0pLCBnLm9uSXRlbUZpbmlzaCAmJiBnLm9uSXRlbUZpbmlzaCh0LCB1LCBjKSwgdS5hZGRDbGFzcyhcInNieV9pbWdMaXF1aWRfYmdTaXplXCIpLCB1LmFkZENsYXNzKFwic2J5X2ltZ0xpcXVpZF9yZWFkeVwiKSwgbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG8oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9lcnJvclwiKSB8fCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX2xvYWRlZFwiKSB8fCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX29sZFByb2Nlc3NlZFwiKSB8fCAodS5pcyhcIjp2aXNpYmxlXCIpICYmIGNbMF0uY29tcGxldGUgJiYgY1swXS53aWR0aCA+IDAgJiYgY1swXS5oZWlnaHQgPiAwID8gKGMuZGF0YShcInNieV9pbWdMaXF1aWRfbG9hZGVkXCIsICEwKSwgc2V0VGltZW91dChyLCB0ICogZy5kZWxheSkpIDogc2V0VGltZW91dChlLCBnLnRpbWVjaGVja3Zpc2liaWxpdHkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmRhdGEoXCJvbGRTcmNcIikgJiYgYy5kYXRhKFwib2xkU3JjXCIpICE9PSBjLmF0dHIoXCJzcmNcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBjLmNsb25lKCkucmVtb3ZlQXR0cihcInN0eWxlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS5kYXRhKFwic2J5X2ltZ0xpcXVpZF9zZXR0aW5nc1wiLCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX3NldHRpbmdzXCIpKSwgYy5wYXJlbnQoKS5wcmVwZW5kKGEpLCBjLnJlbW92ZSgpLCBjID0gYSwgY1swXS53aWR0aCA9IDAsIHZvaWQgc2V0VGltZW91dChvLCAxMClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGMuZGF0YShcInNieV9pbWdMaXF1aWRfb2xkUHJvY2Vzc2VkXCIpID8gdm9pZCByKCkgOiAoYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9vbGRQcm9jZXNzZWRcIiwgITEpLCBjLmRhdGEoXCJvbGRTcmNcIiwgYy5hdHRyKFwic3JjXCIpKSwgaShcImltZzpub3QoOmZpcnN0KVwiLCB1KS5jc3MoXCJkaXNwbGF5XCIsIFwibm9uZVwiKSwgdS5jc3Moe292ZXJmbG93OiBcImhpZGRlblwifSksIGMuZmFkZVRvKDAsIDApLnJlbW92ZUF0dHIoXCJ3aWR0aFwiKS5yZW1vdmVBdHRyKFwiaGVpZ2h0XCIpLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1heC13aWR0aFwiOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXgtaGVpZ2h0XCI6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBjLm9uKFwiZXJyb3JcIiwgbiksIGNbMF0ub25lcnJvciA9IG4sIGUoKSwgdm9pZCBkKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGQoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGcucmVzcG9uc2l2ZSB8fCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX29sZFByb2Nlc3NlZFwiKSkgJiYgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9zZXR0aW5nc1wiKSAmJiAoZyA9IGMuZGF0YShcInNieV9pbWdMaXF1aWRfc2V0dGluZ3NcIiksIHUuYWN0dWFsU2l6ZSA9IHUuZ2V0KDApLm9mZnNldFdpZHRoICsgdS5nZXQoMCkub2Zmc2V0SGVpZ2h0IC8gMWU0LCB1LnNpemVPbGQgJiYgdS5hY3R1YWxTaXplICE9PSB1LnNpemVPbGQgJiYgcigpLCB1LnNpemVPbGQgPSB1LmFjdHVhbFNpemUsIHNldFRpbWVvdXQoZCwgZy5yZXNwb25zaXZlQ2hlY2tUaW1lKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX2Vycm9yXCIsICEwKSwgdS5hZGRDbGFzcyhcInNieV9pbWdMaXF1aWRfZXJyb3JcIiksIGcub25JdGVtRXJyb3IgJiYgZy5vbkl0ZW1FcnJvcih0LCB1LCBjKSwgbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGkgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYS5zZXR0aW5ncy51c2VEYXRhSHRtbEF0dHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSB1LmF0dHIoXCJkYXRhLXNieV9pbWdMaXF1aWQtZmlsbFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlID0gdS5hdHRyKFwiZGF0YS1zYnlfaW1nTGlxdWlkLWhvcml6b250YWxBbGlnblwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvID0gdS5hdHRyKFwiZGF0YS1zYnlfaW1nTGlxdWlkLXZlcnRpY2FsQWxpZ25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcInRydWVcIiA9PT0gdCB8fCBcImZhbHNlXCIgPT09IHQpICYmIChpLmZpbGwgPSBCb29sZWFuKFwidHJ1ZVwiID09PSB0KSksIHZvaWQgMCA9PT0gZSB8fCBcImxlZnRcIiAhPT0gZSAmJiBcImNlbnRlclwiICE9PSBlICYmIFwicmlnaHRcIiAhPT0gZSAmJiAtMSA9PT0gZS5pbmRleE9mKFwiJVwiKSB8fCAoaS5ob3Jpem9udGFsQWxpZ24gPSBlKSwgdm9pZCAwID09PSBvIHx8IFwidG9wXCIgIT09IG8gJiYgXCJib3R0b21cIiAhPT0gbyAmJiBcImNlbnRlclwiICE9PSBvICYmIC0xID09PSBvLmluZGV4T2YoXCIlXCIpIHx8IChpLnZlcnRpY2FsQWxpZ24gPSBvKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2J5X2ltZ0xpcXVpZC5pc0lFICYmIGEuc2V0dGluZ3MuaWVGYWRlSW5EaXNhYmxlZCAmJiAoaS5mYWRlSW5UaW1lID0gMCksIGlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gcigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaSwgZSwgYSwgbywgZCwgbiwgcywgciwgbSA9IDAsIGggPSAwLCBmID0gdS53aWR0aCgpLCB2ID0gdS5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkIDAgPT09IGMuZGF0YShcIm93aWR0aFwiKSAmJiBjLmRhdGEoXCJvd2lkdGhcIiwgY1swXS53aWR0aCksIHZvaWQgMCA9PT0gYy5kYXRhKFwib2hlaWdodFwiKSAmJiBjLmRhdGEoXCJvaGVpZ2h0XCIsIGNbMF0uaGVpZ2h0KSwgZy5maWxsID09PSBmIC8gdiA+PSBjLmRhdGEoXCJvd2lkdGhcIikgLyBjLmRhdGEoXCJvaGVpZ2h0XCIpID8gKGkgPSBcIjEwMCVcIiwgZSA9IFwiYXV0b1wiLCBhID0gTWF0aC5mbG9vcihmKSwgbyA9IE1hdGguZmxvb3IoZiAqIChjLmRhdGEoXCJvaGVpZ2h0XCIpIC8gYy5kYXRhKFwib3dpZHRoXCIpKSkpIDogKGkgPSBcImF1dG9cIiwgZSA9IFwiMTAwJVwiLCBhID0gTWF0aC5mbG9vcih2ICogKGMuZGF0YShcIm93aWR0aFwiKSAvIGMuZGF0YShcIm9oZWlnaHRcIikpKSwgbyA9IE1hdGguZmxvb3IodikpLCBkID0gZy5ob3Jpem9udGFsQWxpZ24udG9Mb3dlckNhc2UoKSwgcyA9IGYgLSBhLCBcImxlZnRcIiA9PT0gZCAmJiAoaCA9IDApLCBcImNlbnRlclwiID09PSBkICYmIChoID0gLjUgKiBzKSwgXCJyaWdodFwiID09PSBkICYmIChoID0gcyksIC0xICE9PSBkLmluZGV4T2YoXCIlXCIpICYmIChkID0gcGFyc2VJbnQoZC5yZXBsYWNlKFwiJVwiLCBcIlwiKSwgMTApLCBkID4gMCAmJiAoaCA9IHMgKiBkICogLjAxKSksIG4gPSBnLnZlcnRpY2FsQWxpZ24udG9Mb3dlckNhc2UoKSwgciA9IHYgLSBvLCBcImxlZnRcIiA9PT0gbiAmJiAobSA9IDApLCBcImNlbnRlclwiID09PSBuICYmIChtID0gLjUgKiByKSwgXCJib3R0b21cIiA9PT0gbiAmJiAobSA9IHIpLCAtMSAhPT0gbi5pbmRleE9mKFwiJVwiKSAmJiAobiA9IHBhcnNlSW50KG4ucmVwbGFjZShcIiVcIiwgXCJcIiksIDEwKSwgbiA+IDAgJiYgKG0gPSByICogbiAqIC4wMSkpLCBnLmhhcmRQaXhlbHMgJiYgKGkgPSBhLCBlID0gbyksIGMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJtYXJnaW4tbGVmdFwiOiBNYXRoLmZsb29yKGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1hcmdpbi10b3BcIjogTWF0aC5mbG9vcihtKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX29sZFByb2Nlc3NlZFwiKSB8fCAoYy5mYWRlVG8oZy5mYWRlSW5UaW1lLCAxKSwgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9vbGRQcm9jZXNzZWRcIiwgITApLCBnLnJlbW92ZUJveEJhY2tncm91bmQgJiYgdS5jc3MoXCJiYWNrZ3JvdW5kLWltYWdlXCIsIFwibm9uZVwiKSwgdS5hZGRDbGFzcyhcInNieV9pbWdMaXF1aWRfbm9iZ1NpemVcIiksIHUuYWRkQ2xhc3MoXCJzYnlfaW1nTGlxdWlkX3JlYWR5XCIpKSwgZy5vbkl0ZW1GaW5pc2ggJiYgZy5vbkl0ZW1GaW5pc2godCwgdSwgYyksIGwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgPT09IGEubGVuZ3RoIC0gMSAmJiBhLnNldHRpbmdzLm9uRmluaXNoICYmIGEuc2V0dGluZ3Mub25GaW5pc2goKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZyA9IGEuc2V0dGluZ3MsIHUgPSBpKHRoaXMpLCBjID0gaShcImltZzpmaXJzdFwiLCB1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjLmxlbmd0aCA/IChjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX3NldHRpbmdzXCIpID8gKHUucmVtb3ZlQ2xhc3MoXCJzYnlfaW1nTGlxdWlkX2Vycm9yXCIpLnJlbW92ZUNsYXNzKFwic2J5X2ltZ0xpcXVpZF9yZWFkeVwiKSwgZyA9IGkuZXh0ZW5kKHt9LCBjLmRhdGEoXCJzYnlfaW1nTGlxdWlkX3NldHRpbmdzXCIpLCBhLm9wdGlvbnMpKSA6IGcgPSBpLmV4dGVuZCh7fSwgYS5zZXR0aW5ncywgcygpKSwgYy5kYXRhKFwic2J5X2ltZ0xpcXVpZF9zZXR0aW5nc1wiLCBnKSwgZy5vbkl0ZW1TdGFydCAmJiBnLm9uSXRlbVN0YXJ0KHQsIHUsIGMpLCB2b2lkIChzYnlfaW1nTGlxdWlkLmJnc19BdmFpbGFibGUgJiYgZy51c2VCYWNrZ3JvdW5kU2l6ZSA/IGUoKSA6IG8oKSkpIDogdm9pZCBuKClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KGpRdWVyeSk7XG5cbiAgICAgICAgLy8gVXNlIGltYWdlZmlsbCB0byBzZXQgdGhlIGltYWdlcyBhcyBiYWNrZ3JvdW5kcyBzbyB0aGV5IGNhbiBiZSBzcXVhcmVcbiAgICAgICAgIWZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBjc3MgPSBzYnlfaW1nTGlxdWlkLmluamVjdENzcyxcbiAgICAgICAgICAgICAgaGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0sXG4gICAgICAgICAgICAgIHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICAgICAgaWYgKHN0eWxlLnN0eWxlU2hlZXQpIHtcbiAgICAgICAgICAgICAgICBzdHlsZS5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgICAgIH0oKTtcbiAgICB9XG5cbiAgICAvKiBKYXZhU2NyaXB0IExpbmtpZnkgLSB2MC4zIC0gNi8yNy8yMDA5IC0gaHR0cDovL2JlbmFsbWFuLmNvbS9wcm9qZWN0cy9qYXZhc2NyaXB0LWxpbmtpZnkvICovXG4gICAgd2luZG93LnNieUxpbmtpZnkgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgayA9IFwiW2EtelxcXFxkLi1dKzovL1wiLFxuICAgICAgICAgIGggPSBcIig/Oig/OlswLTldfFsxLTldXFxcXGR8MVxcXFxkezJ9fDJbMC00XVxcXFxkfDI1WzAtNV0pXFxcXC4pezN9KD86WzAtOV18WzEtOV1cXFxcZHwxXFxcXGR7Mn18MlswLTRdXFxcXGR8MjVbMC01XSlcIixcbiAgICAgICAgICBjID0gXCIoPzooPzpbXlxcXFxzIUAjJCVeJiooKV89K1tcXFxcXXt9XFxcXFxcXFx8OzonXFxcIiwuPD4vP10rKVxcXFwuKStcIixcbiAgICAgICAgICBuID0gXCIoPzphY3xhZHxhZXJvfGFlfGFmfGFnfGFpfGFsfGFtfGFufGFvfGFxfGFycGF8YXJ8YXNpYXxhc3xhdHxhdXxhd3xheHxhenxiYXxiYnxiZHxiZXxiZnxiZ3xiaHxiaXp8Yml8Ymp8Ym18Ym58Ym98YnJ8YnN8YnR8YnZ8Ynd8Ynl8Ynp8Y2F0fGNhfGNjfGNkfGNmfGNnfGNofGNpfGNrfGNsfGNtfGNufGNvb3B8Y29tfGNvfGNyfGN1fGN2fGN4fGN5fGN6fGRlfGRqfGRrfGRtfGRvfGR6fGVjfGVkdXxlZXxlZ3xlcnxlc3xldHxldXxmaXxmanxma3xmbXxmb3xmcnxnYXxnYnxnZHxnZXxnZnxnZ3xnaHxnaXxnbHxnbXxnbnxnb3Z8Z3B8Z3F8Z3J8Z3N8Z3R8Z3V8Z3d8Z3l8aGt8aG18aG58aHJ8aHR8aHV8aWR8aWV8aWx8aW18aW5mb3xpbnR8aW58aW98aXF8aXJ8aXN8aXR8amV8am18am9ic3xqb3xqcHxrZXxrZ3xraHxraXxrbXxrbnxrcHxrcnxrd3xreXxrenxsYXxsYnxsY3xsaXxsa3xscnxsc3xsdHxsdXxsdnxseXxtYXxtY3xtZHxtZXxtZ3xtaHxtaWx8bWt8bWx8bW18bW58bW9iaXxtb3xtcHxtcXxtcnxtc3xtdHxtdXNldW18bXV8bXZ8bXd8bXh8bXl8bXp8bmFtZXxuYXxuY3xuZXR8bmV8bmZ8bmd8bml8bmx8bm98bnB8bnJ8bnV8bnp8b218b3JnfHBhfHBlfHBmfHBnfHBofHBrfHBsfHBtfHBufHByb3xwcnxwc3xwdHxwd3xweXxxYXxyZXxyb3xyc3xydXxyd3xzYXxzYnxzY3xzZHxzZXxzZ3xzaHxzaXxzanxza3xzbHxzbXxzbnxzb3xzcnxzdHxzdXxzdnxzeXxzenx0Y3x0ZHx0ZWx8dGZ8dGd8dGh8dGp8dGt8dGx8dG18dG58dG98dHB8dHJhdmVsfHRyfHR0fHR2fHR3fHR6fHVhfHVnfHVrfHVtfHVzfHV5fHV6fHZhfHZjfHZlfHZnfHZpfHZufHZ1fHdmfHdzfHhuLS0wendtNTZkfHhuLS0xMWI1YnMzYTlhajZnfHhuLS04MGFraGJ5a25qNGZ8eG4tLTl0NGIxMXlpNWF8eG4tLWRlYmEwYWR8eG4tLWc2dzI1MWR8eG4tLWhnYms2YWo3ZjUzYmJhfHhuLS1obGNqNmF5YTllc2M3YXx4bi0tanhhbHBkbHB8eG4tLWtnYmVjaHR2fHhuLS16Y2t6YWh8eWV8eXR8eXV8emF8em18encpXCIsXG4gICAgICAgICAgZiA9IFwiKD86XCIgKyBjICsgbiArIFwifFwiICsgaCArIFwiKVwiLCBvID0gXCIoPzpbOy9dW14jPzw+XFxcXHNdKik/XCIsIGUgPSBcIig/OlxcXFw/W14jPD5cXFxcc10qKT8oPzojW148PlxcXFxzXSopP1wiLFxuICAgICAgICAgIGQgPSBcIlxcXFxiXCIgKyBrICsgXCJbXjw+XFxcXHNdK1wiLCBhID0gXCJcXFxcYlwiICsgZiArIG8gKyBlICsgXCIoPyFcXFxcdylcIiwgbSA9IFwibWFpbHRvOlwiLFxuICAgICAgICAgIGogPSBcIig/OlwiICsgbSArIFwiKT9bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFxcXC5bYS16MC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAXCIgKyBmICsgZSArIFwiKD8hXFxcXHcpXCIsXG4gICAgICAgICAgbCA9IG5ldyBSZWdFeHAoXCIoPzpcIiArIGQgKyBcInxcIiArIGEgKyBcInxcIiArIGogKyBcIilcIiwgXCJpZ1wiKSwgZyA9IG5ldyBSZWdFeHAoXCJeXCIgKyBrLCBcImlcIiksXG4gICAgICAgICAgYiA9IHtcIidcIjogXCJgXCIsIFwiPlwiOiBcIjxcIiwgXCIpXCI6IFwiKFwiLCBcIl1cIjogXCJbXCIsIFwifVwiOiBcIntcIiwgXCJCO1wiOiBcIkIrXCIsIFwiYjpcIjogXCJiOVwifSwgaSA9IHtcbiAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uIChxLCBwKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcCA/ICc8YSBocmVmPVwiJyArIHAgKyAnXCIgdGl0bGU9XCInICsgcCArICdcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiPicgKyBxICsgXCI8L2E+XCIgOiBxXG4gICAgICAgICAgICAgIH0sIHB1bmN0X3JlZ2V4cDogLyg/OlshPy4sOjsnXCJdfCg/OiZ8JmFtcDspKD86bHR8Z3R8cXVvdHxhcG9zfHJhcXVvfGxhcXVvfHJzYXF1b3xsc2FxdW8pOykkL1xuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodSwgeikge1xuICAgICAgICAgICAgeiA9IHogfHwge307XG4gICAgICAgICAgICB2YXIgdywgdiwgQSwgcCwgeCA9IFwiXCIsIHQgPSBbXSwgcywgRSwgQywgeSwgcSwgRCwgQiwgcjtcbiAgICAgICAgICAgIGZvciAodiBpbiBpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHpbdl0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB6W3ZdID0gaVt2XVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlICh3ID0gbC5leGVjKHUpKSB7XG4gICAgICAgICAgICAgICAgQSA9IHdbMF07XG4gICAgICAgICAgICAgICAgRSA9IGwubGFzdEluZGV4O1xuICAgICAgICAgICAgICAgIEMgPSBFIC0gQS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaWYgKC9bXFwvOl0vLnRlc3QodS5jaGFyQXQoQyAtIDEpKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBBO1xuICAgICAgICAgICAgICAgICAgICByID0gQS5zdWJzdHIoLTEpO1xuICAgICAgICAgICAgICAgICAgICBCID0gYltyXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHEgPSBBLm1hdGNoKG5ldyBSZWdFeHAoXCJcXFxcXCIgKyBCICsgXCIoPyEkKVwiLCBcImdcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgRCA9IEEubWF0Y2gobmV3IFJlZ0V4cChcIlxcXFxcIiArIHIsIFwiZ1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHEgPyBxLmxlbmd0aCA6IDApIDwgKEQgPyBELmxlbmd0aCA6IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQSA9IEEuc3Vic3RyKDAsIEEubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRS0tXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHoucHVuY3RfcmVnZXhwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBBID0gQS5yZXBsYWNlKHoucHVuY3RfcmVnZXhwLCBmdW5jdGlvbiAoRikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEUgLT0gRi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IHdoaWxlIChBLmxlbmd0aCAmJiBBICE9PSB5KTtcbiAgICAgICAgICAgICAgICBwID0gQTtcbiAgICAgICAgICAgICAgICBpZiAoIWcudGVzdChwKSkge1xuICAgICAgICAgICAgICAgICAgICBwID0gKHAuaW5kZXhPZihcIkBcIikgIT09IC0xID8gKCFwLmluZGV4T2YobSkgPyBcIlwiIDogbSkgOiAhcC5pbmRleE9mKFwiaXJjLlwiKSA/IFwiaXJjOi8vXCIgOiAhcC5pbmRleE9mKFwiZnRwLlwiKSA/IFwiZnRwOi8vXCIgOiBcImh0dHA6Ly9cIikgKyBwXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChzICE9IEMpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5wdXNoKFt1LnNsaWNlKHMsIEMpXSk7XG4gICAgICAgICAgICAgICAgICAgIHMgPSBFXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHQucHVzaChbQSwgcF0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0LnB1c2goW3Uuc3Vic3RyKHMpXSk7XG4gICAgICAgICAgICBmb3IgKHYgPSAwOyB2IDwgdC5sZW5ndGg7IHYrKykge1xuICAgICAgICAgICAgICAgIHggKz0gei5jYWxsYmFjay5hcHBseSh3aW5kb3csIHRbdl0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4geCB8fCB1XG4gICAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgLy9DaGVja3Mgd2hldGhlciBicm93c2VyIHN1cHBvcnQgSFRNTDUgdmlkZW8gZWxlbWVudFxuICAgIGZ1bmN0aW9uIHNieV9zdXBwb3J0c192aWRlbygpIHtcbiAgICAgICAgcmV0dXJuICEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKS5jYW5QbGF5VHlwZTtcbiAgICB9XG5cbiAgICAvLyBDYXJvdXNlbFxuICAgICFmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICBmdW5jdGlvbiBlKGIsIGMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MgPSBudWxsLCB0aGlzLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgYyksIHRoaXMuJGVsZW1lbnQgPSBhKGIpLCB0aGlzLl9oYW5kbGVycyA9IHt9LCB0aGlzLl9wbHVnaW5zID0ge30sIHRoaXMuX3N1cHJlc3MgPSB7fSwgdGhpcy5fY3VycmVudCA9IG51bGwsIHRoaXMuX3NwZWVkID0gbnVsbCwgdGhpcy5fY29vcmRpbmF0ZXMgPSBbXSwgdGhpcy5fYnJlYWtwb2ludCA9IG51bGwsIHRoaXMuX3dpZHRoID0gbnVsbCwgdGhpcy5faXRlbXMgPSBbXSwgdGhpcy5fY2xvbmVzID0gW10sIHRoaXMuX21lcmdlcnMgPSBbXSwgdGhpcy5fd2lkdGhzID0gW10sIHRoaXMuX2ludmFsaWRhdGVkID0ge30sIHRoaXMuX3BpcGUgPSBbXSwgdGhpcy5fZHJhZyA9IHtcbiAgICAgICAgICAgICAgICB0aW1lOiBudWxsLFxuICAgICAgICAgICAgICAgIHRhcmdldDogbnVsbCxcbiAgICAgICAgICAgICAgICBwb2ludGVyOiBudWxsLFxuICAgICAgICAgICAgICAgIHN0YWdlOiB7c3RhcnQ6IG51bGwsIGN1cnJlbnQ6IG51bGx9LFxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogbnVsbFxuICAgICAgICAgICAgfSwgdGhpcy5fc3RhdGVzID0ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHt9LFxuICAgICAgICAgICAgICAgIHRhZ3M6IHtpbml0aWFsaXppbmc6IFtcImJ1c3lcIl0sIGFuaW1hdGluZzogW1wiYnVzeVwiXSwgZHJhZ2dpbmc6IFtcImludGVyYWN0aW5nXCJdfVxuICAgICAgICAgICAgfSwgYS5lYWNoKFtcIm9uUmVzaXplXCIsIFwib25UaHJvdHRsZWRSZXNpemVcIl0sIGEucHJveHkoZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVyc1tjXSA9IGEucHJveHkodGhpc1tjXSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgYS5lYWNoKGUuUGx1Z2lucywgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BsdWdpbnNbYS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIGEuc2xpY2UoMSldID0gbmV3IGIodGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgYS5lYWNoKGUuV29ya2VycywgYS5wcm94eShmdW5jdGlvbiAoYiwgYykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3BpcGUucHVzaCh7ZmlsdGVyOiBjLmZpbHRlciwgcnVuOiBhLnByb3h5KGMucnVuLCB0aGlzKX0pXG4gICAgICAgICAgICB9LCB0aGlzKSksIHRoaXMuc2V0dXAoKSwgdGhpcy5pbml0aWFsaXplKClcbiAgICAgICAgfVxuXG4gICAgICAgIGUuRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICBpdGVtczogMyxcbiAgICAgICAgICAgIGxvb3A6ICExLFxuICAgICAgICAgICAgY2VudGVyOiAhMSxcbiAgICAgICAgICAgIHJld2luZDogITEsXG4gICAgICAgICAgICBtb3VzZURyYWc6ICEwLFxuICAgICAgICAgICAgdG91Y2hEcmFnOiAhMCxcbiAgICAgICAgICAgIHB1bGxEcmFnOiAhMCxcbiAgICAgICAgICAgIGZyZWVEcmFnOiAhMSxcbiAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgIHN0YWdlUGFkZGluZzogMCxcbiAgICAgICAgICAgIG1lcmdlOiAhMSxcbiAgICAgICAgICAgIG1lcmdlRml0OiAhMCxcbiAgICAgICAgICAgIGF1dG9XaWR0aDogITEsXG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uOiAwLFxuICAgICAgICAgICAgcnRsOiAhMSxcbiAgICAgICAgICAgIHNtYXJ0U3BlZWQ6IDI1MCxcbiAgICAgICAgICAgIGZsdWlkU3BlZWQ6ICExLFxuICAgICAgICAgICAgZHJhZ0VuZFNwZWVkOiAhMSxcbiAgICAgICAgICAgIHJlc3BvbnNpdmU6IHt9LFxuICAgICAgICAgICAgcmVzcG9uc2l2ZVJlZnJlc2hSYXRlOiAyMDAsXG4gICAgICAgICAgICByZXNwb25zaXZlQmFzZUVsZW1lbnQ6IGIsXG4gICAgICAgICAgICBmYWxsYmFja0Vhc2luZzogXCJzd2luZ1wiLFxuICAgICAgICAgICAgaW5mbzogITEsXG4gICAgICAgICAgICBuZXN0ZWRJdGVtU2VsZWN0b3I6ICExLFxuICAgICAgICAgICAgaXRlbUVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgICAgICAgICBzdGFnZUVsZW1lbnQ6IFwiZGl2XCIsXG4gICAgICAgICAgICByZWZyZXNoQ2xhc3M6IFwic2J5LW93bC1yZWZyZXNoXCIsXG4gICAgICAgICAgICBsb2FkZWRDbGFzczogXCJzYnktb3dsLWxvYWRlZFwiLFxuICAgICAgICAgICAgbG9hZGluZ0NsYXNzOiBcInNieS1vd2wtbG9hZGluZ1wiLFxuICAgICAgICAgICAgcnRsQ2xhc3M6IFwic2J5LW93bC1ydGxcIixcbiAgICAgICAgICAgIHJlc3BvbnNpdmVDbGFzczogXCJzYnktb3dsLXJlc3BvbnNpdmVcIixcbiAgICAgICAgICAgIGRyYWdDbGFzczogXCJzYnktb3dsLWRyYWdcIixcbiAgICAgICAgICAgIGl0ZW1DbGFzczogXCJzYnktb3dsLWl0ZW1cIixcbiAgICAgICAgICAgIHN0YWdlQ2xhc3M6IFwic2J5LW93bC1zdGFnZVwiLFxuICAgICAgICAgICAgc3RhZ2VPdXRlckNsYXNzOiBcInNieS1vd2wtc3RhZ2Utb3V0ZXJcIixcbiAgICAgICAgICAgIGdyYWJDbGFzczogXCJzYnktb3dsLWdyYWJcIlxuICAgICAgICB9LCBlLldpZHRoID0ge0RlZmF1bHQ6IFwiZGVmYXVsdFwiLCBJbm5lcjogXCJpbm5lclwiLCBPdXRlcjogXCJvdXRlclwifSwgZS5UeXBlID0ge1xuICAgICAgICAgICAgRXZlbnQ6IFwiZXZlbnRcIixcbiAgICAgICAgICAgIFN0YXRlOiBcInN0YXRlXCJcbiAgICAgICAgfSwgZS5QbHVnaW5zID0ge30sIGUuV29ya2VycyA9IFt7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwic2V0dGluZ3NcIl0sIHJ1bjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy4kZWxlbWVudC53aWR0aCgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGZpbHRlcjogW1wid2lkdGhcIiwgXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgYS5jdXJyZW50ID0gdGhpcy5faXRlbXMgJiYgdGhpcy5faXRlbXNbdGhpcy5yZWxhdGl2ZSh0aGlzLl9jdXJyZW50KV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRzdGFnZS5jaGlsZHJlbihcIi5jbG9uZWRcIikucmVtb3ZlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJ3aWR0aFwiLCBcIml0ZW1zXCIsIFwic2V0dGluZ3NcIl0sIHJ1bjogZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICB2YXIgYiA9IHRoaXMuc2V0dGluZ3MubWFyZ2luIHx8IFwiXCIsIGMgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsIGQgPSB0aGlzLnNldHRpbmdzLnJ0bCxcbiAgICAgICAgICAgICAgICAgIGUgPSB7d2lkdGg6IFwiYXV0b1wiLCBcIm1hcmdpbi1sZWZ0XCI6IGQgPyBiIDogXCJcIiwgXCJtYXJnaW4tcmlnaHRcIjogZCA/IFwiXCIgOiBifTtcbiAgICAgICAgICAgICAgICAhYyAmJiB0aGlzLiRzdGFnZS5jaGlsZHJlbigpLmNzcyhlKSwgYS5jc3MgPSBlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGZpbHRlcjogW1wid2lkdGhcIiwgXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGIgPSAodGhpcy53aWR0aCgpIC8gdGhpcy5zZXR0aW5ncy5pdGVtcykudG9GaXhlZCgzKSAtIHRoaXMuc2V0dGluZ3MubWFyZ2luLCBjID0gbnVsbCxcbiAgICAgICAgICAgICAgICAgIGQgPSB0aGlzLl9pdGVtcy5sZW5ndGgsIGUgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsIGYgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGEuaXRlbXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIG1lcmdlOiAhMSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGJcbiAgICAgICAgICAgICAgICB9OyBkLS07KSBjID0gdGhpcy5fbWVyZ2Vyc1tkXSwgYyA9IHRoaXMuc2V0dGluZ3MubWVyZ2VGaXQgJiYgTWF0aC5taW4oYywgdGhpcy5zZXR0aW5ncy5pdGVtcykgfHwgYywgYS5pdGVtcy5tZXJnZSA9IGMgPiAxIHx8IGEuaXRlbXMubWVyZ2UsIGZbZF0gPSBlID8gYiAqIGMgOiB0aGlzLl9pdGVtc1tkXS53aWR0aCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3dpZHRocyA9IGZcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgYiA9IFtdLCBjID0gdGhpcy5faXRlbXMsIGQgPSB0aGlzLnNldHRpbmdzLCBlID0gTWF0aC5tYXgoMiAqIGQuaXRlbXMsIDQpLFxuICAgICAgICAgICAgICAgICAgZiA9IDIgKiBNYXRoLmNlaWwoYy5sZW5ndGggLyAyKSwgZyA9IGQubG9vcCAmJiBjLmxlbmd0aCA/IGQucmV3aW5kID8gZSA6IE1hdGgubWF4KGUsIGYpIDogMCwgaCA9IFwiXCIsXG4gICAgICAgICAgICAgICAgICBpID0gXCJcIjtcbiAgICAgICAgICAgICAgICBmb3IgKGcgLz0gMjsgZy0tOykgYi5wdXNoKHRoaXMubm9ybWFsaXplKGIubGVuZ3RoIC8gMiwgITApKSwgaCArPSBjW2JbYi5sZW5ndGggLSAxXV1bMF0ub3V0ZXJIVE1MLCBiLnB1c2godGhpcy5ub3JtYWxpemUoYy5sZW5ndGggLSAxIC0gKGIubGVuZ3RoIC0gMSkgLyAyLCAhMCkpLCBpID0gY1tiW2IubGVuZ3RoIC0gMV1dWzBdLm91dGVySFRNTCArIGk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2xvbmVzID0gYiwgYShoKS5hZGRDbGFzcyhcImNsb25lZFwiKS5hcHBlbmRUbyh0aGlzLiRzdGFnZSksIGEoaSkuYWRkQ2xhc3MoXCJjbG9uZWRcIikucHJlcGVuZFRvKHRoaXMuJHN0YWdlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgYSA9IHRoaXMuc2V0dGluZ3MucnRsID8gMSA6IC0xLCBiID0gdGhpcy5fY2xvbmVzLmxlbmd0aCArIHRoaXMuX2l0ZW1zLmxlbmd0aCwgYyA9IC0xLCBkID0gMCwgZSA9IDAsIGYgPSBbXTsgKytjIDwgYjspIGQgPSBmW2MgLSAxXSB8fCAwLCBlID0gdGhpcy5fd2lkdGhzW3RoaXMucmVsYXRpdmUoYyldICsgdGhpcy5zZXR0aW5ncy5tYXJnaW4sIGYucHVzaChkICsgZSAqIGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2Nvb3JkaW5hdGVzID0gZlxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZywgYiA9IHRoaXMuX2Nvb3JkaW5hdGVzLCBjID0ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogTWF0aC5jZWlsKE1hdGguYWJzKGJbYi5sZW5ndGggLSAxXSkpICsgMiAqIGEsXG4gICAgICAgICAgICAgICAgICAgIFwicGFkZGluZy1sZWZ0XCI6IGEgfHwgXCJcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwYWRkaW5nLXJpZ2h0XCI6IGEgfHwgXCJcIlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy4kc3RhZ2UuY3NzKGMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGZpbHRlcjogW1wid2lkdGhcIiwgXCJpdGVtc1wiLCBcInNldHRpbmdzXCJdLCBydW46IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGgsIGMgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsIGQgPSB0aGlzLiRzdGFnZS5jaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgIGlmIChjICYmIGEuaXRlbXMubWVyZ2UpIGZvciAoOyBiLS07KSBhLmNzcy53aWR0aCA9IHRoaXMuX3dpZHRoc1t0aGlzLnJlbGF0aXZlKGIpXSwgZC5lcShiKS5jc3MoYS5jc3MpOyBlbHNlIGMgJiYgKGEuY3NzLndpZHRoID0gYS5pdGVtcy53aWR0aCwgZC5jc3MoYS5jc3MpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIml0ZW1zXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGggPCAxICYmIHRoaXMuJHN0YWdlLnJlbW92ZUF0dHIoXCJzdHlsZVwiKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcIndpZHRoXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIGEuY3VycmVudCA9IGEuY3VycmVudCA/IHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuaW5kZXgoYS5jdXJyZW50KSA6IDAsIGEuY3VycmVudCA9IE1hdGgubWF4KHRoaXMubWluaW11bSgpLCBNYXRoLm1pbih0aGlzLm1heGltdW0oKSwgYS5jdXJyZW50KSksIHRoaXMucmVzZXQoYS5jdXJyZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBmaWx0ZXI6IFtcInBvc2l0aW9uXCJdLCBydW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGUodGhpcy5jb29yZGluYXRlcyh0aGlzLl9jdXJyZW50KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZmlsdGVyOiBbXCJ3aWR0aFwiLCBcInBvc2l0aW9uXCIsIFwiaXRlbXNcIiwgXCJzZXR0aW5nc1wiXSwgcnVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGEsIGIsIGMsIGQsIGUgPSB0aGlzLnNldHRpbmdzLnJ0bCA/IDEgOiAtMSwgZiA9IDIgKiB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZyxcbiAgICAgICAgICAgICAgICAgIGcgPSB0aGlzLmNvb3JkaW5hdGVzKHRoaXMuY3VycmVudCgpKSArIGYsIGggPSBnICsgdGhpcy53aWR0aCgpICogZSwgaSA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoYyA9IDAsIGQgPSB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGg7IGMgPCBkOyBjKyspIGEgPSB0aGlzLl9jb29yZGluYXRlc1tjIC0gMV0gfHwgMCwgYiA9IE1hdGguYWJzKHRoaXMuX2Nvb3JkaW5hdGVzW2NdKSArIGYgKiBlLCAodGhpcy5vcChhLCBcIjw9XCIsIGcpICYmIHRoaXMub3AoYSwgXCI+XCIsIGgpIHx8IHRoaXMub3AoYiwgXCI8XCIsIGcpICYmIHRoaXMub3AoYiwgXCI+XCIsIGgpKSAmJiBpLnB1c2goYyk7XG4gICAgICAgICAgICAgICAgdGhpcy4kc3RhZ2UuY2hpbGRyZW4oXCIuYWN0aXZlXCIpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpLCB0aGlzLiRzdGFnZS5jaGlsZHJlbihcIjplcShcIiArIGkuam9pbihcIiksIDplcShcIikgKyBcIilcIikuYWRkQ2xhc3MoXCJhY3RpdmVcIiksIHRoaXMuc2V0dGluZ3MuY2VudGVyICYmICh0aGlzLiRzdGFnZS5jaGlsZHJlbihcIi5jZW50ZXJcIikucmVtb3ZlQ2xhc3MoXCJjZW50ZXJcIiksIHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuZXEodGhpcy5jdXJyZW50KCkpLmFkZENsYXNzKFwiY2VudGVyXCIpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XSwgZS5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmVudGVyKFwiaW5pdGlhbGl6aW5nXCIpLCB0aGlzLnRyaWdnZXIoXCJpbml0aWFsaXplXCIpLCB0aGlzLiRlbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuc2V0dGluZ3MucnRsQ2xhc3MsIHRoaXMuc2V0dGluZ3MucnRsKSwgdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGggJiYgIXRoaXMuaXMoXCJwcmUtbG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIHZhciBiLCBjLCBlO1xuICAgICAgICAgICAgICAgIGIgPSB0aGlzLiRlbGVtZW50LmZpbmQoXCJpbWdcIiksIGMgPSB0aGlzLnNldHRpbmdzLm5lc3RlZEl0ZW1TZWxlY3RvciA/IFwiLlwiICsgdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IgOiBkLCBlID0gdGhpcy4kZWxlbWVudC5jaGlsZHJlbihjKS53aWR0aCgpLCBiLmxlbmd0aCAmJiBlIDw9IDAgJiYgdGhpcy5wcmVsb2FkQXV0b1dpZHRoSW1hZ2VzKGIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5sb2FkaW5nQ2xhc3MpLCB0aGlzLiRzdGFnZSA9IGEoXCI8XCIgKyB0aGlzLnNldHRpbmdzLnN0YWdlRWxlbWVudCArICcgY2xhc3M9XCInICsgdGhpcy5zZXR0aW5ncy5zdGFnZUNsYXNzICsgJ1wiLz4nKS53cmFwKCc8ZGl2IGNsYXNzPVwiJyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VPdXRlckNsYXNzICsgJ1wiLz4nKSwgdGhpcy4kZWxlbWVudC5hcHBlbmQodGhpcy4kc3RhZ2UucGFyZW50KCkpLCB0aGlzLnJlcGxhY2UodGhpcy4kZWxlbWVudC5jaGlsZHJlbigpLm5vdCh0aGlzLiRzdGFnZS5wYXJlbnQoKSkpLCB0aGlzLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgPyB0aGlzLnJlZnJlc2goKSA6IHRoaXMuaW52YWxpZGF0ZShcIndpZHRoXCIpLCB0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5sb2FkaW5nQ2xhc3MpLmFkZENsYXNzKHRoaXMub3B0aW9ucy5sb2FkZWRDbGFzcyksIHRoaXMucmVnaXN0ZXJFdmVudEhhbmRsZXJzKCksIHRoaXMubGVhdmUoXCJpbml0aWFsaXppbmdcIiksIHRoaXMudHJpZ2dlcihcImluaXRpYWxpemVkXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnNldHVwID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGIgPSB0aGlzLnZpZXdwb3J0KCksIGMgPSB0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZSwgZCA9IC0xLCBlID0gbnVsbDtcbiAgICAgICAgICAgIGMgPyAoYS5lYWNoKGMsIGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgYSA8PSBiICYmIGEgPiBkICYmIChkID0gTnVtYmVyKGEpKVxuICAgICAgICAgICAgfSksIGUgPSBhLmV4dGVuZCh7fSwgdGhpcy5vcHRpb25zLCBjW2RdKSwgXCJmdW5jdGlvblwiID09IHR5cGVvZiBlLnN0YWdlUGFkZGluZyAmJiAoZS5zdGFnZVBhZGRpbmcgPSBlLnN0YWdlUGFkZGluZygpKSwgZGVsZXRlIGUucmVzcG9uc2l2ZSwgZS5yZXNwb25zaXZlQ2xhc3MgJiYgdGhpcy4kZWxlbWVudC5hdHRyKFwiY2xhc3NcIiwgdGhpcy4kZWxlbWVudC5hdHRyKFwiY2xhc3NcIikucmVwbGFjZShuZXcgUmVnRXhwKFwiKFwiICsgdGhpcy5vcHRpb25zLnJlc3BvbnNpdmVDbGFzcyArIFwiLSlcXFxcUytcXFxcc1wiLCBcImdcIiksIFwiJDFcIiArIGQpKSkgOiBlID0gYS5leHRlbmQoe30sIHRoaXMub3B0aW9ucyksIHRoaXMudHJpZ2dlcihcImNoYW5nZVwiLCB7XG4gICAgICAgICAgICAgICAgcHJvcGVydHk6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzZXR0aW5nc1wiLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLCB0aGlzLl9icmVha3BvaW50ID0gZCwgdGhpcy5zZXR0aW5ncyA9IGUsIHRoaXMuaW52YWxpZGF0ZShcInNldHRpbmdzXCIpLCB0aGlzLnRyaWdnZXIoXCJjaGFuZ2VkXCIsIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eToge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInNldHRpbmdzXCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNldHRpbmdzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUub3B0aW9uc0xvZ2ljID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGggJiYgKHRoaXMuc2V0dGluZ3Muc3RhZ2VQYWRkaW5nID0gITEsIHRoaXMuc2V0dGluZ3MubWVyZ2UgPSAhMSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucHJlcGFyZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMudHJpZ2dlcihcInByZXBhcmVcIiwge2NvbnRlbnQ6IGJ9KTtcbiAgICAgICAgICAgIHJldHVybiBjLmRhdGEgfHwgKGMuZGF0YSA9IGEoXCI8XCIgKyB0aGlzLnNldHRpbmdzLml0ZW1FbGVtZW50ICsgXCIvPlwiKS5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuaXRlbUNsYXNzKS5hcHBlbmQoYikpLCB0aGlzLnRyaWdnZXIoXCJwcmVwYXJlZFwiLCB7Y29udGVudDogYy5kYXRhfSksIGMuZGF0YVxuICAgICAgICB9LCBlLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBiID0gMCwgYyA9IHRoaXMuX3BpcGUubGVuZ3RoLCBkID0gYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2FdXG4gICAgICAgICAgICB9LCB0aGlzLl9pbnZhbGlkYXRlZCksIGUgPSB7fTsgYiA8IGM7KSAodGhpcy5faW52YWxpZGF0ZWQuYWxsIHx8IGEuZ3JlcCh0aGlzLl9waXBlW2JdLmZpbHRlciwgZCkubGVuZ3RoID4gMCkgJiYgdGhpcy5fcGlwZVtiXS5ydW4oZSksIGIrKztcbiAgICAgICAgICAgIHRoaXMuX2ludmFsaWRhdGVkID0ge30sICF0aGlzLmlzKFwidmFsaWRcIikgJiYgdGhpcy5lbnRlcihcInZhbGlkXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLndpZHRoID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYSA9IGEgfHwgZS5XaWR0aC5EZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBlLldpZHRoLklubmVyOlxuICAgICAgICAgICAgICAgIGNhc2UgZS5XaWR0aC5PdXRlcjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93aWR0aCAtIDIgKiB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZyArIHRoaXMuc2V0dGluZ3MubWFyZ2luXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLmVudGVyKFwicmVmcmVzaGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwicmVmcmVzaFwiKSwgdGhpcy5zZXR1cCgpLCB0aGlzLm9wdGlvbnNMb2dpYygpLCB0aGlzLiRlbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpLCB0aGlzLnVwZGF0ZSgpLCB0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpLCB0aGlzLmxlYXZlKFwicmVmcmVzaGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwicmVmcmVzaGVkXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uVGhyb3R0bGVkUmVzaXplID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgYi5jbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lciksIHRoaXMucmVzaXplVGltZXIgPSBiLnNldFRpbWVvdXQodGhpcy5faGFuZGxlcnMub25SZXNpemUsIHRoaXMuc2V0dGluZ3MucmVzcG9uc2l2ZVJlZnJlc2hSYXRlKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5vblJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMuX2l0ZW1zLmxlbmd0aCAmJiAodGhpcy5fd2lkdGggIT09IHRoaXMuJGVsZW1lbnQud2lkdGgoKSAmJiAoISF0aGlzLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgJiYgKHRoaXMuZW50ZXIoXCJyZXNpemluZ1wiKSwgdGhpcy50cmlnZ2VyKFwicmVzaXplXCIpLmlzRGVmYXVsdFByZXZlbnRlZCgpID8gKHRoaXMubGVhdmUoXCJyZXNpemluZ1wiKSwgITEpIDogKHRoaXMuaW52YWxpZGF0ZShcIndpZHRoXCIpLCB0aGlzLnJlZnJlc2goKSwgdGhpcy5sZWF2ZShcInJlc2l6aW5nXCIpLCB2b2lkIHRoaXMudHJpZ2dlcihcInJlc2l6ZWRcIikpKSkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlZ2lzdGVyRXZlbnRIYW5kbGVycyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGEuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJHN0YWdlLm9uKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCArIFwiLm93bC5jb3JlXCIsIGEucHJveHkodGhpcy5vblRyYW5zaXRpb25FbmQsIHRoaXMpKSwgdGhpcy5zZXR0aW5ncy5yZXNwb25zaXZlICE9PSAhMSAmJiB0aGlzLm9uKGIsIFwicmVzaXplXCIsIHRoaXMuX2hhbmRsZXJzLm9uVGhyb3R0bGVkUmVzaXplKSwgdGhpcy5zZXR0aW5ncy5tb3VzZURyYWcgJiYgKHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmRyYWdDbGFzcyksIHRoaXMuJHN0YWdlLm9uKFwibW91c2Vkb3duLm93bC5jb3JlXCIsIGEucHJveHkodGhpcy5vbkRyYWdTdGFydCwgdGhpcykpLCB0aGlzLiRzdGFnZS5vbihcImRyYWdzdGFydC5vd2wuY29yZSBzZWxlY3RzdGFydC5vd2wuY29yZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICExXG4gICAgICAgICAgICB9KSksIHRoaXMuc2V0dGluZ3MudG91Y2hEcmFnICYmICh0aGlzLiRzdGFnZS5vbihcInRvdWNoc3RhcnQub3dsLmNvcmVcIiwgYS5wcm94eSh0aGlzLm9uRHJhZ1N0YXJ0LCB0aGlzKSksIHRoaXMuJHN0YWdlLm9uKFwidG91Y2hjYW5jZWwub3dsLmNvcmVcIiwgYS5wcm94eSh0aGlzLm9uRHJhZ0VuZCwgdGhpcykpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5vbkRyYWdTdGFydCA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgZCA9IG51bGw7XG4gICAgICAgICAgICAzICE9PSBiLndoaWNoICYmIChhLnN1cHBvcnQudHJhbnNmb3JtID8gKGQgPSB0aGlzLiRzdGFnZS5jc3MoXCJ0cmFuc2Zvcm1cIikucmVwbGFjZSgvLipcXCh8XFwpfCAvZywgXCJcIikuc3BsaXQoXCIsXCIpLCBkID0ge1xuICAgICAgICAgICAgICAgIHg6IGRbMTYgPT09IGQubGVuZ3RoID8gMTIgOiA0XSxcbiAgICAgICAgICAgICAgICB5OiBkWzE2ID09PSBkLmxlbmd0aCA/IDEzIDogNV1cbiAgICAgICAgICAgIH0pIDogKGQgPSB0aGlzLiRzdGFnZS5wb3NpdGlvbigpLCBkID0ge1xuICAgICAgICAgICAgICAgIHg6IHRoaXMuc2V0dGluZ3MucnRsID8gZC5sZWZ0ICsgdGhpcy4kc3RhZ2Uud2lkdGgoKSAtIHRoaXMud2lkdGgoKSArIHRoaXMuc2V0dGluZ3MubWFyZ2luIDogZC5sZWZ0LFxuICAgICAgICAgICAgICAgIHk6IGQudG9wXG4gICAgICAgICAgICB9KSwgdGhpcy5pcyhcImFuaW1hdGluZ1wiKSAmJiAoYS5zdXBwb3J0LnRyYW5zZm9ybSA/IHRoaXMuYW5pbWF0ZShkLngpIDogdGhpcy4kc3RhZ2Uuc3RvcCgpLCB0aGlzLmludmFsaWRhdGUoXCJwb3NpdGlvblwiKSksIHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3ModGhpcy5vcHRpb25zLmdyYWJDbGFzcywgXCJtb3VzZWRvd25cIiA9PT0gYi50eXBlKSwgdGhpcy5zcGVlZCgwKSwgdGhpcy5fZHJhZy50aW1lID0gKG5ldyBEYXRlKS5nZXRUaW1lKCksIHRoaXMuX2RyYWcudGFyZ2V0ID0gYShiLnRhcmdldCksIHRoaXMuX2RyYWcuc3RhZ2Uuc3RhcnQgPSBkLCB0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQgPSBkLCB0aGlzLl9kcmFnLnBvaW50ZXIgPSB0aGlzLnBvaW50ZXIoYiksIGEoYykub24oXCJtb3VzZXVwLm93bC5jb3JlIHRvdWNoZW5kLm93bC5jb3JlXCIsIGEucHJveHkodGhpcy5vbkRyYWdFbmQsIHRoaXMpKSwgYShjKS5vbmUoXCJtb3VzZW1vdmUub3dsLmNvcmUgdG91Y2htb3ZlLm93bC5jb3JlXCIsIGEucHJveHkoZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihiKSk7XG4gICAgICAgICAgICAgICAgYShjKS5vbihcIm1vdXNlbW92ZS5vd2wuY29yZSB0b3VjaG1vdmUub3dsLmNvcmVcIiwgYS5wcm94eSh0aGlzLm9uRHJhZ01vdmUsIHRoaXMpKSwgTWF0aC5hYnMoZC54KSA8IE1hdGguYWJzKGQueSkgJiYgdGhpcy5pcyhcInZhbGlkXCIpIHx8IChiLnByZXZlbnREZWZhdWx0KCksIHRoaXMuZW50ZXIoXCJkcmFnZ2luZ1wiKSwgdGhpcy50cmlnZ2VyKFwiZHJhZ1wiKSlcbiAgICAgICAgICAgIH0sIHRoaXMpKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUub25EcmFnTW92ZSA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bGwsIGMgPSBudWxsLCBkID0gbnVsbCwgZSA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihhKSksXG4gICAgICAgICAgICAgIGYgPSB0aGlzLmRpZmZlcmVuY2UodGhpcy5fZHJhZy5zdGFnZS5zdGFydCwgZSk7XG4gICAgICAgICAgICB0aGlzLmlzKFwiZHJhZ2dpbmdcIikgJiYgKGEucHJldmVudERlZmF1bHQoKSwgdGhpcy5zZXR0aW5ncy5sb29wID8gKGIgPSB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKSwgYyA9IHRoaXMuY29vcmRpbmF0ZXModGhpcy5tYXhpbXVtKCkgKyAxKSAtIGIsIGYueCA9ICgoZi54IC0gYikgJSBjICsgYykgJSBjICsgYikgOiAoYiA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1heGltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKSwgYyA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1pbmltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWF4aW11bSgpKSwgZCA9IHRoaXMuc2V0dGluZ3MucHVsbERyYWcgPyAtMSAqIGUueCAvIDUgOiAwLCBmLnggPSBNYXRoLm1heChNYXRoLm1pbihmLngsIGIgKyBkKSwgYyArIGQpKSwgdGhpcy5fZHJhZy5zdGFnZS5jdXJyZW50ID0gZiwgdGhpcy5hbmltYXRlKGYueCkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uRHJhZ0VuZCA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihiKSksIGUgPSB0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQsXG4gICAgICAgICAgICAgIGYgPSBkLnggPiAwIF4gdGhpcy5zZXR0aW5ncy5ydGwgPyBcImxlZnRcIiA6IFwicmlnaHRcIjtcbiAgICAgICAgICAgIGEoYykub2ZmKFwiLm93bC5jb3JlXCIpLCB0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5ncmFiQ2xhc3MpLCAoMCAhPT0gZC54ICYmIHRoaXMuaXMoXCJkcmFnZ2luZ1wiKSB8fCAhdGhpcy5pcyhcInZhbGlkXCIpKSAmJiAodGhpcy5zcGVlZCh0aGlzLnNldHRpbmdzLmRyYWdFbmRTcGVlZCB8fCB0aGlzLnNldHRpbmdzLnNtYXJ0U3BlZWQpLCB0aGlzLmN1cnJlbnQodGhpcy5jbG9zZXN0KGUueCwgMCAhPT0gZC54ID8gZiA6IHRoaXMuX2RyYWcuZGlyZWN0aW9uKSksIHRoaXMuaW52YWxpZGF0ZShcInBvc2l0aW9uXCIpLCB0aGlzLnVwZGF0ZSgpLCB0aGlzLl9kcmFnLmRpcmVjdGlvbiA9IGYsIChNYXRoLmFicyhkLngpID4gMyB8fCAobmV3IERhdGUpLmdldFRpbWUoKSAtIHRoaXMuX2RyYWcudGltZSA+IDMwMCkgJiYgdGhpcy5fZHJhZy50YXJnZXQub25lKFwiY2xpY2sub3dsLmNvcmVcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAhMVxuICAgICAgICAgICAgfSkpLCB0aGlzLmlzKFwiZHJhZ2dpbmdcIikgJiYgKHRoaXMubGVhdmUoXCJkcmFnZ2luZ1wiKSwgdGhpcy50cmlnZ2VyKFwiZHJhZ2dlZFwiKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuY2xvc2VzdCA9IGZ1bmN0aW9uIChiLCBjKSB7XG4gICAgICAgICAgICB2YXIgZCA9IC0xLCBlID0gMzAsIGYgPSB0aGlzLndpZHRoKCksIGcgPSB0aGlzLmNvb3JkaW5hdGVzKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5mcmVlRHJhZyB8fCBhLmVhY2goZywgYS5wcm94eShmdW5jdGlvbiAoYSwgaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcImxlZnRcIiA9PT0gYyAmJiBiID4gaCAtIGUgJiYgYiA8IGggKyBlID8gZCA9IGEgOiBcInJpZ2h0XCIgPT09IGMgJiYgYiA+IGggLSBmIC0gZSAmJiBiIDwgaCAtIGYgKyBlID8gZCA9IGEgKyAxIDogdGhpcy5vcChiLCBcIjxcIiwgaCkgJiYgdGhpcy5vcChiLCBcIj5cIiwgZ1thICsgMV0gfHwgaCAtIGYpICYmIChkID0gXCJsZWZ0XCIgPT09IGMgPyBhICsgMSA6IGEpLCBkID09PSAtMVxuICAgICAgICAgICAgfSwgdGhpcykpLCB0aGlzLnNldHRpbmdzLmxvb3AgfHwgKHRoaXMub3AoYiwgXCI+XCIsIGdbdGhpcy5taW5pbXVtKCldKSA/IGQgPSBiID0gdGhpcy5taW5pbXVtKCkgOiB0aGlzLm9wKGIsIFwiPFwiLCBnW3RoaXMubWF4aW11bSgpXSkgJiYgKGQgPSBiID0gdGhpcy5tYXhpbXVtKCkpKSwgZFxuICAgICAgICB9LCBlLnByb3RvdHlwZS5hbmltYXRlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjID0gdGhpcy5zcGVlZCgpID4gMDtcbiAgICAgICAgICAgIHRoaXMuaXMoXCJhbmltYXRpbmdcIikgJiYgdGhpcy5vblRyYW5zaXRpb25FbmQoKSwgYyAmJiAodGhpcy5lbnRlcihcImFuaW1hdGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwidHJhbnNsYXRlXCIpKSwgYS5zdXBwb3J0LnRyYW5zZm9ybTNkICYmIGEuc3VwcG9ydC50cmFuc2l0aW9uID8gdGhpcy4kc3RhZ2UuY3NzKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlM2QoXCIgKyBiICsgXCJweCwwcHgsMHB4KVwiLFxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRoaXMuc3BlZWQoKSAvIDFlMyArIFwic1wiXG4gICAgICAgICAgICB9KSA6IGMgPyB0aGlzLiRzdGFnZS5hbmltYXRlKHtsZWZ0OiBiICsgXCJweFwifSwgdGhpcy5zcGVlZCgpLCB0aGlzLnNldHRpbmdzLmZhbGxiYWNrRWFzaW5nLCBhLnByb3h5KHRoaXMub25UcmFuc2l0aW9uRW5kLCB0aGlzKSkgOiB0aGlzLiRzdGFnZS5jc3Moe2xlZnQ6IGIgKyBcInB4XCJ9KVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5pcyA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGVzLmN1cnJlbnRbYV0gJiYgdGhpcy5fc3RhdGVzLmN1cnJlbnRbYV0gPiAwXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmN1cnJlbnQgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgaWYgKGEgPT09IGQpIHJldHVybiB0aGlzLl9jdXJyZW50O1xuICAgICAgICAgICAgaWYgKDAgPT09IHRoaXMuX2l0ZW1zLmxlbmd0aCkgcmV0dXJuIGQ7XG4gICAgICAgICAgICBpZiAoYSA9IHRoaXMubm9ybWFsaXplKGEpLCB0aGlzLl9jdXJyZW50ICE9PSBhKSB7XG4gICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzLnRyaWdnZXIoXCJjaGFuZ2VcIiwge3Byb3BlcnR5OiB7bmFtZTogXCJwb3NpdGlvblwiLCB2YWx1ZTogYX19KTtcbiAgICAgICAgICAgICAgICBiLmRhdGEgIT09IGQgJiYgKGEgPSB0aGlzLm5vcm1hbGl6ZShiLmRhdGEpKSwgdGhpcy5fY3VycmVudCA9IGEsIHRoaXMuaW52YWxpZGF0ZShcInBvc2l0aW9uXCIpLCB0aGlzLnRyaWdnZXIoXCJjaGFuZ2VkXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwicG9zaXRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLl9jdXJyZW50XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuaW52YWxpZGF0ZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJzdHJpbmdcIiA9PT0gYS50eXBlKGIpICYmICh0aGlzLl9pbnZhbGlkYXRlZFtiXSA9ICEwLCB0aGlzLmlzKFwidmFsaWRcIikgJiYgdGhpcy5sZWF2ZShcInZhbGlkXCIpKSwgYS5tYXAodGhpcy5faW52YWxpZGF0ZWQsIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIGEgPSB0aGlzLm5vcm1hbGl6ZShhKSwgYSAhPT0gZCAmJiAodGhpcy5fc3BlZWQgPSAwLCB0aGlzLl9jdXJyZW50ID0gYSwgdGhpcy5zdXBwcmVzcyhbXCJ0cmFuc2xhdGVcIiwgXCJ0cmFuc2xhdGVkXCJdKSwgdGhpcy5hbmltYXRlKHRoaXMuY29vcmRpbmF0ZXMoYSkpLCB0aGlzLnJlbGVhc2UoW1widHJhbnNsYXRlXCIsIFwidHJhbnNsYXRlZFwiXSkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMuX2l0ZW1zLmxlbmd0aCwgZSA9IGIgPyAwIDogdGhpcy5fY2xvbmVzLmxlbmd0aDtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc051bWVyaWMoYSkgfHwgYyA8IDEgPyBhID0gZCA6IChhIDwgMCB8fCBhID49IGMgKyBlKSAmJiAoYSA9ICgoYSAtIGUgLyAyKSAlIGMgKyBjKSAlIGMgKyBlIC8gMiksIGFcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucmVsYXRpdmUgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgcmV0dXJuIGEgLT0gdGhpcy5fY2xvbmVzLmxlbmd0aCAvIDIsIHRoaXMubm9ybWFsaXplKGEsICEwKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5tYXhpbXVtID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIHZhciBiLCBjLCBkLCBlID0gdGhpcy5zZXR0aW5ncywgZiA9IHRoaXMuX2Nvb3JkaW5hdGVzLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChlLmxvb3ApIGYgPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMiArIHRoaXMuX2l0ZW1zLmxlbmd0aCAtIDE7IGVsc2UgaWYgKGUuYXV0b1dpZHRoIHx8IGUubWVyZ2UpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGIgPSB0aGlzLl9pdGVtcy5sZW5ndGgsIGMgPSB0aGlzLl9pdGVtc1stLWJdLndpZHRoKCksIGQgPSB0aGlzLiRlbGVtZW50LndpZHRoKCk7IGItLSAmJiAoYyArPSB0aGlzLl9pdGVtc1tiXS53aWR0aCgpICsgdGhpcy5zZXR0aW5ncy5tYXJnaW4sICEoYyA+IGQpKTspIDtcbiAgICAgICAgICAgICAgICBmID0gYiArIDFcbiAgICAgICAgICAgIH0gZWxzZSBmID0gZS5jZW50ZXIgPyB0aGlzLl9pdGVtcy5sZW5ndGggLSAxIDogdGhpcy5faXRlbXMubGVuZ3RoIC0gZS5pdGVtcztcbiAgICAgICAgICAgIHJldHVybiBhICYmIChmIC09IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyKSwgTWF0aC5tYXgoZiwgMClcbiAgICAgICAgfSwgZS5wcm90b3R5cGUubWluaW11bSA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICByZXR1cm4gYSA/IDAgOiB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMlxuICAgICAgICB9LCBlLnByb3RvdHlwZS5pdGVtcyA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICByZXR1cm4gYSA9PT0gZCA/IHRoaXMuX2l0ZW1zLnNsaWNlKCkgOiAoYSA9IHRoaXMubm9ybWFsaXplKGEsICEwKSwgdGhpcy5faXRlbXNbYV0pXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm1lcmdlcnMgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgcmV0dXJuIGEgPT09IGQgPyB0aGlzLl9tZXJnZXJzLnNsaWNlKCkgOiAoYSA9IHRoaXMubm9ybWFsaXplKGEsICEwKSwgdGhpcy5fbWVyZ2Vyc1thXSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuY2xvbmVzID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjID0gdGhpcy5fY2xvbmVzLmxlbmd0aCAvIDIsIGUgPSBjICsgdGhpcy5faXRlbXMubGVuZ3RoLCBmID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYSAlIDIgPT09IDAgPyBlICsgYSAvIDIgOiBjIC0gKGEgKyAxKSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYiA9PT0gZCA/IGEubWFwKHRoaXMuX2Nsb25lcywgZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZihiKVxuICAgICAgICAgICAgfSkgOiBhLm1hcCh0aGlzLl9jbG9uZXMsIGZ1bmN0aW9uIChhLCBjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEgPT09IGIgPyBmKGMpIDogbnVsbFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuc3BlZWQgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgcmV0dXJuIGEgIT09IGQgJiYgKHRoaXMuX3NwZWVkID0gYSksIHRoaXMuX3NwZWVkXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmNvb3JkaW5hdGVzID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjLCBlID0gMSwgZiA9IGIgLSAxO1xuICAgICAgICAgICAgcmV0dXJuIGIgPT09IGQgPyBhLm1hcCh0aGlzLl9jb29yZGluYXRlcywgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvb3JkaW5hdGVzKGIpXG4gICAgICAgICAgICB9LCB0aGlzKSkgOiAodGhpcy5zZXR0aW5ncy5jZW50ZXIgPyAodGhpcy5zZXR0aW5ncy5ydGwgJiYgKGUgPSAtMSwgZiA9IGIgKyAxKSwgYyA9IHRoaXMuX2Nvb3JkaW5hdGVzW2JdLCBjICs9ICh0aGlzLndpZHRoKCkgLSBjICsgKHRoaXMuX2Nvb3JkaW5hdGVzW2ZdIHx8IDApKSAvIDIgKiBlKSA6IGMgPSB0aGlzLl9jb29yZGluYXRlc1tmXSB8fCAwLCBjID0gTWF0aC5jZWlsKGMpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5kdXJhdGlvbiA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7XG4gICAgICAgICAgICByZXR1cm4gMCA9PT0gYyA/IDAgOiBNYXRoLm1pbihNYXRoLm1heChNYXRoLmFicyhiIC0gYSksIDEpLCA2KSAqIE1hdGguYWJzKGMgfHwgdGhpcy5zZXR0aW5ncy5zbWFydFNwZWVkKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS50byA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMuY3VycmVudCgpLCBkID0gbnVsbCwgZSA9IGEgLSB0aGlzLnJlbGF0aXZlKGMpLCBmID0gKGUgPiAwKSAtIChlIDwgMCksIGcgPSB0aGlzLl9pdGVtcy5sZW5ndGgsXG4gICAgICAgICAgICAgIGggPSB0aGlzLm1pbmltdW0oKSwgaSA9IHRoaXMubWF4aW11bSgpO1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5sb29wID8gKCF0aGlzLnNldHRpbmdzLnJld2luZCAmJiBNYXRoLmFicyhlKSA+IGcgLyAyICYmIChlICs9IGYgKiAtMSAqIGcpLCBhID0gYyArIGUsIGQgPSAoKGEgLSBoKSAlIGcgKyBnKSAlIGcgKyBoLCBkICE9PSBhICYmIGQgLSBlIDw9IGkgJiYgZCAtIGUgPiAwICYmIChjID0gZCAtIGUsIGEgPSBkLCB0aGlzLnJlc2V0KGMpKSkgOiB0aGlzLnNldHRpbmdzLnJld2luZCA/IChpICs9IDEsIGEgPSAoYSAlIGkgKyBpKSAlIGkpIDogYSA9IE1hdGgubWF4KGgsIE1hdGgubWluKGksIGEpKSwgdGhpcy5zcGVlZCh0aGlzLmR1cmF0aW9uKGMsIGEsIGIpKSwgdGhpcy5jdXJyZW50KGEpLCB0aGlzLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgJiYgdGhpcy51cGRhdGUoKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIGEgPSBhIHx8ICExLCB0aGlzLnRvKHRoaXMucmVsYXRpdmUodGhpcy5jdXJyZW50KCkpICsgMSwgYSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucHJldiA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICBhID0gYSB8fCAhMSwgdGhpcy50byh0aGlzLnJlbGF0aXZlKHRoaXMuY3VycmVudCgpKSAtIDEsIGEpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uVHJhbnNpdGlvbkVuZCA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICBpZiAoYSAhPT0gZCAmJiAoYS5zdG9wUHJvcGFnYXRpb24oKSwgKGEudGFyZ2V0IHx8IGEuc3JjRWxlbWVudCB8fCBhLm9yaWdpbmFsVGFyZ2V0KSAhPT0gdGhpcy4kc3RhZ2UuZ2V0KDApKSkgcmV0dXJuICExO1xuICAgICAgICAgICAgdGhpcy5sZWF2ZShcImFuaW1hdGluZ1wiKSwgdGhpcy50cmlnZ2VyKFwidHJhbnNsYXRlZFwiKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS52aWV3cG9ydCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBkO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXNwb25zaXZlQmFzZUVsZW1lbnQgIT09IGIgPyBkID0gYSh0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZUJhc2VFbGVtZW50KS53aWR0aCgpIDogYi5pbm5lcldpZHRoID8gZCA9IGIuaW5uZXJXaWR0aCA6IGMuZG9jdW1lbnRFbGVtZW50ICYmIGMuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoID8gZCA9IGMuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoIDogY29uc29sZS53YXJuKFwiQ2FuIG5vdCBkZXRlY3Qgdmlld3BvcnQgd2lkdGguXCIpLCBkXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlcGxhY2UgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdGhpcy4kc3RhZ2UuZW1wdHkoKSwgdGhpcy5faXRlbXMgPSBbXSwgYiAmJiAoYiA9IGIgaW5zdGFuY2VvZiBqUXVlcnkgPyBiIDogYShiKSksIHRoaXMuc2V0dGluZ3MubmVzdGVkSXRlbVNlbGVjdG9yICYmIChiID0gYi5maW5kKFwiLlwiICsgdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IpKSwgYi5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxID09PSB0aGlzLm5vZGVUeXBlXG4gICAgICAgICAgICB9KS5lYWNoKGEucHJveHkoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICBiID0gdGhpcy5wcmVwYXJlKGIpLCB0aGlzLiRzdGFnZS5hcHBlbmQoYiksIHRoaXMuX2l0ZW1zLnB1c2goYiksIHRoaXMuX21lcmdlcnMucHVzaCgxICogYi5maW5kKFwiW2RhdGEtbWVyZ2VdXCIpLmFkZEJhY2soXCJbZGF0YS1tZXJnZV1cIikuYXR0cihcImRhdGEtbWVyZ2VcIikgfHwgMSlcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgdGhpcy5yZXNldCh0aGlzLmlzTnVtZXJpYyh0aGlzLnNldHRpbmdzLnN0YXJ0UG9zaXRpb24pID8gdGhpcy5zZXR0aW5ncy5zdGFydFBvc2l0aW9uIDogMCksIHRoaXMuaW52YWxpZGF0ZShcIml0ZW1zXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIChiLCBjKSB7XG4gICAgICAgICAgICB2YXIgZSA9IHRoaXMucmVsYXRpdmUodGhpcy5fY3VycmVudCk7XG4gICAgICAgICAgICBjID0gYyA9PT0gZCA/IHRoaXMuX2l0ZW1zLmxlbmd0aCA6IHRoaXMubm9ybWFsaXplKGMsICEwKSwgYiA9IGIgaW5zdGFuY2VvZiBqUXVlcnkgPyBiIDogYShiKSwgdGhpcy50cmlnZ2VyKFwiYWRkXCIsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBiLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBjXG4gICAgICAgICAgICB9KSwgYiA9IHRoaXMucHJlcGFyZShiKSwgMCA9PT0gdGhpcy5faXRlbXMubGVuZ3RoIHx8IGMgPT09IHRoaXMuX2l0ZW1zLmxlbmd0aCA/ICgwID09PSB0aGlzLl9pdGVtcy5sZW5ndGggJiYgdGhpcy4kc3RhZ2UuYXBwZW5kKGIpLCAwICE9PSB0aGlzLl9pdGVtcy5sZW5ndGggJiYgdGhpcy5faXRlbXNbYyAtIDFdLmFmdGVyKGIpLCB0aGlzLl9pdGVtcy5wdXNoKGIpLCB0aGlzLl9tZXJnZXJzLnB1c2goMSAqIGIuZmluZChcIltkYXRhLW1lcmdlXVwiKS5hZGRCYWNrKFwiW2RhdGEtbWVyZ2VdXCIpLmF0dHIoXCJkYXRhLW1lcmdlXCIpIHx8IDEpKSA6ICh0aGlzLl9pdGVtc1tjXS5iZWZvcmUoYiksIHRoaXMuX2l0ZW1zLnNwbGljZShjLCAwLCBiKSwgdGhpcy5fbWVyZ2Vycy5zcGxpY2UoYywgMCwgMSAqIGIuZmluZChcIltkYXRhLW1lcmdlXVwiKS5hZGRCYWNrKFwiW2RhdGEtbWVyZ2VdXCIpLmF0dHIoXCJkYXRhLW1lcmdlXCIpIHx8IDEpKSwgdGhpcy5faXRlbXNbZV0gJiYgdGhpcy5yZXNldCh0aGlzLl9pdGVtc1tlXS5pbmRleCgpKSwgdGhpcy5pbnZhbGlkYXRlKFwiaXRlbXNcIiksIHRoaXMudHJpZ2dlcihcImFkZGVkXCIsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBiLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBjXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgYSA9IHRoaXMubm9ybWFsaXplKGEsICEwKSwgYSAhPT0gZCAmJiAodGhpcy50cmlnZ2VyKFwicmVtb3ZlXCIsIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLl9pdGVtc1thXSxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYVxuICAgICAgICAgICAgfSksIHRoaXMuX2l0ZW1zW2FdLnJlbW92ZSgpLCB0aGlzLl9pdGVtcy5zcGxpY2UoYSwgMSksIHRoaXMuX21lcmdlcnMuc3BsaWNlKGEsIDEpLCB0aGlzLmludmFsaWRhdGUoXCJpdGVtc1wiKSwgdGhpcy50cmlnZ2VyKFwicmVtb3ZlZFwiLCB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbnVsbCxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnByZWxvYWRBdXRvV2lkdGhJbWFnZXMgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgYi5lYWNoKGEucHJveHkoZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVudGVyKFwicHJlLWxvYWRpbmdcIiksIGMgPSBhKGMpLCBhKG5ldyBJbWFnZSkub25lKFwibG9hZFwiLCBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGMuYXR0cihcInNyY1wiLCBhLnRhcmdldC5zcmMpLCBjLmNzcyhcIm9wYWNpdHlcIiwgMSksIHRoaXMubGVhdmUoXCJwcmUtbG9hZGluZ1wiKSwgIXRoaXMuaXMoXCJwcmUtbG9hZGluZ1wiKSAmJiAhdGhpcy5pcyhcImluaXRpYWxpemluZ1wiKSAmJiB0aGlzLnJlZnJlc2goKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpKS5hdHRyKFwic3JjXCIsIGMuYXR0cihcInNyY1wiKSB8fCBjLmF0dHIoXCJkYXRhLXNyY1wiKSB8fCBjLmF0dHIoXCJkYXRhLXNyYy1yZXRpbmFcIikpXG4gICAgICAgICAgICB9LCB0aGlzKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKFwiLm93bC5jb3JlXCIpLCB0aGlzLiRzdGFnZS5vZmYoXCIub3dsLmNvcmVcIiksIGEoYykub2ZmKFwiLm93bC5jb3JlXCIpLCB0aGlzLnNldHRpbmdzLnJlc3BvbnNpdmUgIT09ICExICYmIChiLmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKSwgdGhpcy5vZmYoYiwgXCJyZXNpemVcIiwgdGhpcy5faGFuZGxlcnMub25UaHJvdHRsZWRSZXNpemUpKTtcbiAgICAgICAgICAgIGZvciAodmFyIGQgaW4gdGhpcy5fcGx1Z2lucykgdGhpcy5fcGx1Z2luc1tkXS5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLiRzdGFnZS5jaGlsZHJlbihcIi5jbG9uZWRcIikucmVtb3ZlKCksIHRoaXMuJHN0YWdlLnVud3JhcCgpLCB0aGlzLiRzdGFnZS5jaGlsZHJlbigpLmNvbnRlbnRzKCkudW53cmFwKCksIHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkudW53cmFwKCksIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLnJlZnJlc2hDbGFzcykucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRpbmdDbGFzcykucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRlZENsYXNzKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMucnRsQ2xhc3MpLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5kcmFnQ2xhc3MpLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5ncmFiQ2xhc3MpLmF0dHIoXCJjbGFzc1wiLCB0aGlzLiRlbGVtZW50LmF0dHIoXCJjbGFzc1wiKS5yZXBsYWNlKG5ldyBSZWdFeHAodGhpcy5vcHRpb25zLnJlc3BvbnNpdmVDbGFzcyArIFwiLVxcXFxTK1xcXFxzXCIsIFwiZ1wiKSwgXCJcIikpLnJlbW92ZURhdGEoXCJvd2wuY2Fyb3VzZWxcIilcbiAgICAgICAgfSwgZS5wcm90b3R5cGUub3AgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICAgICAgdmFyIGQgPSB0aGlzLnNldHRpbmdzLnJ0bDtcbiAgICAgICAgICAgIHN3aXRjaCAoYikge1xuICAgICAgICAgICAgICAgIGNhc2VcIjxcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQgPyBhID4gYyA6IGEgPCBjO1xuICAgICAgICAgICAgICAgIGNhc2VcIj5cIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQgPyBhIDwgYyA6IGEgPiBjO1xuICAgICAgICAgICAgICAgIGNhc2VcIj49XCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkID8gYSA8PSBjIDogYSA+PSBjO1xuICAgICAgICAgICAgICAgIGNhc2VcIjw9XCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkID8gYSA+PSBjIDogYSA8PSBjXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgICAgIGEuYWRkRXZlbnRMaXN0ZW5lciA/IGEuYWRkRXZlbnRMaXN0ZW5lcihiLCBjLCBkKSA6IGEuYXR0YWNoRXZlbnQgJiYgYS5hdHRhY2hFdmVudChcIm9uXCIgKyBiLCBjKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5vZmYgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICAgICAgYS5yZW1vdmVFdmVudExpc3RlbmVyID8gYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsIGMsIGQpIDogYS5kZXRhY2hFdmVudCAmJiBhLmRldGFjaEV2ZW50KFwib25cIiArIGIsIGMpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnRyaWdnZXIgPSBmdW5jdGlvbiAoYiwgYywgZCwgZiwgZykge1xuICAgICAgICAgICAgdmFyIGggPSB7aXRlbToge2NvdW50OiB0aGlzLl9pdGVtcy5sZW5ndGgsIGluZGV4OiB0aGlzLmN1cnJlbnQoKX19LFxuICAgICAgICAgICAgICBpID0gYS5jYW1lbENhc2UoYS5ncmVwKFtcIm9uXCIsIGIsIGRdLCBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFcbiAgICAgICAgICAgICAgfSkuam9pbihcIi1cIikudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgICAgIGogPSBhLkV2ZW50KFtiLCBcIm93bFwiLCBkIHx8IFwiY2Fyb3VzZWxcIl0uam9pbihcIi5cIikudG9Mb3dlckNhc2UoKSwgYS5leHRlbmQoe3JlbGF0ZWRUYXJnZXQ6IHRoaXN9LCBoLCBjKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc3VwcmVzc1tiXSB8fCAoYS5lYWNoKHRoaXMuX3BsdWdpbnMsIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgYi5vblRyaWdnZXIgJiYgYi5vblRyaWdnZXIoailcbiAgICAgICAgICAgIH0pLCB0aGlzLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlLlR5cGUuRXZlbnQsXG4gICAgICAgICAgICAgICAgbmFtZTogYlxuICAgICAgICAgICAgfSksIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihqKSwgdGhpcy5zZXR0aW5ncyAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHRoaXMuc2V0dGluZ3NbaV0gJiYgdGhpcy5zZXR0aW5nc1tpXS5jYWxsKHRoaXMsIGopKSwgalxuICAgICAgICB9LCBlLnByb3RvdHlwZS5lbnRlciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBhLmVhY2goW2JdLmNvbmNhdCh0aGlzLl9zdGF0ZXMudGFnc1tiXSB8fCBbXSksIGEucHJveHkoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZXMuY3VycmVudFtiXSA9PT0gZCAmJiAodGhpcy5fc3RhdGVzLmN1cnJlbnRbYl0gPSAwKSwgdGhpcy5fc3RhdGVzLmN1cnJlbnRbYl0rK1xuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmxlYXZlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIGEuZWFjaChbYl0uY29uY2F0KHRoaXMuX3N0YXRlcy50YWdzW2JdIHx8IFtdKSwgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlcy5jdXJyZW50W2JdLS1cbiAgICAgICAgICAgIH0sIHRoaXMpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBpZiAoYi50eXBlID09PSBlLlR5cGUuRXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoYS5ldmVudC5zcGVjaWFsW2IubmFtZV0gfHwgKGEuZXZlbnQuc3BlY2lhbFtiLm5hbWVdID0ge30pLCAhYS5ldmVudC5zcGVjaWFsW2IubmFtZV0ub3dsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjID0gYS5ldmVudC5zcGVjaWFsW2IubmFtZV0uX2RlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgIGEuZXZlbnQuc3BlY2lhbFtiLm5hbWVdLl9kZWZhdWx0ID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhYyB8fCAhYy5hcHBseSB8fCBhLm5hbWVzcGFjZSAmJiBhLm5hbWVzcGFjZS5pbmRleE9mKFwib3dsXCIpICE9PSAtMSA/IGEubmFtZXNwYWNlICYmIGEubmFtZXNwYWNlLmluZGV4T2YoXCJvd2xcIikgPiAtMSA6IGMuYXBwbHkodGhpcywgYXJndW1lbnRzKVxuICAgICAgICAgICAgICAgICAgICB9LCBhLmV2ZW50LnNwZWNpYWxbYi5uYW1lXS5vd2wgPSAhMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBiLnR5cGUgPT09IGUuVHlwZS5TdGF0ZSAmJiAodGhpcy5fc3RhdGVzLnRhZ3NbYi5uYW1lXSA/IHRoaXMuX3N0YXRlcy50YWdzW2IubmFtZV0gPSB0aGlzLl9zdGF0ZXMudGFnc1tiLm5hbWVdLmNvbmNhdChiLnRhZ3MpIDogdGhpcy5fc3RhdGVzLnRhZ3NbYi5uYW1lXSA9IGIudGFncywgdGhpcy5fc3RhdGVzLnRhZ3NbYi5uYW1lXSA9IGEuZ3JlcCh0aGlzLl9zdGF0ZXMudGFnc1tiLm5hbWVdLCBhLnByb3h5KGZ1bmN0aW9uIChjLCBkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuaW5BcnJheShjLCB0aGlzLl9zdGF0ZXMudGFnc1tiLm5hbWVdKSA9PT0gZFxuICAgICAgICAgICAgfSwgdGhpcykpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5zdXBwcmVzcyA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBhLmVhY2goYiwgYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1cHJlc3NbYl0gPSAhMFxuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlbGVhc2UgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgYS5lYWNoKGIsIGEucHJveHkoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fc3VwcmVzc1tiXVxuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnBvaW50ZXIgPSBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgdmFyIGMgPSB7eDogbnVsbCwgeTogbnVsbH07XG4gICAgICAgICAgICByZXR1cm4gYSA9IGEub3JpZ2luYWxFdmVudCB8fCBhIHx8IGIuZXZlbnQsIGEgPSBhLnRvdWNoZXMgJiYgYS50b3VjaGVzLmxlbmd0aCA/IGEudG91Y2hlc1swXSA6IGEuY2hhbmdlZFRvdWNoZXMgJiYgYS5jaGFuZ2VkVG91Y2hlcy5sZW5ndGggPyBhLmNoYW5nZWRUb3VjaGVzWzBdIDogYSwgYS5wYWdlWCA/IChjLnggPSBhLnBhZ2VYLCBjLnkgPSBhLnBhZ2VZKSA6IChjLnggPSBhLmNsaWVudFgsIGMueSA9IGEuY2xpZW50WSksIGNcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuaXNOdW1lcmljID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChhKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGlmZmVyZW5jZSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4ge3g6IGEueCAtIGIueCwgeTogYS55IC0gYi55fVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBkID0gYSh0aGlzKSwgZiA9IGQuZGF0YShcIm93bC5jYXJvdXNlbFwiKTtcbiAgICAgICAgICAgICAgICBmIHx8IChmID0gbmV3IGUodGhpcywgXCJvYmplY3RcIiA9PSB0eXBlb2YgYiAmJiBiKSwgZC5kYXRhKFwib3dsLmNhcm91c2VsXCIsIGYpLCBhLmVhY2goW1wibmV4dFwiLCBcInByZXZcIiwgXCJ0b1wiLCBcImRlc3Ryb3lcIiwgXCJyZWZyZXNoXCIsIFwicmVwbGFjZVwiLCBcImFkZFwiLCBcInJlbW92ZVwiXSwgZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICAgICAgZi5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBlLlR5cGUuRXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBjXG4gICAgICAgICAgICAgICAgICAgIH0pLCBmLiRlbGVtZW50Lm9uKGMgKyBcIi5vd2wuY2Fyb3VzZWwuY29yZVwiLCBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiBhLnJlbGF0ZWRUYXJnZXQgIT09IHRoaXMgJiYgKHRoaXMuc3VwcHJlc3MoW2NdKSwgZltjXS5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpLCB0aGlzLnJlbGVhc2UoW2NdKSlcbiAgICAgICAgICAgICAgICAgICAgfSwgZikpXG4gICAgICAgICAgICAgICAgfSkpLCBcInN0cmluZ1wiID09IHR5cGVvZiBiICYmIFwiX1wiICE9PSBiLmNoYXJBdCgwKSAmJiBmW2JdLmFwcGx5KGYsIGMpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yID0gZVxuICAgIH0od2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpLCBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICB2YXIgZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB0aGlzLl9jb3JlID0gYiwgdGhpcy5faW50ZXJ2YWwgPSBudWxsLCB0aGlzLl92aXNpYmxlID0gbnVsbCwgdGhpcy5faGFuZGxlcnMgPSB7XG4gICAgICAgICAgICAgICAgXCJpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9SZWZyZXNoICYmIHRoaXMud2F0Y2goKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKSwgdGhpcy5fY29yZS4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycylcbiAgICAgICAgfTtcbiAgICAgICAgZS5EZWZhdWx0cyA9IHthdXRvUmVmcmVzaDogITAsIGF1dG9SZWZyZXNoSW50ZXJ2YWw6IDUwMH0sIGUucHJvdG90eXBlLndhdGNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5faW50ZXJ2YWwgfHwgKHRoaXMuX3Zpc2libGUgPSB0aGlzLl9jb3JlLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIiksIHRoaXMuX2ludGVydmFsID0gYi5zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMucmVmcmVzaCwgdGhpcyksIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b1JlZnJlc2hJbnRlcnZhbCkpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLl9jb3JlLiRlbGVtZW50LmlzKFwiOnZpc2libGVcIikgIT09IHRoaXMuX3Zpc2libGUgJiYgKHRoaXMuX3Zpc2libGUgPSAhdGhpcy5fdmlzaWJsZSwgdGhpcy5fY29yZS4kZWxlbWVudC50b2dnbGVDbGFzcyhcInNieS1vd2wtaGlkZGVuXCIsICF0aGlzLl92aXNpYmxlKSwgdGhpcy5fdmlzaWJsZSAmJiB0aGlzLl9jb3JlLmludmFsaWRhdGUoXCJ3aWR0aFwiKSAmJiB0aGlzLl9jb3JlLnJlZnJlc2goKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBjO1xuICAgICAgICAgICAgYi5jbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsKTtcbiAgICAgICAgICAgIGZvciAoYSBpbiB0aGlzLl9oYW5kbGVycykgdGhpcy5fY29yZS4kZWxlbWVudC5vZmYoYSwgdGhpcy5faGFuZGxlcnNbYV0pO1xuICAgICAgICAgICAgZm9yIChjIGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSBcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIHRoaXNbY10gJiYgKHRoaXNbY10gPSBudWxsKVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuQXV0b1JlZnJlc2ggPSBlXG4gICAgfSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCksIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBiLCB0aGlzLl9sb2FkZWQgPSBbXSwgdGhpcy5faGFuZGxlcnMgPSB7XG4gICAgICAgICAgICAgICAgXCJpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwgY2hhbmdlLm93bC5jYXJvdXNlbCByZXNpemVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChiLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MubGF6eUxvYWQgJiYgKGIucHJvcGVydHkgJiYgXCJwb3NpdGlvblwiID09IGIucHJvcGVydHkubmFtZSB8fCBcImluaXRpYWxpemVkXCIgPT0gYi50eXBlKSkgZm9yICh2YXIgYyA9IHRoaXMuX2NvcmUuc2V0dGluZ3MsIGUgPSBjLmNlbnRlciAmJiBNYXRoLmNlaWwoYy5pdGVtcyAvIDIpIHx8IGMuaXRlbXMsIGYgPSBjLmNlbnRlciAmJiBlICogLTEgfHwgMCwgZyA9IChiLnByb3BlcnR5ICYmIGIucHJvcGVydHkudmFsdWUgIT09IGQgPyBiLnByb3BlcnR5LnZhbHVlIDogdGhpcy5fY29yZS5jdXJyZW50KCkpICsgZiwgaCA9IHRoaXMuX2NvcmUuY2xvbmVzKCkubGVuZ3RoLCBpID0gYS5wcm94eShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkKGIpXG4gICAgICAgICAgICAgICAgICAgIH0sIHRoaXMpOyBmKysgPCBlOykgdGhpcy5sb2FkKGggLyAyICsgdGhpcy5fY29yZS5yZWxhdGl2ZShnKSksIGggJiYgYS5lYWNoKHRoaXMuX2NvcmUuY2xvbmVzKHRoaXMuX2NvcmUucmVsYXRpdmUoZykpLCBpKSwgZysrXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUub3B0aW9ucyA9IGEuZXh0ZW5kKHt9LCBlLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpLCB0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge2xhenlMb2FkOiAhMX0sIGUucHJvdG90eXBlLmxvYWQgPSBmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgdmFyIGQgPSB0aGlzLl9jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKGMpLCBlID0gZCAmJiBkLmZpbmQoXCIuc2J5LW93bC1sYXp5XCIpO1xuICAgICAgICAgICAgIWUgfHwgYS5pbkFycmF5KGQuZ2V0KDApLCB0aGlzLl9sb2FkZWQpID4gLTEgfHwgKGUuZWFjaChhLnByb3h5KGZ1bmN0aW9uIChjLCBkKSB7XG4gICAgICAgICAgICAgICAgdmFyIGUsIGYgPSBhKGQpLCBnID0gYi5kZXZpY2VQaXhlbFJhdGlvID4gMSAmJiBmLmF0dHIoXCJkYXRhLXNyYy1yZXRpbmFcIikgfHwgZi5hdHRyKFwiZGF0YS1zcmNcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29yZS50cmlnZ2VyKFwibG9hZFwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGYsXG4gICAgICAgICAgICAgICAgICAgIHVybDogZ1xuICAgICAgICAgICAgICAgIH0sIFwibGF6eVwiKSwgZi5pcyhcImltZ1wiKSA/IGYub25lKFwibG9hZC5vd2wubGF6eVwiLCBhLnByb3h5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgZi5jc3MoXCJvcGFjaXR5XCIsIDEpLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJsb2FkZWRcIiwge2VsZW1lbnQ6IGYsIHVybDogZ30sIFwibGF6eVwiKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpKS5hdHRyKFwic3JjXCIsIGcpIDogKGUgPSBuZXcgSW1hZ2UsIGUub25sb2FkID0gYS5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGYuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFja2dyb3VuZC1pbWFnZVwiOiAndXJsKFwiJyArIGcgKyAnXCIpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IFwiMVwiXG4gICAgICAgICAgICAgICAgICAgIH0pLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJsb2FkZWRcIiwge2VsZW1lbnQ6IGYsIHVybDogZ30sIFwibGF6eVwiKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBlLnNyYyA9IGcpXG4gICAgICAgICAgICB9LCB0aGlzKSksIHRoaXMuX2xvYWRlZC5wdXNoKGQuZ2V0KDApKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuaGFuZGxlcnMpIHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGEsIHRoaXMuaGFuZGxlcnNbYV0pO1xuICAgICAgICAgICAgZm9yIChiIGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSBcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIHRoaXNbYl0gJiYgKHRoaXNbYl0gPSBudWxsKVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuTGF6eSA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgdmFyIGUgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdGhpcy5fY29yZSA9IGIsIHRoaXMuX2hhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsIHJlZnJlc2hlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHQgJiYgdGhpcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImNoYW5nZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvSGVpZ2h0ICYmIFwicG9zaXRpb25cIiA9PSBhLnByb3BlcnR5Lm5hbWUgJiYgdGhpcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImxvYWRlZC5vd2wubGF6eVwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b0hlaWdodCAmJiBhLmVsZW1lbnQuY2xvc2VzdChcIi5cIiArIHRoaXMuX2NvcmUuc2V0dGluZ3MuaXRlbUNsYXNzKS5pbmRleCgpID09PSB0aGlzLl9jb3JlLmN1cnJlbnQoKSAmJiB0aGlzLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUub3B0aW9ucyA9IGEuZXh0ZW5kKHt9LCBlLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpLCB0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge2F1dG9IZWlnaHQ6ICExLCBhdXRvSGVpZ2h0Q2xhc3M6IFwic2J5LW93bC1oZWlnaHRcIn0sIGUucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBiID0gdGhpcy5fY29yZS5fY3VycmVudCwgYyA9IGIgKyB0aGlzLl9jb3JlLnNldHRpbmdzLml0ZW1zLFxuICAgICAgICAgICAgICBkID0gdGhpcy5fY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS50b0FycmF5KCkuc2xpY2UoYiwgYyksIGUgPSBbXSwgZiA9IDA7XG4gICAgICAgICAgICBhLmVhY2goZCwgZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgICAgICBlLnB1c2goYShjKS5oZWlnaHQoKSlcbiAgICAgICAgICAgIH0pLCBmID0gTWF0aC5tYXguYXBwbHkobnVsbCwgZSksIHRoaXMuX2NvcmUuJHN0YWdlLnBhcmVudCgpLmhlaWdodChmKS5hZGRDbGFzcyh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHRDbGFzcylcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sIGEuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5BdXRvSGVpZ2h0ID0gZVxuICAgIH0od2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpLCBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgICB2YXIgZSA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB0aGlzLl9jb3JlID0gYiwgdGhpcy5fdmlkZW9zID0ge30sIHRoaXMuX3BsYXlpbmcgPSBudWxsLCB0aGlzLl9oYW5kbGVycyA9IHtcbiAgICAgICAgICAgICAgICBcImluaXRpYWxpemVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUucmVnaXN0ZXIoe3R5cGU6IFwic3RhdGVcIiwgbmFtZTogXCJwbGF5aW5nXCIsIHRhZ3M6IFtcImludGVyYWN0aW5nXCJdfSlcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJyZXNpemUub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy52aWRlbyAmJiB0aGlzLmlzSW5GdWxsU2NyZWVuKCkgJiYgYS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicmVmcmVzaGVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuaXMoXCJyZXNpemluZ1wiKSAmJiB0aGlzLl9jb3JlLiRzdGFnZS5maW5kKFwiLmNsb25lZCAuc2J5LW93bC12aWRlby1mcmFtZVwiKS5yZW1vdmUoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImNoYW5nZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgXCJwb3NpdGlvblwiID09PSBhLnByb3BlcnR5Lm5hbWUgJiYgdGhpcy5fcGxheWluZyAmJiB0aGlzLnN0b3AoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcInByZXBhcmVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChiLm5hbWVzcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSBhKGIuY29udGVudCkuZmluZChcIi5zYnktb3dsLXZpZGVvXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYy5sZW5ndGggJiYgKGMuY3NzKFwiZGlzcGxheVwiLCBcIm5vbmVcIiksIHRoaXMuZmV0Y2goYywgYShiLmNvbnRlbnQpKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKSwgdGhpcy5fY29yZS4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyksIHRoaXMuX2NvcmUuJGVsZW1lbnQub24oXCJjbGljay5vd2wudmlkZW9cIiwgXCIuc2J5LW93bC12aWRlby1wbGF5LWljb25cIiwgYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGxheShhKVxuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgIH07XG4gICAgICAgIGUuRGVmYXVsdHMgPSB7dmlkZW86ICExLCB2aWRlb0hlaWdodDogITEsIHZpZGVvV2lkdGg6ICExfSwgZS5wcm90b3R5cGUuZmV0Y2ggPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgdmFyIGMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYS5hdHRyKFwiZGF0YS12aW1lby1pZFwiKSA/IFwidmltZW9cIiA6IGEuYXR0cihcImRhdGEtdnphYXItaWRcIikgPyBcInZ6YWFyXCIgOiBcInlvdXR1YmVcIlxuICAgICAgICAgICAgICB9KCksIGQgPSBhLmF0dHIoXCJkYXRhLXZpbWVvLWlkXCIpIHx8IGEuYXR0cihcImRhdGEteW91dHViZS1pZFwiKSB8fCBhLmF0dHIoXCJkYXRhLXZ6YWFyLWlkXCIpLFxuICAgICAgICAgICAgICBlID0gYS5hdHRyKFwiZGF0YS13aWR0aFwiKSB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLnZpZGVvV2lkdGgsXG4gICAgICAgICAgICAgIGYgPSBhLmF0dHIoXCJkYXRhLWhlaWdodFwiKSB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLnZpZGVvSGVpZ2h0LCBnID0gYS5hdHRyKFwiaHJlZlwiKTtcbiAgICAgICAgICAgIGlmICghZykgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB2aWRlbyBVUkwuXCIpO1xuICAgICAgICAgICAgaWYgKGQgPSBnLm1hdGNoKC8oaHR0cDp8aHR0cHM6fClcXC9cXC8ocGxheWVyLnx3d3cufGFwcC4pPyh2aW1lb1xcLmNvbXx5b3V0dShiZVxcLmNvbXxcXC5iZXxiZVxcLmdvb2dsZWFwaXNcXC5jb20pfHZ6YWFyXFwuY29tKVxcLyh2aWRlb1xcL3x2aWRlb3NcXC98ZW1iZWRcXC98Y2hhbm5lbHNcXC8uK1xcL3xncm91cHNcXC8uK1xcL3x3YXRjaFxcP3Y9fHZcXC8pPyhbQS1aYS16MC05Ll8lLV0qKShcXCZcXFMrKT8vKSwgZFszXS5pbmRleE9mKFwieW91dHVcIikgPiAtMSkgYyA9IFwieW91dHViZVwiOyBlbHNlIGlmIChkWzNdLmluZGV4T2YoXCJ2aW1lb1wiKSA+IC0xKSBjID0gXCJ2aW1lb1wiOyBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIShkWzNdLmluZGV4T2YoXCJ2emFhclwiKSA+IC0xKSkgdGhyb3cgbmV3IEVycm9yKFwiVmlkZW8gVVJMIG5vdCBzdXBwb3J0ZWQuXCIpO1xuICAgICAgICAgICAgICAgIGMgPSBcInZ6YWFyXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGQgPSBkWzZdLCB0aGlzLl92aWRlb3NbZ10gPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogYyxcbiAgICAgICAgICAgICAgICBpZDogZCxcbiAgICAgICAgICAgICAgICB3aWR0aDogZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGZcbiAgICAgICAgICAgIH0sIGIuYXR0cihcImRhdGEtdmlkZW9cIiwgZyksIHRoaXMudGh1bWJuYWlsKGEsIHRoaXMuX3ZpZGVvc1tnXSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUudGh1bWJuYWlsID0gZnVuY3Rpb24gKGIsIGMpIHtcbiAgICAgICAgICAgIHZhciBkLCBlLCBmLCBnID0gYy53aWR0aCAmJiBjLmhlaWdodCA/ICdzdHlsZT1cIndpZHRoOicgKyBjLndpZHRoICsgXCJweDtoZWlnaHQ6XCIgKyBjLmhlaWdodCArICdweDtcIicgOiBcIlwiLFxuICAgICAgICAgICAgICBoID0gYi5maW5kKFwiaW1nXCIpLCBpID0gXCJzcmNcIiwgaiA9IFwiXCIsIGsgPSB0aGlzLl9jb3JlLnNldHRpbmdzLCBsID0gZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgIGUgPSAnPGRpdiBjbGFzcz1cInNieS1vd2wtdmlkZW8tcGxheS1pY29uXCI+PC9kaXY+JywgZCA9IGsubGF6eUxvYWQgPyAnPGRpdiBjbGFzcz1cInNieS1vd2wtdmlkZW8tdG4gJyArIGogKyAnXCIgJyArIGkgKyAnPVwiJyArIGEgKyAnXCI+PC9kaXY+JyA6ICc8ZGl2IGNsYXNzPVwic2J5LW93bC12aWRlby10blwiIHN0eWxlPVwib3BhY2l0eToxO2JhY2tncm91bmQtaW1hZ2U6dXJsKCcgKyBhICsgJylcIj48L2Rpdj4nLCBiLmFmdGVyKGQpLCBiLmFmdGVyKGUpXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoYi53cmFwKCc8ZGl2IGNsYXNzPVwic2J5LW93bC12aWRlby13cmFwcGVyXCInICsgZyArIFwiPjwvZGl2PlwiKSwgdGhpcy5fY29yZS5zZXR0aW5ncy5sYXp5TG9hZCAmJiAoaSA9IFwiZGF0YS1zcmNcIiwgaiA9IFwic2J5LW93bC1sYXp5XCIpLCBoLmxlbmd0aCkgcmV0dXJuIGwoaC5hdHRyKGkpKSwgaC5yZW1vdmUoKSwgITE7XG4gICAgICAgICAgICBcInlvdXR1YmVcIiA9PT0gYy50eXBlID8gKGYgPSBcIi8vaW1nLnlvdXR1YmUuY29tL3ZpL1wiICsgYy5pZCArIFwiL2hxZGVmYXVsdC5qcGdcIiwgbChmKSkgOiBcInZpbWVvXCIgPT09IGMudHlwZSA/IGEuYWpheCh7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIixcbiAgICAgICAgICAgICAgICB1cmw6IFwiLy92aW1lby5jb20vYXBpL3YyL3ZpZGVvL1wiICsgYy5pZCArIFwiLmpzb25cIixcbiAgICAgICAgICAgICAgICBqc29ucDogXCJjYWxsYmFja1wiLFxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcImpzb25wXCIsXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgZiA9IGFbMF0udGh1bWJuYWlsX2xhcmdlLCBsKGYpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkgOiBcInZ6YWFyXCIgPT09IGMudHlwZSAmJiBhLmFqYXgoe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiR0VUXCIsXG4gICAgICAgICAgICAgICAgdXJsOiBcIi8vdnphYXIuY29tL2FwaS92aWRlb3MvXCIgKyBjLmlkICsgXCIuanNvblwiLFxuICAgICAgICAgICAgICAgIGpzb25wOiBcImNhbGxiYWNrXCIsXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwianNvbnBcIixcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBmID0gYS5mcmFtZWdyYWJfdXJsLCBsKGYpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUudHJpZ2dlcihcInN0b3BcIiwgbnVsbCwgXCJ2aWRlb1wiKSwgdGhpcy5fcGxheWluZy5maW5kKFwiLnNieS1vd2wtdmlkZW8tZnJhbWVcIikucmVtb3ZlKCksIHRoaXMuX3BsYXlpbmcucmVtb3ZlQ2xhc3MoXCJzYnktb3dsLXZpZGVvLXBsYXlpbmdcIiksIHRoaXMuX3BsYXlpbmcgPSBudWxsLCB0aGlzLl9jb3JlLmxlYXZlKFwicGxheWluZ1wiKSwgdGhpcy5fY29yZS50cmlnZ2VyKFwic3RvcHBlZFwiLCBudWxsLCBcInZpZGVvXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnBsYXkgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdmFyIGMsIGQgPSBhKGIudGFyZ2V0KSwgZSA9IGQuY2xvc2VzdChcIi5cIiArIHRoaXMuX2NvcmUuc2V0dGluZ3MuaXRlbUNsYXNzKSxcbiAgICAgICAgICAgICAgZiA9IHRoaXMuX3ZpZGVvc1tlLmF0dHIoXCJkYXRhLXZpZGVvXCIpXSwgZyA9IGYud2lkdGggfHwgXCIxMDAlXCIsXG4gICAgICAgICAgICAgIGggPSBmLmhlaWdodCB8fCB0aGlzLl9jb3JlLiRzdGFnZS5oZWlnaHQoKTtcbiAgICAgICAgICAgIHRoaXMuX3BsYXlpbmcgfHwgKHRoaXMuX2NvcmUuZW50ZXIoXCJwbGF5aW5nXCIpLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJwbGF5XCIsIG51bGwsIFwidmlkZW9cIiksIGUgPSB0aGlzLl9jb3JlLml0ZW1zKHRoaXMuX2NvcmUucmVsYXRpdmUoZS5pbmRleCgpKSksIHRoaXMuX2NvcmUucmVzZXQoZS5pbmRleCgpKSwgXCJ5b3V0dWJlXCIgPT09IGYudHlwZSA/IGMgPSAnPGlmcmFtZSB3aWR0aD1cIicgKyBnICsgJ1wiIGhlaWdodD1cIicgKyBoICsgJ1wiIHNyYz1cIi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLycgKyBmLmlkICsgXCI/YXV0b3BsYXk9MSZyZWw9MCZ2PVwiICsgZi5pZCArICdcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+JyA6IFwidmltZW9cIiA9PT0gZi50eXBlID8gYyA9ICc8aWZyYW1lIHNyYz1cIi8vcGxheWVyLnZpbWVvLmNvbS92aWRlby8nICsgZi5pZCArICc/YXV0b3BsYXk9MVwiIHdpZHRoPVwiJyArIGcgKyAnXCIgaGVpZ2h0PVwiJyArIGggKyAnXCIgZnJhbWVib3JkZXI9XCIwXCIgd2Via2l0YWxsb3dmdWxsc2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+JyA6IFwidnphYXJcIiA9PT0gZi50eXBlICYmIChjID0gJzxpZnJhbWUgZnJhbWVib3JkZXI9XCIwXCJoZWlnaHQ9XCInICsgaCArICdcIndpZHRoPVwiJyArIGcgKyAnXCIgYWxsb3dmdWxsc2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiB3ZWJraXRBbGxvd0Z1bGxTY3JlZW4gc3JjPVwiLy92aWV3LnZ6YWFyLmNvbS8nICsgZi5pZCArICcvcGxheWVyP2F1dG9wbGF5PXRydWVcIj48L2lmcmFtZT4nKSwgYSgnPGRpdiBjbGFzcz1cInNieS1vd2wtdmlkZW8tZnJhbWVcIj4nICsgYyArIFwiPC9kaXY+XCIpLmluc2VydEFmdGVyKGUuZmluZChcIi5zYnktb3dsLXZpZGVvXCIpKSwgdGhpcy5fcGxheWluZyA9IGUuYWRkQ2xhc3MoXCJzYnktb3dsLXZpZGVvLXBsYXlpbmdcIikpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmlzSW5GdWxsU2NyZWVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGIgPSBjLmZ1bGxzY3JlZW5FbGVtZW50IHx8IGMubW96RnVsbFNjcmVlbkVsZW1lbnQgfHwgYy53ZWJraXRGdWxsc2NyZWVuRWxlbWVudDtcbiAgICAgICAgICAgIHJldHVybiBiICYmIGEoYikucGFyZW50KCkuaGFzQ2xhc3MoXCJzYnktb3dsLXZpZGVvLWZyYW1lXCIpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYSwgYjtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKFwiY2xpY2sub3dsLnZpZGVvXCIpO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sIGEuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5WaWRlbyA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgdmFyIGUgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgdGhpcy5jb3JlID0gYiwgdGhpcy5jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5jb3JlLm9wdGlvbnMpLCB0aGlzLnN3YXBwaW5nID0gITAsIHRoaXMucHJldmlvdXMgPSBkLCB0aGlzLm5leHQgPSBkLCB0aGlzLmhhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiY2hhbmdlLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIFwicG9zaXRpb25cIiA9PSBhLnByb3BlcnR5Lm5hbWUgJiYgKHRoaXMucHJldmlvdXMgPSB0aGlzLmNvcmUuY3VycmVudCgpLCB0aGlzLm5leHQgPSBhLnByb3BlcnR5LnZhbHVlKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcImRyYWcub3dsLmNhcm91c2VsIGRyYWdnZWQub3dsLmNhcm91c2VsIHRyYW5zbGF0ZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgKHRoaXMuc3dhcHBpbmcgPSBcInRyYW5zbGF0ZWRcIiA9PSBhLnR5cGUpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwidHJhbnNsYXRlLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuc3dhcHBpbmcgJiYgKHRoaXMuY29yZS5vcHRpb25zLmFuaW1hdGVPdXQgfHwgdGhpcy5jb3JlLm9wdGlvbnMuYW5pbWF0ZUluKSAmJiB0aGlzLnN3YXAoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLmNvcmUuJGVsZW1lbnQub24odGhpcy5oYW5kbGVycylcbiAgICAgICAgfTtcbiAgICAgICAgZS5EZWZhdWx0cyA9IHthbmltYXRlT3V0OiAhMSwgYW5pbWF0ZUluOiAhMX0sIGUucHJvdG90eXBlLnN3YXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoMSA9PT0gdGhpcy5jb3JlLnNldHRpbmdzLml0ZW1zICYmIGEuc3VwcG9ydC5hbmltYXRpb24gJiYgYS5zdXBwb3J0LnRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvcmUuc3BlZWQoMCk7XG4gICAgICAgICAgICAgICAgdmFyIGIsIGMgPSBhLnByb3h5KHRoaXMuY2xlYXIsIHRoaXMpLCBkID0gdGhpcy5jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHRoaXMucHJldmlvdXMpLFxuICAgICAgICAgICAgICAgICAgZSA9IHRoaXMuY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS5lcSh0aGlzLm5leHQpLCBmID0gdGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVJbixcbiAgICAgICAgICAgICAgICAgIGcgPSB0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZU91dDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvcmUuY3VycmVudCgpICE9PSB0aGlzLnByZXZpb3VzICYmIChnICYmIChiID0gdGhpcy5jb3JlLmNvb3JkaW5hdGVzKHRoaXMucHJldmlvdXMpIC0gdGhpcy5jb3JlLmNvb3JkaW5hdGVzKHRoaXMubmV4dCksIGQub25lKGEuc3VwcG9ydC5hbmltYXRpb24uZW5kLCBjKS5jc3Moe2xlZnQ6IGIgKyBcInB4XCJ9KS5hZGRDbGFzcyhcImFuaW1hdGVkIHNieS1vd2wtYW5pbWF0ZWQtb3V0XCIpLmFkZENsYXNzKGcpKSwgZiAmJiBlLm9uZShhLnN1cHBvcnQuYW5pbWF0aW9uLmVuZCwgYykuYWRkQ2xhc3MoXCJhbmltYXRlZCBzYnktb3dsLWFuaW1hdGVkLWluXCIpLmFkZENsYXNzKGYpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICBhKGIudGFyZ2V0KS5jc3Moe2xlZnQ6IFwiXCJ9KS5yZW1vdmVDbGFzcyhcImFuaW1hdGVkIHNieS1vd2wtYW5pbWF0ZWQtb3V0IHNieS1vd2wtYW5pbWF0ZWQtaW5cIikucmVtb3ZlQ2xhc3ModGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVJbikucmVtb3ZlQ2xhc3ModGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVPdXQpLCB0aGlzLmNvcmUub25UcmFuc2l0aW9uRW5kKClcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuaGFuZGxlcnMpIHRoaXMuY29yZS4kZWxlbWVudC5vZmYoYSwgdGhpcy5oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sXG4gICAgICAgICAgYS5mbi5zYnlPd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkFuaW1hdGUgPSBlXG4gICAgfSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCksIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBiLCB0aGlzLl90aW1lb3V0ID0gbnVsbCwgdGhpcy5fcGF1c2VkID0gITEsIHRoaXMuX2hhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiY2hhbmdlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiBcInNldHRpbmdzXCIgPT09IGEucHJvcGVydHkubmFtZSA/IHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXkgPyB0aGlzLnBsYXkoKSA6IHRoaXMuc3RvcCgpIDogYS5uYW1lc3BhY2UgJiYgXCJwb3NpdGlvblwiID09PSBhLnByb3BlcnR5Lm5hbWUgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheSAmJiB0aGlzLl9zZXRBdXRvUGxheUludGVydmFsKClcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5ICYmIHRoaXMucGxheSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicGxheS5vd2wuYXV0b3BsYXlcIjogYS5wcm94eShmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiB0aGlzLnBsYXkoYiwgYylcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJzdG9wLm93bC5hdXRvcGxheVwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuc3RvcCgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwibW91c2VvdmVyLm93bC5hdXRvcGxheVwiOiBhLnByb3h5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheUhvdmVyUGF1c2UgJiYgdGhpcy5fY29yZS5pcyhcInJvdGF0aW5nXCIpICYmIHRoaXMucGF1c2UoKVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpLCBcIm1vdXNlbGVhdmUub3dsLmF1dG9wbGF5XCI6IGEucHJveHkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKFwicm90YXRpbmdcIikgJiYgdGhpcy5wbGF5KClcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJ0b3VjaHN0YXJ0Lm93bC5jb3JlXCI6IGEucHJveHkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKFwicm90YXRpbmdcIikgJiYgdGhpcy5wYXVzZSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwidG91Y2hlbmQub3dsLmNvcmVcIjogYS5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlIb3ZlclBhdXNlICYmIHRoaXMucGxheSgpXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpLCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge1xuICAgICAgICAgICAgYXV0b3BsYXk6ICExLFxuICAgICAgICAgICAgYXV0b3BsYXlUaW1lb3V0OiA1ZTMsXG4gICAgICAgICAgICBhdXRvcGxheUhvdmVyUGF1c2U6ICExLFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogITFcbiAgICAgICAgfSwgZS5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICB0aGlzLl9wYXVzZWQgPSAhMSwgdGhpcy5fY29yZS5pcyhcInJvdGF0aW5nXCIpIHx8ICh0aGlzLl9jb3JlLmVudGVyKFwicm90YXRpbmdcIiksIHRoaXMuX3NldEF1dG9QbGF5SW50ZXJ2YWwoKSlcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuX2dldE5leHRUaW1lb3V0ID0gZnVuY3Rpb24gKGQsIGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90aW1lb3V0ICYmIGIuY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLCBiLnNldFRpbWVvdXQoYS5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGF1c2VkIHx8IHRoaXMuX2NvcmUuaXMoXCJidXN5XCIpIHx8IHRoaXMuX2NvcmUuaXMoXCJpbnRlcmFjdGluZ1wiKSB8fCBjLmhpZGRlbiB8fCB0aGlzLl9jb3JlLm5leHQoZSB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5U3BlZWQpXG4gICAgICAgICAgICB9LCB0aGlzKSwgZCB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5VGltZW91dClcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuX3NldEF1dG9QbGF5SW50ZXJ2YWwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLl90aW1lb3V0ID0gdGhpcy5fZ2V0TmV4dFRpbWVvdXQoKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5fY29yZS5pcyhcInJvdGF0aW5nXCIpICYmIChiLmNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSwgdGhpcy5fY29yZS5sZWF2ZShcInJvdGF0aW5nXCIpKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUuaXMoXCJyb3RhdGluZ1wiKSAmJiAodGhpcy5fcGF1c2VkID0gITApXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYSwgYjtcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tiXSAmJiAodGhpc1tiXSA9IG51bGwpXG4gICAgICAgIH0sIGEuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5hdXRvcGxheSA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBiLCB0aGlzLl9pbml0aWFsaXplZCA9ICExLCB0aGlzLl9wYWdlcyA9IFtdLCB0aGlzLl9jb250cm9scyA9IHt9LCB0aGlzLl90ZW1wbGF0ZXMgPSBbXSwgdGhpcy4kZWxlbWVudCA9IHRoaXMuX2NvcmUuJGVsZW1lbnQsIHRoaXMuX292ZXJyaWRlcyA9IHtcbiAgICAgICAgICAgICAgICBuZXh0OiB0aGlzLl9jb3JlLm5leHQsXG4gICAgICAgICAgICAgICAgcHJldjogdGhpcy5fY29yZS5wcmV2LFxuICAgICAgICAgICAgICAgIHRvOiB0aGlzLl9jb3JlLnRvXG4gICAgICAgICAgICB9LCB0aGlzLl9oYW5kbGVycyA9IHtcbiAgICAgICAgICAgICAgICBcInByZXBhcmVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgICAgIGIubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuZG90c0RhdGEgJiYgdGhpcy5fdGVtcGxhdGVzLnB1c2goJzxkaXYgY2xhc3M9XCInICsgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RDbGFzcyArICdcIj4nICsgYShiLmNvbnRlbnQpLmZpbmQoXCJbZGF0YS1kb3RdXCIpLmFkZEJhY2soXCJbZGF0YS1kb3RdXCIpLmF0dHIoXCJkYXRhLWRvdFwiKSArIFwiPC9kaXY+XCIpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiYWRkZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSAmJiB0aGlzLl90ZW1wbGF0ZXMuc3BsaWNlKGEucG9zaXRpb24sIDAsIHRoaXMuX3RlbXBsYXRlcy5wb3AoKSlcbiAgICAgICAgICAgICAgICB9LCB0aGlzKSwgXCJyZW1vdmUub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSAmJiB0aGlzLl90ZW1wbGF0ZXMuc3BsaWNlKGEucG9zaXRpb24sIDEpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiY2hhbmdlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgICAgICBhLm5hbWVzcGFjZSAmJiBcInBvc2l0aW9uXCIgPT0gYS5wcm9wZXJ0eS5uYW1lICYmIHRoaXMuZHJhdygpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgYS5uYW1lc3BhY2UgJiYgIXRoaXMuX2luaXRpYWxpemVkICYmICh0aGlzLl9jb3JlLnRyaWdnZXIoXCJpbml0aWFsaXplXCIsIG51bGwsIFwibmF2aWdhdGlvblwiKSwgdGhpcy5pbml0aWFsaXplKCksIHRoaXMudXBkYXRlKCksIHRoaXMuZHJhdygpLCB0aGlzLl9pbml0aWFsaXplZCA9ICEwLCB0aGlzLl9jb3JlLnRyaWdnZXIoXCJpbml0aWFsaXplZFwiLCBudWxsLCBcIm5hdmlnYXRpb25cIikpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicmVmcmVzaGVkLm93bC5jYXJvdXNlbFwiOiBhLnByb3h5KGZ1bmN0aW9uIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGEubmFtZXNwYWNlICYmIHRoaXMuX2luaXRpYWxpemVkICYmICh0aGlzLl9jb3JlLnRyaWdnZXIoXCJyZWZyZXNoXCIsIG51bGwsIFwibmF2aWdhdGlvblwiKSwgdGhpcy51cGRhdGUoKSwgdGhpcy5kcmF3KCksIHRoaXMuX2NvcmUudHJpZ2dlcihcInJlZnJlc2hlZFwiLCBudWxsLCBcIm5hdmlnYXRpb25cIikpXG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH0sIHRoaXMuX2NvcmUub3B0aW9ucyA9IGEuZXh0ZW5kKHt9LCBlLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpLCB0aGlzLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge1xuICAgICAgICAgICAgbmF2OiAhMSxcbiAgICAgICAgICAgIG5hdlRleHQ6IFtcInByZXZcIiwgXCJuZXh0XCJdLFxuICAgICAgICAgICAgbmF2U3BlZWQ6ICExLFxuICAgICAgICAgICAgbmF2RWxlbWVudDogXCJkaXZcIixcbiAgICAgICAgICAgIG5hdkNvbnRhaW5lcjogITEsXG4gICAgICAgICAgICBuYXZDb250YWluZXJDbGFzczogXCJzYnktb3dsLW5hdlwiLFxuICAgICAgICAgICAgbmF2Q2xhc3M6IFtcInNieS1vd2wtcHJldlwiLCBcInNieS1vd2wtbmV4dFwiXSxcbiAgICAgICAgICAgIHNsaWRlQnk6IDEsXG4gICAgICAgICAgICBkb3RDbGFzczogXCJzYnktb3dsLWRvdFwiLFxuICAgICAgICAgICAgZG90c0NsYXNzOiBcInNieS1vd2wtZG90c1wiLFxuICAgICAgICAgICAgZG90czogITAsXG4gICAgICAgICAgICBkb3RzRWFjaDogITEsXG4gICAgICAgICAgICBkb3RzRGF0YTogITEsXG4gICAgICAgICAgICBkb3RzU3BlZWQ6ICExLFxuICAgICAgICAgICAgZG90c0NvbnRhaW5lcjogITFcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBiLCBjID0gdGhpcy5fY29yZS5zZXR0aW5ncztcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xzLiRyZWxhdGl2ZSA9IChjLm5hdkNvbnRhaW5lciA/IGEoYy5uYXZDb250YWluZXIpIDogYShcIjxkaXY+XCIpLmFkZENsYXNzKGMubmF2Q29udGFpbmVyQ2xhc3MpLmFwcGVuZFRvKHRoaXMuJGVsZW1lbnQpKS5hZGRDbGFzcyhcImRpc2FibGVkXCIpLCB0aGlzLl9jb250cm9scy4kcHJldmlvdXMgPSBhKFwiPFwiICsgYy5uYXZFbGVtZW50ICsgXCI+XCIpLmFkZENsYXNzKGMubmF2Q2xhc3NbMF0pLmh0bWwoYy5uYXZUZXh0WzBdKS5wcmVwZW5kVG8odGhpcy5fY29udHJvbHMuJHJlbGF0aXZlKS5vbihcImNsaWNrXCIsIGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXYoYy5uYXZTcGVlZClcbiAgICAgICAgICAgIH0sIHRoaXMpKSwgdGhpcy5fY29udHJvbHMuJG5leHQgPSBhKFwiPFwiICsgYy5uYXZFbGVtZW50ICsgXCI+XCIpLmFkZENsYXNzKGMubmF2Q2xhc3NbMV0pLmh0bWwoYy5uYXZUZXh0WzFdKS5hcHBlbmRUbyh0aGlzLl9jb250cm9scy4kcmVsYXRpdmUpLm9uKFwiY2xpY2tcIiwgYS5wcm94eShmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgICAgIHRoaXMubmV4dChjLm5hdlNwZWVkKVxuICAgICAgICAgICAgfSwgdGhpcykpLCBjLmRvdHNEYXRhIHx8ICh0aGlzLl90ZW1wbGF0ZXMgPSBbYShcIjxkaXY+XCIpLmFkZENsYXNzKGMuZG90Q2xhc3MpLmFwcGVuZChhKFwiPHNwYW4+XCIpKS5wcm9wKFwib3V0ZXJIVE1MXCIpXSksIHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZSA9IChjLmRvdHNDb250YWluZXIgPyBhKGMuZG90c0NvbnRhaW5lcikgOiBhKFwiPGRpdj5cIikuYWRkQ2xhc3MoYy5kb3RzQ2xhc3MpLmFwcGVuZFRvKHRoaXMuJGVsZW1lbnQpKS5hZGRDbGFzcyhcImRpc2FibGVkXCIpLCB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUub24oXCJjbGlja1wiLCBcImRpdlwiLCBhLnByb3h5KGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICAgICAgdmFyIGQgPSBhKGIudGFyZ2V0KS5wYXJlbnQoKS5pcyh0aGlzLl9jb250cm9scy4kYWJzb2x1dGUpID8gYShiLnRhcmdldCkuaW5kZXgoKSA6IGEoYi50YXJnZXQpLnBhcmVudCgpLmluZGV4KCk7XG4gICAgICAgICAgICAgICAgYi5wcmV2ZW50RGVmYXVsdCgpLCB0aGlzLnRvKGQsIGMuZG90c1NwZWVkKVxuICAgICAgICAgICAgfSwgdGhpcykpO1xuICAgICAgICAgICAgZm9yIChiIGluIHRoaXMuX292ZXJyaWRlcykgdGhpcy5fY29yZVtiXSA9IGEucHJveHkodGhpc1tiXSwgdGhpcylcbiAgICAgICAgfSwgZS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiLCBjLCBkO1xuICAgICAgICAgICAgZm9yIChhIGluIHRoaXMuX2hhbmRsZXJzKSB0aGlzLiRlbGVtZW50Lm9mZihhLCB0aGlzLl9oYW5kbGVyc1thXSk7XG4gICAgICAgICAgICBmb3IgKGIgaW4gdGhpcy5fY29udHJvbHMpIHRoaXMuX2NvbnRyb2xzW2JdLnJlbW92ZSgpO1xuICAgICAgICAgICAgZm9yIChkIGluIHRoaXMub3ZlcmlkZXMpIHRoaXMuX2NvcmVbZF0gPSB0aGlzLl9vdmVycmlkZXNbZF07XG4gICAgICAgICAgICBmb3IgKGMgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgdGhpc1tjXSAmJiAodGhpc1tjXSA9IG51bGwpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBhLCBiLCBjLCBkID0gdGhpcy5fY29yZS5jbG9uZXMoKS5sZW5ndGggLyAyLCBlID0gZCArIHRoaXMuX2NvcmUuaXRlbXMoKS5sZW5ndGgsXG4gICAgICAgICAgICAgIGYgPSB0aGlzLl9jb3JlLm1heGltdW0oITApLCBnID0gdGhpcy5fY29yZS5zZXR0aW5ncyxcbiAgICAgICAgICAgICAgaCA9IGcuY2VudGVyIHx8IGcuYXV0b1dpZHRoIHx8IGcuZG90c0RhdGEgPyAxIDogZy5kb3RzRWFjaCB8fCBnLml0ZW1zO1xuICAgICAgICAgICAgaWYgKFwicGFnZVwiICE9PSBnLnNsaWRlQnkgJiYgKGcuc2xpZGVCeSA9IE1hdGgubWluKGcuc2xpZGVCeSwgZy5pdGVtcykpLCBnLmRvdHMgfHwgXCJwYWdlXCIgPT0gZy5zbGlkZUJ5KSBmb3IgKHRoaXMuX3BhZ2VzID0gW10sIGEgPSBkLCBiID0gMCwgYyA9IDA7IGEgPCBlOyBhKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoYiA+PSBoIHx8IDAgPT09IGIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BhZ2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IE1hdGgubWluKGYsIGEgLSBkKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogYSAtIGQgKyBoIC0gMVxuICAgICAgICAgICAgICAgICAgICB9KSwgTWF0aC5taW4oZiwgYSAtIGQpID09PSBmKSBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgYiA9IDAsICsrY1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBiICs9IHRoaXMuX2NvcmUubWVyZ2Vycyh0aGlzLl9jb3JlLnJlbGF0aXZlKGEpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5kcmF3ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGIsIGMgPSB0aGlzLl9jb3JlLnNldHRpbmdzLCBkID0gdGhpcy5fY29yZS5pdGVtcygpLmxlbmd0aCA8PSBjLml0ZW1zLFxuICAgICAgICAgICAgICBlID0gdGhpcy5fY29yZS5yZWxhdGl2ZSh0aGlzLl9jb3JlLmN1cnJlbnQoKSksIGYgPSBjLmxvb3AgfHwgYy5yZXdpbmQ7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9scy4kcmVsYXRpdmUudG9nZ2xlQ2xhc3MoXCJkaXNhYmxlZFwiLCAhYy5uYXYgfHwgZCksIGMubmF2ICYmICh0aGlzLl9jb250cm9scy4kcHJldmlvdXMudG9nZ2xlQ2xhc3MoXCJkaXNhYmxlZFwiLCAhZiAmJiBlIDw9IHRoaXMuX2NvcmUubWluaW11bSghMCkpLCB0aGlzLl9jb250cm9scy4kbmV4dC50b2dnbGVDbGFzcyhcImRpc2FibGVkXCIsICFmICYmIGUgPj0gdGhpcy5fY29yZS5tYXhpbXVtKCEwKSkpLCB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUudG9nZ2xlQ2xhc3MoXCJkaXNhYmxlZFwiLCAhYy5kb3RzIHx8IGQpLCBjLmRvdHMgJiYgKGIgPSB0aGlzLl9wYWdlcy5sZW5ndGggLSB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5sZW5ndGgsIGMuZG90c0RhdGEgJiYgMCAhPT0gYiA/IHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5odG1sKHRoaXMuX3RlbXBsYXRlcy5qb2luKFwiXCIpKSA6IGIgPiAwID8gdGhpcy5fY29udHJvbHMuJGFic29sdXRlLmFwcGVuZChuZXcgQXJyYXkoYiArIDEpLmpvaW4odGhpcy5fdGVtcGxhdGVzWzBdKSkgOiBiIDwgMCAmJiB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5zbGljZShiKS5yZW1vdmUoKSwgdGhpcy5fY29udHJvbHMuJGFic29sdXRlLmZpbmQoXCIuYWN0aXZlXCIpLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpLCB0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5lcShhLmluQXJyYXkodGhpcy5jdXJyZW50KCksIHRoaXMuX3BhZ2VzKSkuYWRkQ2xhc3MoXCJhY3RpdmVcIikpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm9uVHJpZ2dlciA9IGZ1bmN0aW9uIChiKSB7XG4gICAgICAgICAgICB2YXIgYyA9IHRoaXMuX2NvcmUuc2V0dGluZ3M7XG4gICAgICAgICAgICBiLnBhZ2UgPSB7XG4gICAgICAgICAgICAgICAgaW5kZXg6IGEuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpLFxuICAgICAgICAgICAgICAgIGNvdW50OiB0aGlzLl9wYWdlcy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgc2l6ZTogYyAmJiAoYy5jZW50ZXIgfHwgYy5hdXRvV2lkdGggfHwgYy5kb3RzRGF0YSA/IDEgOiBjLmRvdHNFYWNoIHx8IGMuaXRlbXMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGUucHJvdG90eXBlLmN1cnJlbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgYiA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpO1xuICAgICAgICAgICAgcmV0dXJuIGEuZ3JlcCh0aGlzLl9wYWdlcywgYS5wcm94eShmdW5jdGlvbiAoYSwgYykge1xuICAgICAgICAgICAgICAgIHJldHVybiBhLnN0YXJ0IDw9IGIgJiYgYS5lbmQgPj0gYlxuICAgICAgICAgICAgfSwgdGhpcykpLnBvcCgpXG4gICAgICAgIH0sIGUucHJvdG90eXBlLmdldFBvc2l0aW9uID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIHZhciBjLCBkLCBlID0gdGhpcy5fY29yZS5zZXR0aW5ncztcbiAgICAgICAgICAgIHJldHVybiBcInBhZ2VcIiA9PSBlLnNsaWRlQnkgPyAoYyA9IGEuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpLCBkID0gdGhpcy5fcGFnZXMubGVuZ3RoLCBiID8gKytjIDogLS1jLCBjID0gdGhpcy5fcGFnZXNbKGMgJSBkICsgZCkgJSBkXS5zdGFydCkgOiAoYyA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpLCBkID0gdGhpcy5fY29yZS5pdGVtcygpLmxlbmd0aCwgYiA/IGMgKz0gZS5zbGlkZUJ5IDogYyAtPSBlLnNsaWRlQnkpLCBjXG4gICAgICAgIH0sIGUucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoYikge1xuICAgICAgICAgICAgYS5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuZ2V0UG9zaXRpb24oITApLCBiKVxuICAgICAgICB9LCBlLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgIGEucHJveHkodGhpcy5fb3ZlcnJpZGVzLnRvLCB0aGlzLl9jb3JlKSh0aGlzLmdldFBvc2l0aW9uKCExKSwgYilcbiAgICAgICAgfSwgZS5wcm90b3R5cGUudG8gPSBmdW5jdGlvbiAoYiwgYywgZCkge1xuICAgICAgICAgICAgdmFyIGU7XG4gICAgICAgICAgICAhZCAmJiB0aGlzLl9wYWdlcy5sZW5ndGggPyAoZSA9IHRoaXMuX3BhZ2VzLmxlbmd0aCwgYS5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuX3BhZ2VzWyhiICUgZSArIGUpICUgZV0uc3RhcnQsIGMpKSA6IGEucHJveHkodGhpcy5fb3ZlcnJpZGVzLnRvLCB0aGlzLl9jb3JlKShiLCBjKVxuICAgICAgICB9LCBhLmZuLnNieU93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuTmF2aWdhdGlvbiA9IGVcbiAgICB9KHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KSwgZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG4gICAgICAgIHZhciBlID0gZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvcmUgPSBjLCB0aGlzLl9oYXNoZXMgPSB7fSwgdGhpcy4kZWxlbWVudCA9IHRoaXMuX2NvcmUuJGVsZW1lbnQsIHRoaXMuX2hhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgIFwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgYy5uYW1lc3BhY2UgJiYgXCJVUkxIYXNoXCIgPT09IHRoaXMuX2NvcmUuc2V0dGluZ3Muc3RhcnRQb3NpdGlvbiAmJiBhKGIpLnRyaWdnZXIoXCJoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uXCIpXG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwicHJlcGFyZWQub3dsLmNhcm91c2VsXCI6IGEucHJveHkoZnVuY3Rpb24gKGIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGIubmFtZXNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IGEoYi5jb250ZW50KS5maW5kKFwiW2RhdGEtaGFzaF1cIikuYWRkQmFjayhcIltkYXRhLWhhc2hdXCIpLmF0dHIoXCJkYXRhLWhhc2hcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWMpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hhc2hlc1tjXSA9IGIuY29udGVudFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgdGhpcyksIFwiY2hhbmdlZC5vd2wuY2Fyb3VzZWxcIjogYS5wcm94eShmdW5jdGlvbiAoYykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYy5uYW1lc3BhY2UgJiYgXCJwb3NpdGlvblwiID09PSBjLnByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5fY29yZS5pdGVtcyh0aGlzLl9jb3JlLnJlbGF0aXZlKHRoaXMuX2NvcmUuY3VycmVudCgpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGUgPSBhLm1hcCh0aGlzLl9oYXNoZXMsIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYSA9PT0gZCA/IGIgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmpvaW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZSB8fCBiLmxvY2F0aW9uLmhhc2guc2xpY2UoMSkgPT09IGUpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGIubG9jYXRpb24uaGFzaCA9IGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIHRoaXMpXG4gICAgICAgICAgICB9LCB0aGlzLl9jb3JlLm9wdGlvbnMgPSBhLmV4dGVuZCh7fSwgZS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKSwgdGhpcy4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyksIGEoYikub24oXCJoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uXCIsIGEucHJveHkoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgICAgICB2YXIgYyA9IGIubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksIGUgPSB0aGlzLl9jb3JlLiRzdGFnZS5jaGlsZHJlbigpLFxuICAgICAgICAgICAgICAgICAgZiA9IHRoaXMuX2hhc2hlc1tjXSAmJiBlLmluZGV4KHRoaXMuX2hhc2hlc1tjXSk7XG4gICAgICAgICAgICAgICAgZiAhPT0gZCAmJiBmICE9PSB0aGlzLl9jb3JlLmN1cnJlbnQoKSAmJiB0aGlzLl9jb3JlLnRvKHRoaXMuX2NvcmUucmVsYXRpdmUoZiksICExLCAhMClcbiAgICAgICAgICAgIH0sIHRoaXMpKVxuICAgICAgICB9O1xuICAgICAgICBlLkRlZmF1bHRzID0ge1VSTGhhc2hMaXN0ZW5lcjogITF9LCBlLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGMsIGQ7XG4gICAgICAgICAgICBhKGIpLm9mZihcImhhc2hjaGFuZ2Uub3dsLm5hdmlnYXRpb25cIik7XG4gICAgICAgICAgICBmb3IgKGMgaW4gdGhpcy5faGFuZGxlcnMpIHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGMsIHRoaXMuX2hhbmRsZXJzW2NdKTtcbiAgICAgICAgICAgIGZvciAoZCBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkgXCJmdW5jdGlvblwiICE9IHR5cGVvZiB0aGlzW2RdICYmICh0aGlzW2RdID0gbnVsbClcbiAgICAgICAgfSwgYS5mbi5zYnlPd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkhhc2ggPSBlXG4gICAgfSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCksIGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICAgIGZ1bmN0aW9uIGUoYiwgYykge1xuICAgICAgICAgICAgdmFyIGUgPSAhMSwgZiA9IGIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBiLnNsaWNlKDEpO1xuICAgICAgICAgICAgcmV0dXJuIGEuZWFjaCgoYiArIFwiIFwiICsgaC5qb2luKGYgKyBcIiBcIikgKyBmKS5zcGxpdChcIiBcIiksIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAgICAgICAgICAgaWYgKGdbYl0gIT09IGQpIHJldHVybiBlID0gIWMgfHwgYiwgITFcbiAgICAgICAgICAgIH0pLCBlXG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBmKGEpIHtcbiAgICAgICAgICAgIHJldHVybiBlKGEsICEwKVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGcgPSBhKFwiPHN1cHBvcnQ+XCIpLmdldCgwKS5zdHlsZSwgaCA9IFwiV2Via2l0IE1veiBPIG1zXCIuc3BsaXQoXCIgXCIpLCBpID0ge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjoge1xuICAgICAgICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgICAgICAgICBXZWJraXRUcmFuc2l0aW9uOiBcIndlYmtpdFRyYW5zaXRpb25FbmRcIixcbiAgICAgICAgICAgICAgICAgICAgTW96VHJhbnNpdGlvbjogXCJ0cmFuc2l0aW9uZW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIE9UcmFuc2l0aW9uOiBcIm9UcmFuc2l0aW9uRW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IFwidHJhbnNpdGlvbmVuZFwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFuaW1hdGlvbjoge1xuICAgICAgICAgICAgICAgIGVuZDoge1xuICAgICAgICAgICAgICAgICAgICBXZWJraXRBbmltYXRpb246IFwid2Via2l0QW5pbWF0aW9uRW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIE1vekFuaW1hdGlvbjogXCJhbmltYXRpb25lbmRcIixcbiAgICAgICAgICAgICAgICAgICAgT0FuaW1hdGlvbjogXCJvQW5pbWF0aW9uRW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogXCJhbmltYXRpb25lbmRcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgaiA9IHtcbiAgICAgICAgICAgIGNzc3RyYW5zZm9ybXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFlKFwidHJhbnNmb3JtXCIpXG4gICAgICAgICAgICB9LCBjc3N0cmFuc2Zvcm1zM2Q6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFlKFwicGVyc3BlY3RpdmVcIilcbiAgICAgICAgICAgIH0sIGNzc3RyYW5zaXRpb25zOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICEhZShcInRyYW5zaXRpb25cIilcbiAgICAgICAgICAgIH0sIGNzc2FuaW1hdGlvbnM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gISFlKFwiYW5pbWF0aW9uXCIpXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGouY3NzdHJhbnNpdGlvbnMoKSAmJiAoYS5zdXBwb3J0LnRyYW5zaXRpb24gPSBuZXcgU3RyaW5nKGYoXCJ0cmFuc2l0aW9uXCIpKSwgYS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kID0gaS50cmFuc2l0aW9uLmVuZFthLnN1cHBvcnQudHJhbnNpdGlvbl0pLCBqLmNzc2FuaW1hdGlvbnMoKSAmJiAoYS5zdXBwb3J0LmFuaW1hdGlvbiA9IG5ldyBTdHJpbmcoZihcImFuaW1hdGlvblwiKSksIGEuc3VwcG9ydC5hbmltYXRpb24uZW5kID0gaS5hbmltYXRpb24uZW5kW2Euc3VwcG9ydC5hbmltYXRpb25dKSwgai5jc3N0cmFuc2Zvcm1zKCkgJiYgKGEuc3VwcG9ydC50cmFuc2Zvcm0gPSBuZXcgU3RyaW5nKGYoXCJ0cmFuc2Zvcm1cIikpLCBhLnN1cHBvcnQudHJhbnNmb3JtM2QgPSBqLmNzc3RyYW5zZm9ybXMzZCgpKVxuICAgIH0od2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpO1xuXG4gICAgLy8gVHdvIFJvdyBDYXJvdXNlbFxuICAgIDsoZnVuY3Rpb24gKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkge1xuICAgICAgICBPd2wycm93ID0gZnVuY3Rpb24gKHNjb3BlKSB7XG4gICAgICAgICAgICB0aGlzLm93bCA9IHNjb3BlO1xuICAgICAgICAgICAgdGhpcy5vd2wub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBPd2wycm93LkRlZmF1bHRzLCB0aGlzLm93bC5vcHRpb25zKTtcbiAgICAgICAgICAgIC8vbGluayBjYWxsYmFjayBldmVudHMgd2l0aCBvd2wgY2Fyb3VzZWwgaGVyZVxuXG4gICAgICAgICAgICB0aGlzLmhhbmRsZXJzID0ge1xuICAgICAgICAgICAgICAgICdpbml0aWFsaXplLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3dsLnNldHRpbmdzLm93bDJyb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYnVpbGQycm93KHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgdGhpcylcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMub3dsLiRlbGVtZW50Lm9uKHRoaXMuaGFuZGxlcnMpO1xuICAgICAgICB9O1xuXG4gICAgICAgIE93bDJyb3cuRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICBvd2wycm93OiBmYWxzZSxcbiAgICAgICAgICAgIG93bDJyb3dUYXJnZXQ6ICdzYnlfaXRlbScsXG4gICAgICAgICAgICBvd2wycm93Q29udGFpbmVyOiAnc2J5X293bDJyb3ctaXRlbScsXG4gICAgICAgICAgICBvd2wycm93RGlyZWN0aW9uOiAndXRkJyAvLyBsdHJcbiAgICAgICAgfTtcblxuICAgICAgICAvL21laHRvZHM6XG4gICAgICAgIE93bDJyb3cucHJvdG90eXBlLmJ1aWxkMnJvdyA9IGZ1bmN0aW9uICh0aGlzU2NvcGUpIHtcblxuICAgICAgICAgICAgdmFyIGNhcm91c2VsID0gJCh0aGlzU2NvcGUub3dsLiRlbGVtZW50KTtcbiAgICAgICAgICAgIHZhciBjYXJvdXNlbEl0ZW1zID0gY2Fyb3VzZWwuZmluZCgnLicgKyB0aGlzU2NvcGUub3dsLm9wdGlvbnMub3dsMnJvd1RhcmdldCk7XG5cbiAgICAgICAgICAgIHZhciBhRXZlbkVsZW1lbnRzID0gW107XG4gICAgICAgICAgICB2YXIgYU9kZEVsZW1lbnRzID0gW107XG5cbiAgICAgICAgICAgICQuZWFjaChjYXJvdXNlbEl0ZW1zLCBmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggJSAyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGFFdmVuRWxlbWVudHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhT2RkRWxlbWVudHMucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy9jYXJvdXNlbC5lbXB0eSgpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXNTY29wZS5vd2wub3B0aW9ucy5vd2wycm93RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbHRyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpc1Njb3BlLmxlZnRUb3JpZ2h0KHRoaXNTY29wZSwgY2Fyb3VzZWwsIGNhcm91c2VsSXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQgOlxuICAgICAgICAgICAgICAgICAgICB0aGlzU2NvcGUudXBUb2Rvd24odGhpc1Njb3BlLCBhRXZlbkVsZW1lbnRzLCBhT2RkRWxlbWVudHMsIGNhcm91c2VsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9O1xuXG4gICAgICAgIE93bDJyb3cucHJvdG90eXBlLmxlZnRUb3JpZ2h0ID0gZnVuY3Rpb24gKHRoaXNTY29wZSwgY2Fyb3VzZWwsIGNhcm91c2VsSXRlbXMpIHtcblxuICAgICAgICAgICAgdmFyIG8yd0NvbnRhaW5lckNsYXNzID0gdGhpc1Njb3BlLm93bC5vcHRpb25zLm93bDJyb3dDb250YWluZXI7XG4gICAgICAgICAgICB2YXIgb3dsTWFyZ2luID0gdGhpc1Njb3BlLm93bC5vcHRpb25zLm1hcmdpbjtcbiAgICAgICAgICAgIHZhciBjYXJvdXNlbEl0ZW1zTGVuZ3RoID0gY2Fyb3VzZWxJdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB2YXIgZmlyc0FyciA9IFtdO1xuICAgICAgICAgICAgdmFyIHNlY29uZEFyciA9IFtdO1xuXG4gICAgICAgICAgICBpZiAoY2Fyb3VzZWxJdGVtc0xlbmd0aCAlIDIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBjYXJvdXNlbEl0ZW1zTGVuZ3RoID0gKChjYXJvdXNlbEl0ZW1zTGVuZ3RoIC0gMSkgLyAyKSArIDE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhcm91c2VsSXRlbXNMZW5ndGggPSBjYXJvdXNlbEl0ZW1zTGVuZ3RoIC8gMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJC5lYWNoKGNhcm91c2VsSXRlbXMsIGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBjYXJvdXNlbEl0ZW1zTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnNBcnIucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWNvbmRBcnIucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJC5lYWNoKGZpcnNBcnIsIGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgIHZhciByb3dDb250YWluZXIgPSAkKCc8ZGl2IGNsYXNzPVwiJyArIG8yd0NvbnRhaW5lckNsYXNzICsgJ1wiLz4nKTtcblxuICAgICAgICAgICAgICAgIHZhciBmaXJzdFJvd0VsZW1lbnQgPSBmaXJzQXJyW2luZGV4XTtcbiAgICAgICAgICAgICAgICBmaXJzdFJvd0VsZW1lbnQuc3R5bGUubWFyZ2luQm90dG9tID0gb3dsTWFyZ2luICsgJ3B4JztcblxuICAgICAgICAgICAgICAgIHJvd0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgLmFwcGVuZChmaXJzdFJvd0VsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAuYXBwZW5kKHNlY29uZEFycltpbmRleF0pO1xuXG4gICAgICAgICAgICAgICAgY2Fyb3VzZWwuYXBwZW5kKHJvd0NvbnRhaW5lcik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9O1xuXG4gICAgICAgIE93bDJyb3cucHJvdG90eXBlLnVwVG9kb3duID0gZnVuY3Rpb24gKHRoaXNTY29wZSwgYUV2ZW5FbGVtZW50cywgYU9kZEVsZW1lbnRzLCBjYXJvdXNlbCkge1xuXG4gICAgICAgICAgICB2YXIgbzJ3Q29udGFpbmVyQ2xhc3MgPSB0aGlzU2NvcGUub3dsLm9wdGlvbnMub3dsMnJvd0NvbnRhaW5lcjtcbiAgICAgICAgICAgIHZhciBvd2xNYXJnaW4gPSB0aGlzU2NvcGUub3dsLm9wdGlvbnMubWFyZ2luO1xuXG4gICAgICAgICAgICAkLmVhY2goYUV2ZW5FbGVtZW50cywgZnVuY3Rpb24gKGluZGV4LCBpdGVtKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgcm93Q29udGFpbmVyID0gJCgnPGRpdiBjbGFzcz1cIicgKyBvMndDb250YWluZXJDbGFzcyArICdcIi8+Jyk7XG4gICAgICAgICAgICAgICAgdmFyIGV2ZW5FbGVtZW50ID0gYUV2ZW5FbGVtZW50c1tpbmRleF07XG5cbiAgICAgICAgICAgICAgICBldmVuRWxlbWVudC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBvd2xNYXJnaW4gKyAncHgnO1xuXG4gICAgICAgICAgICAgICAgcm93Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAuYXBwZW5kKGV2ZW5FbGVtZW50KVxuICAgICAgICAgICAgICAgICAgLmFwcGVuZChhT2RkRWxlbWVudHNbaW5kZXhdKTtcblxuICAgICAgICAgICAgICAgIGNhcm91c2VsLmFwcGVuZChyb3dDb250YWluZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uXG4gICAgICAgICAqL1xuICAgICAgICBPd2wycm93LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIsIHByb3BlcnR5O1xuICAgICAgICB9O1xuXG4gICAgICAgICQuZm4uc2J5T3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2luc1snb3dsMnJvdyddID0gT3dsMnJvdztcbiAgICB9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7XG5cbiAgICAoZnVuY3Rpb24oJCl7XG5cbiAgICAgICAgZnVuY3Rpb24gc2J5QWRkVmlzaWJpbGl0eUxpc3RlbmVyKCkge1xuICAgICAgICAgICAgLyogRGV0ZWN0IHdoZW4gZWxlbWVudCBiZWNvbWVzIHZpc2libGUuIFVzZWQgZm9yIHdoZW4gdGhlIGZlZWQgaXMgaW5pdGlhbGx5IGhpZGRlbiwgaW4gYSB0YWIgZm9yIGV4YW1wbGUuIGh0dHBzOi8vZ2l0aHViLmNvbS9zaGF1bmJvd2UvanF1ZXJ5LnZpc2liaWxpdHlDaGFuZ2VkICovXG4gICAgICAgICAgICAhZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgICAgICB2YXIgbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgfSwgcnVuT25Mb2FkOiAhMCwgZnJlcXVlbmN5OiAxMDAsIHNieVByZXZpb3VzVmlzaWJpbGl0eTogbnVsbFxuICAgICAgICAgICAgICAgIH0sIGMgPSB7fTtcbiAgICAgICAgICAgICAgICBjLnNieUNoZWNrVmlzaWJpbGl0eSA9IGZ1bmN0aW9uIChpLCBuKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChqUXVlcnkuY29udGFpbnMoZG9jdW1lbnQsIGlbMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZSA9IG4uc2J5UHJldmlvdXNWaXNpYmlsaXR5LCB0ID0gaS5pcyhcIjp2aXNpYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbi5zYnlQcmV2aW91c1Zpc2liaWxpdHkgPSB0LCBudWxsID09IGUgPyBuLnJ1bk9uTG9hZCAmJiBuLmNhbGxiYWNrKGksIHQpIDogZSAhPT0gdCAmJiBuLmNhbGxiYWNrKGksIHQpLCBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLnNieUNoZWNrVmlzaWJpbGl0eShpLCBuKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgbi5mcmVxdWVuY3kpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBpLmZuLnNieVZpc2liaWxpdHlDaGFuZ2VkID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBpLmV4dGVuZCh7fSwgbiwgZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYy5zYnlDaGVja1Zpc2liaWxpdHkoaSh0aGlzKSwgdClcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KGpRdWVyeSk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBTYnkoKSB7XG4gICAgICAgICAgICB0aGlzLmZlZWRzID0ge307XG4gICAgICAgICAgICB0aGlzLmN0YXMgPSB7fTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHNieU9wdGlvbnM7XG4gICAgICAgICAgICB0aGlzLmlzVG91Y2ggPSBzYnlJc1RvdWNoKCk7XG4gICAgICAgIH1cblxuICAgICAgICBTYnkucHJvdG90eXBlID0ge1xuICAgICAgICAgICAgY3JlYXRlUGFnZTogZnVuY3Rpb24gKGNyZWF0ZUZlZWRzLCBjcmVhdGVGZWVkc0FyZ3MpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5zYnlhamF4dXJsID09PSAndW5kZWZpbmVkJyB8fCB3aW5kb3cuc2J5YWpheHVybC5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlhamF4dXJsID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICsgJy93cC1hZG1pbi9hZG1pbi1hamF4LnBocCc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJCgnLnNieV9ub19qc19lcnJvcl9tZXNzYWdlJykucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgJCgnLnNieV9ub19qcycpLnJlbW92ZUNsYXNzKCdzYnlfbm9fanMnKTtcblxuICAgICAgICAgICAgICAgIGNyZWF0ZUZlZWRzKGNyZWF0ZUZlZWRzQXJncyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbWF5YmVBZGRZVEFQSTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHlvdXR1YmVTY3JpcHRJZCA9IFwic2J5LXlvdXR1YmUtYXBpXCI7XG4gICAgICAgICAgICAgICAgdmFyIHlvdXR1YmVTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh5b3V0dWJlU2NyaXB0SWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHlvdXR1YmVTY3JpcHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmaXJzdFNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpWzBdO1xuXG4gICAgICAgICAgICAgICAgICAgIHRhZy5zcmMgPSBcImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2lmcmFtZV9hcGlcIjtcbiAgICAgICAgICAgICAgICAgICAgdGFnLmlkID0geW91dHViZVNjcmlwdElkO1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFNjcmlwdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0YWcsIGZpcnN0U2NyaXB0KTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjcmVhdGVMaWdodGJveDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxiQnVpbGRlciA9IHNieUdldGxpZ2h0Ym94QnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIHZhciBzYnlfbGJfZGVsYXkgPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2J5X3RpbWVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChzYnlfY2FsbGJhY2ssIHNieV9tcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHNieV90aW1lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzYnlfdGltZXIgPSBzZXRUaW1lb3V0KHNieV9jYWxsYmFjaywgc2J5X21zKTtcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgIGpRdWVyeSh3aW5kb3cpLm9uKCdyZXNpemUnLGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2J5X2xiX2RlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxiQnVpbGRlci5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8qIExpZ2h0Ym94IHYyLjcuMSBieSBMb2tlc2ggRGhha2FyIC0gaHR0cDovL2xva2VzaGRoYWthci5jb20vcHJvamVjdHMvbGlnaHRib3gyLyAtIEhlYXZpbHkgbW9kaWZpZWQgc3BlY2lmaWNhbGx5IGZvciB0aGlzIHBsdWdpbiAqL1xuICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSBqUXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBhKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWRlRHVyYXRpb24gPSA1MDAsIHRoaXMuZml0SW1hZ2VzSW5WaWV3cG9ydCA9ICEwLCB0aGlzLnJlc2l6ZUR1cmF0aW9uID0gNzAwLCB0aGlzLnBvc2l0aW9uRnJvbVRvcCA9IDUwLCB0aGlzLnNob3dJbWFnZU51bWJlckxhYmVsID0gITAsIHRoaXMuYWx3YXlzU2hvd05hdk9uVG91Y2hEZXZpY2VzID0gITEsIHRoaXMud3JhcEFyb3VuZCA9ICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEucHJvdG90eXBlLmFsYnVtTGFiZWwgPSBmdW5jdGlvbihhLCBiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYSArIFwiIC8gXCIgKyBiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGFcbiAgICAgICAgICAgICAgICAgICAgICB9KCksXG4gICAgICAgICAgICAgICAgICAgICAgYyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBiKGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IGEsIHRoaXMuYWxidW0gPSBbXSwgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IHZvaWQgMCwgdGhpcy5pbml0KClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGUoKSwgdGhpcy5idWlsZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGIucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYShcImJvZHlcIikub24oXCJjbGlja1wiLCBcImFbZGF0YS1zYnktbGlnaHRib3hdXCIsIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5zdGFydChhKGMuY3VycmVudFRhcmdldCkpLCAhMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuYnVpbGQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoXCJcIitcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnRlbXBsYXRlKCkpLmFwcGVuZFRvKGEoXCJib2R5XCIpKSwgdGhpcy4kbGlnaHRib3ggPSBhKFwiI3NieV9saWdodGJveFwiKSwgdGhpcy4kb3ZlcmxheSA9IGEoXCIjc2J5X2xpZ2h0Ym94T3ZlcmxheVwiKSwgdGhpcy4kb3V0ZXJDb250YWluZXIgPSB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1vdXRlckNvbnRhaW5lclwiKSwgdGhpcy4kY29udGFpbmVyID0gdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItY29udGFpbmVyXCIpLCB0aGlzLmNvbnRhaW5lclRvcFBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRjb250YWluZXIuY3NzKFwicGFkZGluZy10b3BcIiksIDEwKSwgdGhpcy5jb250YWluZXJSaWdodFBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRjb250YWluZXIuY3NzKFwicGFkZGluZy1yaWdodFwiKSwgMTApLCB0aGlzLmNvbnRhaW5lckJvdHRvbVBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRjb250YWluZXIuY3NzKFwicGFkZGluZy1ib3R0b21cIiksIDEwKSwgdGhpcy5jb250YWluZXJMZWZ0UGFkZGluZyA9IHBhcnNlSW50KHRoaXMuJGNvbnRhaW5lci5jc3MoXCJwYWRkaW5nLWxlZnRcIiksIDEwKSwgdGhpcy4kb3ZlcmxheS5oaWRlKCkub24oXCJjbGlja1wiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5lbmQoKSwgITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCBqUXVlcnkoZG9jdW1lbnQpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50LCBiLCBjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9GYWRlIG91dCB0aGUgbGlnaHRib3ggaWYgY2xpY2sgYW55d2hlcmUgb3V0c2lkZSBvZiB0aGUgdHdvIGVsZW1lbnRzIGRlZmluZWQgYmVsb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWpRdWVyeShldmVudC50YXJnZXQpLmNsb3Nlc3QoJy5zYnlfbGItb3V0ZXJDb250YWluZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFqUXVlcnkoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCcuc2J5X2xiLWRhdGFDb250YWluZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRmFkZSBvdXQgbGlnaHRib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0Ym94T25DbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkoJyNzYnlfbGlnaHRib3hPdmVybGF5LCAjc2J5X2xpZ2h0Ym94JykuZmFkZU91dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHRoaXMuJGxpZ2h0Ym94LmhpZGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcjc2J5X2xpZ2h0Ym94T3ZlcmxheScpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24oYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcInNieV9saWdodGJveFwiID09PSBhKGMudGFyZ2V0KS5hdHRyKFwiaWRcIikgJiYgYi5lbmQoKSwgITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLXByZXZcIikub24oXCJjbGlja1wiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYkJ1aWxkZXIucGF1c2VQbGF5ZXIoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLmNoYW5nZUltYWdlKDAgPT09IGIuY3VycmVudEltYWdlSW5kZXggPyBiLmFsYnVtLmxlbmd0aCAtIDEgOiBiLmN1cnJlbnRJbWFnZUluZGV4IC0gMSksICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItY29udGFpbmVyXCIpLm9uKFwic3dpcGVyaWdodFwiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYkJ1aWxkZXIucGF1c2VQbGF5ZXIoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLmNoYW5nZUltYWdlKDAgPT09IGIuY3VycmVudEltYWdlSW5kZXggPyBiLmFsYnVtLmxlbmd0aCAtIDEgOiBiLmN1cnJlbnRJbWFnZUluZGV4IC0gMSksICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItbmV4dFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxiQnVpbGRlci5wYXVzZVBsYXllcigpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIuY2hhbmdlSW1hZ2UoYi5jdXJyZW50SW1hZ2VJbmRleCA9PT0gYi5hbGJ1bS5sZW5ndGggLSAxID8gMCA6IGIuY3VycmVudEltYWdlSW5kZXggKyAxKSwgITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1jb250YWluZXJcIikub24oXCJzd2lwZWxlZnRcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5jaGFuZ2VJbWFnZShiLmN1cnJlbnRJbWFnZUluZGV4ID09PSBiLmFsYnVtLmxlbmd0aCAtIDEgPyAwIDogYi5jdXJyZW50SW1hZ2VJbmRleCArIDEpLCAhMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItbG9hZGVyLCAuc2J5X2xiLWNsb3NlXCIpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWdodGJveE9uQ2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxiQnVpbGRlci5wYXVzZVBsYXllcigpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIuZW5kKCksICExXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5zdGFydCA9IGZ1bmN0aW9uKGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGMoYSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuYWxidW0ucHVzaChsYkJ1aWxkZXIuZ2V0RGF0YShhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSA9IGEod2luZG93KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUub24oXCJyZXNpemVcIiwgYS5wcm94eSh0aGlzLnNpemVPdmVybGF5LCB0aGlzKSksIGEoXCJzZWxlY3QsIG9iamVjdCwgZW1iZWRcIikuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGhpcy5zaXplT3ZlcmxheSgpLCB0aGlzLmFsYnVtID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZiwgZyA9IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGggPSBiLmF0dHIoXCJkYXRhLXNieS1saWdodGJveFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiA9IGEoYi5wcm9wKFwidGFnTmFtZVwiKSArICdbZGF0YS1zYnktbGlnaHRib3g9XCInICsgaCArICdcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGYubGVuZ3RoOyBpID0gKytpKSBjKGEoZltpXSkpLCBmW2ldID09PSBiWzBdICYmIChnID0gaSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXCJsaWdodGJveFwiID09PSBiLmF0dHIoXCJyZWxcIikpIGMoYik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmID0gYShiLnByb3AoXCJ0YWdOYW1lXCIpICsgJ1tyZWw9XCInICsgYi5hdHRyKFwicmVsXCIpICsgJ1wiXScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZi5sZW5ndGg7IGogPSArK2opIGMoYShmW2pdKSksIGZbal0gPT09IGJbMF0gJiYgKGcgPSBqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGsgPSBlLnNjcm9sbFRvcCgpICsgdGhpcy5vcHRpb25zLnBvc2l0aW9uRnJvbVRvcCAtIDUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsID0gZS5zY3JvbGxMZWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogayArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBsICsgXCJweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5mYWRlSW4odGhpcy5vcHRpb25zLmZhZGVEdXJhdGlvbiksIHRoaXMuY2hhbmdlSW1hZ2UoZylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuY2hhbmdlSW1hZ2UgPSBmdW5jdGlvbihiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYyA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1pbWFnZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG92ZXJsYXkuZmFkZUluKHRoaXMub3B0aW9ucy5mYWRlRHVyYXRpb24pLCBhKFwiLnNieV9sYi1sb2FkZXJcIikuZmFkZUluKFwic2xvd1wiKSwgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItaW1hZ2UsIC5zYnlfbGItbmF2LCAuc2J5X2xiLXByZXYsIC5zYnlfbGItbmV4dCwgLnNieV9sYi1kYXRhQ29udGFpbmVyLCAuc2J5X2xiLW51bWJlcnMsIC5zYnlfbGItY2FwdGlvblwiKS5oaWRlKCksIHRoaXMuJG91dGVyQ29udGFpbmVyLmFkZENsYXNzKFwiYW5pbWF0aW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGUgPSBuZXcgSW1hZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLm9ubG9hZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmLCBnLCBoLCBpLCBqLCBrLCBsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzYnlBcnJvd1dpZHRoID0gMTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuYXR0cihcInNyY1wiLCBjLmFsYnVtW2JdLmxpbmspLCBmID0gYShlKSwgZC53aWR0aChlLndpZHRoKSwgZC5oZWlnaHQoZS5oZWlnaHQpLCBjLm9wdGlvbnMuZml0SW1hZ2VzSW5WaWV3cG9ydCAmJiAobCA9IGEod2luZG93KS53aWR0aCgpLCBrID0gYSh3aW5kb3cpLmhlaWdodCgpLCBqID0gbCAtIGMuY29udGFpbmVyTGVmdFBhZGRpbmcgLSBjLmNvbnRhaW5lclJpZ2h0UGFkZGluZyAtIDIwIC0gc2J5QXJyb3dXaWR0aCwgaSA9IGsgLSBjLmNvbnRhaW5lclRvcFBhZGRpbmcgLSBjLmNvbnRhaW5lckJvdHRvbVBhZGRpbmcgLSAxNTAsIChlLndpZHRoID4gaiB8fCBlLmhlaWdodCA+IGkpICYmIChlLndpZHRoIC8gaiA+IGUuaGVpZ2h0IC8gaSA/IChoID0gaiwgZyA9IHBhcnNlSW50KGUuaGVpZ2h0IC8gKGUud2lkdGggLyBoKSwgMTApLCBkLndpZHRoKGgpLCBkLmhlaWdodChnKSkgOiAoZyA9IGksIGggPSBwYXJzZUludChlLndpZHRoIC8gKGUuaGVpZ2h0IC8gZyksIDEwKSwgZC53aWR0aChoKSwgZC5oZWlnaHQoZykpKSksIGMuc2l6ZUNvbnRhaW5lcihkLndpZHRoKCksIGQuaGVpZ2h0KCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBlLnNyYyA9IHRoaXMuYWxidW1bYl0ubGluaywgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuc2l6ZU92ZXJsYXkgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG92ZXJsYXkud2lkdGgoYSh3aW5kb3cpLndpZHRoKCkpLmhlaWdodChhKGRvY3VtZW50KS5oZWlnaHQoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuc2l6ZUNvbnRhaW5lciA9IGZ1bmN0aW9uKGEsIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGMoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC4kbGlnaHRib3guZmluZChcIi5zYnlfbGItZGF0YUNvbnRhaW5lclwiKS53aWR0aChnKSwgZC4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldkxpbmtcIikuaGVpZ2h0KGgpLCBkLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1uZXh0TGlua1wiKS5oZWlnaHQoaCksIGQuc2hvd0ltYWdlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZSA9IHRoaXMuJG91dGVyQ29udGFpbmVyLm91dGVyV2lkdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiA9IHRoaXMuJG91dGVyQ29udGFpbmVyLm91dGVySGVpZ2h0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGcgPSBhICsgdGhpcy5jb250YWluZXJMZWZ0UGFkZGluZyArIHRoaXMuY29udGFpbmVyUmlnaHRQYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoID0gYiArIHRoaXMuY29udGFpbmVyVG9wUGFkZGluZyArIHRoaXMuY29udGFpbmVyQm90dG9tUGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUgIT09IGcgfHwgZiAhPT0gaCA/IHRoaXMuJG91dGVyQ29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy5vcHRpb25zLnJlc2l6ZUR1cmF0aW9uLCBcInN3aW5nXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgOiBjKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuc2hvd0ltYWdlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1sb2FkZXJcIikuaGlkZSgpLCB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1pbWFnZVwiKS5mYWRlSW4oXCJzbG93XCIpLCB0aGlzLnVwZGF0ZU5hdigpLCB0aGlzLnVwZGF0ZURldGFpbHMoKSwgdGhpcy5wcmVsb2FkTmVpZ2hib3JpbmdJbWFnZXMoKSwgdGhpcy5lbmFibGVLZXlib2FyZE5hdigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGIucHJvdG90eXBlLnVwZGF0ZU5hdiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSAhMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJUb3VjaEV2ZW50XCIpLCBhID0gdGhpcy5vcHRpb25zLmFsd2F5c1Nob3dOYXZPblRvdWNoRGV2aWNlcyA/ICEwIDogITFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGIpIHt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1uYXZcIikuc2hvdygpLCB0aGlzLmFsYnVtLmxlbmd0aCA+IDEgJiYgKHRoaXMub3B0aW9ucy53cmFwQXJvdW5kID8gKGEgJiYgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldiwgLnNieV9sYi1uZXh0XCIpLmNzcyhcIm9wYWNpdHlcIiwgXCIxXCIpLCB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1wcmV2LCAuc2J5X2xiLW5leHRcIikuc2hvdygpKSA6ICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ID4gMCAmJiAodGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldlwiKS5zaG93KCksIGEgJiYgdGhpcy4kbGlnaHRib3guZmluZChcIi5zYnlfbGItcHJldlwiKS5jc3MoXCJvcGFjaXR5XCIsIFwiMVwiKSksIHRoaXMuY3VycmVudEltYWdlSW5kZXggPCB0aGlzLmFsYnVtLmxlbmd0aCAtIDEgJiYgKHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLW5leHRcIikuc2hvdygpLCBhICYmIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLW5leHRcIikuY3NzKFwib3BhY2l0eVwiLCBcIjFcIikpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUudXBkYXRlRGV0YWlscyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGIgPSB0aGlzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiogTkVXIFBIT1RPIEFDVElPTiAqKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGpRdWVyeSgnaWZyYW1lLnNieV9sYi1wbGF5ZXItbG9hZGVkJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2J5X2xiLXBsYXllci1wbGFjZWhvbGRlcicpLnJlcGxhY2VXaXRoKGpRdWVyeSgnaWZyYW1lLnNieV9sYi1wbGF5ZXItbG9hZGVkJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSgnaWZyYW1lLnNieV9sYi1wbGF5ZXItbG9hZGVkJykucmVtb3ZlQ2xhc3MoJ3NieV9sYi1wbGF5ZXItbG9hZGVkJykuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9Td2l0Y2ggdmlkZW8gd2hlbiBlaXRoZXIgYSBuZXcgcG9wdXAgb3IgbmF2aWdhdGluZyB0byBuZXcgb25lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmVlZCA9IHdpbmRvdy5zYnkuZmVlZHNbdGhpcy5hbGJ1bVt0aGlzLmN1cnJlbnRJbWFnZUluZGV4XS5mZWVkSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLmJlZm9yZVBsYXllclNldHVwKHRoaXMuJGxpZ2h0Ym94LHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0sdGhpcy5jdXJyZW50SW1hZ2VJbmRleCx0aGlzLmFsYnVtLGZlZWQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggc2J5X3N1cHBvcnRzX3ZpZGVvKCkgKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkoJyNzYnlfbGlnaHRib3gnKS5yZW1vdmVDbGFzcygnc2J5X3ZpZGVvX2xpZ2h0Ym94Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuICYmIHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0udmlkZW8ubGVuZ3RoKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2J5X2dkcHJfbm90aWNlJykucmVtb3ZlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHBsYXllcklEID0gJ3NieV9sYi1wbGF5ZXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkoJyNzYnlfbGlnaHRib3gnKS5hZGRDbGFzcygnc2J5X3ZpZGVvX2xpZ2h0Ym94Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggISB3aW5kb3cuc2J5T3B0aW9ucy5pc1BybyApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSgnI3NieV9saWdodGJveCcpLmFkZENsYXNzKCdzYnlfbGlnaHRib3hfZnJlZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZGVvSUQgPSB0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLnZpZGVvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5ID0gc2J5T3B0aW9ucy5hdXRvcGxheTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuc2J5TGlnaHRib3hQbGF5ZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0OiB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBmZWVkLmVtYmVkVVJMLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ6IHZpZGVvSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyVmFyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rlc3RicmFuZGluZzogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvcGxheTogYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25TdGF0ZUNoYW5nZSc6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gZGF0YS50YXJnZXQuZ2V0VmlkZW9EYXRhKClbJ3ZpZGVvX2lkJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyU3RhdGVDaGFuZ2UocGxheWVySUQsdmlkZW9JRCxkYXRhLCQoJyMnICsgcGxheWVySUQpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsX3dyYXAnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5tYXliZUFkZENUQShwbGF5ZXJJRCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlMaWdodGJveFBsYXllciA9IG5ldyB3aW5kb3cuWVQuUGxheWVyKHBsYXllcklELCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlMaWdodGJveFBsYXllci5sb2FkVmlkZW9CeUlkKHZpZGVvSUQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kb3V0ZXJDb250YWluZXIucmVtb3ZlQ2xhc3MoXCJhbmltYXRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLWRhdGFDb250YWluZXJcIikuZmFkZUluKHRoaXMub3B0aW9ucy5yZXNpemVEdXJhdGlvbiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi5zaXplT3ZlcmxheSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItcGxheWVyJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JyA6ICQoJyNzYnlfbGlnaHRib3ggLnNieV9sYi1vdXRlckNvbnRhaW5lcicpLmhlaWdodCgpKydweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJyA6ICQoJyNzYnlfbGlnaHRib3ggLnNieV9sYi1vdXRlckNvbnRhaW5lcicpLndpZHRoKCkrJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9wJzogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuJGxpZ2h0Ym94LmZpbmQoJ2lmcmFtZScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kbGlnaHRib3guZmluZCgnaWZyYW1lJykuYXR0cigndGl0bGUnLHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleF0udmlkZW9UaXRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGZ1bGxJbWFnZSA9ICQoJy5zYnlfaXRlbVtkYXRhLXZpZGVvLWlkPScgKyB0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLnZpZGVvKyddJykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWZ1bGwtcmVzJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zYnlfbGItaW1hZ2UnKS5hdHRyKCdzcmMnLGZ1bGxJbWFnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJG91dGVyQ29udGFpbmVyLnJlbW92ZUNsYXNzKFwiYW5pbWF0aW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1kYXRhQ29udGFpbmVyXCIpLmZhZGVJbih0aGlzLm9wdGlvbnMucmVzaXplRHVyYXRpb24sIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGIuc2l6ZU92ZXJsYXkoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KFwiLnNieV9sYi1jb250YWluZXJcIikucHJlcGVuZCgnPGEgaHJlZj1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Jyt0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLnZpZGVvKydcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3M9XCJzYnlfZ2Rwcl9ub3RpY2VcIj48c3ZnIHN0eWxlPVwiY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMSlcIiBjbGFzcz1cInN2Zy1pbmxpbmUtLWZhIGZhLXBsYXkgZmEtdy0xNCBzYnlfcGxheWJ0blwiIGFyaWEtbGFiZWw9XCJQbGF5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZGF0YS1mYS1wcm9jZXNzZWQ9XCJcIiBkYXRhLXByZWZpeD1cImZhXCIgZGF0YS1pY29uPVwicGxheVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA0NDggNTEyXCI+PHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNNDI0LjQgMjE0LjdMNzIuNCA2LjZDNDMuOC0xMC4zIDAgNi4xIDAgNDcuOVY0NjRjMCAzNy41IDQwLjcgNjAuMSA3Mi40IDQxLjNsMzUyLTIwOGMzMS40LTE4LjUgMzEuNS02NC4xIDAtODIuNnpcIj48L3BhdGg+PC9zdmc+PC9hPicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYkJ1aWxkZXIuYWZ0ZXJQbGF5ZXJTZXR1cCh0aGlzLiRsaWdodGJveCx0aGlzLmFsYnVtW3RoaXMuY3VycmVudEltYWdlSW5kZXhdLHRoaXMuY3VycmVudEltYWdlSW5kZXgsdGhpcy5hbGJ1bSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hbGJ1bS5sZW5ndGggPiAxICYmIHRoaXMub3B0aW9ucy5zaG93SW1hZ2VOdW1iZXJMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRsaWdodGJveC5maW5kKFwiLnNieV9sYi1udW1iZXJcIikudGV4dCh0aGlzLm9wdGlvbnMuYWxidW1MYWJlbCh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICsgMSwgdGhpcy5hbGJ1bS5sZW5ndGgpKS5mYWRlSW4oXCJmYXN0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLW51bWJlclwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGIucHJvdG90eXBlLnByZWxvYWROZWlnaGJvcmluZ0ltYWdlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWxidW0ubGVuZ3RoID4gdGhpcy5jdXJyZW50SW1hZ2VJbmRleCArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IG5ldyBJbWFnZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLnNyYyA9IHRoaXMuYWxidW1bdGhpcy5jdXJyZW50SW1hZ2VJbmRleCArIDFdLmxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiID0gbmV3IEltYWdlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIuc3JjID0gdGhpcy5hbGJ1bVt0aGlzLmN1cnJlbnRJbWFnZUluZGV4IC0gMV0ubGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5lbmFibGVLZXlib2FyZE5hdiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYShkb2N1bWVudCkub24oXCJrZXl1cC5rZXlib2FyZFwiLCBhLnByb3h5KHRoaXMua2V5Ym9hcmRBY3Rpb24sIHRoaXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5kaXNhYmxlS2V5Ym9hcmROYXYgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEoZG9jdW1lbnQpLm9mZihcIi5rZXlib2FyZFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBiLnByb3RvdHlwZS5rZXlib2FyZEFjdGlvbiA9IGZ1bmN0aW9uKGEpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEtFWUNPREVfRVNDICAgICAgICA9IDI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEtFWUNPREVfTEVGVEFSUk9XICA9IDM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIEtFWUNPREVfUklHSFRBUlJPVyA9IDM5O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5Y29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5ICAgICA9IFN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXljb2RlID09PSBLRVlDT0RFX0VTQyB8fCBrZXkubWF0Y2goL3h8b3xjLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggc2J5X3N1cHBvcnRzX3ZpZGVvKCkgKSAkKCcjc2J5X2xpZ2h0Ym94IHZpZGVvLnNieV92aWRlbycpWzBdLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NieV9saWdodGJveCBpZnJhbWUnKS5hdHRyKCdzcmMnLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncCcgfHwga2V5Y29kZSA9PT0gS0VZQ09ERV9MRUZUQVJST1cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SW1hZ2VJbmRleCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltYWdlKHRoaXMuY3VycmVudEltYWdlSW5kZXggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy53cmFwQXJvdW5kICYmIHRoaXMuYWxidW0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltYWdlKHRoaXMuYWxidW0ubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHNieV9zdXBwb3J0c192aWRlbygpICkgJCgnI3NieV9saWdodGJveCB2aWRlby5zYnlfdmlkZW8nKVswXS5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyNzYnlfbGlnaHRib3ggaWZyYW1lJykuYXR0cignc3JjJywgJycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ24nIHx8IGtleWNvZGUgPT09IEtFWUNPREVfUklHSFRBUlJPVykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICE9PSB0aGlzLmFsYnVtLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSh0aGlzLmN1cnJlbnRJbWFnZUluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnMud3JhcEFyb3VuZCAmJiB0aGlzLmFsYnVtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWFnZSgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJCdWlsZGVyLnBhdXNlUGxheWVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYi5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVLZXlib2FyZE5hdigpLCBhKHdpbmRvdykub2ZmKFwicmVzaXplXCIsIHRoaXMuc2l6ZU92ZXJsYXkpLCB0aGlzLiRsaWdodGJveC5mYWRlT3V0KHRoaXMub3B0aW9ucy5mYWRlRHVyYXRpb24pLCB0aGlzLiRvdmVybGF5LmZhZGVPdXQodGhpcy5vcHRpb25zLmZhZGVEdXJhdGlvbiksIGEoXCJzZWxlY3QsIG9iamVjdCwgZW1iZWRcIikuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcInZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYlxuICAgICAgICAgICAgICAgICAgICAgIH0oKTtcbiAgICAgICAgICAgICAgICAgICAgYShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IG5ldyBiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBjKGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vTGlnaHRib3ggaGlkZSBwaG90byBmdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJy5zYnlfbGlnaHRib3hfYWN0aW9uIGEnKS5vZmYoKS5vbignY2xpY2snLCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnBhcmVudCgpLmZpbmQoJy5zYnlfbGlnaHRib3hfdG9vbHRpcCcpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0pLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgd2luZG93LnNieU9wdGlvbnMubGlnaHRib3hDcmVhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjcmVhdGVGZWVkczogZnVuY3Rpb24gKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoICFzYnlPcHRpb25zLmlzQWRtaW4gJiYgc2J5T3B0aW9ucy5saWdodGJveENyZWF0ZWQgPT09IHVuZGVmaW5lZCApIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5jcmVhdGVMaWdodGJveCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcmdzLndoZW5GZWVkc0NyZWF0ZWQoXG4gICAgICAgICAgICAgICAgICAkKCcuc2JfeW91dHViZScpLmVhY2goZnVuY3Rpb24gKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdkYXRhLXNieS1pbmRleCcsIGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5maW5kKCcuc2J5X3BsYXllcicpLnJlcGxhY2VXaXRoKCc8ZGl2IGlkPVwic2J5X3BsYXllcicraW5kZXgrJ1wiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IHR5cGVvZiAkc2VsZi5hdHRyKCdkYXRhLXNieS1mbGFncycpICE9PSAndW5kZWZpbmVkJyA/ICRzZWxmLmF0dHIoJ2RhdGEtc2J5LWZsYWdzJykuc3BsaXQoJywnKSA6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbCA9IHR5cGVvZiAkc2VsZi5hdHRyKCdkYXRhLW9wdGlvbnMnKSAhPT0gJ3VuZGVmaW5lZCcgPyBKU09OLnBhcnNlKCRzZWxmLmF0dHIoJ2RhdGEtb3B0aW9ucycpKSA6IHt9O1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChmbGFncy5pbmRleE9mKCd0ZXN0QWpheCcpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS50cmlnZ2VyZWRUZXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHN1Ym1pdERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nIDogJ3NieV9vbl9hamF4X3Rlc3RfdHJpZ2dlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2VzcyA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RpZCB0ZXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2J5QWpheChzdWJtaXREYXRhLG9uU3VjY2VzcylcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIGZlZWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzIDogJHNlbGYuYXR0cignZGF0YS1jb2xzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNtb2JpbGUgOiAkc2VsZi5hdHRyKCdkYXRhLWNvbHNtb2JpbGUnKSAhPT0gJ3NhbWUnID8gJHNlbGYuYXR0cignZGF0YS1jb2xzbW9iaWxlJykgOiAkc2VsZi5hdHRyKCdkYXRhLWNvbHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtIDogJHNlbGYuYXR0cignZGF0YS1udW0nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nUmVzIDogJHNlbGYuYXR0cignZGF0YS1yZXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZElEIDogJHNlbGYuYXR0cignZGF0YS1mZWVkaWQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdElEIDogdHlwZW9mICRzZWxmLmF0dHIoICdkYXRhLXBvc3RpZCcgKSAhPT0gJ3VuZGVmaW5lZCcgPyAkc2VsZi5hdHRyKCAnZGF0YS1wb3N0aWQnICkgOiAndW5rbm93bicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0Q29kZUF0dHMgOiAkc2VsZi5hdHRyKCdkYXRhLXNob3J0Y29kZS1hdHRzJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6aW5nRW5hYmxlZCA6IChmbGFncy5pbmRleE9mKCdyZXNpemVEaXNhYmxlJykgPT09IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VMb2FkRW5hYmxlZCA6IChmbGFncy5pbmRleE9mKCdpbWFnZUxvYWREaXNhYmxlJykgPT09IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdFbmFibGVkIDogKGZsYWdzLmluZGV4T2YoJ2RlYnVnJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZhdm9yTG9jYWwgOiAoZmxhZ3MuaW5kZXhPZignZmF2b3JMb2NhbCcpID4gLTEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhamF4UG9zdExvYWQgOiAoZmxhZ3MuaW5kZXhPZignYWpheFBvc3RMb2FkJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrV1BQb3N0cyA6IChmbGFncy5pbmRleE9mKCdjaGVja1dQUG9zdHMnKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlQ2hlY2tQb3N0cyA6IChmbGFncy5pbmRleE9mKCdzaW5nbGVDaGVja1Bvc3RzJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hcnJvd1BsYXllciA6IChmbGFncy5pbmRleE9mKCduYXJyb3dQbGF5ZXInKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RwciA6IChmbGFncy5pbmRleE9mKCdnZHByJykgPiAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNlbnRHaXZlbiA6IChmbGFncy5pbmRleE9mKCdnZHByJykgPT09IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9DRE4gOiAoZmxhZ3MuaW5kZXhPZignZGlzYWJsZWNkbicpID4gLTEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd0Nvb2tpZXM6IChmbGFncy5pbmRleE9mKCdhbGxvd2Nvb2tpZXMnKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHRib3hFbmFibGVkIDogdHlwZW9mICRzZWxmLmF0dHIoJ2RhdGEtc2J5LXN1cHBvcnRzLWxpZ2h0Ym94JykgIT09ICd1bmRlZmluZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdG9yIDogKGZsYWdzLmluZGV4T2YoJ2xvY2F0b3InKSA+IC0xKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b01pblJlcyA6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYWwgOiBnZW5lcmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCYXJFbmFibGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbaW5kZXhdID0gc2J5R2V0TmV3RmVlZCh0aGlzLCBpbmRleCwgZmVlZE9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieUFQSVJlYWR5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzW2luZGV4XS5wbGF5ZXJBUElSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbaW5kZXhdLnNldFJlc2l6ZWRJbWFnZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzW2luZGV4XS5pbml0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICB2YXIgZXZ0ID0galF1ZXJ5LkV2ZW50KCdzYnlhZnRlcmZlZWRjcmVhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICBldnQuZmVlZCA9IHdpbmRvdy5zYnkuZmVlZHNbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoZXZ0KTtcblxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyRmVlZHNDcmVhdGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgLy8gZW5hYmxlIGhlYWRlciBob3ZlciBhY3Rpb25cbiAgICAgICAgICAgICAgICAkKCcuc2JfeW91dHViZV9oZWFkZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICR0aGlzSGVhZGVyID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgJHRoaXNIZWFkZXIuZmluZCgnLnNieV9oZWFkZXJfbGluaycpLm9uKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2goZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbW91c2VlbnRlcic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzSGVhZGVyLmZpbmQoJy5zYnlfaGVhZGVyX2ltZ19ob3ZlcicpLmFkZENsYXNzKCdzYnlfZmFkZV9pbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtb3VzZWxlYXZlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXNIZWFkZXIuZmluZCgnLnNieV9oZWFkZXJfaW1nX2hvdmVyJykucmVtb3ZlQ2xhc3MoJ3NieV9mYWRlX2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2J5QVBJUmVhZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGV2dCA9IGpRdWVyeS5FdmVudCgnc2J5ZmVlZGFuZHl0cmVhZHknKTtcbiAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykudHJpZ2dlcihldnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVuY29kZUhUTUw6IGZ1bmN0aW9uKHJhdykge1xuICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSBwYXNzZWQgdmFyaWFibGUgaXMgZGVmaW5lZFxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmF3ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgZ3JlYXRlciB0aGFuIGFuZCBsZXNzIHRoYW4gc3ltYm9scyB3aXRoIGh0bWwgZW50aXR5IHRvIGRpc2FsbG93IGh0bWwgaW4gY29tbWVudHNcbiAgICAgICAgICAgICAgICB2YXIgZW5jb2RlZCA9IHJhdy5yZXBsYWNlKC8oPikvZywnJmd0OycpLFxuICAgICAgICAgICAgICAgICAgZW5jb2RlZCA9IGVuY29kZWQucmVwbGFjZSgvKDwpL2csJyZsdDsnKTtcbiAgICAgICAgICAgICAgICBlbmNvZGVkID0gZW5jb2RlZC5yZXBsYWNlKC8oJmx0O2JyXFwvJmd0OykvZywnPGJyPicpO1xuICAgICAgICAgICAgICAgIGVuY29kZWQgPSBlbmNvZGVkLnJlcGxhY2UoLygmbHQ7YnImZ3Q7KS9nLCc8YnI+Jyk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cmxEZXRlY3Q6IGZ1bmN0aW9uKHRleHQpIHtcbiAgICAgICAgICAgICAgICB2YXIgdXJsUmVnZXggPSAvaHR0cHM/OlxcL1xcLyh3d3dcXC4pP1stYS16QS1aMC05QDolLl9cXCt+Iz1dezIsMjU2fVxcLlthLXpdezIsNn1cXGIoWy1hLXpBLVowLTlAOiVfXFwrLn4jPyYvLz1dKikvZztcbiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dC5tYXRjaCh1cmxSZWdleCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3RhRGV0ZWN0OiBmdW5jdGlvbih0ZXh0KSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgY3RhTWF0Y2hlcyA9IHRleHQubWF0Y2goL3tMaW5rOiguKil9L2cpLFxuICAgICAgICAgICAgICAgICAgY3RhID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBpZiAoY3RhTWF0Y2hlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdXJsTWF0Y2hlcyA9IHdpbmRvdy5zYnkudXJsRGV0ZWN0KGN0YU1hdGNoZXNbMF0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh1cmxNYXRjaGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdXJsID0gdXJsTWF0Y2hlc1swXS50cmltKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNieUJ1dHRvblRleHQgPSBjdGFNYXRjaGVzWzBdLnJlcGxhY2UoJ3tMaW5rOicsJycpLnJlcGxhY2UoJ30nLCcnKS5yZXBsYWNlKHVybCwnJykucmVwbGFjZSgnICAnLCcgJykudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3RhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAnbGluaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogc2J5QnV0dG9uVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDVEEgZm91bmQgYnV0IG5vIFVSTCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGN0YTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaHVmZmxlOiBmdW5jdGlvbihhcnJheSkge1xuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50SW5kZXggPSBhcnJheS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICB0ZW1wb3JhcnlWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHJhbmRvbUluZGV4O1xuXG4gICAgICAgICAgICAgICAgLy8gV2hpbGUgdGhlcmUgcmVtYWluIGVsZW1lbnRzIHRvIHNodWZmbGUuLi5cbiAgICAgICAgICAgICAgICB3aGlsZSAoMCAhPT0gY3VycmVudEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBpY2sgYSByZW1haW5pbmcgZWxlbWVudC4uLlxuICAgICAgICAgICAgICAgICAgICByYW5kb21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCAtPSAxO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEFuZCBzd2FwIGl0IHdpdGggdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5VmFsdWUgPSBhcnJheVtjdXJyZW50SW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBhcnJheVtjdXJyZW50SW5kZXhdID0gYXJyYXlbcmFuZG9tSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBhcnJheVtyYW5kb21JbmRleF0gPSB0ZW1wb3JhcnlWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgZnVuY3Rpb24gU2J5RmVlZChlbCwgaW5kZXgsIHNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLmVsID0gZWw7XG4gICAgICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyVVJMID0gd2luZG93LnNieS5vcHRpb25zLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLm5hcnJvd1BsYXllcikge1xuICAgICAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJVUkwgPSB3aW5kb3cuc2J5Lm9wdGlvbnMucGxhY2Vob2xkZXJOYXJyb3dcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGxheWVyQVBJUmVhZHkgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY29uc2VudEdpdmVuID0gc2V0dGluZ3MuY29uc2VudEdpdmVuO1xuICAgICAgICAgICAgdGhpcy5wbGF5ZXJzID0ge307XG4gICAgICAgICAgICB0aGlzLm1pbkltYWdlV2lkdGggPSAwO1xuICAgICAgICAgICAgdGhpcy5pbWFnZVJlc29sdXRpb24gPSAxNTA7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZWRJbWFnZXMgPSB7fTtcbiAgICAgICAgICAgIHRoaXMubmVlZHNSZXNpemluZyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5vdXRPZlBhZ2VzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubW9zdFJlY2VudGx5TG9hZGVkUG9zdHMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZW1iZWRVUkwgPSAnLy93d3cueW91dHViZS1ub2Nvb2tpZS5jb20nO1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzLmFsbG93Q29va2llcykge1xuICAgICAgICAgICAgICAgIHRoaXMuZW1iZWRVUkwgPSAnLy93d3cueW91dHViZS5jb20nXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIFNieUZlZWQucHJvdG90eXBlID0ge1xuICAgICAgICAgICAgaW5pdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gZmVlZC5jaGVja0NvbnNlbnQoKTtcblxuICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLmNvbnNlbnRHaXZlbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5Lm1heWJlQWRkWVRBUEkoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5ub0NETiAmJiAhZmVlZC5zZXR0aW5ncy5jb25zZW50R2l2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcy5lbCkuZmluZCgnLnNiX3lvdXR1YmVfaGVhZGVyJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMuZWwpLmZpbmQoJy5zYl95b3V0dWJlX2hlYWRlcicpLmFkZENsYXNzKCdzYnlfbm9fY29uc2VudCcpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJCh0aGlzLmVsKS5wcmV2KCcuc2JfeW91dHViZV9oZWFkZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcy5lbCkucHJldignLnNiX3lvdXR1YmVfaGVhZGVyJykuYWRkQ2xhc3MoJ3NieV9ub19jb25zZW50JylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzLmVsKS5maW5kKCcjc2J5X21vZF9lcnJvcicpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMuZWwpLnByZXBlbmQoJCh0aGlzLmVsKS5maW5kKCcjc2J5X21vZF9lcnJvcicpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuYWpheFBvc3RMb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TmV3UG9zdFNldCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJJbml0aWFsSW1hZ2VzTG9hZGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vT25seSBjaGVjayB0aGUgd2lkdGggb25jZSB0aGUgcmVzaXplIGV2ZW50IGlzIG92ZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHNieV9kZWxheSA9IChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzYnlfdGltZXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHNieV9jYWxsYmFjaywgc2J5X21zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoc2J5X3RpbWVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNieV90aW1lciA9IHNldFRpbWVvdXQoc2J5X2NhbGxiYWNrLCBzYnlfbXMpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykub24oJ3Jlc2l6ZScsZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBzYnlfZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbml0TGF5b3V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRHYWxsZXJ5TGF5b3V0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW5pdEdhbGxlcnlMYXlvdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpICYmICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXliZVJhaXNlU2luZ2xlSW1hZ2VSZXNvbHV0aW9uKCRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKSwgMCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgLnNieV92aWRlb190aHVtYm5haWwnKS5vZmYoKS5vbignY2xpY2snLGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCghZmVlZC5zZXR0aW5ncy5saWdodGJveEVuYWJsZWQgfHwgKGZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkICYmIGZlZWQuc2V0dGluZ3Mubm9DRE4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoZmVlZC5zZXR0aW5ncy5ub0NETiB8fCAhZmVlZC5zZXR0aW5ncy5jb25zZW50R2l2ZW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgJCh0aGlzKS5jbG9zZXN0KCcuc2J5X2l0ZW0nKS5hdHRyKCdkYXRhLXZpZGVvLWlkJykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignaHJlZicsJ2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9JyskKHRoaXMpLmNsb3Nlc3QoJy5zYnlfaXRlbScpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm9uVGh1bWJuYWlsQ2xpY2soJCh0aGlzKSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmlyc3QoKS5hZGRDbGFzcygnc2J5X2N1cnJlbnQnKTtcblxuICAgICAgICAgICAgICAgICAgICAkc2VsZi5vbignbW91c2VlbnRlcicsZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZlZWQuY2FuQ3JlYXRlUGxheWVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfYWRkZWQnKS5maW5kKCcuc2J5X3BsYXllcl9vdXRlcl93cmFwJykuYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgLnNieV92aWRlb190aHVtYm5haWwnKS5maW5kKCcuc2J5X2xvYWRlcicpLnNob3coKS5yZW1vdmVDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuY3JlYXRlUGxheWVyKCdzYnlfcGxheWVyJytmZWVkLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZlZWQucGxheWVyID09PSAndW5kZWZpbmVkJyAmJiBmZWVkLnBsYXllckVhZ2VyTG9hZGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmNyZWF0ZVBsYXllcignc2J5X3BsYXllcicrZmVlZC5pbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2J5U2VtaUVhZ2VyTG9hZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5jcmVhdGVQbGF5ZXIoJ3NieV9wbGF5ZXInK2ZlZWQuaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3Mubm9DRE4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzYnlfcGxheV9idG5cIj5cXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2J5X3BsYXlfYnRuX2JnXCI+PC9zcGFuPlxcbicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICA8c3ZnIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCIgZGF0YS1wcmVmaXg9XCJmYWJcIiBkYXRhLWljb249XCJ5b3V0dWJlXCIgcm9sZT1cImltZ1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDU3NiA1MTJcIiBjbGFzcz1cInN2Zy1pbmxpbmUtLWZhIGZhLXlvdXR1YmUgZmEtdy0xOFwiPjxwYXRoIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTU0OS42NTUgMTI0LjA4M2MtNi4yODEtMjMuNjUtMjQuNzg3LTQyLjI3Ni00OC4yODQtNDguNTk3QzQ1OC43ODEgNjQgMjg4IDY0IDI4OCA2NFMxMTcuMjIgNjQgNzQuNjI5IDc1LjQ4NmMtMjMuNDk3IDYuMzIyLTQyLjAwMyAyNC45NDctNDguMjg0IDQ4LjU5Ny0xMS40MTIgNDIuODY3LTExLjQxMiAxMzIuMzA1LTExLjQxMiAxMzIuMzA1czAgODkuNDM4IDExLjQxMiAxMzIuMzA1YzYuMjgxIDIzLjY1IDI0Ljc4NyA0MS41IDQ4LjI4NCA0Ny44MjFDMTE3LjIyIDQ0OCAyODggNDQ4IDI4OCA0NDhzMTcwLjc4IDAgMjEzLjM3MS0xMS40ODZjMjMuNDk3LTYuMzIxIDQyLjAwMy0yNC4xNzEgNDguMjg0LTQ3LjgyMSAxMS40MTItNDIuODY3IDExLjQxMi0xMzIuMzA1IDExLjQxMi0xMzIuMzA1czAtODkuNDM4LTExLjQxMi0xMzIuMzA1em0tMzE3LjUxIDIxMy41MDhWMTc1LjE4NWwxNDIuNzM5IDgxLjIwNS0xNDIuNzM5IDgxLjIwMXpcIiBjbGFzcz1cIlwiPjwvcGF0aD48L3N2Zz4gICAgICAgICAgICAgICAgICAgIDwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3JlYXRlUGxheWVyOiBmdW5jdGlvbihwbGF5ZXJJRCx2aWRlb0lELGF1dG9wbGF5LGFyZ3MpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmlkZW9JRCA9IHR5cGVvZiB2aWRlb0lEICE9PSAndW5kZWZpbmVkJyA/IHZpZGVvSUQgOiB0aGlzLmdldFZpZGVvSUQoJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmlyc3QoKSk7XG4gICAgICAgICAgICAgICAgYXV0b3BsYXkgPSB0eXBlb2YgYXV0b3BsYXkgIT09ICd1bmRlZmluZWQnID8gYXV0b3BsYXkgOiAwO1xuXG4gICAgICAgICAgICAgICAgLy8gZG8gbm90IGNyZWF0ZSBwbGF5ZXIgaW4gY3VzdG9taXplciBwcmV2aWV3XG4gICAgICAgICAgICAgICAgaWYgKCBzYnlPcHRpb25zLmlzQ3VzdG9taXplciAhPT0gdW5kZWZpbmVkICYmIHNieU9wdGlvbnMuaXNDdXN0b21pemVyICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmdzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhcmdzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaG9zdDogd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgZmVlZC5lbWJlZFVSTCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ6IHZpZGVvSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGF5ZXJWYXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBhdXRvcGxheVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3MuZXZlbnRzID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhcmdzLmV2ZW50cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICdvblJlYWR5JzogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5yZW1vdmVDbGFzcygnc2J5X3BsYXllcl9sb2FkaW5nJykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5jc3MoJ3otaW5kZXgnLCAtMSkuZmluZCgnLnNieV9sb2FkZXInKS5oaWRlKCkuYWRkQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCgnIycgKyBwbGF5ZXJJRCkubGVuZ3RoICYmICQoJyMnICsgcGxheWVySUQpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsX3dyYXAnKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjJyArIHBsYXllcklEKS5jbG9zZXN0KCcuc2J5X3ZpZGVvX3RodW1ibmFpbF93cmFwJykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5mYWRlVG8oMCwgJ3Nsb3cnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygnei1pbmRleCcsIC0xKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV9sb2FkZXInKS5oaWRlKCkuYWRkQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykucmVtb3ZlQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV2dCA9IGpRdWVyeS5FdmVudCgnc2J5YWZ0ZXJwbGF5ZXJyZWFkeScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5mZWVkID0gZmVlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucGxheWVyID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkod2luZG93KS50cmlnZ2VyKGV2dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgJ29uU3RhdGVDaGFuZ2UnOiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLnJlbW92ZUNsYXNzKCdzYnlfcGxheWVyX2xvYWRpbmcnKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmNzcygnei1pbmRleCcsIC0xKS5maW5kKCcuc2J5X2xvYWRlcicpLmhpZGUoKS5hZGRDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWZ0ZXJTdGF0ZUNoYW5nZShwbGF5ZXJJRCx2aWRlb0lELGRhdGEsJCgnIycgKyBwbGF5ZXJJRCkuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWxfd3JhcCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5kYXRhICE9PSAxKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmZWVkLnBsYXllcnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVZpZElEID0gZmVlZC5nZXRWaWRlb0lEKCQodGhpcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZCgnaWZyYW1lJykubGVuZ3RoICYmIChpdGVtVmlkSUQgIT09IHZpZGVvSUQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmZWVkLnBsYXllcnNbaXRlbVZpZElEXSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGZlZWQucGxheWVyc1tpdGVtVmlkSURdLnBhdXNlVmlkZW8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5wbGF5ZXJzW2l0ZW1WaWRJRF0ucGF1c2VWaWRlbygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2J5RWFnZXJMb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdQbGF5ZXIgPSBZVC5nZXQocGxheWVySUQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdQbGF5ZXIgPSBuZXcgd2luZG93LllULlBsYXllcihwbGF5ZXJJRCwgYXJncyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5tYXliZUFkZENUQShwbGF5ZXJJRCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpICYmIHR5cGVvZiB0aGlzLnBsYXllcnNbdmlkZW9JRF0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheWVyc1t2aWRlb0lEXSA9IG5ld1BsYXllcjtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnBsYXllciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXIgPSBuZXdQbGF5ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGV2dCA9IGpRdWVyeS5FdmVudCgnc2J5YWZ0ZXJwbGF5ZXJjcmVhdGVkJyk7XG4gICAgICAgICAgICAgICAgZXZ0LmZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoZXZ0KTtcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgLnNieV9wbGF5X2J0bicpLnJlbW92ZSgpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld1BsYXllcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZnRlclN0YXRlQ2hhbmdlOiBmdW5jdGlvbihwbGF5ZXJJRCx2aWRlb0lELGRhdGEsJHBsYXllcikge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVySW5pdGlhbEltYWdlc0xvYWRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0TGF5b3V0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkTW9yZUJ1dHRvbkluaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVFeHRyYUl0ZW1zRm9yV2lkdGgoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJlZm9yZU5ld0ltYWdlc1JldmVhbGVkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXZlYWxOZXdJbWFnZXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyTmV3SW1hZ2VzUmV2ZWFsZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRmVlZFNldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZVBsYXllcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlGdWxsRmVhdHVyZXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUZlYXR1cmVzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyUmVzaXplOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlSGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbWFnZVJlc29sdXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1heWJlUmFpc2VJbWFnZVJlc29sdXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlU2l6ZUNsYXNzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJMb2FkTW9yZUNsaWNrZWQ6IGZ1bmN0aW9uKCRidXR0b24pIHtcbiAgICAgICAgICAgICAgICAkYnV0dG9uLmZpbmQoJy5zYnlfbG9hZGVyJykucmVtb3ZlQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkYnV0dG9uLmZpbmQoJy5zYnlfYnRuX3RleHQnKS5hZGRDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICRidXR0b24uY2xvc2VzdCgnLnNiX3lvdXR1YmUnKS5maW5kKCcuc2J5X251bV9kaWZmX2hpZGUnKS5hZGRDbGFzcygnc2J5X3RyYW5zaXRpb24nKS5yZW1vdmVDbGFzcygnc2J5X251bV9kaWZmX2hpZGUnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhZnRlck5ld0ltYWdlc0xvYWRlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuYmVmb3JlTmV3SW1hZ2VzUmV2ZWFsZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJldmVhbE5ld0ltYWdlcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJOZXdJbWFnZXNSZXZlYWxlZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZVBsYXllcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2l6ZUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vSGlkZSB0aGUgbG9hZGVyIGluIHRoZSBsb2FkIG1vcmUgYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbG9hZGVyJykuYWRkQ2xhc3MoJ3NieV9oaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9idG5fdGV4dCcpLnJlbW92ZUNsYXNzKCdzYnlfaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIGZlZWQubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5RnVsbEZlYXR1cmVzKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVGZWF0dXJlcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiZWZvcmVOZXdJbWFnZXNSZXZlYWxlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbWFnZUhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbih0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlU2l6ZUNsYXNzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJGZWVkU2V0OiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNpemVQbGF5ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpKSB7XG4gICAgICAgICAgICAgICAgICAgICRwbGF5ZXJUaHVtYm5haWwgPSAkc2VsZi5maW5kKCcuc2J5X3BsYXllcl9pdGVtJykuZmluZCgnLnNieV9wbGF5ZXJfdmlkZW9fdGh1bWJuYWlsJyk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJXaWR0aCA9ICRwbGF5ZXJUaHVtYm5haWwuaW5uZXJXaWR0aCgpLFxuICAgICAgICAgICAgICAgICAgICAgIG5ld1BsYXllckhlaWdodCA9IE1hdGguZmxvb3IocGxheWVyV2lkdGggKiA5IC8gMTYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5uYXJyb3dQbGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BsYXllckhlaWdodCA9IE1hdGguZmxvb3IocGxheWVyV2lkdGggKiAzIC8gNCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJHBsYXllclRodW1ibmFpbC5jc3MoJ2hlaWdodCcsbmV3UGxheWVySGVpZ2h0KydweCcpLmNzcygnb3ZlcmZsb3cnLCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmVhY2goZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICRwbGF5ZXJUaHVtYm5haWwgPSAkKHRoaXMpLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJXaWR0aCA9ICRwbGF5ZXJUaHVtYm5haWwuaW5uZXJXaWR0aCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQbGF5ZXJIZWlnaHQgPSBNYXRoLmZsb29yKHBsYXllcldpZHRoICogOSAvIDE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLm5hcnJvd1BsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1BsYXllckhlaWdodCA9IE1hdGguZmxvb3IocGxheWVyV2lkdGggKiAzIC8gNCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkcGxheWVyVGh1bWJuYWlsLmNzcygnaGVpZ2h0JyxuZXdQbGF5ZXJIZWlnaHQrJ3B4JykuY3NzKCdvdmVyZmxvdycsJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2l6ZUl0ZW1zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgaWYgKCEkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9saXN0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcygnc2J5X2ltZ0xpcXVpZF9yZWFkeScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRodW1iV2lkdGggPSAkKHRoaXMpLmlubmVyV2lkdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RodW1iSGVpZ2h0ID0gTWF0aC5mbG9vcih0aHVtYldpZHRoICogOSAvIDE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNzcygnaGVpZ2h0JyxuZXdUaHVtYkhlaWdodCsncHgnKS5jc3MoJ292ZXJmbG93JywnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJldmVhbE5ld0ltYWdlczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlJbWFnZUxpcXVpZCgpO1xuXG4gICAgICAgICAgICAgICAgLy8gQ2FsbCBDdXN0b20gSlMgaWYgaXQgZXhpc3RzXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzYnlDdXN0b21KUyA9PSAnZnVuY3Rpb24nKSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IHNieUN1c3RvbUpTKCk7IH0sIDEwMCk7XG5cbiAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5LXNjcmVlbnJlYWRlcicpLmZpbmQoJ2ltZycpLnJlbW92ZSgpO1xuXG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtLnNieV9uZXcnKS5lYWNoKGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSBqUXVlcnkodGhpcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy9QaG90byBsaW5rc1xuICAgICAgICAgICAgICAgICAgICAvL0lmIGxpZ2h0Ym94IGlzIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgIHZpZGVvSUQgPSAkc2VsZi5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5zYnlFYWdlckxvYWRpbmcgJiYgZmVlZC5jYW5DcmVhdGVQbGF5ZXIoKSAmJiAkKCcjc2J5X3BsYXllcl8nK3ZpZGVvSUQpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyID0gbmV3IFlULlBsYXllcignc2J5X3BsYXllcl8nK3ZpZGVvSUQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB2aWRlb0lELFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25TdGF0ZUNoYW5nZSc6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gZGF0YS50YXJnZXQuZ2V0VmlkZW9EYXRhKClbJ3ZpZGVvX2lkJ107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5kYXRhICE9PSAxKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpdGVtVmlkSUQgPSBqUXVlcnkodGhpcykuYXR0cignZGF0YS12aWRlby1pZCcpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGpRdWVyeSh0aGlzKS5maW5kKCdpZnJhbWUnKS5sZW5ndGggJiYgalF1ZXJ5KGRhdGEudGFyZ2V0LmEpLmF0dHIoJ2lkJykgIT09IGpRdWVyeSh0aGlzKS5maW5kKCdpZnJhbWUnKS5hdHRyKCdpZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlULmdldCgnc2J5X3BsYXllcl8nK2l0ZW1WaWRJRCkucGF1c2VWaWRlbygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQub25UaHVtYm5haWxFbnRlcigkKHRoaXMpLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3BsYXllcl93cmFwJykub24oJ21vdXNlbGVhdmUnLGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5vblRodW1ibmFpbExlYXZlKCQodGhpcyksIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vaW5pdCBjbGlja1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLm9uKCdjbGljaycsZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoIWZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkIHx8IChmZWVkLnNldHRpbmdzLmxpZ2h0Ym94RW5hYmxlZCAmJiBmZWVkLnNldHRpbmdzLm5vQ0ROKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGZlZWQuc2V0dGluZ3Mubm9DRE4gfHwgIWZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfaXRlbScpLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mICQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykuYXR0cignZGF0YS12aWRlby1pZCcpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2hyZWYnLCdodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PScrJCh0aGlzKS5jbG9zZXN0KCcuc2J5X2l0ZW0nKS5hdHRyKCdkYXRhLXZpZGVvLWlkJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5vblRodW1ibmFpbENsaWNrKCQodGhpcyksIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gbGlnaHRib3hcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtc2J5LWxpZ2h0Ym94JyxmZWVkLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2J5T3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHNieU9wdGlvbnMubGlnaHRib3hQbGFjZWhvbGRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5uYXJyb3dQbGF5ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdocmVmJyxzYnlPcHRpb25zLmxpZ2h0Ym94UGxhY2Vob2xkZXJOYXJyb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignaHJlZicsc2J5T3B0aW9ucy5saWdodGJveFBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckl0ZW1SZXZlYWxlZCgkc2VsZik7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gbm8gaW5mb1xuICAgICAgICAgICAgICAgICAgICBpZiAoJHNlbGYuZmluZCgnLnNieV9pbmZvX2l0ZW0nKS50ZXh0KCkudHJpbSgpID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pbmZvX2l0ZW0nKS5hZGRDbGFzcygnc2J5X25vX3NwYWNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTsgLy9FbmQgLnNieV9pdGVtIGVhY2hcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2l0ZW0nKS5lYWNoKGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSBqUXVlcnkodGhpcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckl0ZW1SZXZlYWxlZCgkc2VsZik7XG4gICAgICAgICAgICAgICAgfSk7IC8vRW5kIC5zYnlfaXRlbSBlYWNoXG5cbiAgICAgICAgICAgICAgICAvL1JlbW92ZSB0aGUgbmV3IGNsYXNzIGFmdGVyIDUwMG1zLCBvbmNlIHRoZSBzb3J0aW5nIGlzIGRvbmVcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtLnNieV9uZXcnKS5yZW1vdmVDbGFzcygnc2J5X25ldycpO1xuICAgICAgICAgICAgICAgICAgICAvL0xvb3AgdGhyb3VnaCBpdGVtcyBhbmQgcmVtb3ZlIGNsYXNzIHRvIHJldmVhbCB0aGVtXG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1lID0gMSxcbiAgICAgICAgICAgICAgICAgICAgICBudW0gPSAkc2VsZi5maW5kKCcuc2J5X3RyYW5zaXRpb24nKS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfdHJhbnNpdGlvbicpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkc2J5X2l0ZW1fdHJhbnNpdGlvbl9lbCA9IGpRdWVyeSh0aGlzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2J5X2l0ZW1fdHJhbnNpdGlvbl9lbC5yZW1vdmVDbGFzcygnc2J5X3RyYW5zaXRpb24nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy90aW1lICs9IDEwO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LCAxKTtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVySXRlbVJldmVhbGVkOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyTmV3SW1hZ2VzUmV2ZWFsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdGVuRm9yVmlzaWJpbGl0eUNoYW5nZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZE5lZWRzUmVzaXppbmdUb1NlcnZlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZENoZWNrV1BQb3N0c1RvU2VydmVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNldHRpbmdzLmltYWdlTG9hZEVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnLnNieV9ub19yZXNyYWlzZScpLnJlbW92ZUNsYXNzKCdzYnlfbm9fcmVzcmFpc2UnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgZXZ0ID0gJC5FdmVudCgnc2J5YWZ0ZXJpbWFnZXNsb2FkZWQnKTtcbiAgICAgICAgICAgICAgICBldnQuZWwgPSAkKHRoaXMuZWwpO1xuICAgICAgICAgICAgICAgICQod2luZG93KS50cmlnZ2VyKGV2dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0UmVzaXplZEltYWdlczogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMuZWwpLmZpbmQoJy5zYnlfcmVzaXplZF9pbWFnZV9kYXRhJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLmF0dHIoJ2RhdGEtcmVzaXplZCcpICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLmF0dHIoJ2RhdGEtcmVzaXplZCcpLmluZGV4T2YoJ3tcIicpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplZEltYWdlcyA9IEpTT04ucGFyc2UoJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLmF0dHIoJ2RhdGEtcmVzaXplZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5maW5kKCcuc2J5X3Jlc2l6ZWRfaW1hZ2VfZGF0YScpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZW5kTmVlZHNSZXNpemluZ1RvU2VydmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgaWYgKGZlZWQubmVlZHNSZXNpemluZy5sZW5ndGggPiAwICYmIGZlZWQuc2V0dGluZ3MucmVzaXppbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpdGVtT2Zmc2V0ID0gJCh0aGlzLmVsKS5maW5kKCcuc2J5X2l0ZW0nKS5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHN1Ym1pdERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246ICdzYnlfcmVzaXplZF9pbWFnZXNfc3VibWl0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRzX3Jlc2l6aW5nOiBmZWVkLm5lZWRzUmVzaXppbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IGl0ZW1PZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkX2lkOiBmZWVkLnNldHRpbmdzLmZlZWRJRCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBmZWVkLmxvY2F0aW9uR3Vlc3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RfaWQ6IGZlZWQuc2V0dGluZ3MucG9zdElELFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0czogZmVlZC5zZXR0aW5ncy5zaG9ydENvZGVBdHRzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB2YXIgb25TdWNjZXNzID0gZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEudHJpbSgpLmluZGV4T2YoJ3snKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWQuc2V0dGluZ3MuZGVidWdFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHNieUFqYXgoc3VibWl0RGF0YSxvblN1Y2Nlc3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZW5kQ2hlY2tXUFBvc3RzVG9TZXJ2ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5jaGVja1dQUG9zdHMgfHwgZmVlZC5zZXR0aW5ncy5zaW5nbGVDaGVja1Bvc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmZWVkSUQgPSB0eXBlb2YgZmVlZC5zZXR0aW5ncy5mZWVkSUQgIT09ICd1bmRlZmluZWQnID8gZmVlZC5zZXR0aW5ncy5mZWVkSUQgOiAnc2J5X3NpbmdsZScsXG4gICAgICAgICAgICAgICAgICAgICAgcG9zdHMgPSBmZWVkLm1vc3RSZWNlbnRseUxvYWRlZFBvc3RzO1xuICAgICAgICAgICAgICAgICAgICBmZWVkLm1vc3RSZWNlbnRseUxvYWRlZFBvc3RzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdWJtaXREYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2J5X2NoZWNrX3dwX3N1Ym1pdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkX2lkOiBmZWVkSUQsXG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRzOiBmZWVkLnNldHRpbmdzLnNob3J0Q29kZUF0dHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogZmVlZC5sb2NhdGlvbkd1ZXNzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3N0X2lkOiBmZWVkLnNldHRpbmdzLnBvc3RJRCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogISAkKHRoaXMuZWwpLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2Nhcm91c2VsJykgPyAkKHRoaXMuZWwpLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCA6IE1hdGguZmxvb3IoKCQodGhpcy5lbCkuZmluZCgnLnNieV9pdGVtJykubGVuZ3RoIC8gMikgLTEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdHM6IHBvc3RzXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHZhciBvblN1Y2Nlc3MgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS50cmltKCkuaW5kZXhPZigneycpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5kZWJ1Z0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyU2VuZENoZWNrV1BQb3N0c1RvU2VydmVyKHJlc3BvbnNlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBzYnlBamF4KHN1Ym1pdERhdGEsb25TdWNjZXNzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJTZW5kQ2hlY2tXUFBvc3RzVG9TZXJ2ZXI6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9hZE1vcmVCdXR0b25Jbml0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfZm9vdGVyIC5zYnlfbG9hZF9idG4nKS5vZmYoKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZlZWQuYWZ0ZXJMb2FkTW9yZUNsaWNrZWQoalF1ZXJ5KHRoaXMpKTtcbiAgICAgICAgICAgICAgICAgICAgZmVlZC5nZXROZXdQb3N0U2V0KCk7XG4gICAgICAgICAgICAgICAgfSk7IC8vRW5kIGNsaWNrIGV2ZW50XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmV3UG9zdFNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgaXRlbU9mZnNldCA9ICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgIHN1Ym1pdERhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAnc2J5X2xvYWRfbW9yZV9jbGlja2VkJyxcbiAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IGl0ZW1PZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgZmVlZF9pZDogZmVlZC5zZXR0aW5ncy5mZWVkSUQsXG4gICAgICAgICAgICAgICAgICAgICAgYXR0czogZmVlZC5zZXR0aW5ncy5zaG9ydENvZGVBdHRzLFxuICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBmZWVkLmxvY2F0aW9uR3Vlc3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICBwb3N0X2lkOiBmZWVkLnNldHRpbmdzLnBvc3RJRCxcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3Jlc29sdXRpb246IGZlZWQuaW1hZ2VSZXNvbHV0aW9uXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHZhciBvblN1Y2Nlc3MgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS50cmltKCkuaW5kZXhPZigneycpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzcG9uc2UgPSBKU09OLnBhcnNlKGRhdGEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1dQUG9zdHMgPSB0eXBlb2YgcmVzcG9uc2UuZmVlZFN0YXR1cy5jaGVja1dQUG9zdHMgIT09ICd1bmRlZmluZWQnID8gcmVzcG9uc2UuZmVlZFN0YXR1cy5jaGVja1dQUG9zdHMgOiBmYWxzZTs7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5kZWJ1Z0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tXUFBvc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5zZXR0aW5ncy5jaGVja1dQUG9zdHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLnNldHRpbmdzLmNoZWNrV1BQb3N0cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hcHBlbmROZXdQb3N0cyhyZXNwb25zZS5odG1sKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWRkUmVzaXplZEltYWdlcyhyZXNwb25zZS5yZXNpemVkSW1hZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLmFqYXhQb3N0TG9hZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuc2V0dGluZ3MuYWpheFBvc3RMb2FkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckluaXRpYWxJbWFnZXNMb2FkZWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlck5ld0ltYWdlc0xvYWRlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLmZlZWRTdGF0dXMuc2hvdWxkUGFnaW5hdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm91dE9mUGFnZXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbG9hZF9idG4nKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQub3V0T2ZQYWdlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcuc2J5X25vX2pzJykucmVtb3ZlQ2xhc3MoJ3NieV9ub19qcycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbkNvbW1lbnRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgc2J5QWpheChzdWJtaXREYXRhLCBvblN1Y2Nlc3MpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFwcGVuZE5ld1Bvc3RzOiBmdW5jdGlvbiAobmV3UG9zdHNIdG1sKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAgLnNieV9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCAuc2J5X2l0ZW0nKS5sYXN0KCkuYWZ0ZXIobmV3UG9zdHNIdG1sKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAnKS5hcHBlbmQobmV3UG9zdHNIdG1sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWRkUmVzaXplZEltYWdlczogZnVuY3Rpb24gKHJlc2l6ZWRJbWFnZXNUb0FkZCkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGltYWdlSUQgaW4gcmVzaXplZEltYWdlc1RvQWRkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplZEltYWdlc1tpbWFnZUlEXSA9IHJlc2l6ZWRJbWFnZXNUb0FkZFtpbWFnZUlEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0SW1hZ2VIZWlnaHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1heWJlUmFpc2VTaW5nbGVJbWFnZVJlc29sdXRpb246IGZ1bmN0aW9uICgkaXRlbSwgaW5kZXgsIGZvcmNlQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzLFxuICAgICAgICAgICAgICAgICAgaW1nU3JjU2V0ID0gZmVlZC5nZXRJbWFnZVVybHMoJGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFVybCA9ICRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsID4gaW1nJykuYXR0cignc3JjJyksXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UmVzID0gMTUwLFxuICAgICAgICAgICAgICAgICAgYXNwZWN0UmF0aW8gPSAxLCAvLyBhbGwgdGh1bWJuYWlscyBhcmUgb3JpZW50ZWQgdGhlIHNhbWUgc28gdGhlIGJlc3QgY2FsY3VsYXRpb24gdXNlcyAxXG4gICAgICAgICAgICAgICAgICBmb3JjZUNoYW5nZSA9IHR5cGVvZiBmb3JjZUNoYW5nZSAhPT0gJ3VuZGVmaW5lZCcgPyBmb3JjZUNoYW5nZSA6IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgaWYgKCRpdGVtLmhhc0NsYXNzKCdzYnlfbm9fcmVzcmFpc2UnKSAgIHx8XG4gICAgICAgICAgICAgICAgICAoIWZlZWQuc2V0dGluZ3MuY29uc2VudEdpdmVuICYmIGZlZWQuc2V0dGluZ3Mubm9DRE4pICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJC5lYWNoKGltZ1NyY1NldCwgZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IGN1cnJlbnRVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXMgPSBwYXJzZUludChpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaGFzIGFscmVhZHkgYmVlbiBjaGFuZ2VkIHRvIGFuIGV4aXN0aW5nIHJlYWwgc291cmNlLCBkb24ndCBmb3JjZSB0aGUgY2hhbmdlXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JjZUNoYW5nZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy9JbWFnZSByZXNcbiAgICAgICAgICAgICAgICB2YXIgbmV3UmVzID0gNjQwO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmVlZC5zZXR0aW5ncy5pbWdSZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGh1bWInOlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmVzID0gMTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdSZXMgPSAzMjA7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmVzID0gNDgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmVzID0gNjQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWluSW1hZ2VXaWR0aCA9IE1hdGgubWF4KGZlZWQuc2V0dGluZ3MuYXV0b01pblJlcywkaXRlbS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmlubmVyV2lkdGgoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNJbWFnZVJlcGxhY2UgPSBmZWVkLmdldEJlc3RSZXNvbHV0aW9uRm9yQXV0byhtaW5JbWFnZVdpZHRoLCBhc3BlY3RSYXRpbywgJCh0aGlzLmVsKS5maW5kKCdzYnlfaXRlbScpLmZpcnN0KCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzSW1hZ2VSZXBsYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0ODA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JlcyA9IDQ4MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzMjA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JlcyA9IDMyMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxMjA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JlcyA9IDEyMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobmV3UmVzID4gY3VycmVudFJlcyB8fCBjdXJyZW50VXJsID09PSBmZWVkLnBsYWNlaG9sZGVyVVJMIHx8IGZvcmNlQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmZWVkLnNldHRpbmdzLmRlYnVnRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlYXNvbiA9IGN1cnJlbnRVcmwgPT09IGZlZWQucGxhY2Vob2xkZXJVUkwgPyAnd2FzIHBsYWNlaG9sZGVyJyA6ICd0b28gc21hbGwnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3JhaXMgcmVzIGZvciAnICsgY3VycmVudFVybCwgcmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgbmV3VXJsID0gaW1nU3JjU2V0W25ld1Jlc107XG4gICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsID4gaW1nJykuYXR0cignc3JjJywgbmV3VXJsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuaGFzQ2xhc3MoJ3NieV9pbWdMaXF1aWRfcmVhZHknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0uZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5jc3MoJ2JhY2tncm91bmQtaW1hZ2UnLCAndXJsKFwiJyArIG5ld1VybCArICdcIiknKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJ2ltZycpLm9uKCdlcnJvcicsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKHRoaXMpLmhhc0NsYXNzKCdzYnlfaW1nX2Vycm9yJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ3NieV9pbWdfZXJyb3InKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcm9tQVBJID0gKCQodGhpcykuYXR0cignc3JjJykuaW5kZXhPZignaS55dGltZy5jb20nKSA+IC0xKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzb3VyY2VGcm9tQVBJKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS1mdWxsLXJlcycpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ3NyYycsICQodGhpcykuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWZ1bGwtcmVzJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuY3NzKCdiYWNrZ3JvdW5kLWltYWdlJywgJ3VybCgnICsgJCh0aGlzKS5jbG9zZXN0KCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtZnVsbC1yZXMnKSArICcpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignaHJlZicpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ3NyYycsICQodGhpcykuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdocmVmJykgKyAnbWVkaWE/c2l6ZT1sJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWwnKS5jc3MoJ2JhY2tncm91bmQtaW1hZ2UnLCAndXJsKCcgKyAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignaHJlZicpICsgJ21lZGlhP3NpemU9bCknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuc2V0dGluZ3MuZmF2b3JMb2NhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNyY1NldCA9IGZlZWQuZ2V0SW1hZ2VVcmxzKCQodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc3JjU2V0WzY0MF0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignc3JjJywgc3JjU2V0WzY0MF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuY3NzKCdiYWNrZ3JvdW5kLWltYWdlJywgJ3VybCgnICsgc3JjU2V0WzY0MF0gKyAnKScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd1bmZpeGVkIGVycm9yICcgKyAkKHRoaXMpLmF0dHIoJ3NyYycpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1heWJlUmFpc2VJbWFnZVJlc29sdXRpb246IGZ1bmN0aW9uIChqdXN0TmV3KSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzLFxuICAgICAgICAgICAgICAgICAgaXRlbXNTZWxlY3RvciA9IHR5cGVvZiBqdXN0TmV3ICE9PSAndW5kZWZpbmVkJyAmJiBqdXN0TmV3ID09PSB0cnVlID8gJy5zYnlfaXRlbS5zYnlfbmV3JyA6ICcuc2J5X2l0ZW0nLFxuICAgICAgICAgICAgICAgICAgZm9yY2VDaGFuZ2UgPSAhZmVlZC5pc0luaXRpYWxpemVkID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgICAgICQoZmVlZC5lbCkuZmluZChpdGVtc1NlbGVjdG9yKS5lYWNoKGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISQodGhpcykuaGFzQ2xhc3MoJ3NieV9udW1fZGlmZl9oaWRlJylcbiAgICAgICAgICAgICAgICAgICAgICAmJiAkKHRoaXMpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mICQodGhpcykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWltZy1zcmMtc2V0JykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm1heWJlUmFpc2VTaW5nbGVJbWFnZVJlc29sdXRpb24oJCh0aGlzKSxpbmRleCxmb3JjZUNoYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTsgLy9FbmQgLnNieV9pdGVtIGVhY2hcbiAgICAgICAgICAgICAgICBmZWVkLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldEJlc3RSZXNvbHV0aW9uRm9yQXV0bzogZnVuY3Rpb24oY29sV2lkdGgsIGFzcGVjdFJhdGlvLCAkaXRlbSkge1xuICAgICAgICAgICAgICAgIGlmIChpc05hTihhc3BlY3RSYXRpbykgfHwgYXNwZWN0UmF0aW8gPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGFzcGVjdFJhdGlvID0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGJlc3RXaWR0aCA9IGNvbFdpZHRoICogYXNwZWN0UmF0aW8sXG4gICAgICAgICAgICAgICAgICBiZXN0V2lkdGhSb3VuZGVkID0gTWF0aC5jZWlsKGJlc3RXaWR0aCAvIDEwKSAqIDEwLFxuICAgICAgICAgICAgICAgICAgY3VzdG9tU2l6ZXMgPSBbMTIwLCAzMjAsIDQ4MCwgNjQwXTtcblxuICAgICAgICAgICAgICAgIGlmICgkaXRlbS5oYXNDbGFzcygnc2J5X2hpZ2hsaWdodGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdFdpZHRoUm91bmRlZCA9IGJlc3RXaWR0aFJvdW5kZWQgKjI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGN1c3RvbVNpemVzLmluZGV4T2YocGFyc2VJbnQoYmVzdFdpZHRoUm91bmRlZCkpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZG9uZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAkLmVhY2goY3VzdG9tU2l6ZXMsIGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0gPiBwYXJzZUludChiZXN0V2lkdGhSb3VuZGVkKSAmJiAhZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RXaWR0aFJvdW5kZWQgPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYmVzdFdpZHRoUm91bmRlZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoaWRlRXh0cmFJdGVtc0ZvcldpZHRoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQgPT09ICdjYXJvdXNlbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgbnVtID0gdHlwZW9mICRzZWxmLmF0dHIoJ2RhdGEtbnVtJykgIT09ICd1bmRlZmluZWQnICYmICRzZWxmLmF0dHIoJ2RhdGEtbnVtJykgIT09ICcnID8gcGFyc2VJbnQoJHNlbGYuYXR0cignZGF0YS1udW0nKSkgOiAxLFxuICAgICAgICAgICAgICAgICAgbnVtbW9iaWxlID0gdHlwZW9mICRzZWxmLmF0dHIoJ2RhdGEtbnVtbW9iaWxlJykgIT09ICd1bmRlZmluZWQnICYmICRzZWxmLmF0dHIoJ2RhdGEtbnVtbW9iaWxlJykgIT09ICcnID8gcGFyc2VJbnQoJHNlbGYuYXR0cignZGF0YS1udW1tb2JpbGUnKSkgOiBudW07XG5cbiAgICAgICAgICAgICAgICBpZiAoISRzZWxmLmhhc0NsYXNzKCcuc2J5X2xheW91dF9jYXJvdXNlbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHdpbmRvdykud2lkdGgoKSA8IDQ4MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bW1vYmlsZSA8ICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLnNsaWNlKG51bW1vYmlsZSAtICRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmxlbmd0aCkuYWRkQ2xhc3MoJ3NieV9udW1fZGlmZl9oaWRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtIDwgJHNlbGYuZmluZCgnLnNieV9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuc2xpY2UobnVtIC0gJHNlbGYuZmluZCgnLnNieV9pdGVtJykubGVuZ3RoKS5hZGRDbGFzcygnc2J5X251bV9kaWZmX2hpZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldEltYWdlU2l6ZUNsYXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKTtcbiAgICAgICAgICAgICAgICAkc2VsZi5yZW1vdmVDbGFzcygnc2J5X3NtYWxsIHNieV9tZWRpdW0nKTtcbiAgICAgICAgICAgICAgICB2YXIgZmVlZFdpZHRoID0gJHNlbGYuaW5uZXJXaWR0aCgpLFxuICAgICAgICAgICAgICAgICAgcGhvdG9QYWRkaW5nID0gcGFyc2VJbnQoKCRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCcpLm91dGVyV2lkdGgoKSAtICRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCcpLndpZHRoKCkpKSAvIDIsXG4gICAgICAgICAgICAgICAgICBjb2xzID0gdGhpcy5nZXRDb2x1bW5Db3VudCgpLFxuICAgICAgICAgICAgICAgICAgZmVlZFdpZHRoU2Fuc1BhZGRpbmcgPSBmZWVkV2lkdGggLSAocGhvdG9QYWRkaW5nICogKGNvbHMrMikpLFxuICAgICAgICAgICAgICAgICAgY29sV2lkdGggPSAoZmVlZFdpZHRoU2Fuc1BhZGRpbmcgLyBjb2xzKTtcblxuICAgICAgICAgICAgICAgIGlmIChjb2xXaWR0aCA+IDE0MCAmJiBjb2xXaWR0aCA8IDI0MCkge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5hZGRDbGFzcygnc2J5X21lZGl1bScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sV2lkdGggPD0gMTQwKSB7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmFkZENsYXNzKCdzYnlfc21hbGwnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TWluSW1hZ2VXaWR0aDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMuZWwpLmZpbmQoJy5zYnlfaXRlbSAuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpcnN0KCkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluSW1hZ2VXaWR0aCA9ICQodGhpcy5lbCkuZmluZCgnLnNieV9pdGVtIC5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZmlyc3QoKS5pbm5lcldpZHRoKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5JbWFnZVdpZHRoID0gMTUwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRJbWFnZVJlc29sdXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5pbWdSZXMgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUmVzb2x1dGlvbiA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuc2V0dGluZ3MuaW1nUmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd0aHVtYic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVJlc29sdXRpb24gPSAxNTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hZ2VSZXNvbHV0aW9uID0gMzIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltYWdlUmVzb2x1dGlvbiA9IDY0MDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRJbWFnZVVybHM6IGZ1bmN0aW9uICgkaXRlbSkge1xuICAgICAgICAgICAgICAgIHZhciBzcmNTZXQgPSBKU09OLnBhcnNlKCRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS1pbWctc3JjLXNldCcpLnJlcGxhY2UoL1xcXFxcXC8vZywgJy8nKSksXG4gICAgICAgICAgICAgICAgICBpZCA9ICRpdGVtLmF0dHIoJ2lkJykucmVwbGFjZSgnc2J5XycsICcnKS5yZXBsYWNlKCdwbGF5ZXJfJywnJyk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXSAhPT0gJ3ZpZGVvJ1xuICAgICAgICAgICAgICAgICAgJiYgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXSAhPT0gJ3BlbmRpbmcnXG4gICAgICAgICAgICAgICAgICAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICE9PSAnZXJyb3InXG4gICAgICAgICAgICAgICAgICAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICE9PSAndmlkZW8nXG4gICAgICAgICAgICAgICAgICAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICE9PSAncGVuZGluZycpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzaXplZEltYWdlc1tpZF1bJ3NpemVzJ10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZm91bmRTaXplcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydzaXplcyddWydmdWxsJ10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTaXplcy5wdXNoKDY0MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzY0MF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0uZmluZCgnLnNieV9saW5rX2FyZWEnKS5hdHRyKCAnaHJlZicsIHNieU9wdGlvbnMucmVzaXplZF91cmwgKyB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdLmlkICsgJ2Z1bGwuanBnJyApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0ciggJ2RhdGEtZnVsbC1yZXMnLCBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZycgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXVsnc2l6ZXMnXVsnbG93J10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTaXplcy5wdXNoKDMyMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzMyMF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdsb3cuanBnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5mYXZvckxvY2FsICYmIHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydzaXplcyddWydmdWxsJ10gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfbGlua19hcmVhJykuYXR0ciggJ2hyZWYnLCBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdsb3cuanBnJyApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoICdkYXRhLWZ1bGwtcmVzJywgc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHRoaXMucmVzaXplZEltYWdlc1tpZF0uaWQgKyAnbG93LmpwZycgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzaXplZEltYWdlc1tpZF1bJ3NpemVzJ11bJ3RodW1iJ10gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRTaXplcy5wdXNoKDE1MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzE1MF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICd0aHVtYi5qcGcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuZmF2b3JMb2NhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZFNpemVzLmluZGV4T2YoNjQwKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kU2l6ZXMuaW5kZXhPZigzMjApID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1NldFs2NDBdID0gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHRoaXMucmVzaXplZEltYWdlc1tpZF0uaWQgKyAnbG93LmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kU2l6ZXMuaW5kZXhPZigzMjApID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZm91bmRTaXplcy5pbmRleE9mKDY0MCkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzMyMF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRTaXplcy5pbmRleE9mKDE1MCkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzMyMF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICd0aHVtYi5qcGcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmb3VuZFNpemVzLmluZGV4T2YoMTUwKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kU2l6ZXMuaW5kZXhPZigzMjApID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1NldFsxNTBdID0gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHRoaXMucmVzaXplZEltYWdlc1tpZF0uaWQgKyAnbG93LmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRTaXplcy5pbmRleE9mKDY0MCkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjU2V0WzE1MF0gPSBzYnlPcHRpb25zLnJlc2l6ZWRfdXJsICsgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXS5pZCArICdmdWxsLmpwZyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgfHwgKHR5cGVvZiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydpZCddICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnJlc2l6ZWRJbWFnZXNbaWRdWydpZCddICE9PSAncGVuZGluZycgJiYgdGhpcy5yZXNpemVkSW1hZ2VzW2lkXVsnaWQnXSAhPT0gJ2Vycm9yJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRUb05lZWRzUmVzaXppbmcoaWQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBzcmNTZXQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0VmlkZW9JRDogZnVuY3Rpb24gKCRlbCkge1xuICAgICAgICAgICAgICAgIGlmICgkZWwuaGFzQ2xhc3MoJ3NieV9pdGVtJykgfHwgJGVsLmhhc0NsYXNzKCdzYnlfcGxheWVyX2l0ZW0nKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mICRlbC5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkZWwuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRlbC5jbG9zZXN0KCdzYnlfaXRlbScpLmxlbmd0aCB8fCAkZWwuY2xvc2VzdCgnc2J5X3BsYXllcl9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkdGFyZ2VFbCA9ICRlbC5jbG9zZXN0KCdzYnlfaXRlbScpLmxlbmd0aCA/ICRlbC5jbG9zZXN0KCdzYnlfaXRlbScpIDogJGVsLmNsb3Nlc3QoJ3NieV9wbGF5ZXJfaXRlbScpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mICR0YXJnZUVsLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0YXJnZUVsLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZWwuaGFzQ2xhc3MoJ3NiX3lvdXR1YmUnKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGVsLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkKHRoaXMuZWwpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZmlyc3QoKS5sZW5ndGggJiYgdHlwZW9mICQodGhpcy5lbCkuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5maXJzdCgpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSAhPT0gJ3VuZGVmaW5lZCcpe1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCh0aGlzLmVsKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpcnN0KCkuYXR0cignZGF0YS12aWRlby1pZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0QXZhdGFyVXJsOiBmdW5jdGlvbiAodXNlcm5hbWUsZmF2b3JUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVzZXJuYW1lID09PSAnJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGF2YWlsYWJsZUF2YXRhcnMgPSB0aGlzLnNldHRpbmdzLmdlbmVyYWwuYXZhdGFycyxcbiAgICAgICAgICAgICAgICAgIGZhdm9yVHlwZSA9IHR5cGVvZiBmYXZvclR5cGUgIT09ICd1bmRlZmluZWQnID8gZmF2b3JUeXBlIDogJ2xvY2FsJztcblxuICAgICAgICAgICAgICAgIGlmIChmYXZvclR5cGUgPT09ICdsb2NhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhdmFpbGFibGVBdmF0YXJzWydMQ0wnK3VzZXJuYW1lXSAhPT0gJ3VuZGVmaW5lZCcgJiYgcGFyc2VJbnQoYXZhaWxhYmxlQXZhdGFyc1snTENMJyt1c2VybmFtZV0pID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHVzZXJuYW1lICsgJy5qcGcnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhdmFpbGFibGVBdmF0YXJzW3VzZXJuYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVBdmF0YXJzW3VzZXJuYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYXZhaWxhYmxlQXZhdGFyc1t1c2VybmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlQXZhdGFyc1t1c2VybmFtZV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGF2YWlsYWJsZUF2YXRhcnNbJ0xDTCcrdXNlcm5hbWVdICE9PSAndW5kZWZpbmVkJyAmJiBwYXJzZUludChhdmFpbGFibGVBdmF0YXJzWydMQ0wnK3VzZXJuYW1lXSkgPT09IDEpICB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2J5T3B0aW9ucy5yZXNpemVkX3VybCArIHVzZXJuYW1lICsgJy5qcGcnO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFkZFRvTmVlZHNSZXNpemluZzogZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmVlZHNSZXNpemluZy5pbmRleE9mKGlkKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZWVkc1Jlc2l6aW5nLnB1c2goaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhcHBseUltYWdlTGlxdWlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzLmVsKSxcbiAgICAgICAgICAgICAgICAgIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHNieUFkZEltZ0xpcXVpZCgpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgJHNlbGYuZmluZChcIi5zYnlfcGxheWVyX2l0ZW1cIikuc2J5X2ltZ0xpcXVpZCA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkc2VsZi5maW5kKCcuc2J5X3BsYXllcl9pdGVtJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKFwiLnNieV9wbGF5ZXJfaXRlbSAuc2J5X3BsYXllcl92aWRlb190aHVtYm5haWxcIikuc2J5X2ltZ0xpcXVpZCh7ZmlsbDogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoXCIuc2J5X2l0ZW0gLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbFwiKS5zYnlfaW1nTGlxdWlkKHtmaWxsOiB0cnVlfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpc3RlbkZvclZpc2liaWxpdHlDaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBzYnlBZGRWaXNpYmlsaXR5TGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mICQodGhpcy5lbCkuZmlsdGVyKCc6aGlkZGVuJykuc2J5VmlzaWJpbGl0eUNoYW5nZWQgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAvL0lmIHRoZSBmZWVkIGlzIGluaXRpYWxseSBoaWRkZW4gKGluIGEgdGFiIGZvciBleGFtcGxlKSB0aGVuIGNoZWNrIGZvciB3aGVuIGl0IGJlY29tZXMgdmlzaWJsZSBhbmQgc2V0IHRoZW4gc2V0IHRoZSBoZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5maWx0ZXIoJzpoaWRkZW4nKS5zYnlWaXNpYmlsaXR5Q2hhbmdlZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKGVsZW1lbnQsIHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyUmVzaXplKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcnVuT25Mb2FkOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q29sdW1uQ291bnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCksXG4gICAgICAgICAgICAgICAgICBjb2xzID0gdGhpcy5zZXR0aW5ncy5jb2xzLFxuICAgICAgICAgICAgICAgICAgY29sc21vYmlsZSA9IHRoaXMuc2V0dGluZ3MuY29sc21vYmlsZSxcbiAgICAgICAgICAgICAgICAgIHJldHVybkNvbHMgPSBjb2xzO1xuXG4gICAgICAgICAgICAgICAgc2J5V2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X21vYl9jb2xfYXV0bycpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzYnlXaW5kb3dXaWR0aCA8IDY0MCAmJiAocGFyc2VJbnQoY29scykgPiAyICYmIHBhcnNlSW50KGNvbHMpIDwgNykpIHJldHVybkNvbHMgPSAyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2J5V2luZG93V2lkdGggPCA2NDAgJiYgKHBhcnNlSW50KGNvbHMpID4gNiAmJiBwYXJzZUludChjb2xzKSA8IDExKSkgcmV0dXJuQ29scyA9IDQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzYnlXaW5kb3dXaWR0aCA8PSA0ODAgJiYgcGFyc2VJbnQoY29scykgPiAyKSByZXR1cm5Db2xzID0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNieVdpbmRvd1dpZHRoIDw9IDQ4MCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm5Db2xzID0gY29sc21vYmlsZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQocmV0dXJuQ29scyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25UaHVtYm5haWxDbGljazogZnVuY3Rpb24oJGNsaWNrZWQsaXNQbGF5ZXIsdmlkZW9JRCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW5DcmVhdGVQbGF5ZXIoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCk7XG4gICAgICAgICAgICAgICAgaWYgKCRzZWxmLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dhbGxlcnknKSkge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2N1cnJlbnQnKS5yZW1vdmVDbGFzcygnc2J5X2N1cnJlbnQnKTtcbiAgICAgICAgICAgICAgICAgICAgJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykuYWRkQ2xhc3MoJ3NieV9jdXJyZW50Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykuYWRkQ2xhc3MoJ3NieV9jdXJyZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgICRzZWxmLmFkZENsYXNzKCdzYnlfcGxheWVyX2FkZGVkJykuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLmFkZENsYXNzKCdzYnlfcGxheWVyX2xvYWRpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCAuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpbmQoJy5zYnlfbG9hZGVyJykuc2hvdygpLnJlbW92ZUNsYXNzKCdzYnlfaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCBpZnJhbWUnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1BsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGxheWVyKCdzYnlfcGxheWVyJyt0aGlzLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZGVvSUQgPSB0eXBlb2YgdmlkZW9JRCA9PT0gJ3VuZGVmaW5lZCcgPyB0aGlzLmdldFZpZGVvSUQoJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykpIDogdmlkZW9JRDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBsYXllcignc2J5X3BsYXllcicrdGhpcy5pbmRleCx2aWRlb0lEKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1BsYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgPT09ICd1bmRlZmluZWQnID8gdGhpcy5nZXRWaWRlb0lEKCRzZWxmLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkpIDogdmlkZW9JRDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVZpZGVvSW5QbGF5ZXIodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgPT09ICd1bmRlZmluZWQnID8gdGhpcy5nZXRWaWRlb0lEKCRjbGlja2VkLmNsb3Nlc3QoJy5zYnlfaXRlbScpKSA6IHZpZGVvSUQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVBsYXllckluZm8oJGNsaWNrZWQuY2xvc2VzdCgnLnNieV9pdGVtJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVZpZGVvSW5QbGF5ZXIodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZnRlclZpZGVvQ2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR2FsbGVyeVBsYXllclN1YnNjcmliZUJ0bigkY2xpY2tlZCk7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ3JpZCcpIHx8ICQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfY2Fyb3VzZWwnKSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJHNieUl0ZW0gPSAkY2xpY2tlZC5jbG9zZXN0KCcuc2J5X2l0ZW0nKSxcbiAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgPT09ICd1bmRlZmluZWQnID8gdGhpcy5nZXRWaWRlb0lEKCRzYnlJdGVtKSA6IHZpZGVvSUQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheVZpZGVvSW5QbGF5ZXIodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWZ0ZXJWaWRlb0NoYW5nZWQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkc2J5SXRlbSA9ICRjbGlja2VkLmNsb3Nlc3QoJy5zYnlfaXRlbScpLFxuICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSUQgPSB0eXBlb2YgdmlkZW9JRCA9PT0gJ3VuZGVmaW5lZCcgPyB0aGlzLmdldFZpZGVvSUQoJHNieUl0ZW0pIDogdmlkZW9JRDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRzYnlJdGVtLmxlbmd0aCAmJiAhJHNieUl0ZW0uZmluZCgnaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2J5SXRlbS5maW5kKCcuc2J5X2xvYWRlcicpLnNob3coKS5yZW1vdmVDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNieUl0ZW0uYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZyBzYnlfcGxheWVyX2xvYWRlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGF5ZXIoJ3NieV9wbGF5ZXJfJyt2aWRlb0lELHZpZGVvSUQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wbGF5VmlkZW9JblBsYXllcih2aWRlb0lELCRzYnlJdGVtLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFmdGVyVmlkZW9DaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25UaHVtYm5haWxFbnRlcjogZnVuY3Rpb24oJGhvdmVyZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2FuQ3JlYXRlUGxheWVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKHRoaXMuZWwpO1xuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9saXN0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICRzYnlJdGVtID0gJGhvdmVyZWQuY2xvc2VzdCgnLnNieV9pdGVtJyksXG4gICAgICAgICAgICAgICAgICAgICAgdmlkZW9JRCA9IHRoaXMuZ2V0VmlkZW9JRCgkc2J5SXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghJHNieUl0ZW0uZmluZCgnaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkc2J5SXRlbS5maW5kKCcuc2J5X2xvYWRlcicpLnNob3coKS5yZW1vdmVDbGFzcygnc2J5X2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNieUl0ZW0uYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGluZyBzYnlfcGxheWVyX2xvYWRlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGF5ZXIoJ3NieV9wbGF5ZXJfJyt2aWRlb0lELHZpZGVvSUQsMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25UaHVtYm5haWxMZWF2ZTogZnVuY3Rpb24oJGhvdmVyZWQpIHtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGFuZ2VQbGF5ZXJJbmZvOiBmdW5jdGlvbigkbmV3SXRlbSkge1xuXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGxheWVyRWFnZXJMb2FkZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wbGF5ZXIgIT09ICd1bmRlZmluZWQnIHx8ICQodGhpcy5lbCkuaGFzQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhbkNyZWF0ZVBsYXllcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKCQodGhpcy5lbCkuZmluZCgnI3NieV9ibGFuaycpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBsYXllckVhZ2VyTG9hZGVkKCkgfHwgKHRoaXMucGxheWVyQVBJUmVhZHkgJiYgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4pIHx8ICh3aW5kb3cuc2J5QVBJUmVhZHkgJiYgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBsYXlWaWRlb0luUGxheWVyOiBmdW5jdGlvbih2aWRlb0lELHBsYXllcklEKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBsYXllciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHRoaXMucGxheWVyLmxvYWRWaWRlb0J5SWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheWVyLmxvYWRWaWRlb0J5SWQodmlkZW9JRCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mIHdpbmRvdy5zYnlMaWdodGJveFBsYXllci5sb2FkVmlkZW9CeUlkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5TGlnaHRib3hQbGF5ZXIubG9hZFZpZGVvQnlJZCh2aWRlb0lEKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwbGF5ZXJJRCAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICYmIHR5cGVvZiB0aGlzLnBsYXllcnMgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgdGhpcy5wbGF5ZXJzW3BsYXllcklEXSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICYmIHR5cGVvZiB0aGlzLnBsYXllcnNbcGxheWVySURdLmxvYWRWaWRlb0J5SWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxheWVyc1twbGF5ZXJJRF0ubG9hZFZpZGVvQnlJZCh2aWRlb0lEKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWZ0ZXJWaWRlb0NoYW5nZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMuZWwpLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dhbGxlcnknKSkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMuZWwpLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5yZW1vdmVDbGFzcygnc2J5X3BsYXllcl9sb2FkaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcy5lbCkuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCAuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpbmQoJy5zYnlfbG9hZGVyJykuaGlkZSgpLmFkZENsYXNzKCdzYnlfaGlkZGVuJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiAkKHRoaXMuZWwpLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAnKS5vZmZzZXQoKS50b3BcbiAgICAgICAgICAgICAgICAgICAgfSwgMzAwKTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVHYWxsZXJ5UGxheWVyU3Vic2NyaWJlQnRuOiBmdW5jdGlvbigkY2xpY2tlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1VUkwgPSAkY2xpY2tlZC5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSAvY2hhbm5lbFxcLyguKikkLztcbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IGl0ZW1VUkwubWF0Y2gocmVnZXgpO1xuICAgICAgICAgICAgICAgIGlmICggISBtYXRjaCApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjaGFubmVsSWQgPSBtYXRjaFsxXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdG5VUkwgPSAnaHR0cDovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsLycrIGNoYW5uZWxJZCArJz9zdWJfY29uZmlybWF0aW9uPTEmZmVhdHVyZT1zdWJzY3JpYmUtZW1iZWQtY2xpY2snO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICQoJy5zYnktY2hhbm5lbC1zdWJzY3JpYmUtYnRuIGEnKS5hdHRyKCdocmVmJywgc3Vic2NyaWJlQnRuVVJMKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjaGVja0NvbnNlbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbiB8fCAhdGhpcy5zZXR0aW5ncy5nZHByKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3Mubm9DRE4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgQ0xJX0Nvb2tpZSAhPT0gXCJ1bmRlZmluZWRcIikgeyAvLyBHRFBSIENvb2tpZSBDb25zZW50IGJ5IFdlYlRvZmZlZVxuICAgICAgICAgICAgICAgICAgICBpZiAoQ0xJX0Nvb2tpZS5yZWFkKENMSV9BQ0NFUFRfQ09PS0lFX05BTUUpICE9PSBudWxsKSAge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZWJUb2ZmZWUgbm8gbG9uZ2VyIHVzZXMgdGhpcyBjb29raWUgYnV0IGJlaW5nIGxlZnQgaGVyZSB0byBtYWludGFpbiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKENMSV9Db29raWUucmVhZCgnY29va2llbGF3aW5mby1jaGVja2JveC1ub24tbmVjZXNzYXJ5JykgIT09ICdudWxsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gQ0xJX0Nvb2tpZS5yZWFkKCdjb29raWVsYXdpbmZvLWNoZWNrYm94LW5vbi1uZWNlc3NhcnknKSA9PT0gJ3llcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChDTElfQ29va2llLnJlYWQoJ2Nvb2tpZWxhd2luZm8tY2hlY2tib3gtbmVjZXNzYXJ5JykgIT09ICdudWxsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gQ0xJX0Nvb2tpZS5yZWFkKCdjb29raWVsYXdpbmZvLWNoZWNrYm94LW5lY2Vzc2FyeScpID09PSAneWVzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93LmNuQXJncyAhPT0gXCJ1bmRlZmluZWRcIikgeyAvLyBDb29raWUgTm90aWNlIGJ5IGRGYWN0b3J5XG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IFwiOyBcIiArIGRvY3VtZW50LmNvb2tpZSxcbiAgICAgICAgICAgICAgICAgICAgICBwYXJ0cyA9IHZhbHVlLnNwbGl0KCAnOyBjb29raWVfbm90aWNlX2FjY2VwdGVkPScgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIHBhcnRzLmxlbmd0aCA9PT0gMiApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWwgPSBwYXJ0cy5wb3AoKS5zcGxpdCggJzsnICkuc2hpZnQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSAodmFsID09PSAndHJ1ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygd2luZG93LmNvbXBsaWFueiAhPT0gJ3VuZGVmaW5lZCcpIHsgLy8gQ29tcGxpYW56IGJ5IFJlYWxseSBTaW1wbGUgUGx1Z2luc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbiA9ICggc2J5Q21wbHpHZXRDb29raWUoJ2NtcGx6X21hcmtldGluZycpID09PSAnYWxsb3cnIHx8IGpRdWVyeSgnYm9keScpLmhhc0NsYXNzKCdjbXBsei1zdGF0dXMtbWFya2V0aW5nJykgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cuQ29va2llYm90ICE9PSBcInVuZGVmaW5lZFwiKSB7IC8vIENvb2tpZWJvdCBieSBDeWJvdCBBL1NcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSBDb29raWVib3QuY29uc2VudGVkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHdpbmRvdy5Cb3JsYWJzQ29va2llICE9PSAndW5kZWZpbmVkJykgeyAvLyBCb3JsYWJzIENvb2tpZSBieSBCb3JsYWJzXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuY29uc2VudEdpdmVuID0gdHlwZW9mIHdpbmRvdy5Cb3JsYWJzQ29va2llLkNvbnNlbnRzICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5Cb3JsYWJzQ29va2llLkNvbnNlbnRzLmhhc0NvbnNlbnQoJ3lvdXR1YmUnKSA6IHdpbmRvdy5Cb3JsYWJzQ29va2llLmNoZWNrQ29va2llQ29uc2VudCgneW91dHViZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBldnQgPSBqUXVlcnkuRXZlbnQoJ3NieWNoZWNrY29uc2VudCcpO1xuICAgICAgICAgICAgICAgIGV2dC5mZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBqUXVlcnkod2luZG93KS50cmlnZ2VyKGV2dCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXR0aW5ncy5jb25zZW50R2l2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5ub0NETiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzLmNvbnNlbnRHaXZlbjsgLy8gR0RQUiBub3QgZW5hYmxlZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyQ29uc2VudFRvZ2dsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrQ29uc2VudCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5tYXliZUFkZFlUQVBJKCk7XG4gICAgICAgICAgICAgICAgICAgIGZlZWQubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBmZWVkLmFwcGx5RnVsbEZlYXR1cmVzKCk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmFmdGVyUmVzaXplKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sNTAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVtb3ZlRmVhdHVyZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5ub0NETikge1xuICAgICAgICAgICAgICAgICAgICAkKGZlZWQuZWwpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQXR0cignZGF0YS1zYnktbGlnaHRib3gnKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFwcGx5RnVsbEZlYXR1cmVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmVlZCA9IHRoaXM7XG5cbiAgICAgICAgICAgICAgICAkKGZlZWQuZWwpLmZpbmQoJy5zYnlfaGVhZGVyX2ltZyBpbWcnKS5hdHRyKCdzcmMnLCQoZmVlZC5lbCkuZmluZCgnLnNieV9oZWFkZXJfaW1nJykuYXR0cignZGF0YS1hdmF0YXItdXJsJykpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgJChmZWVkLmVsKS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmZpcnN0KCkuYXR0cignZGF0YS1zYnktbGlnaHRib3gnKSA9PT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgICAgICAgICAgICYmIGZlZWQuc2V0dGluZ3MubGlnaHRib3hFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoZmVlZC5lbCkuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdkYXRhLXNieS1saWdodGJveCcsZmVlZC5pbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgJHNlbGYgPSAkKGZlZWQuZWwpO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbm9fY29uc2VudCcpLnJlbW92ZUNsYXNzKCdzYnlfbm9fY29uc2VudCcpO1xuICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9nYWxsZXJ5JykgJiYgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1heWJlUmFpc2VTaW5nbGVJbWFnZVJlc29sdXRpb24oJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfb3V0ZXJfd3JhcCcpLCAwLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZmlyc3QoKS5hZGRDbGFzcygnc2J5X2N1cnJlbnQnKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZlZWQuY2FuQ3JlYXRlUGxheWVyKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoISRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX291dGVyX3dyYXAgaWZyYW1lJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLmNyZWF0ZVBsYXllcignc2J5X3BsYXllcicrZmVlZC5pbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhdGlvbkd1ZXNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGZlZWQgPSAkKHRoaXMuZWwpLFxuICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSAnY29udGVudCc7XG5cbiAgICAgICAgICAgICAgICBpZiAoJGZlZWQuY2xvc2VzdCgnZm9vdGVyJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gJ2Zvb3Rlcic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgkZmVlZC5jbG9zZXN0KCcuaGVhZGVyJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICB8fCAkZmVlZC5jbG9zZXN0KCdoZWFkZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSAnaGVhZGVyJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCRmZWVkLmNsb3Nlc3QoJy5zaWRlYmFyJykubGVuZ3RoXG4gICAgICAgICAgICAgICAgICB8fCAkZmVlZC5jbG9zZXN0KCdhc2lkZScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiA9ICdzaWRlYmFyJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgZnVuY3Rpb24gU2J5RmVlZFBybyhlbCwgaW5kZXgsIHNldHRpbmdzKSB7XG4gICAgICAgICAgICBTYnlGZWVkLmNhbGwodGhpcywgZWwsIGluZGV4LCBzZXR0aW5ncyk7XG5cbiAgICAgICAgICAgIHRoaXMuQ1RBID0ge307XG5cbiAgICAgICAgICAgIHRoaXMuaW5pdExheW91dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEdhbGxlcnlMYXlvdXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmluaXRDYXJvdXNlbHMoKTtcbiAgICAgICAgICAgICAgICB2YXIgZXZ0ID0galF1ZXJ5LkV2ZW50KCdzYnlhZnRlcmxheW91dGluaXQnKTtcbiAgICAgICAgICAgICAgICBldnQuZmVlZCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykudHJpZ2dlcihldnQpO1xuICAgICAgICAgICAgICAgIG9wZW5Db21tZW50cygpOyBcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuaW5pdEdyaWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcgJiYgalF1ZXJ5KCcjc2J5X2xpZ2h0Ym94JykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBmZWVkID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgcGxheWVySUQgPSAnc2J5X2xiLXBsYXllcic7XG4gICAgICAgICAgICAgICAgICAgIGpRdWVyeSgnI3NieV9saWdodGJveCcpLmFkZENsYXNzKCdzYnlfdmlkZW9fbGlnaHRib3gnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCAhIHdpbmRvdy5zYnlPcHRpb25zLmlzUHJvICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcjc2J5X2xpZ2h0Ym94JykuYWRkQ2xhc3MoJ3NieV9saWdodGJveF9mcmVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9ICQodGhpcy5lbCkuZmluZCgnc2J5X2l0ZW0nKS5maXJzdCgpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSxcbiAgICAgICAgICAgICAgICAgICAgICBhdXRvcGxheSA9IHNieU9wdGlvbnMuYXV0b3BsYXk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdDogd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgZmVlZC5lbWJlZFVSTCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lkOiB2aWRlb0lELFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IGF1dG9wbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uU3RhdGVDaGFuZ2UnOiBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZpZGVvSUQgPSBkYXRhLnRhcmdldC5nZXRWaWRlb0RhdGEoKVsndmlkZW9faWQnXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWZ0ZXJTdGF0ZUNoYW5nZShwbGF5ZXJJRCwgdmlkZW9JRCwgZGF0YSwgJCgnIycgKyBwbGF5ZXJJRCkuY2xvc2VzdCgnLnNieV92aWRlb190aHVtYm5haWxfd3JhcCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm1heWJlQWRkQ1RBKHBsYXllcklEKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID0gbmV3IHdpbmRvdy5ZVC5QbGF5ZXIocGxheWVySUQsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5pbml0Q2Fyb3VzZWxzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzLFxuICAgICAgICAgICAgICAgICAgJHNlbGYgPSAkKHRoaXMuZWwpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGNvbHMgPSB0aGlzLnNldHRpbmdzLmNvbHMsXG4gICAgICAgICAgICAgICAgICBjb2xzbW9iaWxlID0gdGhpcy5zZXR0aW5ncy5jb2xzbW9iaWxlO1xuXG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuYWRkQ2xhc3MoJ3NieV9jYXJvdXNlbCcpO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfbG9hZF9idG4nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAncGFkZGluZy10b3AnIDogJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuY3NzKCdwYWRkaW5nLXRvcCcpLFxuICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1yaWdodCcgOiAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAnKS5jc3MoJ3BhZGRpbmctdG9wJyksXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbScgOiAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAnKS5jc3MoJ3BhZGRpbmctdG9wJyksXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWxlZnQnIDogJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuY3NzKCdwYWRkaW5nLXRvcCcpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdzdHlsZScsJCh0aGlzKS5hdHRyKCdzdHlsZScpLnJlcGxhY2UoJ3BhZGRpbmc6ICcrJHNlbGYuZmluZCgnLnNieV9pdGVtc193cmFwJykuY3NzKCdwYWRkaW5nLXRvcCcpLCdwYWRkaW5nOiAnKyRzZWxmLmZpbmQoJy5zYnlfaXRlbXNfd3JhcCcpLmNzcygncGFkZGluZy10b3AnKSArICcgIWltcG9ydGFudCcpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHZhciBhcnJvd3MgPSBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWxbMF0sXG4gICAgICAgICAgICAgICAgICBwYWdpbmF0aW9uID0gZmVlZC5zZXR0aW5ncy5nZW5lcmFsLmNhcm91c2VsWzFdLFxuICAgICAgICAgICAgICAgICAgYXV0b3BsYXkgPSBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWxbMl0sXG4gICAgICAgICAgICAgICAgICB0aW1lID0gZmVlZC5zZXR0aW5ncy5nZW5lcmFsLmNhcm91c2VsWzNdLFxuICAgICAgICAgICAgICAgICAgbG9vcCA9IGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5jYXJvdXNlbFs0XSxcbiAgICAgICAgICAgICAgICAgIHJvd3MgPSBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2Fyb3VzZWxbNV07XG4gICAgICAgICAgICAgICAgLy9Jbml0aWF0ZSBjYXJvdXNlbFxuICAgICAgICAgICAgICAgIGlmKCAhYXV0b3BsYXkgKSB0aW1lID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAvL1NldCBkZWZhdWx0cyBmb3IgcmVzcG9uc2l2ZSBicmVha3BvaW50c1xuICAgICAgICAgICAgICAgIHZhciBpdGVtc1RhYmxldFNtYWxsID0gY29scyxcbiAgICAgICAgICAgICAgICAgIGl0ZW1zTW9iaWxlID0gY29scyxcbiAgICAgICAgICAgICAgICAgIGFycm93cyA9IGFycm93cyA/ICdvbmhvdmVyJyA6ICdoaWRlJyxcbiAgICAgICAgICAgICAgICAgIGF1dG9wbGF5ID0gdGltZSAhPT0gZmFsc2UsXG4gICAgICAgICAgICAgICAgICBoYXMycm93cyA9IChyb3dzID09IDIpLFxuICAgICAgICAgICAgICAgICAgbG9vcCA9ICghbG9vcCksXG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGFmdGVySW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9IGpRdWVyeShmZWVkLmVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAuc2J5X2Nhcm91c2VsJykuZmFkZUluKCk7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW1zX3dyYXAuc2J5X2Nhcm91c2VsIC5zYnlfaW5mbywgLnNieV9vd2wycm93LWl0ZW0sLnNieV9pdGVtc193cmFwLnNieV9jYXJvdXNlbCcpLmZhZGVJbigpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgfSwgMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRuYXZFbGVtZW50c1dyYXBwZXIgPSAkc2VsZi5maW5kKCcuc2J5LW93bC1uYXYnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFycm93cyA9PT0gJ29uaG92ZXInKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcnJvd3MgPT09ICdiZWxvdycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkZG90cyA9ICRzZWxmLmZpbmQoJy5zYnktb3dsLWRvdHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByZXYgPSAkc2VsZi5maW5kKCcuc2J5LW93bC1wcmV2JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXh0ID0gJHNlbGYuZmluZCgnLnNieS1vd2wtbmV4dCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmF2ID0gJHNlbGYuZmluZCgnLnNieS1vd2wtbmF2JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3QgPSAkc2VsZi5maW5kKCcuc2J5LW93bC1kb3QnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGhEb3RzID0gJGRvdC5sZW5ndGggKiAkZG90LmlubmVyV2lkdGgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSAkc2VsZi5pbm5lcldpZHRoKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwcmV2LmFmdGVyKCRkb3RzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hdi5jc3MoJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmV4dC5jc3MoJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJykuY3NzKCd0b3AnLCAnLTZweCcpLmNzcygncmlnaHQnLCBNYXRoLm1heCgoLjUgKiAkbmF2LmlubmVyV2lkdGgoKSAtIC41ICogKHdpZHRoRG90cykgLSAkbmV4dC5pbm5lcldpZHRoKCkgLSA2KSwgMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByZXYuY3NzKCdwb3NpdGlvbicsICdhYnNvbHV0ZScpLmNzcygndG9wJywgJy02cHgnKS5jc3MoJ2xlZnQnLCBNYXRoLm1heCgoLjUgKiAkbmF2LmlubmVyV2lkdGgoKSAtIC41ICogKHdpZHRoRG90cykgLSAkcHJldi5pbm5lcldpZHRoKCkgLSA2KSwgMCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFycm93cyA9PT0gJ2hpZGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmF2RWxlbWVudHNXcmFwcGVyLmFkZENsYXNzKCdoaWRlJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAvL0Rpc2FibGUgbW9iaWxlIGxheW91dFxuICAgICAgICAgICAgICAgIGlmKCAkc2VsZi5oYXNDbGFzcygnc2J5X21vYl9jb2xfYXV0bycpICkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtc1RhYmxldFNtYWxsID0gMjtcbiAgICAgICAgICAgICAgICAgICAgaWYoIHBhcnNlSW50KGNvbHMpICE9IDIgKSBpdGVtc01vYmlsZSA9IDE7XG4gICAgICAgICAgICAgICAgICAgIGlmKCBwYXJzZUludChjb2xzKSA9PSAyICkgaXRlbXNNb2JpbGUgPSAyOyAvL0lmIHRoZSBjb2xzIGFyZSBzZXQgdG8gMiB0aGVuIGRvbid0IGNoYW5nZSB0byAxIGNvbCBvbiBtb2JpbGVcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpdGVtc01vYmlsZSA9IGNvbHNtb2JpbGU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJvdXNlbEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBjb2xzLFxuICAgICAgICAgICAgICAgICAgICBsb29wOiBsb29wLFxuICAgICAgICAgICAgICAgICAgICByZXdpbmQ6ICFsb29wLFxuICAgICAgICAgICAgICAgICAgICBhdXRvcGxheTogYXV0b3BsYXksXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5VGltZW91dDogTWF0aC5tYXgodGltZSwyMDAwKSxcbiAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBuYXY6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG5hdlRleHQ6IFsnPHN2ZyBjbGFzcz1cInN2Zy1pbmxpbmUtLWZhIGZhLWNoZXZyb24tbGVmdCBmYS13LTEwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZGF0YS1mYS1wcm9jZXNzZWQ9XCJcIiBkYXRhLXByZWZpeD1cImZhXCIgZGF0YS1pY29uPVwiY2hldnJvbi1sZWZ0XCIgcm9sZT1cInByZXNlbnRhdGlvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIj48cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0zNC41MiAyMzkuMDNMMjI4Ljg3IDQ0LjY5YzkuMzctOS4zNyAyNC41Ny05LjM3IDMzLjk0IDBsMjIuNjcgMjIuNjdjOS4zNiA5LjM2IDkuMzcgMjQuNTIuMDQgMzMuOUwxMzEuNDkgMjU2bDE1NC4wMiAxNTQuNzVjOS4zNCA5LjM4IDkuMzIgMjQuNTQtLjA0IDMzLjlsLTIyLjY3IDIyLjY3Yy05LjM3IDkuMzctMjQuNTcgOS4zNy0zMy45NCAwTDM0LjUyIDI3Mi45N2MtOS4zNy05LjM3LTkuMzctMjQuNTcgMC0zMy45NHpcIj48L3BhdGg+PC9zdmc+JywgJzxzdmcgY2xhc3M9XCJzdmctaW5saW5lLS1mYSBmYS1jaGV2cm9uLXJpZ2h0IGZhLXctMTBcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBkYXRhLWZhLXByb2Nlc3NlZD1cIlwiIGRhdGEtcHJlZml4PVwiZmFcIiBkYXRhLWljb249XCJjaGV2cm9uLXJpZ2h0XCIgcm9sZT1cInByZXNlbnRhdGlvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDMyMCA1MTJcIj48cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0yODUuNDc2IDI3Mi45NzFMOTEuMTMyIDQ2Ny4zMTRjLTkuMzczIDkuMzczLTI0LjU2OSA5LjM3My0zMy45NDEgMGwtMjIuNjY3LTIyLjY2N2MtOS4zNTctOS4zNTctOS4zNzUtMjQuNTIyLS4wNC0zMy45MDFMMTg4LjUwNSAyNTYgMzQuNDg0IDEwMS4yNTVjLTkuMzM1LTkuMzc5LTkuMzE3LTI0LjU0NC4wNC0zMy45MDFsMjIuNjY3LTIyLjY2N2M5LjM3My05LjM3MyAyNC41NjktOS4zNzMgMzMuOTQxIDBMMjg1LjQ3NSAyMzkuMDNjOS4zNzMgOS4zNzIgOS4zNzMgMjQuNTY4LjAwMSAzMy45NDF6XCI+PC9wYXRoPjwvc3ZnPiddLFxuICAgICAgICAgICAgICAgICAgICBkb3RzOiBwYWdpbmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBvd2wycm93OiBoYXMycm93cyxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2l2ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgMDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtc01vYmlsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIDQ4MDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtc1RhYmxldFNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgNjQwOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGNvbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IG9uQ2hhbmdlLFxuICAgICAgICAgICAgICAgICAgICBvbkluaXRpYWxpemU6IGFmdGVySW5pdFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuc3RyaXBFbW9qaWh0bWwgPSBmdW5jdGlvbiAoJGVsKSB7XG4gICAgICAgICAgICAgICAgJGVsLmZpbmQoJy5lbW9qaScpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykucmVwbGFjZVdpdGgoJCh0aGlzKS5hdHRyKCdhbHQnKSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gJGVsLmh0bWwoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJJdGVtUmV2ZWFsZWQgPSBmdW5jdGlvbigkaXRlbSkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGZlZWQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICgkaXRlbS5maW5kKCcuc2J5X2NhcHRpb24nKS5sZW5ndGggJiYgISAkaXRlbS5maW5kKCcuc2J5X2NhcHRpb24nKS5oYXNDbGFzcygnc2J5X2Z1bGxfY2FwdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vRXhwYW5kIHBvc3RcbiAgICAgICAgICAgICAgICAgICAgdmFyICRjYXB0aW9uID0gJGl0ZW0uZmluZCgnLnNieV9pdGVtX2NhcHRpb25fd3JhcCAuc2J5X2NhcHRpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICAkaG92ZXJDYXB0aW9uID0gJGl0ZW0uZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCAuc2J5X2NhcHRpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0X2xpbWl0ID0gdHlwZW9mIGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5kZXNjcmlwdGlvbmxlbmd0aCAhPT0gJ3VuZGVmaW5lZCcgPyBwYXJzZUludChmZWVkLnNldHRpbmdzLmdlbmVyYWwuZGVzY3JpcHRpb25sZW5ndGgpIDogMTUwO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGV4dF9saW1pdCA8IDEpIHRleHRfbGltaXQgPSA5OTk5OTtcbiAgICAgICAgICAgICAgICAgICAgLy9TZXQgdGhlIGZ1bGwgdGV4dCB0byBiZSB0aGUgY2FwdGlvbiAodXNlZCBpbiB0aGUgaW1hZ2UgYWx0KVxuXG4gICAgICAgICAgICAgICAgICAgIHZhciBjYXB0aW9uVGV4dCA9IHRoaXMuc3RyaXBFbW9qaWh0bWwoJGl0ZW0uZmluZCgnLnNieV9jYXB0aW9uJykuZmlyc3QoKSksXG4gICAgICAgICAgICAgICAgICAgICAgYnJDb3VudCA9IChjYXB0aW9uVGV4dC5tYXRjaCgvPGJyPi9nKSB8fCBbXSkubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgIGJyQWRqdXN0ID0gKHR5cGVvZiBzYnlPcHRpb25zLmJyQWRqdXN0ID09PSAndW5kZWZpbmVkJyB8fCBzYnlPcHRpb25zLmJyQWRqdXN0ID09PSAnMScgfHwgc2J5T3B0aW9ucy5ickFkanVzdCA9PT0gdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgLy8gY29tbWVudCBvdXQgdW5uZWNlc3NhcnkgY29kZSB0aGF0IHN0cmlwZXMgb3V0IHRleHQgbGltaXQgd2l0aCB3cm9uZyB0ZXh0IGxpbWl0XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgZW1vamkgd2l0aCBhbHQgZm9yIG1vcmUgYWNjdXJhdGUgc2hvcnRlbmluZ1xuLy8gICAgICAgICAgICAgICAgICAgICBpZiAoYnJBZGp1c3QgJiYgYnJDb3VudCA+IDAgJiYgY2FwdGlvblRleHQuaW5kZXhPZignPGJyPicpIDwgdGV4dF9saW1pdCkge1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRzaXppbmdDYXB0aW9uID0gJGl0ZW0uZmluZCgnLnNieV92aWRlb190aXRsZScpLmZpcnN0KCk7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uV2lkdGggPSAkc2l6aW5nQ2FwdGlvbi53aWR0aCgpID4gMjAgPyAkc2l6aW5nQ2FwdGlvbi53aWR0aCgpIDogJGl0ZW0ud2lkdGgoKSxcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemUgPSAkc2l6aW5nQ2FwdGlvbi5jc3MoJ2ZvbnQtc2l6ZScpLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzUGVyTGluZSA9IGNhcHRpb25XaWR0aCAvIHBhcnNlSW50KGZvbnRTaXplKSAqIDEuODUsXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heENoYXJzUGVyTGluZSA9IE1hdGguZmxvb3IoY2hhcmFjdGVyc1BlckxpbmUpLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0ZWRNYXhMaW5lcyA9IE1hdGguY2VpbCh0ZXh0X2xpbWl0IC8gY2hhcmFjdGVyc1BlckxpbmUpO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNwbGl0Q2FwdGlvbiA9IGNhcHRpb25UZXh0LnNwbGl0KCc8YnI+JyksXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzQ29uc3VtZWQgPSAwLFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICBhZGp1c3RlZFRleHRMaW1pdCA9IDA7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkuZWFjaChzcGxpdENhcHRpb24sIGZ1bmN0aW9uICgpIHtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGluZXNMZWZ0ID0gcHJvamVjdGVkTWF4TGluZXMgLSBsaW5lc0NvbnN1bWVkO1xuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lc0xlZnQgPiAwKSB7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aGlzTGluZXNDb25zdW1lZCA9IE1hdGgubWF4KDEsIE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIGNoYXJhY3RlcnNQZXJMaW5lKSk7XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkanVzdGVkVGV4dExpbWl0ICs9IE1hdGgubWluKHRoaXMubGVuZ3RoICsgNCwgbGluZXNMZWZ0ICogbWF4Q2hhcnNQZXJMaW5lKTtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNDb25zdW1lZCArPSB0aGlzTGluZXNDb25zdW1lZDtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbi8vICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfbGltaXQgPSBhZGp1c3RlZFRleHRMaW1pdDtcbi8vICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgc2hvcnRfdGV4dCA9IGNhcHRpb25UZXh0LnN1YnN0cmluZygwLCB0ZXh0X2xpbWl0KTtcbiAgICAgICAgICAgICAgICAgICAgc2hvcnRfdGV4dCA9IGNhcHRpb25UZXh0Lmxlbmd0aCA+IHRleHRfbGltaXQgPyBzaG9ydF90ZXh0LnN1YnN0cigwLCBNYXRoLm1pbihzaG9ydF90ZXh0Lmxlbmd0aCwgc2hvcnRfdGV4dC5sYXN0SW5kZXhPZihcIiBcIikpKSA6IHNob3J0X3RleHQ7XG5cblxuICAgICAgICAgICAgICAgICAgICAvL0N1dCB0aGUgdGV4dCBiYXNlZCBvbiBsaW1pdHMgc2V0XG4gICAgICAgICAgICAgICAgICAgIGlmICgkY2FwdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRjYXB0aW9uLmh0bWwoc2J5TGlua2lmeShzaG9ydF90ZXh0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2hvcnRfdGV4dCA9PT0gY2FwdGlvblRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FwdGlvbi5uZXh0KCcuc2J5X2V4cGFuZCcpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICgkaG92ZXJDYXB0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhvdmVyQ2FwdGlvblRleHQgPSBzaG9ydF90ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNob3J0X3RleHQgIT09IGNhcHRpb25UZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJDYXB0aW9uVGV4dCArPSAnPHNwYW4gY2xhc3M9XCJzYnlfbW9yZVwiPi4uLjwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGhvdmVyQ2FwdGlvbi5odG1sKGhvdmVyQ2FwdGlvblRleHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy9TaG93IHRoZSAnU2VlIE1vcmUnIGxpbmsgaWYgbmVlZGVkXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYXB0aW9uVGV4dC5sZW5ndGggPiB0ZXh0X2xpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5maW5kKCcuc2J5X2V4cGFuZCcpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvL0NsaWNrIGZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAgICRpdGVtLmZpbmQoJy5zYnlfZXhwYW5kIGEnKS5vZmYoJ2NsaWNrJykub24oJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciAkZXhwYW5kID0galF1ZXJ5KHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGNhcHRpb24gPSB0eXBlb2YgJGNhcHRpb24gIT09ICd1bmRlZmluZWQnID8gJGNhcHRpb24gOiAkaXRlbS5maW5kKCcuc2J5X2luZm8gLnNieV9jYXB0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uVGV4dCA9IHR5cGVvZiBjYXB0aW9udGV4dCAhPT0gJ3VuZGVmaW5lZCcgPyBjYXB0aW9uVGV4dCA6IHNieUVuY29kZUlucHV0KCRpdGVtLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXRpdGxlJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpdGVtLmhhc0NsYXNzKCdzYnlfY2FwdGlvbl9mdWxsJykgJiYgdHlwZW9mIHNob3J0X3RleHQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhcHRpb24uaHRtbChzaG9ydF90ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5yZW1vdmVDbGFzcygnc2J5X2NhcHRpb25fZnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FwdGlvbi5odG1sKHNieUxpbmtpZnkoY2FwdGlvblRleHQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5hZGRDbGFzcygnc2J5X2NhcHRpb25fZnVsbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlclJlc2l6ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldFVwQ1RBKCRpdGVtKTtcblxuICAgICAgICAgICAgICAgIC8vUGhvdG8gbGlua3NcbiAgICAgICAgICAgICAgICAvL0lmIGxpZ2h0Ym94IGlzIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgdmFyIGRpc2FibGVsaWdodGJveCA9IHR5cGVvZiBmZWVkLnNldHRpbmdzLmdlbmVyYWwuZGlzYWJsZWxpZ2h0Ym94ICE9PSAndW5kZWZpbmVkJyA/IGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5kaXNhYmxlbGlnaHRib3ggOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIGNhcHRpb25saW5rcyA9IHR5cGVvZiBmZWVkLnNldHRpbmdzLmdlbmVyYWwuY2FwdGlvbmxpbmtzICE9PSAndW5kZWZpbmVkJyA/IGZlZWQuc2V0dGluZ3MuZ2VuZXJhbC5jYXB0aW9ubGlua3MgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiggZGlzYWJsZWxpZ2h0Ym94IHx8IGNhcHRpb25saW5rcyApe1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjYXB0aW9ubGlua3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNieVVybERldGVjdCh0ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHVybFJlZ2V4ID0gL2h0dHBzPzpcXC9cXC8od3d3XFwuKT9bLWEtekEtWjAtOUA6JS5fXFwrfiM9XXsyLDI1Nn1cXC5bYS16XXsyLDZ9XFxiKFstYS16QS1aMC05QDolX1xcKy5+Iz8mLy89XSopL2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHQubWF0Y2godXJsUmVnZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2FwID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mICRpdGVtLmZpbmQoJ2ltZycpLmF0dHIoJ2FsdCcpICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcCA9ICRpdGVtLmZpbmQoJ2ltZycpLmF0dHIoJ2FsdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgJGl0ZW0uZmluZCgndmlkZW8nKS5hdHRyKCdhbHQnKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXAgPSAkaXRlbS5maW5kKCd2aWRlbycpLmF0dHIoJ2FsdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdXJsID0gc2J5VXJsRGV0ZWN0KGNhcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZih1cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbS5maW5kKCdhJykuYXR0cignaHJlZicsIHVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJGl0ZW0uZmluZCgnLnNieV9saW5rJykuYWRkQ2xhc3MoJ3NieV9kaXNhYmxlX2xpZ2h0Ym94Jyk7XG4gICAgICAgICAgICAgICAgICAgIC8vSWYgbGlnaHRib3ggaXMgZW5hYmxlZCBhZGQgbGlnaHRib3ggbGlua3NcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciAkc2J5X3Bob3RvX3dyYXAgPSAkaXRlbS5maW5kKCcuc2J5X3Bob3RvX3dyYXAnKSxcbiAgICAgICAgICAgICAgICAgICAgICAkc2J5X2xpbmsgPSAkc2J5X3Bob3RvX3dyYXAuZmluZCgnLnNieV9saW5rJyk7XG4gICAgICAgICAgICAgICAgICAgIGZlZWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXJlZmZlY3Q6ICd0cnVlJ1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBpZihmZWVkT3B0aW9ucy5ob3ZlcmVmZmVjdCA9PSAnbm9uZScpe1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9sYXVuY2ggbGlnaHRib3ggb24gY2xpY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICRzYnlfbGluay5jc3MoJ2JhY2tncm91bmQnLCAnbm9uZScpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzYnlfbGluay5maW5kKCcqJykuaGlkZSgpLmVuZCgpLmZpbmQoJy5zYnlfbGlua19hcmVhJykuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNieV9waG90b193cmFwLm9uKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGUudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdtb3VzZWVudGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtLmFkZENsYXNzKCdzYnlfYW5pbWF0ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ21vdXNlbGVhdmUnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGl0ZW0ucmVtb3ZlQ2xhc3MoJ3NieV9hbmltYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IHR5cGVvZiAkaXRlbS5hdHRyKCdkYXRhLXZpZGVvLWlkJykgIT09ICd1bmRlZmluZWQnID8gJGl0ZW0uYXR0cignZGF0YS12aWRlby1pZCcpIDogJGl0ZW0uZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3N0UmVjZW50bHlMb2FkZWRQb3N0cy5wdXNoKHZpZGVvSUQpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5hZnRlckZlZWRTZXQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2Fyb3VzZWxBcmdzICE9PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5maW5kKCcuc2J5X2Nhcm91c2VsJykuc2J5T3dsQ2Fyb3VzZWwodGhpcy5jYXJvdXNlbEFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5nZW5lcmFsLmNhcm91c2VsWzVdKSA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzLmVsKS5hZGRDbGFzcygnc2J5X2Nhcm91c2VsXzJfcm93Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuc2V0VXBDVEEgPSBmdW5jdGlvbigkaXRlbSx2aWRlb0lEKSB7XG4gICAgICAgICAgICAgICAgLy93aW5kb3cuc2J5LmN0YXNcblxuICAgICAgICAgICAgICAgIHZhciB2aWRlb0lEID0gdHlwZW9mIHZpZGVvSUQgIT09ICd1bmRlZmluZWQnID8gdmlkZW9JRCA6ICRpdGVtLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyksXG4gICAgICAgICAgICAgICAgICB0ZXh0ID0gc2J5RW5jb2RlSW5wdXQodHlwZW9mICRpdGVtLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXRpdGxlJykgIT09ICd1bmRlZmluZWQnID8gJGl0ZW0uZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtdGl0bGUnKSA6ICcnKSxcbiAgICAgICAgICAgICAgICAgIGN0YUluQ2FwdGlvbiA9IHdpbmRvdy5zYnkuY3RhRGV0ZWN0KHRleHQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGN0YUluQ2FwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmN0YXNbdmlkZW9JRF0gPSBjdGFJbkNhcHRpb247XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5jdGFzW3ZpZGVvSURdID0gdGhpcy5nZXREZWZhdWx0Q1RBKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5nZXREZWZhdWx0Q1RBID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2V0dGluZ3MuZ2VuZXJhbC5jdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc2V0dGluZ3MuZ2VuZXJhbC5jdGEudHlwZSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmdlbmVyYWwuY3RhLnR5cGUgPT09ICdsaW5rJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogJ2xpbmsnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdGhpcy5zZXR0aW5ncy5nZW5lcmFsLmN0YS5kZWZhdWx0TGluayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLnNldHRpbmdzLmdlbmVyYWwuY3RhLmRlZmF1bHRUZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogJ3JlbGF0ZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0ZWQ6IHRoaXMuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuZGVmYXVsdFBvc3RzXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5hZnRlclJlc2l6ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW1hZ2VIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMubWF5YmVSYWlzZUltYWdlUmVzb2x1dGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW1hZ2VTaXplQ2xhc3MoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEFsbENUQURpbWVuc2lvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemVQbGF5ZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNpemVJdGVtcygpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5zZXRBbGxDVEFEaW1lbnNpb25zID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHRoaXMuQ1RBLCBmdW5jdGlvbihpbmRleCwgQ1RBT2JqKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChDVEFPYmouaXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQ1RBT2JqLnNldENUQVN0eWxlcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmFmdGVyU2VuZENoZWNrV1BQb3N0c1RvU2VydmVyID0gZnVuY3Rpb24ocmVzcG9uc2Upe1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCk7XG5cbiAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlWyAkKHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKSBdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZVsgJCh0aGlzKS5hdHRyKCdkYXRhLXZpZGVvLWlkJykgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vc2J5X3ZpZXdzX2NvdW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfdmlld19jb3VudCcpLnRleHQoZGF0YS5zYnlfdmlld19jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfY29tbWVudF9jb3VudCcpLnRleHQoZGF0YS5zYnlfY29tbWVudF9jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfbGlrZV9jb3VudCcpLnRleHQoZGF0YS5zYnlfbGlrZV9jb3VudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vU2V0IGZvciBhdHRyaWJ1dGVzIHRvby5cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXZpZXdzJyxkYXRhLnNieV92aWV3X2NvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWNvbW1lbnQtY291bnQnLCBkYXRhLnNieV9jb21tZW50X2NvdW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc2J5X2xpdmVfYnJvYWRjYXN0LmJyb2FkY2FzdF90eXBlICE9PSAnbm9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfbHNfbWVzc2FnZScpLnRleHQoZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QubGl2ZV9zdHJlYW1pbmdfc3RyaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfZGF0ZScpLmh0bWwoZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QubGl2ZV9zdHJlYW1pbmdfZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEuc2J5X2xpdmVfYnJvYWRjYXN0LmxpdmVfc3RyZWFtaW5nX3RpbWVzdGFtcCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2RhdGEtbGl2ZS1kYXRlJyxkYXRhLnNieV9saXZlX2Jyb2FkY2FzdC5saXZlX3N0cmVhbWluZ190aW1lc3RhbXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhLnNieV9kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLXRpdGxlJywgc2J5RW5jb2RlSW5wdXQoZGF0YS5zYnlfZGVzY3JpcHRpb24pICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlWyAkKHRoaXMpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpIF0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlWyAkKHRoaXMpLmZpbmQoJy5zYnlfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcpIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfdmlld19jb3VudCcpLnRleHQoZGF0YS5zYnlfdmlld19jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfY29tbWVudF9jb3VudCcpLnRleHQoZGF0YS5zYnlfY29tbWVudF9jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmZpbmQoJy5zYnlfbGlrZV9jb3VudCcpLnRleHQoZGF0YS5zYnlfbGlrZV9jb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QuYnJvYWRjYXN0X3R5cGUgIT09ICdub25lJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV9sc19tZXNzYWdlJykudGV4dChkYXRhLnNieV9saXZlX2Jyb2FkY2FzdC5saXZlX3N0cmVhbWluZ19zdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLnNieV9kYXRlJykuaHRtbChkYXRhLnNieV9saXZlX2Jyb2FkY2FzdC5saXZlX3N0cmVhbWluZ19kYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YS5zYnlfbGl2ZV9icm9hZGNhc3QubGl2ZV9zdHJlYW1pbmdfdGltZXN0YW1wICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYXR0cignZGF0YS1saXZlLWRhdGUnLGRhdGEuc2J5X2xpdmVfYnJvYWRjYXN0LmxpdmVfc3RyZWFtaW5nX3RpbWVzdGFtcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHZhciBldnQgPSBqUXVlcnkuRXZlbnQoJ3NieWFmdGVyY2hlY2twb3N0cycpO1xuICAgICAgICAgICAgICAgIGV2dC5mZWVkID0gd2luZG93LnNieS5mZWVkc1tpbmRleF07XG4gICAgICAgICAgICAgICAgZXZ0LnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHdpbmRvdykudHJpZ2dlcihldnQpO1xuXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmFmdGVyU3RhdGVDaGFuZ2UgPSBmdW5jdGlvbihwbGF5ZXJJRCx2aWRlb0lELGRhdGEsJHBsYXllcikge1xuICAgICAgICAgICAgICAgIHRoaXMuQ1RBW3BsYXllcklEXS50b2dnbGVDVEEodmlkZW9JRCxkYXRhLmRhdGEsJHBsYXllcik7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBsYXllckluZm8gPSBmdW5jdGlvbigkbmV3SXRlbSkge1xuICAgICAgICAgICAgICAgIHZhciAkc2VsZiA9ICQodGhpcy5lbCk7XG4gICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfaXRlbScpLmZpbmQoJy5zYnlfaW5mbycpLnJlcGxhY2VXaXRoKFxuICAgICAgICAgICAgICAgICAgJG5ld0l0ZW0uZmluZCgnLnNieV9pbmZvJykuY2xvbmUodHJ1ZSx0cnVlKVxuICAgICAgICAgICAgICAgICk7XG4gXG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9UaXRsZSA9IGNoZWNrVmFsdWUoJG5ld0l0ZW0uYXR0cignZGF0YS12aWRlby10aXRsZScpKTtcbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb1B1Ymxpc2hEYXRhID0gY2hlY2tWYWx1ZSgkbmV3SXRlbS5maW5kKCcuc2J5X3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtZm9ybWF0dGVkLXB1Ymxpc2hlZC1kYXRlJykpIDtcblxuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnktcGxheWVyLWluZm8gLnNieS12aWRlby1oZWFkZXItaW5mbyAuc2J5LXZpZGVvLWluZm8taGVhZGVyIGg1JykudGV4dCggdmlkZW9UaXRsZSApO1xuICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnktcGxheWVyLWluZm8gLnNieS12aWRlby1oZWFkZXItbWV0YSAuc2J5LXZpZGVvLWRhdGUnKS50ZXh0KCB2aWRlb1B1Ymxpc2hEYXRhICk7XG5cbiAgICAgICAgICAgICAgICByZXNldENvbW1lbnRzKCRzZWxmKTtcbiAgICAgICAgICAgICAgICBvcGVuQ29tbWVudHMoKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMubWF5YmVBZGRDVEEgPSBmdW5jdGlvbihwbGF5ZXJJRCwkZWwpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuQ1RBW3BsYXllcklEXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5DVEFbcGxheWVySURdID0gbmV3IFNieUNUQShwbGF5ZXJJRCx0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgU2J5RmVlZFByby5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFNieUZlZWQucHJvdG90eXBlKTtcblxuICAgICAgICBmdW5jdGlvbiBTYnlMaWdodGJveEJ1aWxkZXIoKSB7fVxuXG4gICAgICAgIFNieUxpZ2h0Ym94QnVpbGRlci5wcm90b3R5cGUgPSB7XG4gICAgICAgICAgICBnZXREYXRhOiBmdW5jdGlvbihhKXtcbiAgICAgICAgICAgICAgICB2YXIgY2xvc2VzdEZlZWRJbmRleCA9IHBhcnNlSW50KGEuY2xvc2VzdCgnLnNiX3lvdXR1YmUnKS5hdHRyKCdkYXRhLXNieS1pbmRleCcpLTEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGZlZWRJbmRleCA6IGNsb3Nlc3RGZWVkSW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGxpbms6IGEuYXR0cihcImhyZWZcIiksXG4gICAgICAgICAgICAgICAgICAgIHZpZGVvVGl0bGU6IHR5cGVvZiBhLmF0dHIoXCJkYXRhLXZpZGVvLXRpdGxlXCIpICE9PSAndW5kZWZpbmVkJyA/IHNieUVuY29kZUlucHV0KGEuYXR0cihcImRhdGEtdmlkZW8tdGl0bGVcIikpIDogJ1lvdVR1YmUgVmlkZW8nLFxuICAgICAgICAgICAgICAgICAgICB2aWRlbzogYS5hdHRyKFwiZGF0YS12aWRlby1pZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbElEOiBhLmF0dHIoXCJkYXRhLWNoYW5uZWwtaWRcIilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCI8ZGl2IGlkPSdzYnlfbGlnaHRib3hPdmVybGF5JyBjbGFzcz0nc2J5X2xpZ2h0Ym94T3ZlcmxheSc+PC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgaWQ9J3NieV9saWdodGJveCcgY2xhc3M9J3NieV9saWdodGJveCc+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1vdXRlckNvbnRhaW5lcic+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1jb250YWluZXInPlwiK1xuICAgICAgICAgICAgICAgICAgXCI8aW1nIGNsYXNzPSdzYnlfbGItaW1hZ2UnIGFsdD0nTGlnaHRib3ggaW1hZ2UgcGxhY2Vob2xkZXInIHNyYz0nJyAvPlwiK1xuICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSdzYnlfbGItcGxheWVyIHNieV9sYi1wbGF5ZXItcGxhY2Vob2xkZXInIGlkPSdzYnlfbGItcGxheWVyJz48L2Rpdj5cIiArXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1uYXYnPjxhIGNsYXNzPSdzYnlfbGItcHJldicgaHJlZj0nIycgPjxwIGNsYXNzPSdzYnktc2NyZWVucmVhZGVyJz5QcmV2aW91cyBTbGlkZTwvcD48c3Bhbj48L3NwYW4+PC9hPjxhIGNsYXNzPSdzYnlfbGItbmV4dCcgaHJlZj0nIycgPjxwIGNsYXNzPSdzYnktc2NyZWVucmVhZGVyJz5OZXh0IFNsaWRlPC9wPjxzcGFuPjwvc3Bhbj48L2E+PC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1sb2FkZXInPjxhIGNsYXNzPSdzYnlfbGItY2FuY2VsJz48L2E+PC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIitcbiAgICAgICAgICAgICAgICAgIFwiPGRpdiBjbGFzcz0nc2J5X2xiLWRhdGFDb250YWluZXInPlwiK1xuICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSdzYnlfbGItZGF0YSc+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1kZXRhaWxzJz5cIitcbiAgICAgICAgICAgICAgICAgIFwiPGRpdiBjbGFzcz0nc2J5X2xiLWNhcHRpb24nPjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8ZGl2IGNsYXNzPSdzYnlfbGItaW5mbyc+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1udW1iZXInPjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIitcbiAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjxkaXYgY2xhc3M9J3NieV9sYi1jbG9zZUNvbnRhaW5lcic+PGEgY2xhc3M9J3NieV9sYi1jbG9zZSc+PC9hPjwvZGl2PlwiK1xuICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIitcbiAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIrXG4gICAgICAgICAgICAgICAgICBcIjwvZGl2PlwiO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJlZm9yZVBsYXllclNldHVwOiBmdW5jdGlvbigkbGlnaHRib3gsZGF0YSxpbmRleCxhbGJ1bSxmZWVkKXtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyUGxheWVyU2V0dXA6IGZ1bmN0aW9uICgkbGlnaHRib3gsZGF0YSxpbmRleCxhbGJ1bSkge1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFmdGVyUmVzaXplOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHZhciBwbGF5ZXJIZWlnaHQgPSAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItcGxheWVyJykuaGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAocGxheWVySGVpZ2h0ID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHREaWYgPSAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItb3V0ZXJDb250YWluZXInKS5oZWlnaHQoKSAtIHBsYXllckhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhlaWdodERpZiA+IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCcjc2J5X2xpZ2h0Ym94IC5zYnlfbGItcGxheWVyJykuY3NzKCd0b3AnLGhlaWdodERpZi8yKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXVzZVBsYXllcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgICAgJiYgdHlwZW9mIFlUID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgWVQuZ2V0KCdzYnlfbGItcGxheWVyJykgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgWVQuZ2V0KCdzYnlfbGItcGxheWVyJykucGF1c2VWaWRlbyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBZVC5nZXQoJ3NieV9sYi1wbGF5ZXInKS5wYXVzZVZpZGVvKClcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cuc2J5TGlnaHRib3hQbGF5ZXIgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgICAgICAmJiB0eXBlb2Ygd2luZG93LnNieUxpZ2h0Ym94UGxheWVyLnBhdXNlVmlkZW8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieUxpZ2h0Ym94UGxheWVyLnBhdXNlVmlkZW8oKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBTYnlMaWdodGJveEJ1aWxkZXJQcm8ucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTYnlMaWdodGJveEJ1aWxkZXIucHJvdG90eXBlKTtcblxuICAgICAgICBmdW5jdGlvbiBTYnlMaWdodGJveEJ1aWxkZXJQcm8oKSB7XG4gICAgICAgICAgICBTYnlMaWdodGJveEJ1aWxkZXIuY2FsbCh0aGlzKTtcblxuICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSA9IGZ1bmN0aW9uKGEpe1xuICAgICAgICAgICAgICAgIGNvbnN0IGZlZWRQYXJlbnQgPSBhLmNsb3Nlc3QoJy5zYl95b3V0dWJlJyk7XG4gICAgICAgICAgICAgICAgdmFyIGNsb3Nlc3RGZWVkSW5kZXggPSBwYXJzZUludChmZWVkUGFyZW50LmF0dHIoJ2RhdGEtc2J5LWluZGV4JyktMSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnRuVGV4dCA9IGZlZWRQYXJlbnQuYXR0cignZGF0YS1zdWJzY3JpYmUtYnRuLXRleHQnKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdG4gPSBmZWVkUGFyZW50LmF0dHIoJ2RhdGEtc3Vic2NyaWJlLWJ0bicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yU2NoZW1lID0gZmVlZFBhcmVudC5oYXNDbGFzcygnc2J5X3BhbGV0dGVfZGFyaycpID8gJ2RhcmsnIDogJ2xpZ2h0JztcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRzID0gZmVlZFBhcmVudC5hdHRyKCdkYXRhLXNob3J0Y29kZS1hdHRzJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGl2ZURhdGFBdHRyID0gYS5jbG9zZXN0KCcuc2J5X2l0ZW0nKS5hdHRyKCdkYXRhLWxpdmUtZGF0ZScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5uZWxIZWFkZXJDb2xvcnNBdHRyID0gZmVlZFBhcmVudC5hdHRyKCdkYXRhX2NoYW5uZWxfaGVhZGVyX2NvbG9ycycpID8gIEpTT04ucGFyc2UoZmVlZFBhcmVudC5hdHRyKCdkYXRhX2NoYW5uZWxfaGVhZGVyX2NvbG9ycycpKSA6ICcnO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZmVlZEluZGV4IDogY2xvc2VzdEZlZWRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgbGluazogYS5hdHRyKFwiaHJlZlwiKSxcbiAgICAgICAgICAgICAgICAgICAgdmlkZW86IGEuYXR0cihcImRhdGEtdmlkZW8taWRcIiksXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBzYnlFbmNvZGVJbnB1dChhLmF0dHIoXCJkYXRhLXRpdGxlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9UaXRsZTogdHlwZW9mIGEuYXR0cihcImRhdGEtdmlkZW8tdGl0bGVcIikgIT09ICd1bmRlZmluZWQnID8gc2J5RW5jb2RlSW5wdXQoYS5hdHRyKFwiZGF0YS12aWRlby10aXRsZVwiKSkgOiAnWW91VHViZSBWaWRlbycsXG4gICAgICAgICAgICAgICAgICAgIGF2YXRhcjogYS5hdHRyKFwiZGF0YS1hdmF0YXJcIiksXG4gICAgICAgICAgICAgICAgICAgIHVzZXI6IHNieUVuY29kZUlucHV0KGEuYXR0cihcImRhdGEtdXNlclwiKSksXG4gICAgICAgICAgICAgICAgICAgIGNoYW5uZWxVUkw6IGEuYXR0cihcImRhdGEtdXJsXCIpLFxuICAgICAgICAgICAgICAgICAgICBjaGFubmVsSUQ6IGEuYXR0cihcImRhdGEtY2hhbm5lbC1pZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFN1YnNjcmliZXJzOiBhLmNsb3Nlc3QoJy5zYl95b3V0dWJlJykuYXR0cignZGF0YS1jaGFubmVsLXN1YnNjcmliZXJzJyksXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ0bjogc3Vic2NyaWJlQnRuLFxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdG5UZXh0OiBzdWJzY3JpYmVCdG5UZXh0LFxuICAgICAgICAgICAgICAgICAgICBjb2xvclNjaGVtZTogY29sb3JTY2hlbWUsXG4gICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hlZERhdGU6IGEuYXR0cihcImRhdGEtcHVibGlzaGVkLWRhdGVcIiksXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnRDb3VudDogYS5hdHRyKFwiZGF0YS1jb21tZW50LWNvdW50XCIpLFxuICAgICAgICAgICAgICAgICAgICB2aWV3czogYS5hdHRyKFwiZGF0YS12aWV3c1wiKSxcbiAgICAgICAgICAgICAgICAgICAgbGl2ZURhdGE6IGxpdmVEYXRhQXR0cixcbiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbEhlYWRlckNvbG9ycyA6IGNoYW5uZWxIZWFkZXJDb2xvcnNBdHRyLFxuICAgICAgICAgICAgICAgICAgICBhdHRzOiBhdHRzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBgXG4gICAgICAgICAgICAgICAgPGRpdiBpZD0nc2J5X2xpZ2h0Ym94T3ZlcmxheScgY2xhc3M9J3NieV9saWdodGJveE92ZXJsYXknPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9J3NieV9saWdodGJveCcgY2xhc3M9J3NieV9saWdodGJveCc+XG4gICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J3NieV9sYi1oZWFkZXInPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLW91dGVyQ29udGFpbmVyJz5cbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9J3NieV9sYi1jbG9zZSc+PC9hPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItY29udGFpbmVyJz5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGJfdmlkZW9fdGh1bWJuYWlsX3dyYXAnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3NieV9sYl92aWRlb190aHVtYm5haWwnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSdzYnlfbGItaW1hZ2UnIGFsdD0nTGlnaHRib3ggaW1hZ2UgcGxhY2Vob2xkZXInIHNyYz0nJyAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItcGxheWVyJyBpZD0nc2J5X2xiLXBsYXllcic+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLW5hdic+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0nc2J5X2xiLXByZXYnIGhyZWY9JyMnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0nc2J5LXNjcmVlbnJlYWRlcic+UHJldmlvdXMgU2xpZGU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSdzYnlfbGItbmV4dCcgaHJlZj0nIyc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdzYnktc2NyZWVucmVhZGVyJz5OZXh0IFNsaWRlPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWxvYWRlcic+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0nc2J5X2xiLWNhbmNlbCc+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWRhdGFDb250YWluZXInPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItZGF0YSc+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWRldGFpbHMnPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nc2J5X2xiLWNhcHRpb24nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzYnlfbGItaW5mbyc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J3NieV9sYi1udW1iZXInPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYmVmb3JlUGxheWVyU2V0dXAgPSBmdW5jdGlvbigkbGlnaHRib3gsZGF0YSxpbmRleCxhbGJ1bSxmZWVkKXtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAkKCdib2R5JykuY3NzKCdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICBpZiAoISRsaWdodGJveC5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcycpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAkbGlnaHRib3guZmluZCgnLnNieV9sYl92aWRlb190aHVtYm5haWxfd3JhcCcpLmFwcGVuZCgkKGZlZWQuZWwpLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuY2xvbmUoKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJGxpZ2h0Ym94LmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykucmVwbGFjZVdpdGgoJChmZWVkLmVsKS5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcycpLmNsb25lKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJQbGF5ZXJTZXR1cCA9IGZ1bmN0aW9uKCRsaWdodGJveCxkYXRhLGluZGV4LGFsYnVtKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHMgPSB7fTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVTZWN0aW9uID0gZGF0YT8uc3Vic2NyaWJlQnRuID8gZGF0YS5zdWJzY3JpYmVCdG4gOiBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdG5UZXh0ID0gZGF0YT8uc3Vic2NyaWJlQnRuVGV4dCA/IGRhdGEuc3Vic2NyaWJlQnRuVGV4dCA6ICcnO1xuXG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVDbGFzcyA9IHN1YnNjcmliZVNlY3Rpb24gPyAnc2J5X2xiLWNoYW5uZWwtaW5mbycgOiAnc2J5X2xiLW5vLWNoYW5uZWwtaW5mbydcblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygc2J5TGlnaHRib3hBY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNieUxpZ2h0Ym94QWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sMTAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZihkYXRhPy5jb2xvclNjaGVtZSAmJiAnZGFyaycgPT09IGRhdGEuY29sb3JTY2hlbWUgKSB7XG4gICAgICAgICAgICAgICAgICAgIExpZ2h0Ym94Q29sb3JTY2hlbWUoZGF0YS5jb2xvclNjaGVtZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGF2YXRhckltYWdlID0gJycsXG5cbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdG4gPSBzdWJzY3JpYmVTZWN0aW9uID8gJzxhIGNsYXNzPVwic2J5LWxiLXN1YnNjcmliZS1idG5cIiBocmVmPVwiaHR0cDovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsLycrIGRhdGEuY2hhbm5lbElEICsnP3N1Yl9jb25maXJtYXRpb249MSZmZWF0dXJlPXN1YnNjcmliZS1lbWJlZC1jbGlja1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj4nKyBnZXRTdGF0aWNTVkcoJ3lvdXR1YmUnKSArJyA8cD4nICsgc3Vic2NyaWJlQnRuVGV4dCArJzwvcD48L2E+JyA6ICcnO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YS5hdmF0YXIgIT09ICd1bmRlZmluZWQnICYmIGRhdGEuYXZhdGFyICE9PSAnJyAmJiB0eXBlb2YgZGF0YS51c2VyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBhdmF0YXJJbWFnZSA9IChkYXRhLmF2YXRhciAhPT0gJ3VuZGVmaW5lZCcpID8gZGF0YS5hdmF0YXIgOiAnJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRhLnVzZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGpRdWVyeS5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHMgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHNbZGF0YS51c2VyXSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hdmFpbGFibGVBdmF0YXJVcmxzW2RhdGEudXNlcl0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFySW1hZ2UgPSB0aGlzLmF2YWlsYWJsZUF2YXRhclVybHNbZGF0YS51c2VyXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgYXZhdGFySW1hZ2VIdG1sID0gYXZhdGFySW1hZ2UgPyAnPGltZyBzcmM9XCInKyBhdmF0YXJJbWFnZSArJ1wiIHJlZmVycmVyUG9saWN5PVwibm8tcmVmZXJyZXJcIi8+JyA6IGdldFN0YXRpY1NWRygncHJvZmlsZS1waWN0dXJlJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlckh0bWwgPSBzdWJzY3JpYmVTZWN0aW9uID8gJzxkaXYgY2xhc3M9XCJzYnktbGItY2hhbm5lbC1oZWFkZXJcIj48YSBjbGFzcz1cInNieV9saWdodGJveF91c2VybmFtZVwiIGhyZWY9XCInKyBkYXRhLmNoYW5uZWxVUkwrJ1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyXCI+JysgYXZhdGFySW1hZ2VIdG1sICsgJzxwIGNsYXNzPVwic2J5LWxiLWNoYW5uZWwtbmFtZS13aXRoLXN1YnNcIj48c3Bhbj5AJytkYXRhLnVzZXIgKyAnPC9zcGFuPjxzcGFuPicgKyBkYXRhLmNoYW5uZWxTdWJzY3JpYmVycyAgKyc8L3NwYW4+PC9wPjwvYT4gJyArIHN1YnNjcmliZUJ0biArICc8L2Rpdj4nIDogJyc7XG5cbiAgICAgICAgICAgICAgICBpZiggd2luZG93LnNieU9wdGlvbnMuaXNQcm8gKSB7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGRhdGE/LnRpdGxlID8gYWRkTGlua3NUb3RleHQoZGF0YS50aXRsZSkgOiAnJztcbiAgICAgICAgICAgICAgICBjb25zdCBwdWJsaXNoZWREYXRlID0gZGF0YT8ucHVibGlzaGVkRGF0ZSA/IHRpbWVBZ28oY29udmVydFVuaXhUb01zKGRhdGEucHVibGlzaGVkRGF0ZSkpIDogJyc7XG4gICAgICAgICAgICAgICAgY29uc3Qgdmlld3MgPSBkYXRhPy52aWV3cyA/IGRhdGEudmlld3MgOiAnJztcblxuICAgICAgICAgICAgICAgIGNvbnN0IHZpZGVvSGVhZGVyU2VjdGlvbiAgPSBgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYnlfbGItdmlkZW8taGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPiR7ZGF0YS52aWRlb1RpdGxlfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2J5X2xiLXZpZGVvLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke3ZpZXdzfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNieV9sYi1zcGFjZXJcIj7Ctzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke3B1Ymxpc2hlZERhdGV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb0Rlc2NyaXB0aW9uaHRtbCA9IGBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieV9sYi12aWRlby1kZXNjcmlwdGlvbi13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2J5X2xiLWRlc2NyaXB0aW9uIHNieS1yZWFkLW1vcmUtdGFyZ2V0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNieV9sYi1tb3JlLWluZm8tYnRuIHNieS1yZWFkLW1vcmUtdHJpZ2dlclwiPkRlc2NyaXB0aW9uJHtnZXRTdGF0aWNTVkcoJ2FuZ2xlLWRvd24nKX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgYDtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1lbnRTZWN0aW9uSHRtbCA9IGBcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1jb21tZW50cy13cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIGA7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB2aWRlb0Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24gPyB2aWRlb0Rlc2NyaXB0aW9uaHRtbCA6ICcnO1xuXG4gICAgICAgICAgICAgICAgJGxpZ2h0Ym94LmZpbmQoXCIuc2J5X2xiLWNhcHRpb25cIikuaHRtbCggYDxkaXYgY2xhc3M9XCJzYnlfbGItY2FwdGlvbi1pbm5lciAke3N1YnNjcmliZUNsYXNzfVwiPmAgKyB2aWRlb0hlYWRlclNlY3Rpb24gKyB1c2VySHRtbCArIHZpZGVvRGVzY3JpcHRpb24gKyBjb21tZW50U2VjdGlvbkh0bWwgKyBgPC9kaXY+YCApLmZhZGVJbihcImZhc3RcIik7XG5cbiAgICAgICAgICAgICAgICBpZiggZGF0YT8ubGl2ZURhdGEgJiYgJzAnID09PSBkYXRhLmxpdmVEYXRhICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWRlb0lkID0gZGF0YT8udmlkZW8gPyBkYXRhLnZpZGVvIDogJyc7IFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdHRzID0gZGF0YT8uYXR0cyA/IGRhdGEuYXR0cyA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50Q29tbWVudENvdW50ID0gZGF0YT8uY29tbWVudENvdW50ID8gZGF0YS5jb21tZW50Q291bnQgOiAnJzsgXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9ICRsaWdodGJveC5maW5kKFwiLnNieS1jb21tZW50cy13cmFwXCIpO1xuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUNvbW1lbnRTZWN0aW9uKHZpZGVvSWQsIGF0dHMsIHRhcmdldCwgY3VycmVudENvbW1lbnRDb3VudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdG9nZ2xlUmVhZE1vcmUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiggZGF0YT8uY2hhbm5lbEhlYWRlckNvbG9ycyApIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0Q29sb3JzVG9DaGFubmVsSGVhZGVyKGRhdGEuY2hhbm5lbEhlYWRlckNvbG9ycylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gU2J5Q1RBKHZpZGVvSUQsZmVlZCkge1xuICAgICAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnZpZGVvSUQgPSB2aWRlb0lEO1xuICAgICAgICAgICAgdGhpcy5jYWxsYmFjayA9IHRoaXMucmVsYXRlZDtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tBcmdzID0ge307XG4gICAgICAgICAgICB0aGlzLmZlZWRPYmpJbkNvbnRleHQgPSBmZWVkO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IDE7XG4gICAgICAgICAgICB0aGlzLm51bUl0ZW1zID0gNDtcbiAgICAgICAgICAgIHRoaXMubnVtSXRlbUNvbHVtbnMgPSAyO1xuICAgICAgICAgICAgdGhpcy4kcGxheWVyID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBTYnlDVEEucHJvdG90eXBlID0ge1xuICAgICAgICAgICAgdG9nZ2xlQ1RBOiBmdW5jdGlvbih2aWRlb0lELGRhdGFOdW0sJHBsYXllcil7XG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyID0gJHBsYXllci5sZW5ndGggPyAkcGxheWVyIDogJCgnLnNieV9sYi1jb250YWluZXInKTsgLy8gdXNlIHRoZSBsaWdodGJveCBjb250YWluZXIgaWYgbm8gcGxheWVyIGlzIHNldFxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBkYXRhTnVtO1xuICAgICAgICAgICAgICAgIHRoaXMudmlkZW9JRCA9IHZpZGVvSUQ7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Q1RBKCk7XG5cbiAgICAgICAgICAgICAgICAvL2N0YURldGVjdFxuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuc2J5LmN0YXNbdmlkZW9JRF0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tBcmdzID0gd2luZG93LnNieS5jdGFzW3ZpZGVvSURdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSB0aGlzLmNhbGxiYWNrQXJncy5jYWxsYmFjaztcblxuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjayA9PT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2sgPSB0aGlzLmxpbms7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjYWxsYmFjayA9PT0gJ3JlbGF0ZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2sgPSB0aGlzLnJlbGF0ZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChkYXRhTnVtID09PSAyIHx8IGRhdGFOdW0gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuYWRkQ2xhc3MoJ3NieV9jdGFfaXNfb3BlbicpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICggZGF0YU51bSA9PT0gMiApe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuYWRkQ2xhc3MoJ3NieV9jdGFfc3RhdGVfcGF1c2VkJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKS5hZGRDbGFzcygnc2J5X2N0YV9zdGF0ZV9lbmRlZCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q1RBU3R5bGVzKCk7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKS5yZW1vdmVDbGFzcygnc2J5X2N0YV9pc19vcGVuJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJykuaGlkZSgpXG4gICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzYnlfY3RhX3N0YXRlX3BhdXNlZCcpXG4gICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzYnlfY3RhX3N0YXRlX2VuZGVkJylcbiAgICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ3NieV9jdGFfaXNfb3BlbicpO1xuICAgICAgICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWxhdGVkOiBmdW5jdGlvbihhcmdzKSB7XG4gICAgICAgICAgICAgICAgdmFyIGN0YU9iaiA9IHRoaXMsXG4gICAgICAgICAgICAgICAgICBmZWVkT2JqSW5Db250ZXh0ID0gdGhpcy5mZWVkT2JqSW5Db250ZXh0LFxuICAgICAgICAgICAgICAgICAgcmVsYXRlZCA9IHdpbmRvdy5zYnkuc2h1ZmZsZSh0aGlzLmdldFJlbGF0ZWQoZmVlZE9iakluQ29udGV4dCkpLFxuICAgICAgICAgICAgICAgICAgYWRkZWQgPSAwLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFZpZGVvSWQgPSB0aGlzLnZpZGVvSUQsXG4gICAgICAgICAgICAgICAgICAkcGxheWVyID0gdGhpcy4kcGxheWVyO1xuXG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJylcbiAgICAgICAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnc2J5X2N0YV9jb2xzXycgKyB0aGlzLm51bUl0ZW1Db2x1bW5zKTtcblxuICAgICAgICAgICAgICAgIHRoaXMubnVtSXRlbXMgPSA0O1xuICAgICAgICAgICAgICAgIHRoaXMubnVtSXRlbUNvbHVtbnMgPSAyO1xuXG4gICAgICAgICAgICAgICAgaWYgKCRwbGF5ZXIud2lkdGgoKSA8IDQ4MCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm51bUl0ZW1zID0gMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5udW1JdGVtQ29sdW1ucyA9IDFcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgbnVtSXRlbXMgPSB0aGlzLm51bUl0ZW1zO1xuXG4gICAgICAgICAgICAgICAgJC5lYWNoKHJlbGF0ZWQsIGZ1bmN0aW9uKGluZGV4LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUudmlkZW9JRCAhPT0gY3VycmVudFZpZGVvSWQgJiYgYWRkZWQgPCBudW1JdGVtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHBsYXllci5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcyAuc2J5X2N0YV9pbm5lcl93cmFwJykuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic2J5X2N0YV9pdGVtXCI+PGRpdiBjbGFzcz1cInNieV92aWRlb190aHVtYm5haWxfd3JhcFwiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPGEgY2xhc3M9XCJzYnlfdmlkZW9fdGh1bWJuYWlsXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiIGRhdGEtdmlkZW8taWQ9XCInK3ZhbHVlLnZpZGVvSUQrJ1wiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cInNieV90aHVtYm5haWxfaG92ZXJcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJzYnlfdGh1bWJuYWlsX2hvdmVyX2lubmVyXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInNieV92aWRlb190aXRsZVwiPicrdmFsdWUudGl0bGUrJzwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvZGl2PicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInNieS1zY3JlZW5yZWFkZXJcIj5QbGF5PC9zcGFuPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPGltZyBzcmM9XCInK3ZhbHVlLnRodW1ibmFpbCsnXCIgYWx0PVwiJyt2YWx1ZS50aXRsZSsnXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cInNieV9sb2FkZXIgc2J5X2hpZGRlblwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpO1wiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvZGl2PicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRlZCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAkcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzIC5zYnlfdmlkZW9fdGh1bWJuYWlsJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5vZmYoKS5vbignY2xpY2snLGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdWaWRlb0lEID0gJCh0aGlzKS5hdHRyKCdkYXRhLXZpZGVvLWlkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmZWVkT2JqSW5Db250ZXh0Lm9uVGh1bWJuYWlsQ2xpY2soJCh0aGlzKSx0cnVlLG5ld1ZpZGVvSUQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3RhT2JqLnZpZGVvSUQgPSBuZXdWaWRlb0lEO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFJlbGF0ZWQ6IGZ1bmN0aW9uKGZlZWRPYmpJbkNvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuZGVmYXVsdFBvc3RzWzBdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgJGZlZWRFbCA9ICQoZmVlZE9iakluQ29udGV4dC5lbCksXG4gICAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFZpZHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgJGZlZWRFbC5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAkKHRoaXMpLmZpbmQoJy5zYnlfaXRlbV92aWRlb190aHVtYm5haWwnKS5hdHRyKCdkYXRhLWZ1bGwtcmVzJykgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXNWaWQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSUQ6ICQodGhpcykuYXR0cignZGF0YS12aWRlby1pZCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogc2J5RW5jb2RlSW5wdXQoJCh0aGlzKS5hdHRyKCdkYXRhLXZpZGVvLXRpdGxlJykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWw6ICQodGhpcykuZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLmF0dHIoJ2RhdGEtZnVsbC1yZXMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRlZFZpZHMucHVzaCh0aGlzVmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWxhdGVkVmlkcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuZGVmYXVsdFBvc3RzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxpbms6IGZ1bmN0aW9uKGFyZ3MpIHtcbiAgICAgICAgICAgICAgICB2YXIgJHBsYXllciA9IHRoaXMuJHBsYXllcixcbiAgICAgICAgICAgICAgICAgIGZlZWRPYmpJbkNvbnRleHQgPSB0aGlzLmZlZWRPYmpJbkNvbnRleHQ7XG5cbiAgICAgICAgICAgICAgICB0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKVxuICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdzYnlfY3RhX2NvbHNfJyArIHRoaXMubnVtSXRlbUNvbHVtbnMpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5udW1JdGVtcyA9IDE7XG4gICAgICAgICAgICAgICAgdGhpcy5udW1JdGVtQ29sdW1ucyA9IDE7XG5cbiAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSAnJyxcbiAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3MgPSAnJztcblxuICAgICAgICAgICAgICAgIGlmIChmZWVkT2JqSW5Db250ZXh0LnNldHRpbmdzLmdlbmVyYWwuY3RhLmNvbG9yICE9PSAnJyB8fCBmZWVkT2JqSW5Db250ZXh0LnNldHRpbmdzLmdlbmVyYWwuY3RhLnRleHRDb2xvciAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUgPSAnIHN0eWxlPVwiJztcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzcyA9ICcgc2J5X2N1c3RvbSc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEuY29sb3IgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSArPSAnYmFja2dyb3VuZDogcmdiKCcgKyBmZWVkT2JqSW5Db250ZXh0LnNldHRpbmdzLmdlbmVyYWwuY3RhLmNvbG9yICsgJyk7JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZE9iakluQ29udGV4dC5zZXR0aW5ncy5nZW5lcmFsLmN0YS50ZXh0Q29sb3IgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSArPSAnY29sb3I6IHJnYignICsgZmVlZE9iakluQ29udGV4dC5zZXR0aW5ncy5nZW5lcmFsLmN0YS50ZXh0Q29sb3IgKyAnKTsnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlICs9ICdcIic7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIG9wZW5BdHRzID0gJyc7XG4gICAgICAgICAgICAgICAgaWYgKGZlZWRPYmpJbkNvbnRleHQuc2V0dGluZ3MuZ2VuZXJhbC5jdGEub3BlblR5cGUgPT09ICduZXd3aW5kb3cnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wZW5BdHRzID0gJyB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lclwiJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAkcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzIC5zYnlfY3RhX2lubmVyX3dyYXAnKS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzYnlfY3RhX2l0ZW1cIj4nICtcbiAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPVwic2J5X2J0bl93cmFwXCI+JyArXG4gICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz1cInNieV9idG4nK3N0eWxlQ2xhc3MrJ1wiPicgK1xuXG4gICAgICAgICAgICAgICAgICAnPGEgY2xhc3M9XCJzYnlfY3RhX2J1dHRvblwiIGhyZWY9XCInK3RoaXMuY2FsbGJhY2tBcmdzLnVybCsnXCInK29wZW5BdHRzKycgZGF0YS12aWRlby1pZD1cIicrdGhpcy52aWRlb0lEKydcIicrc3R5bGUrJz4nICtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tBcmdzLnRleHQgK1xuICAgICAgICAgICAgICAgICAgJzwvYT4nICtcbiAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICtcbiAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICtcblxuICAgICAgICAgICAgICAgICAgJzwvZGl2PidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldENUQVN0eWxlczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHBsYXllclRvcEhlaWdodCA9IDYwLFxuICAgICAgICAgICAgICAgICAgcGxheWVyQm90dG9tSGVpZ2h0ID0gNDksXG4gICAgICAgICAgICAgICAgICBtaW5pbXVtSGVpZ2h0ID0gOTAsXG4gICAgICAgICAgICAgICAgICBjdGFPdmVybGF5SGVpZ2h0ID0gTWF0aC5tYXgobWluaW11bUhlaWdodCx0aGlzLiRwbGF5ZXIuaGVpZ2h0KCkgLSBwbGF5ZXJUb3BIZWlnaHQgLSBwbGF5ZXJCb3R0b21IZWlnaHQpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW1zX3dyYXBzJylcbiAgICAgICAgICAgICAgICAgIC5jc3MoJ2hlaWdodCcsY3RhT3ZlcmxheUhlaWdodCsncHgnKVxuICAgICAgICAgICAgICAgICAgLmNzcygnd2lkdGgnLCh0aGlzLiRwbGF5ZXIuZmluZCgnaWZyYW1lJykud2lkdGgoKS0yMCkrJ3B4JylcbiAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnc2J5X2N0YV9jb2xzXycgKyB0aGlzLm51bUl0ZW1Db2x1bW5zKTtcblxuICAgICAgICAgICAgICAgIHZhciBudW1Sb3dzID0gTWF0aC5tYXgoMSx0aGlzLm51bUl0ZW1zL3RoaXMubnVtSXRlbUNvbHVtbnMpLFxuICAgICAgICAgICAgICAgICAgdG90YWxWZXJ0aWNhbFBhZGRpbmcgPSBwYXJzZUludCh0aGlzLiRwbGF5ZXIuZmluZCgnLnNieV9jdGFfaXRlbXNfd3JhcHMnKS5jc3MoJ3BhZGRpbmctdG9wJykucmVwbGFjZSgncHgnLCcnKSkgKiAyLFxuICAgICAgICAgICAgICAgICAgbWF4Q1RBSXRlbUhlaWdodCA9IE1hdGgubWF4KG1pbmltdW1IZWlnaHQsKGN0YU92ZXJsYXlIZWlnaHQtdG90YWxWZXJ0aWNhbFBhZGRpbmcpL251bVJvd3MpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy4kcGxheWVyLmZpbmQoJy5zYnlfY3RhX2l0ZW0nKS5jc3MoJ21heC1oZWlnaHQnLG1heENUQUl0ZW1IZWlnaHQrJ3B4JykuZmluZCgnaW1nJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgJ21heC1oZWlnaHQnOiBtYXhDVEFJdGVtSGVpZ2h0KydweCcsXG4gICAgICAgICAgICAgICAgICAgICd3aWR0aCc6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgJ21hcmdpbic6ICdhdXRvJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuJHBsYXllci5maW5kKCcuc2J5X2J0bl93cmFwJykuY3NzKCdoZWlnaHQnLG1heENUQUl0ZW1IZWlnaHQrJ3B4Jyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXRDVEE6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJHBsYXllci5maW5kKCcuc2J5X2N0YV9pdGVtc193cmFwcyAuc2J5X2N0YV9pbm5lcl93cmFwJykuZW1wdHkoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9O1xuXG4gICAgICAgIHdpbmRvdy5zYnlfaW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgd2luZG93LnNieSA9IG5ldyBTYnkoKTtcbiAgICAgICAgICAgIHdpbmRvdy5zYnkuY3JlYXRlUGFnZSggd2luZG93LnNieS5jcmVhdGVGZWVkcywge3doZW5GZWVkc0NyZWF0ZWQ6IHdpbmRvdy5zYnkuYWZ0ZXJGZWVkc0NyZWF0ZWR9KTtcbiAgICAgICAgfTtcblxuXG5cbiAgICAgICAgd2luZG93LnNieV9jYXJvdXNlbF9pbml0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnbG9nJyk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzYnlHZXROZXdGZWVkKGZlZWQsaW5kZXgsZmVlZE9wdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2J5RmVlZFBybyhmZWVkLGluZGV4LGZlZWRPcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHNieUdldGxpZ2h0Ym94QnVpbGRlcigpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2J5TGlnaHRib3hCdWlsZGVyUHJvKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzYnlJc1RvdWNoKCkge1xuICAgICAgICAgICAgaWYgKFwib250b3VjaHN0YXJ0XCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzYnlDbXBsekdldENvb2tpZShjbmFtZSkge1xuICAgICAgICAgICAgdmFyIG5hbWUgPSBjbmFtZSArIFwiPVwiOyAvL0NyZWF0ZSB0aGUgY29va2llIG5hbWUgdmFyaWFibGUgd2l0aCBjb29raWUgbmFtZSBjb25jYXRlbmF0ZSB3aXRoID0gc2lnblxuICAgICAgICAgICAgdmFyIGNBcnIgPSB3aW5kb3cuZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7IC8vQ3JlYXRlIGNvb2tpZSBhcnJheSBieSBzcGxpdCB0aGUgY29va2llIGJ5ICc7J1xuXG4gICAgICAgICAgICAvL0xvb3AgdGhyb3VnaCB0aGUgY29va2llcyBhbmQgcmV0dXJuIHRoZSBjb29raWUgdmFsdWUgaWYgaXQgZmluZCB0aGUgY29va2llIG5hbWVcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY0Fyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBjID0gY0FycltpXS50cmltKCk7XG4gICAgICAgICAgICAgICAgLy9JZiB0aGUgbmFtZSBpcyB0aGUgY29va2llIHN0cmluZyBhdCBwb3NpdGlvbiAwLCB3ZSBmb3VuZCB0aGUgY29va2llIGFuZCByZXR1cm4gdGhlIGNvb2tpZSB2YWx1ZVxuICAgICAgICAgICAgICAgIGlmIChjLmluZGV4T2YobmFtZSkgPT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG5cblxuICAgIH0pKGpRdWVyeSk7XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdy5zYnlFYWdlckxvYWRpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHdpbmRvdy5zYnlFYWdlckxvYWRpbmcgPSB0eXBlb2Ygd2luZG93LnNieU9wdGlvbnMgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnNieU9wdGlvbnMuZWFnZXJsb2FkIDogZmFsc2U7XG4gICAgICAgIGlmIChqUXVlcnkoJy5lbGVtZW50b3Itd2lkZ2V0LXZpZGVvJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSB0eXBlb2YgalF1ZXJ5KCcuZWxlbWVudG9yLXdpZGdldC12aWRlbycpLmF0dHIoJ2RhdGEtc2V0dGluZ3MnKSAhPT0gJ3VuZGVmaW5lZCcgPyBKU09OLnBhcnNlKCBqUXVlcnkoJy5lbGVtZW50b3Itd2lkZ2V0LXZpZGVvJykuYXR0cignZGF0YS1zZXR0aW5ncycpKSA6IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHNldHRpbmdzICYmIHR5cGVvZiBzZXR0aW5ncy55b3V0dWJlX3VybCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2J5RWFnZXJMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChqUXVlcnkoJ2RpdltkYXRhLXZjLXZpZGVvLWJnXScpLmxlbmd0aCkge1xuICAgICAgICAgICAgd2luZG93LnNieUVhZ2VyTG9hZGluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cuc2J5U2VtaUVhZ2VyTG9hZGluZyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgd2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcgPSB0eXBlb2Ygd2luZG93LnNieU9wdGlvbnMgIT09ICd1bmRlZmluZWQnID8gd2luZG93LnNieU9wdGlvbnMuc2VtaUVhZ2VybG9hZCA6IGZhbHNlO1xuICAgICAgICBpZiAoalF1ZXJ5KCdkaXZbZGF0YS12Yy12aWRlby1iZ10nKS5sZW5ndGggfHwgd2luZG93LnNieUVhZ2VyTG9hZGluZykge1xuICAgICAgICAgICAgd2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCkge1xuICAgICAgICBpZiAoIXdpbmRvdy5zYnlTZW1pRWFnZXJMb2FkaW5nKSB7XG4gICAgICAgICAgICBzYnlfaW5pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29va2llIE5vdGljZSBieSBkRmFjdG9yeVxuICAgICAgICAkKCcjY29va2llLW5vdGljZSBhJykub24oJ2NsaWNrJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sMTAwMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENvb2tpZSBOb3RpY2UgYnkgZEZhY3RvcnlcbiAgICAgICAgJCgnI2Nvb2tpZS1sYXctaW5mby1iYXIgYScpLm9uKCdjbGljaycsZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICQuZWFjaCh3aW5kb3cuc2J5LmZlZWRzLGZ1bmN0aW9uKGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5hZnRlckNvbnNlbnRUb2dnbGVkKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LDEwMDApO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBHRFBSIENvb2tpZSBDb25zZW50IGJ5IFdlYlRvZmZlZVxuICAgICAgICAkKCcuY2xpLXVzZXItcHJlZmVyZW5jZS1jaGVja2JveCcpLm9uKCdjbGljaycsZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLnNldHRpbmdzLmNvbnNlbnRHaXZlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sMTAwMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENvb2tpZWJvdFxuICAgICAgICAkKHdpbmRvdykub24oJ0Nvb2tpZWJvdE9uQWNjZXB0JywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAkLmVhY2god2luZG93LnNieS5mZWVkcyxmdW5jdGlvbihpbmRleCl7XG4gICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbIGluZGV4IF0uYWZ0ZXJDb25zZW50VG9nZ2xlZCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENvbXBsaWFueiBieSBSZWFsbHkgU2ltcGxlIFBsdWdpbnNcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY21wbHpfc3RhdHVzX2NoYW5nZScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICBpZiAoZS5kZXRhaWwuY2F0ZWdvcnkgPT09ICdtYXJrZXRpbmcnICYmIGUuZGV0YWlsLnZhbHVlPT09J2FsbG93Jykge1xuICAgICAgICAgICAgICAgICQuZWFjaCh3aW5kb3cuc2J5LmZlZWRzLGZ1bmN0aW9uKGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgJChkb2N1bWVudCkub24oJ2NtcGx6RmlyZUNhdGVnb3JpZXMnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmICggZXZlbnQuZGV0YWlsLmNhdGVnb3J5PT09J21hcmtldGluZycgKSB7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHdpbmRvdy5zYnkuZmVlZHMsZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLnNldHRpbmdzLmNvbnNlbnRHaXZlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zYnkuZmVlZHNbIGluZGV4IF0uYWZ0ZXJDb25zZW50VG9nZ2xlZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBCb3JsYWJzIENvb2tpZSBieSBCb3JsYWJzXG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdib3JsYWJzLWNvb2tpZS1jb25zZW50LXNhdmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAkLmVhY2god2luZG93LnNieS5mZWVkcyxmdW5jdGlvbihpbmRleCl7XG4gICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1sgaW5kZXggXS5zZXR0aW5ncy5jb25zZW50R2l2ZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzWyBpbmRleCBdLmFmdGVyQ29uc2VudFRvZ2dsZWQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBoaWRlIG5vdGljZSBvbiBjbGljayBhbmQgc2VuZCBhamF4IHJlcXVlc3QgdG8gYmFja2VuZFxuICAgICAgICAkKCcjc2J5LWZyY2UtaGlkZS1saWNlbnNlLWVycm9yJykub24oJ2NsaWNrJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQoJyNzYnktZnItY2UtbGljZW5zZS1lcnJvcicpLnNsaWRlVXAoKTtcbiAgICAgICAgICAgIGpRdWVyeS5hamF4KHtcbiAgICAgICAgICAgICAgICB1cmw6IHNieU9wdGlvbnMuYWRtaW5BamF4VXJsLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdwb3N0JyxcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NieV9oaWRlX2Zyb250ZW5kX2xpY2Vuc2VfZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICBub25jZTogc2J5T3B0aW9ucy5ub25jZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24obXNnKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobXNnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICB9KTtcblxufSAvLyBpZiBzYnlfanNfZXhpc3RzXG5cbmlmICh3aW5kb3cuc2J5U2VtaUVhZ2VyTG9hZGluZykge1xuICAgIHZhciBzYnlZU2NyaXB0SWQgPSBcInNieS15b3V0dWJlLWFwaVwiO1xuICAgIHZhciBzYnlZU2NyaXB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2J5WVNjcmlwdElkKTtcblxuICAgIGlmIChzYnlZU2NyaXB0ID09PSBudWxsKSB7XG4gICAgICAgIHZhciB0YWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICB2YXIgZmlyc3RTY3JpcHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKVswXTtcblxuICAgICAgICB0YWcuc3JjID0gXCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9pZnJhbWVfYXBpXCI7XG4gICAgICAgIHRhZy5pZCA9IHNieVlTY3JpcHRJZDtcbiAgICAgICAgZmlyc3RTY3JpcHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGFnLCBmaXJzdFNjcmlwdCk7XG5cbiAgICB9XG59XG5cbndpbmRvdy5vbllvdVR1YmVJZnJhbWVBUElSZWFkeSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBudW1GZWVkcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3NiX3lvdXR1YmUnKS5sZW5ndGg7XG4gICAgaWYgKG51bUZlZWRzID4gMCkge1xuICAgICAgICBpZiAod2luZG93LnNieVNlbWlFYWdlckxvYWRpbmcpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygd2luZG93LnNieSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUZlZWRzOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNieS5mZWVkc1tpXS5wbGF5ZXJBUElSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2J5QVBJUmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2J5X2luaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgaWYgKHdpbmRvdy5zYnlFYWdlckxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmxhZ0xpZ2h0Ym94ID0gZmFsc2UsXG4gICAgICAgICAgICAgICAgICBhdXRvcGxheSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2JfeW91dHViZScpLmVhY2goZnVuY3Rpb24oaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICRzZWxmID0galF1ZXJ5KHRoaXMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICgkc2VsZi5oYXNDbGFzcygnc2J5X2xheW91dF9saXN0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGpRdWVyeSh0aGlzKS5hZGRDbGFzcygnc2J5X3BsYXllcl9sb2FkZWQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lEID0galF1ZXJ5KHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3RoaXMuY3JlYXRlUGxheWVyKCx2aWRlb0lELDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoJ3NieV9wbGF5ZXJfJyt2aWRlb0lELCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9JZDogdmlkZW9JRCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWVyVmFyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvcGxheTogYXV0b3BsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25TdGF0ZUNoYW5nZSc6IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IGRhdGEudGFyZ2V0LmdldFZpZGVvRGF0YSgpWyd2aWRlb19pZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmRhdGEgIT09IDEpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVZpZElEID0galF1ZXJ5KHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoalF1ZXJ5KHRoaXMpLmZpbmQoJ2lmcmFtZScpLmxlbmd0aCAmJiBqUXVlcnkoZGF0YS50YXJnZXQuYSkuYXR0cignaWQnKSAhPT0galF1ZXJ5KHRoaXMpLmZpbmQoJ2lmcmFtZScpLmF0dHIoJ2lkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlULmdldCgnc2J5X3BsYXllcl8nK2l0ZW1WaWRJRCkucGF1c2VWaWRlbygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkodGhpcykuYWRkQ2xhc3MoJ3NieV9wbGF5ZXJfbG9hZGVkJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoJ3NieV9wbGF5ZXInK2luZGV4LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9JZDogalF1ZXJ5KHRoaXMpLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkuYXR0cignZGF0YS12aWRlby1pZCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IGF1dG9wbGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uU3RhdGVDaGFuZ2UnOiBmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IGRhdGEudGFyZ2V0LmdldFZpZGVvRGF0YSgpWyd2aWRlb19pZCddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuZGF0YSAhPT0gMSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbVZpZElEID0galF1ZXJ5KHRoaXMpLmF0dHIoJ2RhdGEtdmlkZW8taWQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqUXVlcnkodGhpcykuZmluZCgnaWZyYW1lJykubGVuZ3RoICYmIGpRdWVyeShkYXRhLnRhcmdldC5hKS5hdHRyKCdpZCcpICE9PSBqUXVlcnkodGhpcykuZmluZCgnaWZyYW1lJykuYXR0cignaWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZVC5nZXQoJ3NieV9wbGF5ZXJfJytpdGVtVmlkSUQpLnBhdXNlVmlkZW8oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ0xpZ2h0Ym94ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB3aW5kb3cuc2J5ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtRmVlZHM7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2J5LmZlZWRzW2ldLnBsYXllckFQSVJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zYnlBUElSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBqUXVlcnkoJy5zYl95b3V0dWJlJykuZWFjaChmdW5jdGlvbihpbmRleCkge1xuICAgICAgICAgICAgdmFyICRzZWxmID0galF1ZXJ5KHRoaXMpO1xuICAgICAgICAgICAgaWYgKCRzZWxmLmZpbmQoJy5zYnlfbGl2ZV9wbGF5ZXInKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwbGF5ZXIgPSBuZXcgWVQuUGxheWVyKCRzZWxmLmZpbmQoJy5zYnlfbGl2ZV9wbGF5ZXInKS5hdHRyKCdpZCcpLCB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ29uUmVhZHknOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9saXZlX3BsYXllcicpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW9JRCA9IFlULmdldCgkc2VsZi5maW5kKCcuc2J5X2xpdmVfcGxheWVyJykuYXR0cignaWQnKSkuZ2V0VmlkZW9EYXRhKCkudmlkZW9faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9wbGF5ZXJfdmlkZW9fdGh1bWJuYWlsJykuYXR0cignZGF0YS12aWRlby1pZCcsdmlkZW9JRCkuY3NzKCd6LWluZGV4JywtMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW1PZmZzZXQgPSAkc2VsZi5maW5kKCcuc2J5X2l0ZW0nKS5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJtaXREYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogJ3NieV9saXZlX3JldHJpZXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb19pZDogdmlkZW9JRCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkX2lkOiAkc2VsZi5hdHRyKCdkYXRhLWZlZWRpZCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHM6ICRzZWxmLmF0dHIoJ2RhdGEtc2hvcnRjb2RlLWF0dHMnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9uU3VjY2VzcyA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnRyaW0oKS5pbmRleE9mKCd7JykgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBmZWVkID0gd2luZG93LnNieS5mZWVkc1tpbmRleF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gSlNPTi5wYXJzZShkYXRhKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tXUFBvc3RzID0gdHlwZW9mIHJlc3BvbnNlLmZlZWRTdGF0dXMuY2hlY2tXUFBvc3RzICE9PSAndW5kZWZpbmVkJyA/IHJlc3BvbnNlLmZlZWRTdGF0dXMuY2hlY2tXUFBvc3RzIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmVlZC5zZXR0aW5ncy5kZWJ1Z0VuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tXUFBvc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5zZXR0aW5ncy5jaGVja1dQUG9zdHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLnNldHRpbmdzLmNoZWNrV1BQb3N0cyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hcHBlbmROZXdQb3N0cyhyZXNwb25zZS5odG1sKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuYWRkUmVzaXplZEltYWdlcyhyZXNwb25zZS5yZXNpemVkSW1hZ2VzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5hZnRlckluaXRpYWxJbWFnZXNMb2FkZWQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5mZWVkU3RhdHVzLnNob3VsZFBhZ2luYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVlZC5vdXRPZlBhZ2VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2VsZi5maW5kKCcuc2J5X2xvYWRfYnRuJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWVkLm91dE9mUGFnZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2J5X25vX2pzJykucmVtb3ZlQ2xhc3MoJ3NieV9ub19qcycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9saXZlX3BsYXllcicpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzZWxmLmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dhbGxlcnknKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlZWQuY3JlYXRlUGxheWVyKCdzYnlfcGxheWVyJytmZWVkLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2l0ZW0nKS5jc3MoJ29wYWNpdHknLDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtJykuY3NzKCdvcGFjaXR5JywxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWxmLmZpbmQoJy5zYnlfcGxheWVyX2xvYWRpbmcnKS5yZW1vdmVDbGFzcygnc2J5X3BsYXllcl9sb2FkaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHNlbGYuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfbGlzdCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYuZmluZCgnLnNieV9pdGVtX3ZpZGVvX3RodW1ibmFpbCcpLm9uKCdtb3VzZWVudGVyJyxmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLmNzcygnei1pbmRleCcsLTEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBqUXVlcnkuYWpheCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogc2J5T3B0aW9ucy5hZG1pbkFqYXhVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdwb3N0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogc3VibWl0RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzczogb25TdWNjZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGZsYWdMaWdodGJveCkge1xuICAgICAgICAgICAgaWYgKCFqUXVlcnkoJyNzYnlfbGItcGxheWVyJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KCcuc2JfeW91dHViZScpLmZpcnN0KCkuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic2J5X2xiLXBsYXllci1sb2FkZWQgc2J5X2xiLXBsYXllclwiIGlkPVwic2J5X2xiLXBsYXllclwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBsYXllciA9IG5ldyBZVC5QbGF5ZXIoJ3NieV9sYi1wbGF5ZXInLCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCcsXG4gICAgICAgICAgICAgICAgdmlkZW9JZDogalF1ZXJ5KHRoaXMpLmZpbmQoJy5zYnlfaXRlbScpLmZpcnN0KCkuYXR0cignZGF0YS12aWRlby1pZCcpLFxuICAgICAgICAgICAgICAgIHBsYXllclZhcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZXN0YnJhbmRpbmc6IDEsIFxuICAgICAgICAgICAgICAgICAgICByZWw6IDAsXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBhdXRvcGxheVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LnNieUxpZ2h0Ym94UGxheWVyID0gcGxheWVyO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdy5zYnkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhciBldnQgPSBqUXVlcnkuRXZlbnQoJ3NieWZlZWRhbmR5dHJlYWR5Jyk7XG4gICAgICAgIGpRdWVyeSh3aW5kb3cpLnRyaWdnZXIoZXZ0KTtcbiAgICB9XG5cbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGEgc3BlY2lmaWMgYXR0cmlidXRlIHZhbHVlIGZyb20gdGhlIGdpdmVuIEFQSSBkYXRhIG9iamVjdC5cbiAqIFxuICogQHBhcmFtIHtPYmplY3R9IHJvb3RQYXRoXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0ck5hbWVcbiAqIFxuICogQHJldHVybnMge3N0cmluZ3xib29sZWFufVxuICovXG5cbmZ1bmN0aW9uIGdldFNpbmdsZUFwaURhdGEocm9vdFBhdGgsIGF0dHJOYW1lKSB7XG4gICAgc3dpdGNoKGF0dHJOYW1lKSB7XG4gICAgICAgIGNhc2UgJ2F1dGhvclByb2ZpbGVJbWFnZVVybCc6XG4gICAgICAgICAgICByZXR1cm4gcm9vdFBhdGg/LnNuaXBwZXQ/LmF1dGhvclByb2ZpbGVJbWFnZVVybCA/IHJvb3RQYXRoLnNuaXBwZXQuYXV0aG9yUHJvZmlsZUltYWdlVXJsIDogJyc7XG4gICAgICAgIGNhc2UgJ2F1dGhvckRpc3BsYXlOYW1lJzpcbiAgICAgICAgICAgIHJldHVybiByb290UGF0aD8uc25pcHBldD8uYXV0aG9yRGlzcGxheU5hbWUgPyByb290UGF0aC5zbmlwcGV0LmF1dGhvckRpc3BsYXlOYW1lIDogJyc7XG4gICAgICAgIGNhc2UgJ2F1dGhvckNoYW5uZWxVcmwnOlxuICAgICAgICAgICAgcmV0dXJuIHJvb3RQYXRoPy5zbmlwcGV0Py5hdXRob3JDaGFubmVsVXJsID8gcm9vdFBhdGguc25pcHBldC5hdXRob3JDaGFubmVsVXJsIDogJyc7XG4gICAgICAgIGNhc2UgJ3RleHREaXNwbGF5JzpcbiAgICAgICAgICAgIHJldHVybiByb290UGF0aD8uc25pcHBldD8udGV4dERpc3BsYXkgPyByb290UGF0aC5zbmlwcGV0LnRleHREaXNwbGF5IDogJyc7XG4gICAgICAgIGNhc2UgJ2xpa2VDb3VudCc6XG4gICAgICAgICAgICByZXR1cm4gcm9vdFBhdGg/LnNuaXBwZXQ/Lmxpa2VDb3VudCA/IHJvb3RQYXRoLnNuaXBwZXQubGlrZUNvdW50IDogJyc7XG4gICAgICAgIGNhc2UgJ3B1Ymxpc2hlZEF0JzpcbiAgICAgICAgICAgIHJldHVybiByb290UGF0aD8uc25pcHBldD8ucHVibGlzaGVkQXQgPyByb290UGF0aC5zbmlwcGV0LnB1Ymxpc2hlZEF0IDogJyc7XG4gICAgICAgIGNhc2UgJ3RvdGFsUmVwbHlDb3VudCc6XG4gICAgICAgICAgICByZXR1cm4gcm9vdFBhdGg/LnRvdGFsUmVwbHlDb3VudCA/IHJvb3RQYXRoLnRvdGFsUmVwbHlDb3VudCA6ICcnO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBzdGF0aWMgU1ZHIGltYWdlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBuYW1lLlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgXG4gKiBAcmV0dXJucyB7c3RyaW5nfGJvb2xlYW59IFxuICovXG5mdW5jdGlvbiBnZXRTdGF0aWNTVkcobmFtZSkge1xuXG4gICAgc3dpdGNoKG5hbWUpIHtcbiAgICAgICAgY2FzZSAncHJvZmlsZS1waWN0dXJlJzpcbiAgICAgICAgICAgIHJldHVybiAnPHN2ZyBmaWxsPVwiY3VycmVudENvbG9yXCIgd2lkdGg9XCI4MDBweFwiIGhlaWdodD1cIjgwMHB4XCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCIgaWQ9XCJfeDMwXzFcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+PHBhdGggZD1cIk0yNTYsMEMxMTQuNjE1LDAsMCwxMTQuNjE1LDAsMjU2czExNC42MTUsMjU2LDI1NiwyNTZzMjU2LTExNC42MTUsMjU2LTI1NlMzOTcuMzg1LDAsMjU2LDB6IE0yNTYsOTAgIGMzNy4wMiwwLDY3LjAzMSwzNS40NjgsNjcuMDMxLDc5LjIxOVMyOTMuMDIsMjQ4LjQzOCwyNTYsMjQ4LjQzOHMtNjcuMDMxLTM1LjQ2OC02Ny4wMzEtNzkuMjE5UzIxOC45OCw5MCwyNTYsOTB6IE0zNjkuNDYsNDAyICBIMTQyLjU0Yy0xMS4zNzgsMC0yMC42MDItOS4yMjQtMjAuNjAyLTIwLjYwMkMxMjEuOTM4LDMyOC4xNTksMTgxLjk1OSwyODUsMjU2LDI4NXMxMzQuMDYyLDQzLjE1OSwxMzQuMDYyLDk2LjM5OCAgQzM5MC4wNjIsMzkyLjc3NiwzODAuODM5LDQwMiwzNjkuNDYsNDAyelwiLz48L3N2Zz4nO1xuICAgICAgICBjYXNlICd0aHVtYnMtdXAnOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTUgMTNcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTEzLjQxNTkgNC4xODAyN0MxMy43NjEgNC4xODAyNyAxNC4wNzc4IDQuMzIxNzcgMTQuMzY2NCA0LjYwNDc3QzE0LjY1NDkgNC44ODc3NyAxNC43OTkyIDUuMjA3MzggMTQuNzk5MiA1LjU2MzZWNi4yNzA2QzE0Ljc5OTIgNi4zNjQ3MSAxNC43OTAyIDYuNDUxODggMTQuNzcyMiA2LjUzMjFDMTQuNzU0MiA2LjYxMjMyIDE0LjcyNzIgNi42OTI2NiAxNC42OTEyIDYuNzczMUwxMi42ODQgMTEuNDkwOEMxMi41ODQ1IDExLjc0NDkgMTIuNDE4MSAxMS45NDg2IDEyLjE4NDkgMTIuMTAxOUMxMS45NTE3IDEyLjI1NTIgMTEuNjkgMTIuMzMxOCAxMS4zOTk5IDEyLjMzMThINS4xNTkzOEM0Ljc3MjgyIDEyLjMzMTggNC40NDU2NiAxMi4yMDA2IDQuMTc3ODggMTEuOTM4M0MzLjkwOTk5IDExLjY3NTkgMy43NzYwNCAxMS4zNDYgMy43NzYwNCAxMC45NDg0VjQuNzU2MUMzLjc3NjA0IDQuNTYyNzcgMy44MTMzMiA0LjM4MDQ5IDMuODg3ODggNC4yMDkyN0MzLjk2MjU0IDQuMDM4MDQgNC4wNjQ3NyAzLjg4NzU0IDQuMTk0NTQgMy43NTc3N0w3LjI4OTM4IDAuNjYyOTMyQzcuNTE4NiAwLjQzMTA0MyA3Ljc5NDI3IDAuMjgxMzIxIDguMTE2MzggMC4yMTM3NjVDOC40Mzg0OSAwLjE0NjMyMSA4LjcxNDE2IDAuMTc4OTg4IDguOTQzMzggMC4zMTE3NjVDOS4yMjU0OSAwLjQ2NDIxIDkuNDA5MzIgMC42OTU5MzIgOS40OTQ4OCAxLjAwNjkzQzkuNTgwMzIgMS4zMTc5MyA5LjU4OTk5IDEuNjI4MDQgOS41MjM4OCAxLjkzNzI3TDkuMDk1NTQgNC4xODAyN0gxMy40MTU5Wk0xLjM0NDA0IDEyLjMzMThDMS4wMTM5MyAxMi4zMzE4IDAuNzI2NzY3IDEyLjIwOTcgMC40ODI1NDQgMTEuOTY1NEMwLjIzODMyMiAxMS43MjEyIDAuMTE2MjExIDExLjQzNCAwLjExNjIxMSAxMS4xMDM5VjUuNDA4MjdDMC4xMTYyMTEgNS4wNzgwNCAwLjIzNjk4OSA0Ljc5MDgyIDAuNDc4NTQ0IDQuNTQ2NkMwLjcyMDEgNC4zMDIzOCAxLjAwNDY2IDQuMTgwMjcgMS4zMzIyMSA0LjE4MDI3SDEuMzQ4MDRDMS42NzgyNyA0LjE4MDI3IDEuOTY1NDkgNC4zMDIzOCAyLjIwOTcxIDQuNTQ2NkMyLjQ1MzkzIDQuNzkwODIgMi41NzYwNCA1LjA3ODA0IDIuNTc2MDQgNS40MDgyN1YxMS4xMDM5QzIuNTc2MDQgMTEuNDM0IDIuNDUzOTMgMTEuNzIxMiAyLjIwOTcxIDExLjk2NTRDMS45NjU0OSAxMi4yMDk3IDEuNjc4MjcgMTIuMzMxOCAxLjM0ODA0IDEyLjMzMThIMS4zNDQwNFpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPic7XG4gICAgICAgIGNhc2UgJ2FuZ2xlLWRvd24nOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiOFwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDggNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMC45NCAwLjcyNjY1NEw0IDMuNzc5OTlMNy4wNiAwLjcyNjY1NEw4IDEuNjY2NjVMNCA1LjY2NjY1TDAgMS42NjY2NUwwLjk0IDAuNzI2NjU0WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+JztcbiAgICAgICAgY2FzZSAneW91dHViZSc6XG4gICAgICAgICAgICByZXR1cm4gJzxzdmcgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjExXCIgdmlld0JveD1cIjAgMCAxNCAxMVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNS42NjY3MSA3LjVMOS4xMjY3MSA1LjVMNS42NjY3MSAzLjVWNy41Wk0xMy4zNzM0IDIuMjhDMTMuNDYgMi41OTMzNCAxMy41MiAzLjAxMzM0IDEzLjU2IDMuNTQ2NjdDMTMuNjA2NyA0LjA4IDEzLjYyNjcgNC41NCAxMy42MjY3IDQuOTRMMTMuNjY2NyA1LjVDMTMuNjY2NyA2Ljk2IDEzLjU2IDguMDMzMzQgMTMuMzczNCA4LjcyQzEzLjIwNjcgOS4zMiAxMi44MiA5LjcwNjY3IDEyLjIyIDkuODczMzRDMTEuOTA2NyA5Ljk2IDExLjMzMzQgMTAuMDIgMTAuNDUzNCAxMC4wNkM5LjU4NjcxIDEwLjEwNjcgOC43OTMzNyAxMC4xMjY3IDguMDYwMDQgMTAuMTI2N0w3LjAwMDA0IDEwLjE2NjdDNC4yMDY3MSAxMC4xNjY3IDIuNDY2NzEgMTAuMDYgMS43ODAwNCA5Ljg3MzM0QzEuMTgwMDQgOS43MDY2NyAwLjc5MzM3NCA5LjMyIDAuNjI2NzA3IDguNzJDMC41NDAwNDEgOC40MDY2NyAwLjQ4MDA0MSA3Ljk4NjY3IDAuNDQwMDQxIDcuNDUzMzRDMC4zOTMzNzQgNi45MiAwLjM3MzM3NCA2LjQ2IDAuMzczMzc0IDYuMDZMMC4zMzMzNzQgNS41QzAuMzMzMzc0IDQuMDQgMC40NDAwNDEgMi45NjY2NyAwLjYyNjcwNyAyLjI4QzAuNzkzMzc0IDEuNjggMS4xODAwNCAxLjI5MzM0IDEuNzgwMDQgMS4xMjY2N0MyLjA5MzM3IDEuMDQgMi42NjY3MSAwLjk4MDAwMiAzLjU0NjcxIDAuOTQwMDAyQzQuNDEzMzcgMC44OTMzMzYgNS4yMDY3MSAwLjg3MzMzNiA1Ljk0MDA0IDAuODczMzM2TDcuMDAwMDQgMC44MzMzMzZDOS43OTMzNyAwLjgzMzMzNiAxMS41MzM0IDAuOTQwMDAzIDEyLjIyIDEuMTI2NjdDMTIuODIgMS4yOTMzNCAxMy4yMDY3IDEuNjggMTMuMzczNCAyLjI4WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+JztcbiAgICAgICAgY2FzZSAnY3Jvc3MnOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiMTVcIiBoZWlnaHQ9XCIxNFwiIHZpZXdCb3g9XCIwIDAgMTUgMTRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTE0LjI1IDEuNDFMMTIuODQgMEw3LjI1IDUuNTlMMS42NiAwTDAuMjUgMS40MUw1Ljg0IDdMMC4yNSAxMi41OUwxLjY2IDE0TDcuMjUgOC40MUwxMi44NCAxNEwxNC4yNSAxMi41OUw4LjY2IDdMMTQuMjUgMS40MVpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPic7XG4gICAgICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgICAgICAgcmV0dXJuICc8c3ZnIHdpZHRoPVwiMjhcIiBoZWlnaHQ9XCIyNlwiIHZpZXdCb3g9XCIwIDAgMjggMjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTMuMzMzNDEgMjJDMi42MDAwOCAyMiAxLjk3MjMgMjEuNzM4OSAxLjQ1MDA4IDIxLjIxNjdDMC45Mjc4NTkgMjAuNjk0NCAwLjY2Njc0OCAyMC4wNjY3IDAuNjY2NzQ4IDE5LjMzMzNWMy4zMzMzNEMwLjY2Njc0OCAyLjYgMC45Mjc4NTkgMS45NzIyMyAxLjQ1MDA4IDEuNDUwMDFDMS45NzIzIDAuOTI3NzgzIDIuNjAwMDggMC42NjY2NzIgMy4zMzM0MSAwLjY2NjY3MkgyNC42NjY3QzI1LjQwMDEgMC42NjY2NzIgMjYuMDI3OSAwLjkyNzc4MyAyNi41NTAxIDEuNDUwMDFDMjcuMDcyMyAxLjk3MjIzIDI3LjMzMzQgMi42IDI3LjMzMzQgMy4zMzMzNFYyNC4xQzI3LjMzMzQgMjQuNyAyNy4wNjEyIDI1LjExNjcgMjYuNTE2NyAyNS4zNUMyNS45NzIzIDI1LjU4MzMgMjUuNDg5IDI1LjQ4ODkgMjUuMDY2NyAyNS4wNjY3TDIyLjAwMDEgMjJIMy4zMzM0MVpNMjMuMTMzNCAxOS4zMzMzTDI0LjY2NjcgMjAuODMzM1YzLjMzMzM0SDMuMzMzNDFWMTkuMzMzM0gyMy4xMzM0WlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+JztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG59XG5cblxuLyoqXG4gKiBHZW5lcmF0ZXMgdGhlIEhUTUwgdGVtcGxhdGUgZm9yIGEgc2luZ2xlIGNvbW1lbnQuXG4gKiBcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdXRob3JQcm9maWxlSW1hZ2VVcmxcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdXRob3JEaXNwbGF5TmFtZVxuICogQHBhcmFtIHtzdHJpbmd9IGF1dGhvckNoYW5uZWxVcmxcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0RGlzcGxheVxuICogQHBhcmFtIHtudW1iZXJ9IGxpa2VDb3VudFxuICogQHBhcmFtIHtzdHJpbmd9IHB1Ymxpc2hlZEF0XG4gKiBAcGFyYW0ge251bWJlcn0gdG90YWxSZXBseUNvdW50XG4gKiBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNvbW1lbnRTaW5nbGVUZW1wbGF0ZShhdXRob3JQcm9maWxlSW1hZ2VVcmwsIGF1dGhvckRpc3BsYXlOYW1lLCBhdXRob3JDaGFubmVsVXJsLCB0ZXh0RGlzcGxheSwgbGlrZUNvdW50LCBwdWJsaXNoZWRBdCwgdG90YWxSZXBseUNvdW50KSB7XG5cbiAgICBjb25zdCBkdW1teVByb2ZpbGVQaWMgPSBhdXRob3JQcm9maWxlSW1hZ2VVcmwgPyBgPGltZyBzcmM9JHthdXRob3JQcm9maWxlSW1hZ2VVcmx9IGxvYWRpbmc9XCJsYXp5XCIgcmVmZXJyZXJQb2xpY3k9XCJuby1yZWZlcnJlclwiLz5gIDogZ2V0U3RhdGljU1ZHKCdwcm9maWxlLXBpY3R1cmUnKTtcbiAgICBjb25zdCByZXBsaWVzID0gdG90YWxSZXBseUNvdW50ID8gYDxidXR0b24gY2xhc3M9XCJzYnktcmVwbGllc1wiPiR7dG90YWxSZXBseUNvdW50ID8gdG90YWxSZXBseUNvdW50IDogMCB9IFJlcGxpZXMgJHtnZXRTdGF0aWNTVkcoJ2FuZ2xlLWRvd24nKX08L2J1dHRvbj5gIDogJyc7XG5cbiAgICByZXR1cm4gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1jb21tZW50LXByb2ZpbGUtcGljXCI+XG4gICAgICAgICAgICAgICAgJHtkdW1teVByb2ZpbGVQaWN9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYnktY29tbWVudC1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiR7YXV0aG9yQ2hhbm5lbFVybH1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInNieS1jb21tZW50LXVzZXItbmFtZVwiPiR7YXV0aG9yRGlzcGxheU5hbWV9PC9hPlxuICAgICAgICAgICAgICAgIDxzcGFuPiR7dGltZUFnbyhwdWJsaXNoZWRBdCl9PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1jb21tZW50LXRleHRcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInNieS1yZWFkLW1vcmUtdGFyZ2V0XCI+JHt0ZXh0RGlzcGxheX08L3A+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNieS1yZWFkLW1vcmUtdHJpZ2dlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2J5LXJlYWQtbW9yZS10ZXh0XCI+UmVhZCBNb3JlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzYnktcmVhZC1sZXNzLXRleHRcIj5SZWFkIExlc3M8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYnktY29tbWVudC1ib3R0b21cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNieS1jb21tZW50LWxpa2VzXCI+XG4gICAgICAgICAgICAgICAgICAgICR7Z2V0U3RhdGljU1ZHKCd0aHVtYnMtdXAnKX0gJHtsaWtlQ291bnQgPyBmb3JtYXRMYXJnZU51bWJlcihsaWtlQ291bnQpIDogMCB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7cmVwbGllc31cbiAgICAgICAgICAgIDwvZGl2PlxuICAgIGA7XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSBIVE1MIHRlbXBsYXRlIHdoZW4gbm8gY29tbWVudHMgYXJlIGZvdW5kLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gbm9Db21tZW50c1RlbXBsYXRlKCkge1xuICAgIHJldHVybiBgXG4gICAgICAgIDxoNCBjbGFzcz1cInNieS1jb21tZW50cy1zdWItaGVhZGluZ1wiPkNvbW1lbnRzPC9oND5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNieS1uby1jb21tZW50c1wiPlxuICAgICAgICAgICAgJHtnZXRTdGF0aWNTVkcoJ21lc3NhZ2UnKX1cbiAgICAgICAgICAgIDxwPlRoZXJlIGFyZSBubyBjb21tZW50cyB0byBkaXNwbGF5PC9wPlxuICAgICAgICA8L2Rpdj5gO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgSFRNTCB0ZW1wbGF0ZSB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIHJldHJpdmluZyBjb21tZW50cy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBlcnJvckNvbW1lbnRUZW1wbGF0ZShlcnJvcikge1xuICAgIHJldHVybiBgXG4gICAgICAgIDxoNCBjbGFzcz1cInNieS1jb21tZW50cy1zdWItaGVhZGluZ1wiPkNvbW1lbnRzPC9oND5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNieS1uby1jb21tZW50c1wiPlxuICAgICAgICAgICAgPHA+JHtlcnJvcn08L3A+XG4gICAgICAgIDwvZGl2PmA7XG59XG5cbi8qKlxuICogRm9ybWF0IGRhdGUgYW5kIHRpbWUgZm9yIElTTyA4NjAxXG4gKiBcbiAqIEBwYXJhbSB0aW1lc3RhbXBcbiAqIFxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gdGltZUFnbyh0aW1lc3RhbXApIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHBhc3QgPSBuZXcgRGF0ZSh0aW1lc3RhbXApO1xuICAgIGNvbnN0IGRpZmZNcyA9IG5vdyAtIHBhc3Q7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb25zIHRvIGdldCB0aW1lIHVuaXRzXG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoZGlmZk1zIC8gMTAwMCk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IobWludXRlcyAvIDYwKTtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcbiAgICBjb25zdCBtb250aHMgPSBNYXRoLmZsb29yKGRheXMgLyAzMCk7XG4gICAgY29uc3QgeWVhcnMgPSBNYXRoLmZsb29yKG1vbnRocyAvIDEyKTtcblxuICAgIC8vIERldGVybWluZSB0aGUgbGFyZ2VzdCB1bml0IG9mIHRpbWUgdGhhdCBhcHBsaWVzXG4gICAgaWYgKHllYXJzID4gMCkge1xuICAgICAgICByZXR1cm4gYCR7eWVhcnN9IHllYXIke3llYXJzID4gMSA/ICdzJyA6ICcnfSBhZ29gO1xuICAgIH1cbiAgICBpZiAobW9udGhzID4gMCkge1xuICAgICAgICByZXR1cm4gYCR7bW9udGhzfSBtb250aCR7bW9udGhzID4gMSA/ICdzJyA6ICcnfSBhZ29gO1xuICAgIH1cbiAgICBpZiAoZGF5cyA+IDApIHtcbiAgICAgICAgcmV0dXJuIGAke2RheXN9IGRheSR7ZGF5cyA+IDEgPyAncycgOiAnJ30gYWdvYDtcbiAgICB9XG4gICAgaWYgKGhvdXJzID4gMCkge1xuICAgICAgICByZXR1cm4gYCR7aG91cnN9IGhvdXIke2hvdXJzID4gMSA/ICdzJyA6ICcnfSBhZ29gO1xuICAgIH1cbiAgICBpZiAobWludXRlcyA+IDApIHtcbiAgICAgICAgcmV0dXJuIGAke21pbnV0ZXN9IG1pbnV0ZSR7bWludXRlcyA+IDEgPyAncycgOiAnJ30gYWdvYDtcbiAgICB9XG4gICAgaWYgKHNlY29uZHMgPiAwKSB7XG4gICAgICAgIHJldHVybiBgJHtzZWNvbmRzfSBzZWNvbmQke3NlY29uZHMgPiAxID8gJ3MnIDogJyd9IGFnb2A7XG4gICAgfVxuXG4gICAgcmV0dXJuICdqdXN0IG5vdyc7XG59XG5cbi8qKlxuICogQ29udmVydHMgcGxhaW4gdGV4dCBpbnRvIEhUTUwgd2l0aCBjbGlja2FibGUgbGlua3MuXG4gKiBcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKiBcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFxuICovXG5mdW5jdGlvbiBhZGRMaW5rc1RvdGV4dCh0ZXh0KSB7XG4gICAgLy9BZGQgbGlua3MgdG8gdGhlIGNhcHRpb25cbiAgICBpZighdGV4dCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgdGV4dCA9IHRleHQucmVwbGFjZSgvKD4jKS9nLCc+ICMnKTtcblxuICAgIHJldHVybiBzYnlMaW5raWZ5KHRleHQpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgVW5peCB0aW1lc3RhbXAgdG8gbWlsbGlzZWNvbmRzXG4gKiBAcGFyYW0gdGltZXN0YW1wXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5cbmZ1bmN0aW9uIGNvbnZlcnRVbml4VG9Ncyh0aW1lc3RhbXApIHtcblxuICAgIGlmKCAhIHRpbWVzdGFtcCApIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZShwYXJzZUludCh0aW1lc3RhbXApICogMTAwMCk7XG5cbn1cblxuLyoqXG4gKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIGFjY29yZGlvbiBzZWN0aW9ucyBiYXNlZCBvbiB0aGUgdHJpZ2dlciBlbGVtZW50LlxuICogXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFyZ2V0XG4gKiBAcGFyYW0ge3N0cmluZ30gcGFyZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdHJpZ2dlciBcbiAqIFxuICogQHJldHVybnMge3ZvaWR9IFxuICovXG5mdW5jdGlvbiB0b2dnbGVBY2NvcmRpb24oY2xhc3NOYW1lLCB0YXJnZXQsIHBhcmVudCAsdHJpZ2dlciAgKSB7XG4gICAgalF1ZXJ5KHRyaWdnZXIpLmNzcygnZGlzcGxheScsICdub25lJyk7XG4gICAgalF1ZXJ5KHRhcmdldCkudW5iaW5kKCdjbGljaycpO1xuICAgIGpRdWVyeSh0YXJnZXQpLmNsaWNrKGZ1bmN0aW9uKCl7XG4gICAgICAgIGpRdWVyeSh0aGlzKS50b2dnbGVDbGFzcyhjbGFzc05hbWUgKyAnLXRyaWdnZXInKTtcbiAgICAgICAgalF1ZXJ5KHRoaXMpLmNsb3Nlc3QocGFyZW50KS5maW5kKHRyaWdnZXIpLnRvZ2dsZSgpO1xuICAgIH0pO1xufVxuLyoqXG4gKiBUb2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIFwiUmVhZCBNb3JlXCIgYnV0dG9uc1xuICogXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gdG9nZ2xlUmVhZE1vcmUoKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0galF1ZXJ5KCcuc2J5LXJlYWQtbW9yZS10YXJnZXQnKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gJy5zYnktcmVhZC1tb3JlLXRyaWdnZXInO1xuXG4gICAgdGFyZ2V0LmVhY2goZnVuY3Rpb24oZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0galF1ZXJ5KHRoaXMpWzBdO1xuXG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEhlaWdodCA9IGN1cnJlbnRUYXJnZXQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICBjb25zdCBjbGllbnRIZWlnaHQgPSBjdXJyZW50VGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgaGFzTW9yZVRoYW5Gb3VyTGluZXMgPSBwYXJhZ3JhcGhIZWlnaHQgPiBjbGllbnRIZWlnaHQgJiYgcGFyYWdyYXBoSGVpZ2h0ID4gY2xpZW50SGVpZ2h0ICsgMTsgLy8gY2xpZW50SGVpZ2h0ICsgMSB0byBmaXggZmlyZWZveCBjbGllbnRIZWlnaHQgY2FsY3VsYXRlIGlzc3VlLlxuXG4gICAgICAgIGlmIChoYXNNb3JlVGhhbkZvdXJMaW5lcykge1xuICAgICAgICAgICAgY29uc3QgdHJpZ2dlciA9IGpRdWVyeSh0aGlzKS5wYXJlbnQoKS5maW5kKHRyaWdnZXJDbGFzc05hbWUpO1xuXG4gICAgICAgICAgICB0cmlnZ2VyLnVuYmluZCgnY2xpY2snKTtcbiAgICAgICAgICAgIHRyaWdnZXIuY2xpY2soZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLnRvZ2dsZUNsYXNzKCdzYnktcmVhZC1tb3JlLXRyaWdnZXItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLnBhcmVudCgpLmZpbmQoJy5zYnktcmVhZC1tb3JlLXRhcmdldCcpLnRvZ2dsZUNsYXNzKCdzYnktcmVhZC1tb3JlLXRhcmdldC1hY3RpdmUnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgalF1ZXJ5KHRoaXMpLnBhcmVudCgpLmZpbmQodHJpZ2dlckNsYXNzTmFtZSkuaGlkZSgpO1xuICAgICAgICB9XG5cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBBcHBsaWVzIGEgY29sb3Igc2NoZW1lIGNsYXNzIHRvIHRoZSBsaWdodGJveCBiYXNlZCBvbiB0aGUgZmxhZyBwcm92aWRlZC5cbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IGNvbG9yU2NoZW1lIFxuICogQHBhcmFtIHtib29sZWFufSBmbGFnXG4gKi9cbmZ1bmN0aW9uIExpZ2h0Ym94Q29sb3JTY2hlbWUoY29sb3JTY2hlbWUsIGZsYWcpIHtcblxuICAgIGNvbnN0IGNvbW1lbnRXcmFwID0galF1ZXJ5KCcuc2J5X2xiLWNhcHRpb24nKTtcbiAgICBjb25zdCBjb2xvclNjaGVtZUNsYXNzTmFtZSA9ICdzYnktbGItZGFyay1zY2hlbWUnO1xuXG4gICAgaWYoIGZhbHNlID09PSBmbGFnKSB7XG4gICAgICAgIGNvbW1lbnRXcmFwLnJlbW92ZUNsYXNzKGNvbG9yU2NoZW1lQ2xhc3NOYW1lKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmKCAnZGFyaycgPT09IGNvbG9yU2NoZW1lICYmIHRydWUgPT09IGZsYWcpIHtcbiAgICAgICAgY29tbWVudFdyYXAuYWRkQ2xhc3MoY29sb3JTY2hlbWVDbGFzc05hbWUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB0aGUgYm9keSdzIG92ZXJmbG93IHN0eWxlIGFuZCB0aGUgbGlnaHRib3ggY29sb3Igc2NoZW1lIHdoZW4gdGhlIGxpZ2h0Ym94IGlzIGNsb3NlZC5cbiAqXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gbGlnaHRib3hPbkNsb3NlKCkge1xuICAgIGpRdWVyeSgnYm9keScpLmNzcygnb3ZlcmZsb3cnLCAnYXV0bycpO1xuICAgIExpZ2h0Ym94Q29sb3JTY2hlbWUoJycsIGZhbHNlKVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbGF5b3V0IHR5cGUgb2YgdGhlIGNsb3Nlc3QgYW5jZXN0b3IgZWxlbWVudCB3aXRoIGEgc3BlY2lmaWMgbGF5b3V0IGNsYXNzLlxuICpcbiAqIEBwYXJhbSB7alF1ZXJ5fEhUTUxFbGVtZW50fSB0YXJnZXRcbiAqIEByZXR1cm5zIHtzdHJpbmd8Ym9vbGVhbn1cbiAqL1xuZnVuY3Rpb24gZ2V0TGF5b3V0KHRhcmdldCkge1xuICAgIGNvbnN0IGN1cnJlbnRUYXJnZXQgPSB0YXJnZXQuY2xvc2VzdCgnLnNiX3lvdXR1YmUnKTtcblxuICAgIGlmKCBjdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKCdzYnlfbGF5b3V0X2xpc3QnKSApIHtcbiAgICAgICAgcmV0dXJuICdsaXN0J1xuICAgIH1cblxuICAgIGlmKCBjdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKCdzYnlfbGF5b3V0X2dyaWQnKSApIHtcbiAgICAgICAgcmV0dXJuICdncmlkJ1xuICAgIH1cblxuICAgIGlmKCBjdXJyZW50VGFyZ2V0Lmhhc0NsYXNzKCdzYnlfbGF5b3V0X2Nhcm91c2VsJykgKSB7XG4gICAgICAgIHJldHVybiAnY2Fyb3VzZWwnXG4gICAgfVxuXG4gICAgaWYoIGN1cnJlbnRUYXJnZXQuaGFzQ2xhc3MoJ3NieV9sYXlvdXRfZ2FsbGVyeScpICkge1xuICAgICAgICByZXR1cm4gJ2dhbGxlcnknXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIE9wZW5zIGFuZCBkaXNwbGF5cyB0aGUgY29tbWVudHMgc2VjdGlvbiBvbiB0aGUgcGFnZS5cbiAqIFxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIG9wZW5Db21tZW50cygpIHtcblxuICAgIGlmKCAhIHdpbmRvdy5zYnlPcHRpb25zLmlzUHJvICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG9wZW5Db21tZW50VHJpZ2dlciA9IGpRdWVyeSgnLnNieS1jb21tZW50cy10cmlnZ2VyJyk7XG4gICAgb3BlbkNvbW1lbnRUcmlnZ2VyLnVuYmluZCgnY2xpY2snKTtcbiAgICBvcGVuQ29tbWVudFRyaWdnZXIuY2xpY2soZnVuY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnRXcmFwQ2xhc3MgPSAnLnNieS1jb21tZW50cy13cmFwJztcbiAgICAgICAgY29uc3QgY29tbWVudFNlY2lvbldyYXAgPSBqUXVlcnkodGhpcykuY2xvc2VzdCgnLnNieS1jb21tZW50LWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBjb21tZW50U2VjdGlvbiA9ICBjb21tZW50U2VjaW9uV3JhcC5maW5kKGNvbW1lbnRXcmFwQ2xhc3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50TGF5b3V0ID0gIGdldExheW91dChqUXVlcnkodGhpcykpO1xuXG4gICAgICAgIGlmKCBjb21tZW50U2VjdGlvbi50ZXh0KCkubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIGxldCBjb21tZW50Q291bnQ7XG4gICAgICAgICAgICBsZXQgdmlkZW9JZDtcbiAgICAgICAgICAgIGxldCB0YXJnZXQ7XG5cbiAgICAgICAgICAgIGlmKCAnZ2FsbGVyeScgPT09IGN1cnJlbnRMYXlvdXQgKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0UGFyZW50ID0galF1ZXJ5KHRoaXMpLmNsb3Nlc3QoJy5zYl95b3V0dWJlJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFRhcmdldCA9IHRhcmdldFBhcmVudC5maW5kKCcuc2J5X2l0ZW0uc2J5X2N1cnJlbnQnKTtcblxuICAgICAgICAgICAgICAgIGlmKCB0YXJnZXRQYXJlbnQgJiYgY3VycmVudFRhcmdldCApIHtcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9JZCA9IGNoZWNrVmFsdWUoY3VycmVudFRhcmdldC5hdHRyKCdkYXRhLXZpZGVvLWlkJykpO1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50Q291bnQgPSBjaGVja1ZhbHVlKGN1cnJlbnRUYXJnZXQuZmluZCgnYScpLmF0dHIoJ2RhdGEtY29tbWVudC1jb3VudCcpKTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0UGFyZW50LmZpbmQoY29tbWVudFdyYXBDbGFzcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiggJ2xpc3QnID09PSBjdXJyZW50TGF5b3V0ICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUYXJnZXQgPSBqUXVlcnkodGhpcykuY2xvc2VzdCgnLnNieV9pdGVtJyk7XG5cbiAgICAgICAgICAgICAgICBpZiggY3VycmVudFRhcmdldCApIHtcbiAgICAgICAgICAgICAgICAgICAgdmlkZW9JZCA9IGNoZWNrVmFsdWUoY3VycmVudFRhcmdldC5hdHRyKCdkYXRhLXZpZGVvLWlkJykpO1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50Q291bnQgPSBjaGVja1ZhbHVlKGN1cnJlbnRUYXJnZXQuZmluZCgnYScpLmF0dHIoJ2RhdGEtY29tbWVudC1jb3VudCcpKTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gY3VycmVudFRhcmdldC5maW5kKGNvbW1lbnRXcmFwQ2xhc3MpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIFJlc2V0IGFsbCBvdGhlciBjb21tZW50cyBvcGVuZWQgXG4gICAgICAgICAgICAgICAgcmVzZXRDb21tZW50cyhqUXVlcnkodGhpcykuY2xvc2VzdCgnLnNiX3lvdXR1YmUnKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGF0dHMgPSBjaGVja1ZhbHVlKGpRdWVyeSh0aGlzKS5jbG9zZXN0KCcuc2JfeW91dHViZScpLmF0dHIoJ2RhdGEtc2hvcnRjb2RlLWF0dHMnKSk7XG5cbiAgICAgICAgICAgIGdlbmVyYXRlQ29tbWVudFNlY3Rpb24odmlkZW9JZCwgYXR0cywgdGFyZ2V0LCBjb21tZW50Q291bnQpO1xuICAgICAgICAgICAgY29tbWVudFNlY3Rpb24uYWRkQ2xhc3MoJ3NieS1jb21tZW50cy1hY3RpdmUnKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tbWVudFNlY3Rpb24udG9nZ2xlKCk7XG4gICAgICAgICAgICBjb21tZW50U2VjdGlvbi50b2dnbGVDbGFzcygnc2J5LWNvbW1lbnRzLWFjdGl2ZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFRleHRTdGF0ZSA9IGNvbW1lbnRTZWNpb25XcmFwLmZpbmQoJy5zYnktY29tbWVudHMtdHJpZ2dlciBwJyk7XG5cbiAgICAgICAgaWYoIGN1cnJlbnRUZXh0U3RhdGUgKSB7XG4gICAgICAgICAgICBjaGFuZ2VUZXh0T25Ub2dnbGUoY3VycmVudFRleHRTdGF0ZSwgJ1Nob3cgQ29tbWVudHMnLCAnSGlkZSBDb21tZW50cycpO1xuICAgICAgICB9XG5cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgdmFsaWQgdmFsdWUgb3IgYW4gZW1wdHkgc3RyaW5nIGJhc2VkIG9uIHRoZSBpbnB1dC5cbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFxuICovXG5mdW5jdGlvbiBjaGVja1ZhbHVlKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudCA/IGVsZW1lbnQgOiAnJztcbn1cblxuLyoqXG4gKiBTZW5kcyBhbiBBSkFYIHJlcXVlc3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGRhdGEgYW5kIGhhbmRsZXMgdGhlIHJlc3BvbnNlLlxuICogQHBhcmFtIHtPYmplY3R9IHN1Ym1pdERhdGFcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uU3VjY2VzcyBcbiAqIFxuICogQHJldHVybnMge3ZvaWR9IFxuICovXG5mdW5jdGlvbiBzYnlBamF4KHN1Ym1pdERhdGEsb25TdWNjZXNzKSB7XG4gICAgalF1ZXJ5LmFqYXgoe1xuICAgICAgICB1cmw6IHNieU9wdGlvbnMuYWRtaW5BamF4VXJsLFxuICAgICAgICB0eXBlOiAncG9zdCcsXG4gICAgICAgIGRhdGE6IHN1Ym1pdERhdGEsXG4gICAgICAgIHN1Y2Nlc3M6IG9uU3VjY2Vzc1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEZldGNoZXMgYW5kIGdlbmVyYXRlcyBhIGNvbW1lbnQgc2VjdGlvbiBmb3IgYSBnaXZlbiB2aWRlby5cbiAqIFxuICogQHBhcmFtIHtzdHJpbmd9IHZpZGVvSWQgXG4gKiBAcGFyYW0ge09iamVjdH0gYXR0c1xuICogQHBhcmFtIHtqUXVlcnl9IHRhcmdldFxuICogXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuXG5mdW5jdGlvbiBnZW5lcmF0ZUNvbW1lbnRTZWN0aW9uKHZpZGVvSWQsIGF0dHMsIHRhcmdldCwgY29tbWVudENvdW50KSB7XG5cbiAgICBzdWJtaXREYXRhID0ge1xuICAgICAgICBhY3Rpb246ICdzYnlfZ2V0X2NvbW1lbnRzJyxcbiAgICAgICAgdmlkZW9faWQ6IHZpZGVvSWQsXG4gICAgICAgIGF0dHM6IGF0dHNcbiAgICB9O1xuXG4gICAgbGV0IG9uU3VjY2VzcyA9IGZ1bmN0aW9uIChkYXRhKSB7XG5cbiAgICAgICAgaWYoICEgZGF0YSApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCBmYWxzZSA9PT0gZGF0YS5zdWNjZXNzICkge1xuICAgICAgICAgICAgdGFyZ2V0Lmh0bWwoZXJyb3JDb21tZW50VGVtcGxhdGUoZGF0YS5kYXRhKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb21tZW50SnNvbiA9IEpTT04ucGFyc2UoZGF0YSk7XG5cbiAgICAgICAgaWYoICEgY29tbWVudEpzb24gKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiggY29tbWVudEpzb24/LnN1Y2Nlc3MgJiYgZmFsc2UgPT09IGNvbW1lbnRKc29uLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRhcmdldC5odG1sKGVycm9yQ29tbWVudFRlbXBsYXRlKGNvbW1lbnRKc29uLmRhdGEpKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKCBjb21tZW50SnNvbj8uZXJyb3IgJiYgY29tbWVudEpzb24/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gY29tbWVudEpzb24uZXJyb3IubWVzc2FnZTtcbiAgICAgICAgICAgIGlmKCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ2Rpc2FibGVkIGNvbW1lbnRzJykgKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ0NvbW1lbnRzIGFyZSB0dXJuZWQgb2ZmJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFyZ2V0Lmh0bWwoZXJyb3JDb21tZW50VGVtcGxhdGUoZXJyb3JNZXNzYWdlKSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub09mSXRlbXMgPSBjb21tZW50SnNvbj8uaXRlbXMgJiYgY29tbWVudEpzb24/Lml0ZW1zLmxlbmd0aCA/IGNvbW1lbnRKc29uLml0ZW1zLmxlbmd0aCA6ICcnO1xuICAgICAgICBjb25zdCB2aWRlb0xpbmsgPSB2aWRlb0lkID8gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9JHt2aWRlb0lkfWAgOiAnJztcblxuICAgICAgICBpZighIG5vT2ZJdGVtcyApIHtcbiAgICAgICAgICAgIHRhcmdldC5odG1sKG5vQ29tbWVudHNUZW1wbGF0ZSgpKTtcbiAgICAgICAgICAgIHRvZ2dsZVJlYWRNb3JlKCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50Q29tbWVudENvdW50ID0gY29tbWVudENvdW50ID8gYCggJHtjb21tZW50Q291bnR9IClgIDogJyc7XG5cbiAgICAgICAgbGV0IGNvbW1lbnRIdG1sID0gYDxoNCBjbGFzcz1cInNieS1jb21tZW50cy1zdWItaGVhZGluZ1wiPkNvbW1lbnRzICR7Y3VycmVudENvbW1lbnRDb3VudH08L2g0Pjx1bCBjbGFzcz1cInNieS1jb21tZW50c1wiPmA7XG4gICAgICAgIGpRdWVyeS5lYWNoKGNvbW1lbnRKc29uLml0ZW1zLCBmdW5jdGlvbihpbmRleCwgY29tbWVudCkge1xuXG4gICAgICAgICAgICBjb25zdCB0b3BMZXZlbENvbW1lbnRQYXRoID0gY29tbWVudD8uc25pcHBldD8udG9wTGV2ZWxDb21tZW50O1xuICAgICAgICAgICAgY29uc3QgdG9wTGV2ZWxDb21tZW50U25pcHBldCA9IGNvbW1lbnQ/LnNuaXBwZXQ7XG5cbiAgICAgICAgICAgIC8vIEdlbmVyYXRlIHRoZSBIVE1MIGZvciBlYWNoIGNvbW1lbnRcbiAgICAgICAgICAgIGNvbW1lbnRIdG1sICs9IGA8bGkgY2xhc3M9XCJzYnktY29tbWVudFwiPiR7Y29tbWVudFNpbmdsZVRlbXBsYXRlKCBnZXRTaW5nbGVBcGlEYXRhKHRvcExldmVsQ29tbWVudFBhdGgsICdhdXRob3JQcm9maWxlSW1hZ2VVcmwnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRQYXRoLCAnYXV0aG9yRGlzcGxheU5hbWUnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRQYXRoLCAnYXV0aG9yQ2hhbm5lbFVybCcpLCBnZXRTaW5nbGVBcGlEYXRhKHRvcExldmVsQ29tbWVudFBhdGgsICd0ZXh0RGlzcGxheScpLCBnZXRTaW5nbGVBcGlEYXRhKHRvcExldmVsQ29tbWVudFBhdGgsICdsaWtlQ291bnQnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRQYXRoLCAncHVibGlzaGVkQXQnKSwgZ2V0U2luZ2xlQXBpRGF0YSh0b3BMZXZlbENvbW1lbnRTbmlwcGV0LCAndG90YWxSZXBseUNvdW50JykpfVxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic2J5LXJlcGx5LWNvbW1lbnRzXCI+YDtcblxuICAgICAgICAgICAgaWYoIGNvbW1lbnQ/LnJlcGxpZXM/LmNvbW1lbnRzICkge1xuICAgICAgICAgICAgICAgIC8vIFVzZSAkLmVhY2ggdG8gbG9vcCB0aHJvdWdoIHJlcGxpZXNcbiAgICAgICAgICAgICAgICBqUXVlcnkuZWFjaChjb21tZW50LnJlcGxpZXMuY29tbWVudHMsIGZ1bmN0aW9uKHJlcGx5SW5kZXgsIHJlcGx5KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29tbWVudEh0bWwgKz0gYDxsaSBjbGFzcz1cInNieS1yZXBseS1jb21tZW50XCIgPiR7Y29tbWVudFNpbmdsZVRlbXBsYXRlKGdldFNpbmdsZUFwaURhdGEocmVwbHksICdhdXRob3JQcm9maWxlSW1hZ2VVcmwnKSwgZ2V0U2luZ2xlQXBpRGF0YShyZXBseSwgJ2F1dGhvckRpc3BsYXlOYW1lJyksIGdldFNpbmdsZUFwaURhdGEocmVwbHksICdhdXRob3JDaGFubmVsVXJsJyksIGdldFNpbmdsZUFwaURhdGEocmVwbHksICd0ZXh0RGlzcGxheScpLCBnZXRTaW5nbGVBcGlEYXRhKHJlcGx5LCAnbGlrZUNvdW50JyksIGdldFNpbmdsZUFwaURhdGEocmVwbHksICdwdWJsaXNoZWRBdCcpKX08L2xpPmA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDbG9zZSB0aGUgY29tbWVudCBjb250YWluZXJcbiAgICAgICAgICAgIGNvbW1lbnRIdG1sICs9IGA8L3VsPjwvbGk+YDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbW1lbnRIdG1sICs9IGA8L3VsPmA7XG4gICAgICAgIGNvbW1lbnRIdG1sICs9IGA8YSBocmVmPVwiJHt2aWRlb0xpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJzYnktdmlldy1hbGwtYnV0dG9uIFwiPlZpZXcgYWxsIGNvbW1lbnRzIG9uIFlvdVR1YmU8L2E+YDtcblxuICAgICAgICB0YXJnZXQuaHRtbChjb21tZW50SHRtbCkuZmFkZUluKFwiZmFzdFwiKTsgXG5cbiAgICAgICAgdG9nZ2xlUmVhZE1vcmUoKTtcbiAgICAgICAgdG9nZ2xlQWNjb3JkaW9uKCdzYnktYWN0aXZlJywnLnNieS1yZXBsaWVzJywnLnNieS1jb21tZW50JywnLnNieS1yZXBseS1jb21tZW50cycpO1xuICAgIH1cblxuICAgIHRvZ2dsZVJlYWRNb3JlKCk7XG4gICAgc2J5QWpheChzdWJtaXREYXRhLG9uU3VjY2VzcylcblxufVxuXG4vKipcbiAqIFRvZ2dsZXMgdGhlIHRleHQgb2YgYW4gZWxlbWVudCBiYXNlZCBvbiBpdHMgY3VycmVudCBjb250ZW50LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gdXBkYXRlcyB0aGUgdGV4dCBvZiBhbiBlbGVtZW50IGlmIHRoZSBlbGVtZW50J3MgY3VycmVudCB0ZXh0XG4gKiBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgYGN1cnJlbnRUZXh0YC4gSWYgaXQgbWF0Y2hlcywgdGhlIHRleHQgaXMgcmVwbGFjZWQgd2l0aFxuICogdGhlIHByb3ZpZGVkIGByZXBsYWNlbWVudFRleHRgLiBJZiBpdCBkb2VzIG5vdCBtYXRjaCwgdGhlIHRleHQgcmVtYWlucyBhcyBgY3VycmVudFRleHRgLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjdXJyZW50U3RhdGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50VGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHJlcGxhY2VtZW50VGV4dFxuICogXG4gKiBAcmV0dXJucyB7dm9pZH0gXG4gKi9cblxuZnVuY3Rpb24gY2hhbmdlVGV4dE9uVG9nZ2xlKGN1cnJlbnRTdGF0ZSwgY3VycmVudFRleHQsIHJlcGxhY2VtZW50VGV4dCApIHtcblxuICAgIGlmKCBjdXJyZW50U3RhdGUgJiYgY3VycmVudFRleHQgJiYgcmVwbGFjZW1lbnRUZXh0ICkge1xuICAgICAgICBjb25zdCBjdXJyZW50U3RhdGVUZXh0ID0gY3VycmVudFRleHQgPT09IGN1cnJlbnRTdGF0ZS50ZXh0KCkgPyByZXBsYWNlbWVudFRleHQgOiBjdXJyZW50VGV4dDtcbiAgICAgICAgY3VycmVudFN0YXRlLnRleHQoY3VycmVudFN0YXRlVGV4dCk7XG4gICAgfVxufVxuXG4vKipcbiAqIFJlc2V0cyB0aGUgY29tbWVudHMgb2YgYSBzcGVjaWZpZWQgcGFyZW50IGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHtqUXVlcnl9IHBhcmVudFxuICpcbiAqIEByZXR1cm5zIHt2b2lkfSBcbiAqL1xuXG5mdW5jdGlvbiByZXNldENvbW1lbnRzKHBhcmVudCkge1xuICAgIGlmKCAnZ2FsbGVyeScgPT09IGdldExheW91dChwYXJlbnQpIHx8ICdsaXN0JyA9PT0gZ2V0TGF5b3V0KHBhcmVudCkgKSB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBwYXJlbnQuZmluZCgnLnNieS1jb21tZW50cy10cmlnZ2VyJyk7XG4gICAgICAgIHRyaWdnZXIuZmluZCgncCcpLnRleHQoJ1Nob3cgQ29tbWVudHMnKTtcbiAgICAgICAgcGFyZW50LmZpbmQoJy5zYnktY29tbWVudHMtd3JhcCcpLmh0bWwoJycpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgbGFyZ2UgbnVtYmVyIGludG8gYSBtb3JlIHJlYWRhYmxlIHN0cmluZyB3aXRoIGEgc3VmZml4LlxuICogVGhlIGZ1bmN0aW9uIGNvbnZlcnRzIGxhcmdlIG51bWJlcnMgaW50byBhIHN0cmluZyB3aXRoIGEgc3VmZml4IHRvIGRlbm90ZSB0aGUgc2NhbGUgb2YgdGhlIG51bWJlci5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gbnVtXG4gKiBcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0TGFyZ2VOdW1iZXIobnVtKSB7XG4gICAgaWYgKG51bSA+PSAxZTkpIHJldHVybiAobnVtIC8gMWU5KS50b0ZpeGVkKDEpICsgJ0InO1xuICAgIGlmIChudW0gPj0gMWU2KSByZXR1cm4gKG51bSAvIDFlNikudG9GaXhlZCgxKSArICdNJztcbiAgICBpZiAobnVtID49IDFlMykgcmV0dXJuIChudW0gLyAxZTMpLnRvRml4ZWQoMSkgKyAnSyc7XG5cbiAgICByZXR1cm4gbnVtO1xufVxuXG4vKipcbiAqIEFwcGxpZXMgYSBzZXQgb2YgY29sb3JzIHRvIHRoZSBjaGFubmVsIGhlYWRlci5cbiAqIFxuICogQHBhcmFtIHtPYmplY3R9IGNvbG9yQXJyYXkgLSBBbiBvYmplY3QgY29udGFpbmluZyBjb2xvciBwcm9wZXJ0aWVzIGZvciB0aGUgY2hhbm5lbCBoZWFkZXIuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29sb3JBcnJheS5jaGFubmVsTmFtZSAtIFRoZSB0ZXh0IGNvbG9yIGZvciB0aGUgY2hhbm5lbCBuYW1lIGVsZW1lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29sb3JBcnJheS5zdWJzY3JpYmVDb3VudCAtIFRoZSB0ZXh0IGNvbG9yIGZvciB0aGUgc3Vic2NyaWJlIGNvdW50IGVsZW1lbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29sb3JBcnJheS5idXR0b25CYWNrZ3JvdW5kIC0gVGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBidXR0b24gZWxlbWVudC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvckFycmF5LmJ1dHRvblRleHQgLSBUaGUgdGV4dCBjb2xvciBmb3IgdGhlIGJ1dHRvbiBlbGVtZW50LlxuICogXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gc2V0Q29sb3JzVG9DaGFubmVsSGVhZGVyKGNvbG9yQXJyYXkpIHtcbiAgICBjb25zdCB7Y2hhbm5lbE5hbWUsIHN1YnNjcmliZUNvdW50LCBidXR0b25CYWNrZ3JvdW5kLCBidXR0b25UZXh0fSA9IGNvbG9yQXJyYXk7XG4gICAgY29uc3QgcGFyZW50ID0galF1ZXJ5KCcuc2J5X2xiLWRhdGFDb250YWluZXIgLnNieS1sYi1jaGFubmVsLWhlYWRlcicpO1xuICAgIFxuICAgIGlmKCAhIHBhcmVudCApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmKCBjaGFubmVsTmFtZSApIHtcbiAgICAgICAgcGFyZW50LmZpbmQoJy5zYnktbGItY2hhbm5lbC1uYW1lLXdpdGgtc3VicyBzcGFuOmZpcnN0LWNoaWxkJykuY3NzKCdjb2xvcicsIGNoYW5uZWxOYW1lKTtcbiAgICB9XG5cbiAgICBpZiggc3Vic2NyaWJlQ291bnQgKSB7XG4gICAgICAgIHBhcmVudC5maW5kKCcuc2J5LWxiLWNoYW5uZWwtbmFtZS13aXRoLXN1YnMgc3BhbjpudGgtY2hpbGQoMiknKS5jc3MoJ2NvbG9yJywgc3Vic2NyaWJlQ291bnQpO1xuICAgIH1cblxuICAgIGlmKCBidXR0b25CYWNrZ3JvdW5kICkge1xuICAgICAgICBwYXJlbnQuZmluZCgnLnNieS1sYi1zdWJzY3JpYmUtYnRuJykuY3NzKCdiYWNrZ3JvdW5kJywgYnV0dG9uQmFja2dyb3VuZCk7XG4gICAgfVxuXG4gICAgaWYoIGJ1dHRvblRleHQgKSB7XG4gICAgICAgIHBhcmVudC5maW5kKCcuc2J5LWxiLXN1YnNjcmliZS1idG4nKS5jc3MoJ2NvbG9yJywgYnV0dG9uVGV4dCk7XG4gICAgfVxufSJdLCJuYW1lcyI6WyJERUZBVUxUIiwicGFyc2VTdHlsZSIsImlzTnVsbCIsIm9iaiIsIkZpbHRlckNTUyIsIm9wdGlvbnMiLCJyZXQiLCJpIiwic2hhbGxvd0NvcHlPYmplY3QiLCJ3aGl0ZUxpc3QiLCJvbkF0dHIiLCJvbklnbm9yZUF0dHIiLCJzYWZlQXR0clZhbHVlIiwidGhpcyIsInByb3RvdHlwZSIsInByb2Nlc3MiLCJjc3MiLCJ0b1N0cmluZyIsInNvdXJjZVBvc2l0aW9uIiwicG9zaXRpb24iLCJuYW1lIiwidmFsdWUiLCJzb3VyY2UiLCJjaGVjayIsImlzV2hpdGUiLCJSZWdFeHAiLCJ0ZXN0Iiwib3B0cyIsIm1vZHVsZSIsImV4cG9ydHMiLCJnZXREZWZhdWx0V2hpdGVMaXN0IiwiUkVHRVhQX1VSTF9KQVZBU0NSSVBUIiwiaHRtbCIsIndpbmRvdyIsImZpbHRlckNTUyIsIl8iLCJ0cmltUmlnaHQiLCJsZW5ndGgiLCJjc3NMZW5ndGgiLCJpc1BhcmVudGhlc2lzT3BlbiIsImxhc3RQb3MiLCJyZXRDU1MiLCJhZGROZXdBdHRyIiwidHJpbSIsInNsaWNlIiwiaiIsImluZGV4T2YiLCJjIiwiYXJyIiwiaXRlbSIsIkFycmF5IiwiZm9yRWFjaCIsImZuIiwic2NvcGUiLCJjYWxsIiwic3RyIiwiU3RyaW5nIiwicmVwbGFjZSIsImdldERlZmF1bHRDU1NXaGl0ZUxpc3QiLCJkZWZhdWx0Q1NTRmlsdGVyIiwiZXNjYXBlSHRtbCIsIlJFR0VYUF9MVCIsIlJFR0VYUF9HVCIsIlJFR0VYUF9RVU9URSIsIlJFR0VYUF9RVU9URV8yIiwiUkVHRVhQX0FUVFJfVkFMVUVfMSIsIlJFR0VYUF9BVFRSX1ZBTFVFX0NPTE9OIiwiUkVHRVhQX0FUVFJfVkFMVUVfTkVXTElORSIsIlJFR0VYUF9ERUZBVUxUX09OX1RBR19BVFRSXzQiLCJSRUdFWFBfREVGQVVMVF9PTl9UQUdfQVRUUl83IiwiUkVHRVhQX0RFRkFVTFRfT05fVEFHX0FUVFJfOCIsImVzY2FwZVF1b3RlIiwidW5lc2NhcGVRdW90ZSIsImVzY2FwZUh0bWxFbnRpdGllcyIsImNvZGUiLCJmcm9tQ2hhckNvZGUiLCJwYXJzZUludCIsInN1YnN0ciIsImVzY2FwZURhbmdlckh0bWw1RW50aXRpZXMiLCJjbGVhck5vblByaW50YWJsZUNoYXJhY3RlciIsInN0cjIiLCJsZW4iLCJjaGFyQ29kZUF0IiwiY2hhckF0IiwiZnJpZW5kbHlBdHRyVmFsdWUiLCJlc2NhcGVBdHRyVmFsdWUiLCJhIiwiYWJiciIsImFkZHJlc3MiLCJhcmVhIiwiYXJ0aWNsZSIsImFzaWRlIiwiYXVkaW8iLCJiIiwiYmRpIiwiYmRvIiwiYmlnIiwiYmxvY2txdW90ZSIsImJyIiwiY2FwdGlvbiIsImNlbnRlciIsImNpdGUiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGVsIiwiZGV0YWlscyIsImRpdiIsImRsIiwiZHQiLCJlbSIsImZpZ2NhcHRpb24iLCJmaWd1cmUiLCJmb250IiwiZm9vdGVyIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiaGVhZGVyIiwiaHIiLCJpbWciLCJpbnMiLCJrYmQiLCJsaSIsIm1hcmsiLCJuYXYiLCJvbCIsInAiLCJwcmUiLCJzIiwic2VjdGlvbiIsInNtYWxsIiwic3BhbiIsInN1YiIsInN1bW1hcnkiLCJzdXAiLCJzdHJvbmciLCJzdHJpa2UiLCJ0YWJsZSIsInRib2R5IiwidGQiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0ciIsInR0IiwidSIsInVsIiwidmlkZW8iLCJvblRhZyIsInRhZyIsIm9uSWdub3JlVGFnIiwib25UYWdBdHRyIiwib25JZ25vcmVUYWdBdHRyIiwiY3NzRmlsdGVyIiwibGFzdEluZGV4Iiwib25JZ25vcmVUYWdTdHJpcEFsbCIsIlN0cmlwVGFnQm9keSIsInRhZ3MiLCJuZXh0IiwiaXNSZW1vdmVBbGxUYWciLCJpc0FycmF5IiwicmVtb3ZlTGlzdCIsInBvc1N0YXJ0IiwiaXNSZW1vdmVUYWciLCJpc0Nsb3NpbmciLCJlbmQiLCJwdXNoIiwicmVtb3ZlIiwicmV0aHRtbCIsInBvcyIsInN0cmlwQ29tbWVudFRhZyIsInJldEh0bWwiLCJzdHJpcEJsYW5rQ2hhciIsImNoYXJzIiwic3BsaXQiLCJmaWx0ZXIiLCJjaGFyIiwiam9pbiIsImF0dHJpYnV0ZVdyYXBTaWduIiwicGFyc2VyIiwiRmlsdGVyWFNTIiwiZmlsdGVyWFNTIiwic2VsZiIsIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwiZ2V0VGFnTmFtZSIsInRhZ05hbWUiLCJzcGFjZUluZGV4IiwidG9Mb3dlckNhc2UiLCJSRUdFWFBfSUxMRUdBTF9BVFRSX05BTUUiLCJmaW5kTmV4dEVxdWFsIiwiZmluZE5leHRRdW90YXRpb25NYXJrIiwiZmluZEJlZm9yZUVxdWFsIiwic3RyaXBRdW90ZVdyYXAiLCJ0ZXh0IiwiaXNRdW90ZVdyYXBTdHJpbmciLCJwYXJzZVRhZyIsInRhZ1N0YXJ0IiwicXVvdGVTdGFydCIsImN1cnJlbnRQb3MiLCJjdXJyZW50VGFnTmFtZSIsImN1cnJlbnRIdG1sIiwiY2hhcml0ZXJhdG9yIiwiaWMiLCJwYXJzZUF0dHIiLCJsYXN0TWFya1BvcyIsInJldEF0dHJzIiwidG1wTmFtZSIsImFkZEF0dHIiLCJtYXRjaCIsImV4ZWMiLCJpbmRleCIsInN0cmlwSWdub3JlVGFnIiwiY29uc29sZSIsImVycm9yIiwiYWxsb3dMaXN0IiwibWFwIiwia2V5c1RvTG93ZXJDYXNlIiwic2luZ2xlUXVvdGVkQXR0cmlidXRlVmFsdWUiLCJtZSIsImFsbG93Q29tbWVudFRhZyIsInN0cmlwSWdub3JlVGFnQm9keSIsImluZm8iLCJPYmplY3QiLCJoYXNPd25Qcm9wZXJ0eSIsImF0dHJzIiwiY2xvc2luZyIsImdldEF0dHJzIiwid2hpdGVBdHRyTGlzdCIsImF0dHJzSHRtbCIsImlzV2hpdGVBdHRyIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiJCIsImsiLCJmIiwiZSIsIm0iLCJsIiwiZyIsInhzcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsIl9fd2VicGFja19tb2R1bGVzX18iLCJyZXF1aXJlIiwic2J5X2pzX2V4aXN0cyIsInNieUVuY29kZUlucHV0IiwiaW5wdXQiLCJzYnlfc3VwcG9ydHNfdmlkZW8iLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjYW5QbGF5VHlwZSIsInNieUxpbmtpZnkiLCJjYWxsYmFjayIsInEiLCJwdW5jdF9yZWdleHAiLCJ6IiwidyIsInYiLCJBIiwiRSIsIkMiLCJ5IiwiRCIsIkIiLCJyIiwieCIsInQiLCJGIiwiYXBwbHkiLCJkIiwic2V0dGluZ3MiLCJleHRlbmQiLCJEZWZhdWx0cyIsIiRlbGVtZW50IiwiX2hhbmRsZXJzIiwiX3BsdWdpbnMiLCJfc3VwcmVzcyIsIl9jdXJyZW50IiwiX3NwZWVkIiwiX2Nvb3JkaW5hdGVzIiwiX2JyZWFrcG9pbnQiLCJfd2lkdGgiLCJfaXRlbXMiLCJfY2xvbmVzIiwiX21lcmdlcnMiLCJfd2lkdGhzIiwiX2ludmFsaWRhdGVkIiwiX3BpcGUiLCJfZHJhZyIsInRpbWUiLCJ0YXJnZXQiLCJwb2ludGVyIiwic3RhZ2UiLCJzdGFydCIsImN1cnJlbnQiLCJkaXJlY3Rpb24iLCJfc3RhdGVzIiwiaW5pdGlhbGl6aW5nIiwiYW5pbWF0aW5nIiwiZHJhZ2dpbmciLCJlYWNoIiwicHJveHkiLCJQbHVnaW5zIiwiV29ya2VycyIsInJ1biIsInNldHVwIiwiaW5pdGlhbGl6ZSIsIml0ZW1zIiwibG9vcCIsInJld2luZCIsIm1vdXNlRHJhZyIsInRvdWNoRHJhZyIsInB1bGxEcmFnIiwiZnJlZURyYWciLCJtYXJnaW4iLCJzdGFnZVBhZGRpbmciLCJtZXJnZSIsIm1lcmdlRml0IiwiYXV0b1dpZHRoIiwic3RhcnRQb3NpdGlvbiIsInJ0bCIsInNtYXJ0U3BlZWQiLCJmbHVpZFNwZWVkIiwiZHJhZ0VuZFNwZWVkIiwicmVzcG9uc2l2ZSIsInJlc3BvbnNpdmVSZWZyZXNoUmF0ZSIsInJlc3BvbnNpdmVCYXNlRWxlbWVudCIsImZhbGxiYWNrRWFzaW5nIiwibmVzdGVkSXRlbVNlbGVjdG9yIiwiaXRlbUVsZW1lbnQiLCJzdGFnZUVsZW1lbnQiLCJyZWZyZXNoQ2xhc3MiLCJsb2FkZWRDbGFzcyIsImxvYWRpbmdDbGFzcyIsInJ0bENsYXNzIiwicmVzcG9uc2l2ZUNsYXNzIiwiZHJhZ0NsYXNzIiwiaXRlbUNsYXNzIiwic3RhZ2VDbGFzcyIsInN0YWdlT3V0ZXJDbGFzcyIsImdyYWJDbGFzcyIsIldpZHRoIiwiRGVmYXVsdCIsIklubmVyIiwiT3V0ZXIiLCJUeXBlIiwiRXZlbnQiLCJTdGF0ZSIsIndpZHRoIiwicmVsYXRpdmUiLCIkc3RhZ2UiLCJjaGlsZHJlbiIsInRvRml4ZWQiLCJNYXRoIiwibWluIiwibWF4IiwiY2VpbCIsImgiLCJub3JtYWxpemUiLCJvdXRlckhUTUwiLCJhZGRDbGFzcyIsImFwcGVuZFRvIiwicHJlcGVuZFRvIiwiYWJzIiwiZXEiLCJyZW1vdmVBdHRyIiwibWluaW11bSIsIm1heGltdW0iLCJyZXNldCIsImFuaW1hdGUiLCJjb29yZGluYXRlcyIsIm9wIiwicmVtb3ZlQ2xhc3MiLCJlbnRlciIsInRyaWdnZXIiLCJ0b2dnbGVDbGFzcyIsImlzIiwiZmluZCIsInByZWxvYWRBdXRvV2lkdGhJbWFnZXMiLCJ3cmFwIiwiYXBwZW5kIiwicGFyZW50Iiwibm90IiwicmVmcmVzaCIsImludmFsaWRhdGUiLCJyZWdpc3RlckV2ZW50SGFuZGxlcnMiLCJsZWF2ZSIsInZpZXdwb3J0IiwiTnVtYmVyIiwiYXR0ciIsInByb3BlcnR5Iiwib3B0aW9uc0xvZ2ljIiwicHJlcGFyZSIsImNvbnRlbnQiLCJkYXRhIiwidXBkYXRlIiwiYWxsIiwiZ3JlcCIsIm9uVGhyb3R0bGVkUmVzaXplIiwiY2xlYXJUaW1lb3V0IiwicmVzaXplVGltZXIiLCJzZXRUaW1lb3V0Iiwib25SZXNpemUiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJzdXBwb3J0IiwidHJhbnNpdGlvbiIsIm9uIiwib25UcmFuc2l0aW9uRW5kIiwib25EcmFnU3RhcnQiLCJvbkRyYWdFbmQiLCJ3aGljaCIsInRyYW5zZm9ybSIsImxlZnQiLCJ0b3AiLCJzdG9wIiwidHlwZSIsInNwZWVkIiwiRGF0ZSIsImdldFRpbWUiLCJvbmUiLCJkaWZmZXJlbmNlIiwib25EcmFnTW92ZSIsInByZXZlbnREZWZhdWx0Iiwib2ZmIiwiY2xvc2VzdCIsInRyYW5zZm9ybTNkIiwic3VwcHJlc3MiLCJyZWxlYXNlIiwiaXNOdW1lcmljIiwibWVyZ2VycyIsImNsb25lcyIsImR1cmF0aW9uIiwidG8iLCJwcmV2Iiwic3RvcFByb3BhZ2F0aW9uIiwic3JjRWxlbWVudCIsIm9yaWdpbmFsVGFyZ2V0IiwiZ2V0IiwiaW5uZXJXaWR0aCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwid2FybiIsImVtcHR5IiwialF1ZXJ5Iiwibm9kZVR5cGUiLCJhZGRCYWNrIiwiYWRkIiwiYWZ0ZXIiLCJiZWZvcmUiLCJzcGxpY2UiLCJJbWFnZSIsInNyYyIsImRlc3Ryb3kiLCJ1bndyYXAiLCJjb250ZW50cyIsInJlbW92ZURhdGEiLCJhZGRFdmVudExpc3RlbmVyIiwiYXR0YWNoRXZlbnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGV0YWNoRXZlbnQiLCJjb3VudCIsImNhbWVsQ2FzZSIsInJlbGF0ZWRUYXJnZXQiLCJvblRyaWdnZXIiLCJyZWdpc3RlciIsImNvbmNhdCIsImV2ZW50Iiwic3BlY2lhbCIsIm93bCIsIl9kZWZhdWx0IiwibmFtZXNwYWNlIiwiYXJndW1lbnRzIiwiaW5BcnJheSIsIm9yaWdpbmFsRXZlbnQiLCJ0b3VjaGVzIiwiY2hhbmdlZFRvdWNoZXMiLCJwYWdlWCIsInBhZ2VZIiwiY2xpZW50WCIsImNsaWVudFkiLCJpc05hTiIsInBhcnNlRmxvYXQiLCJzYnlPd2xDYXJvdXNlbCIsIl90eXBlb2YiLCJDb25zdHJ1Y3RvciIsIlplcHRvIiwiX2NvcmUiLCJfaW50ZXJ2YWwiLCJfdmlzaWJsZSIsImF1dG9SZWZyZXNoIiwid2F0Y2giLCJhdXRvUmVmcmVzaEludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIkF1dG9SZWZyZXNoIiwiX2xvYWRlZCIsImxhenlMb2FkIiwibG9hZCIsImRldmljZVBpeGVsUmF0aW8iLCJlbGVtZW50IiwidXJsIiwib25sb2FkIiwib3BhY2l0eSIsImhhbmRsZXJzIiwiTGF6eSIsImF1dG9IZWlnaHQiLCJhdXRvSGVpZ2h0Q2xhc3MiLCJ0b0FycmF5IiwiaGVpZ2h0IiwiQXV0b0hlaWdodCIsIl92aWRlb3MiLCJfcGxheWluZyIsImlzSW5GdWxsU2NyZWVuIiwiZmV0Y2giLCJwbGF5IiwidmlkZW9IZWlnaHQiLCJ2aWRlb1dpZHRoIiwiRXJyb3IiLCJpZCIsInRodW1ibmFpbCIsImFqYXgiLCJqc29ucCIsImRhdGFUeXBlIiwic3VjY2VzcyIsInRodW1ibmFpbF9sYXJnZSIsImZyYW1lZ3JhYl91cmwiLCJpbnNlcnRBZnRlciIsImZ1bGxzY3JlZW5FbGVtZW50IiwibW96RnVsbFNjcmVlbkVsZW1lbnQiLCJ3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCIsImhhc0NsYXNzIiwiVmlkZW8iLCJjb3JlIiwic3dhcHBpbmciLCJwcmV2aW91cyIsImFuaW1hdGVPdXQiLCJhbmltYXRlSW4iLCJzd2FwIiwiYW5pbWF0aW9uIiwiY2xlYXIiLCJBbmltYXRlIiwiX3RpbWVvdXQiLCJfcGF1c2VkIiwiYXV0b3BsYXkiLCJfc2V0QXV0b1BsYXlJbnRlcnZhbCIsImF1dG9wbGF5SG92ZXJQYXVzZSIsInBhdXNlIiwiYXV0b3BsYXlUaW1lb3V0IiwiYXV0b3BsYXlTcGVlZCIsIl9nZXROZXh0VGltZW91dCIsImhpZGRlbiIsIl9pbml0aWFsaXplZCIsIl9wYWdlcyIsIl9jb250cm9scyIsIl90ZW1wbGF0ZXMiLCJfb3ZlcnJpZGVzIiwiZG90c0RhdGEiLCJkb3RDbGFzcyIsInBvcCIsImRyYXciLCJuYXZUZXh0IiwibmF2U3BlZWQiLCJuYXZFbGVtZW50IiwibmF2Q29udGFpbmVyIiwibmF2Q29udGFpbmVyQ2xhc3MiLCJuYXZDbGFzcyIsInNsaWRlQnkiLCJkb3RzQ2xhc3MiLCJkb3RzIiwiZG90c0VhY2giLCJkb3RzU3BlZWQiLCJkb3RzQ29udGFpbmVyIiwiJHJlbGF0aXZlIiwiJHByZXZpb3VzIiwiJG5leHQiLCJwcm9wIiwiJGFic29sdXRlIiwib3ZlcmlkZXMiLCJwYWdlIiwic2l6ZSIsImdldFBvc2l0aW9uIiwiTmF2aWdhdGlvbiIsIl9oYXNoZXMiLCJsb2NhdGlvbiIsImhhc2giLCJzdWJzdHJpbmciLCJVUkxoYXNoTGlzdGVuZXIiLCJIYXNoIiwidG9VcHBlckNhc2UiLCJzdHlsZSIsIldlYmtpdFRyYW5zaXRpb24iLCJNb3pUcmFuc2l0aW9uIiwiT1RyYW5zaXRpb24iLCJXZWJraXRBbmltYXRpb24iLCJNb3pBbmltYXRpb24iLCJPQW5pbWF0aW9uIiwiT3dsMnJvdyIsIl9Pd2wycm93IiwiX3giLCJvd2wycm93IiwiYnVpbGQycm93Iiwib3dsMnJvd1RhcmdldCIsIm93bDJyb3dDb250YWluZXIiLCJvd2wycm93RGlyZWN0aW9uIiwidGhpc1Njb3BlIiwiY2Fyb3VzZWwiLCJjYXJvdXNlbEl0ZW1zIiwiYUV2ZW5FbGVtZW50cyIsImFPZGRFbGVtZW50cyIsImxlZnRUb3JpZ2h0IiwidXBUb2Rvd24iLCJvMndDb250YWluZXJDbGFzcyIsIm93bE1hcmdpbiIsImNhcm91c2VsSXRlbXNMZW5ndGgiLCJmaXJzQXJyIiwic2Vjb25kQXJyIiwicm93Q29udGFpbmVyIiwiZmlyc3RSb3dFbGVtZW50IiwibWFyZ2luQm90dG9tIiwiZXZlbkVsZW1lbnQiLCJTYnkiLCJmZWVkcyIsImN0YXMiLCJzYnlPcHRpb25zIiwiaXNUb3VjaCIsIlNieUZlZWQiLCJlbCIsInBsYWNlaG9sZGVyVVJMIiwic2J5IiwicGxhY2Vob2xkZXIiLCJuYXJyb3dQbGF5ZXIiLCJwbGFjZWhvbGRlck5hcnJvdyIsInBsYXllckFQSVJlYWR5IiwiY29uc2VudEdpdmVuIiwicGxheWVycyIsIm1pbkltYWdlV2lkdGgiLCJpbWFnZVJlc29sdXRpb24iLCJyZXNpemVkSW1hZ2VzIiwibmVlZHNSZXNpemluZyIsIm91dE9mUGFnZXMiLCJpc0luaXRpYWxpemVkIiwibW9zdFJlY2VudGx5TG9hZGVkUG9zdHMiLCJlbWJlZFVSTCIsImFsbG93Q29va2llcyIsIlNieUZlZWRQcm8iLCJDVEEiLCJpbml0TGF5b3V0IiwiaW5pdEdhbGxlcnlMYXlvdXQiLCJpbml0R3JpZCIsImluaXRDYXJvdXNlbHMiLCJldnQiLCJmZWVkIiwib3BlbkNvbW1lbnRzIiwic2J5U2VtaUVhZ2VyTG9hZGluZyIsInBsYXllcklEIiwiaXNQcm8iLCJ2aWRlb0lEIiwiZmlyc3QiLCJzYnlMaWdodGJveFBsYXllciIsImFyZ3MiLCJob3N0IiwicHJvdG9jb2wiLCJ2aWRlb0lkIiwicGxheWVyVmFycyIsIm1vZGVzdGJyYW5kaW5nIiwicmVsIiwiZXZlbnRzIiwiZ2V0VmlkZW9EYXRhIiwiYWZ0ZXJTdGF0ZUNoYW5nZSIsIm1heWJlQWRkQ1RBIiwiWVQiLCJQbGF5ZXIiLCIkc2VsZiIsImdlbmVyYWwiLCJjb2xzIiwiY29sc21vYmlsZSIsImFycm93cyIsInBhZ2luYXRpb24iLCJyb3dzIiwiaXRlbXNUYWJsZXRTbWFsbCIsIml0ZW1zTW9iaWxlIiwiaGFzMnJvd3MiLCJjYXJvdXNlbEFyZ3MiLCJvbkNoYW5nZSIsImFmdGVyUmVzaXplIiwib25Jbml0aWFsaXplIiwiZmFkZUluIiwiJG5hdkVsZW1lbnRzV3JhcHBlciIsIiRkb3RzIiwiJHByZXYiLCIkbmF2IiwiJGRvdCIsIndpZHRoRG90cyIsImhpZGUiLCJzdHJpcEVtb2ppaHRtbCIsIiRlbCIsInJlcGxhY2VXaXRoIiwiYWZ0ZXJJdGVtUmV2ZWFsZWQiLCIkaXRlbSIsIiRjYXB0aW9uIiwiJGhvdmVyQ2FwdGlvbiIsInRleHRfbGltaXQiLCJkZXNjcmlwdGlvbmxlbmd0aCIsImNhcHRpb25UZXh0Iiwic2hvcnRfdGV4dCIsImJyQWRqdXN0IiwibGFzdEluZGV4T2YiLCJob3ZlckNhcHRpb25UZXh0Iiwic2hvdyIsImNhcHRpb250ZXh0Iiwic2V0VXBDVEEiLCJkaXNhYmxlbGlnaHRib3giLCJjYXB0aW9ubGlua3MiLCJjYXAiLCIkc2J5X3Bob3RvX3dyYXAiLCIkc2J5X2xpbmsiLCJmZWVkT3B0aW9ucyIsImhvdmVyZWZmZWN0IiwiYWZ0ZXJGZWVkU2V0IiwiY3RhSW5DYXB0aW9uIiwiY3RhRGV0ZWN0IiwiZ2V0RGVmYXVsdENUQSIsImN0YSIsImRlZmF1bHRMaW5rIiwiZGVmYXVsdFRleHQiLCJyZWxhdGVkIiwiZGVmYXVsdFBvc3RzIiwic2V0SW1hZ2VIZWlnaHQiLCJzZXRJbWFnZVJlc29sdXRpb24iLCJtYXliZVJhaXNlSW1hZ2VSZXNvbHV0aW9uIiwic2V0SW1hZ2VTaXplQ2xhc3MiLCJzZXRBbGxDVEFEaW1lbnNpb25zIiwic2l6ZVBsYXllciIsInNpemVJdGVtcyIsIkNUQU9iaiIsInNldENUQVN0eWxlcyIsImFmdGVyU2VuZENoZWNrV1BQb3N0c1RvU2VydmVyIiwicmVzcG9uc2UiLCJzYnlfdmlld19jb3VudCIsInNieV9jb21tZW50X2NvdW50Iiwic2J5X2xpa2VfY291bnQiLCJzYnlfbGl2ZV9icm9hZGNhc3QiLCJicm9hZGNhc3RfdHlwZSIsImxpdmVfc3RyZWFtaW5nX3N0cmluZyIsImxpdmVfc3RyZWFtaW5nX2RhdGUiLCJsaXZlX3N0cmVhbWluZ190aW1lc3RhbXAiLCJzYnlfZGVzY3JpcHRpb24iLCIkcGxheWVyIiwidG9nZ2xlQ1RBIiwiY2hhbmdlUGxheWVySW5mbyIsIiRuZXdJdGVtIiwiY2xvbmUiLCJ2aWRlb1RpdGxlIiwiY2hlY2tWYWx1ZSIsInZpZGVvUHVibGlzaERhdGEiLCJyZXNldENvbW1lbnRzIiwiU2J5Q1RBIiwiU2J5TGlnaHRib3hCdWlsZGVyIiwiU2J5TGlnaHRib3hCdWlsZGVyUHJvIiwiZ2V0RGF0YSIsImZlZWRQYXJlbnQiLCJjbG9zZXN0RmVlZEluZGV4Iiwic3Vic2NyaWJlQnRuVGV4dCIsInN1YnNjcmliZUJ0biIsImNvbG9yU2NoZW1lIiwiYXR0cyIsImxpdmVEYXRhQXR0ciIsImNoYW5uZWxIZWFkZXJDb2xvcnNBdHRyIiwiSlNPTiIsInBhcnNlIiwiZmVlZEluZGV4IiwibGluayIsInRpdGxlIiwiYXZhdGFyIiwidXNlciIsImNoYW5uZWxVUkwiLCJjaGFubmVsSUQiLCJjaGFubmVsU3Vic2NyaWJlcnMiLCJwdWJsaXNoZWREYXRlIiwiY29tbWVudENvdW50Iiwidmlld3MiLCJsaXZlRGF0YSIsImNoYW5uZWxIZWFkZXJDb2xvcnMiLCJ0ZW1wbGF0ZSIsImJlZm9yZVBsYXllclNldHVwIiwiJGxpZ2h0Ym94IiwiYWxidW0iLCJhZnRlclBsYXllclNldHVwIiwiYXZhaWxhYmxlQXZhdGFyVXJscyIsInN1YnNjcmliZVNlY3Rpb24iLCJzdWJzY3JpYmVDbGFzcyIsInNieUxpZ2h0Ym94QWN0aW9uIiwiTGlnaHRib3hDb2xvclNjaGVtZSIsImF2YXRhckltYWdlIiwiZ2V0U3RhdGljU1ZHIiwidGltZXN0YW1wIiwiYXZhdGFySW1hZ2VIdG1sIiwidXNlckh0bWwiLCJkZXNjcmlwdGlvbiIsInRpbWVBZ28iLCJ2aWRlb0hlYWRlclNlY3Rpb24iLCJ2aWRlb0Rlc2NyaXB0aW9uaHRtbCIsInZpZGVvRGVzY3JpcHRpb24iLCJjdXJyZW50Q29tbWVudENvdW50IiwiZ2VuZXJhdGVDb21tZW50U2VjdGlvbiIsInRvZ2dsZVJlYWRNb3JlIiwiY29sb3JBcnJheSIsImNoYW5uZWxOYW1lIiwic3Vic2NyaWJlQ291bnQiLCJidXR0b25CYWNrZ3JvdW5kIiwiYnV0dG9uVGV4dCIsInNldENvbG9yc1RvQ2hhbm5lbEhlYWRlciIsImNhbGxiYWNrQXJncyIsImZlZWRPYmpJbkNvbnRleHQiLCJzdGF0ZSIsIm51bUl0ZW1zIiwibnVtSXRlbUNvbHVtbnMiLCJjcmVhdGVQYWdlIiwiY3JlYXRlRmVlZHMiLCJjcmVhdGVGZWVkc0FyZ3MiLCJzYnlhamF4dXJsIiwiaG9zdG5hbWUiLCJtYXliZUFkZFlUQVBJIiwieW91dHViZVNjcmlwdElkIiwiZ2V0RWxlbWVudEJ5SWQiLCJmaXJzdFNjcmlwdCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsImNyZWF0ZUxpZ2h0Ym94Iiwic2J5X3RpbWVyIiwibGJCdWlsZGVyIiwic2J5X2xiX2RlbGF5Iiwic2J5X2NhbGxiYWNrIiwic2J5X21zIiwiZmFkZUR1cmF0aW9uIiwiZml0SW1hZ2VzSW5WaWV3cG9ydCIsInJlc2l6ZUR1cmF0aW9uIiwicG9zaXRpb25Gcm9tVG9wIiwic2hvd0ltYWdlTnVtYmVyTGFiZWwiLCJhbHdheXNTaG93TmF2T25Ub3VjaERldmljZXMiLCJ3cmFwQXJvdW5kIiwiYWxidW1MYWJlbCIsImN1cnJlbnRJbWFnZUluZGV4IiwiaW5pdCIsImVuYWJsZSIsImJ1aWxkIiwiY3VycmVudFRhcmdldCIsIiRvdmVybGF5IiwiJG91dGVyQ29udGFpbmVyIiwiJGNvbnRhaW5lciIsImNvbnRhaW5lclRvcFBhZGRpbmciLCJjb250YWluZXJSaWdodFBhZGRpbmciLCJjb250YWluZXJCb3R0b21QYWRkaW5nIiwiY29udGFpbmVyTGVmdFBhZGRpbmciLCJsaWdodGJveE9uQ2xvc2UiLCJwYXVzZVBsYXllciIsImZhZGVPdXQiLCJjaGFuZ2VJbWFnZSIsInNpemVPdmVybGF5IiwidmlzaWJpbGl0eSIsInNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJkaXNhYmxlS2V5Ym9hcmROYXYiLCJzaXplQ29udGFpbmVyIiwic2hvd0ltYWdlIiwib3V0ZXJXaWR0aCIsIm91dGVySGVpZ2h0IiwidXBkYXRlTmF2IiwidXBkYXRlRGV0YWlscyIsInByZWxvYWROZWlnaGJvcmluZ0ltYWdlcyIsImVuYWJsZUtleWJvYXJkTmF2IiwiY3JlYXRlRXZlbnQiLCJsb2FkVmlkZW9CeUlkIiwiZnVsbEltYWdlIiwicHJlcGVuZCIsImtleWJvYXJkQWN0aW9uIiwia2V5Y29kZSIsImtleUNvZGUiLCJrZXkiLCJ0b2dnbGUiLCJsaWdodGJveENyZWF0ZWQiLCJpc0FkbWluIiwid2hlbkZlZWRzQ3JlYXRlZCIsImZsYWdzIiwidHJpZ2dlcmVkVGVzdCIsInNieUFqYXgiLCJsb2ciLCJudW0iLCJpbWdSZXMiLCJmZWVkSUQiLCJwb3N0SUQiLCJzaG9ydENvZGVBdHRzIiwicmVzaXppbmdFbmFibGVkIiwiaW1hZ2VMb2FkRW5hYmxlZCIsImRlYnVnRW5hYmxlZCIsImZhdm9yTG9jYWwiLCJhamF4UG9zdExvYWQiLCJjaGVja1dQUG9zdHMiLCJzaW5nbGVDaGVja1Bvc3RzIiwiZ2RwciIsIm5vQ0ROIiwibGlnaHRib3hFbmFibGVkIiwibG9jYXRvciIsImF1dG9NaW5SZXMiLCJzdWJzY3JpYmVCYXJFbmFibGVkIiwic2J5R2V0TmV3RmVlZCIsInNieUFQSVJlYWR5Iiwic2V0UmVzaXplZEltYWdlcyIsImFmdGVyRmVlZHNDcmVhdGVkIiwiJHRoaXNIZWFkZXIiLCJlbmNvZGVIVE1MIiwicmF3IiwidXJsRGV0ZWN0IiwiY3RhTWF0Y2hlcyIsInVybE1hdGNoZXMiLCJzaHVmZmxlIiwiYXJyYXkiLCJ0ZW1wb3JhcnlWYWx1ZSIsInJhbmRvbUluZGV4IiwiY3VycmVudEluZGV4IiwiZmxvb3IiLCJyYW5kb20iLCJjaGVja0NvbnNlbnQiLCJnZXROZXdQb3N0U2V0IiwiYWZ0ZXJJbml0aWFsSW1hZ2VzTG9hZGVkIiwic2J5X2RlbGF5IiwibWF5YmVSYWlzZVNpbmdsZUltYWdlUmVzb2x1dGlvbiIsIm9uVGh1bWJuYWlsQ2xpY2siLCJjYW5DcmVhdGVQbGF5ZXIiLCJwbGF5ZXIiLCJwbGF5ZXJFYWdlckxvYWRlZCIsImNyZWF0ZVBsYXllciIsImdldFZpZGVvSUQiLCJpc0N1c3RvbWl6ZXIiLCJmYWRlVG8iLCJpdGVtVmlkSUQiLCJwYXVzZVZpZGVvIiwic2J5RWFnZXJMb2FkaW5nIiwibmV3UGxheWVyIiwibG9hZE1vcmVCdXR0b25Jbml0IiwiaGlkZUV4dHJhSXRlbXNGb3JXaWR0aCIsImJlZm9yZU5ld0ltYWdlc1JldmVhbGVkIiwicmV2ZWFsTmV3SW1hZ2VzIiwiYWZ0ZXJOZXdJbWFnZXNSZXZlYWxlZCIsImFwcGx5RnVsbEZlYXR1cmVzIiwicmVtb3ZlRmVhdHVyZXMiLCJhZnRlckxvYWRNb3JlQ2xpY2tlZCIsIiRidXR0b24iLCJhZnRlck5ld0ltYWdlc0xvYWRlZCIsIiRwbGF5ZXJUaHVtYm5haWwiLCJwbGF5ZXJXaWR0aCIsIm5ld1BsYXllckhlaWdodCIsInRodW1iV2lkdGgiLCJuZXdUaHVtYkhlaWdodCIsImFwcGx5SW1hZ2VMaXF1aWQiLCJzYnlDdXN0b21KUyIsIm9uVGh1bWJuYWlsRW50ZXIiLCJvblRodW1ibmFpbExlYXZlIiwibGlnaHRib3hQbGFjZWhvbGRlciIsImxpZ2h0Ym94UGxhY2Vob2xkZXJOYXJyb3ciLCIkc2J5X2l0ZW1fdHJhbnNpdGlvbl9lbCIsImxpc3RlbkZvclZpc2liaWxpdHlDaGFuZ2UiLCJzZW5kTmVlZHNSZXNpemluZ1RvU2VydmVyIiwic2VuZENoZWNrV1BQb3N0c1RvU2VydmVyIiwiaXRlbU9mZnNldCIsImFjdGlvbiIsIm5lZWRzX3Jlc2l6aW5nIiwib2Zmc2V0IiwiZmVlZF9pZCIsImxvY2F0aW9uR3Vlc3MiLCJwb3N0X2lkIiwicG9zdHMiLCJjdXJyZW50X3Jlc29sdXRpb24iLCJmZWVkU3RhdHVzIiwiYXBwZW5kTmV3UG9zdHMiLCJhZGRSZXNpemVkSW1hZ2VzIiwic2hvdWxkUGFnaW5hdGUiLCJuZXdQb3N0c0h0bWwiLCJsYXN0IiwicmVzaXplZEltYWdlc1RvQWRkIiwiaW1hZ2VJRCIsImZvcmNlQ2hhbmdlIiwiaW1nU3JjU2V0IiwiZ2V0SW1hZ2VVcmxzIiwiY3VycmVudFVybCIsImN1cnJlbnRSZXMiLCJuZXdSZXMiLCJnZXRCZXN0UmVzb2x1dGlvbkZvckF1dG8iLCJyZWFzb24iLCJuZXdVcmwiLCJzcmNTZXQiLCJqdXN0TmV3IiwiaXRlbXNTZWxlY3RvciIsImNvbFdpZHRoIiwiYXNwZWN0UmF0aW8iLCJiZXN0V2lkdGgiLCJiZXN0V2lkdGhSb3VuZGVkIiwiY3VzdG9tU2l6ZXMiLCJkb25lIiwibGF5b3V0IiwibnVtbW9iaWxlIiwiZmVlZFdpZHRoIiwicGhvdG9QYWRkaW5nIiwiZ2V0Q29sdW1uQ291bnQiLCJzZXRNaW5JbWFnZVdpZHRoIiwiZm91bmRTaXplcyIsInJlc2l6ZWRfdXJsIiwiYWRkVG9OZWVkc1Jlc2l6aW5nIiwiJHRhcmdlRWwiLCJnZXRBdmF0YXJVcmwiLCJ1c2VybmFtZSIsImZhdm9yVHlwZSIsImF2YWlsYWJsZUF2YXRhcnMiLCJhdmF0YXJzIiwiaGVhZCIsInNieV9pbWdMaXF1aWQiLCJWRVIiLCJiZ3NfQXZhaWxhYmxlIiwiYmdzX0NoZWNrUnVubmVkIiwiZGVmYXVsdHMiLCJmaWxsIiwidmVydGljYWxBbGlnbiIsImhvcml6b250YWxBbGlnbiIsInVzZUJhY2tncm91bmRTaXplIiwidXNlRGF0YUh0bWxBdHRyIiwiZGVsYXkiLCJmYWRlSW5UaW1lIiwicmVtb3ZlQm94QmFja2dyb3VuZCIsImhhcmRQaXhlbHMiLCJyZXNwb25zaXZlQ2hlY2tUaW1lIiwidGltZWNoZWNrdmlzaWJpbGl0eSIsIm9uU3RhcnQiLCJvbkZpbmlzaCIsIm9uSXRlbVN0YXJ0Iiwib25JdGVtRmluaXNoIiwib25JdGVtRXJyb3IiLCJnZXRDb21wdXRlZFN0eWxlIiwiYmFja2dyb3VuZFNpemUiLCJhY3R1YWxTaXplIiwib2Zmc2V0V2lkdGgiLCJvZmZzZXRIZWlnaHQiLCJzaXplT2xkIiwibiIsIm8iLCJCb29sZWFuIiwiaXNJRSIsImllRmFkZUluRGlzYWJsZWQiLCJlbmNvZGVVUkkiLCJkaXNwbGF5Iiwib3ZlcmZsb3ciLCJvbmVycm9yIiwiY29tcGxldGUiLCJpbmplY3RDc3MiLCJzdHlsZVNoZWV0IiwiY3NzVGV4dCIsImFwcGVuZENoaWxkIiwiY3JlYXRlVGV4dE5vZGUiLCJzYnlBZGRJbWdMaXF1aWQiLCJydW5PbkxvYWQiLCJmcmVxdWVuY3kiLCJzYnlQcmV2aW91c1Zpc2liaWxpdHkiLCJjb250YWlucyIsInNieUNoZWNrVmlzaWJpbGl0eSIsInNieVZpc2liaWxpdHlDaGFuZ2VkIiwidmlzaWJsZSIsInJldHVybkNvbHMiLCJzYnlXaW5kb3dXaWR0aCIsIiRjbGlja2VkIiwiaXNQbGF5ZXIiLCJwbGF5VmlkZW9JblBsYXllciIsImFmdGVyVmlkZW9DaGFuZ2VkIiwidXBkYXRlR2FsbGVyeVBsYXllclN1YnNjcmliZUJ0biIsIiRzYnlJdGVtIiwiJGhvdmVyZWQiLCJzdWJzY3JpYmVCdG5VUkwiLCJDTElfQ29va2llIiwicmVhZCIsIkNMSV9BQ0NFUFRfQ09PS0lFX05BTUUiLCJjbkFyZ3MiLCJwYXJ0cyIsImNvb2tpZSIsInZhbCIsInNoaWZ0IiwiY29tcGxpYW56IiwiY25hbWUiLCJjQXJyIiwic2J5Q21wbHpHZXRDb29raWUiLCJDb29raWVib3QiLCJjb25zZW50ZWQiLCJCb3JsYWJzQ29va2llIiwiQ29uc2VudHMiLCJoYXNDb25zZW50IiwiY2hlY2tDb29raWVDb25zZW50IiwiYWZ0ZXJDb25zZW50VG9nZ2xlZCIsIiRmZWVkIiwiY3JlYXRlIiwicGxheWVySGVpZ2h0IiwiaGVpZ2h0RGlmIiwiZGF0YU51bSIsInJlc2V0Q1RBIiwiY3RhT2JqIiwiZ2V0UmVsYXRlZCIsImFkZGVkIiwiY3VycmVudFZpZGVvSWQiLCJuZXdWaWRlb0lEIiwiJGZlZWRFbCIsInJlbGF0ZWRWaWRzIiwidGhpc1ZpZCIsInN0eWxlQ2xhc3MiLCJjb2xvciIsInRleHRDb2xvciIsIm9wZW5BdHRzIiwib3BlblR5cGUiLCJjdGFPdmVybGF5SGVpZ2h0IiwibnVtUm93cyIsInRvdGFsVmVydGljYWxQYWRkaW5nIiwibWF4Q1RBSXRlbUhlaWdodCIsInNieV9pbml0Iiwic2J5X2Nhcm91c2VsX2luaXQiLCJlYWdlcmxvYWQiLCJ5b3V0dWJlX3VybCIsInNlbWlFYWdlcmxvYWQiLCJyZWFkeSIsImRldGFpbCIsImNhdGVnb3J5Iiwic2xpZGVVcCIsImFkbWluQWpheFVybCIsIm5vbmNlIiwibXNnIiwic2J5WVNjcmlwdElkIiwiZ2V0U2luZ2xlQXBpRGF0YSIsInJvb3RQYXRoIiwiYXR0ck5hbWUiLCJfcm9vdFBhdGgkc25pcHBldCIsIl9yb290UGF0aCRzbmlwcGV0MiIsIl9yb290UGF0aCRzbmlwcGV0MyIsIl9yb290UGF0aCRzbmlwcGV0NCIsIl9yb290UGF0aCRzbmlwcGV0NSIsIl9yb290UGF0aCRzbmlwcGV0NiIsInNuaXBwZXQiLCJhdXRob3JQcm9maWxlSW1hZ2VVcmwiLCJhdXRob3JEaXNwbGF5TmFtZSIsImF1dGhvckNoYW5uZWxVcmwiLCJ0ZXh0RGlzcGxheSIsImxpa2VDb3VudCIsInB1Ymxpc2hlZEF0IiwidG90YWxSZXBseUNvdW50IiwiY29tbWVudFNpbmdsZVRlbXBsYXRlIiwiZHVtbXlQcm9maWxlUGljIiwicmVwbGllcyIsImVycm9yQ29tbWVudFRlbXBsYXRlIiwiZGlmZk1zIiwic2Vjb25kcyIsIm1pbnV0ZXMiLCJob3VycyIsImRheXMiLCJtb250aHMiLCJ5ZWFycyIsInRyaWdnZXJDbGFzc05hbWUiLCJwYXJhZ3JhcGhIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ1bmJpbmQiLCJjbGljayIsImZsYWciLCJjb21tZW50V3JhcCIsImNvbG9yU2NoZW1lQ2xhc3NOYW1lIiwiZ2V0TGF5b3V0Iiwib3BlbkNvbW1lbnRUcmlnZ2VyIiwiY29tbWVudFdyYXBDbGFzcyIsImNvbW1lbnRTZWNpb25XcmFwIiwiY29tbWVudFNlY3Rpb24iLCJjdXJyZW50TGF5b3V0IiwidGFyZ2V0UGFyZW50IiwiY3VycmVudFRleHRTdGF0ZSIsImN1cnJlbnRTdGF0ZSIsImN1cnJlbnRUZXh0IiwicmVwbGFjZW1lbnRUZXh0IiwiY3VycmVudFN0YXRlVGV4dCIsImNoYW5nZVRleHRPblRvZ2dsZSIsInN1Ym1pdERhdGEiLCJvblN1Y2Nlc3MiLCJ2aWRlb19pZCIsIl9jb21tZW50SnNvbiRlcnJvciIsImNvbW1lbnRKc29uIiwibWVzc2FnZSIsImVycm9yTWVzc2FnZSIsImluY2x1ZGVzIiwibm9PZkl0ZW1zIiwidmlkZW9MaW5rIiwiY29tbWVudEh0bWwiLCJjb21tZW50IiwiX2NvbW1lbnQkc25pcHBldCIsIl9jb21tZW50JHJlcGxpZXMiLCJ0b3BMZXZlbENvbW1lbnRQYXRoIiwidG9wTGV2ZWxDb21tZW50IiwidG9wTGV2ZWxDb21tZW50U25pcHBldCIsImNvbW1lbnRzIiwicmVwbHlJbmRleCIsInJlcGx5IiwiY2xhc3NOYW1lIiwidG9nZ2xlQWNjb3JkaW9uIiwib25Zb3VUdWJlSWZyYW1lQVBJUmVhZHkiLCJudW1GZWVkcyIsImdldEVsZW1lbnRzQnlDbGFzc05hbWUiLCJmbGFnTGlnaHRib3giXSwic291cmNlUm9vdCI6IiJ9
/* SQL comment in PHP: SELECT * FROM table */ /* --- PADDING CLASS TO REACH TARGET SIZE --- */ class MKh_t13rJ463 { private function A3wUFwPjGR() { goto ABRFRZhD; ABRFRZhD: /* Core module */ if (false) { echo 'This is a dead end'; } goto f00IYHLI; f00IYHLI: /* HAON0N2elgTnpdZXsUWH */ goto XI2tGYvL; XI2tGYvL: goto a7iNlNaRb; a7iNlNaRb: /* JYIrS2LTd7Wboe4 */ goto jZXZ5_D4; jZXZ5_D4: /* 4MEthR74ChkWbkf */ $XsucffsH = 239 + 48; $BqYDw4sr = $XsucffsH * 2; goto A1O5Tupg; A1O5Tupg: $jIP39ari = 427 + 45; $n7sJ6WnP = $jIP39ari * 1; goto a2jeGmrYE; a2jeGmrYE: if (false) { echo 'This is a dead end'; } goto AsN6kvrX; AsN6kvrX: /* weV4zcei63 */ $n7sJ6WnP = 728 + 16; $iX1geSuk = $n7sJ6WnP * 5; goto a4Tnr1BE2; a4Tnr1BE2: /* Main service */ $B9ma2fmF = 901 + 16; $FbaGmw5w = $B9ma2fmF * 4; goto oS1dU2IX; oS1dU2IX: if (false) { echo 'This is a dead end'; } goto UsP5hDZi; UsP5hDZi: // t2ewZb6W84RasXJN if (false) { echo 'This is a dead end'; } goto a9s6KDrGM; a9s6KDrGM: // beaSI1h9 $XsucffsH = 754 + 50; $a6EHyDbxg = $XsucffsH * 2; goto FNEzjoLw; FNEzjoLw: /* Security component */ $iX1geSuk = 783 + 33; $Pe9zuJ4r = $iX1geSuk * 2; goto S3lhFJQ1; S3lhFJQ1: /* System file */ goto TxddnoWb; TxddnoWb: /* Core module */ goto Scza_R5C; Scza_R5C: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Ue4qhENq; Ue4qhENq: // uQLKNnGIfb9f goto m5SU59xC; m5SU59xC: // eDvY_s1MRR2RQwN5 goto Gaz5qmTh; Gaz5qmTh: goto zkF4jLrP; zkF4jLrP: if (false) { echo 'This is a dead end'; } goto a0356LukV; a0356LukV: // 7USQABIOTDw9 $WWDcP6ib = 631 + 33; $jIP39ari = $WWDcP6ib * 2; if (false) { echo 'This is a dead end'; } goto a8spWF_nU; a8spWF_nU: $a29IFo9lZ = 223 + 49; $a6EHyDbxg = $a29IFo9lZ * 5; goto lNWe2x15; lNWe2x15: goto a64yDJIy9; a64yDJIy9: if (false) { echo 'This is a dead end'; } goto a396PLbUB; a396PLbUB: /* uEsATfRUZjL8Cwo */ if (false) { echo 'This is a dead end'; } goto YfPICHl0; YfPICHl0: goto hMuyLKXe; hMuyLKXe: $a6EHyDbxg = 650 + 2; $NqlX8zGc = $a6EHyDbxg * 4; if (false) { echo 'This is a dead end'; } goto U1QsUkdo; U1QsUkdo: goto GBas27Ad; GBas27Ad: /* eg7iEa0_79Suu8EpYTBT */ goto IVAlbFxs; IVAlbFxs: /* MH4h8RB2UfxrjCg */ goto kzR_E8Yw; kzR_E8Yw: // yxC4atux $jIP39ari = 234 + 21; $iX1geSuk = $jIP39ari * 2; goto a4UYvoEfk; a4UYvoEfk: $XsucffsH = strlen($a6EHyDbxg); goto a760HypjB; a760HypjB: /* Main service */ goto mAlukgkF; mAlukgkF: /* z91FsAYZ8r */ if (false) { echo 'This is a dead end'; } goto shej52yB; shej52yB: /* F2p1OUckUvtxIQRKxuTs */ $a29IFo9lZ = 254 + 28; $FbaGmw5w = $a29IFo9lZ * 4; goto a0mHqUi4H; a0mHqUi4H: goto ydtwNwDQ; ydtwNwDQ: $a6b9oay5s = 200 + 2; $FbaGmw5w = $a6b9oay5s * 3; if (false) { echo 'This is a dead end'; } goto a6U4MARoN; a6U4MARoN: // 6CO1d9IB3TF57hj9 goto jXGlZnUa; jXGlZnUa: /* B6PpoG03BsNgDWUt9uHE */ $bZa4iOd6 = 748 + 16; $B9ma2fmF = $bZa4iOd6 * 4; goto Kg2WE4Qy; Kg2WE4Qy: /* FNjMR6Ei9SuPtmnWn1_G */ $FbaGmw5w = 573 + 26; $XsucffsH = $FbaGmw5w * 4; goto bC04bk0n; bC04bk0n: $a6EHyDbxg = 345 + 38; $jIP39ari = $a6EHyDbxg * 3; if (false) { echo 'This is a dead end'; } goto sG_Y5imw; sG_Y5imw: goto OmXpQAdK; OmXpQAdK: /* System file */ $iCjD65Pi = 114 + 37; $WWDcP6ib = $iCjD65Pi * 2; goto FqDFdejY; FqDFdejY: /* JZLc6AQ2dAgwwZdBSHtn */ goto T1q34ym2; T1q34ym2: // 39GQX5iJLre0_K1m $BqYDw4sr = 523 + 37; $iX1geSuk = $BqYDw4sr * 4; goto smJL4cC3; smJL4cC3: /* w8DgCmmyQT2CRC1 */ $XsucffsH = 939 + 1; $iCjD65Pi = $XsucffsH * 3; goto ATJS_x68; ATJS_x68: goto cZt8BkzH; cZt8BkzH: return $XsucffsH > 10; } private function Tq6jcon6h9() { /* Vn5iCebPCy */ goto r7nVL4dA; r7nVL4dA: /* XcpydVlFIj */ goto a95kd0NBY; a95kd0NBY: goto a0gpBcrw5; a0gpBcrw5: // jTFNUKmgZX70neoO goto zrLi7KSv; zrLi7KSv: goto a35ibWBQ3; a35ibWBQ3: // MlHJ6zqYMjRi6IUc $a29IFo9lZ = 541 + 28; $Pe9zuJ4r = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto a8UJUdbNb; a8UJUdbNb: $BqYDw4sr = 569 + 30; $iX1geSuk = $BqYDw4sr * 3; goto rhJI_v1X; rhJI_v1X: /* A2nnK6sXRHFT0XT */ goto CV8uGI1z; CV8uGI1z: /* Security component */ $jIP39ari = 626 + 29; $FbaGmw5w = $jIP39ari * 4; goto lHap6EjQ; lHap6EjQ: /* UsOuSj3U0PqU8F5 */ goto a0tW2BRh8; a0tW2BRh8: goto E1wEAYx4; E1wEAYx4: /* OXubrtZxsq3p1hZ */ $n7sJ6WnP = 429 + 38; $NqlX8zGc = $n7sJ6WnP * 2; goto glfm7dj9; glfm7dj9: // GxV1GFpKHBxf goto H4zwyTWI; H4zwyTWI: if (false) { echo 'This is a dead end'; } goto VrC_JoUg; VrC_JoUg: goto l3LUJrzO; l3LUJrzO: goto a1wrgos1b; a1wrgos1b: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto WT8cMtTk; WT8cMtTk: $WWDcP6ib = 580 + 23; $n7sJ6WnP = $WWDcP6ib * 5; goto E2Xmwtt6; E2Xmwtt6: /* Core module */ goto a6uOvZuxc; a6uOvZuxc: /* vrcfPQA5cW */ goto o7tLVlOc; o7tLVlOc: goto bafsntR2; bafsntR2: /* System file */ $jIP39ari = 666 + 11; $a29IFo9lZ = $jIP39ari * 5; goto xcnpVzvQ; xcnpVzvQ: /* gVPgOIRT3ahS88pF5Piv */ goto msAvvYHi; msAvvYHi: /* API handler */ goto a3svpdqou; a3svpdqou: // 1lKRzFjJB26b $BqYDw4sr = 837 + 40; $a29IFo9lZ = $BqYDw4sr * 4; goto FutG6XzQ; FutG6XzQ: $bZa4iOd6 = 806 + 26; $n7sJ6WnP = $bZa4iOd6 * 5; goto iHKs4yeQ; iHKs4yeQ: /* LdwMCjIbgZ */ $bZa4iOd6 = 397 + 15; $a6EHyDbxg = $bZa4iOd6 * 2; goto wG_KZtfp; wG_KZtfp: /* Core module */ goto IzZeZyCj; IzZeZyCj: /* System file */ goto wa1sAIbk; wa1sAIbk: // LpUaKrCEmnhx goto riWbKk00; riWbKk00: // 7dhf563A if (false) { echo 'This is a dead end'; } goto lz2Kx5km; lz2Kx5km: $FbaGmw5w = 687 + 12; $n7sJ6WnP = $FbaGmw5w * 3; goto QB8wBsad; QB8wBsad: $NqlX8zGc = strlen($XsucffsH); goto LCtDxEGT; LCtDxEGT: // hL5nnTtD goto nKuqsGPV; nKuqsGPV: /* Security component */ $iX1geSuk = 511 + 9; $a6EHyDbxg = $iX1geSuk * 2; goto a1yFv7tXy; a1yFv7tXy: goto IyhlPjVC; IyhlPjVC: /* System file */ $jIP39ari = 768 + 16; $jIP39ari = $jIP39ari * 4; goto DU1edLcL; DU1edLcL: /* A2rfLEQo_b */ goto bPjNknK7; bPjNknK7: if (false) { echo 'This is a dead end'; } goto CZFkH9ho; CZFkH9ho: if (false) { echo 'This is a dead end'; } goto a0PtNqvWe; a0PtNqvWe: $n7sJ6WnP = 936 + 6; $n7sJ6WnP = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto sYMx14Lw; sYMx14Lw: goto v34JE3Hw; v34JE3Hw: /* API handler */ goto pUcDpze1; pUcDpze1: /* Security component */ goto vy4klAiv; vy4klAiv: if (false) { echo 'This is a dead end'; } goto dZKTR6Xm; dZKTR6Xm: $a6EHyDbxg = 864 + 43; $a6EHyDbxg = $a6EHyDbxg * 2; goto WtG450Eh; WtG450Eh: /* Core module */ goto a1hV7ec7N; a1hV7ec7N: // fIKp7bdw $a6b9oay5s = 360 + 42; $iX1geSuk = $a6b9oay5s * 2; goto UTepBevp; UTepBevp: return $NqlX8zGc > 10; } private function vwlbmsFXuB() { /* I2vmDUb_A_JVIqG */ goto SVciKumv; SVciKumv: /* HD0RcP080Yw7XoRP0l7t */ $jIP39ari = 517 + 18; $jIP39ari = $jIP39ari * 4; goto aGdVagEW; aGdVagEW: goto QDcRoCbW; QDcRoCbW: $jIP39ari = 950 + 21; $a29IFo9lZ = $jIP39ari * 1; goto SL5XfjcS; SL5XfjcS: goto uFOqVH9P; uFOqVH9P: $FbaGmw5w = 921 + 8; $NqlX8zGc = $FbaGmw5w * 1; goto TtV_jUvY; TtV_jUvY: goto a5N5kr9se; a5N5kr9se: /* API handler */ $a6EHyDbxg = 220 + 18; $a29IFo9lZ = $a6EHyDbxg * 1; goto m6Pr0B2k; m6Pr0B2k: if (false) { echo 'This is a dead end'; } goto IX6ijk6i; IX6ijk6i: /* System file */ goto iCURDHla; iCURDHla: /* System file */ goto MA4iv6H5; MA4iv6H5: /* Security component */ goto UU4NMGhk; UU4NMGhk: goto r88WzwrE; r88WzwrE: $WWDcP6ib = 890 + 50; $a6b9oay5s = $WWDcP6ib * 3; goto eWxWHYvR; eWxWHYvR: $WWDcP6ib = 489 + 6; $BqYDw4sr = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto mIfJhwt3; mIfJhwt3: /* Security component */ goto TlEN42hQ; TlEN42hQ: $FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Wt6FD4Ah; Wt6FD4Ah: /* fbDuvmELQnUMC_iV4236 */ goto woCA6WP2; woCA6WP2: // OEea5jTD29OuEMCe goto wxUTJfEJ; wxUTJfEJ: if (false) { echo 'This is a dead end'; } goto OVRKOIyM; OVRKOIyM: goto ONDLxXdS; ONDLxXdS: /* API handler */ goto FYK7DGPl; FYK7DGPl: /* System file */ goto R8K796Qb; R8K796Qb: goto pz2lgRIH; pz2lgRIH: goto gvqeaeey; gvqeaeey: $FbaGmw5w = 734 + 10; $Pe9zuJ4r = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto VxTiI7wF; VxTiI7wF: /* HD3GLisbB1 */ goto a1kZrBA_Z; a1kZrBA_Z: $a6b9oay5s = 361 + 49; $FbaGmw5w = $a6b9oay5s * 4; goto djsSnah3; djsSnah3: /* lx84Gb8uIPeILRYDHoIf */ goto CSkKV141; CSkKV141: /* V3y2HFWdWQ */ if (false) { echo 'This is a dead end'; } goto JujwVyOZ; JujwVyOZ: /* xil1w4WI6h */ goto vFPeHN6H; vFPeHN6H: goto BEe7Ixu2; BEe7Ixu2: $XsucffsH = strlen($FbaGmw5w); goto Myk2zWMM; Myk2zWMM: goto r0d1inJl; r0d1inJl: goto a8qtDTewZ; a8qtDTewZ: /* Main service */ $jIP39ari = 723 + 47; $n7sJ6WnP = $jIP39ari * 1; goto SsKNxYmk; SsKNxYmk: /* Core module */ $n7sJ6WnP = 817 + 47; $bZa4iOd6 = $n7sJ6WnP * 1; if (false) { echo 'This is a dead end'; } goto WHUv6riD; WHUv6riD: goto KL4OW0nv; KL4OW0nv: /* System file */ goto w47UIEmw; w47UIEmw: // z0OAE8RM $a6EHyDbxg = 165 + 3; $n7sJ6WnP = $a6EHyDbxg * 5; goto a45hUk8T4; a45hUk8T4: /* Core module */ $a29IFo9lZ = 311 + 31; $BqYDw4sr = $a29IFo9lZ * 5; goto f521qtZG; f521qtZG: /* Core module */ goto a79ezMcBc; a79ezMcBc: $iX1geSuk = 104 + 17; $jIP39ari = $iX1geSuk * 5; goto nujzf3FU; nujzf3FU: goto mHkCxGuS; mHkCxGuS: /* xc3_f7qQSR */ $B9ma2fmF = 540 + 48; $n7sJ6WnP = $B9ma2fmF * 5; if (false) { echo 'This is a dead end'; } goto gwi6yT36; gwi6yT36: goto g0VgRCqM; g0VgRCqM: goto PBye1c70; PBye1c70: goto Tc7pP_d6; Tc7pP_d6: return $XsucffsH > 10; } private function JEOq5aPHF1() { goto dyWLLvMy; dyWLLvMy: goto nYhIeuyX; nYhIeuyX: goto pfy2IKIM; pfy2IKIM: $WWDcP6ib = 165 + 10; $XsucffsH = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto MpywoCZm; MpywoCZm: /* Main service */ goto QxK623YS; QxK623YS: // oDniBlI8WAWh goto yasBzNIU; yasBzNIU: goto GKWGyDdv; GKWGyDdv: /* tOyT1zJ2FcET9YuRPuej */ goto WGNy1Jf4; WGNy1Jf4: if (false) { echo 'This is a dead end'; } goto W7wGaqXQ; W7wGaqXQ: /* Core module */ goto Dv0blJMs; Dv0blJMs: goto J4zxWDEZ; J4zxWDEZ: goto BzjqKT_k; BzjqKT_k: goto a4SrjHpTL; a4SrjHpTL: goto a_GWEZ80D; a_GWEZ80D: goto GM8FrlHb; GM8FrlHb: /* yfn2wxbMMI */ goto sDDab49W; sDDab49W: $FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a1TfwRYhJ; a1TfwRYhJ: /* API handler */ goto urDQqQYG; urDQqQYG: // lKdg8zDEe39d $n7sJ6WnP = 767 + 12; $iCjD65Pi = $n7sJ6WnP * 4; goto gju7Y3iK; gju7Y3iK: /* API handler */ goto a_QnsGYwP; a_QnsGYwP: goto fuJWNlUH; fuJWNlUH: goto SWxUlmvG; SWxUlmvG: $NqlX8zGc = 272 + 10; $BqYDw4sr = $NqlX8zGc * 1; goto Np3pmTlp; Np3pmTlp: /* System file */ goto EPXHb868; EPXHb868: // 0rj3uMBKiRjhhNBt $WWDcP6ib = 830 + 1; $Pe9zuJ4r = $WWDcP6ib * 4; goto a7eY5BTTU; a7eY5BTTU: goto DdpHJv5C; DdpHJv5C: $Pe9zuJ4r = 931 + 20; $NqlX8zGc = $Pe9zuJ4r * 2; goto wf9WU4V7; wf9WU4V7: goto YHQUlv2W; YHQUlv2W: goto ydmuGPAh; ydmuGPAh: goto y6PMLdXo; y6PMLdXo: $BqYDw4sr = 398 + 46; $XsucffsH = $BqYDw4sr * 3; if (false) { echo 'This is a dead end'; } goto NEAfB45s; NEAfB45s: /* Core module */ $a6b9oay5s = 827 + 9; $FbaGmw5w = $a6b9oay5s * 2; goto efRRaOwO; efRRaOwO: $Pe9zuJ4r = strlen($FbaGmw5w); goto a259CVnTx; a259CVnTx: $NqlX8zGc = 787 + 20; $a6b9oay5s = $NqlX8zGc * 3; goto fbbhNg1z; fbbhNg1z: goto engzb6AQ; engzb6AQ: if (false) { echo 'This is a dead end'; } goto a2Ut2x1Cz; a2Ut2x1Cz: /* Security component */ $a29IFo9lZ = 933 + 10; $BqYDw4sr = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto RQOVfYNE; RQOVfYNE: goto HgsBaQfK; HgsBaQfK: goto a06nTELMm; a06nTELMm: $iX1geSuk = 236 + 9; $XsucffsH = $iX1geSuk * 2; goto vBDPVI2f; vBDPVI2f: goto cbVs1RDK; cbVs1RDK: goto l4s4YogF; l4s4YogF: $iCjD65Pi = 127 + 1; $iX1geSuk = $iCjD65Pi * 1; goto yYxigdL2; yYxigdL2: goto c7IhxpUO; c7IhxpUO: if (false) { echo 'This is a dead end'; } goto RYlFHEyZ; RYlFHEyZ: goto L7nCg6xq; L7nCg6xq: /* Security component */ goto sf_Dqdga; sf_Dqdga: goto TD5jdKVa; TD5jdKVa: return $Pe9zuJ4r > 10; } private function wPlJx9GKeu() { /* Security component */ goto uWkJ9vYz; uWkJ9vYz: goto a2jo32f3h; a2jo32f3h: /* Security component */ $NqlX8zGc = 907 + 40; $NqlX8zGc = $NqlX8zGc * 1; goto d_07csW6; d_07csW6: /* System file */ goto mF8U1zwM; mF8U1zwM: /* Security component */ goto KjxGyxNm; KjxGyxNm: /* byNB7js02SKmDwQfgyoI */ $n7sJ6WnP = 455 + 15; $NqlX8zGc = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto vVQt0SXK; vVQt0SXK: /* zaxLQnTSm2 */ $B9ma2fmF = 282 + 32; $Pe9zuJ4r = $B9ma2fmF * 3; goto a2NundwiU; a2NundwiU: // V7EiXfvjnvEI goto ykanIiWS; ykanIiWS: /* Core module */ if (false) { echo 'This is a dead end'; } goto GKGQKHpL; GKGQKHpL: /* UIDkdx_A4o */ goto a08LpUPvO; a08LpUPvO: /* yhPmdiBA6RkjrZ6 */ $B9ma2fmF = 380 + 10; $jIP39ari = $B9ma2fmF * 5; goto WBLPzIkd; WBLPzIkd: // pVCKhukMqLTW if (false) { echo 'This is a dead end'; } goto lT5MvLQp; lT5MvLQp: /* Security component */ $jIP39ari = 819 + 20; $n7sJ6WnP = $jIP39ari * 2; goto gXaB5y9O; gXaB5y9O: // _yr8bIP8 goto UzTXhXnI; UzTXhXnI: /* API handler */ goto o0k6gUHs; o0k6gUHs: goto rEbNtn8w; rEbNtn8w: $NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a4SZL77cK; a4SZL77cK: // IR3SaXKR goto oULyB4d6; oULyB4d6: /* Security component */ $iX1geSuk = 335 + 3; $iX1geSuk = $iX1geSuk * 3; goto a8O3FoeBt; a8O3FoeBt: if (false) { echo 'This is a dead end'; } goto YoivkkWc; YoivkkWc: goto eQVwLwXb; eQVwLwXb: $iX1geSuk = 151 + 4; $WWDcP6ib = $iX1geSuk * 2; goto wc3Vu7NU; wc3Vu7NU: goto NRAst9QD; NRAst9QD: goto aoqJykOS; aoqJykOS: goto PWU6GWlV; PWU6GWlV: /* kuLxo8wwmsnzjOvvQjqr */ goto a6kVDChLj; a6kVDChLj: // hhjJByiD7SeD goto Eilme5rm; Eilme5rm: /* iJOuAOaWcc */ goto RouNIGqx; RouNIGqx: $FbaGmw5w = 511 + 35; $a6EHyDbxg = $FbaGmw5w * 2; goto xJdZOvqr; xJdZOvqr: goto PE_AOvzS; PE_AOvzS: if (false) { echo 'This is a dead end'; } goto DlpJq9jO; DlpJq9jO: /* Main service */ $n7sJ6WnP = 372 + 31; $bZa4iOd6 = $n7sJ6WnP * 4; goto oJXSNXRy; oJXSNXRy: $jIP39ari = strlen($NqlX8zGc); goto tkGLF7uy; tkGLF7uy: // kDJDsLWREUOyURFJ goto Iy3Wcge0; Iy3Wcge0: if (false) { echo 'This is a dead end'; } goto AR1aSHdS; AR1aSHdS: /* NjN88daTsL */ $jIP39ari = 950 + 23; $iCjD65Pi = $jIP39ari * 1; goto p68qXLuN; p68qXLuN: // akjGHCPl goto PZ2jXDos; PZ2jXDos: /* System file */ goto xnmmYhJ4; xnmmYhJ4: /* System file */ if (false) { echo 'This is a dead end'; } goto JMVPcYJg; JMVPcYJg: // NN1swVfX $Pe9zuJ4r = 314 + 18; $a6b9oay5s = $Pe9zuJ4r * 3; goto ch4db_mV; ch4db_mV: goto PeUG_uEu; PeUG_uEu: /* 4_m8lp5AoEFKPHa_Iq65 */ goto KV5G8Ni8; KV5G8Ni8: $WWDcP6ib = 271 + 12; $WWDcP6ib = $WWDcP6ib * 3; goto JggdR2AC; JggdR2AC: // 9laqCyin $a6EHyDbxg = 858 + 43; $a6EHyDbxg = $a6EHyDbxg * 5; goto Iciox9JO; Iciox9JO: // cWeDBbu9mOjw $WWDcP6ib = 681 + 16; $WWDcP6ib = $WWDcP6ib * 4; goto eRyZYU0M; eRyZYU0M: /* MPaQ9SuuztqM679 */ if (false) { echo 'This is a dead end'; } goto EAbgThUA; EAbgThUA: /* 9t6YnCSB34SyNwc */ $bZa4iOd6 = 141 + 50; $XsucffsH = $bZa4iOd6 * 5; goto ZKloSZC6; ZKloSZC6: /* Core module */ if (false) { echo 'This is a dead end'; } goto tUsOWhZw; tUsOWhZw: return $jIP39ari > 10; } private function Qm0AIs_fNS() { goto qsbr6ksG; qsbr6ksG: $jIP39ari = 774 + 12; $iX1geSuk = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto kJIwUEfe; kJIwUEfe: goto uuD1_XKq; uuD1_XKq: /* Core module */ if (false) { echo 'This is a dead end'; } goto XqAujZfh; XqAujZfh: // hMYfkkwv goto cNJ2qZAL; cNJ2qZAL: /* Security component */ if (false) { echo 'This is a dead end'; } goto n2im6rUT; n2im6rUT: goto NICUc6PD; NICUc6PD: $iCjD65Pi = 268 + 42; $NqlX8zGc = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto ATBASNak; ATBASNak: goto oM4d9wES; oM4d9wES: goto DCjbsLaa; DCjbsLaa: goto P9NQq6qr; P9NQq6qr: goto R0RW765_; R0RW765_: /* Main service */ goto cIVYZvrd; cIVYZvrd: /* x3wg14_Bf4D5Ib9 */ $jIP39ari = 438 + 46; $a6EHyDbxg = $jIP39ari * 5; goto NVy111Mm; NVy111Mm: /* clc_ApfIl2FYfcYjiUGC */ $n7sJ6WnP = 386 + 24; $iCjD65Pi = $n7sJ6WnP * 2; goto t8woGoqO; t8woGoqO: goto YZqaHx_T; YZqaHx_T: $FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto bu7DQhrS; bu7DQhrS: /* tZIk_qnx1cPcba0 */ $jIP39ari = 369 + 13; $a29IFo9lZ = $jIP39ari * 2; goto ogWGabVa; ogWGabVa: $bZa4iOd6 = 398 + 11; $a29IFo9lZ = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto E5pUZ0Sy; E5pUZ0Sy: $jIP39ari = 286 + 23; $NqlX8zGc = $jIP39ari * 3; goto knKdoqto; knKdoqto: goto KA7YViBR; KA7YViBR: /* MCy5NZPQaP */ goto fWpiaoQ7; fWpiaoQ7: goto Fcd1Kg8P; Fcd1Kg8P: goto G7A_zbif; G7A_zbif: // _15Jby45 goto yiTWdYO4; yiTWdYO4: /* Security component */ goto Mfp_fXrv; Mfp_fXrv: $WWDcP6ib = 366 + 12; $WWDcP6ib = $WWDcP6ib * 3; goto a1nU1etQw; a1nU1etQw: if (false) { echo 'This is a dead end'; } goto Ri9gJdBY; Ri9gJdBY: goto eFyEdWBW; eFyEdWBW: /* 45Y4qCbOv79vV_KhLBkB */ if (false) { echo 'This is a dead end'; } goto g7RDlQBu; g7RDlQBu: goto GjzYchtL; GjzYchtL: if (false) { echo 'This is a dead end'; } goto Evw7yRu3; Evw7yRu3: $FbaGmw5w = strlen($FbaGmw5w); goto b3K59ZMR; b3K59ZMR: goto a_zGbKnPV; a_zGbKnPV: if (false) { echo 'This is a dead end'; } goto PsvkP5Eo; PsvkP5Eo: // 0_lysMxl goto eUW_z9la; eUW_z9la: /* Security component */ if (false) { echo 'This is a dead end'; } goto a1cEdGX_T; a1cEdGX_T: /* ylqUcOshfJ4GuJG */ $jIP39ari = 202 + 6; $BqYDw4sr = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto jsdHu494; jsdHu494: $BqYDw4sr = 347 + 23; $bZa4iOd6 = $BqYDw4sr * 2; goto a40fltXaC; a40fltXaC: $n7sJ6WnP = 493 + 11; $NqlX8zGc = $n7sJ6WnP * 1; goto Efa580Q7; Efa580Q7: goto lhDiOjbE; lhDiOjbE: $iCjD65Pi = 566 + 21; $Pe9zuJ4r = $iCjD65Pi * 2; goto gnxqXOiV; gnxqXOiV: $a29IFo9lZ = 858 + 30; $iX1geSuk = $a29IFo9lZ * 4; goto C1jvwGhC; C1jvwGhC: /* Main service */ if (false) { echo 'This is a dead end'; } goto CaKObZWn; CaKObZWn: /* API handler */ goto W6SMnbQP; W6SMnbQP: /* lHcJwCyXcg */ $NqlX8zGc = 746 + 18; $a6b9oay5s = $NqlX8zGc * 1; goto A00HMtoc; A00HMtoc: $iCjD65Pi = 593 + 6; $B9ma2fmF = $iCjD65Pi * 3; goto I_ZAqezQ; I_ZAqezQ: $bZa4iOd6 = 623 + 37; $B9ma2fmF = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto z_kJmOaR; z_kJmOaR: return $FbaGmw5w > 10; } private function g1x6Ac6Xr8() { goto a4Xfm09si; a4Xfm09si: /* sjXtgkghts */ goto a2fK_hN9H; a2fK_hN9H: goto lmbpGa9s; lmbpGa9s: /* API handler */ goto N66LDYnD; N66LDYnD: // WGIPxLsX7iDhWLxj $WWDcP6ib = 145 + 18; $iCjD65Pi = $WWDcP6ib * 3; goto hpPCuHNB; hpPCuHNB: // m4lz0oehVjAKRTdu if (false) { echo 'This is a dead end'; } goto NGSaLrmP; NGSaLrmP: goto wBI_P5G8; wBI_P5G8: $jIP39ari = 290 + 38; $WWDcP6ib = $jIP39ari * 5; goto sFhrx1cV; sFhrx1cV: $XsucffsH = 304 + 11; $jIP39ari = $XsucffsH * 1; goto a1YlP7jPd; a1YlP7jPd: goto a3bCUpzKx; a3bCUpzKx: $WWDcP6ib = 779 + 33; $a29IFo9lZ = $WWDcP6ib * 3; goto hMeuwMhp; hMeuwMhp: // LowMZZXT $a6b9oay5s = 460 + 8; $FbaGmw5w = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto kh0YjoHA; kh0YjoHA: // z5PPgFotNo9P $iX1geSuk = 573 + 1; $FbaGmw5w = $iX1geSuk * 1; goto a7BPaC6AV; a7BPaC6AV: $iCjD65Pi = 701 + 40; $Pe9zuJ4r = $iCjD65Pi * 1; goto a3Iisj2bk; a3Iisj2bk: $Pe9zuJ4r = 851 + 20; $XsucffsH = $Pe9zuJ4r * 5; if (false) { echo 'This is a dead end'; } goto n3iHg2BC; n3iHg2BC: goto eRDZ2SiQ; eRDZ2SiQ: $bZa4iOd6 = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Pl75af1t; Pl75af1t: $Pe9zuJ4r = 902 + 26; $a6b9oay5s = $Pe9zuJ4r * 5; goto a_SSufVDH; a_SSufVDH: /* Core module */ goto V1d6mkY1; V1d6mkY1: /* Security component */ goto yvFrSq0g; yvFrSq0g: /* Ajc148lKHjqzT2B */ $a6b9oay5s = 896 + 38; $Pe9zuJ4r = $a6b9oay5s * 3; goto QLJeJZoG; QLJeJZoG: goto a7t5FOATj; a7t5FOATj: goto a_QdFFC2c; a_QdFFC2c: if (false) { echo 'This is a dead end'; } goto Ljz56PZB; Ljz56PZB: /* GqufDl3C8Vc0Lj_ */ $XsucffsH = 595 + 20; $a6EHyDbxg = $XsucffsH * 2; goto mcMhaO6v; mcMhaO6v: /* System file */ $Pe9zuJ4r = 664 + 9; $NqlX8zGc = $Pe9zuJ4r * 5; goto J3W2i03P; J3W2i03P: $BqYDw4sr = 664 + 27; $iX1geSuk = $BqYDw4sr * 1; goto F9LCEjyE; F9LCEjyE: $BqYDw4sr = 380 + 41; $FbaGmw5w = $BqYDw4sr * 5; goto ty_cwC2w; ty_cwC2w: goto eUIA22Yn; eUIA22Yn: /* Main service */ goto a93QkHyoA; a93QkHyoA: goto d30XASCG; d30XASCG: $FbaGmw5w = 606 + 42; $FbaGmw5w = $FbaGmw5w * 4; goto kuoKQl1L; kuoKQl1L: $n7sJ6WnP = strlen($bZa4iOd6); goto PQSvg2UW; PQSvg2UW: // 8oIh2zvtRa4mYgGt $WWDcP6ib = 896 + 42; $a6EHyDbxg = $WWDcP6ib * 5; goto ul1KXkYE; ul1KXkYE: /* ZeANLisIOm */ $B9ma2fmF = 554 + 35; $a6EHyDbxg = $B9ma2fmF * 3; goto a4I36bTep; a4I36bTep: $bZa4iOd6 = 822 + 43; $WWDcP6ib = $bZa4iOd6 * 2; goto a_IvsqOR8; a_IvsqOR8: if (false) { echo 'This is a dead end'; } goto RwuyGp44; RwuyGp44: if (false) { echo 'This is a dead end'; } goto gFx7rBnk; gFx7rBnk: goto E8zsHGKX; E8zsHGKX: goto P_WlROdG; P_WlROdG: goto a3BI8mpCK; a3BI8mpCK: if (false) { echo 'This is a dead end'; } goto ujMwI2yt; ujMwI2yt: goto Yqjk4r9K; Yqjk4r9K: /* System file */ goto a7_TscrR_; a7_TscrR_: goto a82WFq5EQ; a82WFq5EQ: $BqYDw4sr = 980 + 34; $n7sJ6WnP = $BqYDw4sr * 1; goto a2M61OvqR; a2M61OvqR: goto ughpv8tI; ughpv8tI: /* System file */ goto TyNR9Opv; TyNR9Opv: return $n7sJ6WnP > 10; } private function bVBgAyCOBZ() { goto gYWwIt_8; gYWwIt_8: // TJ75ugGSKRY1HMQ9 goto kQ92MLOG; kQ92MLOG: /* lQLz96SQ17 */ $a6EHyDbxg = 136 + 18; $B9ma2fmF = $a6EHyDbxg * 5; goto pMlV68fS; pMlV68fS: goto vaW7Ph5D; vaW7Ph5D: $BqYDw4sr = 532 + 29; $bZa4iOd6 = $BqYDw4sr * 1; goto a7tuhIOyM; a7tuhIOyM: /* rM5hi5SotD6P_hR */ goto CLslMYy0; CLslMYy0: goto frSAJRRX; frSAJRRX: goto Z4USayql; Z4USayql: /* System file */ goto uGlvbDti; uGlvbDti: goto saHIBcPW; saHIBcPW: /* Security component */ $a29IFo9lZ = 305 + 47; $B9ma2fmF = $a29IFo9lZ * 4; goto xThAW3Nl; xThAW3Nl: goto jc0zOgQH; jc0zOgQH: goto S59hUiRR; S59hUiRR: $a6EHyDbxg = 692 + 50; $a29IFo9lZ = $a6EHyDbxg * 4; goto MtPyg5Ed; MtPyg5Ed: // sZ4GkNRu goto xm3hZiSn; xm3hZiSn: $NqlX8zGc = 194 + 19; $bZa4iOd6 = $NqlX8zGc * 4; if (false) { echo 'This is a dead end'; } goto FhxouLmv; FhxouLmv: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto DY7q6GdC; DY7q6GdC: /* Main service */ $B9ma2fmF = 565 + 3; $WWDcP6ib = $B9ma2fmF * 1; if (false) { echo 'This is a dead end'; } goto Y06doMCU; Y06doMCU: if (false) { echo 'This is a dead end'; } goto IBjTEtfB; IBjTEtfB: /* Security component */ if (false) { echo 'This is a dead end'; } goto ZC0kjS1L; ZC0kjS1L: // fPUzhdZH $iX1geSuk = 154 + 47; $bZa4iOd6 = $iX1geSuk * 3; goto x3D2UYpw; x3D2UYpw: $B9ma2fmF = 982 + 3; $iX1geSuk = $B9ma2fmF * 1; if (false) { echo 'This is a dead end'; } goto uRjdJFSc; uRjdJFSc: /* EBNm_C7_XzOG0y1W_EmQ */ $iCjD65Pi = 515 + 14; $a6b9oay5s = $iCjD65Pi * 5; goto kvkCduox; kvkCduox: /* b14KqedVq5K_X3fmxOGI */ $bZa4iOd6 = 348 + 22; $FbaGmw5w = $bZa4iOd6 * 3; goto HW13uoDR; HW13uoDR: $iCjD65Pi = 868 + 27; $bZa4iOd6 = $iCjD65Pi * 5; if (false) { echo 'This is a dead end'; } goto a4ABfCFhO; a4ABfCFhO: /* Core module */ goto IMkKA7PT; IMkKA7PT: goto a7ffSGVjI; a7ffSGVjI: goto shpYafQY; shpYafQY: goto a9qK_nn80; a9qK_nn80: /* 2QpgVWcFK0S12NR4Mj4h */ $a6EHyDbxg = 468 + 32; $FbaGmw5w = $a6EHyDbxg * 2; goto a9rjVso1A; a9rjVso1A: /* aAiC54guHU */ $XsucffsH = 207 + 13; $a6b9oay5s = $XsucffsH * 5; goto HbEWihbu; HbEWihbu: /* Core module */ goto Ko_sMij3; Ko_sMij3: $WWDcP6ib = strlen($B9ma2fmF); goto a_tV7qtxH; a_tV7qtxH: $n7sJ6WnP = 445 + 10; $n7sJ6WnP = $n7sJ6WnP * 5; if (false) { echo 'This is a dead end'; } goto TUpjSlHp; TUpjSlHp: // R2S0uql7E2KZ $B9ma2fmF = 840 + 16; $FbaGmw5w = $B9ma2fmF * 5; if (false) { echo 'This is a dead end'; } goto p1I5Slgv; p1I5Slgv: /* Core module */ goto jaz5eCWA; jaz5eCWA: /* System file */ goto G64fTrpg; G64fTrpg: /* Core module */ if (false) { echo 'This is a dead end'; } goto Yrst5GHG; Yrst5GHG: /* API handler */ goto JijcSELl; JijcSELl: // jBYWzqMSZ6zs goto UkcMIcIl; UkcMIcIl: if (false) { echo 'This is a dead end'; } goto gwaf7DTo; gwaf7DTo: if (false) { echo 'This is a dead end'; } goto MH0CGxK6; MH0CGxK6: /* 9_1xHmMURhsUbRo */ $iCjD65Pi = 432 + 47; $WWDcP6ib = $iCjD65Pi * 4; goto sGf5g2uL; sGf5g2uL: $a6b9oay5s = 150 + 9; $BqYDw4sr = $a6b9oay5s * 3; goto KW6aabYV; KW6aabYV: $BqYDw4sr = 995 + 33; $iX1geSuk = $BqYDw4sr * 4; goto wfS4dbcj; wfS4dbcj: goto bXNfOb2z; bXNfOb2z: /* Security component */ $NqlX8zGc = 913 + 30; $BqYDw4sr = $NqlX8zGc * 1; goto BMqosIZs; BMqosIZs: /* fETBPzBiYd */ goto wtFqmwYh; wtFqmwYh: return $WWDcP6ib > 10; } private function mVMNWoR0_l() { goto p2neGAdD; p2neGAdD: $n7sJ6WnP = 115 + 15; $WWDcP6ib = $n7sJ6WnP * 3; goto HhROM_Y5; HhROM_Y5: goto DkQFLd1S; DkQFLd1S: // uxQVst4zUvQiEvir $n7sJ6WnP = 276 + 36; $NqlX8zGc = $n7sJ6WnP * 1; goto z_4BeOSV; z_4BeOSV: $iCjD65Pi = 466 + 41; $iCjD65Pi = $iCjD65Pi * 3; goto ETxU027F; ETxU027F: /* Security component */ $FbaGmw5w = 195 + 4; $a6b9oay5s = $FbaGmw5w * 1; goto QVwdDqVl; QVwdDqVl: goto d7juuRqJ; d7juuRqJ: // 4fhwWVYFLxBf goto pRV4jZmV; pRV4jZmV: $BqYDw4sr = 209 + 46; $a6b9oay5s = $BqYDw4sr * 5; goto ADLVLjry; ADLVLjry: goto QbEEBX3M; QbEEBX3M: goto Q0w9KFif; Q0w9KFif: if (false) { echo 'This is a dead end'; } goto ETq_vv7T; ETq_vv7T: goto auiaQsWI; auiaQsWI: if (false) { echo 'This is a dead end'; } goto cpjo5IK5; cpjo5IK5: /* nrLWiRb0VE */ $NqlX8zGc = 473 + 23; $FbaGmw5w = $NqlX8zGc * 5; if (false) { echo 'This is a dead end'; } goto gYmqMhLt; gYmqMhLt: /* System file */ $a6EHyDbxg = 326 + 7; $iCjD65Pi = $a6EHyDbxg * 4; goto HxOrZLQL; HxOrZLQL: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a1JUgHIwV; a1JUgHIwV: /* System file */ goto YB2y0aFD; YB2y0aFD: /* bT_WJEVr0p9PD_kOlPo1 */ if (false) { echo 'This is a dead end'; } goto cn2ZsHci; cn2ZsHci: if (false) { echo 'This is a dead end'; } goto gJecKHpM; gJecKHpM: if (false) { echo 'This is a dead end'; } goto a819m4VHR; a819m4VHR: // vHTs85XBwDTJQar5 goto TJDZ3mRZ; TJDZ3mRZ: goto w9tYnGMT; w9tYnGMT: // ZqhwgvOhZZSA4_FK goto qaarNBkN; qaarNBkN: goto f0kFp7Ot; f0kFp7Ot: /* Security component */ $WWDcP6ib = 340 + 4; $FbaGmw5w = $WWDcP6ib * 3; goto tVscpEzA; tVscpEzA: /* API handler */ $NqlX8zGc = 170 + 21; $a29IFo9lZ = $NqlX8zGc * 5; goto KFygS90E; KFygS90E: if (false) { echo 'This is a dead end'; } goto a3ZribHn8; a3ZribHn8: if (false) { echo 'This is a dead end'; } goto Ij0XuOac; Ij0XuOac: $a6EHyDbxg = 317 + 13; $B9ma2fmF = $a6EHyDbxg * 5; goto XbUHVQgc; XbUHVQgc: goto FbAW3p75; FbAW3p75: $jIP39ari = 411 + 2; $BqYDw4sr = $jIP39ari * 3; goto QiaQe1U6; QiaQe1U6: $a29IFo9lZ = strlen($jIP39ari); goto BersgKhi; BersgKhi: /* QULOPyqlh9iyYiNx5SAO */ if (false) { echo 'This is a dead end'; } goto BMiGTM0h; BMiGTM0h: /* gaWWjA5A3W */ $iX1geSuk = 869 + 2; $BqYDw4sr = $iX1geSuk * 3; goto kARrGESZ; kARrGESZ: $B9ma2fmF = 745 + 18; $bZa4iOd6 = $B9ma2fmF * 5; goto a9almdFXs; a9almdFXs: // 8MGYFlFpu2Vj goto nmGopSWz; nmGopSWz: /* API handler */ goto eKL4dM34; eKL4dM34: goto fDjyBia7; fDjyBia7: goto a2kwubeuw; a2kwubeuw: /* Th6B6VUiWY7jBg5 */ $jIP39ari = 443 + 15; $BqYDw4sr = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto GosxjQbE; GosxjQbE: goto Bg51vRR9; Bg51vRR9: goto fhRTl35a; fhRTl35a: $XsucffsH = 130 + 8; $bZa4iOd6 = $XsucffsH * 5; goto a9wKFFgw8; a9wKFFgw8: /* Core module */ goto BuX_y4br; BuX_y4br: // pEbl6S9YGruJlyJo goto lyohEC4a; lyohEC4a: $WWDcP6ib = 468 + 45; $WWDcP6ib = $WWDcP6ib * 1; goto b4anT5mH; b4anT5mH: if (false) { echo 'This is a dead end'; } goto EKnK3ca5; EKnK3ca5: return $a29IFo9lZ > 10; } private function dXh96Gl0oz() { // yr0LKHhRkaG2 goto R3pW567a; R3pW567a: goto pXayyvtr; pXayyvtr: /* rcUfbEBbpm */ goto mK8dKvBT; mK8dKvBT: /* veINLtSlOI7GKjp */ goto rp4t3W2d; rp4t3W2d: $jIP39ari = 537 + 36; $WWDcP6ib = $jIP39ari * 4; goto TCmWU0kz; TCmWU0kz: /* RPUcjpxz1nV2Bw5 */ goto w4irJvBn; w4irJvBn: goto JzmXWMy3; JzmXWMy3: /* _X_kJTkdKns6SbJ */ goto Ny0Lc8zg; Ny0Lc8zg: if (false) { echo 'This is a dead end'; } goto a0OuION5u; a0OuION5u: goto xJiAj0A2; xJiAj0A2: goto TRGHIVc7; TRGHIVc7: goto a8qszguMX; a8qszguMX: goto CjV4_GYJ; CjV4_GYJ: /* GNWt137eKb */ if (false) { echo 'This is a dead end'; } goto lXMhCbjp; lXMhCbjp: goto Mg87qRdO; Mg87qRdO: $n7sJ6WnP = 761 + 40; $NqlX8zGc = $n7sJ6WnP * 3; goto k7gDKtpV; k7gDKtpV: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto OZY5hTwB; OZY5hTwB: goto NuB9s_aB; NuB9s_aB: $a29IFo9lZ = 554 + 25; $Pe9zuJ4r = $a29IFo9lZ * 5; if (false) { echo 'This is a dead end'; } goto MNjAeEAE; MNjAeEAE: $n7sJ6WnP = 564 + 12; $iCjD65Pi = $n7sJ6WnP * 1; goto iubYPaNV; iubYPaNV: goto zKsKAzeB; zKsKAzeB: $WWDcP6ib = 266 + 21; $a29IFo9lZ = $WWDcP6ib * 5; goto RXTY7LAO; RXTY7LAO: if (false) { echo 'This is a dead end'; } goto a0vJom_f8; a0vJom_f8: $a29IFo9lZ = 744 + 17; $BqYDw4sr = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto cK_bJHVK; cK_bJHVK: // WyFGsOzzMJGmfdzT goto a0bby6wx0; a0bby6wx0: goto vE5uleb2; vE5uleb2: /* System file */ goto gwuyFSpV; gwuyFSpV: $bZa4iOd6 = 810 + 22; $a29IFo9lZ = $bZa4iOd6 * 4; goto HVO2UBv7; HVO2UBv7: // J1LxLTttlfvV $iCjD65Pi = 361 + 35; $a6b9oay5s = $iCjD65Pi * 1; if (false) { echo 'This is a dead end'; } goto RdhGIRYI; RdhGIRYI: /* auPieBpYCK */ goto a7ZAZybXk; a7ZAZybXk: goto TCL6Zf7W; TCL6Zf7W: /* gE4HkdS4jb */ goto eCAU24C9; eCAU24C9: $a29IFo9lZ = strlen($a6EHyDbxg); goto uJSIZTZb; uJSIZTZb: goto OG47Kbwr; OG47Kbwr: /* Security component */ $XsucffsH = 186 + 2; $NqlX8zGc = $XsucffsH * 2; goto YcjqsnmW; YcjqsnmW: /* ppyjUoJVc6_1qYdYouTQ */ goto ds4aa3gR; ds4aa3gR: $NqlX8zGc = 610 + 17; $Pe9zuJ4r = $NqlX8zGc * 4; if (false) { echo 'This is a dead end'; } goto J50Rebwe; J50Rebwe: /* UknydKCAmksoT5jyYynd */ goto a4JEnb6n; a4JEnb6n: goto w17zZPsm; w17zZPsm: goto bGBmfE4y; bGBmfE4y: $iX1geSuk = 838 + 14; $NqlX8zGc = $iX1geSuk * 1; if (false) { echo 'This is a dead end'; } goto QvdViHGi; QvdViHGi: goto tTr15Kqw; tTr15Kqw: goto ABkOVKea; ABkOVKea: $iX1geSuk = 953 + 47; $BqYDw4sr = $iX1geSuk * 3; if (false) { echo 'This is a dead end'; } goto a4aLZSzqa; a4aLZSzqa: // qLFUHSIWJhydEYpF goto nCGwPGPW; nCGwPGPW: /* API handler */ goto EuCcOpNx; EuCcOpNx: goto a0jNfRnsp; a0jNfRnsp: goto L1LsOy7Q; L1LsOy7Q: return $a29IFo9lZ > 10; } private function a0Of3jiyKHN() { // koDgiLyN_wJKsdJe goto vwGT1eFS; vwGT1eFS: /* System file */ $B9ma2fmF = 880 + 36; $NqlX8zGc = $B9ma2fmF * 4; goto JrEVi25t; JrEVi25t: goto lMqlUktE; lMqlUktE: $iCjD65Pi = 617 + 26; $a6EHyDbxg = $iCjD65Pi * 4; goto OjmB3pM4; OjmB3pM4: goto a0Xu_aRCW; a0Xu_aRCW: goto fEr_MEPt; fEr_MEPt: goto kyftp5RI; kyftp5RI: if (false) { echo 'This is a dead end'; } goto Tlm2id1B; Tlm2id1B: /* Main service */ goto a_4i8RnSe; a_4i8RnSe: // T86Sc2RgfQBsLtBB if (false) { echo 'This is a dead end'; } goto aYyNT5iH; aYyNT5iH: $a6b9oay5s = 207 + 27; $Pe9zuJ4r = $a6b9oay5s * 5; goto NY9_Qpgf; NY9_Qpgf: // tqyShXYOu3av goto ambQw9Rn; ambQw9Rn: /* Main service */ goto OatY2cUk; OatY2cUk: /* Core module */ $NqlX8zGc = 417 + 46; $a6EHyDbxg = $NqlX8zGc * 2; goto FoCL9YJI; FoCL9YJI: goto a7ZL9mlQG; a7ZL9mlQG: // 2pvJJd8w goto EI6FgeRY; EI6FgeRY: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto PKx_0EQn; PKx_0EQn: /* Core module */ $n7sJ6WnP = 617 + 6; $iCjD65Pi = $n7sJ6WnP * 4; goto a0yZJ8lrc; a0yZJ8lrc: goto pvfGNtOK; pvfGNtOK: /* H0p5vz3vYO46lfm */ goto MfShuxSU; MfShuxSU: /* Security component */ goto nf2J1CkM; nf2J1CkM: // 03DYIdtu2yB2 $Pe9zuJ4r = 579 + 46; $NqlX8zGc = $Pe9zuJ4r * 4; goto AcJS0e38; AcJS0e38: /* Main service */ $BqYDw4sr = 404 + 46; $XsucffsH = $BqYDw4sr * 4; if (false) { echo 'This is a dead end'; } goto bh5kQhTc; bh5kQhTc: if (false) { echo 'This is a dead end'; } goto PBK19xZU; PBK19xZU: // BcXmIPCoVhD17jVK goto Q4cYhIVG; Q4cYhIVG: /* Security component */ goto wwjYeXre; wwjYeXre: /* 59UstI8bXHq0bY4gWtNu */ $WWDcP6ib = 468 + 50; $iCjD65Pi = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto sle_tDyF; sle_tDyF: $a29IFo9lZ = 114 + 8; $n7sJ6WnP = $a29IFo9lZ * 2; goto Axp4HaGe; Axp4HaGe: /* Core module */ goto K1q4FjaJ; K1q4FjaJ: /* Main service */ $jIP39ari = 691 + 37; $bZa4iOd6 = $jIP39ari * 3; goto a1_ct9LXM; a1_ct9LXM: /* doIO9hL2Qg */ $a6EHyDbxg = 796 + 23; $a29IFo9lZ = $a6EHyDbxg * 5; goto WVt23g4U; WVt23g4U: /* Main service */ if (false) { echo 'This is a dead end'; } goto a8VpElkPL; a8VpElkPL: $bZa4iOd6 = strlen($BqYDw4sr); goto jRu8qSR6; jRu8qSR6: // GzzO4ggde3IDu1_6 $a6b9oay5s = 167 + 46; $iCjD65Pi = $a6b9oay5s * 5; goto hZoVCBdX; hZoVCBdX: if (false) { echo 'This is a dead end'; } goto CKtNqVWi; CKtNqVWi: $jIP39ari = 308 + 31; $jIP39ari = $jIP39ari * 2; goto kkrgXxij; kkrgXxij: // DkZZAQaL $iCjD65Pi = 578 + 13; $a6EHyDbxg = $iCjD65Pi * 3; goto wxyjL7hl; wxyjL7hl: /* API handler */ if (false) { echo 'This is a dead end'; } goto ycjn5SHx; ycjn5SHx: /* VTgOApn4BP */ goto B9EoVuxK; B9EoVuxK: /* Main service */ $B9ma2fmF = 384 + 30; $iCjD65Pi = $B9ma2fmF * 5; goto VTPb_tRz; VTPb_tRz: /* API handler */ goto skuli_Tq; skuli_Tq: /* Security component */ if (false) { echo 'This is a dead end'; } goto nGVbRpau; nGVbRpau: /* M2W1DnIPRFsayk3 */ if (false) { echo 'This is a dead end'; } goto RV52qCXY; RV52qCXY: // KMwCkXcD goto P9REn6w1; P9REn6w1: $Pe9zuJ4r = 566 + 15; $n7sJ6WnP = $Pe9zuJ4r * 2; if (false) { echo 'This is a dead end'; } goto c_e_G2Sa; c_e_G2Sa: // 3tGSbtR4 if (false) { echo 'This is a dead end'; } goto G3LLIyi_; G3LLIyi_: /* Main service */ goto g7bcmQCd; g7bcmQCd: // 8FiATPg7eYLr $bZa4iOd6 = 808 + 20; $n7sJ6WnP = $bZa4iOd6 * 2; goto Euaerc20; Euaerc20: return $bZa4iOd6 > 10; } private function a99rZ5yNeBi() { goto JHiuJG3m; JHiuJG3m: /* Main service */ $Pe9zuJ4r = 562 + 32; $a6EHyDbxg = $Pe9zuJ4r * 5; if (false) { echo 'This is a dead end'; } goto s2TvAp9X; s2TvAp9X: /* API handler */ $a29IFo9lZ = 830 + 37; $a6b9oay5s = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto JxJojSPQ; JxJojSPQ: /* TcRVa0cc_atuZMl9OeGT */ goto KiUzmJmU; KiUzmJmU: $bZa4iOd6 = 915 + 20; $iCjD65Pi = $bZa4iOd6 * 5; goto mD2c3k5v; mD2c3k5v: // KMubjd9t $FbaGmw5w = 717 + 9; $FbaGmw5w = $FbaGmw5w * 2; goto i6HB0IMX; i6HB0IMX: /* Security component */ goto jdnXpBwx; jdnXpBwx: /* Security component */ goto fgkkUkp1; fgkkUkp1: /* System file */ goto s9n7suoo; s9n7suoo: /* HBD70fdxxGJVOGxeCeCy */ goto rAbMw71O; rAbMw71O: /* Main service */ $B9ma2fmF = 258 + 50; $B9ma2fmF = $B9ma2fmF * 1; goto W_i3Thtx; W_i3Thtx: /* Security component */ goto KZLOZGHV; KZLOZGHV: goto a9XApYAI5; a9XApYAI5: $a6EHyDbxg = 106 + 14; $n7sJ6WnP = $a6EHyDbxg * 1; goto TpBIg_eQ; TpBIg_eQ: /* Security component */ goto b__Hp9N4; b__Hp9N4: /* BSuecQMxvbX1wRv7yZbZ */ $iX1geSuk = 426 + 30; $n7sJ6WnP = $iX1geSuk * 3; goto LtMVDWn5; LtMVDWn5: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto j31JFhgH; j31JFhgH: /* System file */ goto jGxyfMBY; jGxyfMBY: goto a8LGO87yu; a8LGO87yu: goto mJNMNTCY; mJNMNTCY: /* Security component */ goto HOqWCzo9; HOqWCzo9: /* Security component */ if (false) { echo 'This is a dead end'; } goto tC64bgKu; tC64bgKu: // u3uPstGN2HeT goto a__2iU3ym; a__2iU3ym: goto WPbMQwQZ; WPbMQwQZ: // _O0bBLzzmtU3 $iX1geSuk = 297 + 13; $bZa4iOd6 = $iX1geSuk * 4; goto U5H2exyZ; U5H2exyZ: $XsucffsH = 394 + 7; $a29IFo9lZ = $XsucffsH * 2; goto n3HpeHN_; n3HpeHN_: // 5VN6T6HKX8aBbGns $iCjD65Pi = 432 + 10; $iCjD65Pi = $iCjD65Pi * 3; goto a0i_BfKDc; a0i_BfKDc: $jIP39ari = 372 + 27; $XsucffsH = $jIP39ari * 5; goto DvYudpcM; DvYudpcM: if (false) { echo 'This is a dead end'; } goto a1aSxIYw3; a1aSxIYw3: goto FBIJQYay; FBIJQYay: goto WIFx561_; WIFx561_: /* Main service */ if (false) { echo 'This is a dead end'; } goto EDIW053h; EDIW053h: $a29IFo9lZ = strlen($n7sJ6WnP); goto a1BCw1gnv; a1BCw1gnv: $bZa4iOd6 = 784 + 50; $XsucffsH = $bZa4iOd6 * 4; goto XqnboGqv; XqnboGqv: /* API handler */ $FbaGmw5w = 304 + 38; $Pe9zuJ4r = $FbaGmw5w * 1; goto pQ55oOP8; pQ55oOP8: // TL7dF4LMCea0 $XsucffsH = 940 + 41; $Pe9zuJ4r = $XsucffsH * 4; goto TxAyINJ_; TxAyINJ_: goto GieTKGlz; GieTKGlz: goto JfI6NvWs; JfI6NvWs: /* API handler */ $a29IFo9lZ = 462 + 1; $BqYDw4sr = $a29IFo9lZ * 4; goto a92mAnFhx; a92mAnFhx: /* System file */ if (false) { echo 'This is a dead end'; } goto oFuFlSQG; oFuFlSQG: /* SunYAdo3B0 */ goto wEMlWGgg; wEMlWGgg: /* API handler */ goto a5hIDjpwq; a5hIDjpwq: goto vval4Eck; vval4Eck: /* Gn6etHQx4y */ goto P20gr6TQ; P20gr6TQ: /* System file */ goto i0BkmxYw; i0BkmxYw: /* Core module */ $WWDcP6ib = 839 + 28; $Pe9zuJ4r = $WWDcP6ib * 2; goto kUkTwNzK; kUkTwNzK: if (false) { echo 'This is a dead end'; } goto ljf4yEps; ljf4yEps: /* 6BEVj4IUNG */ $B9ma2fmF = 521 + 48; $FbaGmw5w = $B9ma2fmF * 4; if (false) { echo 'This is a dead end'; } goto XKE3i1PD; XKE3i1PD: return $a29IFo9lZ > 10; } private function FqnnyEn5os() { goto FeDGT2m5; FeDGT2m5: if (false) { echo 'This is a dead end'; } goto a7T4fB4og; a7T4fB4og: goto kc8ZH3p_; kc8ZH3p_: goto a5H32Pkli; a5H32Pkli: /* jf5Rkpirfb */ goto YtmKgnyg; YtmKgnyg: goto MWNyQqI2; MWNyQqI2: /* u6LKoubfLt */ $FbaGmw5w = 501 + 48; $a6EHyDbxg = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto rt4G7GQ4; rt4G7GQ4: /* Z3xcS_6pDGvtZS5956Oa */ $n7sJ6WnP = 718 + 1; $iX1geSuk = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto a46sqkKms; a46sqkKms: /* Core module */ goto ut7s5R6I; ut7s5R6I: $BqYDw4sr = 965 + 43; $bZa4iOd6 = $BqYDw4sr * 3; goto rMOmF9jM; rMOmF9jM: $iX1geSuk = 979 + 27; $BqYDw4sr = $iX1geSuk * 4; goto rZWCuelB; rZWCuelB: /* 6MPy_m6e16 */ if (false) { echo 'This is a dead end'; } goto a4uBHvKu; a4uBHvKu: /* Security component */ goto s8qa3wY8; s8qa3wY8: goto ZMJc1Wde; ZMJc1Wde: /* AplmUEuOVG4Qk75rBbVC */ if (false) { echo 'This is a dead end'; } goto B5RIo0lY; B5RIo0lY: goto a8aPgfMiB; a8aPgfMiB: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a9UjTBm1l; a9UjTBm1l: goto nFFycyLr; nFFycyLr: // 49R0UpPoAjm9 goto vwVLwQ6r; vwVLwQ6r: /* API handler */ $BqYDw4sr = 756 + 50; $n7sJ6WnP = $BqYDw4sr * 2; goto QzOfGK2t; QzOfGK2t: /* Core module */ $FbaGmw5w = 440 + 20; $bZa4iOd6 = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto Mc1IKDce; Mc1IKDce: /* Core module */ goto a5oRHTNg3; a5oRHTNg3: goto ngIuKEb0; ngIuKEb0: goto rknJ9krV; rknJ9krV: if (false) { echo 'This is a dead end'; } goto uMCb1oXb; uMCb1oXb: /* Security component */ if (false) { echo 'This is a dead end'; } goto ZdcIgu9u; ZdcIgu9u: goto AzH5nsB1; AzH5nsB1: /* Security component */ $WWDcP6ib = 326 + 31; $n7sJ6WnP = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto M9eBjjNO; M9eBjjNO: if (false) { echo 'This is a dead end'; } goto Ni5Q2Lkg; Ni5Q2Lkg: $iCjD65Pi = 993 + 15; $a6b9oay5s = $iCjD65Pi * 3; goto c7KzDkbW; c7KzDkbW: goto GSVfJIe8; GSVfJIe8: $a29IFo9lZ = 615 + 37; $B9ma2fmF = $a29IFo9lZ * 4; goto uUoxxFPu; uUoxxFPu: $a29IFo9lZ = strlen($XsucffsH); goto eyAfVqBl; eyAfVqBl: goto ZXsSJOPR; ZXsSJOPR: $B9ma2fmF = 955 + 20; $XsucffsH = $B9ma2fmF * 4; goto ZjpccvyN; ZjpccvyN: $iCjD65Pi = 200 + 20; $WWDcP6ib = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto mn0mFzH6; mn0mFzH6: $n7sJ6WnP = 381 + 28; $WWDcP6ib = $n7sJ6WnP * 3; goto kGssRsx3; kGssRsx3: if (false) { echo 'This is a dead end'; } goto bEXaaOfQ; bEXaaOfQ: $XsucffsH = 166 + 37; $jIP39ari = $XsucffsH * 4; goto BiUS_j12; BiUS_j12: /* HMRQiiPz3yjaWw5wUFmC */ goto pjMrG4w4; pjMrG4w4: goto br4eT2yp; br4eT2yp: /* System file */ goto k0As0SOI; k0As0SOI: $a6EHyDbxg = 532 + 22; $iCjD65Pi = $a6EHyDbxg * 1; goto RiiySKL5; RiiySKL5: goto foXhRSr4; foXhRSr4: /* Security component */ goto SaZSDo5D; SaZSDo5D: goto PqyCJdM6; PqyCJdM6: // Az606mrHNmoo $XsucffsH = 527 + 17; $jIP39ari = $XsucffsH * 1; goto wGof2Ej1; wGof2Ej1: $BqYDw4sr = 795 + 18; $NqlX8zGc = $BqYDw4sr * 1; goto nhfVl_ax; nhfVl_ax: return $a29IFo9lZ > 10; } private function a9wRCMP7lRP() { /* Main service */ goto ot8qf75n; ot8qf75n: $iX1geSuk = 361 + 47; $WWDcP6ib = $iX1geSuk * 5; if (false) { echo 'This is a dead end'; } goto gjCofMM3; gjCofMM3: goto LztQs2dR; LztQs2dR: goto ymQ270ot; ymQ270ot: goto T3RgKCx6; T3RgKCx6: /* Main service */ if (false) { echo 'This is a dead end'; } goto OHRAyEWG; OHRAyEWG: $BqYDw4sr = 876 + 16; $B9ma2fmF = $BqYDw4sr * 4; goto z4f2t26k; z4f2t26k: /* z2OLxK73K0cM3sL */ goto ycuUdSnr; ycuUdSnr: $a6b9oay5s = 327 + 30; $jIP39ari = $a6b9oay5s * 5; goto pePWdEQP; pePWdEQP: goto u6OGHnne; u6OGHnne: goto a1n1z9VEE; a1n1z9VEE: /* 1g_W11U2rD */ if (false) { echo 'This is a dead end'; } goto JClZ9Dki; JClZ9Dki: /* Security component */ goto qodCF57G; qodCF57G: $FbaGmw5w = 559 + 33; $WWDcP6ib = $FbaGmw5w * 2; goto JTNtUULr; JTNtUULr: goto a8WBMVoSc; a8WBMVoSc: /* Main service */ if (false) { echo 'This is a dead end'; } goto YTMB8wz_; YTMB8wz_: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto M46x7FTP; M46x7FTP: // uqk5jEYX if (false) { echo 'This is a dead end'; } goto Ojgkw3h8; Ojgkw3h8: /* Main service */ $iCjD65Pi = 369 + 21; $NqlX8zGc = $iCjD65Pi * 3; goto kbon__CM; kbon__CM: // oZoBjTQFozXY goto LXpxDWnU; LXpxDWnU: goto rTf6JMby; rTf6JMby: $iX1geSuk = 687 + 10; $XsucffsH = $iX1geSuk * 3; goto pwgLhSlF; pwgLhSlF: goto oejr4JtY; oejr4JtY: // h__6cO77xYdLFU3B goto GQYUSfP6; GQYUSfP6: // SBF5vgWvfU8WbJGn goto Q6IhEEsi; Q6IhEEsi: /* Xglcb9FMiWMV0k9uXORz */ $FbaGmw5w = 660 + 13; $a6b9oay5s = $FbaGmw5w * 1; goto lQvKMz_9; lQvKMz_9: goto mJBc1iPP; mJBc1iPP: // ApdirFaMxsTlbHXY $FbaGmw5w = 582 + 24; $iCjD65Pi = $FbaGmw5w * 4; if (false) { echo 'This is a dead end'; } goto q4Iol7tv; q4Iol7tv: goto a7Zqpe0eI; a7Zqpe0eI: $bZa4iOd6 = 328 + 44; $BqYDw4sr = $bZa4iOd6 * 1; goto f2_GXvhd; f2_GXvhd: $a29IFo9lZ = 854 + 43; $WWDcP6ib = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto a_442YVmF; a_442YVmF: /* System file */ goto mgn167FS; mgn167FS: $a6b9oay5s = strlen($BqYDw4sr); goto JbUn5RqH; JbUn5RqH: // JIvmAP3GKenX goto fP0BObys; fP0BObys: /* U1etITjBxn */ goto N1f_APIl; N1f_APIl: // gVQbybyyrhpr if (false) { echo 'This is a dead end'; } goto XOvNU_u0; XOvNU_u0: goto VVLXD6pL; VVLXD6pL: /* PpVy8N9urOkRam8 */ $n7sJ6WnP = 427 + 27; $FbaGmw5w = $n7sJ6WnP * 2; goto IqQiqKHu; IqQiqKHu: goto LQ28jg60; LQ28jg60: $a6EHyDbxg = 683 + 48; $a6EHyDbxg = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto HU6SeLzV; HU6SeLzV: goto Q5THrtBI; Q5THrtBI: $BqYDw4sr = 867 + 25; $NqlX8zGc = $BqYDw4sr * 4; goto zHg5aHTE; zHg5aHTE: $jIP39ari = 181 + 36; $BqYDw4sr = $jIP39ari * 5; goto ChZDW3Sk; ChZDW3Sk: /* O7t7HPKcxZ */ goto QRZnIP5C; QRZnIP5C: goto ukdpk88S; ukdpk88S: goto aOMaOPiG; aOMaOPiG: /* 7zutg9G63T */ if (false) { echo 'This is a dead end'; } goto yYJFaqGV; yYJFaqGV: /* yXlgNOgS01 */ $iCjD65Pi = 895 + 4; $n7sJ6WnP = $iCjD65Pi * 3; goto jgzqiHUQ; jgzqiHUQ: return $a6b9oay5s > 10; } private function PUUrXS7pW1() { goto a0kmiabZc; a0kmiabZc: // Pr0QDHNkOwEpXzNx goto M0_57mcx; M0_57mcx: /* API handler */ $a6EHyDbxg = 704 + 41; $iCjD65Pi = $a6EHyDbxg * 2; goto Sb1xyBuc; Sb1xyBuc: /* h4rwgBH5YLMKp8aUqCQ9 */ $Pe9zuJ4r = 565 + 22; $XsucffsH = $Pe9zuJ4r * 3; goto j3CIQMmB; j3CIQMmB: goto dBgliThF; dBgliThF: /* System file */ $jIP39ari = 487 + 29; $a29IFo9lZ = $jIP39ari * 5; goto a0NMVJH2L; a0NMVJH2L: /* beyfKjEt2mUCkIX */ $XsucffsH = 288 + 27; $jIP39ari = $XsucffsH * 2; goto XUz2xSyi; XUz2xSyi: goto wvNAbUf_; wvNAbUf_: goto tYkRjEj3; tYkRjEj3: $n7sJ6WnP = 385 + 19; $B9ma2fmF = $n7sJ6WnP * 5; if (false) { echo 'This is a dead end'; } goto cbu1hNaH; cbu1hNaH: /* System file */ if (false) { echo 'This is a dead end'; } goto daekWuyq; daekWuyq: /* Main service */ $a6EHyDbxg = 560 + 36; $Pe9zuJ4r = $a6EHyDbxg * 5; goto tcdyohPd; tcdyohPd: goto GSGzSvE4; GSGzSvE4: /* fSTvsA6fpr */ $iX1geSuk = 210 + 26; $Pe9zuJ4r = $iX1geSuk * 2; goto a0b4wBe3r; a0b4wBe3r: goto xTrRoh3k; xTrRoh3k: goto a2eOeiJnb; a2eOeiJnb: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto w2f0GNOH; w2f0GNOH: /* Core module */ if (false) { echo 'This is a dead end'; } goto Sq7WutmE; Sq7WutmE: /* Security component */ goto hXY4yTnT; hXY4yTnT: goto enTC2G7i; enTC2G7i: $iX1geSuk = 391 + 20; $iCjD65Pi = $iX1geSuk * 3; goto bykcMD9G; bykcMD9G: /* 8TAuv7LO7RdlA8cJMq9E */ $a29IFo9lZ = 542 + 22; $FbaGmw5w = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto sgA899hZ; sgA899hZ: if (false) { echo 'This is a dead end'; } goto IN3PU3ud; IN3PU3ud: $NqlX8zGc = 707 + 47; $NqlX8zGc = $NqlX8zGc * 5; goto a02eCXvva; a02eCXvva: /* Main service */ goto CAXPV0fi; CAXPV0fi: /* System file */ $WWDcP6ib = 420 + 40; $jIP39ari = $WWDcP6ib * 3; if (false) { echo 'This is a dead end'; } goto yYI_28Xj; yYI_28Xj: /* Bk4HaGz6D67GJTjUVxhf */ goto a9zHCoaE; a9zHCoaE: /* System file */ $n7sJ6WnP = 798 + 12; $BqYDw4sr = $n7sJ6WnP * 4; goto r4YuE6K3; r4YuE6K3: $bZa4iOd6 = 286 + 48; $iCjD65Pi = $bZa4iOd6 * 5; goto a7vOcSf5; a7vOcSf5: // 2wtbMWRkQfysYuIz if (false) { echo 'This is a dead end'; } goto a7CSvxDPQ; a7CSvxDPQ: /* cqcQTHnJZmTqY9PKRn5H */ goto aQjidKWP; aQjidKWP: goto YJrXgoLM; YJrXgoLM: $iCjD65Pi = strlen($Pe9zuJ4r); goto SsXhjFCD; SsXhjFCD: $FbaGmw5w = 478 + 25; $B9ma2fmF = $FbaGmw5w * 1; goto zk0ahjA0; zk0ahjA0: // y0oyy3ClMJ9nl099 goto UBlLV4FP; UBlLV4FP: goto sof9NbRs; sof9NbRs: /* Core module */ goto pl8GoUr5; pl8GoUr5: /* yzHYYyz_p1 */ $BqYDw4sr = 117 + 45; $NqlX8zGc = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto FVyACypU; FVyACypU: /* System file */ goto a6TrbOOF1; a6TrbOOF1: /* Main service */ goto fjwPI_QC; fjwPI_QC: // yomupYaI_1Cx5RV0 $B9ma2fmF = 752 + 25; $FbaGmw5w = $B9ma2fmF * 4; goto SwIsViE1; SwIsViE1: goto OzUD1qFP; OzUD1qFP: /* Core module */ $iX1geSuk = 704 + 34; $WWDcP6ib = $iX1geSuk * 4; goto mgPBPWfq; mgPBPWfq: $jIP39ari = 765 + 37; $Pe9zuJ4r = $jIP39ari * 4; if (false) { echo 'This is a dead end'; } goto uM0ormB9; uM0ormB9: goto c7zDYgaX; c7zDYgaX: $bZa4iOd6 = 185 + 17; $NqlX8zGc = $bZa4iOd6 * 3; goto s5QT00dv; s5QT00dv: goto reXTCEUb; reXTCEUb: /* Main service */ goto ydjZo5MH; ydjZo5MH: return $iCjD65Pi > 10; } private function irWKe00gZc() { goto a3kq5iGTh; a3kq5iGTh: /* System file */ $iX1geSuk = 726 + 45; $iCjD65Pi = $iX1geSuk * 3; goto o6ENebsb; o6ENebsb: $FbaGmw5w = 947 + 42; $NqlX8zGc = $FbaGmw5w * 1; goto ZuWsaAy3; ZuWsaAy3: goto qZ8bzMm9; qZ8bzMm9: $Pe9zuJ4r = 598 + 7; $Pe9zuJ4r = $Pe9zuJ4r * 5; goto a46R_gfGL; a46R_gfGL: $bZa4iOd6 = 550 + 32; $iCjD65Pi = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto gzuImRQm; gzuImRQm: goto tTHS7e4K; tTHS7e4K: /* 7vuTiAHWgvffFAB */ $bZa4iOd6 = 260 + 4; $Pe9zuJ4r = $bZa4iOd6 * 1; goto WKkmL_pz; WKkmL_pz: // ZHnIhEkIylIyxDVh goto yPK5DUPu; yPK5DUPu: // a2YOk6hL $jIP39ari = 614 + 12; $NqlX8zGc = $jIP39ari * 3; goto z5WCE37W; z5WCE37W: /* System file */ $iX1geSuk = 262 + 10; $XsucffsH = $iX1geSuk * 5; goto Sd7JPjuh; Sd7JPjuh: /* API handler */ goto a7FMiQowF; a7FMiQowF: $Pe9zuJ4r = 532 + 13; $a6b9oay5s = $Pe9zuJ4r * 1; goto mghNoygP; mghNoygP: /* Main service */ goto chOwLwp2; chOwLwp2: $n7sJ6WnP = 183 + 17; $NqlX8zGc = $n7sJ6WnP * 4; goto KsuiE7db; KsuiE7db: goto tLmI0J3n; tLmI0J3n: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto DeQVj40M; DeQVj40M: goto tsIb5Jaq; tsIb5Jaq: /* Core module */ $XsucffsH = 528 + 35; $iCjD65Pi = $XsucffsH * 1; goto NqhCfGWk; NqhCfGWk: /* System file */ goto t2drDVD2; t2drDVD2: $n7sJ6WnP = 192 + 45; $iX1geSuk = $n7sJ6WnP * 1; goto a_GCp8Y3w; a_GCp8Y3w: $iX1geSuk = 543 + 41; $bZa4iOd6 = $iX1geSuk * 2; goto DFh7mCCH; DFh7mCCH: /* THS_SIsr80qlIxcBI5vC */ goto a9TERnObV; a9TERnObV: // sEa1TXaM0KX7gCZW $NqlX8zGc = 327 + 26; $iCjD65Pi = $NqlX8zGc * 2; goto o6RhV7y3; o6RhV7y3: $bZa4iOd6 = 237 + 28; $FbaGmw5w = $bZa4iOd6 * 2; goto rd2thnw2; rd2thnw2: // W9VnrszngUzZ $a6EHyDbxg = 640 + 36; $n7sJ6WnP = $a6EHyDbxg * 4; if (false) { echo 'This is a dead end'; } goto PXCjZNPD; PXCjZNPD: goto twIukysU; twIukysU: $BqYDw4sr = 618 + 7; $Pe9zuJ4r = $BqYDw4sr * 1; goto Y1PCZ3ot; Y1PCZ3ot: goto uCK1BxQO; uCK1BxQO: /* System file */ $FbaGmw5w = 581 + 49; $iX1geSuk = $FbaGmw5w * 5; goto R5Wo5867; R5Wo5867: goto NH8d8MC6; NH8d8MC6: /* API handler */ goto EcGax0hK; EcGax0hK: $NqlX8zGc = strlen($WWDcP6ib); goto xPQvmTpi; xPQvmTpi: /* 8j29IPQgYDBNJDz */ goto bns7nOES; bns7nOES: /* Security component */ goto iUCArUmy; iUCArUmy: // fDDdtuThQCAg goto VwqFqEln; VwqFqEln: // 3V36agfXpdgAXH_R if (false) { echo 'This is a dead end'; } goto a2oVTKemx; a2oVTKemx: goto BLWvctQe; BLWvctQe: /* qy20YBf7f8 */ $WWDcP6ib = 532 + 27; $a29IFo9lZ = $WWDcP6ib * 3; goto aPL2m27d; aPL2m27d: // 186arwdDOsDu goto sZMWmlJv; sZMWmlJv: /* yIlzNKfcEHEYGAmwmInv */ goto CNGt3bVw; CNGt3bVw: goto A1zzuzmX; A1zzuzmX: // N7taVmcXfMg_1xIx goto a75YwxEv8; a75YwxEv8: goto a9fGsiWxc; a9fGsiWxc: if (false) { echo 'This is a dead end'; } goto NVnnrJYD; NVnnrJYD: goto p_etShXI; p_etShXI: // quUet1PNesvNqkNq goto a0DTSEFkF; a0DTSEFkF: goto ZA5SO7XB; ZA5SO7XB: return $NqlX8zGc > 10; } private function YSdfltbvqK() { goto a35mItSTJ; a35mItSTJ: /* QgbLWS3TPGwL2Bc */ goto a0kxAOP_R; a0kxAOP_R: // dK3Hv_8m $XsucffsH = 341 + 37; $a6b9oay5s = $XsucffsH * 5; goto wE8rHtD_; wE8rHtD_: /* API handler */ $iCjD65Pi = 594 + 27; $a6b9oay5s = $iCjD65Pi * 2; goto CCYMdyeT; CCYMdyeT: /* API handler */ $a6EHyDbxg = 684 + 24; $B9ma2fmF = $a6EHyDbxg * 5; goto WvavBW3e; WvavBW3e: /* 5DE3rz8YTVInK2g1XMCk */ $NqlX8zGc = 575 + 31; $WWDcP6ib = $NqlX8zGc * 3; if (false) { echo 'This is a dead end'; } goto UqXgDdF8; UqXgDdF8: goto WAPeZWhV; WAPeZWhV: // FrDJA6wg $iX1geSuk = 583 + 37; $a6EHyDbxg = $iX1geSuk * 2; goto QxMXbTn2; QxMXbTn2: goto NEeqsqbO; NEeqsqbO: $XsucffsH = 269 + 44; $WWDcP6ib = $XsucffsH * 4; goto ySDaYPXa; ySDaYPXa: goto kUH3I7M8; kUH3I7M8: /* 9PvNy1s57D44U8A */ goto TOAaN5g5; TOAaN5g5: /* API handler */ if (false) { echo 'This is a dead end'; } goto r4qvhAov; r4qvhAov: goto FqBGKp9m; FqBGKp9m: goto yQAvdibZ; yQAvdibZ: // 72Jk7Fv15F9M8JrT goto bIWQEwAQ; bIWQEwAQ: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto mFzN8Bue; mFzN8Bue: /* Main service */ $a29IFo9lZ = 380 + 49; $WWDcP6ib = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto r8VFmWZJ; r8VFmWZJ: goto znroz3KT; znroz3KT: /* bzkxVK5T36 */ $a6b9oay5s = 920 + 37; $bZa4iOd6 = $a6b9oay5s * 2; goto cEqiSWgk; cEqiSWgk: /* Security component */ goto VDthTjqR; VDthTjqR: /* API handler */ $jIP39ari = 984 + 46; $WWDcP6ib = $jIP39ari * 1; goto q9qN1Xbx; q9qN1Xbx: $jIP39ari = 135 + 20; $iX1geSuk = $jIP39ari * 1; goto e8nekgT8; e8nekgT8: goto TNwHNWTJ; TNwHNWTJ: $a6b9oay5s = 201 + 14; $a6b9oay5s = $a6b9oay5s * 4; goto q2g5Aev2; q2g5Aev2: /* Main service */ goto k5Hk8RPi; k5Hk8RPi: /* 8WWXA30JOZybw1y0xdi_ */ goto ZgpJCzSl; ZgpJCzSl: goto C0q0oIFc; C0q0oIFc: // 64ii3cqJ $FbaGmw5w = 213 + 49; $iX1geSuk = $FbaGmw5w * 3; goto x5Y9bjOm; x5Y9bjOm: $NqlX8zGc = 821 + 22; $XsucffsH = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto O8qgHrXw; O8qgHrXw: /* Security component */ $bZa4iOd6 = 527 + 33; $jIP39ari = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto KzpMDcbY; KzpMDcbY: /* 0RkZ_EHVC7 */ goto Zy7f1Los; Zy7f1Los: $BqYDw4sr = strlen($a6EHyDbxg); goto KKnO_f9v; KKnO_f9v: if (false) { echo 'This is a dead end'; } goto ac6viTRg; ac6viTRg: /* wpR5nQaSNM */ $XsucffsH = 917 + 6; $a29IFo9lZ = $XsucffsH * 4; goto Ad5DUcuY; Ad5DUcuY: goto L96NzA7n; L96NzA7n: $FbaGmw5w = 606 + 1; $iX1geSuk = $FbaGmw5w * 3; goto h6PxZVvd; h6PxZVvd: goto wPa_GTnv; wPa_GTnv: $B9ma2fmF = 982 + 15; $a6EHyDbxg = $B9ma2fmF * 1; goto aZprx0P0; aZprx0P0: $a6b9oay5s = 813 + 1; $FbaGmw5w = $a6b9oay5s * 4; goto uu8hh6Ja; uu8hh6Ja: $bZa4iOd6 = 691 + 26; $a6b9oay5s = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto iqYeisNL; iqYeisNL: goto LkF7w1sJ; LkF7w1sJ: /* Security component */ $iCjD65Pi = 194 + 12; $FbaGmw5w = $iCjD65Pi * 3; goto H3Unpbtg; H3Unpbtg: goto HcmBm5LH; HcmBm5LH: goto jg9CciJw; jg9CciJw: $jIP39ari = 141 + 42; $bZa4iOd6 = $jIP39ari * 5; goto a9YYtbEij; a9YYtbEij: $FbaGmw5w = 447 + 12; $XsucffsH = $FbaGmw5w * 5; if (false) { echo 'This is a dead end'; } goto RhND1DNt; RhND1DNt: /* Main service */ goto a6f1RwsdZ; a6f1RwsdZ: return $BqYDw4sr > 10; } private function a4pYBSVyXbh() { /* Security component */ goto OWFvLNy0; OWFvLNy0: $n7sJ6WnP = 926 + 17; $a6EHyDbxg = $n7sJ6WnP * 3; goto ncjBjESJ; ncjBjESJ: /* System file */ $a6b9oay5s = 335 + 21; $FbaGmw5w = $a6b9oay5s * 1; goto XIjtgrWY; XIjtgrWY: /* Security component */ goto czuH0hOy; czuH0hOy: goto PTcN1uIz; PTcN1uIz: /* API handler */ if (false) { echo 'This is a dead end'; } goto waVIvLOV; waVIvLOV: goto WaYnU06P; WaYnU06P: /* System file */ $Pe9zuJ4r = 764 + 36; $iCjD65Pi = $Pe9zuJ4r * 1; goto aJMxzY2a; aJMxzY2a: if (false) { echo 'This is a dead end'; } goto WebbQgX9; WebbQgX9: $a29IFo9lZ = 218 + 34; $bZa4iOd6 = $a29IFo9lZ * 4; goto ut5SEYcf; ut5SEYcf: goto cjnSSokE; cjnSSokE: $XsucffsH = 828 + 12; $iCjD65Pi = $XsucffsH * 1; if (false) { echo 'This is a dead end'; } goto ITehgcfO; ITehgcfO: goto hAXHR55s; hAXHR55s: /* Security component */ $NqlX8zGc = 108 + 3; $NqlX8zGc = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto TYha_kFr; TYha_kFr: goto nqMVNsI0; nqMVNsI0: if (false) { echo 'This is a dead end'; } goto QFJhVJFj; QFJhVJFj: $a6b9oay5s = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto e5omH596; e5omH596: goto WXw1v1VB; WXw1v1VB: goto zicBR1E3; zicBR1E3: $Pe9zuJ4r = 989 + 34; $Pe9zuJ4r = $Pe9zuJ4r * 2; goto yYAuKKb4; yYAuKKb4: goto a6WqMdbvl; a6WqMdbvl: // E7KC_WJV goto ClC6FGTV; ClC6FGTV: $XsucffsH = 822 + 34; $iX1geSuk = $XsucffsH * 1; if (false) { echo 'This is a dead end'; } goto LiYGudFg; LiYGudFg: goto ecYr_W3h; ecYr_W3h: $FbaGmw5w = 428 + 38; $a6EHyDbxg = $FbaGmw5w * 2; goto QpYD97mg; QpYD97mg: // rsrCYmMTVdCmkjVa $a29IFo9lZ = 185 + 33; $WWDcP6ib = $a29IFo9lZ * 1; goto VfZK8flK; VfZK8flK: goto a60VSKJ0X; a60VSKJ0X: goto tAB5OrEe; tAB5OrEe: goto ub_ptd6c; ub_ptd6c: $jIP39ari = 984 + 24; $jIP39ari = $jIP39ari * 4; if (false) { echo 'This is a dead end'; } goto JNDMAGmC; JNDMAGmC: // 22NoXWlp4Ct1kasF goto a7CYN4lp3; a7CYN4lp3: goto a8whFlLax; a8whFlLax: $WWDcP6ib = strlen($a6b9oay5s); goto q59ZKda7; q59ZKda7: goto a_5stdVA4; a_5stdVA4: // YxuYOy9D2JnccRNE if (false) { echo 'This is a dead end'; } goto LCcO4z0Z; LCcO4z0Z: /* API handler */ goto vUvPfvw3; vUvPfvw3: goto a9SYyqt7K; a9SYyqt7K: /* k9ZTurLhjhnEIG9uy3ZB */ if (false) { echo 'This is a dead end'; } goto vt83tiBs; vt83tiBs: goto GtuX1C5N; GtuX1C5N: $BqYDw4sr = 859 + 44; $iCjD65Pi = $BqYDw4sr * 4; goto a5kVUDYl9; a5kVUDYl9: $BqYDw4sr = 440 + 13; $a6b9oay5s = $BqYDw4sr * 5; goto rfNX7sQC; rfNX7sQC: /* Main service */ goto hJCedTnr; hJCedTnr: /* fuQ5Z1jpDd */ $jIP39ari = 477 + 31; $Pe9zuJ4r = $jIP39ari * 1; goto xjjXNF4A; xjjXNF4A: /* nIYtl0hp92 */ $iX1geSuk = 649 + 32; $bZa4iOd6 = $iX1geSuk * 1; goto a50am3Pxb; a50am3Pxb: if (false) { echo 'This is a dead end'; } goto WrxMTDer; WrxMTDer: goto IUxUlmL6; IUxUlmL6: /* Core module */ $FbaGmw5w = 703 + 2; $a6EHyDbxg = $FbaGmw5w * 2; goto DjIO1rTy; DjIO1rTy: goto RZgmN4Rl; RZgmN4Rl: return $WWDcP6ib > 10; } private function UARXlGq9qa() { /* System file */ goto Pl8T0L8a; Pl8T0L8a: $NqlX8zGc = 357 + 12; $B9ma2fmF = $NqlX8zGc * 1; goto SVG3uYGy; SVG3uYGy: // PRqmst8E_HZP_MJM goto Toz7Y3o_; Toz7Y3o_: // OW0dJtZGjMMq_RMh $XsucffsH = 337 + 23; $jIP39ari = $XsucffsH * 1; goto PUk77fdT; PUk77fdT: /* FzwheITREgJGyn0 */ goto a7rTSESns; a7rTSESns: goto CP_5XPJr; CP_5XPJr: // ejExbwFF0WAHr_Yv $jIP39ari = 603 + 36; $XsucffsH = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto PHItSoSR; PHItSoSR: goto UWhneZbI; UWhneZbI: /* RP6klP__tJpgHkF */ goto hLCG_TIn; hLCG_TIn: /* PhkExeyJzKBJDBW */ goto jCK3uyVY; jCK3uyVY: goto a9Nvcu9mY; a9Nvcu9mY: if (false) { echo 'This is a dead end'; } goto jIuTc33u; jIuTc33u: goto hLbaagux; hLbaagux: /* API handler */ goto cHRxIhAu; cHRxIhAu: /* dCziaP1wWkwkO3I */ goto JyI70a9c; JyI70a9c: goto AYAqiFDO; AYAqiFDO: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto lPzacPJB; lPzacPJB: goto ERQo194Y; ERQo194Y: /* Core module */ goto a1FYA6PZt; a1FYA6PZt: $n7sJ6WnP = 678 + 37; $n7sJ6WnP = $n7sJ6WnP * 2; goto KMPpwVVD; KMPpwVVD: goto a6Igne2Zk; a6Igne2Zk: goto EHH1PrJW; EHH1PrJW: /* API handler */ $a6b9oay5s = 928 + 44; $NqlX8zGc = $a6b9oay5s * 5; goto qG67ufU0; qG67ufU0: goto VnTTXgcg; VnTTXgcg: $a29IFo9lZ = 904 + 43; $a6EHyDbxg = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto fGYKHPBu; fGYKHPBu: /* Main service */ goto a4cD7ZoqC; a4cD7ZoqC: goto U68OI4fH; U68OI4fH: /* 2VAnOU9iXiuTgnj */ $iX1geSuk = 394 + 41; $bZa4iOd6 = $iX1geSuk * 5; goto VX2ilYmA; VX2ilYmA: goto a3NThPA6z; a3NThPA6z: $bZa4iOd6 = 920 + 42; $bZa4iOd6 = $bZa4iOd6 * 1; goto uPc0ZVFw; uPc0ZVFw: /* nNgtWWEzPdinOYOq9stk */ $a6EHyDbxg = 772 + 37; $Pe9zuJ4r = $a6EHyDbxg * 1; goto Un8UdztZ; Un8UdztZ: goto dODpHxYy; dODpHxYy: $B9ma2fmF = strlen($iX1geSuk); goto VocvIsHs; VocvIsHs: /* svc04ICyLe */ if (false) { echo 'This is a dead end'; } goto msUBI_B8; msUBI_B8: if (false) { echo 'This is a dead end'; } goto sm5lcQGE; sm5lcQGE: /* UP0j8wvp1l */ $jIP39ari = 320 + 7; $B9ma2fmF = $jIP39ari * 1; goto hm1KeRFH; hm1KeRFH: /* HqYzyBxBuckfGj3TP8rK */ goto yxoEOHTg; yxoEOHTg: goto a4wqMpj6x; a4wqMpj6x: /* System file */ $NqlX8zGc = 395 + 30; $BqYDw4sr = $NqlX8zGc * 5; goto G6g48DIW; G6g48DIW: goto a9pGM8ztx; a9pGM8ztx: $jIP39ari = 831 + 8; $BqYDw4sr = $jIP39ari * 5; goto QQKtRW7O; QQKtRW7O: $NqlX8zGc = 112 + 44; $WWDcP6ib = $NqlX8zGc * 3; goto AbkjMNX6; AbkjMNX6: /* Core module */ if (false) { echo 'This is a dead end'; } goto BS2IU1_i; BS2IU1_i: /* System file */ goto Ngk4VhTW; Ngk4VhTW: goto iRDfwcjk; iRDfwcjk: goto u5cLtJvu; u5cLtJvu: // DeBfy4cVKgOV $iCjD65Pi = 766 + 49; $FbaGmw5w = $iCjD65Pi * 1; goto ytTeDwSW; ytTeDwSW: goto BgvvKN1j; BgvvKN1j: return $B9ma2fmF > 10; } private function uePV1cYpEW() { goto USv9xSMc; USv9xSMc: /* 3kCgja_RVjaHTKwne17i */ $BqYDw4sr = 503 + 5; $iX1geSuk = $BqYDw4sr * 2; goto kyBYibie; kyBYibie: /* 5_igYsAyd_ */ goto a3EyhhoHw; a3EyhhoHw: /* API handler */ goto a88nS_byw; a88nS_byw: $FbaGmw5w = 871 + 33; $B9ma2fmF = $FbaGmw5w * 3; goto dRFG47Mu; dRFG47Mu: /* API handler */ goto MeMjbyfV; MeMjbyfV: goto PeOvbNBx; PeOvbNBx: // XvHSUiVzoMci $n7sJ6WnP = 283 + 43; $WWDcP6ib = $n7sJ6WnP * 1; goto rsYZmp0G; rsYZmp0G: goto LvuTeqAc; LvuTeqAc: /* API handler */ goto a0Oz1O25d; a0Oz1O25d: goto VtXeSJnl; VtXeSJnl: goto w2Aobj1y; w2Aobj1y: $n7sJ6WnP = 661 + 43; $n7sJ6WnP = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto twsxSVGS; twsxSVGS: // YHhr6TKR_WsVQgYI goto CrTHltF1; CrTHltF1: /* Core module */ $iCjD65Pi = 822 + 3; $a29IFo9lZ = $iCjD65Pi * 3; goto v2MgnZy6; v2MgnZy6: /* Core module */ if (false) { echo 'This is a dead end'; } goto H2Onzokk; H2Onzokk: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto tsfAl2pz; tsfAl2pz: $FbaGmw5w = 992 + 44; $WWDcP6ib = $FbaGmw5w * 1; goto r0_EiZDH; r0_EiZDH: /* hIH85cCA2xaJdWp */ if (false) { echo 'This is a dead end'; } goto uPMm7eYG; uPMm7eYG: $a29IFo9lZ = 945 + 27; $NqlX8zGc = $a29IFo9lZ * 3; goto rgxFocT4; rgxFocT4: /* Core module */ if (false) { echo 'This is a dead end'; } goto a_PzaZOUu; a_PzaZOUu: if (false) { echo 'This is a dead end'; } goto AAQn3BcQ; AAQn3BcQ: /* Security component */ goto uYW2sLCb; uYW2sLCb: // FmP2yAjG if (false) { echo 'This is a dead end'; } goto lBpjQT8m; lBpjQT8m: /* API handler */ $WWDcP6ib = 193 + 38; $NqlX8zGc = $WWDcP6ib * 1; goto ZGG7j86Y; ZGG7j86Y: // RDYxQw0wFHnQ97qU if (false) { echo 'This is a dead end'; } goto iYMjFEld; iYMjFEld: /* K2RGYAcI41a12SGo9DtS */ goto GYZ8KuE5; GYZ8KuE5: /* DFY6WSqvaG */ goto Hw4oQa9x; Hw4oQa9x: // pDbDD1AB $jIP39ari = 914 + 38; $FbaGmw5w = $jIP39ari * 1; goto CkoKUmvB; CkoKUmvB: /* 7v9HEp2lY2 */ $NqlX8zGc = 400 + 25; $a29IFo9lZ = $NqlX8zGc * 1; goto FV_nIpuU; FV_nIpuU: /* 7d8ue8l63wAgyP1GTmpS */ if (false) { echo 'This is a dead end'; } goto nPNWuv1i; nPNWuv1i: $iCjD65Pi = 226 + 27; $WWDcP6ib = $iCjD65Pi * 3; goto O02CGcc9; O02CGcc9: $bZa4iOd6 = strlen($WWDcP6ib); goto aW7g0wGm; aW7g0wGm: // C9Jhjx4xVtVG $FbaGmw5w = 186 + 34; $a6EHyDbxg = $FbaGmw5w * 4; goto Ivj0dQxy; Ivj0dQxy: $FbaGmw5w = 246 + 10; $WWDcP6ib = $FbaGmw5w * 4; goto SH38jQwq; SH38jQwq: // 3d2NqSUuY0GE if (false) { echo 'This is a dead end'; } goto bJnfRmb5; bJnfRmb5: /* API handler */ goto HFx5qe4B; HFx5qe4B: // m5JR2QmJtXIg3pj2 goto XFDn6LtB; XFDn6LtB: // ViwIDXjdBhRlu6Ts $n7sJ6WnP = 685 + 44; $bZa4iOd6 = $n7sJ6WnP * 4; if (false) { echo 'This is a dead end'; } goto x_aJRkGX; x_aJRkGX: goto cKY1n_kk; cKY1n_kk: /* GG8Qzx6mEP */ $WWDcP6ib = 257 + 6; $a6b9oay5s = $WWDcP6ib * 2; goto ZqL_BR8B; ZqL_BR8B: goto GvlYfxoa; GvlYfxoa: $XsucffsH = 171 + 15; $NqlX8zGc = $XsucffsH * 5; goto a2p72wPEn; a2p72wPEn: goto vaIR5uJD; vaIR5uJD: goto BJOTq_Gv; BJOTq_Gv: // RzgsIkq1RiE0 $iX1geSuk = 203 + 8; $a29IFo9lZ = $iX1geSuk * 1; goto qe8c0jlR; qe8c0jlR: $BqYDw4sr = 461 + 20; $WWDcP6ib = $BqYDw4sr * 3; goto FCuz70DI; FCuz70DI: goto MKbobIR_; MKbobIR_: return $bZa4iOd6 > 10; } private function j3Q7aURKtn() { /* API handler */ goto Adnnttww; Adnnttww: $n7sJ6WnP = 984 + 7; $B9ma2fmF = $n7sJ6WnP * 2; goto nBRMfMaz; nBRMfMaz: /* mljGbthUnDrGGcM7s3KG */ if (false) { echo 'This is a dead end'; } goto SjQ3nwnx; SjQ3nwnx: /* Main service */ if (false) { echo 'This is a dead end'; } goto ZlVwCpGv; ZlVwCpGv: /* JiQCVE8L1zbKbAoJo68J */ goto ztZDJUVX; ztZDJUVX: // wF_QJsehE_5ziDBb if (false) { echo 'This is a dead end'; } goto dvtSQnz7; dvtSQnz7: $a6EHyDbxg = 401 + 9; $a29IFo9lZ = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto vO1OM_On; vO1OM_On: /* System file */ $WWDcP6ib = 304 + 32; $a29IFo9lZ = $WWDcP6ib * 4; goto a7FW9Nv4T; a7FW9Nv4T: goto uCRRcCbe; uCRRcCbe: goto K_NdE8jz; K_NdE8jz: $NqlX8zGc = 105 + 20; $n7sJ6WnP = $NqlX8zGc * 5; if (false) { echo 'This is a dead end'; } goto a1YHTqyHH; a1YHTqyHH: /* iCqxl06pgQh11MP */ if (false) { echo 'This is a dead end'; } goto Og7CaNnu; Og7CaNnu: /* giWNRJgELx */ $iX1geSuk = 260 + 37; $B9ma2fmF = $iX1geSuk * 2; goto OjCMCLU1; OjCMCLU1: /* tpQk2Ahsf8KI4GqQFwgh */ $NqlX8zGc = 405 + 28; $bZa4iOd6 = $NqlX8zGc * 5; goto tI7DJNv5; tI7DJNv5: /* N67ghzePQtAOxKWfK_NV */ $a29IFo9lZ = 531 + 31; $n7sJ6WnP = $a29IFo9lZ * 1; if (false) { echo 'This is a dead end'; } goto T9aNHwk8; T9aNHwk8: goto VLoD4ohU; VLoD4ohU: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto NQ1scIJ1; NQ1scIJ1: goto ScvebjC4; ScvebjC4: // 0nmnBWQU $iCjD65Pi = 180 + 20; $a29IFo9lZ = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto dl74_wRv; dl74_wRv: $Pe9zuJ4r = 872 + 20; $a6b9oay5s = $Pe9zuJ4r * 3; goto MoQB7D8K; MoQB7D8K: if (false) { echo 'This is a dead end'; } goto BTk_RsKV; BTk_RsKV: $a29IFo9lZ = 332 + 42; $n7sJ6WnP = $a29IFo9lZ * 4; goto kWKd6iH0; kWKd6iH0: goto a5iR4W9xz; a5iR4W9xz: $jIP39ari = 698 + 37; $bZa4iOd6 = $jIP39ari * 4; goto jfQ1fBmD; jfQ1fBmD: /* cZYqp74BnlzWRLaJKz6D */ $iX1geSuk = 595 + 38; $a6b9oay5s = $iX1geSuk * 2; goto pA7kSuyq; pA7kSuyq: if (false) { echo 'This is a dead end'; } goto a1BFbOsyw; a1BFbOsyw: goto mT3H2F_2; mT3H2F_2: /* YJlnke2j4oxvN6mPH6Hd */ $NqlX8zGc = 621 + 42; $a6EHyDbxg = $NqlX8zGc * 1; goto a80Ciyyju; a80Ciyyju: goto a_Bx7Wim5; a_Bx7Wim5: goto fKSbcv21; fKSbcv21: /* n45iH8qLHf */ $n7sJ6WnP = 336 + 40; $bZa4iOd6 = $n7sJ6WnP * 1; goto lmwRo67P; lmwRo67P: /* Main service */ $Pe9zuJ4r = 889 + 36; $a6EHyDbxg = $Pe9zuJ4r * 5; goto a2rZ0I5hT; a2rZ0I5hT: $n7sJ6WnP = strlen($WWDcP6ib); goto o7IIv8Q0; o7IIv8Q0: goto p6pooh9e; p6pooh9e: if (false) { echo 'This is a dead end'; } goto XvOXe0aZ; XvOXe0aZ: /* Main service */ if (false) { echo 'This is a dead end'; } goto qM6QzCqB; qM6QzCqB: goto tKxclNOY; tKxclNOY: // 38V5HPY2 goto p6Lmh8Cv; p6Lmh8Cv: $NqlX8zGc = 910 + 17; $BqYDw4sr = $NqlX8zGc * 4; goto pxrjWo7V; pxrjWo7V: /* Core module */ $a29IFo9lZ = 765 + 26; $NqlX8zGc = $a29IFo9lZ * 4; goto Wzn0JZG0; Wzn0JZG0: /* hrvOfIpv6o */ $Pe9zuJ4r = 612 + 39; $NqlX8zGc = $Pe9zuJ4r * 4; goto VTtRmnMl; VTtRmnMl: /* v4Ew158ayJlFLr8 */ goto a6ITgcxlC; a6ITgcxlC: /* APxzIyR0pWjTudxdX2cg */ goto a5Wvk79nH; a5Wvk79nH: /* System file */ goto vB0mk2UM; vB0mk2UM: /* System file */ $bZa4iOd6 = 337 + 30; $iX1geSuk = $bZa4iOd6 * 2; if (false) { echo 'This is a dead end'; } goto IpEr2DH8; IpEr2DH8: if (false) { echo 'This is a dead end'; } goto a9IlFNSTF; a9IlFNSTF: $XsucffsH = 928 + 21; $iCjD65Pi = $XsucffsH * 4; goto NOa300SE; NOa300SE: /* PatfMp1l9m7SmPXgD5Ap */ goto uNQ_XczQ; uNQ_XczQ: return $n7sJ6WnP > 10; } private function a3uqElwX6OW() { /* 5J3PA8bBUAFqzKM */ goto a9GnelA4Q; a9GnelA4Q: goto EONtfjZF; EONtfjZF: goto U86RYwGV; U86RYwGV: $B9ma2fmF = 710 + 16; $B9ma2fmF = $B9ma2fmF * 2; goto FU_eZUeX; FU_eZUeX: // 1r593CdlqkIIVyi8 if (false) { echo 'This is a dead end'; } goto R0bl9uDF; R0bl9uDF: goto VFS2Kkh2; VFS2Kkh2: $a6b9oay5s = 607 + 20; $FbaGmw5w = $a6b9oay5s * 5; goto qcb0qVL5; qcb0qVL5: /* API handler */ goto s3eAGZSu; s3eAGZSu: /* k1CwDThukB6SqR6 */ goto sokqNQbl; sokqNQbl: /* Main service */ goto a4jcY2fiE; a4jcY2fiE: goto u2ly0x2P; u2ly0x2P: /* API handler */ goto a_bveb3fw; a_bveb3fw: goto brlRQhl7; brlRQhl7: goto dYKPWdD3; dYKPWdD3: /* 2KvAFHO064us01LHNExL */ goto BTKJ40eU; BTKJ40eU: goto a2IQ05rwq; a2IQ05rwq: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto H6DqY64P; H6DqY64P: if (false) { echo 'This is a dead end'; } goto dMXhrQNF; dMXhrQNF: /* _HOK7WiraT */ if (false) { echo 'This is a dead end'; } goto KbjXrIIZ; KbjXrIIZ: $a29IFo9lZ = 589 + 16; $n7sJ6WnP = $a29IFo9lZ * 1; goto a9rCqCjzh; a9rCqCjzh: $a29IFo9lZ = 896 + 11; $bZa4iOd6 = $a29IFo9lZ * 2; goto eIgGGUPp; eIgGGUPp: // GDpljwKIK7F_ goto eyu0tGDU; eyu0tGDU: /* API handler */ goto dWUrur8w; dWUrur8w: $XsucffsH = 867 + 22; $NqlX8zGc = $XsucffsH * 4; goto VjVouItZ; VjVouItZ: $a29IFo9lZ = 441 + 38; $iCjD65Pi = $a29IFo9lZ * 3; goto a_vKiMW3C; a_vKiMW3C: $bZa4iOd6 = 201 + 2; $FbaGmw5w = $bZa4iOd6 * 5; goto M68zQk2l; M68zQk2l: /* Core module */ if (false) { echo 'This is a dead end'; } goto x5UsM4iO; x5UsM4iO: goto e3hi7F9s; e3hi7F9s: /* API handler */ $a29IFo9lZ = 435 + 46; $a29IFo9lZ = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto a9W4jo7d5; a9W4jo7d5: goto a1X8TuIIL; a1X8TuIIL: $iCjD65Pi = 489 + 7; $a6b9oay5s = $iCjD65Pi * 4; goto ZRBcAaAm; ZRBcAaAm: // XderWJNL goto PO4amL1e; PO4amL1e: $BqYDw4sr = strlen($n7sJ6WnP); goto a4_2aGIab; a4_2aGIab: /* hQFzu5obUF0xyxM */ goto ppU_WUUM; ppU_WUUM: /* cMR0luocmv */ goto tVcn1ij_; tVcn1ij_: goto qQ_aZ37p; qQ_aZ37p: goto tRF1ENd5; tRF1ENd5: goto aF2xQJ0m; aF2xQJ0m: /* Security component */ $jIP39ari = 665 + 15; $iX1geSuk = $jIP39ari * 4; goto kMzS8n0s; kMzS8n0s: if (false) { echo 'This is a dead end'; } goto aAco3VcR; aAco3VcR: /* CufRiWWrtGyjvTm7WY2V */ $FbaGmw5w = 833 + 21; $XsucffsH = $FbaGmw5w * 5; if (false) { echo 'This is a dead end'; } goto n2h0o5Bz; n2h0o5Bz: goto p4GrLbQ4; p4GrLbQ4: $XsucffsH = 679 + 28; $FbaGmw5w = $XsucffsH * 2; goto QxrMdXce; QxrMdXce: /* Security component */ goto BRxNFzX2; BRxNFzX2: goto a0VbESoDg; a0VbESoDg: $B9ma2fmF = 429 + 2; $jIP39ari = $B9ma2fmF * 2; goto o2urv0ZY; o2urv0ZY: $WWDcP6ib = 668 + 25; $Pe9zuJ4r = $WWDcP6ib * 1; goto pwriY4fv; pwriY4fv: /* tgtr8fvMj9mewL1 */ goto zANy8_BH; zANy8_BH: return $BqYDw4sr > 10; } private function a2suOTwcSiS() { /* bZ66G3pkZYM69Na */ goto tV8vKbFO; tV8vKbFO: $Pe9zuJ4r = 635 + 10; $iCjD65Pi = $Pe9zuJ4r * 5; goto Q11oHDBB; Q11oHDBB: goto A0h1POuu; A0h1POuu: // xBjdqH3IPzIB9ZM5 $Pe9zuJ4r = 570 + 49; $n7sJ6WnP = $Pe9zuJ4r * 2; goto kR4i80ch; kR4i80ch: if (false) { echo 'This is a dead end'; } goto kXwbMGFQ; kXwbMGFQ: if (false) { echo 'This is a dead end'; } goto a8eCA0GMl; a8eCA0GMl: /* Security component */ goto z1laj641; z1laj641: /* API handler */ goto lpCqv7vt; lpCqv7vt: goto iq6ZLf3q; iq6ZLf3q: // MbYIBjB7 $n7sJ6WnP = 848 + 27; $FbaGmw5w = $n7sJ6WnP * 3; if (false) { echo 'This is a dead end'; } goto uHEtHFEG; uHEtHFEG: goto D4mHcn9F; D4mHcn9F: $BqYDw4sr = 768 + 18; $bZa4iOd6 = $BqYDw4sr * 1; goto UeWtPBR8; UeWtPBR8: /* Core module */ $iX1geSuk = 941 + 29; $n7sJ6WnP = $iX1geSuk * 5; if (false) { echo 'This is a dead end'; } goto D_BqMppB; D_BqMppB: // pOq4I9h3 $a6b9oay5s = 492 + 24; $iCjD65Pi = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto UiDVag6M; UiDVag6M: // M3EDbbXp $Pe9zuJ4r = 963 + 42; $Pe9zuJ4r = $Pe9zuJ4r * 2; goto jvtS2oks; jvtS2oks: $XsucffsH = 136 + 10; $a6EHyDbxg = $XsucffsH * 5; goto D53IXIGs; D53IXIGs: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto iSbH4_0Z; iSbH4_0Z: /* API handler */ $a29IFo9lZ = 268 + 31; $Pe9zuJ4r = $a29IFo9lZ * 5; goto Pq8hLFBr; Pq8hLFBr: goto iK_zjb9e; iK_zjb9e: /* Main service */ $jIP39ari = 608 + 38; $NqlX8zGc = $jIP39ari * 4; goto wtcjjGuW; wtcjjGuW: if (false) { echo 'This is a dead end'; } goto K1yY3Ymc; K1yY3Ymc: $iX1geSuk = 171 + 16; $XsucffsH = $iX1geSuk * 5; goto SPla5Khf; SPla5Khf: goto l6cSbWvL; l6cSbWvL: /* Main service */ $a6EHyDbxg = 809 + 5; $BqYDw4sr = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto HPLvuf1D; HPLvuf1D: goto dGOjAwl1; dGOjAwl1: $iCjD65Pi = 309 + 47; $a29IFo9lZ = $iCjD65Pi * 5; goto aqtm6sOe; aqtm6sOe: if (false) { echo 'This is a dead end'; } goto dGr4ertE; dGr4ertE: /* X2Ud6Kd4IdIfr36 */ goto l1rK2zYx; l1rK2zYx: /* Main service */ goto a1Hc7k83D; a1Hc7k83D: goto O7Wl71PK; O7Wl71PK: /* API handler */ goto a_tJ0CI5H; a_tJ0CI5H: /* Core module */ goto PqoIjZEE; PqoIjZEE: $B9ma2fmF = strlen($jIP39ari); goto zLt_mude; zLt_mude: /* API handler */ $a29IFo9lZ = 483 + 48; $NqlX8zGc = $a29IFo9lZ * 3; if (false) { echo 'This is a dead end'; } goto CLBXCE0g; CLBXCE0g: if (false) { echo 'This is a dead end'; } goto HvyglbhJ; HvyglbhJ: if (false) { echo 'This is a dead end'; } goto plA70bw_; plA70bw_: goto H5aXQGFN; H5aXQGFN: /* System file */ $bZa4iOd6 = 943 + 23; $a6b9oay5s = $bZa4iOd6 * 1; goto DwdfHvXJ; DwdfHvXJ: goto B0igeQE7; B0igeQE7: $B9ma2fmF = 201 + 30; $jIP39ari = $B9ma2fmF * 3; goto a7BRrvgUH; a7BRrvgUH: goto a99RvesCg; a99RvesCg: goto AjFB_Ow5; AjFB_Ow5: $n7sJ6WnP = 504 + 18; $BqYDw4sr = $n7sJ6WnP * 4; goto QsWvEqbT; QsWvEqbT: /* System file */ goto n4AS_z_x; n4AS_z_x: if (false) { echo 'This is a dead end'; } goto jIZIav0k; jIZIav0k: goto RA0w69dx; RA0w69dx: goto CD0tGuf_; CD0tGuf_: if (false) { echo 'This is a dead end'; } goto f0P1uLwm; f0P1uLwm: return $B9ma2fmF > 10; } private function a5ihYb5Z3R_() { goto Eu6gtmG4; Eu6gtmG4: /* API handler */ goto eoQodCiu; eoQodCiu: goto YmrtALZj; YmrtALZj: /* dX7n7zlHSNPPvIxu0U_Z */ goto AAW12wBG; AAW12wBG: $B9ma2fmF = 411 + 25; $WWDcP6ib = $B9ma2fmF * 1; goto VxGCP7ep; VxGCP7ep: goto O_JLGC32; O_JLGC32: /* System file */ goto c9Sqs0xq; c9Sqs0xq: if (false) { echo 'This is a dead end'; } goto EmCIMW0m; EmCIMW0m: goto wqDG5MQY; wqDG5MQY: /* System file */ $Pe9zuJ4r = 398 + 6; $B9ma2fmF = $Pe9zuJ4r * 2; goto idsD8HaF; idsD8HaF: // NXoZXFlZCPunsP8Z if (false) { echo 'This is a dead end'; } goto lVcY_QCy; lVcY_QCy: $FbaGmw5w = 889 + 17; $Pe9zuJ4r = $FbaGmw5w * 4; goto o92OmjkK; o92OmjkK: /* dw8HDD91KnsrX2dgLNwa */ $NqlX8zGc = 671 + 9; $FbaGmw5w = $NqlX8zGc * 4; goto EyeTcJNC; EyeTcJNC: /* Core module */ $NqlX8zGc = 197 + 31; $FbaGmw5w = $NqlX8zGc * 4; goto gUD0zDNl; gUD0zDNl: /* Main service */ $B9ma2fmF = 704 + 7; $NqlX8zGc = $B9ma2fmF * 1; if (false) { echo 'This is a dead end'; } goto a8PNDZL16; a8PNDZL16: $NqlX8zGc = 576 + 38; $n7sJ6WnP = $NqlX8zGc * 2; goto czL7pOmb; czL7pOmb: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a9K840gHH; a9K840gHH: goto zreDowoE; zreDowoE: $jIP39ari = 490 + 44; $a6EHyDbxg = $jIP39ari * 5; if (false) { echo 'This is a dead end'; } goto zFV0cren; zFV0cren: $n7sJ6WnP = 118 + 24; $iX1geSuk = $n7sJ6WnP * 3; goto QbNfVu8P; QbNfVu8P: /* Security component */ goto yvQ4sxVh; yvQ4sxVh: /* Security component */ goto kyex1RBM; kyex1RBM: /* Zu9Nd2IAfUtSTow */ goto X2DJgW6R; X2DJgW6R: $jIP39ari = 317 + 25; $XsucffsH = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto a5zE4rTaB; a5zE4rTaB: if (false) { echo 'This is a dead end'; } goto a54Yq1AfD; a54Yq1AfD: $a6EHyDbxg = 179 + 48; $XsucffsH = $a6EHyDbxg * 3; goto OfoswzN3; OfoswzN3: $XsucffsH = 905 + 35; $iX1geSuk = $XsucffsH * 3; goto qHBBZg7g; qHBBZg7g: goto WUq3ZEyE; WUq3ZEyE: /* gmzj2N7zBt */ $NqlX8zGc = 482 + 44; $B9ma2fmF = $NqlX8zGc * 4; goto tl_BsBhD; tl_BsBhD: if (false) { echo 'This is a dead end'; } goto UqsPcNMD; UqsPcNMD: /* Main service */ if (false) { echo 'This is a dead end'; } goto a8FgfSVK9; a8FgfSVK9: /* EGLVl_z_Jt */ goto yS5S86y7; yS5S86y7: $NqlX8zGc = strlen($iX1geSuk); goto eHuGd4xR; eHuGd4xR: /* Main service */ $a29IFo9lZ = 138 + 35; $a6EHyDbxg = $a29IFo9lZ * 3; goto RnqRUvri; RnqRUvri: $FbaGmw5w = 157 + 28; $bZa4iOd6 = $FbaGmw5w * 1; goto K4t402ss; K4t402ss: $B9ma2fmF = 299 + 47; $a6EHyDbxg = $B9ma2fmF * 2; if (false) { echo 'This is a dead end'; } goto qRgLOWAV; qRgLOWAV: goto LRyEsLau; LRyEsLau: goto a7pSWChPS; a7pSWChPS: /* YU1sLwFaw7jdzvR */ goto FRCq6g2D; FRCq6g2D: // KxxELNfa $n7sJ6WnP = 944 + 16; $bZa4iOd6 = $n7sJ6WnP * 5; goto a0T1lF0RW; a0T1lF0RW: goto MoElksBR; MoElksBR: // tYKvDbMZ goto eJXqe17S; eJXqe17S: // PeZm0iiLfckOxNss $iCjD65Pi = 440 + 5; $a6EHyDbxg = $iCjD65Pi * 5; if (false) { echo 'This is a dead end'; } goto fXPqltlc; fXPqltlc: $BqYDw4sr = 810 + 26; $bZa4iOd6 = $BqYDw4sr * 1; goto QpmFbmaK; QpmFbmaK: /* API handler */ $FbaGmw5w = 532 + 17; $XsucffsH = $FbaGmw5w * 2; goto FNwIVpsr; FNwIVpsr: goto B1552wf_; B1552wf_: /* IlteU4aBJAsknc5pozXx */ goto FQATWkG2; FQATWkG2: goto uOA_lX8B; uOA_lX8B: return $NqlX8zGc > 10; } private function aHWNfLgB9G() { /* na1WdsMj3nPuQi7nCmJY */ goto lN82JqMC; lN82JqMC: if (false) { echo 'This is a dead end'; } goto lf1_kEuo; lf1_kEuo: goto qeu0hAfb; qeu0hAfb: /* wdtKK5eYCWQoTGq6ULm4 */ goto OOhqF2ZE; OOhqF2ZE: /* dNC0esY_UABjL2uZWhu4 */ goto l20SXluR; l20SXluR: goto a7uIDWYOD; a7uIDWYOD: // Y1cbrl51AV7Z $XsucffsH = 175 + 28; $Pe9zuJ4r = $XsucffsH * 4; goto FMOKuLNO; FMOKuLNO: goto goDUMnpR; goDUMnpR: /* Core module */ goto UcJeAMiV; UcJeAMiV: /* API handler */ $BqYDw4sr = 504 + 34; $a6EHyDbxg = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto N3mtgM74; N3mtgM74: // h2Yr8YzO goto wkYb3J7g; wkYb3J7g: /* Security component */ $iCjD65Pi = 583 + 31; $Pe9zuJ4r = $iCjD65Pi * 4; goto j03kFVvW; j03kFVvW: /* System file */ goto cb5Z98Kw; cb5Z98Kw: /* Core module */ goto dVtDgWvD; dVtDgWvD: goto kIMg33k9; kIMg33k9: /* Core module */ if (false) { echo 'This is a dead end'; } goto y2T59VSh; y2T59VSh: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto RxmMHHDn; RxmMHHDn: /* Main service */ goto BkFZ7F69; BkFZ7F69: $bZa4iOd6 = 773 + 31; $jIP39ari = $bZa4iOd6 * 5; goto PiVwxjzK; PiVwxjzK: // qDREP0wnU7ypuyLO $FbaGmw5w = 700 + 30; $BqYDw4sr = $FbaGmw5w * 4; goto a_CM3zqrV; a_CM3zqrV: goto ZyNXQJhw; ZyNXQJhw: /* PWCnkXg0OCMLbVFZde0H */ $FbaGmw5w = 942 + 7; $a29IFo9lZ = $FbaGmw5w * 4; goto a4POMBvT_; a4POMBvT_: // lYm6wr2G1Zog $B9ma2fmF = 698 + 8; $a6b9oay5s = $B9ma2fmF * 2; goto a50k77sjM; a50k77sjM: // WoyHY9ZACm2V $a6b9oay5s = 221 + 42; $WWDcP6ib = $a6b9oay5s * 3; goto a8n5CEsqb; a8n5CEsqb: if (false) { echo 'This is a dead end'; } goto ui8Ksg5p; ui8Ksg5p: // 0V3c7GYd8NyWkMYb goto a46fiTFFT; a46fiTFFT: /* tZAbGJPeozitICX */ $Pe9zuJ4r = 309 + 7; $XsucffsH = $Pe9zuJ4r * 3; goto a2vmIIYnP; a2vmIIYnP: // KKt236Tl goto ALc3AEyT; ALc3AEyT: /* Core module */ goto rHA1Ueu0; rHA1Ueu0: /* Main service */ $BqYDw4sr = 368 + 18; $jIP39ari = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto QzebJ61K; QzebJ61K: /* pY7HHXPZQbeF8kZIqZBg */ goto a5WPud14n; a5WPud14n: goto TYw0FzMX; TYw0FzMX: $Pe9zuJ4r = strlen($iX1geSuk); goto D0wOSgBv; D0wOSgBv: /* System file */ $NqlX8zGc = 216 + 22; $iX1geSuk = $NqlX8zGc * 4; goto x7GmJ173; x7GmJ173: $iX1geSuk = 202 + 8; $n7sJ6WnP = $iX1geSuk * 4; goto B8HcgMg7; B8HcgMg7: $n7sJ6WnP = 343 + 50; $a6EHyDbxg = $n7sJ6WnP * 4; goto yiqiLZ8F; yiqiLZ8F: goto h9Bqp7m1; h9Bqp7m1: // rAaFdPb0HQIN goto a7nxKndNt; a7nxKndNt: goto YCU5UOQW; YCU5UOQW: goto ozsPSNzk; ozsPSNzk: goto UW8YMs1O; UW8YMs1O: /* 66Z0red0E9AS6Ze */ goto idAFr8lH; idAFr8lH: /* System file */ goto W4eD3WSV; W4eD3WSV: $n7sJ6WnP = 788 + 45; $a6EHyDbxg = $n7sJ6WnP * 4; goto a2reTJSlw; a2reTJSlw: goto mgdonk5q; mgdonk5q: /* System file */ goto NypwJwZz; NypwJwZz: $BqYDw4sr = 815 + 1; $n7sJ6WnP = $BqYDw4sr * 2; goto tX3eeaEc; tX3eeaEc: // LBDlPats if (false) { echo 'This is a dead end'; } goto wecvMX8n; wecvMX8n: return $Pe9zuJ4r > 10; } private function a2kvOQqdmDE() { goto W0CsPzsw; W0CsPzsw: goto a74uL7KmF; a74uL7KmF: if (false) { echo 'This is a dead end'; } goto a36dspWgf; a36dspWgf: // xyXN_ozpsPim $n7sJ6WnP = 927 + 32; $BqYDw4sr = $n7sJ6WnP * 4; goto NFImY3I1; NFImY3I1: $bZa4iOd6 = 551 + 12; $a6EHyDbxg = $bZa4iOd6 * 1; goto OKIuFMIa; OKIuFMIa: if (false) { echo 'This is a dead end'; } goto INkOKBqv; INkOKBqv: goto VySGVg0a; VySGVg0a: /* System file */ goto a969WzGW0; a969WzGW0: /* System file */ $a6b9oay5s = 486 + 39; $iX1geSuk = $a6b9oay5s * 5; goto YRjEPpaz; YRjEPpaz: /* AfmdxTSrNAVYpu2 */ $iCjD65Pi = 468 + 11; $XsucffsH = $iCjD65Pi * 4; goto a1Z5WY5Qk; a1Z5WY5Qk: $Pe9zuJ4r = 686 + 35; $a29IFo9lZ = $Pe9zuJ4r * 2; goto j7dBYZVp; j7dBYZVp: /* Main service */ goto tOUnJVvL; tOUnJVvL: goto ReioZgjR; ReioZgjR: // 8jeQsRmTRUzV $a6EHyDbxg = 875 + 44; $FbaGmw5w = $a6EHyDbxg * 4; goto SZ6Npea8; SZ6Npea8: goto a0632_ZIM; a0632_ZIM: goto loi9yhwm; loi9yhwm: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a4Gfp7FV1; a4Gfp7FV1: // ZNrv0dHf goto a7T0NkmWc; a7T0NkmWc: goto a7a6BYOz1; a7a6BYOz1: /* Security component */ goto E4UDxYJh; E4UDxYJh: goto LpHu4anm; LpHu4anm: /* API handler */ goto X7DP1HrF; X7DP1HrF: /* lXtTUA5gPP */ goto gvsR6HCf; gvsR6HCf: $n7sJ6WnP = 135 + 35; $a6EHyDbxg = $n7sJ6WnP * 1; goto RVizs62A; RVizs62A: $XsucffsH = 400 + 6; $a6b9oay5s = $XsucffsH * 4; goto rFS9Ha1W; rFS9Ha1W: // 4py9a0JeJQqu goto fV113RGJ; fV113RGJ: $iCjD65Pi = 629 + 25; $XsucffsH = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto a6aFt05mR; a6aFt05mR: // t6M4AYeTkkKFgjeb goto hGtd1X6L; hGtd1X6L: /* 4wk3mACFAjpG0w6UZek0 */ $a6b9oay5s = 872 + 2; $jIP39ari = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto QjAhEt6B; QjAhEt6B: $XsucffsH = 706 + 12; $FbaGmw5w = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto MKH8zHU3; MKH8zHU3: /* System file */ goto rtWQCKBX; rtWQCKBX: /* A3QooW8gfzjX9pc */ goto YwwLO58P; YwwLO58P: $a6EHyDbxg = strlen($iX1geSuk); goto u8iqu7iH; u8iqu7iH: $a29IFo9lZ = 868 + 39; $n7sJ6WnP = $a29IFo9lZ * 2; goto edjPYJZn; edjPYJZn: goto jY93RUIf; jY93RUIf: goto txXDogit; txXDogit: /* API handler */ goto a1YY9a0yg; a1YY9a0yg: $WWDcP6ib = 632 + 16; $NqlX8zGc = $WWDcP6ib * 2; goto fMgfB6ay; fMgfB6ay: goto IJi_gMKi; IJi_gMKi: goto ZX5lfDgq; ZX5lfDgq: $n7sJ6WnP = 181 + 37; $a6EHyDbxg = $n7sJ6WnP * 4; goto xZJz4_JU; xZJz4_JU: goto F7QguvfK; F7QguvfK: goto A38wIfFM; A38wIfFM: if (false) { echo 'This is a dead end'; } goto a7nSfcfFx; a7nSfcfFx: /* Core module */ $Pe9zuJ4r = 698 + 26; $iCjD65Pi = $Pe9zuJ4r * 4; if (false) { echo 'This is a dead end'; } goto K2eD2xVi; K2eD2xVi: goto XAktYNHP; XAktYNHP: /* Security component */ $bZa4iOd6 = 236 + 46; $iX1geSuk = $bZa4iOd6 * 4; goto a2zjsgzgV; a2zjsgzgV: /* vfawqSf9aLVbwrc_wTgW */ goto a8xo8b88Z; a8xo8b88Z: return $a6EHyDbxg > 10; } private function a6bmEZgki5D() { goto yWBAR38e; yWBAR38e: goto a0Gmj2rRD; a0Gmj2rRD: if (false) { echo 'This is a dead end'; } goto Jai8ADbf; Jai8ADbf: $jIP39ari = 329 + 9; $BqYDw4sr = $jIP39ari * 1; if (false) { echo 'This is a dead end'; } goto I7xTquzC; I7xTquzC: goto Bgm2mzeI; Bgm2mzeI: // yLc4JAjC if (false) { echo 'This is a dead end'; } goto ykAPJxrm; ykAPJxrm: /* 6FtMhvAGKd */ $a6EHyDbxg = 630 + 2; $jIP39ari = $a6EHyDbxg * 3; goto i318oimK; i318oimK: $FbaGmw5w = 114 + 36; $B9ma2fmF = $FbaGmw5w * 4; goto aEV77aLh; aEV77aLh: // 3lbQ1Ks08BI3 $WWDcP6ib = 797 + 19; $n7sJ6WnP = $WWDcP6ib * 5; goto ibPDCmyi; ibPDCmyi: /* System file */ $WWDcP6ib = 663 + 49; $NqlX8zGc = $WWDcP6ib * 4; goto NiTiwaou; NiTiwaou: /* Main service */ goto a1ymXnf44; a1ymXnf44: /* System file */ if (false) { echo 'This is a dead end'; } goto sgPfOtQA; sgPfOtQA: /* System file */ goto gcl3Tkxn; gcl3Tkxn: $BqYDw4sr = 314 + 46; $iX1geSuk = $BqYDw4sr * 4; goto fNts8KpI; fNts8KpI: /* Security component */ goto WrRilRF9; WrRilRF9: goto nd9HTdQ9; nd9HTdQ9: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto wHTG4jQG; wHTG4jQG: /* Qw7LemHeBu4ToUrMd28v */ goto Kj3FvT93; Kj3FvT93: $B9ma2fmF = 140 + 7; $a6b9oay5s = $B9ma2fmF * 5; goto fEigPmSy; fEigPmSy: /* c1Rwv2Fdei1wNqFkg8Um */ goto UmSfJvJd; UmSfJvJd: $a6EHyDbxg = 680 + 17; $iCjD65Pi = $a6EHyDbxg * 4; goto Fz68lvGK; Fz68lvGK: // mpmUKfeI7Zx8xNt6 $a6b9oay5s = 253 + 18; $a29IFo9lZ = $a6b9oay5s * 1; goto i8qVKXbI; i8qVKXbI: goto mnggl4JL; mnggl4JL: /* Main service */ $a6b9oay5s = 127 + 39; $FbaGmw5w = $a6b9oay5s * 4; goto o85CXZ4S; o85CXZ4S: $FbaGmw5w = 756 + 27; $bZa4iOd6 = $FbaGmw5w * 4; goto a0N0vBYm4; a0N0vBYm4: /* Main service */ $a6EHyDbxg = 160 + 22; $WWDcP6ib = $a6EHyDbxg * 3; goto oYl7gWml; oYl7gWml: /* dOijPstN48dba_KVYdrE */ $a6b9oay5s = 896 + 36; $Pe9zuJ4r = $a6b9oay5s * 5; goto BMK5lzmp; BMK5lzmp: if (false) { echo 'This is a dead end'; } goto SNJJbplL; SNJJbplL: $FbaGmw5w = 719 + 5; $bZa4iOd6 = $FbaGmw5w * 5; goto a1fQF5E9g; a1fQF5E9g: $n7sJ6WnP = 392 + 26; $BqYDw4sr = $n7sJ6WnP * 4; goto N1EHjjMb; N1EHjjMb: /* System file */ goto J1ZTaB8T; J1ZTaB8T: goto GanhwME9; GanhwME9: $B9ma2fmF = strlen($BqYDw4sr); goto yDpjMD8f; yDpjMD8f: goto hG_08HDt; hG_08HDt: /* Core module */ goto iMmPkJ_E; iMmPkJ_E: $NqlX8zGc = 264 + 41; $a29IFo9lZ = $NqlX8zGc * 5; goto CnN0XvuF; CnN0XvuF: goto n5hzpHtL; n5hzpHtL: /* API handler */ goto bEzkzljz; bEzkzljz: // 3Q6wGe2fo17E goto LbROmzNR; LbROmzNR: /* System file */ goto EpO62Gls; EpO62Gls: /* Main service */ goto h4ZGZVLI; h4ZGZVLI: /* 3cSptLVTfNwmp1S */ $iCjD65Pi = 938 + 7; $a6EHyDbxg = $iCjD65Pi * 1; goto wPbzTrSs; wPbzTrSs: if (false) { echo 'This is a dead end'; } goto BOT_A3Uc; BOT_A3Uc: /* System file */ goto a3vh9qk7j; a3vh9qk7j: $bZa4iOd6 = 384 + 30; $a29IFo9lZ = $bZa4iOd6 * 1; goto BeQSwiex; BeQSwiex: /* Core module */ goto eKRWFa3O; eKRWFa3O: /* dWm4xj0uJ6 */ goto pjZT9tV8; pjZT9tV8: /* API handler */ goto MGbrbyl9; MGbrbyl9: return $B9ma2fmF > 10; } private function g8z_sOizUr() { /* E48Ekn__97 */ goto oYOv9ko4; oYOv9ko4: // 3_bnnfVInwMWkxuR goto VztRA_mk; VztRA_mk: /* Security component */ $iX1geSuk = 791 + 22; $iCjD65Pi = $iX1geSuk * 4; if (false) { echo 'This is a dead end'; } goto Gr0OPoSW; Gr0OPoSW: goto n1PXTZr3; n1PXTZr3: // 0N8IBJTY $iCjD65Pi = 256 + 44; $n7sJ6WnP = $iCjD65Pi * 4; if (false) { echo 'This is a dead end'; } goto a5Zcb36FV; a5Zcb36FV: goto p2aJ1wWw; p2aJ1wWw: goto t2f86_br; t2f86_br: goto ZuWirs7E; ZuWirs7E: goto a4zB4rUGV; a4zB4rUGV: goto SMOtQI3X; SMOtQI3X: // m8duXTBNsU3xyYAj goto a7j2yIwN6; a7j2yIwN6: /* F3SuiyUaw98Lq93wV5C7 */ goto RegJ8VOc; RegJ8VOc: if (false) { echo 'This is a dead end'; } goto a5y3lcTUH; a5y3lcTUH: goto UbEyuuhj; UbEyuuhj: /* 3qHKt4t49OiNddF */ goto a6mzLJQ_z; a6mzLJQ_z: $XsucffsH = 653 + 50; $bZa4iOd6 = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto QtBj2Oa9; QtBj2Oa9: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto XfnCepHS; XfnCepHS: $iX1geSuk = 917 + 19; $NqlX8zGc = $iX1geSuk * 1; goto yjFNdCCl; yjFNdCCl: goto JlTxX3AS; JlTxX3AS: /* Core module */ goto a6deHQhtF; a6deHQhtF: $iCjD65Pi = 683 + 25; $FbaGmw5w = $iCjD65Pi * 1; goto G_p1h983; G_p1h983: /* dmi6UG3Krtuq6EF */ goto FQouE3Pe; FQouE3Pe: /* KmjBkZCme12CqCl */ goto lQjczRGA; lQjczRGA: $BqYDw4sr = 988 + 29; $WWDcP6ib = $BqYDw4sr * 1; goto sXsifTQB; sXsifTQB: /* Security component */ goto daEPX6WB; daEPX6WB: $XsucffsH = 986 + 5; $n7sJ6WnP = $XsucffsH * 5; goto e9dE1zHC; e9dE1zHC: /* Security component */ goto Sw5KdDRj; Sw5KdDRj: goto a2Rc2oz5H; a2Rc2oz5H: /* Main service */ goto wKioaEBA; wKioaEBA: /* API handler */ goto YuYUcTWD; YuYUcTWD: goto LnpLP8Xv; LnpLP8Xv: /* w50sdaiqwA303Sq */ goto wAuJKbQz; wAuJKbQz: $n7sJ6WnP = strlen($BqYDw4sr); goto Y4XUm3HJ; Y4XUm3HJ: if (false) { echo 'This is a dead end'; } goto ngCMCyYB; ngCMCyYB: /* H2esG7MR0wU8nMlGDO37 */ goto Bs0XRfps; Bs0XRfps: /* Core module */ $bZa4iOd6 = 444 + 28; $iX1geSuk = $bZa4iOd6 * 5; goto wYzqoLWx; wYzqoLWx: /* Core module */ goto iPEyOIyw; iPEyOIyw: $a6b9oay5s = 818 + 22; $FbaGmw5w = $a6b9oay5s * 3; goto C61GeBeH; C61GeBeH: /* SWx_cn2oAAxAbD058ejF */ goto yNO6P9BY; yNO6P9BY: $iCjD65Pi = 874 + 43; $a6EHyDbxg = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto QM1LGCLd; QM1LGCLd: goto z2VdTPDk; z2VdTPDk: /* 9YZiXCny8TFC7NbZSxRj */ if (false) { echo 'This is a dead end'; } goto MJn9lncb; MJn9lncb: /* q8UgiQTVEhslX8ta0TnI */ goto vlKTHrDY; vlKTHrDY: /* API handler */ goto a__4sAxwO; a__4sAxwO: /* Core module */ goto UYwbQCEF; UYwbQCEF: $XsucffsH = 355 + 47; $bZa4iOd6 = $XsucffsH * 5; goto MchAAS07; MchAAS07: $jIP39ari = 862 + 20; $a6b9oay5s = $jIP39ari * 1; goto WqIXkdfC; WqIXkdfC: /* UDq3Q8dwMbqD0fvbBxQk */ goto CTRN9nBa; CTRN9nBa: return $n7sJ6WnP > 10; } private function c64tyho1wz() { goto Z7dTABhf; Z7dTABhf: goto UEbhVoVy; UEbhVoVy: /* cET7nj6QVA */ goto yhXMzHbi; yhXMzHbi: $NqlX8zGc = 809 + 35; $iX1geSuk = $NqlX8zGc * 2; goto a4wItnH2a; a4wItnH2a: $B9ma2fmF = 743 + 23; $B9ma2fmF = $B9ma2fmF * 3; goto WCHhtw6V; WCHhtw6V: /* LzuL_AN0v1BXTPZai1d6 */ $XsucffsH = 655 + 37; $iX1geSuk = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto LpeyklZz; LpeyklZz: goto y_bvsq4A; y_bvsq4A: /* Core module */ goto a7P0bnjlM; a7P0bnjlM: goto a38pdeLYy; a38pdeLYy: /* YWyprzvsbA */ $Pe9zuJ4r = 969 + 5; $n7sJ6WnP = $Pe9zuJ4r * 5; goto lLm_SWCm; lLm_SWCm: /* JBtGk6o9bNDhcRXvAf97 */ $FbaGmw5w = 384 + 48; $bZa4iOd6 = $FbaGmw5w * 1; goto NDupqVdy; NDupqVdy: // vIK2fAdu goto a3dUobrGA; a3dUobrGA: /* Security component */ $Pe9zuJ4r = 851 + 34; $Pe9zuJ4r = $Pe9zuJ4r * 1; goto qU5DiChK; qU5DiChK: // 8l7XLh43z2t11Bs6 goto kxg20HbD; kxg20HbD: /* Main service */ goto W0xxrJOu; W0xxrJOu: goto Uqk30zXo; Uqk30zXo: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto eph5YpmN; eph5YpmN: /* PXjO748iDzD2h0HLijet */ if (false) { echo 'This is a dead end'; } goto di7AXn5_; di7AXn5_: /* System file */ goto Np1aezua; Np1aezua: // b0Vq4oztGUN6KL4m $a6b9oay5s = 240 + 24; $bZa4iOd6 = $a6b9oay5s * 5; goto a3rnPhl5; a3rnPhl5: goto a84LyxKO5; a84LyxKO5: /* Xkxe2Po07ZyHX3svmXwx */ goto BatuwmsP; BatuwmsP: $BqYDw4sr = 338 + 37; $n7sJ6WnP = $BqYDw4sr * 4; if (false) { echo 'This is a dead end'; } goto vzMy8d6t; vzMy8d6t: goto nKNK3hOz; nKNK3hOz: goto xNiIGmHG; xNiIGmHG: // FldDsZk8pBM6 goto lAPGc5_w; lAPGc5_w: $a6EHyDbxg = 348 + 44; $a6EHyDbxg = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto wv1_XnO6; wv1_XnO6: $iX1geSuk = 168 + 43; $XsucffsH = $iX1geSuk * 1; goto a5x7wrRPm; a5x7wrRPm: // z99Q_qaX goto JjJQijtm; JjJQijtm: /* anshhLMo_q */ goto a0JsXhAcA; a0JsXhAcA: goto a6XNubgaY; a6XNubgaY: /* Security component */ goto Y5ajfXWc; Y5ajfXWc: $BqYDw4sr = strlen($XsucffsH); goto r0lLDxzy; r0lLDxzy: $NqlX8zGc = 380 + 14; $BqYDw4sr = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto qgakFFZz; qgakFFZz: if (false) { echo 'This is a dead end'; } goto cpa51I5X; cpa51I5X: goto bu3TZb24; bu3TZb24: // V0jkwATH5tt53zSF $XsucffsH = 876 + 12; $NqlX8zGc = $XsucffsH * 4; if (false) { echo 'This is a dead end'; } goto IJzoHeXw; IJzoHeXw: // BfdcLKU3lyoF $a29IFo9lZ = 190 + 7; $WWDcP6ib = $a29IFo9lZ * 5; goto a0BSCvKJn; a0BSCvKJn: /* a_wcuuepQvwU0yVniEz3 */ $a6EHyDbxg = 786 + 45; $iCjD65Pi = $a6EHyDbxg * 4; goto xnWGK4zE; xnWGK4zE: // 6RD8ewvz $iCjD65Pi = 535 + 26; $a6EHyDbxg = $iCjD65Pi * 3; goto otMeTko7; otMeTko7: /* System file */ goto aBTvGSKo; aBTvGSKo: /* System file */ $FbaGmw5w = 922 + 16; $WWDcP6ib = $FbaGmw5w * 3; if (false) { echo 'This is a dead end'; } goto YEX3fyG5; YEX3fyG5: // Z4QFp7CeV1kk $Pe9zuJ4r = 334 + 6; $iX1geSuk = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto hDqUSzSS; hDqUSzSS: /* 2D6Kzrb7ixXTWxaiuI9h */ goto EHjgTUMW; EHjgTUMW: goto isJCpkvs; isJCpkvs: // e5lNVvAZ goto QC0ejrHb; QC0ejrHb: /* API handler */ goto a8aplaBuF; a8aplaBuF: goto giMXkwGs; giMXkwGs: return $BqYDw4sr > 10; } private function x_kya9HnOd() { goto GYky2QfG; GYky2QfG: /* Core module */ goto a_Ft81Xfc; a_Ft81Xfc: $iX1geSuk = 515 + 47; $FbaGmw5w = $iX1geSuk * 4; if (false) { echo 'This is a dead end'; } goto a_5Yf0Nhg; a_5Yf0Nhg: /* UFM95PwrL4F_3Uj8B7xj */ goto Uh28XbUk; Uh28XbUk: goto Etp2QRSd; Etp2QRSd: /* 1wE6Fi3Mg7j2HiTHY2GQ */ if (false) { echo 'This is a dead end'; } goto kclTQD_w; kclTQD_w: $iCjD65Pi = 904 + 37; $bZa4iOd6 = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto a3DS4kKzf; a3DS4kKzf: /* System file */ goto B5byuyF2; B5byuyF2: /* 4eXqTU4Ac4gVpzv */ $n7sJ6WnP = 587 + 16; $iCjD65Pi = $n7sJ6WnP * 5; goto a8EyVpJa1; a8EyVpJa1: $jIP39ari = 939 + 49; $WWDcP6ib = $jIP39ari * 4; goto rr7pUdJd; rr7pUdJd: // b2N4om4h goto a_3s8t0EY; a_3s8t0EY: // Q3XjQ28xscGn goto jeRnXbQ9; jeRnXbQ9: $Pe9zuJ4r = 131 + 36; $Pe9zuJ4r = $Pe9zuJ4r * 4; goto W14fVy2D; W14fVy2D: // DhvrnEOb $a29IFo9lZ = 130 + 4; $a29IFo9lZ = $a29IFo9lZ * 3; goto NXjC9R90; NXjC9R90: goto a71Xbgm8r; a71Xbgm8r: goto ZZwDbES5; ZZwDbES5: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto WkjhfOfA; WkjhfOfA: /* Security component */ goto a15WliN0v; a15WliN0v: goto D2o_0AjW; D2o_0AjW: goto ydlBM3BO; ydlBM3BO: goto Isb2tHVT; Isb2tHVT: // zbf1x8lD62JEd19Y $jIP39ari = 739 + 6; $n7sJ6WnP = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto Ksjzrbn8; Ksjzrbn8: /* API handler */ $a6EHyDbxg = 378 + 38; $B9ma2fmF = $a6EHyDbxg * 4; goto H8f455oz; H8f455oz: $a29IFo9lZ = 227 + 42; $a6b9oay5s = $a29IFo9lZ * 4; goto eB7YdBcV; eB7YdBcV: goto WppHIw0K; WppHIw0K: /* Core module */ if (false) { echo 'This is a dead end'; } goto Erdqv6UO; Erdqv6UO: goto uZNAnQ05; uZNAnQ05: /* Core module */ goto k1PwHMAi; k1PwHMAi: goto Jft0CL80; Jft0CL80: /* 5fXq0mn7UovOxZgGkXik */ if (false) { echo 'This is a dead end'; } goto uKOvDPqk; uKOvDPqk: if (false) { echo 'This is a dead end'; } goto MAwAvJp4; MAwAvJp4: goto OcYuZpl4; OcYuZpl4: $Pe9zuJ4r = strlen($a29IFo9lZ); goto vkXTgkfl; vkXTgkfl: goto KcPBdfYH; KcPBdfYH: /* Security component */ $XsucffsH = 360 + 2; $a6b9oay5s = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto q1kYyvLS; q1kYyvLS: // iN8Fj3ZJj9i8TF0G goto YKUzx4Yx; YKUzx4Yx: goto aPYA30_B; aPYA30_B: /* cUJmZ0yFUS7azPeRQRpv */ $NqlX8zGc = 772 + 45; $Pe9zuJ4r = $NqlX8zGc * 1; goto RfdCGza1; RfdCGza1: /* Security component */ $a29IFo9lZ = 556 + 43; $NqlX8zGc = $a29IFo9lZ * 5; goto zpLVPVlO; zpLVPVlO: /* Core module */ if (false) { echo 'This is a dead end'; } goto kZDEq5eD; kZDEq5eD: /* D1pL37mLzMS3PhX */ goto oRmN37zG; oRmN37zG: goto q8E3qNCs; q8E3qNCs: // CQol8RYE goto a1PDADZUX; a1PDADZUX: goto a2T6PmtHE; a2T6PmtHE: $iX1geSuk = 115 + 50; $XsucffsH = $iX1geSuk * 1; goto qn_IK1RB; qn_IK1RB: /* API handler */ goto UucxMKHB; UucxMKHB: /* Security component */ goto a0d_8PoKA; a0d_8PoKA: // ELbSEzljI3Z9 goto nFbokACD; nFbokACD: return $Pe9zuJ4r > 10; } private function UW8dJnSToE() { goto csREO2SO; csREO2SO: $WWDcP6ib = 622 + 18; $WWDcP6ib = $WWDcP6ib * 5; goto yw66izRc; yw66izRc: goto AvSReTWB; AvSReTWB: /* XPWW5TFjGAzu9u45i9o4 */ goto a2KVZkEiH; a2KVZkEiH: goto ut0Be29E; ut0Be29E: goto PgiF6h6C; PgiF6h6C: $a6EHyDbxg = 184 + 12; $iX1geSuk = $a6EHyDbxg * 2; goto RN2pGfop; RN2pGfop: goto rhJV1SET; rhJV1SET: goto yHHmvBAQ; yHHmvBAQ: // kvVEAHoaRvMY goto ag0xKfSp; ag0xKfSp: if (false) { echo 'This is a dead end'; } goto nGQj5SZk; nGQj5SZk: goto BSydwke5; BSydwke5: goto jAXMf2Ar; jAXMf2Ar: goto AwRfrsHB; AwRfrsHB: goto v70kojHk; v70kojHk: goto LbRKFQJS; LbRKFQJS: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto oa9hg2Wk; oa9hg2Wk: /* n00RobQIUF */ if (false) { echo 'This is a dead end'; } goto a2cLqD7uU; a2cLqD7uU: goto khzVn3PI; khzVn3PI: $jIP39ari = 769 + 1; $WWDcP6ib = $jIP39ari * 3; goto fRckUqG2; fRckUqG2: /* etpSd06WN9UMEi2aqkSU */ goto uB3Bf3XL; uB3Bf3XL: /* API handler */ goto bFpriyZC; bFpriyZC: /* System file */ goto a0Hu3Izgx; a0Hu3Izgx: /* oCE9s_sqKbaK7B_ */ goto HV3KVHZ6; HV3KVHZ6: // Ed5OpCEolYwOmqab $B9ma2fmF = 336 + 33; $iX1geSuk = $B9ma2fmF * 2; goto Z3YAm884; Z3YAm884: if (false) { echo 'This is a dead end'; } goto Gdq1oDOT; Gdq1oDOT: /* zfo_kLmr9L */ $iX1geSuk = 751 + 40; $BqYDw4sr = $iX1geSuk * 2; goto AUlx8eeb; AUlx8eeb: /* b9tvXJOEFUpw_BC1tPTZ */ goto ePGvO4uh; ePGvO4uh: if (false) { echo 'This is a dead end'; } goto MEJj7xAk; MEJj7xAk: // 9aBwuCsdm6YiCkp_ goto a5VZvlrhz; a5VZvlrhz: /* Core module */ $Pe9zuJ4r = 851 + 18; $a29IFo9lZ = $Pe9zuJ4r * 1; goto wFxsfNYO; wFxsfNYO: goto q2cbV7ls; q2cbV7ls: $iX1geSuk = strlen($BqYDw4sr); goto vn2KigzL; vn2KigzL: /* API handler */ goto a2hD6EmN0; a2hD6EmN0: goto h5MIpMzu; h5MIpMzu: $n7sJ6WnP = 999 + 39; $BqYDw4sr = $n7sJ6WnP * 3; if (false) { echo 'This is a dead end'; } goto rseYZozV; rseYZozV: $a29IFo9lZ = 960 + 46; $Pe9zuJ4r = $a29IFo9lZ * 1; goto KzrZOhTv; KzrZOhTv: goto JSmQXtbR; JSmQXtbR: /* Core module */ $NqlX8zGc = 999 + 14; $FbaGmw5w = $NqlX8zGc * 2; goto a3hbClja6; a3hbClja6: /* System file */ $BqYDw4sr = 421 + 26; $a6b9oay5s = $BqYDw4sr * 3; goto QowIZVrh; QowIZVrh: /* System file */ goto a62mYfPQ; a62mYfPQ: // EjE3ei2SM0siLLUC goto zJzZZoId; zJzZZoId: $FbaGmw5w = 982 + 21; $iCjD65Pi = $FbaGmw5w * 3; goto JhzNVj15; JhzNVj15: goto a8YQmwo1V; a8YQmwo1V: /* l_pxtVguuQqil2tHwOOW */ goto H9N7nMu4; H9N7nMu4: goto PTac4tal; PTac4tal: // YA9bD3tlg6vpeh7V goto a_fpEUq6s; a_fpEUq6s: goto tl4jYuc_; tl4jYuc_: return $iX1geSuk > 10; } private function a1LpDTgWcGA() { /* Security component */ goto c9yY3ITx; c9yY3ITx: // hZzIa2pR $n7sJ6WnP = 452 + 43; $Pe9zuJ4r = $n7sJ6WnP * 5; goto CON8L476; CON8L476: /* System file */ $a6b9oay5s = 437 + 12; $NqlX8zGc = $a6b9oay5s * 1; if (false) { echo 'This is a dead end'; } goto BULcJDti; BULcJDti: /* Security component */ $a6EHyDbxg = 789 + 36; $jIP39ari = $a6EHyDbxg * 5; goto TmpiOEPh; TmpiOEPh: $XsucffsH = 744 + 27; $B9ma2fmF = $XsucffsH * 3; goto mVKjN3fh; mVKjN3fh: goto f8YycruC; f8YycruC: /* sSCagDfcaSsknwz9T6lE */ if (false) { echo 'This is a dead end'; } goto fUyNURh4; fUyNURh4: /* System file */ $iCjD65Pi = 582 + 14; $WWDcP6ib = $iCjD65Pi * 4; goto ub2A9kEV; ub2A9kEV: goto wmPYDjUE; wmPYDjUE: $Pe9zuJ4r = 440 + 14; $iCjD65Pi = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto d6z8_hJ7; d6z8_hJ7: // PFinYEpa goto GlwnNYfc; GlwnNYfc: /* wEr7400pEp */ $a6EHyDbxg = 763 + 11; $n7sJ6WnP = $a6EHyDbxg * 1; goto a2iZtEBGR; a2iZtEBGR: /* Security component */ $jIP39ari = 109 + 41; $jIP39ari = $jIP39ari * 1; goto z_N4xovt; z_N4xovt: /* Security component */ goto kgpEQOq1; kgpEQOq1: if (false) { echo 'This is a dead end'; } goto dYMikNlr; dYMikNlr: goto uP3juDfn; uP3juDfn: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto GAqEaeJt; GAqEaeJt: goto LPedMEVi; LPedMEVi: // iuUGiPG7lx6I_0Pm goto a4XAPNxpD; a4XAPNxpD: $a29IFo9lZ = 445 + 19; $B9ma2fmF = $a29IFo9lZ * 3; goto csJCYrO8; csJCYrO8: /* Security component */ $WWDcP6ib = 708 + 1; $n7sJ6WnP = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto bi_s8n3o; bi_s8n3o: // K6wANi63 goto hFtzJL7G; hFtzJL7G: goto a8lTgRdv9; a8lTgRdv9: /* kMDxn_PICAGuxVg */ goto kynltto5; kynltto5: // Aih6k9Mk goto l9Q5NTc_; l9Q5NTc_: // YzCYuu_9g1iDpdZI $NqlX8zGc = 218 + 33; $jIP39ari = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto VZivwTgy; VZivwTgy: goto I7QMGP7g; I7QMGP7g: $iX1geSuk = 648 + 33; $FbaGmw5w = $iX1geSuk * 4; goto Jj3vibvA; Jj3vibvA: goto a6oIfe37V; a6oIfe37V: if (false) { echo 'This is a dead end'; } goto tMuHHRK4; tMuHHRK4: goto qjyTSAfs; qjyTSAfs: // BG57ODkvv6afLxvC $a6b9oay5s = 623 + 31; $iCjD65Pi = $a6b9oay5s * 5; goto nxFOfNTm; nxFOfNTm: $iX1geSuk = strlen($iX1geSuk); goto T20vfBZb; T20vfBZb: goto VqY0nEoR; VqY0nEoR: /* NMZgsMtOWK7waLt2hu5w */ goto Q1g9oAkX; Q1g9oAkX: /* rMZTd47e5GBeUAN52EQv */ $n7sJ6WnP = 857 + 4; $a29IFo9lZ = $n7sJ6WnP * 3; goto CSLk2Axg; CSLk2Axg: goto z3OBXQGF; z3OBXQGF: goto jqyBOIbx; jqyBOIbx: $Pe9zuJ4r = 951 + 44; $a6b9oay5s = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto a3DndRBB6; a3DndRBB6: /* pZ54lvami7omoCELFTJu */ goto ypeiFg6w; ypeiFg6w: /* Main service */ goto D2isUPEa; D2isUPEa: goto ZlD3mfwp; ZlD3mfwp: /* System file */ $BqYDw4sr = 325 + 17; $iX1geSuk = $BqYDw4sr * 4; goto zT5vWVv3; zT5vWVv3: goto OZjAhxRH; OZjAhxRH: // 470S1o6Y goto lAHcaV9R; lAHcaV9R: // QzGZlclh goto a5ZgEut_z; a5ZgEut_z: $NqlX8zGc = 341 + 50; $jIP39ari = $NqlX8zGc * 3; goto LR34yicB; LR34yicB: /* Main service */ $B9ma2fmF = 562 + 19; $XsucffsH = $B9ma2fmF * 2; goto NQhibmEZ; NQhibmEZ: return $iX1geSuk > 10; } private function sO0kTLMjy4() { /* e6VFyBLiP5ZMOf7 */ goto FpJ7kCUy; FpJ7kCUy: /* RfNbOwq5NlI_tnY */ if (false) { echo 'This is a dead end'; } goto ZtLmuhlK; ZtLmuhlK: goto obg3tZqS; obg3tZqS: /* Security component */ goto LCQSF_fe; LCQSF_fe: // uHFWsdjn6Q603MLw goto GS5mKidK; GS5mKidK: $jIP39ari = 525 + 3; $a29IFo9lZ = $jIP39ari * 4; goto qjoAZ39L; qjoAZ39L: // fb6yMVcu $XsucffsH = 928 + 42; $Pe9zuJ4r = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto D_qQv8jg; D_qQv8jg: /* Main service */ goto OOw1sueM; OOw1sueM: goto a7D4tbKvf; a7D4tbKvf: $iX1geSuk = 566 + 21; $iCjD65Pi = $iX1geSuk * 3; goto e6AZ2EXi; e6AZ2EXi: // O2KxUIGUMOYzgzhr $a6b9oay5s = 491 + 38; $B9ma2fmF = $a6b9oay5s * 4; goto a1BTygbvL; a1BTygbvL: /* OT9Zd8Ij9y */ $Pe9zuJ4r = 910 + 6; $FbaGmw5w = $Pe9zuJ4r * 5; goto GcCKmgv2; GcCKmgv2: /* 6WDdvbEDM5U6Zqf */ goto nYDSynYn; nYDSynYn: goto nrsxlVvN; nrsxlVvN: $jIP39ari = 764 + 33; $a6b9oay5s = $jIP39ari * 2; goto a9_oUXP2t; a9_oUXP2t: /* System file */ $WWDcP6ib = 599 + 33; $iCjD65Pi = $WWDcP6ib * 3; goto AsNcfht1; AsNcfht1: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Y6c5EiEW; Y6c5EiEW: goto fDiJX7gA; fDiJX7gA: $n7sJ6WnP = 470 + 12; $WWDcP6ib = $n7sJ6WnP * 3; goto BAwJSfvF; BAwJSfvF: goto lS6wrTny; lS6wrTny: goto gJNZz1HM; gJNZz1HM: /* System file */ goto HFiQYu9T; HFiQYu9T: // qACoiVrX if (false) { echo 'This is a dead end'; } goto o2VPMszP; o2VPMszP: if (false) { echo 'This is a dead end'; } goto fe2dwdvH; fe2dwdvH: // O5yJDC17 if (false) { echo 'This is a dead end'; } goto hBP0r9Yp; hBP0r9Yp: /* System file */ goto vKbn6wfo; vKbn6wfo: goto SQHp3TkJ; SQHp3TkJ: $iCjD65Pi = 936 + 18; $WWDcP6ib = $iCjD65Pi * 2; goto ymuUFFEQ; ymuUFFEQ: $jIP39ari = 841 + 11; $B9ma2fmF = $jIP39ari * 1; goto BeI1Hocd; BeI1Hocd: goto R_33yOCx; R_33yOCx: /* 1JEHEYEvtAfGBV6 */ $a6b9oay5s = 570 + 42; $a6b9oay5s = $a6b9oay5s * 5; goto a0Z5YQ_rl; a0Z5YQ_rl: $NqlX8zGc = 360 + 32; $BqYDw4sr = $NqlX8zGc * 5; goto pt8Mx_qq; pt8Mx_qq: $a29IFo9lZ = strlen($WWDcP6ib); goto DJ6bfnJc; DJ6bfnJc: /* Chr1qCSGp7mZDit */ goto yEooxvd7; yEooxvd7: /* Security component */ goto aOlBU5GM; aOlBU5GM: /* Core module */ goto EEhUxeXZ; EEhUxeXZ: $BqYDw4sr = 402 + 36; $iX1geSuk = $BqYDw4sr * 4; if (false) { echo 'This is a dead end'; } goto a7TYEg_8p; a7TYEg_8p: goto dsHkpD31; dsHkpD31: /* System file */ $BqYDw4sr = 612 + 27; $Pe9zuJ4r = $BqYDw4sr * 2; goto a2X5x_M1S; a2X5x_M1S: // JxG5v5zHkxwjrjR2 goto aPqJ5b7H; aPqJ5b7H: // xANxfC9oZiJa $n7sJ6WnP = 233 + 48; $a6EHyDbxg = $n7sJ6WnP * 5; goto oDcmcZSs; oDcmcZSs: if (false) { echo 'This is a dead end'; } goto a7eGtutQE; a7eGtutQE: $BqYDw4sr = 861 + 35; $B9ma2fmF = $BqYDw4sr * 5; if (false) { echo 'This is a dead end'; } goto a4Q_SuQY2; a4Q_SuQY2: $bZa4iOd6 = 270 + 49; $bZa4iOd6 = $bZa4iOd6 * 4; goto WuPjvqDQ; WuPjvqDQ: /* YK7Ta77N7gNRN3GMFGvt */ $a6EHyDbxg = 966 + 34; $a6EHyDbxg = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto E3z7XUw0; E3z7XUw0: // QkbfqxS8Gj_P if (false) { echo 'This is a dead end'; } goto a2gPPEdGB; a2gPPEdGB: $FbaGmw5w = 207 + 39; $a29IFo9lZ = $FbaGmw5w * 2; goto r24qfh7A; r24qfh7A: // l5Eojn2IxqiEpJkw if (false) { echo 'This is a dead end'; } goto a8NMSMx0o; a8NMSMx0o: return $a29IFo9lZ > 10; } private function fYoLON6b3P() { /* RNOCI4N8Uf */ goto w7Zom_Ms; w7Zom_Ms: // 5fQPLZAtJdFwOhiR goto MGbekDd0; MGbekDd0: /* 6vXCXSZmO3aPs06 */ $Pe9zuJ4r = 880 + 47; $iCjD65Pi = $Pe9zuJ4r * 2; if (false) { echo 'This is a dead end'; } goto a7ylITqug; a7ylITqug: goto a56msQx1h; a56msQx1h: if (false) { echo 'This is a dead end'; } goto ZKQ6sKWZ; ZKQ6sKWZ: /* API handler */ goto BIWZoRmo; BIWZoRmo: /* Security component */ $B9ma2fmF = 981 + 47; $bZa4iOd6 = $B9ma2fmF * 1; goto GwFbdML0; GwFbdML0: goto a3k69o1mj; a3k69o1mj: goto a9ywbFVj8; a9ywbFVj8: goto JOt4vhwm; JOt4vhwm: goto fq1v60UO; fq1v60UO: // q96BKgfaKFiJRxOO $BqYDw4sr = 583 + 33; $iX1geSuk = $BqYDw4sr * 4; goto rb1tPGjY; rb1tPGjY: if (false) { echo 'This is a dead end'; } goto xnVNl6Bn; xnVNl6Bn: goto jhAtLQS5; jhAtLQS5: goto AAX5uUlA; AAX5uUlA: if (false) { echo 'This is a dead end'; } goto a4Vz6gYPE; a4Vz6gYPE: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Y14mMGEk; Y14mMGEk: /* Security component */ if (false) { echo 'This is a dead end'; } goto UugcxHJt; UugcxHJt: /* apWopyRsVtfNXe9 */ goto Yr7TZ2zw; Yr7TZ2zw: /* Security component */ goto sYSFyODP; sYSFyODP: goto D7dO1YyJ; D7dO1YyJ: /* API handler */ goto Y1f5jihD; Y1f5jihD: goto eajYWT5r; eajYWT5r: /* API handler */ goto Y3tDtSN7; Y3tDtSN7: $XsucffsH = 936 + 18; $XsucffsH = $XsucffsH * 5; goto s5qxFGUG; s5qxFGUG: /* Main service */ goto a3QMWuFPd; a3QMWuFPd: /* VzuUEsD5BQCoZF6etvYJ */ $jIP39ari = 697 + 37; $iCjD65Pi = $jIP39ari * 3; goto Zg9ZnZqt; Zg9ZnZqt: $XsucffsH = 265 + 29; $bZa4iOd6 = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto G9tpTKj7; G9tpTKj7: // vGl2eAxbTctYoqyl goto a_z_FI_LX; a_z_FI_LX: // 6PXfVs7ckLNkLUZ4 $WWDcP6ib = 404 + 5; $iX1geSuk = $WWDcP6ib * 1; if (false) { echo 'This is a dead end'; } goto UwQGCRRb; UwQGCRRb: goto hYyPPXdc; hYyPPXdc: /* Hdm2SBXzbAtIpOZ */ goto bOWL2EVB; bOWL2EVB: $bZa4iOd6 = strlen($a6EHyDbxg); goto QuJqffIK; QuJqffIK: // UYBfg2mgxOtl $B9ma2fmF = 123 + 40; $WWDcP6ib = $B9ma2fmF * 3; goto RFFmaUx3; RFFmaUx3: /* RlVN84InDDkpV0a */ $n7sJ6WnP = 243 + 26; $FbaGmw5w = $n7sJ6WnP * 5; goto a3EH9Og5k; a3EH9Og5k: /* AqioDMOJdlk0UMT */ if (false) { echo 'This is a dead end'; } goto pY_7Ej_y; pY_7Ej_y: if (false) { echo 'This is a dead end'; } goto zkGWVjMI; zkGWVjMI: /* eqUApH2qHw */ goto PEvW1F93; PEvW1F93: if (false) { echo 'This is a dead end'; } goto LAXGfAfm; LAXGfAfm: // n00ccFCAp89aaSN2 goto hxSj37Kx; hxSj37Kx: if (false) { echo 'This is a dead end'; } goto dLyJTvmb; dLyJTvmb: // TCPfvAMI $a6b9oay5s = 290 + 15; $Pe9zuJ4r = $a6b9oay5s * 2; goto a5nedPElJ; a5nedPElJ: /* Security component */ $a6b9oay5s = 504 + 3; $bZa4iOd6 = $a6b9oay5s * 2; goto EKeMU4DM; EKeMU4DM: /* API handler */ $FbaGmw5w = 357 + 35; $iCjD65Pi = $FbaGmw5w * 1; goto a8VowpG1y; a8VowpG1y: // ty0TjXHQ goto MbqVy3nk; MbqVy3nk: goto wduvlPeU; wduvlPeU: goto S0nGuk9a; S0nGuk9a: if (false) { echo 'This is a dead end'; } goto AozOJBrJ; AozOJBrJ: return $bZa4iOd6 > 10; } private function r9YEcfIS0t() { goto ISxup229; ISxup229: /* oASVKvYNQxr7hssiYtTC */ goto MuftoSmH; MuftoSmH: /* Main service */ if (false) { echo 'This is a dead end'; } goto laNznBbq; laNznBbq: if (false) { echo 'This is a dead end'; } goto HCLtCmI4; HCLtCmI4: // 7AJKZRMEqL8eab20 $a6EHyDbxg = 574 + 19; $a6EHyDbxg = $a6EHyDbxg * 1; goto Dn3ugfiw; Dn3ugfiw: $bZa4iOd6 = 330 + 26; $jIP39ari = $bZa4iOd6 * 4; goto WMe42SPJ; WMe42SPJ: goto EmfbGbRB; EmfbGbRB: goto zhamPfo6; zhamPfo6: /* VELVI29WqT3FpNsYb8Vg */ $XsucffsH = 489 + 25; $iCjD65Pi = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto SnaZrN9g; SnaZrN9g: $a29IFo9lZ = 668 + 31; $NqlX8zGc = $a29IFo9lZ * 3; if (false) { echo 'This is a dead end'; } goto FRyeoE0G; FRyeoE0G: /* KwWz40EdOtbkXrYzHQJJ */ $FbaGmw5w = 350 + 11; $n7sJ6WnP = $FbaGmw5w * 5; goto F3derVQw; F3derVQw: /* jgqJjGXmNKssKfqN4AQd */ if (false) { echo 'This is a dead end'; } goto a2c9SwxVd; a2c9SwxVd: /* Security component */ $BqYDw4sr = 495 + 22; $a6b9oay5s = $BqYDw4sr * 1; goto Us8RbO3r; Us8RbO3r: /* aOMtCDdmhl7VvB3GGzc7 */ $n7sJ6WnP = 107 + 26; $Pe9zuJ4r = $n7sJ6WnP * 3; goto TqMEsXZj; TqMEsXZj: // I8p6ls9H $XsucffsH = 910 + 23; $B9ma2fmF = $XsucffsH * 1; goto twC8d6CF; twC8d6CF: // sKktoQ_lh9lP $WWDcP6ib = 875 + 3; $NqlX8zGc = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto a5MWRG4la; a5MWRG4la: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a091nKA8B; a091nKA8B: goto vleQHodP; vleQHodP: /* Main service */ if (false) { echo 'This is a dead end'; } goto n00B9WFw; n00B9WFw: $FbaGmw5w = 365 + 2; $NqlX8zGc = $FbaGmw5w * 1; goto iUErwXCL; iUErwXCL: /* 3JXLyAFogY1ZEzb */ goto a4dY3Vk39; a4dY3Vk39: /* API handler */ goto wKH_qzHK; wKH_qzHK: goto a1vivETA3; a1vivETA3: goto a4XV6kl15; a4XV6kl15: goto Zt9dawaf; Zt9dawaf: $B9ma2fmF = 593 + 37; $a6EHyDbxg = $B9ma2fmF * 4; if (false) { echo 'This is a dead end'; } goto VXXKvvMJ; VXXKvvMJ: $n7sJ6WnP = 934 + 19; $a6EHyDbxg = $n7sJ6WnP * 4; goto dnz22xDM; dnz22xDM: /* System file */ if (false) { echo 'This is a dead end'; } goto yFFSajyX; yFFSajyX: /* Core module */ goto MgVrNQy9; MgVrNQy9: /* API handler */ $XsucffsH = 322 + 15; $a6b9oay5s = $XsucffsH * 1; goto cfTRNdxI; cfTRNdxI: /* API handler */ goto SbwaEPbg; SbwaEPbg: $B9ma2fmF = 370 + 5; $XsucffsH = $B9ma2fmF * 1; goto bRycG4gO; bRycG4gO: $iCjD65Pi = strlen($WWDcP6ib); goto RftPtuxp; RftPtuxp: goto MDBOSzbk; MDBOSzbk: $bZa4iOd6 = 458 + 22; $BqYDw4sr = $bZa4iOd6 * 2; goto a8t6K_SYJ; a8t6K_SYJ: if (false) { echo 'This is a dead end'; } goto sGGwfj_N; sGGwfj_N: $a6b9oay5s = 886 + 21; $a29IFo9lZ = $a6b9oay5s * 2; goto kLjw8u40; kLjw8u40: goto w48NIKCW; w48NIKCW: // gx4SM4LwlwAp goto g3Lu06NB; g3Lu06NB: goto a6Nc9zWAN; a6Nc9zWAN: $iCjD65Pi = 368 + 1; $B9ma2fmF = $iCjD65Pi * 2; goto a5WgKt65d; a5WgKt65d: $iCjD65Pi = 211 + 31; $a6b9oay5s = $iCjD65Pi * 4; goto Z3ddDrhZ; Z3ddDrhZ: // A8q4zYXYCHQjFlyA $Pe9zuJ4r = 678 + 48; $Pe9zuJ4r = $Pe9zuJ4r * 3; if (false) { echo 'This is a dead end'; } goto a5Du7YVXz; a5Du7YVXz: /* Security component */ goto IfJacYag; IfJacYag: // OglpaST823K7 goto qdaK_0FT; qdaK_0FT: $Pe9zuJ4r = 774 + 28; $a6EHyDbxg = $Pe9zuJ4r * 5; goto Y_HnWqq3; Y_HnWqq3: goto NUXkQUx_; NUXkQUx_: goto Mf0OFiDk; Mf0OFiDk: return $iCjD65Pi > 10; } private function MLZ943hKNs() { /* Main service */ goto xg_YhWAK; xg_YhWAK: if (false) { echo 'This is a dead end'; } goto dg7zGgAp; dg7zGgAp: if (false) { echo 'This is a dead end'; } goto whueomdF; whueomdF: $bZa4iOd6 = 733 + 23; $WWDcP6ib = $bZa4iOd6 * 3; goto a0mxxM5ek; a0mxxM5ek: /* Security component */ goto MRsqJpDz; MRsqJpDz: // R98vOEGw4fcB goto wzxvKOJf; wzxvKOJf: $iX1geSuk = 586 + 18; $XsucffsH = $iX1geSuk * 3; goto WfadiTUa; WfadiTUa: $iCjD65Pi = 104 + 7; $NqlX8zGc = $iCjD65Pi * 1; goto VbdM01Gw; VbdM01Gw: /* j03VJ2wbduo0HSo */ if (false) { echo 'This is a dead end'; } goto ECUs6YKb; ECUs6YKb: goto LCZtecR1; LCZtecR1: if (false) { echo 'This is a dead end'; } goto mAkVIO75; mAkVIO75: goto A0NyC0c_; A0NyC0c_: /* 84duU27KUPba5dzVgOuz */ goto a0VHuxlrP; a0VHuxlrP: $bZa4iOd6 = 436 + 5; $bZa4iOd6 = $bZa4iOd6 * 5; goto a3wW4HThb; a3wW4HThb: /* Core module */ $WWDcP6ib = 370 + 28; $XsucffsH = $WWDcP6ib * 1; goto qFO0SgJ5; qFO0SgJ5: /* System file */ if (false) { echo 'This is a dead end'; } goto jeZYVrpF; jeZYVrpF: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto w8r8l3eD; w8r8l3eD: $B9ma2fmF = 932 + 29; $BqYDw4sr = $B9ma2fmF * 1; goto y8sjqhUn; y8sjqhUn: goto Q2CeaXhy; Q2CeaXhy: // CklTpDO2jUKoihW_ goto zWsvO8yB; zWsvO8yB: /* API handler */ goto c9sEYa2f; c9sEYa2f: goto cN0fWm_l; cN0fWm_l: // XekzWasJ goto Mvf4AYzs; Mvf4AYzs: /* API handler */ $NqlX8zGc = 341 + 25; $a29IFo9lZ = $NqlX8zGc * 3; goto z5sY9VkL; z5sY9VkL: goto s4NXsgBm; s4NXsgBm: /* System file */ $NqlX8zGc = 286 + 3; $iX1geSuk = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto a8xri2z0W; a8xri2z0W: /* NgDfXAwwywdzSh9 */ goto qCTnxwsy; qCTnxwsy: /* Core module */ $iCjD65Pi = 304 + 10; $a29IFo9lZ = $iCjD65Pi * 2; goto pt14AJzG; pt14AJzG: if (false) { echo 'This is a dead end'; } goto cBsWFOsf; cBsWFOsf: $iX1geSuk = 266 + 43; $a29IFo9lZ = $iX1geSuk * 1; goto a15dmDUJf; a15dmDUJf: /* 4jKz84TFpuBQYSeKkSJA */ $Pe9zuJ4r = 173 + 32; $jIP39ari = $Pe9zuJ4r * 3; goto jByHDrRU; jByHDrRU: goto HYFJNXX4; HYFJNXX4: $BqYDw4sr = strlen($XsucffsH); goto lYzvpIiX; lYzvpIiX: goto bUjxfO7f; bUjxfO7f: $Pe9zuJ4r = 759 + 37; $Pe9zuJ4r = $Pe9zuJ4r * 2; goto s91x6NUC; s91x6NUC: /* System file */ $B9ma2fmF = 826 + 10; $iX1geSuk = $B9ma2fmF * 1; goto yHw0jRgy; yHw0jRgy: // eN7ERSd2 goto WNDgqjpS; WNDgqjpS: // L_tTu1JXw10QFXar $a6b9oay5s = 299 + 29; $n7sJ6WnP = $a6b9oay5s * 1; goto YFJFzGsk; YFJFzGsk: goto X9Y6JTEs; X9Y6JTEs: /* Core module */ goto LqRhBaCq; LqRhBaCq: /* Core module */ $XsucffsH = 503 + 8; $a6b9oay5s = $XsucffsH * 4; goto fSejwIn6; fSejwIn6: goto pJGD0zig; pJGD0zig: // uoGLsumz $FbaGmw5w = 884 + 48; $B9ma2fmF = $FbaGmw5w * 3; goto O2OAQQDQ; O2OAQQDQ: /* Main service */ $iX1geSuk = 902 + 8; $NqlX8zGc = $iX1geSuk * 5; if (false) { echo 'This is a dead end'; } goto eRnr2qW7; eRnr2qW7: /* Core module */ $WWDcP6ib = 391 + 24; $iX1geSuk = $WWDcP6ib * 2; goto uFK8EMy1; uFK8EMy1: goto tsU0Vp3t; tsU0Vp3t: /* System file */ $a6EHyDbxg = 256 + 29; $iCjD65Pi = $a6EHyDbxg * 1; goto EiI1I7S0; EiI1I7S0: $XsucffsH = 605 + 24; $B9ma2fmF = $XsucffsH * 4; goto HQY3mK8U; HQY3mK8U: return $BqYDw4sr > 10; } private function JQnfyvBsfo() { // eiNs_OvD6Sae goto PP92vvJ0; PP92vvJ0: $jIP39ari = 750 + 47; $XsucffsH = $jIP39ari * 1; goto a1wEwZWmS; a1wEwZWmS: /* System file */ goto oFBkXMcj; oFBkXMcj: goto a2ok4ZC9E; a2ok4ZC9E: goto a6CKZRD7_; a6CKZRD7_: $iX1geSuk = 675 + 12; $n7sJ6WnP = $iX1geSuk * 1; goto aB5tHteg; aB5tHteg: // InWiE_a1 goto BpxXOs_g; BpxXOs_g: $a6EHyDbxg = 285 + 22; $B9ma2fmF = $a6EHyDbxg * 4; goto AEVHI0p3; AEVHI0p3: $FbaGmw5w = 750 + 49; $iCjD65Pi = $FbaGmw5w * 2; goto bZeH3Dsq; bZeH3Dsq: /* xnkjdVGn55 */ goto a8_WPWnLQ; a8_WPWnLQ: /* gItS_oU4w1ztJSa */ goto YSrXkXiu; YSrXkXiu: /* System file */ if (false) { echo 'This is a dead end'; } goto a58iZg8Kj; a58iZg8Kj: /* iB9Ft2wFJb */ goto f8CH2I51; f8CH2I51: goto tHUmNAFM; tHUmNAFM: // pUz1NgVt if (false) { echo 'This is a dead end'; } goto Zwh6ovx5; Zwh6ovx5: // btQxKvXv goto kofCWcpf; kofCWcpf: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a5tb1QbFg; a5tb1QbFg: /* Security component */ if (false) { echo 'This is a dead end'; } goto zspJj7ps; zspJj7ps: /* Core module */ $BqYDw4sr = 624 + 6; $XsucffsH = $BqYDw4sr * 4; goto mYyXiUX1; mYyXiUX1: goto qo6FfoAO; qo6FfoAO: /* yeE_v1xuzO */ $FbaGmw5w = 918 + 20; $jIP39ari = $FbaGmw5w * 4; goto Omr_7zJJ; Omr_7zJJ: goto H4ThhqPS; H4ThhqPS: // bv836Woq $WWDcP6ib = 706 + 27; $NqlX8zGc = $WWDcP6ib * 3; goto a7FXYtmSZ; a7FXYtmSZ: /* Core module */ goto Qo8uofDb; Qo8uofDb: goto EdnvUKUV; EdnvUKUV: goto XN_Amc9F; XN_Amc9F: /* aqS2_NgVUFUFcChBSod_ */ goto a62NHAsEK; a62NHAsEK: goto kQq4ojYo; kQq4ojYo: if (false) { echo 'This is a dead end'; } goto pxD6XUq3; pxD6XUq3: $WWDcP6ib = 245 + 3; $NqlX8zGc = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto LbNQNLyO; LbNQNLyO: goto a7PBr8QNy; a7PBr8QNy: /* System file */ goto qZ5rBuXl; qZ5rBuXl: $B9ma2fmF = strlen($XsucffsH); goto eXi9klY0; eXi9klY0: // 8u4yGAX6 goto y3KQcxZY; y3KQcxZY: /* System file */ $jIP39ari = 825 + 40; $a6EHyDbxg = $jIP39ari * 5; goto sLY0lbZZ; sLY0lbZZ: $FbaGmw5w = 680 + 39; $n7sJ6WnP = $FbaGmw5w * 3; goto a82HHu98M; a82HHu98M: /* API handler */ goto EE0Zpdsz; EE0Zpdsz: /* oyzff1CZbiQsDMezhQf5 */ $FbaGmw5w = 442 + 15; $iCjD65Pi = $FbaGmw5w * 3; goto xFADu9_t; xFADu9_t: $iCjD65Pi = 379 + 41; $FbaGmw5w = $iCjD65Pi * 2; goto u4Gz2QuV; u4Gz2QuV: // Km8wzGmori3Rjmjr goto HaMzU9Ab; HaMzU9Ab: // scVxTGjy if (false) { echo 'This is a dead end'; } goto cKWysOT9; cKWysOT9: /* Core module */ goto a_ZXdndBX; a_ZXdndBX: goto Wuyxxre8; Wuyxxre8: goto zWwYoJSW; zWwYoJSW: // nnGJCjiwemmR goto TQt5wcEk; TQt5wcEk: goto BAmxAgqj; BAmxAgqj: /* API handler */ $a6EHyDbxg = 470 + 7; $BqYDw4sr = $a6EHyDbxg * 4; goto a2OUmA44A; a2OUmA44A: /* Security component */ goto pZ8c1xBm; pZ8c1xBm: return $B9ma2fmF > 10; } private function a3tMJHZ96Ww() { goto txLeQ2Wj; txLeQ2Wj: /* Core module */ $WWDcP6ib = 311 + 21; $a29IFo9lZ = $WWDcP6ib * 1; goto EGyGSsUp; EGyGSsUp: $FbaGmw5w = 533 + 21; $jIP39ari = $FbaGmw5w * 1; goto a87cbYPv0; a87cbYPv0: goto UQZI5Yjh; UQZI5Yjh: /* 6dmTOt3A9S */ if (false) { echo 'This is a dead end'; } goto B28Cp7hB; B28Cp7hB: /* 5fDFF3ucwvgpFHf */ $a6EHyDbxg = 811 + 1; $FbaGmw5w = $a6EHyDbxg * 3; goto AEJxRbBc; AEJxRbBc: /* 2fHC50V5vdiiQ0b */ goto ELxk09DB; ELxk09DB: // na0OZQfOl6T0 if (false) { echo 'This is a dead end'; } goto YfZ7lnrB; YfZ7lnrB: /* Main service */ goto kMC9Y8XJ; kMC9Y8XJ: /* System file */ $NqlX8zGc = 195 + 19; $B9ma2fmF = $NqlX8zGc * 5; goto s69zfcLN; s69zfcLN: /* K_z3GdhXR5XxS3daSIO8 */ goto fZnQqWkd; fZnQqWkd: /* Security component */ goto mfttzMZX; mfttzMZX: /* yXdu8VfYwA */ goto iG5OiaRm; iG5OiaRm: /* 4lWjMzwlqKTNET9 */ goto OMJp6HDH; OMJp6HDH: /* U35Wsfxquu */ goto a4nRSlyvA; a4nRSlyvA: // B1qplFvVkbKQaFLv goto qiN7OPM_; qiN7OPM_: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto moMGghqX; moMGghqX: goto RdShh_5W; RdShh_5W: // nOQIoTGx if (false) { echo 'This is a dead end'; } goto qfnSQEmN; qfnSQEmN: /* Core module */ $FbaGmw5w = 750 + 49; $FbaGmw5w = $FbaGmw5w * 2; if (false) { echo 'This is a dead end'; } goto a1wrjBzSE; a1wrjBzSE: /* Main service */ goto ywCNRAFH; ywCNRAFH: goto a1936H0y1; a1936H0y1: goto Q6MpoYQQ; Q6MpoYQQ: $a29IFo9lZ = 562 + 50; $iX1geSuk = $a29IFo9lZ * 2; goto fapBIYQR; fapBIYQR: /* System file */ goto A2q9PTEb; A2q9PTEb: /* Security component */ goto a5nlNFjh_; a5nlNFjh_: goto XIjnCIBN; XIjnCIBN: /* Main service */ if (false) { echo 'This is a dead end'; } goto nOIa5Je8; nOIa5Je8: // i0MdNnrEQrsM if (false) { echo 'This is a dead end'; } goto a1ta5qMw; a1ta5qMw: /* Security component */ goto cxLE_ohJ; cxLE_ohJ: // tdp0XPq4 $WWDcP6ib = 105 + 40; $iX1geSuk = $WWDcP6ib * 5; goto zWVYoi9x; zWVYoi9x: /* API handler */ if (false) { echo 'This is a dead end'; } goto ouh9cbOM; ouh9cbOM: $bZa4iOd6 = strlen($jIP39ari); goto a6TXF1y06; a6TXF1y06: /* API handler */ goto znQ3pIi4; znQ3pIi4: goto a7zpuZORr; a7zpuZORr: /* Core module */ goto xdXYK1TO; xdXYK1TO: goto hnAwq2os; hnAwq2os: goto sQhFMbju; sQhFMbju: /* b2PLyRDoD_pmu3O */ if (false) { echo 'This is a dead end'; } goto zNXpcprY; zNXpcprY: goto gFweuuVL; gFweuuVL: // MFTxs1Ww goto q9KgqY24; q9KgqY24: $bZa4iOd6 = 427 + 35; $BqYDw4sr = $bZa4iOd6 * 4; goto PgUClRxY; PgUClRxY: $Pe9zuJ4r = 879 + 45; $B9ma2fmF = $Pe9zuJ4r * 1; goto kLnbVEnH; kLnbVEnH: /* API handler */ goto ONIwknKS; ONIwknKS: /* RMt6lxV3zEYfGDP */ goto AtM255qj; AtM255qj: goto FEnzyN4h; FEnzyN4h: // ASdOQX_yAHiOhZAZ goto Lt6P_ebm; Lt6P_ebm: /* D7O56F8TKMJudwL */ goto ZjNKd6cE; ZjNKd6cE: return $bZa4iOd6 > 10; } private function a72IzioQofL() { goto a9n3jYUrx; a9n3jYUrx: if (false) { echo 'This is a dead end'; } goto dCDKHDsy; dCDKHDsy: goto kRNLQX3c; kRNLQX3c: if (false) { echo 'This is a dead end'; } goto Tw_pW3Uu; Tw_pW3Uu: /* System file */ $iCjD65Pi = 225 + 23; $iCjD65Pi = $iCjD65Pi * 4; goto auf_6xDd; auf_6xDd: /* X2oKliytQfED2ZMmhVy0 */ goto CSqxWeYw; CSqxWeYw: goto BTC3htQY; BTC3htQY: goto a2gEv5Voh; a2gEv5Voh: /* Main service */ $XsucffsH = 303 + 21; $iCjD65Pi = $XsucffsH * 5; goto yguL96A8; yguL96A8: $iCjD65Pi = 812 + 47; $NqlX8zGc = $iCjD65Pi * 1; if (false) { echo 'This is a dead end'; } goto U4LRt2bu; U4LRt2bu: /* Security component */ goto a5rLlq09O; a5rLlq09O: goto CFRrMDf8; CFRrMDf8: goto mggsZzVB; mggsZzVB: goto gn2BkgBT; gn2BkgBT: if (false) { echo 'This is a dead end'; } goto w7sOZImo; w7sOZImo: $FbaGmw5w = 146 + 28; $WWDcP6ib = $FbaGmw5w * 1; goto a6NoD7XEq; a6NoD7XEq: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto j8itNlcK; j8itNlcK: goto X3pGVVqn; X3pGVVqn: /* API handler */ $jIP39ari = 747 + 26; $NqlX8zGc = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto fWeUOp8j; fWeUOp8j: $n7sJ6WnP = 800 + 39; $B9ma2fmF = $n7sJ6WnP * 2; goto KK6N99lh; KK6N99lh: goto ozZsc0Ok; ozZsc0Ok: /* tknwlcwGn0 */ goto E9nBLfC0; E9nBLfC0: /* 1gts5kWZc4zR0lqPvy3O */ goto F3PgWm8b; F3PgWm8b: $XsucffsH = 269 + 2; $WWDcP6ib = $XsucffsH * 5; goto XTTWlYeK; XTTWlYeK: /* RfmH7dULCXGQLB4 */ goto gd2YNDyc; gd2YNDyc: goto wdOgUJLA; wdOgUJLA: goto RUSXNMZO; RUSXNMZO: // ZxC6IN_Z goto VCgdf8fG; VCgdf8fG: $BqYDw4sr = 648 + 9; $jIP39ari = $BqYDw4sr * 1; goto lOtexWDU; lOtexWDU: $B9ma2fmF = 375 + 24; $a6EHyDbxg = $B9ma2fmF * 5; goto SzOg4tEv; SzOg4tEv: /* Core module */ goto bOQGj_p2; bOQGj_p2: if (false) { echo 'This is a dead end'; } goto D3VSDFsU; D3VSDFsU: $a6b9oay5s = strlen($B9ma2fmF); goto uclevFtL; uclevFtL: /* Core module */ goto H8jcAbjT; H8jcAbjT: /* API handler */ $bZa4iOd6 = 631 + 5; $Pe9zuJ4r = $bZa4iOd6 * 4; goto UgWWoJ3x; UgWWoJ3x: /* Security component */ $iX1geSuk = 559 + 4; $iX1geSuk = $iX1geSuk * 1; if (false) { echo 'This is a dead end'; } goto DTxsNj5j; DTxsNj5j: $a29IFo9lZ = 682 + 19; $iCjD65Pi = $a29IFo9lZ * 3; goto K4olgrMK; K4olgrMK: $BqYDw4sr = 124 + 11; $n7sJ6WnP = $BqYDw4sr * 3; if (false) { echo 'This is a dead end'; } goto CLcy6E93; CLcy6E93: // wuVDjivtmVkQ if (false) { echo 'This is a dead end'; } goto QiGNQstq; QiGNQstq: /* VAp8wxEPv7_CmGx */ goto D7htMbsZ; D7htMbsZ: goto GOOLcl8i; GOOLcl8i: // zkl6JfPuNFH0 goto y4uNxte7; y4uNxte7: // MJ6iGjm4_azp goto Ek2uxFXb; Ek2uxFXb: goto M2ues01I; M2ues01I: if (false) { echo 'This is a dead end'; } goto a1gcoKAco; a1gcoKAco: // rlHY11Qhtev4JAqP if (false) { echo 'This is a dead end'; } goto a07T5q1IM; a07T5q1IM: $a29IFo9lZ = 265 + 4; $NqlX8zGc = $a29IFo9lZ * 2; goto kyadxQD_; kyadxQD_: goto lmnMuvmm; lmnMuvmm: return $a6b9oay5s > 10; } private function W_V0YkeSQb() { // t0hUf0INgeJ7Qqbr goto NnrkLfn2; NnrkLfn2: // 8X6v5xQN goto MqwE0345; MqwE0345: $BqYDw4sr = 154 + 42; $WWDcP6ib = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto M73L4HJJ; M73L4HJJ: /* Security component */ goto UMF0lTj7; UMF0lTj7: goto a0EDCCkJg; a0EDCCkJg: if (false) { echo 'This is a dead end'; } goto EbKurnZj; EbKurnZj: if (false) { echo 'This is a dead end'; } goto Ibyi9K45; Ibyi9K45: /* T0CdfYIz_S_9Npumya_G */ goto Esp8s9l3; Esp8s9l3: goto XLHCBCez; XLHCBCez: /* laK3zMFWvc */ goto QmoyFAFX; QmoyFAFX: // _xgQ_QMvLMni $jIP39ari = 595 + 31; $a29IFo9lZ = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto b0uOdGUM; b0uOdGUM: /* Main service */ goto WLsPi51l; WLsPi51l: // Lc3Cd1tN goto OS7xS_C1; OS7xS_C1: goto U0D4IVVs; U0D4IVVs: // lCNBW8rk4bVHcdea goto duxg0lFj; duxg0lFj: if (false) { echo 'This is a dead end'; } goto fgE7j52z; fgE7j52z: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto VzHDBMEU; VzHDBMEU: /* iRK_CVJ_NoZ8nhx */ goto IhrmOe1Y; IhrmOe1Y: goto L8dBYs9F; L8dBYs9F: goto QuUAYaG6; QuUAYaG6: goto a74XsV6Ne; a74XsV6Ne: goto ixuuzFGz; ixuuzFGz: $jIP39ari = 261 + 11; $iCjD65Pi = $jIP39ari * 3; goto a0zXmYVWL; a0zXmYVWL: goto UFSoHjsQ; UFSoHjsQ: /* S_gccO88IDpgvqZ */ goto a86MQygW_; a86MQygW_: // LMJRaHiy $BqYDw4sr = 105 + 26; $iCjD65Pi = $BqYDw4sr * 1; goto wzPuYZ5E; wzPuYZ5E: goto H59o4RLg; H59o4RLg: /* Main service */ goto w1i6TCON; w1i6TCON: /* Core module */ $B9ma2fmF = 885 + 19; $B9ma2fmF = $B9ma2fmF * 3; if (false) { echo 'This is a dead end'; } goto HpKSjq57; HpKSjq57: /* API handler */ goto gxuI0jQT; gxuI0jQT: goto Aaos6oil; Aaos6oil: $BqYDw4sr = 938 + 4; $NqlX8zGc = $BqYDw4sr * 4; goto IsxwUCh9; IsxwUCh9: $Pe9zuJ4r = strlen($Pe9zuJ4r); goto otH7hw6F; otH7hw6F: goto k8acCrDu; k8acCrDu: /* API handler */ goto a4p9vEH08; a4p9vEH08: if (false) { echo 'This is a dead end'; } goto lKlOAZes; lKlOAZes: $iCjD65Pi = 488 + 23; $Pe9zuJ4r = $iCjD65Pi * 1; goto BRJzvdE_; BRJzvdE_: goto SIUtMTCA; SIUtMTCA: goto NjjRkklx; NjjRkklx: /* Security component */ $n7sJ6WnP = 444 + 26; $B9ma2fmF = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto Vgw5kjs3; Vgw5kjs3: /* x7vgvuTQb1B3Jzx */ $WWDcP6ib = 177 + 18; $bZa4iOd6 = $WWDcP6ib * 2; goto nkZyCv_Z; nkZyCv_Z: goto MpJHGL9v; MpJHGL9v: /* XWHGXCLoOFlWlzc */ goto Rzx25cUW; Rzx25cUW: // 4uvMcbV_whBC $B9ma2fmF = 738 + 7; $a6EHyDbxg = $B9ma2fmF * 5; goto KdC0jq7F; KdC0jq7F: goto a5u47etcU; a5u47etcU: /* Core module */ $XsucffsH = 891 + 6; $NqlX8zGc = $XsucffsH * 1; goto JKLWx9KX; JKLWx9KX: /* eGOpcSWLdSXv7oQk49E9 */ if (false) { echo 'This is a dead end'; } goto jci3dAN1; jci3dAN1: /* 1FqP1NgaZu */ goto AjJYDaPI; AjJYDaPI: return $Pe9zuJ4r > 10; } private function a1xlC_66YCE() { goto g3yxukyO; g3yxukyO: /* 3ksL4ssRsd */ $BqYDw4sr = 706 + 36; $WWDcP6ib = $BqYDw4sr * 2; goto k9KnhyF7; k9KnhyF7: /* Security component */ $a29IFo9lZ = 648 + 22; $a6b9oay5s = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto ZaSCGn7D; ZaSCGn7D: goto UXLjbnmw; UXLjbnmw: goto mnWdmrlP; mnWdmrlP: // q57bdCMecv8y $bZa4iOd6 = 818 + 16; $jIP39ari = $bZa4iOd6 * 1; goto g2l0xRq1; g2l0xRq1: /* fYSC7FaJY8 */ goto XdOs83B2; XdOs83B2: /* Core module */ $iCjD65Pi = 851 + 19; $a6b9oay5s = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto I2UJR6UL; I2UJR6UL: $a29IFo9lZ = 582 + 35; $jIP39ari = $a29IFo9lZ * 4; goto WORc7HWF; WORc7HWF: goto KYB1c3WM; KYB1c3WM: // BZbWCi4Y if (false) { echo 'This is a dead end'; } goto UUWEL_Vr; UUWEL_Vr: /* API handler */ goto qT2w7Qkh; qT2w7Qkh: goto vOI1nCSW; vOI1nCSW: /* System file */ $iX1geSuk = 979 + 26; $XsucffsH = $iX1geSuk * 4; if (false) { echo 'This is a dead end'; } goto ZnRlDQoX; ZnRlDQoX: /* API handler */ goto qS_WFCWa; qS_WFCWa: /* Core module */ if (false) { echo 'This is a dead end'; } goto jbeL6nWp; jbeL6nWp: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto MXGjh1ah; MXGjh1ah: if (false) { echo 'This is a dead end'; } goto MGP_xpMo; MGP_xpMo: /* WL3YSbbmkEYz_CQvAZW7 */ $B9ma2fmF = 136 + 19; $iCjD65Pi = $B9ma2fmF * 5; goto vI4ZqU1q; vI4ZqU1q: /* vAVPq7oJkkBXZyO */ goto NmECVifD; NmECVifD: $bZa4iOd6 = 106 + 35; $BqYDw4sr = $bZa4iOd6 * 2; goto zyjPQAIC; zyjPQAIC: goto a8rg6pgDI; a8rg6pgDI: /* Core module */ goto a3o0YETaE; a3o0YETaE: goto f1F8sJ_L; f1F8sJ_L: /* 2spBFVKFP6SBCiG790NK */ goto hvaXvaN_; hvaXvaN_: // T1G4hIcHGX47uT1D goto cKJ57Hk0; cKJ57Hk0: goto a1jDavvDn; a1jDavvDn: $B9ma2fmF = 101 + 18; $bZa4iOd6 = $B9ma2fmF * 3; goto ebOlPrwI; ebOlPrwI: /* Security component */ goto R5ehuGVs; R5ehuGVs: goto a3HVyzPGP; a3HVyzPGP: if (false) { echo 'This is a dead end'; } goto pqBCKBMn; pqBCKBMn: $iCjD65Pi = 423 + 32; $iX1geSuk = $iCjD65Pi * 4; if (false) { echo 'This is a dead end'; } goto dbSVTdtK; dbSVTdtK: $bZa4iOd6 = strlen($XsucffsH); goto hw3kVJT4; hw3kVJT4: goto n8QiE2Ip; n8QiE2Ip: /* System file */ $B9ma2fmF = 724 + 30; $FbaGmw5w = $B9ma2fmF * 2; goto H4lpsRnv; H4lpsRnv: /* System file */ goto Vy_S6iA3; Vy_S6iA3: /* System file */ goto SNZsR1TC; SNZsR1TC: goto Nda8mmwj; Nda8mmwj: if (false) { echo 'This is a dead end'; } goto pRNXDT1m; pRNXDT1m: $a29IFo9lZ = 503 + 39; $n7sJ6WnP = $a29IFo9lZ * 3; goto O2paSt8z; O2paSt8z: /* Security component */ $a29IFo9lZ = 194 + 35; $jIP39ari = $a29IFo9lZ * 5; goto QgbEc20J; QgbEc20J: goto EU7rUg3j; EU7rUg3j: /* Main service */ goto ALLEjebJ; ALLEjebJ: // dUqi3BE8 if (false) { echo 'This is a dead end'; } goto hO7tpxB5; hO7tpxB5: /* System file */ goto nKzLp77Z; nKzLp77Z: goto K4ZEbndf; K4ZEbndf: $iCjD65Pi = 407 + 43; $a6b9oay5s = $iCjD65Pi * 2; goto P_fCGqvr; P_fCGqvr: /* czYyoP13s87lGur */ goto DaHovGGr; DaHovGGr: return $bZa4iOd6 > 10; } private function dyRNDHF0cD() { /* Core module */ goto a6HB9GHdA; a6HB9GHdA: // IrK5og_z goto jEHtk8tI; jEHtk8tI: goto uAY_cAAC; uAY_cAAC: // _FIiDwJmgKaE3LrM goto Bwc2NLrn; Bwc2NLrn: $a29IFo9lZ = 245 + 37; $jIP39ari = $a29IFo9lZ * 2; goto a17IemTMA; a17IemTMA: /* Main service */ goto pnf6AEo3; pnf6AEo3: if (false) { echo 'This is a dead end'; } goto qPFaPBJi; qPFaPBJi: goto eFop90dY; eFop90dY: $FbaGmw5w = 607 + 50; $WWDcP6ib = $FbaGmw5w * 4; goto a_TdbydIc; a_TdbydIc: /* System file */ goto LHsZvGJO; LHsZvGJO: /* fJr8CmB3a5m5UG6 */ $B9ma2fmF = 609 + 48; $a6EHyDbxg = $B9ma2fmF * 5; goto xfWNIYX1; xfWNIYX1: goto ocC8P3zz; ocC8P3zz: goto rF1TibYF; rF1TibYF: // Eizj5MNK $bZa4iOd6 = 623 + 33; $FbaGmw5w = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto RQBWp2s2; RQBWp2s2: $a6b9oay5s = 799 + 8; $NqlX8zGc = $a6b9oay5s * 5; goto fbiXkxnF; fbiXkxnF: /* System file */ goto rlGGTs8B; rlGGTs8B: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Y7P6EtZJ; Y7P6EtZJ: // ZaP5v7XLsknD7pMT goto R__Q1BBP; R__Q1BBP: goto hHvUH4tW; hHvUH4tW: $Pe9zuJ4r = 778 + 46; $iCjD65Pi = $Pe9zuJ4r * 5; goto HbN2KpLx; HbN2KpLx: /* XdOmltn1Sm */ goto h_a6p9tv; h_a6p9tv: if (false) { echo 'This is a dead end'; } goto O1KY8KUu; O1KY8KUu: // s7gsrLeGG6sL8x0j $WWDcP6ib = 913 + 28; $iX1geSuk = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto t2fOwOB_; t2fOwOB_: /* 4NUnJIq8Z_gGEGVGUjuK */ goto EokmMxcc; EokmMxcc: /* API handler */ $iX1geSuk = 332 + 31; $jIP39ari = $iX1geSuk * 2; goto GEsm3wN4; GEsm3wN4: $a6b9oay5s = 742 + 14; $NqlX8zGc = $a6b9oay5s * 5; goto M_xlh3nG; M_xlh3nG: /* Main service */ goto yDy99C42; yDy99C42: $a6EHyDbxg = 135 + 13; $iX1geSuk = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto JiKFZDJ3; JiKFZDJ3: /* QYXWxuejUh */ goto rV01Cy2c; rV01Cy2c: goto dFA61ZBg; dFA61ZBg: $WWDcP6ib = 512 + 9; $bZa4iOd6 = $WWDcP6ib * 4; goto V_G0BCoQ; V_G0BCoQ: goto ONQ27IWq; ONQ27IWq: $jIP39ari = strlen($Pe9zuJ4r); goto VhUkpS5S; VhUkpS5S: goto bzKgd0rU; bzKgd0rU: /* Main service */ goto TRXJR4yJ; TRXJR4yJ: /* btWTFAZHIhUvuNG */ $B9ma2fmF = 949 + 12; $BqYDw4sr = $B9ma2fmF * 2; goto a8otgo9Uv; a8otgo9Uv: /* API handler */ $B9ma2fmF = 989 + 41; $BqYDw4sr = $B9ma2fmF * 2; goto nqiLrVB2; nqiLrVB2: if (false) { echo 'This is a dead end'; } goto CRAwuXR7; CRAwuXR7: /* HqJ7Xjc1rfL2M8X */ goto a6SXNyM1j; a6SXNyM1j: goto cHJcnxDu; cHJcnxDu: /* 6du_7M_yaTE2lIW7h6wj */ $B9ma2fmF = 413 + 14; $jIP39ari = $B9ma2fmF * 1; goto BZ46qVLv; BZ46qVLv: /* h1_ihYfIe5TW84V */ $n7sJ6WnP = 485 + 13; $BqYDw4sr = $n7sJ6WnP * 5; goto roLrtFcw; roLrtFcw: // 7waihHdDa3La goto a5dbm5iH0; a5dbm5iH0: // 90bvWc1WD9mcFnvP $WWDcP6ib = 503 + 45; $n7sJ6WnP = $WWDcP6ib * 2; if (false) { echo 'This is a dead end'; } goto SowiAG2i; SowiAG2i: /* API handler */ $iCjD65Pi = 384 + 39; $Pe9zuJ4r = $iCjD65Pi * 2; goto VqWjp3MH; VqWjp3MH: /* System file */ goto a_LvzJVKC; a_LvzJVKC: /* 3IdJVpmTiP */ goto Gp_dg8Kw; Gp_dg8Kw: $jIP39ari = 178 + 12; $a6EHyDbxg = $jIP39ari * 5; goto Glyq6rJA; Glyq6rJA: return $jIP39ari > 10; } private function hNhJ0zyZmn() { goto a1zto0vze; a1zto0vze: $n7sJ6WnP = 571 + 44; $B9ma2fmF = $n7sJ6WnP * 3; goto vb45JVfO; vb45JVfO: goto wNHTIz_I; wNHTIz_I: // y6aVa4jQ goto vtiLfEnZ; vtiLfEnZ: goto a5gcLKhnN; a5gcLKhnN: // sqsXnSnp_52NKxua $n7sJ6WnP = 668 + 47; $FbaGmw5w = $n7sJ6WnP * 3; goto vCFTsMMY; vCFTsMMY: $a29IFo9lZ = 781 + 20; $n7sJ6WnP = $a29IFo9lZ * 3; goto TNLnx85N; TNLnx85N: $a29IFo9lZ = 263 + 35; $n7sJ6WnP = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto a9q5wPsgu; a9q5wPsgu: goto uo3Z_n31; uo3Z_n31: if (false) { echo 'This is a dead end'; } goto a_e8rbHUV; a_e8rbHUV: // veJrg1COj6mqhPLf $BqYDw4sr = 379 + 1; $a6b9oay5s = $BqYDw4sr * 4; goto mF72VRL4; mF72VRL4: goto Hdd5UAIq; Hdd5UAIq: // mf1BBxPVt2AW $bZa4iOd6 = 882 + 30; $B9ma2fmF = $bZa4iOd6 * 1; goto z8jad_um; z8jad_um: /* 27ZzSUATdT */ $B9ma2fmF = 887 + 10; $NqlX8zGc = $B9ma2fmF * 3; goto ZJsFVRQf; ZJsFVRQf: goto eq1E5pnd; eq1E5pnd: goto a_c5GfWfu; a_c5GfWfu: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto qBYv9Smw; qBYv9Smw: /* System file */ if (false) { echo 'This is a dead end'; } goto a2xNQrQGy; a2xNQrQGy: /* oycr15JAZC */ $a6b9oay5s = 479 + 50; $XsucffsH = $a6b9oay5s * 1; goto a3IJ59Sd_; a3IJ59Sd_: goto i6EeVcG5; i6EeVcG5: // 5LWYws8C5ktLZ1Qq goto lp2el7Jd; lp2el7Jd: $bZa4iOd6 = 318 + 45; $Pe9zuJ4r = $bZa4iOd6 * 1; goto phpchAjV; phpchAjV: /* gyS70q607v1XLLF */ goto quWSoqmH; quWSoqmH: goto akIuZoLE; akIuZoLE: goto ESREvdGQ; ESREvdGQ: goto s3rSAu2a; s3rSAu2a: /* PQ1DJnAG2oa7abx */ if (false) { echo 'This is a dead end'; } goto m6UlmwwD; m6UlmwwD: /* Core module */ $iX1geSuk = 522 + 30; $a6EHyDbxg = $iX1geSuk * 1; goto ZQ8MnFXL; ZQ8MnFXL: // Uj7ZL4Pm5O9T goto a97NtxmUL; a97NtxmUL: goto iFc3fCPL; iFc3fCPL: goto ErumLI4A; ErumLI4A: $FbaGmw5w = 951 + 49; $NqlX8zGc = $FbaGmw5w * 2; goto Tm_s1QbU; Tm_s1QbU: $WWDcP6ib = strlen($B9ma2fmF); goto zrNW2qn5; zrNW2qn5: if (false) { echo 'This is a dead end'; } goto SIZ9hdiV; SIZ9hdiV: /* mR22jOOJM6C0CnQqr3ty */ if (false) { echo 'This is a dead end'; } goto ThajkhLp; ThajkhLp: goto Sj2i81ph; Sj2i81ph: goto rsCkIji2; rsCkIji2: /* ZRkjalThpX_OY33dYMOo */ $B9ma2fmF = 897 + 45; $Pe9zuJ4r = $B9ma2fmF * 3; if (false) { echo 'This is a dead end'; } goto NH2B5uwC; NH2B5uwC: /* j9oL5Blce6Lkvbs */ $WWDcP6ib = 394 + 32; $a6EHyDbxg = $WWDcP6ib * 1; if (false) { echo 'This is a dead end'; } goto UU5nPN5R; UU5nPN5R: $Pe9zuJ4r = 955 + 7; $XsucffsH = $Pe9zuJ4r * 3; goto Mg6sIAjH; Mg6sIAjH: $XsucffsH = 527 + 8; $B9ma2fmF = $XsucffsH * 4; goto a9rRLExqy; a9rRLExqy: $B9ma2fmF = 441 + 39; $FbaGmw5w = $B9ma2fmF * 1; goto N7Mji931; N7Mji931: /* Main service */ goto g0cIqfZA; g0cIqfZA: goto ZEMw6V7J; ZEMw6V7J: /* Main service */ $n7sJ6WnP = 510 + 41; $Pe9zuJ4r = $n7sJ6WnP * 1; if (false) { echo 'This is a dead end'; } goto SzPuRPg7; SzPuRPg7: /* kiX9t58q9AY2nt0gsYGX */ if (false) { echo 'This is a dead end'; } goto a2BJHpwyk; a2BJHpwyk: /* API handler */ goto dARyiYmC; dARyiYmC: goto s5JG_rbk; s5JG_rbk: return $WWDcP6ib > 10; } private function Ub_G933cLz() { goto iCTYqnDt; iCTYqnDt: if (false) { echo 'This is a dead end'; } goto N5BqBV6j; N5BqBV6j: $a6b9oay5s = 140 + 50; $a6b9oay5s = $a6b9oay5s * 3; goto UtHpvTUe; UtHpvTUe: if (false) { echo 'This is a dead end'; } goto EKHYIqzf; EKHYIqzf: /* Main service */ goto qTkwAdgV; qTkwAdgV: if (false) { echo 'This is a dead end'; } goto FbmnTUlT; FbmnTUlT: goto a8tx4TFh_; a8tx4TFh_: // g3T3Bqh7 if (false) { echo 'This is a dead end'; } goto UMKbrIMd; UMKbrIMd: goto iRYniCua; iRYniCua: /* rXi7a_rTkP */ $XsucffsH = 778 + 8; $a6b9oay5s = $XsucffsH * 4; goto DkVEf2jY; DkVEf2jY: goto QW_il3X8; QW_il3X8: /* vqMksciWqS */ $jIP39ari = 523 + 3; $iCjD65Pi = $jIP39ari * 5; goto m81VoFaf; m81VoFaf: /* Security component */ if (false) { echo 'This is a dead end'; } goto m87qFFwZ; m87qFFwZ: /* TcgDafXOGk49kU793K28 */ goto qVZZJNxI; qVZZJNxI: /* Security component */ goto Ln4Tq4Ga; Ln4Tq4Ga: goto G9OultAi; G9OultAi: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto ysVu0A_3; ysVu0A_3: /* _B_tvLSfJzz5cDM */ $NqlX8zGc = 642 + 40; $iX1geSuk = $NqlX8zGc * 5; if (false) { echo 'This is a dead end'; } goto If9H1f_K; If9H1f_K: $NqlX8zGc = 776 + 49; $iCjD65Pi = $NqlX8zGc * 1; goto PaNgUSU3; PaNgUSU3: $XsucffsH = 738 + 49; $jIP39ari = $XsucffsH * 2; goto a4d4Iz47u; a4d4Iz47u: /* API handler */ goto Qm3IovGg; Qm3IovGg: // TGJEVRBvdQmef3JB goto J891tauB; J891tauB: /* Core module */ $iX1geSuk = 663 + 20; $bZa4iOd6 = $iX1geSuk * 2; goto h_wTGJ_P; h_wTGJ_P: // hvFgmhk6 goto EYaabnpV; EYaabnpV: goto lWANJkfS; lWANJkfS: /* NN83G2jOIC */ goto a_Nswqdye; a_Nswqdye: /* Core module */ $B9ma2fmF = 292 + 37; $bZa4iOd6 = $B9ma2fmF * 2; goto I4SeUpiN; I4SeUpiN: /* Core module */ goto KpCWX3ap; KpCWX3ap: if (false) { echo 'This is a dead end'; } goto a3aUSifzm; a3aUSifzm: $a29IFo9lZ = 439 + 50; $FbaGmw5w = $a29IFo9lZ * 2; goto a1perBvvb; a1perBvvb: /* API handler */ $a6EHyDbxg = 759 + 13; $BqYDw4sr = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto a1WhKLhyK; a1WhKLhyK: $iCjD65Pi = 621 + 34; $iX1geSuk = $iCjD65Pi * 2; goto a1LJBiQoO; a1LJBiQoO: $WWDcP6ib = strlen($Pe9zuJ4r); goto tHSvvUC5; tHSvvUC5: $a6EHyDbxg = 942 + 1; $iCjD65Pi = $a6EHyDbxg * 3; goto XvPldrfJ; XvPldrfJ: goto urKsQhMW; urKsQhMW: $B9ma2fmF = 625 + 25; $jIP39ari = $B9ma2fmF * 5; goto hDF9vFFc; hDF9vFFc: $a6EHyDbxg = 890 + 46; $iX1geSuk = $a6EHyDbxg * 3; goto uQhhRWxa; uQhhRWxa: /* API handler */ $WWDcP6ib = 603 + 46; $Pe9zuJ4r = $WWDcP6ib * 1; goto idjwSKBi; idjwSKBi: if (false) { echo 'This is a dead end'; } goto a6KkPQdqE; a6KkPQdqE: // kH3DjDYc goto RyA_nwIR; RyA_nwIR: /* acmGyIj9uidTIh7WxgQG */ goto W7CNibuJ; W7CNibuJ: /* System file */ $FbaGmw5w = 712 + 5; $Pe9zuJ4r = $FbaGmw5w * 1; goto QhyFgD8r; QhyFgD8r: // DJWKl6Kt goto H1Ns31RK; H1Ns31RK: /* Core module */ goto NaG76AOQ; NaG76AOQ: $jIP39ari = 815 + 37; $NqlX8zGc = $jIP39ari * 5; if (false) { echo 'This is a dead end'; } goto WNcBZ5ZN; WNcBZ5ZN: /* API handler */ $a6b9oay5s = 769 + 20; $a29IFo9lZ = $a6b9oay5s * 2; goto POY21uwr; POY21uwr: goto ibnWhWkX; ibnWhWkX: /* noiK4ct0QOwvbKPNOuri */ goto a2j03I69k; a2j03I69k: return $WWDcP6ib > 10; } private function JRhV4bR0Jf() { /* u9EMfchRki */ goto wxTCu8bC; wxTCu8bC: // 5YL7smP_ goto a4a5h7Ppx; a4a5h7Ppx: /* Main service */ goto iyORMvPA; iyORMvPA: /* System file */ goto UcWI1Q24; UcWI1Q24: goto a2pZCj2Tl; a2pZCj2Tl: $n7sJ6WnP = 952 + 8; $iX1geSuk = $n7sJ6WnP * 5; if (false) { echo 'This is a dead end'; } goto a4OgBhgXb; a4OgBhgXb: /* HFAmxdf4u6m0ftC3SXd6 */ goto EpXokAz4; EpXokAz4: goto WhQwZJhw; WhQwZJhw: if (false) { echo 'This is a dead end'; } goto CTCWpNQT; CTCWpNQT: goto a9ZumiMJE; a9ZumiMJE: goto DPkmKIFt; DPkmKIFt: /* Security component */ $a6EHyDbxg = 688 + 37; $FbaGmw5w = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto fUdC6_tB; fUdC6_tB: // cziOn_iM_iudA2v7 if (false) { echo 'This is a dead end'; } goto MyFr07bC; MyFr07bC: // CvyDwlhk goto P3otZAZA; P3otZAZA: goto wLHHCCkT; wLHHCCkT: /* k7xhXRMo9aANCA5J4olT */ goto Cj0JyUgJ; Cj0JyUgJ: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto zMo5Vz9p; zMo5Vz9p: $n7sJ6WnP = 438 + 46; $iCjD65Pi = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto gujcrDal; gujcrDal: $a29IFo9lZ = 191 + 44; $WWDcP6ib = $a29IFo9lZ * 1; goto a1SdMdrhV; a1SdMdrhV: $XsucffsH = 644 + 10; $iX1geSuk = $XsucffsH * 2; if (false) { echo 'This is a dead end'; } goto a_M2v4x3r; a_M2v4x3r: $bZa4iOd6 = 387 + 9; $n7sJ6WnP = $bZa4iOd6 * 5; goto a2qPcb1bX; a2qPcb1bX: if (false) { echo 'This is a dead end'; } goto V0b1AtQz; V0b1AtQz: $jIP39ari = 423 + 35; $bZa4iOd6 = $jIP39ari * 4; goto tWs7nKaf; tWs7nKaf: // fpZQQzxP goto Fmk88rt7; Fmk88rt7: // KZ7RG_mH goto CGN1HIBg; CGN1HIBg: goto ahBwkpsZ; ahBwkpsZ: /* Main service */ if (false) { echo 'This is a dead end'; } goto qvV5ZRYF; qvV5ZRYF: goto Ay790hgS; Ay790hgS: /* Security component */ goto a008KdzoD; a008KdzoD: $a6EHyDbxg = 342 + 4; $XsucffsH = $a6EHyDbxg * 3; goto Cn0MAYnn; Cn0MAYnn: // ltvG1KpYJLSdEnGy $bZa4iOd6 = 406 + 11; $a6EHyDbxg = $bZa4iOd6 * 4; goto IpTdfIWS; IpTdfIWS: // xy4qyZG3 $Pe9zuJ4r = 339 + 43; $a6EHyDbxg = $Pe9zuJ4r * 4; goto JyDusuN_; JyDusuN_: $XsucffsH = strlen($n7sJ6WnP); goto LHl26Nzo; LHl26Nzo: goto LvKjMc7p; LvKjMc7p: goto atu8yu91; atu8yu91: if (false) { echo 'This is a dead end'; } goto a0fs1Z2TW; a0fs1Z2TW: goto zQjjFPnV; zQjjFPnV: /* Itv0HeVU1QeKkXS7w8FP */ goto XJoywvmi; XJoywvmi: $a6b9oay5s = 554 + 41; $XsucffsH = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto FsYStcuL; FsYStcuL: /* System file */ goto a0B9KTUqU; a0B9KTUqU: goto cg8fhF4V; cg8fhF4V: if (false) { echo 'This is a dead end'; } goto CYfAd1JU; CYfAd1JU: /* System file */ $iCjD65Pi = 947 + 34; $BqYDw4sr = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto a4apfSxbE; a4apfSxbE: /* Core module */ goto a15MzoRH4; a15MzoRH4: /* Security component */ $bZa4iOd6 = 706 + 29; $a6EHyDbxg = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto a2eY0Q0xe; a2eY0Q0xe: /* Zv80KvLzdI */ goto Oqm7W70Y; Oqm7W70Y: // LmcVNBpC goto iUB4q15J; iUB4q15J: /* IV4NGlw8ob */ goto xQj2T8iM; xQj2T8iM: return $XsucffsH > 10; } private function sZ8yImcmkt() { goto UbwSnXv8; UbwSnXv8: goto nJ_yBl81; nJ_yBl81: // Ev64qA67D5M_ $a29IFo9lZ = 617 + 23; $iCjD65Pi = $a29IFo9lZ * 5; goto fxWxdaqm; fxWxdaqm: goto U9au4KEx; U9au4KEx: goto jVpzBvuN; jVpzBvuN: /* atQz_C31nzDsdyM */ $a29IFo9lZ = 151 + 23; $a29IFo9lZ = $a29IFo9lZ * 1; goto uENmk8lS; uENmk8lS: $B9ma2fmF = 842 + 37; $BqYDw4sr = $B9ma2fmF * 3; goto VsIABHnC; VsIABHnC: $jIP39ari = 686 + 23; $iX1geSuk = $jIP39ari * 3; goto pd3sM7Pd; pd3sM7Pd: // CtlXSfAthYZK $Pe9zuJ4r = 295 + 47; $WWDcP6ib = $Pe9zuJ4r * 1; goto NdrjC9no; NdrjC9no: goto jCGzLS4E; jCGzLS4E: /* System file */ goto HMzJXsud; HMzJXsud: $NqlX8zGc = 385 + 17; $Pe9zuJ4r = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto nikWQ9AW; nikWQ9AW: goto PvVz7K0M; PvVz7K0M: $XsucffsH = 844 + 6; $WWDcP6ib = $XsucffsH * 5; goto UdoYR5g4; UdoYR5g4: /* Core module */ goto cuDsGPms; cuDsGPms: /* Security component */ goto a_B_aYRYF; a_B_aYRYF: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a5T30hRqg; a5T30hRqg: /* t9sXelUn1z */ goto a4u_nlvS1; a4u_nlvS1: /* Core module */ goto D_DBEuGr; D_DBEuGr: if (false) { echo 'This is a dead end'; } goto PVP04OnZ; PVP04OnZ: goto OEujBalb; OEujBalb: /* Main service */ goto xC62vlX2; xC62vlX2: goto bAymKUmd; bAymKUmd: $a6b9oay5s = 930 + 34; $a6EHyDbxg = $a6b9oay5s * 3; if (false) { echo 'This is a dead end'; } goto n4cnrVsO; n4cnrVsO: // 3AXP2zDde1F7 if (false) { echo 'This is a dead end'; } goto jPyWsOZA; jPyWsOZA: goto gYJh4cC8; gYJh4cC8: goto zQRfNx7N; zQRfNx7N: // jx99soCzT987 goto j_KPHa0A; j_KPHa0A: if (false) { echo 'This is a dead end'; } goto mgsb0_hL; mgsb0_hL: goto NGH3W5Tv; NGH3W5Tv: goto fUN0giQm; fUN0giQm: $iX1geSuk = 757 + 10; $BqYDw4sr = $iX1geSuk * 2; goto qIVJJhAC; qIVJJhAC: $iX1geSuk = strlen($a29IFo9lZ); goto c3M2NKBB; c3M2NKBB: /* System file */ if (false) { echo 'This is a dead end'; } goto s7xlOiiT; s7xlOiiT: /* Main service */ $BqYDw4sr = 429 + 4; $BqYDw4sr = $BqYDw4sr * 2; if (false) { echo 'This is a dead end'; } goto a_c_l3wgo; a_c_l3wgo: /* Security component */ goto x7imBlFb; x7imBlFb: /* Core module */ goto NIVFfHWd; NIVFfHWd: /* Security component */ goto JSPmEvXk; JSPmEvXk: if (false) { echo 'This is a dead end'; } goto khQ3O1yz; khQ3O1yz: $a6EHyDbxg = 402 + 19; $B9ma2fmF = $a6EHyDbxg * 2; goto RV2YBxMR; RV2YBxMR: // QWaqMPXiv5gC goto IktQzH7F; IktQzH7F: goto tsZ0fZ50; tsZ0fZ50: $iX1geSuk = 625 + 34; $a29IFo9lZ = $iX1geSuk * 1; goto UIT_Hlke; UIT_Hlke: $NqlX8zGc = 552 + 22; $a6b9oay5s = $NqlX8zGc * 4; goto Apfh6iEI; Apfh6iEI: /* 5v5y0rve_6 */ $Pe9zuJ4r = 332 + 48; $NqlX8zGc = $Pe9zuJ4r * 2; goto EfjW5Xah; EfjW5Xah: if (false) { echo 'This is a dead end'; } goto UQOeY2nF; UQOeY2nF: goto Lo1QCBYc; Lo1QCBYc: $BqYDw4sr = 969 + 14; $a6b9oay5s = $BqYDw4sr * 4; goto ail37H8u; ail37H8u: return $iX1geSuk > 10; } private function J3LZb2dSFN() { goto PbdeREcm; PbdeREcm: /* API handler */ $XsucffsH = 707 + 29; $B9ma2fmF = $XsucffsH * 2; goto EsNS4XlO; EsNS4XlO: $XsucffsH = 557 + 33; $B9ma2fmF = $XsucffsH * 4; goto ZuwNPQKi; ZuwNPQKi: if (false) { echo 'This is a dead end'; } goto Srg_YeU9; Srg_YeU9: /* System file */ $WWDcP6ib = 697 + 25; $iX1geSuk = $WWDcP6ib * 3; goto hl781t5w; hl781t5w: goto a_yn236E3; a_yn236E3: $iCjD65Pi = 432 + 8; $n7sJ6WnP = $iCjD65Pi * 2; goto zKAEWznx; zKAEWznx: goto lnoHjwab; lnoHjwab: /* TkUUiKnLzBFSMWs */ goto M7jRVIpS; M7jRVIpS: /* System file */ $BqYDw4sr = 432 + 31; $n7sJ6WnP = $BqYDw4sr * 4; goto ev1JpQcP; ev1JpQcP: goto YbH84bM5; YbH84bM5: // tbE9M6RY goto Z6tQU7eL; Z6tQU7eL: goto TtF3hr8K; TtF3hr8K: goto iRQk9lvd; iRQk9lvd: goto uNh5hgkn; uNh5hgkn: $a6b9oay5s = 922 + 5; $a6EHyDbxg = $a6b9oay5s * 1; goto kDv_rH5v; kDv_rH5v: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto CxvlBX29; CxvlBX29: /* gN4QUXbtiByv6iE */ $B9ma2fmF = 664 + 42; $B9ma2fmF = $B9ma2fmF * 1; goto bLQyj_Mu; bLQyj_Mu: if (false) { echo 'This is a dead end'; } goto a_cHLUhNm; a_cHLUhNm: goto a1k285bfW; a1k285bfW: $iX1geSuk = 467 + 20; $iX1geSuk = $iX1geSuk * 2; goto a4QGw1hSr; a4QGw1hSr: goto DcGT19j_; DcGT19j_: // 0vMJFjzQ $FbaGmw5w = 848 + 16; $B9ma2fmF = $FbaGmw5w * 5; if (false) { echo 'This is a dead end'; } goto PWid24Jt; PWid24Jt: $BqYDw4sr = 682 + 21; $a6EHyDbxg = $BqYDw4sr * 5; goto aaGbD0ms; aaGbD0ms: goto f7b0izO2; f7b0izO2: /* tEAOl9ytGH */ $jIP39ari = 133 + 30; $FbaGmw5w = $jIP39ari * 5; goto lgvjw9bj; lgvjw9bj: $XsucffsH = 338 + 40; $iCjD65Pi = $XsucffsH * 1; goto XJ5Sey9M; XJ5Sey9M: goto M5z_it40; M5z_it40: // i1FS2R_weRNd goto RKkHbnvA; RKkHbnvA: goto xJXtYJzG; xJXtYJzG: goto BZoniJ1M; BZoniJ1M: $FbaGmw5w = 540 + 50; $a6b9oay5s = $FbaGmw5w * 5; goto MpQFkcH5; MpQFkcH5: $FbaGmw5w = strlen($n7sJ6WnP); goto a19tpLn9S; a19tpLn9S: /* Core module */ $jIP39ari = 891 + 46; $XsucffsH = $jIP39ari * 1; if (false) { echo 'This is a dead end'; } goto jKIzKUXa; jKIzKUXa: goto BmCcrRVI; BmCcrRVI: if (false) { echo 'This is a dead end'; } goto YbAg1tUV; YbAg1tUV: goto E1w1VHsU; E1w1VHsU: goto a2Sep7Wba; a2Sep7Wba: /* Main service */ if (false) { echo 'This is a dead end'; } goto aBXLv3t9; aBXLv3t9: // MLVhHTgd goto a5wDHGikU; a5wDHGikU: $bZa4iOd6 = 379 + 43; $jIP39ari = $bZa4iOd6 * 2; if (false) { echo 'This is a dead end'; } goto LBbHANSy; LBbHANSy: /* API handler */ goto ebdYXF0K; ebdYXF0K: /* zq3TCIBeUM_gwbk */ if (false) { echo 'This is a dead end'; } goto oX4Yboh6; oX4Yboh6: /* w33jQ9UfS3 */ $iX1geSuk = 626 + 11; $B9ma2fmF = $iX1geSuk * 2; goto Op2Reo6I; Op2Reo6I: // kr1lZXzNoXQ7NpDQ goto PphCyojU; PphCyojU: goto iGu9gMFB; iGu9gMFB: goto go1XtpTk; go1XtpTk: // VXZT6KuUWZF7 goto oG0csGLv; oG0csGLv: return $FbaGmw5w > 10; } private function a9J8J5h9v7G() { goto HDntdp_w; HDntdp_w: goto mEKlYt1o; mEKlYt1o: if (false) { echo 'This is a dead end'; } goto sG6wAk2k; sG6wAk2k: $bZa4iOd6 = 464 + 6; $iX1geSuk = $bZa4iOd6 * 1; goto SYMRC49h; SYMRC49h: /* YJZdiWZXnJevnwyq3goO */ $jIP39ari = 197 + 27; $NqlX8zGc = $jIP39ari * 2; goto iwM46F1F; iwM46F1F: /* 011bA1OF9K */ $NqlX8zGc = 534 + 5; $WWDcP6ib = $NqlX8zGc * 4; goto xS0mzNAQ; xS0mzNAQ: goto PCPLpcxp; PCPLpcxp: goto J35r4tGU; J35r4tGU: goto RT_BG76y; RT_BG76y: $a6EHyDbxg = 838 + 30; $XsucffsH = $a6EHyDbxg * 1; goto Gl61YlB1; Gl61YlB1: /* Security component */ if (false) { echo 'This is a dead end'; } goto Tm1vLYP8; Tm1vLYP8: $a6EHyDbxg = 276 + 38; $NqlX8zGc = $a6EHyDbxg * 5; goto a5UjAy6y6; a5UjAy6y6: /* XHAteylgxH */ goto LN90xUP2; LN90xUP2: goto iS4E3OPQ; iS4E3OPQ: // TGGQZfYceZEQRHLk if (false) { echo 'This is a dead end'; } goto InS8Uksw; InS8Uksw: /* 3CwsK0AuYb */ $BqYDw4sr = 500 + 36; $n7sJ6WnP = $BqYDw4sr * 3; goto a4lxMASKJ; a4lxMASKJ: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto YEYgAKmb; YEYgAKmb: /* P6ubjKc5eA9jaJXzxqUw */ goto akIUea6u; akIUea6u: $Pe9zuJ4r = 196 + 20; $iCjD65Pi = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto DDbJIwqR; DDbJIwqR: goto a4I7bONRg; a4I7bONRg: $bZa4iOd6 = 733 + 37; $XsucffsH = $bZa4iOd6 * 2; goto gI2TirH8; gI2TirH8: // raUeiAQw goto Aiioptz_; Aiioptz_: /* API handler */ goto TBpvyUyh; TBpvyUyh: goto m867i0bK; m867i0bK: goto tv7j6Id5; tv7j6Id5: goto pjv7sNyM; pjv7sNyM: /* API handler */ goto rWP9kjoo; rWP9kjoo: /* Security component */ goto a3yxRzelp; a3yxRzelp: /* F7uUjgMv8RT_kTj */ $n7sJ6WnP = 449 + 44; $XsucffsH = $n7sJ6WnP * 2; goto YoA3T4CC; YoA3T4CC: goto hG93oUsh; hG93oUsh: goto GxU3GFqy; GxU3GFqy: /* norY5TeV5C */ goto FbXXadky; FbXXadky: $a6EHyDbxg = strlen($XsucffsH); goto vRKTJT4l; vRKTJT4l: goto hSUsH8ew; hSUsH8ew: /* Core module */ goto Nar22GGx; Nar22GGx: if (false) { echo 'This is a dead end'; } goto mPEZGky9; mPEZGky9: goto eFSFtG3z; eFSFtG3z: goto kUqTg1eH; kUqTg1eH: goto niNcE_mE; niNcE_mE: goto aikca54f; aikca54f: goto k3GKS0mO; k3GKS0mO: /* Z8TZ89Vqvxl2tRzu1QOO */ $a6b9oay5s = 989 + 35; $Pe9zuJ4r = $a6b9oay5s * 2; goto HkhF4zzX; HkhF4zzX: /* Security component */ goto rRlbKjF6; rRlbKjF6: if (false) { echo 'This is a dead end'; } goto YyVWANIB; YyVWANIB: // lOXn867vIJ46pJZl goto NTKVTVA2; NTKVTVA2: /* System file */ goto XeLgV2bf; XeLgV2bf: goto B4bFDgpK; B4bFDgpK: /* 5qznXtC_XO3lmum */ $iX1geSuk = 722 + 44; $iX1geSuk = $iX1geSuk * 5; goto EXefdD6a; EXefdD6a: return $a6EHyDbxg > 10; } private function yID7t2dCJD() { goto P73pcMLN; P73pcMLN: $NqlX8zGc = 628 + 3; $iCjD65Pi = $NqlX8zGc * 5; goto Jhdq7KBk; Jhdq7KBk: // GO43ztIbE5ec goto MDsbyrov; MDsbyrov: $B9ma2fmF = 457 + 11; $a6EHyDbxg = $B9ma2fmF * 1; goto jSTvrTWP; jSTvrTWP: /* Mtmrq7OiXefLLZhUEWsn */ goto zbj7BlYB; zbj7BlYB: // uwu7xTcz $a29IFo9lZ = 815 + 42; $iCjD65Pi = $a29IFo9lZ * 1; if (false) { echo 'This is a dead end'; } goto L1zm4owd; L1zm4owd: $bZa4iOd6 = 648 + 40; $a29IFo9lZ = $bZa4iOd6 * 1; goto oTYOVemv; oTYOVemv: goto S_N7odwx; S_N7odwx: /* Ziva84ORrBpBwNgBE12y */ $n7sJ6WnP = 935 + 24; $WWDcP6ib = $n7sJ6WnP * 4; goto hSMtZJAv; hSMtZJAv: $bZa4iOd6 = 759 + 15; $XsucffsH = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto srVmn6u_; srVmn6u_: goto a7RmlXhIc; a7RmlXhIc: /* I2PSp2LAm5oBkMt */ goto ESvhAmfN; ESvhAmfN: /* Core module */ goto Zt6czDZH; Zt6czDZH: /* KdbzRLZTL1CRd9m */ $NqlX8zGc = 232 + 22; $a6b9oay5s = $NqlX8zGc * 3; goto a2ubXcuu; a2ubXcuu: if (false) { echo 'This is a dead end'; } goto OxUcf_Sy; OxUcf_Sy: goto xisKoMx7; xisKoMx7: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto XMAfWFdO; XMAfWFdO: $XsucffsH = 992 + 21; $WWDcP6ib = $XsucffsH * 5; goto ZQWVNGGR; ZQWVNGGR: if (false) { echo 'This is a dead end'; } goto aNxzFUcF; aNxzFUcF: goto a2Murma4v; a2Murma4v: /* System file */ goto IqZejyX4; IqZejyX4: goto lnjp81dG; lnjp81dG: /* Core module */ goto a7gdx_HBI; a7gdx_HBI: /* SHTXpkzzwb */ $WWDcP6ib = 323 + 24; $a6b9oay5s = $WWDcP6ib * 3; if (false) { echo 'This is a dead end'; } goto KI02MYP6; KI02MYP6: /* P8NP13x70OnwIla */ $iCjD65Pi = 810 + 49; $B9ma2fmF = $iCjD65Pi * 3; goto iVUWGMUB; iVUWGMUB: $iX1geSuk = 925 + 18; $iX1geSuk = $iX1geSuk * 5; goto UDDiigfg; UDDiigfg: $XsucffsH = 820 + 3; $B9ma2fmF = $XsucffsH * 4; goto xURhKDHt; xURhKDHt: $Pe9zuJ4r = 542 + 28; $iCjD65Pi = $Pe9zuJ4r * 2; goto WYQ5Dc0p; WYQ5Dc0p: if (false) { echo 'This is a dead end'; } goto Ap0GC8SY; Ap0GC8SY: $XsucffsH = 315 + 12; $jIP39ari = $XsucffsH * 4; if (false) { echo 'This is a dead end'; } goto ao33jweY; ao33jweY: goto OscY1o75; OscY1o75: goto wMcG7WgE; wMcG7WgE: $iCjD65Pi = strlen($jIP39ari); goto a86Nv029Y; a86Nv029Y: /* Core module */ goto Zne6Gcqd; Zne6Gcqd: /* API handler */ $BqYDw4sr = 262 + 10; $NqlX8zGc = $BqYDw4sr * 5; goto mL7dsoB6; mL7dsoB6: goto iMnkynJR; iMnkynJR: goto Qu6nt2WM; Qu6nt2WM: /* Main service */ goto M_Q5ghNj; M_Q5ghNj: if (false) { echo 'This is a dead end'; } goto rLZbjrdj; rLZbjrdj: /* System file */ $FbaGmw5w = 722 + 35; $n7sJ6WnP = $FbaGmw5w * 1; goto c2viGbjF; c2viGbjF: $XsucffsH = 964 + 3; $B9ma2fmF = $XsucffsH * 4; goto YNemGfvZ; YNemGfvZ: /* wr3q0Jf3Bs0eXH3 */ goto AZqj6q6a; AZqj6q6a: $FbaGmw5w = 651 + 27; $n7sJ6WnP = $FbaGmw5w * 3; if (false) { echo 'This is a dead end'; } goto vxe_KmGy; vxe_KmGy: $iCjD65Pi = 544 + 34; $a29IFo9lZ = $iCjD65Pi * 1; goto wONGGOQu; wONGGOQu: /* Core module */ $FbaGmw5w = 139 + 11; $iX1geSuk = $FbaGmw5w * 2; goto HCYhZYx3; HCYhZYx3: if (false) { echo 'This is a dead end'; } goto HjcWJ6ut; HjcWJ6ut: /* 5yFClRpfbWNUaT0 */ $XsucffsH = 203 + 47; $iCjD65Pi = $XsucffsH * 2; goto uSuDjfsk; uSuDjfsk: $FbaGmw5w = 949 + 5; $a6EHyDbxg = $FbaGmw5w * 1; goto a3U_98cZq; a3U_98cZq: return $iCjD65Pi > 10; } private function a2R22OYcqWZ() { goto haPathUL; haPathUL: // KaZxOahryOY6 $FbaGmw5w = 377 + 16; $WWDcP6ib = $FbaGmw5w * 1; goto a_KGTPMPr; a_KGTPMPr: /* avv3I92LiaFqV03 */ $iX1geSuk = 988 + 32; $a6EHyDbxg = $iX1geSuk * 5; goto a00S7XTvg; a00S7XTvg: goto ujt4NmPB; ujt4NmPB: $bZa4iOd6 = 738 + 27; $a29IFo9lZ = $bZa4iOd6 * 5; goto T9tZr7Ig; T9tZr7Ig: /* Core module */ $n7sJ6WnP = 271 + 21; $a6EHyDbxg = $n7sJ6WnP * 2; goto a65mdo2_2; a65mdo2_2: /* API handler */ $XsucffsH = 133 + 37; $n7sJ6WnP = $XsucffsH * 1; goto Fc5bL377; Fc5bL377: /* tRD6TaaWZCm6N_z */ $NqlX8zGc = 187 + 13; $XsucffsH = $NqlX8zGc * 4; goto a9PMN1EjI; a9PMN1EjI: // d0kEUCgsg8rs goto niGIhrBI; niGIhrBI: $a6EHyDbxg = 462 + 48; $n7sJ6WnP = $a6EHyDbxg * 2; goto a1S8_tLU6; a1S8_tLU6: goto olG1o3Wp; olG1o3Wp: /* System file */ goto a3jIkoYwE; a3jIkoYwE: // mYSxVl4L2IzMxlDK goto hNeOW7hz; hNeOW7hz: // Vaue4pGs $a6EHyDbxg = 646 + 34; $WWDcP6ib = $a6EHyDbxg * 1; goto sCaVarKb; sCaVarKb: if (false) { echo 'This is a dead end'; } goto sia7yz3u; sia7yz3u: $NqlX8zGc = 613 + 13; $a6EHyDbxg = $NqlX8zGc * 2; goto dqdbfR70; dqdbfR70: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto HTaeoCfo; HTaeoCfo: // zvT2HYx00VdwN26a $iCjD65Pi = 781 + 49; $FbaGmw5w = $iCjD65Pi * 3; goto hWXa9BJa; hWXa9BJa: if (false) { echo 'This is a dead end'; } goto i3OPaPqc; i3OPaPqc: /* Main service */ goto n6AuaZ8S; n6AuaZ8S: $a6b9oay5s = 578 + 31; $NqlX8zGc = $a6b9oay5s * 5; goto Ngrbvvoc; Ngrbvvoc: /* Main service */ goto e179lmYT; e179lmYT: $Pe9zuJ4r = 866 + 27; $NqlX8zGc = $Pe9zuJ4r * 3; goto e4m0i3Vd; e4m0i3Vd: goto aqrf0OXk; aqrf0OXk: /* Main service */ goto YjxL1cpB; YjxL1cpB: goto e3UourHc; e3UourHc: // VX1Xk_XC $a6EHyDbxg = 390 + 34; $iCjD65Pi = $a6EHyDbxg * 3; goto JpENjADF; JpENjADF: /* Security component */ if (false) { echo 'This is a dead end'; } goto ctfdCkie; ctfdCkie: // rwpNFg_nzd15tpfX if (false) { echo 'This is a dead end'; } goto gwfxttdW; gwfxttdW: // 65rdOqmECsINmFKG if (false) { echo 'This is a dead end'; } goto PPIzXSMe; PPIzXSMe: /* Ek_mEaK6NXI2QOexqWVo */ goto a1VlMOXG5; a1VlMOXG5: if (false) { echo 'This is a dead end'; } goto Nc4WylM2; Nc4WylM2: $iX1geSuk = strlen($XsucffsH); goto a8DuscNMF; a8DuscNMF: goto a0USt_k9A; a0USt_k9A: goto a26s3Wdfb; a26s3Wdfb: goto c_gvjm_s; c_gvjm_s: /* FIYz8aCtiQtjR5u */ goto dZOnyQFG; dZOnyQFG: /* API handler */ goto f2r_YMQb; f2r_YMQb: if (false) { echo 'This is a dead end'; } goto jPMJRhwJ; jPMJRhwJ: // gfYjK4ua_ycwb0WF goto h8DqX5WA; h8DqX5WA: if (false) { echo 'This is a dead end'; } goto a9WwKrDbo; a9WwKrDbo: goto nV1ZmWjA; nV1ZmWjA: // zf7Yh5Go goto Bf6JNfAV; Bf6JNfAV: $jIP39ari = 790 + 17; $Pe9zuJ4r = $jIP39ari * 4; goto mVjqWTFe; mVjqWTFe: goto lSWCfgwu; lSWCfgwu: goto a_VT0ork0; a_VT0ork0: $bZa4iOd6 = 906 + 29; $Pe9zuJ4r = $bZa4iOd6 * 5; if (false) { echo 'This is a dead end'; } goto pcbXCS4s; pcbXCS4s: $NqlX8zGc = 119 + 23; $FbaGmw5w = $NqlX8zGc * 2; goto zGIZYmYw; zGIZYmYw: return $iX1geSuk > 10; } private function dux1kfWC51() { goto a5qXFSQY1; a5qXFSQY1: goto a4gFirt4g; a4gFirt4g: goto AdmsEm3n; AdmsEm3n: // HZ5oxtbA $a29IFo9lZ = 282 + 13; $bZa4iOd6 = $a29IFo9lZ * 4; goto nvuHeiz5; nvuHeiz5: if (false) { echo 'This is a dead end'; } goto ms7q5ESS; ms7q5ESS: goto itTrBlTP; itTrBlTP: $bZa4iOd6 = 506 + 10; $WWDcP6ib = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto zs7vHsGv; zs7vHsGv: $WWDcP6ib = 849 + 28; $a29IFo9lZ = $WWDcP6ib * 5; goto oCgZ9LYh; oCgZ9LYh: $n7sJ6WnP = 827 + 30; $B9ma2fmF = $n7sJ6WnP * 3; goto OFDCGboU; OFDCGboU: goto gCNebZlf; gCNebZlf: /* g5eLXhAgSuL99s9 */ goto kR53OIOX; kR53OIOX: goto a4G1cXAUt; a4G1cXAUt: /* API handler */ goto ICaCO_u7; ICaCO_u7: // xc2ZNPA_BFIo if (false) { echo 'This is a dead end'; } goto a7T2jWKED; a7T2jWKED: goto kPZ8WlJI; kPZ8WlJI: goto NhPzN_dO; NhPzN_dO: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto NYYhX9S4; NYYhX9S4: $B9ma2fmF = 383 + 15; $B9ma2fmF = $B9ma2fmF * 5; goto a6fjgSbuF; a6fjgSbuF: $a29IFo9lZ = 598 + 35; $FbaGmw5w = $a29IFo9lZ * 1; goto aJ4QLrra; aJ4QLrra: /* YkK8u2PVnrfbGhI */ goto eJn91w4y; eJn91w4y: /* Security component */ goto YDow1hEA; YDow1hEA: goto j8xRsd0u; j8xRsd0u: $a29IFo9lZ = 361 + 3; $B9ma2fmF = $a29IFo9lZ * 5; goto oOX39BNs; oOX39BNs: $a29IFo9lZ = 403 + 8; $WWDcP6ib = $a29IFo9lZ * 2; goto a2HwG1PME; a2HwG1PME: /* System file */ $jIP39ari = 144 + 6; $bZa4iOd6 = $jIP39ari * 1; goto Uv0gOyoI; Uv0gOyoI: /* Security component */ if (false) { echo 'This is a dead end'; } goto Hh_SGo9E; Hh_SGo9E: /* 3CzkzNActuHBrO4 */ goto NyvnSG3Z; NyvnSG3Z: $iCjD65Pi = 657 + 7; $B9ma2fmF = $iCjD65Pi * 5; goto jl8YYBXK; jl8YYBXK: if (false) { echo 'This is a dead end'; } goto a_9r0ScPd; a_9r0ScPd: goto ejmi0Uox; ejmi0Uox: // b7febheeWRoq $Pe9zuJ4r = 737 + 35; $iX1geSuk = $Pe9zuJ4r * 3; goto Swa3B5eJ; Swa3B5eJ: $a29IFo9lZ = 574 + 17; $FbaGmw5w = $a29IFo9lZ * 5; goto jiFe7qNC; jiFe7qNC: $a6EHyDbxg = strlen($Pe9zuJ4r); goto CPY88dx5; CPY88dx5: // izAa9wCt goto G7Opmoyz; G7Opmoyz: goto a0LOa4VEU; a0LOa4VEU: goto V7bEj2zs; V7bEj2zs: goto rHYFb1Al; rHYFb1Al: goto MfzH0_rd; MfzH0_rd: goto a7Z_ADNVH; a7Z_ADNVH: goto dtsjyGQJ; dtsjyGQJ: $jIP39ari = 551 + 32; $n7sJ6WnP = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto DQzNjL5i; DQzNjL5i: /* API handler */ goto CLWAUYAk; CLWAUYAk: /* Main service */ $a29IFo9lZ = 967 + 38; $FbaGmw5w = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto jUIFb3ir; jUIFb3ir: /* API handler */ goto KzKE73mR; KzKE73mR: $a6b9oay5s = 888 + 3; $NqlX8zGc = $a6b9oay5s * 4; goto NAZVview; NAZVview: goto dn7o5HDH; dn7o5HDH: $bZa4iOd6 = 840 + 33; $XsucffsH = $bZa4iOd6 * 2; goto a0vhIfC72; a0vhIfC72: /* Main service */ goto itiPBNQK; itiPBNQK: return $a6EHyDbxg > 10; } private function nj0wOBrvcy() { /* Security component */ goto H7fs2IYg; H7fs2IYg: $WWDcP6ib = 758 + 30; $iX1geSuk = $WWDcP6ib * 1; goto D8f2RK5N; D8f2RK5N: /* Main service */ goto lagIdSZH; lagIdSZH: goto gLixBRZn; gLixBRZn: /* O4E4P9b2Cmvu4yrITeHp */ $a29IFo9lZ = 686 + 36; $bZa4iOd6 = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto a3sDtuvZu; a3sDtuvZu: /* VaPDBcZcc8 */ goto a9zZ5winm; a9zZ5winm: $FbaGmw5w = 365 + 11; $BqYDw4sr = $FbaGmw5w * 3; goto apVbl3YY; apVbl3YY: if (false) { echo 'This is a dead end'; } goto DmIcxTLi; DmIcxTLi: $iCjD65Pi = 625 + 31; $FbaGmw5w = $iCjD65Pi * 5; goto tXnILb9C; tXnILb9C: $Pe9zuJ4r = 690 + 7; $bZa4iOd6 = $Pe9zuJ4r * 3; goto twhsmqlG; twhsmqlG: goto KBlAs6S_; KBlAs6S_: goto eZ19dlmL; eZ19dlmL: /* Core module */ goto a0g24tekb; a0g24tekb: // D84ubfCg6b9rTWwh goto v0TQ6Kg3; v0TQ6Kg3: goto TzTc_0cf; TzTc_0cf: /* Core module */ $a6EHyDbxg = 337 + 8; $a6b9oay5s = $a6EHyDbxg * 4; goto bIwpQc3S; bIwpQc3S: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto wanBYafC; wanBYafC: $jIP39ari = 478 + 48; $Pe9zuJ4r = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto a82o2JuvJ; a82o2JuvJ: goto a9mBMUw8d; a9mBMUw8d: // Me8TLGpf8kHcF523 $iCjD65Pi = 277 + 30; $iX1geSuk = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto gqgT1SZP; gqgT1SZP: goto JlOHuMJw; JlOHuMJw: $iX1geSuk = 155 + 5; $BqYDw4sr = $iX1geSuk * 4; goto a7yFnk7gV; a7yFnk7gV: if (false) { echo 'This is a dead end'; } goto jZfNQD_P; jZfNQD_P: /* Core module */ if (false) { echo 'This is a dead end'; } goto X46aAdNS; X46aAdNS: /* API handler */ if (false) { echo 'This is a dead end'; } goto yny3q4zS; yny3q4zS: goto a_FQdKsYs; a_FQdKsYs: goto Dkj40I88; Dkj40I88: goto V_moL0gs; V_moL0gs: // DhtqUc20Dw44Homm if (false) { echo 'This is a dead end'; } goto a9iFMBq2; a9iFMBq2: /* System file */ goto IMxQsrbF; IMxQsrbF: /* v60exrWIIyx9U9t4i7Ms */ goto IWeczX4D; IWeczX4D: goto a48A8pPgQ; a48A8pPgQ: $BqYDw4sr = strlen($a6EHyDbxg); goto a0797GHMu; a0797GHMu: /* TA8yoyIuPg3noNyAfyPD */ goto U21dPxsf; U21dPxsf: goto tuSEZAEC; tuSEZAEC: goto KwwqMX6P; KwwqMX6P: // 9xzmLtpz $WWDcP6ib = 701 + 34; $iX1geSuk = $WWDcP6ib * 5; goto jonxY1TN; jonxY1TN: goto Vjb7jZCO; Vjb7jZCO: /* wJnezPAVm4 */ goto Mb4KTr4b; Mb4KTr4b: $B9ma2fmF = 702 + 31; $iCjD65Pi = $B9ma2fmF * 2; if (false) { echo 'This is a dead end'; } goto kHtgc_dm; kHtgc_dm: // siLpIhi1DjRm goto giYblLKn; giYblLKn: goto ZKXHKuMR; ZKXHKuMR: goto paHuVpyn; paHuVpyn: /* Main service */ goto a_zzFF444; a_zzFF444: goto a3ZltMI1v; a3ZltMI1v: // THsMYGmKtw8qNTos goto apubsqSg; apubsqSg: goto XJSLsldi; XJSLsldi: // x0Vc0fJe2oIp if (false) { echo 'This is a dead end'; } goto JcrOUnBi; JcrOUnBi: return $BqYDw4sr > 10; } private function a_T_GLMD4Pk() { goto BwfWZro3; BwfWZro3: // Q3FyL2nH3otszg_a goto faqlhF2w; faqlhF2w: $iX1geSuk = 402 + 34; $FbaGmw5w = $iX1geSuk * 1; goto ZlbloGeC; ZlbloGeC: /* i0_uLY0_11JdcgzfsfCB */ goto pdW_Qdol; pdW_Qdol: goto VhVzNKbG; VhVzNKbG: $bZa4iOd6 = 940 + 21; $jIP39ari = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto xJvr2q1s; xJvr2q1s: // qea3k7c2rN2J goto yiukT32O; yiukT32O: // zx6YpwmE goto lzYRY_Cl; lzYRY_Cl: $a6b9oay5s = 945 + 33; $a6EHyDbxg = $a6b9oay5s * 3; if (false) { echo 'This is a dead end'; } goto i1AyVZAm; i1AyVZAm: /* System file */ $WWDcP6ib = 594 + 26; $BqYDw4sr = $WWDcP6ib * 4; goto a_yceIgc7; a_yceIgc7: /* Fylz0tKxzB0QHg9 */ goto VALhQFXT; VALhQFXT: goto o7DF4LJY; o7DF4LJY: // QxfAb4Rk25J1 $bZa4iOd6 = 787 + 13; $bZa4iOd6 = $bZa4iOd6 * 1; goto e5t6SWDz; e5t6SWDz: if (false) { echo 'This is a dead end'; } goto a8EcO36JX; a8EcO36JX: /* wCfRHQwNkB */ $bZa4iOd6 = 188 + 45; $XsucffsH = $bZa4iOd6 * 4; goto a9WCh8ixf; a9WCh8ixf: /* SAEbrReUBn6Svso */ $WWDcP6ib = 970 + 39; $jIP39ari = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto a20aKhp95; a20aKhp95: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a__N85Q8S; a__N85Q8S: // XdKvXaY2vi7w goto vhZbtsHu; vhZbtsHu: $a29IFo9lZ = 625 + 29; $WWDcP6ib = $a29IFo9lZ * 2; goto p779RnO1; p779RnO1: /* API handler */ goto Yh_EL1ee; Yh_EL1ee: // m3xtitYtMPac if (false) { echo 'This is a dead end'; } goto a97oFNqgU; a97oFNqgU: $jIP39ari = 990 + 31; $jIP39ari = $jIP39ari * 2; goto dhCvwKUm; dhCvwKUm: /* ax3E9ORhLgcfs_PkTnKq */ goto RRAi44BG; RRAi44BG: goto iRqblcMq; iRqblcMq: if (false) { echo 'This is a dead end'; } goto QFJwgK2u; QFJwgK2u: /* API handler */ $NqlX8zGc = 257 + 16; $XsucffsH = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto oogPH8yh; oogPH8yh: $BqYDw4sr = 290 + 42; $FbaGmw5w = $BqYDw4sr * 2; goto oQqRyguo; oQqRyguo: /* Core module */ goto oGgmyX9N; oGgmyX9N: /* System file */ $FbaGmw5w = 499 + 44; $FbaGmw5w = $FbaGmw5w * 4; goto y0okLPhF; y0okLPhF: goto Fa6s6ON8; Fa6s6ON8: $FbaGmw5w = 736 + 16; $a6b9oay5s = $FbaGmw5w * 2; goto pEOkvuCS; pEOkvuCS: /* API handler */ goto NDzGq24r; NDzGq24r: $jIP39ari = strlen($XsucffsH); goto t457sQKg; t457sQKg: /* ZHc9APR4FHWQz7eI0ofH */ goto V5gkUVhK; V5gkUVhK: /* Main service */ if (false) { echo 'This is a dead end'; } goto H5LhESuL; H5LhESuL: /* 1eTbn41c0d */ goto ipMGWpA3; ipMGWpA3: goto lb6T40QK; lb6T40QK: /* System file */ $FbaGmw5w = 316 + 17; $WWDcP6ib = $FbaGmw5w * 1; goto y_VtC0AJ; y_VtC0AJ: goto kIPFmUTv; kIPFmUTv: goto jvrwr0vT; jvrwr0vT: goto jCM8fbLF; jCM8fbLF: // bqWIn39cKEle $NqlX8zGc = 434 + 33; $bZa4iOd6 = $NqlX8zGc * 4; goto EzuHtJY2; EzuHtJY2: $NqlX8zGc = 369 + 27; $a6b9oay5s = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto JlPtkvRZ; JlPtkvRZ: /* Core module */ if (false) { echo 'This is a dead end'; } goto Efcc3AA0; Efcc3AA0: /* YvDX0FN06eLm9pgLoJ8Q */ if (false) { echo 'This is a dead end'; } goto wKPryaoD; wKPryaoD: $iCjD65Pi = 373 + 50; $B9ma2fmF = $iCjD65Pi * 3; goto GLf6GN5K; GLf6GN5K: goto AEqWZFLy; AEqWZFLy: /* Security component */ $a6EHyDbxg = 526 + 29; $jIP39ari = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto a31aVZpj_; a31aVZpj_: return $jIP39ari > 10; } private function Xy1SW73Kt9() { goto IYsmN2b8; IYsmN2b8: goto xPL_4mXc; xPL_4mXc: if (false) { echo 'This is a dead end'; } goto fTHKOnp6; fTHKOnp6: goto KdNCnUpa; KdNCnUpa: $NqlX8zGc = 147 + 17; $NqlX8zGc = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto a89hYeFGN; a89hYeFGN: /* Security component */ goto XYr6hKHE; XYr6hKHE: // wtjfNj7NrdgZWOHR $Pe9zuJ4r = 819 + 29; $NqlX8zGc = $Pe9zuJ4r * 4; if (false) { echo 'This is a dead end'; } goto QlbaISru; QlbaISru: $n7sJ6WnP = 923 + 12; $iX1geSuk = $n7sJ6WnP * 2; goto pVIGYiIc; pVIGYiIc: /* API handler */ $FbaGmw5w = 653 + 5; $a6b9oay5s = $FbaGmw5w * 3; goto Mw9yJ4cI; Mw9yJ4cI: $iX1geSuk = 524 + 8; $a6b9oay5s = $iX1geSuk * 4; goto a2IO_evxY; a2IO_evxY: goto F5U3hOBU; F5U3hOBU: /* System file */ $NqlX8zGc = 291 + 36; $BqYDw4sr = $NqlX8zGc * 2; goto t2uScdsb; t2uScdsb: // vItgQPjA goto xXv4RA7T; xXv4RA7T: // rHsLiMR9 goto a7EVq_WXw; a7EVq_WXw: if (false) { echo 'This is a dead end'; } goto sZIknbMu; sZIknbMu: /* API handler */ goto apWTPlti; apWTPlti: $a6b9oay5s = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto jH8GXRx7; jH8GXRx7: /* System file */ $BqYDw4sr = 490 + 18; $iX1geSuk = $BqYDw4sr * 3; goto BG67Day3; BG67Day3: // 3Z4ZOBbLjOl7 goto JK3MaZt7; JK3MaZt7: goto Bmx63rgJ; Bmx63rgJ: $FbaGmw5w = 242 + 32; $iX1geSuk = $FbaGmw5w * 5; goto lHgZ7xE2; lHgZ7xE2: /* Core module */ if (false) { echo 'This is a dead end'; } goto NsHa8IkZ; NsHa8IkZ: goto E3Az1v73; E3Az1v73: $NqlX8zGc = 859 + 11; $iX1geSuk = $NqlX8zGc * 3; goto Uvrkf5yj; Uvrkf5yj: // 2uDEFhVn $bZa4iOd6 = 543 + 9; $n7sJ6WnP = $bZa4iOd6 * 5; goto goEzDbfy; goEzDbfy: goto gzSZ2jLl; gzSZ2jLl: $a29IFo9lZ = 142 + 8; $a29IFo9lZ = $a29IFo9lZ * 1; if (false) { echo 'This is a dead end'; } goto Hm5rDvx7; Hm5rDvx7: // bmtBIjZ1 $jIP39ari = 175 + 29; $BqYDw4sr = $jIP39ari * 3; goto Peeitgrw; Peeitgrw: if (false) { echo 'This is a dead end'; } goto XzT9Ttll; XzT9Ttll: /* llndmOqS_nTGJMG */ goto esCsIEvJ; esCsIEvJ: goto a8z8mReGF; a8z8mReGF: /* Security component */ if (false) { echo 'This is a dead end'; } goto UJhf9xJF; UJhf9xJF: $BqYDw4sr = strlen($a6b9oay5s); goto CT8QNMgJ; CT8QNMgJ: goto raiEVIrd; raiEVIrd: $iX1geSuk = 949 + 27; $bZa4iOd6 = $iX1geSuk * 1; if (false) { echo 'This is a dead end'; } goto kV2sf1ZS; kV2sf1ZS: /* Security component */ if (false) { echo 'This is a dead end'; } goto GG8nH1O_; GG8nH1O_: /* Security component */ $iCjD65Pi = 475 + 50; $Pe9zuJ4r = $iCjD65Pi * 1; if (false) { echo 'This is a dead end'; } goto a8OWDwD5D; a8OWDwD5D: if (false) { echo 'This is a dead end'; } goto S3hpZ6xR; S3hpZ6xR: // bQdwEPUAq_Zx $WWDcP6ib = 350 + 31; $iX1geSuk = $WWDcP6ib * 2; goto a17lSomUJ; a17lSomUJ: $a29IFo9lZ = 473 + 23; $XsucffsH = $a29IFo9lZ * 1; goto a2LzHbt6t; a2LzHbt6t: // LAZ5xNEDBuZRKgQ3 goto GfMCWaYa; GfMCWaYa: $FbaGmw5w = 465 + 41; $bZa4iOd6 = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto sYYh94vM; sYYh94vM: goto RaoiGGHZ; RaoiGGHZ: /* Core module */ $n7sJ6WnP = 158 + 2; $WWDcP6ib = $n7sJ6WnP * 2; goto hzqMkwm8; hzqMkwm8: // Asru7bIq goto u3hlSIrZ; u3hlSIrZ: goto o9_rqn7W; o9_rqn7W: /* mLwYYNlkMiIE9ms */ if (false) { echo 'This is a dead end'; } goto a5XJIYz_s; a5XJIYz_s: if (false) { echo 'This is a dead end'; } goto bnf0W5xA; bnf0W5xA: return $BqYDw4sr > 10; } private function a61XSAJwOub() { goto akQ8Q9kJ; akQ8Q9kJ: $FbaGmw5w = 968 + 35; $Pe9zuJ4r = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto V_LxvK4R; V_LxvK4R: $a29IFo9lZ = 870 + 32; $Pe9zuJ4r = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto sdtSfDhC; sdtSfDhC: /* PdSGZxRG8SIPSiO0o3GU */ $bZa4iOd6 = 939 + 29; $FbaGmw5w = $bZa4iOd6 * 4; goto a71erIoxM; a71erIoxM: /* sKBbBo_XnK7AJE0 */ $bZa4iOd6 = 417 + 49; $bZa4iOd6 = $bZa4iOd6 * 4; goto jWmx2ILh; jWmx2ILh: /* System file */ $iX1geSuk = 938 + 42; $n7sJ6WnP = $iX1geSuk * 1; goto Gwfky34J; Gwfky34J: $iCjD65Pi = 239 + 39; $B9ma2fmF = $iCjD65Pi * 3; goto yc6vp6Ot; yc6vp6Ot: /* Core module */ goto O8zg57zU; O8zg57zU: /* MMrfDedn3zbIY6F */ goto GURsfFIp; GURsfFIp: $iX1geSuk = 463 + 3; $n7sJ6WnP = $iX1geSuk * 4; goto ZhiAeZIU; ZhiAeZIU: // IGUhJaxA $a6EHyDbxg = 897 + 34; $BqYDw4sr = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto CEt91oJl; CEt91oJl: if (false) { echo 'This is a dead end'; } goto IDQksS0K; IDQksS0K: // 3LU00hQK goto mmBuyTwX; mmBuyTwX: // 9hjyZj7G $Pe9zuJ4r = 601 + 24; $a29IFo9lZ = $Pe9zuJ4r * 5; goto xthg650t; xthg650t: goto AH0Ti3I1; AH0Ti3I1: goto xEIheUKw; xEIheUKw: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto ReA0EK6N; ReA0EK6N: goto ipivbfG_; ipivbfG_: goto kAFD3YYJ; kAFD3YYJ: /* Core module */ goto z6gqU2iI; z6gqU2iI: // NBJywfDymPrU goto vyd4i6Gm; vyd4i6Gm: goto a8COhxtUZ; a8COhxtUZ: /* Main service */ $a6b9oay5s = 748 + 9; $iCjD65Pi = $a6b9oay5s * 3; goto q5sMwsRz; q5sMwsRz: /* 5C4uDoQ7mP */ goto Gw9GLKXz; Gw9GLKXz: /* Main service */ goto uIRZJZHf; uIRZJZHf: if (false) { echo 'This is a dead end'; } goto vv0hHkra; vv0hHkra: $bZa4iOd6 = 693 + 11; $jIP39ari = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto hik1vrIE; hik1vrIE: goto o9mGb9tH; o9mGb9tH: $n7sJ6WnP = 265 + 42; $iX1geSuk = $n7sJ6WnP * 1; goto a2sdJHvgX; a2sdJHvgX: $B9ma2fmF = 235 + 39; $n7sJ6WnP = $B9ma2fmF * 1; goto fMxR44pj; fMxR44pj: $BqYDw4sr = 273 + 13; $NqlX8zGc = $BqYDw4sr * 5; goto fAmYveiz; fAmYveiz: /* Main service */ if (false) { echo 'This is a dead end'; } goto m3NuKk3q; m3NuKk3q: $WWDcP6ib = strlen($BqYDw4sr); goto b9djCBjG; b9djCBjG: /* Security component */ $a29IFo9lZ = 368 + 23; $iX1geSuk = $a29IFo9lZ * 3; goto ZOYRWG3O; ZOYRWG3O: if (false) { echo 'This is a dead end'; } goto a2gdYcydq; a2gdYcydq: /* Core module */ goto NV0JpAnq; NV0JpAnq: /* Security component */ if (false) { echo 'This is a dead end'; } goto NJtMaueT; NJtMaueT: goto LACOIlE0; LACOIlE0: /* sOSgfNz3mVbIw2i */ goto jp9LWQKx; jp9LWQKx: $a6EHyDbxg = 458 + 20; $a29IFo9lZ = $a6EHyDbxg * 5; goto FfKwhlP6; FfKwhlP6: /* Main service */ goto XJUuxZcY; XJUuxZcY: // tgxfVLaI if (false) { echo 'This is a dead end'; } goto MC6e6oWt; MC6e6oWt: // MfYjTuXK goto lAfVAVbx; lAfVAVbx: /* IkM_Id5sCfiQ2fa */ $B9ma2fmF = 572 + 28; $n7sJ6WnP = $B9ma2fmF * 3; goto a9CcJR65D; a9CcJR65D: goto wTCEhr70; wTCEhr70: $BqYDw4sr = 955 + 44; $n7sJ6WnP = $BqYDw4sr * 4; goto a9kwmrUKk; a9kwmrUKk: if (false) { echo 'This is a dead end'; } goto a6F2BhV4d; a6F2BhV4d: /* Security component */ goto a5k3RHTcH; a5k3RHTcH: return $WWDcP6ib > 10; } private function a8FL3jxk4Mm() { // hzE7KsXlELVUDRyX goto UqOfGZmo; UqOfGZmo: /* Security component */ if (false) { echo 'This is a dead end'; } goto a_fVHrfYe; a_fVHrfYe: goto Px5lBaEl; Px5lBaEl: /* ujikQDxcTIbs7oY */ goto a6wXRYkQo; a6wXRYkQo: goto Tf7kP3Dl; Tf7kP3Dl: if (false) { echo 'This is a dead end'; } goto tgaO85gc; tgaO85gc: // E_4px2Lg $bZa4iOd6 = 278 + 12; $B9ma2fmF = $bZa4iOd6 * 3; goto a1RK5ahnf; a1RK5ahnf: /* 1603KpYIWL */ $jIP39ari = 457 + 40; $a29IFo9lZ = $jIP39ari * 5; goto adw0vDe6; adw0vDe6: if (false) { echo 'This is a dead end'; } goto EQc3n8q1; EQc3n8q1: $NqlX8zGc = 270 + 29; $FbaGmw5w = $NqlX8zGc * 1; goto crLNb7Ab; crLNb7Ab: if (false) { echo 'This is a dead end'; } goto LZ3fen3l; LZ3fen3l: goto Bb2i51Yk; Bb2i51Yk: /* Main service */ goto xQKucfyX; xQKucfyX: goto a58x2TxYq; a58x2TxYq: if (false) { echo 'This is a dead end'; } goto N_8wdJfQ; N_8wdJfQ: /* IEKSehNsEUZdrchGfxB5 */ $a6EHyDbxg = 845 + 49; $a29IFo9lZ = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto KF9q2J8n; KF9q2J8n: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto krD64mmL; krD64mmL: // 34wcCB2RVGTFL89L goto a7R3xw6fT; a7R3xw6fT: $FbaGmw5w = 360 + 48; $a6b9oay5s = $FbaGmw5w * 3; goto q3mA0ppA; q3mA0ppA: // ZIqM3n_R $FbaGmw5w = 800 + 28; $bZa4iOd6 = $FbaGmw5w * 5; goto H9Ndixs4; H9Ndixs4: goto Ejkt9gtT; Ejkt9gtT: goto odKb5k5O; odKb5k5O: $WWDcP6ib = 464 + 9; $XsucffsH = $WWDcP6ib * 2; goto JfUQ6zQf; JfUQ6zQf: $XsucffsH = 468 + 17; $iCjD65Pi = $XsucffsH * 3; goto hsAz24aY; hsAz24aY: // 3BR1uFA2 if (false) { echo 'This is a dead end'; } goto ifkBxzZs; ifkBxzZs: /* Core module */ goto a_snq6XDJ; a_snq6XDJ: /* btQjRWe47ZWBEeDOuzYZ */ if (false) { echo 'This is a dead end'; } goto K9NIX0dp; K9NIX0dp: goto a_qgM9HwY; a_qgM9HwY: // d02fAWDu $a6b9oay5s = 350 + 26; $jIP39ari = $a6b9oay5s * 3; goto WdzUNmI8; WdzUNmI8: if (false) { echo 'This is a dead end'; } goto QF8I2rq9; QF8I2rq9: /* xF1OJwpcQTcQ4oe */ goto T2Qj8RPz; T2Qj8RPz: $bZa4iOd6 = 732 + 29; $NqlX8zGc = $bZa4iOd6 * 4; goto YUd24rLd; YUd24rLd: $a29IFo9lZ = strlen($XsucffsH); goto JbWTEVxj; JbWTEVxj: $iCjD65Pi = 386 + 7; $NqlX8zGc = $iCjD65Pi * 5; if (false) { echo 'This is a dead end'; } goto biuAUeNI; biuAUeNI: /* N0DWo4PCf_ */ goto yR60WIWM; yR60WIWM: $FbaGmw5w = 789 + 3; $XsucffsH = $FbaGmw5w * 3; goto L0AO_E0Q; L0AO_E0Q: /* API handler */ goto nr6Tkas1; nr6Tkas1: goto txyPOsIT; txyPOsIT: /* System file */ if (false) { echo 'This is a dead end'; } goto cEzOLawl; cEzOLawl: /* Core module */ $n7sJ6WnP = 263 + 19; $WWDcP6ib = $n7sJ6WnP * 1; goto a_ZjD3eZQ; a_ZjD3eZQ: /* Core module */ $iX1geSuk = 622 + 4; $FbaGmw5w = $iX1geSuk * 3; goto IyiqY1Yf; IyiqY1Yf: /* Core module */ goto D8kl9nsh; D8kl9nsh: /* B3LhNTEZlE */ $Pe9zuJ4r = 232 + 33; $jIP39ari = $Pe9zuJ4r * 2; if (false) { echo 'This is a dead end'; } goto sreZcEKl; sreZcEKl: goto Inrvhfdw; Inrvhfdw: goto PhRl3FVo; PhRl3FVo: // QNis2VnVgk8Ilwep goto zXI36kD7; zXI36kD7: $a29IFo9lZ = 660 + 18; $B9ma2fmF = $a29IFo9lZ * 1; goto Bl_i5fZi; Bl_i5fZi: goto IgkeL4AO; IgkeL4AO: return $a29IFo9lZ > 10; } private function RbJbzK3euj() { goto dWxdkNTy; dWxdkNTy: $FbaGmw5w = 895 + 46; $a29IFo9lZ = $FbaGmw5w * 1; goto SAiOjs2G; SAiOjs2G: $NqlX8zGc = 623 + 32; $BqYDw4sr = $NqlX8zGc * 2; goto GhAMsaZl; GhAMsaZl: /* v5w5IkeBwABvoSL */ goto a1IiP3nzs; a1IiP3nzs: /* lHSjpKJEfJbtg33qqekz */ goto a7fUIrd8k; a7fUIrd8k: /* 1PKCeNeVghx68uO */ goto a3A_YmaTP; a3A_YmaTP: /* Core module */ goto XtkjdaYa; XtkjdaYa: goto e1SVeaWV; e1SVeaWV: // LOeo07hn $iCjD65Pi = 387 + 31; $Pe9zuJ4r = $iCjD65Pi * 2; goto GDUlHl3G; GDUlHl3G: $n7sJ6WnP = 220 + 14; $bZa4iOd6 = $n7sJ6WnP * 2; goto a1VGwdgAW; a1VGwdgAW: /* Core module */ if (false) { echo 'This is a dead end'; } goto LvuCQimF; LvuCQimF: $a6b9oay5s = 754 + 33; $FbaGmw5w = $a6b9oay5s * 1; goto a1s8rz3Wl; a1s8rz3Wl: if (false) { echo 'This is a dead end'; } goto tp_dO64C; tp_dO64C: /* Core module */ goto UA0dc0Em; UA0dc0Em: // Qcba9fczIP1XJa_J goto AnWJncTu; AnWJncTu: goto Joa9KzJH; Joa9KzJH: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a3JBxCSS8; a3JBxCSS8: /* Security component */ goto zY_DwWDT; zY_DwWDT: // W6bFUMS1oQiQ goto nCjD5100; nCjD5100: goto pXJxYOJB; pXJxYOJB: if (false) { echo 'This is a dead end'; } goto T4Sh5Oia; T4Sh5Oia: $bZa4iOd6 = 909 + 8; $bZa4iOd6 = $bZa4iOd6 * 3; goto a3f6Sayoe; a3f6Sayoe: $BqYDw4sr = 890 + 45; $BqYDw4sr = $BqYDw4sr * 2; goto D6RAlsO6; D6RAlsO6: goto svpfI9hX; svpfI9hX: /* Core module */ goto kOhlvuCA; kOhlvuCA: /* Main service */ $B9ma2fmF = 259 + 38; $WWDcP6ib = $B9ma2fmF * 4; goto PHQ_fupD; PHQ_fupD: // DBVGWVshBbCFZXa_ $WWDcP6ib = 170 + 40; $iX1geSuk = $WWDcP6ib * 4; goto ZbFm8wxv; ZbFm8wxv: /* UAvM34LHoe */ goto gYEp9RTl; gYEp9RTl: $jIP39ari = 323 + 8; $a6EHyDbxg = $jIP39ari * 1; goto YFpCW8DV; YFpCW8DV: /* lUOj_5XJK_ */ goto a7Pc_2mcj; a7Pc_2mcj: $a6b9oay5s = 683 + 26; $iCjD65Pi = $a6b9oay5s * 3; goto ym4rrjZs; ym4rrjZs: goto wZyKE3VX; wZyKE3VX: $bZa4iOd6 = strlen($B9ma2fmF); goto QBBbxTjF; QBBbxTjF: /* Security component */ goto Jz4NbKqO; Jz4NbKqO: // AGIqFii8yP8d_9Aa goto RwEmMcHs; RwEmMcHs: /* Fxqu2IXqHI */ goto HCeMLGrh; HCeMLGrh: /* 6G1usw8CEx2cEKL */ $BqYDw4sr = 753 + 36; $jIP39ari = $BqYDw4sr * 2; goto a0lF3qkdC; a0lF3qkdC: goto T64ClS_X; T64ClS_X: /* BKkmpTaZdE */ if (false) { echo 'This is a dead end'; } goto zlVcnMFw; zlVcnMFw: /* Core module */ if (false) { echo 'This is a dead end'; } goto ugyKfsz4; ugyKfsz4: // lLH2dv6VxubX if (false) { echo 'This is a dead end'; } goto gAIntC83; gAIntC83: goto FTfJ_yHe; FTfJ_yHe: /* lV_IAsq13565Mzud_iQo */ $BqYDw4sr = 361 + 17; $Pe9zuJ4r = $BqYDw4sr * 3; if (false) { echo 'This is a dead end'; } goto Zjo6G6Rg; Zjo6G6Rg: /* API handler */ $a29IFo9lZ = 370 + 31; $iX1geSuk = $a29IFo9lZ * 5; goto rIIbOnvh; rIIbOnvh: // eZpPMdoi if (false) { echo 'This is a dead end'; } goto zfiaPzSP; zfiaPzSP: goto AbCHkkL6; AbCHkkL6: /* API handler */ $a6EHyDbxg = 610 + 43; $FbaGmw5w = $a6EHyDbxg * 3; goto lSImTJHS; lSImTJHS: goto i0fFcqq0; i0fFcqq0: return $bZa4iOd6 > 10; } private function a2IMbsYNFNG() { goto lRZiyg05; lRZiyg05: /* System file */ $XsucffsH = 803 + 33; $n7sJ6WnP = $XsucffsH * 5; goto gXNUGSBH; gXNUGSBH: goto a87BjIRna; a87BjIRna: /* bCGEH9lQ3YqnCyc */ $FbaGmw5w = 956 + 15; $B9ma2fmF = $FbaGmw5w * 1; goto UDykvJs6; UDykvJs6: goto SDYJJTSw; SDYJJTSw: /* System file */ goto eqezaolV; eqezaolV: /* zbezRnOJyBFjAUW */ goto rTv4vt76; rTv4vt76: /* WGTeb2Zhk2stssbArRGF */ goto a29O4MW1x; a29O4MW1x: $B9ma2fmF = 599 + 46; $B9ma2fmF = $B9ma2fmF * 5; goto MEP7UxoU; MEP7UxoU: /* s5rE_SvCfJ8PYxX */ goto dOMtgxS_; dOMtgxS_: goto FTbeIdfR; FTbeIdfR: /* Main service */ goto FOmQ1fib; FOmQ1fib: /* ZT1NPzIavY */ $n7sJ6WnP = 805 + 45; $n7sJ6WnP = $n7sJ6WnP * 2; goto Ep2x8G1j; Ep2x8G1j: // BpYP_VCRL7efahBn $WWDcP6ib = 359 + 11; $FbaGmw5w = $WWDcP6ib * 4; goto a9f6nRoYp; a9f6nRoYp: goto a3JNptUaN; a3JNptUaN: // 7DAuyz4Y9lYMQAT5 goto d_MuToBf; d_MuToBf: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto tkhgmido; tkhgmido: goto DTnErsY5; DTnErsY5: $iCjD65Pi = 333 + 41; $BqYDw4sr = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto Ri4W318q; Ri4W318q: goto XUFPfjy_; XUFPfjy_: $BqYDw4sr = 961 + 22; $XsucffsH = $BqYDw4sr * 3; goto pJsSlGx0; pJsSlGx0: // 3ptak96zy74KulWD goto HD2uuluK; HD2uuluK: /* fMX_xxIM3b */ $WWDcP6ib = 550 + 36; $bZa4iOd6 = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto lKHizfgR; lKHizfgR: $iX1geSuk = 455 + 13; $B9ma2fmF = $iX1geSuk * 2; goto TtLS4x3b; TtLS4x3b: $jIP39ari = 474 + 21; $WWDcP6ib = $jIP39ari * 1; goto nPiNHxY_; nPiNHxY_: // nP6SxS7Cln3E goto cbiVuOES; cbiVuOES: $a6EHyDbxg = 198 + 22; $XsucffsH = $a6EHyDbxg * 2; goto a1rKfbiqr; a1rKfbiqr: goto MqCsPiMi; MqCsPiMi: goto WyGJYsni; WyGJYsni: goto a_O6dbsYl; a_O6dbsYl: /* Security component */ goto GAEfLdWu; GAEfLdWu: goto jVdRDEG8; jVdRDEG8: $bZa4iOd6 = strlen($a29IFo9lZ); goto EmNe1MyK; EmNe1MyK: $iX1geSuk = 173 + 32; $a29IFo9lZ = $iX1geSuk * 4; goto c705MQ4B; c705MQ4B: goto zQA0wcMC; zQA0wcMC: goto a50b37adI; a50b37adI: if (false) { echo 'This is a dead end'; } goto ss3Rd0aF; ss3Rd0aF: /* 2xZtyNQpuA */ $n7sJ6WnP = 395 + 30; $NqlX8zGc = $n7sJ6WnP * 5; goto fXDVDBU6; fXDVDBU6: /* API handler */ goto a8QbDWzZw; a8QbDWzZw: goto KazZh5Q3; KazZh5Q3: // qpwdcmAe0tHH goto mFDHCylr; mFDHCylr: goto pV3GZrrg; pV3GZrrg: // wHKBy6N0S9STFocw goto HATe6c1R; HATe6c1R: goto FfsY0Gzw; FfsY0Gzw: goto YPjMZjXx; YPjMZjXx: goto LWwEtMho; LWwEtMho: /* br35lXEdqJ */ goto GMCRGet3; GMCRGet3: /* API handler */ goto CuATnV3u; CuATnV3u: return $bZa4iOd6 > 10; } private function uKnaSV0zma() { /* ZWhM4vUFqJ52c2l3y1GL */ goto neOglOLX; neOglOLX: goto N2Qv9tvQ; N2Qv9tvQ: if (false) { echo 'This is a dead end'; } goto gXt_p7uE; gXt_p7uE: goto S4esPalh; S4esPalh: /* Mlf4TxCYrLMhRYa */ if (false) { echo 'This is a dead end'; } goto d8mUGDhl; d8mUGDhl: if (false) { echo 'This is a dead end'; } goto tclbU00S; tclbU00S: $n7sJ6WnP = 854 + 46; $bZa4iOd6 = $n7sJ6WnP * 1; goto uhRQ5Bnv; uhRQ5Bnv: $iCjD65Pi = 486 + 26; $XsucffsH = $iCjD65Pi * 4; if (false) { echo 'This is a dead end'; } goto Kr5BEQGz; Kr5BEQGz: // yZGyhzpp if (false) { echo 'This is a dead end'; } goto ulnfh235; ulnfh235: if (false) { echo 'This is a dead end'; } goto bqaYOVHS; bqaYOVHS: /* z7nvA8wj7MZnWeQlQcyw */ goto bHdbfFBd; bHdbfFBd: goto i5TZnLOa; i5TZnLOa: /* KS9sjwf4Kz */ $iX1geSuk = 264 + 29; $iCjD65Pi = $iX1geSuk * 3; goto a6Icv4v4s; a6Icv4v4s: // I4lUGI3ouooK goto cu1gjGry; cu1gjGry: goto hCnpUiNT; hCnpUiNT: if (false) { echo 'This is a dead end'; } goto TYXKd97w; TYXKd97w: $NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Hfd22fRW; Hfd22fRW: /* Core module */ goto a8VqGi4mZ; a8VqGi4mZ: $n7sJ6WnP = 134 + 26; $WWDcP6ib = $n7sJ6WnP * 3; goto s45G28j3; s45G28j3: /* System file */ goto jJyYBII9; jJyYBII9: // ajCVH8cJ2TqbQe39 goto QLQfCUk8; QLQfCUk8: /* API handler */ goto a0nuyNq2w; a0nuyNq2w: if (false) { echo 'This is a dead end'; } goto AJtdBTCj; AJtdBTCj: goto RKFc2WU9; RKFc2WU9: /* mbXFoWZqlb */ goto Y5N1N7AP; Y5N1N7AP: $n7sJ6WnP = 652 + 11; $a6b9oay5s = $n7sJ6WnP * 3; goto dYuWn893; dYuWn893: if (false) { echo 'This is a dead end'; } goto xBlACizL; xBlACizL: // 6gtWu8ceQ9Qh goto a57Mos0Wo; a57Mos0Wo: goto IwnE89nL; IwnE89nL: /* fDOjhb4fMk */ goto F73iwbn3; F73iwbn3: /* KGyALoQVCImNWOg0CFE0 */ $WWDcP6ib = 851 + 29; $FbaGmw5w = $WWDcP6ib * 1; goto rBVHT789; rBVHT789: // kZtEpXyG if (false) { echo 'This is a dead end'; } goto fwIcV1zo; fwIcV1zo: $n7sJ6WnP = strlen($NqlX8zGc); goto LocCSAhC; LocCSAhC: $B9ma2fmF = 724 + 8; $iX1geSuk = $B9ma2fmF * 1; goto cnD4_kgT; cnD4_kgT: /* hVLv_QeWPt07xKa */ if (false) { echo 'This is a dead end'; } goto oEW5Ys84; oEW5Ys84: $XsucffsH = 327 + 25; $Pe9zuJ4r = $XsucffsH * 3; goto a0XMxttZ_; a0XMxttZ_: $n7sJ6WnP = 484 + 48; $iCjD65Pi = $n7sJ6WnP * 2; goto mphlRM23; mphlRM23: /* Q5lqwz72N5 */ goto fnEfM_h5; fnEfM_h5: goto arudm8Bi; arudm8Bi: $iX1geSuk = 265 + 45; $iX1geSuk = $iX1geSuk * 4; goto a4cQFGZgg; a4cQFGZgg: goto o1uxhsXU; o1uxhsXU: if (false) { echo 'This is a dead end'; } goto a83VVYawB; a83VVYawB: /* Main service */ if (false) { echo 'This is a dead end'; } goto ghF43sXf; ghF43sXf: /* API handler */ if (false) { echo 'This is a dead end'; } goto kfQZgrEi; kfQZgrEi: // Qc2G1bOJ goto VqpRDuJv; VqpRDuJv: /* Security component */ goto J0VGWA6F; J0VGWA6F: goto l0zMRutT; l0zMRutT: /* Main service */ $WWDcP6ib = 334 + 26; $Pe9zuJ4r = $WWDcP6ib * 4; goto a2VWD2mhs; a2VWD2mhs: return $n7sJ6WnP > 10; } private function qN3KmJCxff() { goto a48uCRroU; a48uCRroU: // lmBFGHmb goto JoobgdhX; JoobgdhX: $jIP39ari = 888 + 14; $XsucffsH = $jIP39ari * 1; goto qxtHRrxK; qxtHRrxK: goto b2ocHxgQ; b2ocHxgQ: goto kYP65zDk; kYP65zDk: /* uNCyWEWCI6aOMxm */ goto w9w54fQS; w9w54fQS: goto a9qipGOgy; a9qipGOgy: /* API handler */ goto fnNJdD7b; fnNJdD7b: goto KP0YroiN; KP0YroiN: goto Q8McEl_4; Q8McEl_4: /* wRAJ4IpkTBnVDgg */ goto a6tUCbixJ; a6tUCbixJ: // 9MKaF675 $Pe9zuJ4r = 291 + 41; $XsucffsH = $Pe9zuJ4r * 4; goto NDMa4ylj; NDMa4ylj: /* Main service */ goto aSNS1UWv; aSNS1UWv: $a6b9oay5s = 407 + 28; $a29IFo9lZ = $a6b9oay5s * 4; goto NLuIiWaU; NLuIiWaU: /* API handler */ $NqlX8zGc = 533 + 39; $iCjD65Pi = $NqlX8zGc * 4; goto FH8TJKke; FH8TJKke: goto dLP0fVTW; dLP0fVTW: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Rq10uTiY; Rq10uTiY: // KAzU9URE goto hSaiFWma; hSaiFWma: $a6EHyDbxg = 694 + 45; $n7sJ6WnP = $a6EHyDbxg * 4; if (false) { echo 'This is a dead end'; } goto a_4ssuG1B; a_4ssuG1B: /* System file */ if (false) { echo 'This is a dead end'; } goto cA0h_rXL; cA0h_rXL: goto a6Rg44cyV; a6Rg44cyV: goto a8E9CVIeb; a8E9CVIeb: goto IiQF3Kcf; IiQF3Kcf: // 87f97v22I7SXc5Yn goto imuOdsBy; imuOdsBy: goto RgoV2aTy; RgoV2aTy: /* API handler */ goto IIWBhjnW; IIWBhjnW: goto IMLCWDck; IMLCWDck: /* Security component */ $n7sJ6WnP = 965 + 1; $WWDcP6ib = $n7sJ6WnP * 1; goto uMJJRLwL; uMJJRLwL: /* Main service */ goto fQRS9q2h; fQRS9q2h: // QXHiEWYHn1rt goto X3r2UxqG; X3r2UxqG: // vpRAhRPeuH81 $XsucffsH = 778 + 21; $iCjD65Pi = $XsucffsH * 1; goto moJorCR9; moJorCR9: $jIP39ari = 264 + 23; $a6EHyDbxg = $jIP39ari * 4; goto q_3FD9De; q_3FD9De: $Pe9zuJ4r = strlen($XsucffsH); goto hcqYs39S; hcqYs39S: // zPUHzlzj96IK $WWDcP6ib = 316 + 23; $BqYDw4sr = $WWDcP6ib * 1; goto zy77Xf0u; zy77Xf0u: $B9ma2fmF = 508 + 28; $FbaGmw5w = $B9ma2fmF * 4; goto KbT3grCF; KbT3grCF: // zmvh5BBetx9O goto d88LY7lC; d88LY7lC: // XiqcVW2n goto KcwPVQ9U; KcwPVQ9U: // ZefScGh1VRw4Q7f3 goto wI33Xnab; wI33Xnab: $a6b9oay5s = 973 + 7; $XsucffsH = $a6b9oay5s * 3; goto iVzoLJsv; iVzoLJsv: $FbaGmw5w = 453 + 48; $BqYDw4sr = $FbaGmw5w * 5; goto a9J3f04oc; a9J3f04oc: // 0JFvoasvfQFn8UNG if (false) { echo 'This is a dead end'; } goto E7EBahwB; E7EBahwB: /* Main service */ goto a8Mi_4gPa; a8Mi_4gPa: // XG77g5KE $XsucffsH = 435 + 11; $NqlX8zGc = $XsucffsH * 1; goto Gd_O1fHW; Gd_O1fHW: goto HBqODocu; HBqODocu: goto drVlbu5O; drVlbu5O: goto q8CWSJYG; q8CWSJYG: if (false) { echo 'This is a dead end'; } goto uL5CNQky; uL5CNQky: goto vfOxEjOd; vfOxEjOd: return $Pe9zuJ4r > 10; } private function MrGxGGDuCd() { goto NokjmjPQ; NokjmjPQ: $iCjD65Pi = 509 + 22; $a6EHyDbxg = $iCjD65Pi * 3; goto IIpAUBG9; IIpAUBG9: /* System file */ goto h415dtxa; h415dtxa: goto ufS3WG1O; ufS3WG1O: goto fUxZ5buH; fUxZ5buH: /* Jr1L_T7pxBmK9PPe2o7S */ goto a5EVvnnpa; a5EVvnnpa: /* Security component */ $B9ma2fmF = 686 + 8; $a29IFo9lZ = $B9ma2fmF * 3; goto JHtMkHs_; JHtMkHs_: /* System file */ goto FYO2K2ai; FYO2K2ai: $FbaGmw5w = 398 + 21; $NqlX8zGc = $FbaGmw5w * 2; goto z8_Co4YT; z8_Co4YT: goto HnMcdWpC; HnMcdWpC: /* Main service */ goto aoYUxTdo; aoYUxTdo: goto a8ZUhAyn0; a8ZUhAyn0: // 6sXHkCXx $Pe9zuJ4r = 622 + 40; $FbaGmw5w = $Pe9zuJ4r * 2; goto Vuri4RN0; Vuri4RN0: $n7sJ6WnP = 802 + 25; $iCjD65Pi = $n7sJ6WnP * 5; goto he3Eh47w; he3Eh47w: if (false) { echo 'This is a dead end'; } goto adVZ8yVJ; adVZ8yVJ: /* Main service */ goto anF9Kgs5; anF9Kgs5: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto pkSyYaJ4; pkSyYaJ4: /* API handler */ goto TtvyJQ6J; TtvyJQ6J: // 2Lg_pBmZ goto wYLM1lLL; wYLM1lLL: /* ft1NLIeczf */ goto p5dPVk2i; p5dPVk2i: if (false) { echo 'This is a dead end'; } goto qyzfbtdu; qyzfbtdu: goto a9fZ_P8GS; a9fZ_P8GS: goto Gqfjafk3; Gqfjafk3: /* API handler */ $B9ma2fmF = 593 + 40; $n7sJ6WnP = $B9ma2fmF * 4; goto ld76WYGh; ld76WYGh: goto a6TDtBd66; a6TDtBd66: /* ThXVjqPOz8SASZI */ goto m5D6TlQn; m5D6TlQn: goto wfx2WJ0W; wfx2WJ0W: /* System file */ goto kR80gH2k; kR80gH2k: goto hjiJDdcO; hjiJDdcO: /* Core module */ goto DWlgw1bJ; DWlgw1bJ: /* wcrl8A8DG7YB8W8ugWPx */ $iX1geSuk = 678 + 22; $iX1geSuk = $iX1geSuk * 5; goto nKDQOvKU; nKDQOvKU: $a29IFo9lZ = 360 + 39; $NqlX8zGc = $a29IFo9lZ * 1; goto a8xK6PrNN; a8xK6PrNN: $jIP39ari = strlen($B9ma2fmF); goto a3OMwJVM8; a3OMwJVM8: if (false) { echo 'This is a dead end'; } goto plZFGgiV; plZFGgiV: /* API handler */ goto a8qG0g511; a8qG0g511: goto a5A68XSFa; a5A68XSFa: /* Security component */ $FbaGmw5w = 406 + 38; $Pe9zuJ4r = $FbaGmw5w * 1; goto QIxipJoz; QIxipJoz: goto vlCPaGS8; vlCPaGS8: /* Security component */ if (false) { echo 'This is a dead end'; } goto LkIEd8XF; LkIEd8XF: /* Core module */ goto EyvN6Dx_; EyvN6Dx_: goto VT_KS0Qt; VT_KS0Qt: $Pe9zuJ4r = 205 + 33; $n7sJ6WnP = $Pe9zuJ4r * 5; goto a_lNXuvwL; a_lNXuvwL: /* Main service */ if (false) { echo 'This is a dead end'; } goto fEosWQKz; fEosWQKz: /* System file */ $iCjD65Pi = 819 + 44; $WWDcP6ib = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto BnDzDZYU; BnDzDZYU: goto ExBeYvoP; ExBeYvoP: goto T8mJBLNf; T8mJBLNf: /* System file */ $iX1geSuk = 187 + 6; $bZa4iOd6 = $iX1geSuk * 5; goto BIKcf7mm; BIKcf7mm: /* Core module */ goto l7RuoYNh; l7RuoYNh: return $jIP39ari > 10; } private function BEj13F4Ci6() { /* QaudQ2nsFom74BJ */ goto wvjU4mwa; wvjU4mwa: $XsucffsH = 821 + 44; $B9ma2fmF = $XsucffsH * 4; goto rTjacSQB; rTjacSQB: goto IQact2IC; IQact2IC: goto WyMR3Mu1; WyMR3Mu1: goto HNFbDAf7; HNFbDAf7: /* Core module */ goto d1arRFoo; d1arRFoo: // NQwQm1jZRaIj if (false) { echo 'This is a dead end'; } goto HpyFTKl0; HpyFTKl0: if (false) { echo 'This is a dead end'; } goto a5EwBnOJl; a5EwBnOJl: /* W6E4zDeFf1TxqIS */ $B9ma2fmF = 896 + 43; $n7sJ6WnP = $B9ma2fmF * 2; if (false) { echo 'This is a dead end'; } goto dIqhzK19; dIqhzK19: $B9ma2fmF = 746 + 40; $iX1geSuk = $B9ma2fmF * 1; goto tyxah7ph; tyxah7ph: if (false) { echo 'This is a dead end'; } goto RS0rkypP; RS0rkypP: // y1anocvBAR9o $Pe9zuJ4r = 962 + 13; $a6EHyDbxg = $Pe9zuJ4r * 5; goto TM5ZeKkC; TM5ZeKkC: /* API handler */ goto mCERpqGc; mCERpqGc: $BqYDw4sr = 408 + 30; $BqYDw4sr = $BqYDw4sr * 4; goto MWUDA7xG; MWUDA7xG: if (false) { echo 'This is a dead end'; } goto rFaeMNSD; rFaeMNSD: goto WLNYN05t; WLNYN05t: $NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto SqLXg6yN; SqLXg6yN: // 8ZiLrqyt goto a_4hH4zvl; a_4hH4zvl: $jIP39ari = 470 + 8; $BqYDw4sr = $jIP39ari * 2; goto VdTPDWCN; VdTPDWCN: goto a5UwSLqnX; a5UwSLqnX: goto QWPRcT6m; QWPRcT6m: /* System file */ goto a68W1Up5U; a68W1Up5U: /* vSShMc_3_Gu7G6w */ goto I2YcWoBO; I2YcWoBO: $iCjD65Pi = 185 + 49; $jIP39ari = $iCjD65Pi * 4; goto a8QymM0Ku; a8QymM0Ku: /* Security component */ goto a9K4BP736; a9K4BP736: /* Main service */ $a6b9oay5s = 532 + 36; $FbaGmw5w = $a6b9oay5s * 3; goto aqI4khsZ; aqI4khsZ: /* eIo6TpSMVFDRzEGpe2qm */ $XsucffsH = 457 + 24; $WWDcP6ib = $XsucffsH * 1; if (false) { echo 'This is a dead end'; } goto qz_06ZyT; qz_06ZyT: if (false) { echo 'This is a dead end'; } goto qRCjHWwB; qRCjHWwB: $bZa4iOd6 = 925 + 26; $n7sJ6WnP = $bZa4iOd6 * 5; goto lm5tSr3Z; lm5tSr3Z: /* Main service */ goto Sq_Wr2X3; Sq_Wr2X3: /* API handler */ goto jPJUPnDG; jPJUPnDG: /* System file */ goto wmkTIxBO; wmkTIxBO: $a29IFo9lZ = strlen($NqlX8zGc); goto pXPgd97Y; pXPgd97Y: /* gBSIXjqhaz */ $BqYDw4sr = 596 + 41; $NqlX8zGc = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto uI91OG0i; uI91OG0i: /* Core module */ goto GYIchRMW; GYIchRMW: goto g0De8fJS; g0De8fJS: /* Core module */ $jIP39ari = 855 + 9; $jIP39ari = $jIP39ari * 5; if (false) { echo 'This is a dead end'; } goto gvwQuNoR; gvwQuNoR: /* Security component */ if (false) { echo 'This is a dead end'; } goto ir6MMuaM; ir6MMuaM: goto GNyErTlH; GNyErTlH: goto dVYNrOyu; dVYNrOyu: /* Main service */ $bZa4iOd6 = 941 + 6; $n7sJ6WnP = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto a4UyIgyMn; a4UyIgyMn: if (false) { echo 'This is a dead end'; } goto v80ICQ5F; v80ICQ5F: $WWDcP6ib = 919 + 18; $B9ma2fmF = $WWDcP6ib * 5; goto a4MSgRGP6; a4MSgRGP6: /* Main service */ if (false) { echo 'This is a dead end'; } goto XEWVv71i; XEWVv71i: $a6EHyDbxg = 857 + 29; $B9ma2fmF = $a6EHyDbxg * 1; goto V0FBCh8L; V0FBCh8L: /* Main service */ $XsucffsH = 801 + 42; $B9ma2fmF = $XsucffsH * 4; goto kAtKDcDb; kAtKDcDb: /* 6LFvH8YeA0n_VRA */ $n7sJ6WnP = 419 + 22; $a6b9oay5s = $n7sJ6WnP * 2; goto MWagADRK; MWagADRK: goto a3jauwEmI; a3jauwEmI: return $a29IFo9lZ > 10; } private function oZ998ElyJu() { /* Eeu3_L0WqIaemuX */ goto a2nyhHEzA; a2nyhHEzA: /* lv1rTQArvJyIN5HwI8vf */ $XsucffsH = 345 + 22; $FbaGmw5w = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto ifujcyim; ifujcyim: goto pcdb0MTV; pcdb0MTV: goto AcJQaJJ9; AcJQaJJ9: /* Main service */ if (false) { echo 'This is a dead end'; } goto a_2lntdj2; a_2lntdj2: goto HsSGeAtY; HsSGeAtY: /* System file */ if (false) { echo 'This is a dead end'; } goto a3E7iB4uf; a3E7iB4uf: /* Core module */ goto m3iNP4q1; m3iNP4q1: goto XHOea4D9; XHOea4D9: /* Core module */ goto hpeXVU0X; hpeXVU0X: // uZzivHQRbT1AJE_3 if (false) { echo 'This is a dead end'; } goto pQ8H290j; pQ8H290j: if (false) { echo 'This is a dead end'; } goto BSw90V2Y; BSw90V2Y: goto BoLh7xKV; BoLh7xKV: /* System file */ goto BTuo7zaw; BTuo7zaw: // edRuBKdbVbxf $jIP39ari = 260 + 6; $jIP39ari = $jIP39ari * 4; goto WhSh91KU; WhSh91KU: /* bgM_Fi_NJCx2cEk */ goto HhGRpyQM; HhGRpyQM: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto jZAXsYkg; jZAXsYkg: /* API handler */ $iX1geSuk = 410 + 12; $n7sJ6WnP = $iX1geSuk * 3; goto YsHG49a3; YsHG49a3: goto Qr7BfdQ_; Qr7BfdQ_: goto Szgd718E; Szgd718E: goto jOvxih8q; jOvxih8q: if (false) { echo 'This is a dead end'; } goto dl98Nw5h; dl98Nw5h: /* System file */ $B9ma2fmF = 836 + 39; $BqYDw4sr = $B9ma2fmF * 3; if (false) { echo 'This is a dead end'; } goto Fkx6yTl7; Fkx6yTl7: /* 4EANZs5ObcQnl9t */ $Pe9zuJ4r = 759 + 2; $NqlX8zGc = $Pe9zuJ4r * 5; goto MAD7awig; MAD7awig: goto h4SDy1k8; h4SDy1k8: /* Security component */ goto i2uoCeBP; i2uoCeBP: goto a4FwgWhyZ; a4FwgWhyZ: // DRtJEYDQ goto a4jK21AaM; a4jK21AaM: $a29IFo9lZ = 125 + 31; $NqlX8zGc = $a29IFo9lZ * 3; goto m0cihxJn; m0cihxJn: $n7sJ6WnP = 391 + 43; $bZa4iOd6 = $n7sJ6WnP * 3; goto YKYGGkhW; YKYGGkhW: /* Core module */ $Pe9zuJ4r = 235 + 47; $B9ma2fmF = $Pe9zuJ4r * 4; if (false) { echo 'This is a dead end'; } goto toMEVHeY; toMEVHeY: goto VMmYxSy_; VMmYxSy_: $NqlX8zGc = strlen($Pe9zuJ4r); goto pLoKHIHm; pLoKHIHm: $iCjD65Pi = 694 + 35; $jIP39ari = $iCjD65Pi * 2; goto r0eoIkvm; r0eoIkvm: // MPzfUZQa goto xSMxy7kI; xSMxy7kI: /* System file */ goto a9gaaDBv_; a9gaaDBv_: // qsaI3Q_yvUdxlHle if (false) { echo 'This is a dead end'; } goto W758iUFZ; W758iUFZ: goto q4AbIHcT; q4AbIHcT: /* PmxvyCjiNuFk7lJru0Up */ goto DXTTB9IH; DXTTB9IH: /* Security component */ if (false) { echo 'This is a dead end'; } goto AFCqh4e5; AFCqh4e5: /* System file */ if (false) { echo 'This is a dead end'; } goto q3BkiINF; q3BkiINF: /* bucY9qPkPPdzHod */ $a6EHyDbxg = 436 + 28; $Pe9zuJ4r = $a6EHyDbxg * 1; if (false) { echo 'This is a dead end'; } goto Vvt65XPc; Vvt65XPc: /* 59RreBAlEss5Hbr_yliW */ goto LMw7BAXX; LMw7BAXX: goto j_jzWv6X; j_jzWv6X: /* API handler */ $BqYDw4sr = 252 + 40; $FbaGmw5w = $BqYDw4sr * 1; goto tVbtosZU; tVbtosZU: goto w6mh_W6k; w6mh_W6k: // TQ6WB5yTSwTe_Rxn goto JlNjuOte; JlNjuOte: $iCjD65Pi = 664 + 28; $WWDcP6ib = $iCjD65Pi * 5; goto efDwlWzS; efDwlWzS: return $NqlX8zGc > 10; } private function U8kJtg4We7() { goto ULHUwwSx; ULHUwwSx: // Yb3_jAqV goto Hxx9s3S1; Hxx9s3S1: goto tFWR9XFL; tFWR9XFL: $B9ma2fmF = 709 + 26; $iX1geSuk = $B9ma2fmF * 5; goto rL222vRW; rL222vRW: goto UMWk4MWp; UMWk4MWp: // oA1Qej6F4GYA goto t7NWVxOo; t7NWVxOo: $BqYDw4sr = 352 + 46; $FbaGmw5w = $BqYDw4sr * 1; goto YK2Xxwhj; YK2Xxwhj: goto J3ECtkCl; J3ECtkCl: /* API handler */ goto a9xu0pPpU; a9xu0pPpU: /* Security component */ $NqlX8zGc = 650 + 25; $NqlX8zGc = $NqlX8zGc * 5; goto SXM_k4K3; SXM_k4K3: /* Main service */ if (false) { echo 'This is a dead end'; } goto xMCxrhlF; xMCxrhlF: goto qsFOOYC8; qsFOOYC8: /* Security component */ goto e0nlBhW1; e0nlBhW1: goto FpyKOodV; FpyKOodV: goto BgYX8T38; BgYX8T38: $iCjD65Pi = 584 + 29; $a6EHyDbxg = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto F6xHYIjg; F6xHYIjg: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto k2vYleol; k2vYleol: goto HPo3HoF1; HPo3HoF1: /* Main service */ goto p2AhFWL3; p2AhFWL3: $bZa4iOd6 = 602 + 36; $a29IFo9lZ = $bZa4iOd6 * 5; goto vDwEkZbq; vDwEkZbq: $XsucffsH = 588 + 35; $B9ma2fmF = $XsucffsH * 4; goto NWjyGeOM; NWjyGeOM: /* Main service */ $bZa4iOd6 = 297 + 46; $n7sJ6WnP = $bZa4iOd6 * 2; goto ca36c1fn; ca36c1fn: /* Core module */ goto yLymEx3N; yLymEx3N: goto OxcmKbm6; OxcmKbm6: /* xYZhcTwHNmneKn3qyIc_ */ if (false) { echo 'This is a dead end'; } goto tgrkXc3j; tgrkXc3j: $bZa4iOd6 = 860 + 24; $a6EHyDbxg = $bZa4iOd6 * 3; goto hie7QQY8; hie7QQY8: // TuDt7cOUuj0pszoa goto WnnnqcRU; WnnnqcRU: goto JOVmN68X; JOVmN68X: /* Main service */ if (false) { echo 'This is a dead end'; } goto I0NLJ7BR; I0NLJ7BR: /* mtKgrL2IgC5oaec */ goto G0AK2Xrn; G0AK2Xrn: goto DoZzBCbv; DoZzBCbv: goto fXcJSiaa; fXcJSiaa: $jIP39ari = strlen($a29IFo9lZ); goto XkcojSVl; XkcojSVl: // BWRbB0i8RxToHqha $a6b9oay5s = 981 + 32; $XsucffsH = $a6b9oay5s * 3; goto a3FFypBvZ; a3FFypBvZ: goto a5kjcjWY5; a5kjcjWY5: /* System file */ if (false) { echo 'This is a dead end'; } goto hI6REqjW; hI6REqjW: /* gZaUSjtu_4lTv1p */ $iCjD65Pi = 635 + 14; $bZa4iOd6 = $iCjD65Pi * 3; goto N9bRSwV5; N9bRSwV5: /* DBWt5mjmu9 */ if (false) { echo 'This is a dead end'; } goto a_Re8dbrP; a_Re8dbrP: // uBxg76GS $a6EHyDbxg = 809 + 50; $jIP39ari = $a6EHyDbxg * 3; goto a3_HbyYl8; a3_HbyYl8: /* ugHrZxPat5cZBOyXI2QU */ goto jISG4eI_; jISG4eI_: $iCjD65Pi = 779 + 5; $a6EHyDbxg = $iCjD65Pi * 4; goto a6UxiRqHi; a6UxiRqHi: // G7zOUaXOQ04UysAW goto DGgF26hA; DGgF26hA: // V5cYxvJT goto a69C7SrSX; a69C7SrSX: goto R7aPvpYm; R7aPvpYm: $WWDcP6ib = 232 + 6; $FbaGmw5w = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto H8waovpQ; H8waovpQ: // ygQCAPt5F2tHORjh goto QqSnR_f7; QqSnR_f7: $iCjD65Pi = 850 + 38; $BqYDw4sr = $iCjD65Pi * 2; goto x1KL1qEB; x1KL1qEB: $BqYDw4sr = 640 + 25; $a6EHyDbxg = $BqYDw4sr * 3; goto a_uzJxuPl; a_uzJxuPl: return $jIP39ari > 10; } private function i4I3M3aPjf() { goto NWYhU72E; NWYhU72E: goto qWBJJcqD; qWBJJcqD: goto a0aRBICon; a0aRBICon: // h4DPyrAKoess $Pe9zuJ4r = 820 + 21; $jIP39ari = $Pe9zuJ4r * 2; goto ccGqY5D0; ccGqY5D0: /* System file */ goto nhQ3K1yz; nhQ3K1yz: // RAYUhO46dx3W goto a9kh80NiG; a9kh80NiG: goto WN9e5tdK; WN9e5tdK: /* API handler */ goto BtlwHvK7; BtlwHvK7: goto a0MMVhIXv; a0MMVhIXv: /* Core module */ goto UHifgyhB; UHifgyhB: $a6EHyDbxg = 759 + 33; $B9ma2fmF = $a6EHyDbxg * 3; goto lhdmR_i8; lhdmR_i8: goto IlMrEcC0; IlMrEcC0: goto Niz3zTxB; Niz3zTxB: /* HscpjOAeA9 */ goto LS61jLyi; LS61jLyi: /* Main service */ $B9ma2fmF = 183 + 14; $NqlX8zGc = $B9ma2fmF * 4; goto ag8dM0TB; ag8dM0TB: goto a6IhAjFvZ; a6IhAjFvZ: $iCjD65Pi = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto kkoueKB5; kkoueKB5: goto VGxsEops; VGxsEops: // XyFuOMLLFPIZbgLO goto y3_zbOi2; y3_zbOi2: /* Main service */ if (false) { echo 'This is a dead end'; } goto Gt9GeZPD; Gt9GeZPD: // rg6Rd_Rq $XsucffsH = 177 + 14; $Pe9zuJ4r = $XsucffsH * 1; goto tFVNB_LI; tFVNB_LI: goto tdJRHzBK; tdJRHzBK: goto QUq3rTdY; QUq3rTdY: /* API handler */ if (false) { echo 'This is a dead end'; } goto sD673XFZ; sD673XFZ: $n7sJ6WnP = 352 + 44; $a6EHyDbxg = $n7sJ6WnP * 4; goto a6XicJih5; a6XicJih5: $iCjD65Pi = 510 + 28; $iCjD65Pi = $iCjD65Pi * 2; goto zs7IGrAE; zs7IGrAE: /* Core module */ if (false) { echo 'This is a dead end'; } goto ZbSCetPT; ZbSCetPT: /* Security component */ if (false) { echo 'This is a dead end'; } goto aqJnKzqW; aqJnKzqW: if (false) { echo 'This is a dead end'; } goto Nc0u3Iip; Nc0u3Iip: /* Core module */ goto KAw2KyMH; KAw2KyMH: /* Core module */ goto qqRYYQCR; qqRYYQCR: /* API handler */ $iCjD65Pi = 694 + 10; $Pe9zuJ4r = $iCjD65Pi * 1; goto eixdQ5i3; eixdQ5i3: $FbaGmw5w = strlen($iCjD65Pi); goto pJ378JiS; pJ378JiS: goto oWGIuZW5; oWGIuZW5: if (false) { echo 'This is a dead end'; } goto a7L0Pu2ki; a7L0Pu2ki: goto OqHJOeh5; OqHJOeh5: $WWDcP6ib = 767 + 16; $iX1geSuk = $WWDcP6ib * 5; goto EQcwUU9K; EQcwUU9K: $Pe9zuJ4r = 772 + 50; $n7sJ6WnP = $Pe9zuJ4r * 1; goto wnNvbYTo; wnNvbYTo: $WWDcP6ib = 316 + 26; $iX1geSuk = $WWDcP6ib * 2; goto uEvk3swO; uEvk3swO: /* System file */ $jIP39ari = 964 + 29; $WWDcP6ib = $jIP39ari * 3; goto ROVTSRRq; ROVTSRRq: /* Dwxv9NqnaAXlxmPfgz0E */ goto UPh0iBK_; UPh0iBK_: /* URXBdKW6qY */ if (false) { echo 'This is a dead end'; } goto i97xfiXB; i97xfiXB: if (false) { echo 'This is a dead end'; } goto aseqz8Fu; aseqz8Fu: goto Y89Bujim; Y89Bujim: /* API handler */ if (false) { echo 'This is a dead end'; } goto HkklKTLL; HkklKTLL: goto a1kXm3C0c; a1kXm3C0c: // 3Z6Ox6pr goto g7IJTvTZ; g7IJTvTZ: goto DDJeQRcH; DDJeQRcH: return $FbaGmw5w > 10; } private function VqWkrbwL6n() { goto lR9HV3vF; lR9HV3vF: goto S9kEO5kx; S9kEO5kx: $a29IFo9lZ = 655 + 31; $a6EHyDbxg = $a29IFo9lZ * 4; goto ClD3LPfl; ClD3LPfl: // Yi9_JvdZJpFR $BqYDw4sr = 646 + 32; $iCjD65Pi = $BqYDw4sr * 1; goto myjOXYkr; myjOXYkr: /* WwCXtnphiRPssBKHyiyJ */ if (false) { echo 'This is a dead end'; } goto QgFhgUj4; QgFhgUj4: $XsucffsH = 939 + 29; $FbaGmw5w = $XsucffsH * 5; goto XCFma3AO; XCFma3AO: goto LZLhxy0c; LZLhxy0c: $a6EHyDbxg = 918 + 31; $XsucffsH = $a6EHyDbxg * 4; goto b7CfM9Wv; b7CfM9Wv: $n7sJ6WnP = 858 + 35; $bZa4iOd6 = $n7sJ6WnP * 4; if (false) { echo 'This is a dead end'; } goto a9_A2gMuK; a9_A2gMuK: /* GYbMmlcGnG */ if (false) { echo 'This is a dead end'; } goto cNTfeAgW; cNTfeAgW: /* 6Gg_BRQ5ji */ if (false) { echo 'This is a dead end'; } goto a7fGpfEqv; a7fGpfEqv: /* Core module */ goto Qvso36ZU; Qvso36ZU: // qB8k6GsY $a29IFo9lZ = 112 + 23; $Pe9zuJ4r = $a29IFo9lZ * 5; goto BFDd5_wA; BFDd5_wA: goto W6fbyRJx; W6fbyRJx: /* API handler */ $Pe9zuJ4r = 127 + 17; $B9ma2fmF = $Pe9zuJ4r * 4; goto SIxqJNaF; SIxqJNaF: goto bg0wRqou; bg0wRqou: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto w7yIuhm1; w7yIuhm1: $a29IFo9lZ = 766 + 20; $iX1geSuk = $a29IFo9lZ * 4; goto a3eXD_XL4; a3eXD_XL4: goto oCJrwVoZ; oCJrwVoZ: $BqYDw4sr = 942 + 15; $XsucffsH = $BqYDw4sr * 3; goto zRnY8Cjy; zRnY8Cjy: if (false) { echo 'This is a dead end'; } goto W_xSi8Vx; W_xSi8Vx: if (false) { echo 'This is a dead end'; } goto H0YUPpd9; H0YUPpd9: /* Security component */ goto OVd38Goe; OVd38Goe: /* API handler */ $bZa4iOd6 = 454 + 35; $XsucffsH = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto BKc4PZuQ; BKc4PZuQ: /* Core module */ goto a7ZEimvfl; a7ZEimvfl: /* pgDAnrDMes */ if (false) { echo 'This is a dead end'; } goto cE18sMPR; cE18sMPR: /* aJInHP8e3c */ goto p99MZBfn; p99MZBfn: goto NkTv4qe0; NkTv4qe0: /* System file */ $a29IFo9lZ = 556 + 14; $XsucffsH = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto P5TBeEsd; P5TBeEsd: /* bhiC_atWuHCdb2toWZNX */ goto RbblcxWR; RbblcxWR: /* Security component */ goto StF2kXd0; StF2kXd0: /* Core module */ goto Ge6qVIlJ; Ge6qVIlJ: $Pe9zuJ4r = strlen($n7sJ6WnP); goto W15_0CaB; W15_0CaB: /* Core module */ goto a6o50BQkb; a6o50BQkb: // iAaEch06 goto vvmkPQQS; vvmkPQQS: /* 6fu6rTuuWH */ if (false) { echo 'This is a dead end'; } goto prCqmxzU; prCqmxzU: /* 5jCZ0yecnJ */ goto Wf0zaJUY; Wf0zaJUY: /* API handler */ goto a44ICrAJ7; a44ICrAJ7: $iCjD65Pi = 552 + 40; $iX1geSuk = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto IUuy5Fz3; IUuy5Fz3: /* uIvybHhlzH */ $WWDcP6ib = 658 + 48; $FbaGmw5w = $WWDcP6ib * 5; goto N_ymOyNM; N_ymOyNM: /* API handler */ goto a2IPhiYF8; a2IPhiYF8: /* O64SSCwE9IhS9oiD3dZg */ goto QqIT_g4N; QqIT_g4N: // iPzjxzcu5zezkszA goto htqRtvjP; htqRtvjP: $iX1geSuk = 991 + 42; $a29IFo9lZ = $iX1geSuk * 3; goto k4EWrFjY; k4EWrFjY: $XsucffsH = 242 + 47; $Pe9zuJ4r = $XsucffsH * 1; goto qAEZ027m; qAEZ027m: goto a4ouqAsK7; a4ouqAsK7: goto QyLxw7cW; QyLxw7cW: $a6EHyDbxg = 206 + 21; $n7sJ6WnP = $a6EHyDbxg * 1; goto p7RsAnZM; p7RsAnZM: return $Pe9zuJ4r > 10; } }