Difference between revisions of "Template:BOKU-Vienna/js/wiki"

Line 6: Line 6:
 
  * @license MIT
 
  * @license MIT
 
  */
 
  */
 +
/*
 +
Copyright (C) Federico Zivolo 2018
 +
Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
 +
*/(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&s&&(a.top=J(a.top,0),a.left=J(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=J(o.clientWidth,window.innerWidth||0),r=J(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function w(e){var n=e.nodeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(e.ownerDocument),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}i=i||0;var u='number'==typeof i;return s.left+=u?i:i.left||0,s.top+=u?i:i.top||0,s.right-=u?i:i.right||0,s.bottom-=u?i:i.bottom||0,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i={width:e.offsetWidth+n,height:e.offsetHeight+o};return i}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function D(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function C(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=C(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=D(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function H(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function B(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[H('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function j(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function K(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t,o){var n=C(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function G(e){return'end'===e?'start':'start'===e?'end':e}function V(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return t?n.reverse():n}function z(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function _(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(C(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return z(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var Q=Math.min,Z=Math.round,$=Math.floor,J=Math.max,ee='undefined'!=typeof window&&'undefined'!=typeof document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var i=ee&&window.Promise,ie=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},fe=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=ie(this.update.bind(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return B.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ce.Utils=('undefined'==typeof window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=H('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=J(f[e],a[e])),ae({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=$,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=J(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Z(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case he.CLOCKWISE:p=V(n);break;case he.COUNTERCLOCKWISE:p=V(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=$,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=G(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=C(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:$(i.left),top:Z(i.top),bottom:Z(i.bottom),right:$(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),K(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ce});
 +
//# sourceMappingURL=popper.min.js.map
 
/*!
 
/*!
 
   * Bootstrap v4.1.0 (https://getbootstrap.com/)
 
   * Bootstrap v4.1.0 (https://getbootstrap.com/)
Line 837: Line 842:
 
         });
 
         });
 
     });
 
     });
 +
 +
    $("table").each(function () {
 +
        if ($(this).hasClass("table")){
 +
        } else {
 +
            $(this).addClass("table").addClass("table-dark");
 +
        }
 +
    })
 +
    $(function () {
 +
        $('[data-toggle="tooltip"]').tooltip()
 +
    })
 +
 
});
 
});
 
$(document).ready(function () {
 
$(document).ready(function () {
  
     let duration = 1500;
+
     let duration = 750;
  
 
     setTimeout(function () {
 
     setTimeout(function () {
Line 858: Line 874:
 
                     }
 
                     }
 
                 }, 'linear');
 
                 }, 'linear');
             }, k * duration);
+
             }, k * duration*2/3);
 
         })
 
         })
 
     }, 200);
 
     }, 200);
Line 8,696: Line 8,712:
 
});
 
});
 
$(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$("#top").offset().top},"1000");return false})});
 
$(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$("#top").offset().top},"1000");return false})});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJvb3RzdHJhcC5taW4uanMiLCJkMy5taW4uanMiLCJla2tvLWxpZ2h0Ym94LmpzIiwiZm9vdGVyLWhlYWRlci10ZW1wbGF0ZS5qcyIsImltYWdlLWdhbGxlcnkuanMiLCJpbmRleC5qcyIsImxhbmRpbmcuanMiLCJtb2RlbC5qcyIsIm5hdmxpbmUuanMiLCJzY3JvbGxzZW5zaXRpdmUuanMiLCJzbW9vdGhzY3JvbGxiYXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQUNBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNXBCQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvalBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJ3aWtpLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gICogQm9vdHN0cmFwIHY0LjEuMCAoaHR0cHM6Ly9nZXRib290c3RyYXAuY29tLylcbiAgKiBDb3B5cmlnaHQgMjAxMS0yMDE4IFRoZSBCb290c3RyYXAgQXV0aG9ycyAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2dyYXBocy9jb250cmlidXRvcnMpXG4gICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAgKi9cbiFmdW5jdGlvbih0LGUpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlP2UoZXhwb3J0cyxyZXF1aXJlKFwianF1ZXJ5XCIpLHJlcXVpcmUoXCJwb3BwZXIuanNcIikpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiLFwianF1ZXJ5XCIsXCJwb3BwZXIuanNcIl0sZSk6ZSh0LmJvb3RzdHJhcD17fSx0LmpRdWVyeSx0LlBvcHBlcil9KHRoaXMsZnVuY3Rpb24odCxlLGMpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGkodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiBpJiYoaS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaS5rZXksaSl9fWZ1bmN0aW9uIG8odCxlLG4pe3JldHVybiBlJiZpKHQucHJvdG90eXBlLGUpLG4mJmkodCxuKSx0fWZ1bmN0aW9uIGgocil7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIHM9bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fSxlPU9iamVjdC5rZXlzKHMpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihlPWUuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocykuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsdCkuZW51bWVyYWJsZX0pKSksZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLG4saTtlPXIsaT1zW249dF0sbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOmksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPWl9KX1yZXR1cm4gcn1lPWUmJmUuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0XCIpP2UuZGVmYXVsdDplLGM9YyYmYy5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRcIik/Yy5kZWZhdWx0OmM7dmFyIHIsbixzLGEsbCx1LGYsZCxfLGcsbSxwLHYsRSx5LFQsQyxJLEEsRCxiLFMsdyxOLE8sayxQLEwsaixSLEgsVyxNLHgsVSxLLEYsVixRLEIsWSxHLHEseixYLEosWiwkLHR0LGV0LG50LGl0LHJ0LHN0LG90LGF0LGx0LGh0LGN0LHV0LGZ0LGR0LF90LGd0LG10LHB0LHZ0LEV0LHl0LFR0LEN0LEl0LEF0LER0LGJ0LFN0LHd0LE50LE90LGt0LFB0LEx0LGp0LFJ0LEh0LFd0LE10LHh0LFV0LEt0LEZ0LFZ0LFF0LEJ0LFl0LEd0LHF0LHp0LFh0LEp0LFp0LCR0LHRlLGVlLG5lLGllLHJlLHNlLG9lLGFlLGxlLGhlLGNlLHVlLGZlLGRlLF9lLGdlLG1lLHBlLHZlLEVlLHllLFRlLENlLEllLEFlLERlLGJlLFNlLHdlLE5lLE9lLGtlLFBlLExlLGplLFJlLEhlLFdlLE1lLHhlLFVlLEtlLEZlLFZlLFFlLEJlLFllLEdlLHFlLHplLFhlLEplLFplLCRlLHRuLGVuLG5uLHJuLHNuLG9uLGFuLGxuLGhuLGNuLHVuLGZuLGRuLF9uLGduLG1uLHBuLHZuLEVuLHluLFRuLENuPWZ1bmN0aW9uKGkpe3ZhciBlPVwidHJhbnNpdGlvbmVuZFwiO2Z1bmN0aW9uIHQodCl7dmFyIGU9dGhpcyxuPSExO3JldHVybiBpKHRoaXMpLm9uZShsLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7bj0hMH0pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtufHxsLnRyaWdnZXJUcmFuc2l0aW9uRW5kKGUpfSx0KSx0aGlzfXZhciBsPXtUUkFOU0lUSU9OX0VORDpcImJzVHJhbnNpdGlvbkVuZFwiLGdldFVJRDpmdW5jdGlvbih0KXtmb3IoO3QrPX5+KDFlNipNYXRoLnJhbmRvbSgpKSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTspO3JldHVybiB0fSxnZXRTZWxlY3RvckZyb21FbGVtZW50OmZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2V0QXR0cmlidXRlKFwiZGF0YS10YXJnZXRcIik7ZSYmXCIjXCIhPT1lfHwoZT10LmdldEF0dHJpYnV0ZShcImhyZWZcIil8fFwiXCIpO3RyeXtyZXR1cm4gMDxpKGRvY3VtZW50KS5maW5kKGUpLmxlbmd0aD9lOm51bGx9Y2F0Y2godCl7cmV0dXJuIG51bGx9fSxnZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudDpmdW5jdGlvbih0KXtpZighdClyZXR1cm4gMDt2YXIgZT1pKHQpLmNzcyhcInRyYW5zaXRpb24tZHVyYXRpb25cIik7cmV0dXJuIHBhcnNlRmxvYXQoZSk/KGU9ZS5zcGxpdChcIixcIilbMF0sMWUzKnBhcnNlRmxvYXQoZSkpOjB9LHJlZmxvdzpmdW5jdGlvbih0KXtyZXR1cm4gdC5vZmZzZXRIZWlnaHR9LHRyaWdnZXJUcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKHQpe2kodCkudHJpZ2dlcihlKX0sc3VwcG9ydHNUcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4oZSl9LGlzRWxlbWVudDpmdW5jdGlvbih0KXtyZXR1cm4odFswXXx8dCkubm9kZVR5cGV9LHR5cGVDaGVja0NvbmZpZzpmdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpIGluIG4paWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4saSkpe3ZhciByPW5baV0scz1lW2ldLG89cyYmbC5pc0VsZW1lbnQocyk/XCJlbGVtZW50XCI6KGE9cyx7fS50b1N0cmluZy5jYWxsKGEpLm1hdGNoKC9cXHMoW2Etel0rKS9pKVsxXS50b0xvd2VyQ2FzZSgpKTtpZighbmV3IFJlZ0V4cChyKS50ZXN0KG8pKXRocm93IG5ldyBFcnJvcih0LnRvVXBwZXJDYXNlKCkrJzogT3B0aW9uIFwiJytpKydcIiBwcm92aWRlZCB0eXBlIFwiJytvKydcIiBidXQgZXhwZWN0ZWQgdHlwZSBcIicrcisnXCIuJyl9dmFyIGF9fTtyZXR1cm4gaS5mbi5lbXVsYXRlVHJhbnNpdGlvbkVuZD10LGkuZXZlbnQuc3BlY2lhbFtsLlRSQU5TSVRJT05fRU5EXT17YmluZFR5cGU6ZSxkZWxlZ2F0ZVR5cGU6ZSxoYW5kbGU6ZnVuY3Rpb24odCl7aWYoaSh0LnRhcmdldCkuaXModGhpcykpcmV0dXJuIHQuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sbH0oZSksSW49KG49XCJhbGVydFwiLGE9XCIuXCIrKHM9XCJicy5hbGVydFwiKSxsPShyPWUpLmZuW25dLHU9e0NMT1NFOlwiY2xvc2VcIithLENMT1NFRDpcImNsb3NlZFwiK2EsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK2ErXCIuZGF0YS1hcGlcIn0sZj1cImFsZXJ0XCIsZD1cImZhZGVcIixfPVwic2hvd1wiLGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5jbG9zZT1mdW5jdGlvbih0KXt0PXR8fHRoaXMuX2VsZW1lbnQ7dmFyIGU9dGhpcy5fZ2V0Um9vdEVsZW1lbnQodCk7dGhpcy5fdHJpZ2dlckNsb3NlRXZlbnQoZSkuaXNEZWZhdWx0UHJldmVudGVkKCl8fHRoaXMuX3JlbW92ZUVsZW1lbnQoZSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3IucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHMpLHRoaXMuX2VsZW1lbnQ9bnVsbH0sdC5fZ2V0Um9vdEVsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0KSxuPSExO3JldHVybiBlJiYobj1yKGUpWzBdKSxufHwobj1yKHQpLmNsb3Nlc3QoXCIuXCIrZilbMF0pLG59LHQuX3RyaWdnZXJDbG9zZUV2ZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXIuRXZlbnQodS5DTE9TRSk7cmV0dXJuIHIodCkudHJpZ2dlcihlKSxlfSx0Ll9yZW1vdmVFbGVtZW50PWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7aWYocihlKS5yZW1vdmVDbGFzcyhfKSxyKGUpLmhhc0NsYXNzKGQpKXt2YXIgdD1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChlKTtyKGUpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbih0KXtyZXR1cm4gbi5fZGVzdHJveUVsZW1lbnQoZSx0KX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHQpfWVsc2UgdGhpcy5fZGVzdHJveUVsZW1lbnQoZSl9LHQuX2Rlc3Ryb3lFbGVtZW50PWZ1bmN0aW9uKHQpe3IodCkuZGV0YWNoKCkudHJpZ2dlcih1LkNMT1NFRCkucmVtb3ZlKCl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cih0aGlzKSxlPXQuZGF0YShzKTtlfHwoZT1uZXcgaSh0aGlzKSx0LmRhdGEocyxlKSksXCJjbG9zZVwiPT09biYmZVtuXSh0aGlzKX0pfSxpLl9oYW5kbGVEaXNtaXNzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXt0JiZ0LnByZXZlbnREZWZhdWx0KCksZS5jbG9zZSh0aGlzKX19LG8oaSxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksaX0oKSxyKGRvY3VtZW50KS5vbih1LkNMSUNLX0RBVEFfQVBJLCdbZGF0YS1kaXNtaXNzPVwiYWxlcnRcIl0nLGcuX2hhbmRsZURpc21pc3MobmV3IGcpKSxyLmZuW25dPWcuX2pRdWVyeUludGVyZmFjZSxyLmZuW25dLkNvbnN0cnVjdG9yPWcsci5mbltuXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHIuZm5bbl09bCxnLl9qUXVlcnlJbnRlcmZhY2V9LGcpLEFuPShwPVwiYnV0dG9uXCIsRT1cIi5cIisodj1cImJzLmJ1dHRvblwiKSx5PVwiLmRhdGEtYXBpXCIsVD0obT1lKS5mbltwXSxDPVwiYWN0aXZlXCIsST1cImJ0blwiLEQ9J1tkYXRhLXRvZ2dsZV49XCJidXR0b25cIl0nLGI9J1tkYXRhLXRvZ2dsZT1cImJ1dHRvbnNcIl0nLFM9XCJpbnB1dFwiLHc9XCIuYWN0aXZlXCIsTj1cIi5idG5cIixPPXtDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrRSt5LEZPQ1VTX0JMVVJfREFUQV9BUEk6KEE9XCJmb2N1c1wiKStFK3krXCIgYmx1clwiK0UreX0saz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7dGhpcy5fZWxlbWVudD10fXZhciB0PW4ucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbigpe3ZhciB0PSEwLGU9ITAsbj1tKHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoYilbMF07aWYobil7dmFyIGk9bSh0aGlzLl9lbGVtZW50KS5maW5kKFMpWzBdO2lmKGkpe2lmKFwicmFkaW9cIj09PWkudHlwZSlpZihpLmNoZWNrZWQmJm0odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoQykpdD0hMTtlbHNle3ZhciByPW0obikuZmluZCh3KVswXTtyJiZtKHIpLnJlbW92ZUNsYXNzKEMpfWlmKHQpe2lmKGkuaGFzQXR0cmlidXRlKFwiZGlzYWJsZWRcIil8fG4uaGFzQXR0cmlidXRlKFwiZGlzYWJsZWRcIil8fGkuY2xhc3NMaXN0LmNvbnRhaW5zKFwiZGlzYWJsZWRcIil8fG4uY2xhc3NMaXN0LmNvbnRhaW5zKFwiZGlzYWJsZWRcIikpcmV0dXJuO2kuY2hlY2tlZD0hbSh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhDKSxtKGkpLnRyaWdnZXIoXCJjaGFuZ2VcIil9aS5mb2N1cygpLGU9ITF9fWUmJnRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1wcmVzc2VkXCIsIW0odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoQykpLHQmJm0odGhpcy5fZWxlbWVudCkudG9nZ2xlQ2xhc3MoQyl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe20ucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHYpLHRoaXMuX2VsZW1lbnQ9bnVsbH0sbi5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1tKHRoaXMpLmRhdGEodik7dHx8KHQ9bmV3IG4odGhpcyksbSh0aGlzKS5kYXRhKHYsdCkpLFwidG9nZ2xlXCI9PT1lJiZ0W2VdKCl9KX0sbyhuLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxufSgpLG0oZG9jdW1lbnQpLm9uKE8uQ0xJQ0tfREFUQV9BUEksRCxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9dC50YXJnZXQ7bShlKS5oYXNDbGFzcyhJKXx8KGU9bShlKS5jbG9zZXN0KE4pKSxrLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChtKGUpLFwidG9nZ2xlXCIpfSkub24oTy5GT0NVU19CTFVSX0RBVEFfQVBJLEQsZnVuY3Rpb24odCl7dmFyIGU9bSh0LnRhcmdldCkuY2xvc2VzdChOKVswXTttKGUpLnRvZ2dsZUNsYXNzKEEsL15mb2N1cyhpbik/JC8udGVzdCh0LnR5cGUpKX0pLG0uZm5bcF09ay5falF1ZXJ5SW50ZXJmYWNlLG0uZm5bcF0uQ29uc3RydWN0b3I9ayxtLmZuW3BdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbS5mbltwXT1ULGsuX2pRdWVyeUludGVyZmFjZX0sayksRG49KEw9XCJjYXJvdXNlbFwiLFI9XCIuXCIrKGo9XCJicy5jYXJvdXNlbFwiKSxIPVwiLmRhdGEtYXBpXCIsVz0oUD1lKS5mbltMXSxNPXtpbnRlcnZhbDo1ZTMsa2V5Ym9hcmQ6ITAsc2xpZGU6ITEscGF1c2U6XCJob3ZlclwiLHdyYXA6ITB9LHg9e2ludGVydmFsOlwiKG51bWJlcnxib29sZWFuKVwiLGtleWJvYXJkOlwiYm9vbGVhblwiLHNsaWRlOlwiKGJvb2xlYW58c3RyaW5nKVwiLHBhdXNlOlwiKHN0cmluZ3xib29sZWFuKVwiLHdyYXA6XCJib29sZWFuXCJ9LFU9XCJuZXh0XCIsSz1cInByZXZcIixGPVwibGVmdFwiLFY9XCJyaWdodFwiLFE9e1NMSURFOlwic2xpZGVcIitSLFNMSUQ6XCJzbGlkXCIrUixLRVlET1dOOlwia2V5ZG93blwiK1IsTU9VU0VFTlRFUjpcIm1vdXNlZW50ZXJcIitSLE1PVVNFTEVBVkU6XCJtb3VzZWxlYXZlXCIrUixUT1VDSEVORDpcInRvdWNoZW5kXCIrUixMT0FEX0RBVEFfQVBJOlwibG9hZFwiK1IrSCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrUitIfSxCPVwiY2Fyb3VzZWxcIixZPVwiYWN0aXZlXCIsRz1cInNsaWRlXCIscT1cImNhcm91c2VsLWl0ZW0tcmlnaHRcIix6PVwiY2Fyb3VzZWwtaXRlbS1sZWZ0XCIsWD1cImNhcm91c2VsLWl0ZW0tbmV4dFwiLEo9XCJjYXJvdXNlbC1pdGVtLXByZXZcIixaPXtBQ1RJVkU6XCIuYWN0aXZlXCIsQUNUSVZFX0lURU06XCIuYWN0aXZlLmNhcm91c2VsLWl0ZW1cIixJVEVNOlwiLmNhcm91c2VsLWl0ZW1cIixORVhUX1BSRVY6XCIuY2Fyb3VzZWwtaXRlbS1uZXh0LCAuY2Fyb3VzZWwtaXRlbS1wcmV2XCIsSU5ESUNBVE9SUzpcIi5jYXJvdXNlbC1pbmRpY2F0b3JzXCIsREFUQV9TTElERTpcIltkYXRhLXNsaWRlXSwgW2RhdGEtc2xpZGUtdG9dXCIsREFUQV9SSURFOidbZGF0YS1yaWRlPVwiY2Fyb3VzZWxcIl0nfSwkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcyh0LGUpe3RoaXMuX2l0ZW1zPW51bGwsdGhpcy5faW50ZXJ2YWw9bnVsbCx0aGlzLl9hY3RpdmVFbGVtZW50PW51bGwsdGhpcy5faXNQYXVzZWQ9ITEsdGhpcy5faXNTbGlkaW5nPSExLHRoaXMudG91Y2hUaW1lb3V0PW51bGwsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9lbGVtZW50PVAodClbMF0sdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQ9UCh0aGlzLl9lbGVtZW50KS5maW5kKFouSU5ESUNBVE9SUylbMF0sdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKX12YXIgdD1zLnByb3RvdHlwZTtyZXR1cm4gdC5uZXh0PWZ1bmN0aW9uKCl7dGhpcy5faXNTbGlkaW5nfHx0aGlzLl9zbGlkZShVKX0sdC5uZXh0V2hlblZpc2libGU9ZnVuY3Rpb24oKXshZG9jdW1lbnQuaGlkZGVuJiZQKHRoaXMuX2VsZW1lbnQpLmlzKFwiOnZpc2libGVcIikmJlwiaGlkZGVuXCIhPT1QKHRoaXMuX2VsZW1lbnQpLmNzcyhcInZpc2liaWxpdHlcIikmJnRoaXMubmV4dCgpfSx0LnByZXY9ZnVuY3Rpb24oKXt0aGlzLl9pc1NsaWRpbmd8fHRoaXMuX3NsaWRlKEspfSx0LnBhdXNlPWZ1bmN0aW9uKHQpe3R8fCh0aGlzLl9pc1BhdXNlZD0hMCksUCh0aGlzLl9lbGVtZW50KS5maW5kKFouTkVYVF9QUkVWKVswXSYmKENuLnRyaWdnZXJUcmFuc2l0aW9uRW5kKHRoaXMuX2VsZW1lbnQpLHRoaXMuY3ljbGUoITApKSxjbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsKSx0aGlzLl9pbnRlcnZhbD1udWxsfSx0LmN5Y2xlPWZ1bmN0aW9uKHQpe3R8fCh0aGlzLl9pc1BhdXNlZD0hMSksdGhpcy5faW50ZXJ2YWwmJihjbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsKSx0aGlzLl9pbnRlcnZhbD1udWxsKSx0aGlzLl9jb25maWcuaW50ZXJ2YWwmJiF0aGlzLl9pc1BhdXNlZCYmKHRoaXMuX2ludGVydmFsPXNldEludGVydmFsKChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU/dGhpcy5uZXh0V2hlblZpc2libGU6dGhpcy5uZXh0KS5iaW5kKHRoaXMpLHRoaXMuX2NvbmZpZy5pbnRlcnZhbCkpfSx0LnRvPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fYWN0aXZlRWxlbWVudD1QKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5BQ1RJVkVfSVRFTSlbMF07dmFyIG49dGhpcy5fZ2V0SXRlbUluZGV4KHRoaXMuX2FjdGl2ZUVsZW1lbnQpO2lmKCEodD50aGlzLl9pdGVtcy5sZW5ndGgtMXx8dDwwKSlpZih0aGlzLl9pc1NsaWRpbmcpUCh0aGlzLl9lbGVtZW50KS5vbmUoUS5TTElELGZ1bmN0aW9uKCl7cmV0dXJuIGUudG8odCl9KTtlbHNle2lmKG49PT10KXJldHVybiB0aGlzLnBhdXNlKCksdm9pZCB0aGlzLmN5Y2xlKCk7dmFyIGk9bjx0P1U6Szt0aGlzLl9zbGlkZShpLHRoaXMuX2l0ZW1zW3RdKX19LHQuZGlzcG9zZT1mdW5jdGlvbigpe1AodGhpcy5fZWxlbWVudCkub2ZmKFIpLFAucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LGopLHRoaXMuX2l0ZW1zPW51bGwsdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX2ludGVydmFsPW51bGwsdGhpcy5faXNQYXVzZWQ9bnVsbCx0aGlzLl9pc1NsaWRpbmc9bnVsbCx0aGlzLl9hY3RpdmVFbGVtZW50PW51bGwsdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQ9bnVsbH0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiB0PWgoe30sTSx0KSxDbi50eXBlQ2hlY2tDb25maWcoTCx0LHgpLHR9LHQuX2FkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9jb25maWcua2V5Ym9hcmQmJlAodGhpcy5fZWxlbWVudCkub24oUS5LRVlET1dOLGZ1bmN0aW9uKHQpe3JldHVybiBlLl9rZXlkb3duKHQpfSksXCJob3ZlclwiPT09dGhpcy5fY29uZmlnLnBhdXNlJiYoUCh0aGlzLl9lbGVtZW50KS5vbihRLk1PVVNFRU5URVIsZnVuY3Rpb24odCl7cmV0dXJuIGUucGF1c2UodCl9KS5vbihRLk1PVVNFTEVBVkUsZnVuY3Rpb24odCl7cmV0dXJuIGUuY3ljbGUodCl9KSxcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZQKHRoaXMuX2VsZW1lbnQpLm9uKFEuVE9VQ0hFTkQsZnVuY3Rpb24oKXtlLnBhdXNlKCksZS50b3VjaFRpbWVvdXQmJmNsZWFyVGltZW91dChlLnRvdWNoVGltZW91dCksZS50b3VjaFRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbih0KXtyZXR1cm4gZS5jeWNsZSh0KX0sNTAwK2UuX2NvbmZpZy5pbnRlcnZhbCl9KSl9LHQuX2tleWRvd249ZnVuY3Rpb24odCl7aWYoIS9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSkpc3dpdGNoKHQud2hpY2gpe2Nhc2UgMzc6dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMucHJldigpO2JyZWFrO2Nhc2UgMzk6dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubmV4dCgpfX0sdC5fZ2V0SXRlbUluZGV4PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pdGVtcz1QLm1ha2VBcnJheShQKHQpLnBhcmVudCgpLmZpbmQoWi5JVEVNKSksdGhpcy5faXRlbXMuaW5kZXhPZih0KX0sdC5fZ2V0SXRlbUJ5RGlyZWN0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIG49dD09PVUsaT10PT09SyxyPXRoaXMuX2dldEl0ZW1JbmRleChlKSxzPXRoaXMuX2l0ZW1zLmxlbmd0aC0xO2lmKChpJiYwPT09cnx8biYmcj09PXMpJiYhdGhpcy5fY29uZmlnLndyYXApcmV0dXJuIGU7dmFyIG89KHIrKHQ9PT1LPy0xOjEpKSV0aGlzLl9pdGVtcy5sZW5ndGg7cmV0dXJuLTE9PT1vP3RoaXMuX2l0ZW1zW3RoaXMuX2l0ZW1zLmxlbmd0aC0xXTp0aGlzLl9pdGVtc1tvXX0sdC5fdHJpZ2dlclNsaWRlRXZlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9nZXRJdGVtSW5kZXgodCksaT10aGlzLl9nZXRJdGVtSW5kZXgoUCh0aGlzLl9lbGVtZW50KS5maW5kKFouQUNUSVZFX0lURU0pWzBdKSxyPVAuRXZlbnQoUS5TTElERSx7cmVsYXRlZFRhcmdldDp0LGRpcmVjdGlvbjplLGZyb206aSx0bzpufSk7cmV0dXJuIFAodGhpcy5fZWxlbWVudCkudHJpZ2dlcihyKSxyfSx0Ll9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50PWZ1bmN0aW9uKHQpe2lmKHRoaXMuX2luZGljYXRvcnNFbGVtZW50KXtQKHRoaXMuX2luZGljYXRvcnNFbGVtZW50KS5maW5kKFouQUNUSVZFKS5yZW1vdmVDbGFzcyhZKTt2YXIgZT10aGlzLl9pbmRpY2F0b3JzRWxlbWVudC5jaGlsZHJlblt0aGlzLl9nZXRJdGVtSW5kZXgodCldO2UmJlAoZSkuYWRkQ2xhc3MoWSl9fSx0Ll9zbGlkZT1mdW5jdGlvbih0LGUpe3ZhciBuLGkscixzPXRoaXMsbz1QKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5BQ1RJVkVfSVRFTSlbMF0sYT10aGlzLl9nZXRJdGVtSW5kZXgobyksbD1lfHxvJiZ0aGlzLl9nZXRJdGVtQnlEaXJlY3Rpb24odCxvKSxoPXRoaXMuX2dldEl0ZW1JbmRleChsKSxjPUJvb2xlYW4odGhpcy5faW50ZXJ2YWwpO2lmKHQ9PT1VPyhuPXosaT1YLHI9Rik6KG49cSxpPUoscj1WKSxsJiZQKGwpLmhhc0NsYXNzKFkpKXRoaXMuX2lzU2xpZGluZz0hMTtlbHNlIGlmKCF0aGlzLl90cmlnZ2VyU2xpZGVFdmVudChsLHIpLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZvJiZsKXt0aGlzLl9pc1NsaWRpbmc9ITAsYyYmdGhpcy5wYXVzZSgpLHRoaXMuX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQobCk7dmFyIHU9UC5FdmVudChRLlNMSUQse3JlbGF0ZWRUYXJnZXQ6bCxkaXJlY3Rpb246cixmcm9tOmEsdG86aH0pO2lmKFAodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoRykpe1AobCkuYWRkQ2xhc3MoaSksQ24ucmVmbG93KGwpLFAobykuYWRkQ2xhc3MobiksUChsKS5hZGRDbGFzcyhuKTt2YXIgZj1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChvKTtQKG8pLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe1AobCkucmVtb3ZlQ2xhc3MobitcIiBcIitpKS5hZGRDbGFzcyhZKSxQKG8pLnJlbW92ZUNsYXNzKFkrXCIgXCIraStcIiBcIituKSxzLl9pc1NsaWRpbmc9ITEsc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBQKHMuX2VsZW1lbnQpLnRyaWdnZXIodSl9LDApfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZil9ZWxzZSBQKG8pLnJlbW92ZUNsYXNzKFkpLFAobCkuYWRkQ2xhc3MoWSksdGhpcy5faXNTbGlkaW5nPSExLFAodGhpcy5fZWxlbWVudCkudHJpZ2dlcih1KTtjJiZ0aGlzLmN5Y2xlKCl9fSxzLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PVAodGhpcykuZGF0YShqKSxlPWgoe30sTSxQKHRoaXMpLmRhdGEoKSk7XCJvYmplY3RcIj09dHlwZW9mIGkmJihlPWgoe30sZSxpKSk7dmFyIG49XCJzdHJpbmdcIj09dHlwZW9mIGk/aTplLnNsaWRlO2lmKHR8fCh0PW5ldyBzKHRoaXMsZSksUCh0aGlzKS5kYXRhKGosdCkpLFwibnVtYmVyXCI9PXR5cGVvZiBpKXQudG8oaSk7ZWxzZSBpZihcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oKX1lbHNlIGUuaW50ZXJ2YWwmJih0LnBhdXNlKCksdC5jeWNsZSgpKX0pfSxzLl9kYXRhQXBpQ2xpY2tIYW5kbGVyPWZ1bmN0aW9uKHQpe3ZhciBlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodGhpcyk7aWYoZSl7dmFyIG49UChlKVswXTtpZihuJiZQKG4pLmhhc0NsYXNzKEIpKXt2YXIgaT1oKHt9LFAobikuZGF0YSgpLFAodGhpcykuZGF0YSgpKSxyPXRoaXMuZ2V0QXR0cmlidXRlKFwiZGF0YS1zbGlkZS10b1wiKTtyJiYoaS5pbnRlcnZhbD0hMSkscy5falF1ZXJ5SW50ZXJmYWNlLmNhbGwoUChuKSxpKSxyJiZQKG4pLmRhdGEoaikudG8ociksdC5wcmV2ZW50RGVmYXVsdCgpfX19LG8ocyxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE19fV0pLHN9KCksUChkb2N1bWVudCkub24oUS5DTElDS19EQVRBX0FQSSxaLkRBVEFfU0xJREUsJC5fZGF0YUFwaUNsaWNrSGFuZGxlciksUCh3aW5kb3cpLm9uKFEuTE9BRF9EQVRBX0FQSSxmdW5jdGlvbigpe1AoWi5EQVRBX1JJREUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1QKHRoaXMpOyQuX2pRdWVyeUludGVyZmFjZS5jYWxsKHQsdC5kYXRhKCkpfSl9KSxQLmZuW0xdPSQuX2pRdWVyeUludGVyZmFjZSxQLmZuW0xdLkNvbnN0cnVjdG9yPSQsUC5mbltMXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIFAuZm5bTF09VywkLl9qUXVlcnlJbnRlcmZhY2V9LCQpLGJuPShldD1cImNvbGxhcHNlXCIsaXQ9XCIuXCIrKG50PVwiYnMuY29sbGFwc2VcIikscnQ9KHR0PWUpLmZuW2V0XSxzdD17dG9nZ2xlOiEwLHBhcmVudDpcIlwifSxvdD17dG9nZ2xlOlwiYm9vbGVhblwiLHBhcmVudDpcIihzdHJpbmd8ZWxlbWVudClcIn0sYXQ9e1NIT1c6XCJzaG93XCIraXQsU0hPV046XCJzaG93blwiK2l0LEhJREU6XCJoaWRlXCIraXQsSElEREVOOlwiaGlkZGVuXCIraXQsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK2l0K1wiLmRhdGEtYXBpXCJ9LGx0PVwic2hvd1wiLGh0PVwiY29sbGFwc2VcIixjdD1cImNvbGxhcHNpbmdcIix1dD1cImNvbGxhcHNlZFwiLGZ0PVwid2lkdGhcIixkdD1cImhlaWdodFwiLF90PXtBQ1RJVkVTOlwiLnNob3csIC5jb2xsYXBzaW5nXCIsREFUQV9UT0dHTEU6J1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdJ30sZ3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHQsZSl7dGhpcy5faXNUcmFuc2l0aW9uaW5nPSExLHRoaXMuX2VsZW1lbnQ9dCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX3RyaWdnZXJBcnJheT10dC5tYWtlQXJyYXkodHQoJ1tkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCJdW2hyZWY9XCIjJyt0LmlkKydcIl0sW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1bZGF0YS10YXJnZXQ9XCIjJyt0LmlkKydcIl0nKSk7Zm9yKHZhciBuPXR0KF90LkRBVEFfVE9HR0xFKSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciByPW5baV0scz1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHIpO251bGwhPT1zJiYwPHR0KHMpLmZpbHRlcih0KS5sZW5ndGgmJih0aGlzLl9zZWxlY3Rvcj1zLHRoaXMuX3RyaWdnZXJBcnJheS5wdXNoKHIpKX10aGlzLl9wYXJlbnQ9dGhpcy5fY29uZmlnLnBhcmVudD90aGlzLl9nZXRQYXJlbnQoKTpudWxsLHRoaXMuX2NvbmZpZy5wYXJlbnR8fHRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0aGlzLl9lbGVtZW50LHRoaXMuX3RyaWdnZXJBcnJheSksdGhpcy5fY29uZmlnLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX12YXIgdD1hLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24oKXt0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhsdCk/dGhpcy5oaWRlKCk6dGhpcy5zaG93KCl9LHQuc2hvdz1mdW5jdGlvbigpe3ZhciB0LGUsbj10aGlzO2lmKCF0aGlzLl9pc1RyYW5zaXRpb25pbmcmJiF0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhsdCkmJih0aGlzLl9wYXJlbnQmJjA9PT0odD10dC5tYWtlQXJyYXkodHQodGhpcy5fcGFyZW50KS5maW5kKF90LkFDVElWRVMpLmZpbHRlcignW2RhdGEtcGFyZW50PVwiJyt0aGlzLl9jb25maWcucGFyZW50KydcIl0nKSkpLmxlbmd0aCYmKHQ9bnVsbCksISh0JiYoZT10dCh0KS5ub3QodGhpcy5fc2VsZWN0b3IpLmRhdGEobnQpKSYmZS5faXNUcmFuc2l0aW9uaW5nKSkpe3ZhciBpPXR0LkV2ZW50KGF0LlNIT1cpO2lmKHR0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe3QmJihhLl9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0dCh0KS5ub3QodGhpcy5fc2VsZWN0b3IpLFwiaGlkZVwiKSxlfHx0dCh0KS5kYXRhKG50LG51bGwpKTt2YXIgcj10aGlzLl9nZXREaW1lbnNpb24oKTt0dCh0aGlzLl9lbGVtZW50KS5yZW1vdmVDbGFzcyhodCkuYWRkQ2xhc3MoY3QpLCh0aGlzLl9lbGVtZW50LnN0eWxlW3JdPTApPHRoaXMuX3RyaWdnZXJBcnJheS5sZW5ndGgmJnR0KHRoaXMuX3RyaWdnZXJBcnJheSkucmVtb3ZlQ2xhc3ModXQpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITApLHRoaXMuc2V0VHJhbnNpdGlvbmluZyghMCk7dmFyIHM9XCJzY3JvbGxcIisoclswXS50b1VwcGVyQ2FzZSgpK3Iuc2xpY2UoMSkpLG89Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7dHQodGhpcy5fZWxlbWVudCkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7dHQobi5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoY3QpLmFkZENsYXNzKGh0KS5hZGRDbGFzcyhsdCksbi5fZWxlbWVudC5zdHlsZVtyXT1cIlwiLG4uc2V0VHJhbnNpdGlvbmluZyghMSksdHQobi5fZWxlbWVudCkudHJpZ2dlcihhdC5TSE9XTil9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChvKSx0aGlzLl9lbGVtZW50LnN0eWxlW3JdPXRoaXMuX2VsZW1lbnRbc10rXCJweFwifX19LHQuaGlkZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMuX2lzVHJhbnNpdGlvbmluZyYmdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobHQpKXt2YXIgZT10dC5FdmVudChhdC5ISURFKTtpZih0dCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKGUpLCFlLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgbj10aGlzLl9nZXREaW1lbnNpb24oKTtpZih0aGlzLl9lbGVtZW50LnN0eWxlW25dPXRoaXMuX2VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbbl0rXCJweFwiLENuLnJlZmxvdyh0aGlzLl9lbGVtZW50KSx0dCh0aGlzLl9lbGVtZW50KS5hZGRDbGFzcyhjdCkucmVtb3ZlQ2xhc3MoaHQpLnJlbW92ZUNsYXNzKGx0KSwwPHRoaXMuX3RyaWdnZXJBcnJheS5sZW5ndGgpZm9yKHZhciBpPTA7aTx0aGlzLl90cmlnZ2VyQXJyYXkubGVuZ3RoO2krKyl7dmFyIHI9dGhpcy5fdHJpZ2dlckFycmF5W2ldLHM9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudChyKTtpZihudWxsIT09cyl0dChzKS5oYXNDbGFzcyhsdCl8fHR0KHIpLmFkZENsYXNzKHV0KS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLCExKX10aGlzLnNldFRyYW5zaXRpb25pbmcoITApO3RoaXMuX2VsZW1lbnQuc3R5bGVbbl09XCJcIjt2YXIgbz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTt0dCh0aGlzLl9lbGVtZW50KS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXt0LnNldFRyYW5zaXRpb25pbmcoITEpLHR0KHQuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGN0KS5hZGRDbGFzcyhodCkudHJpZ2dlcihhdC5ISURERU4pfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQobyl9fX0sdC5zZXRUcmFuc2l0aW9uaW5nPWZ1bmN0aW9uKHQpe3RoaXMuX2lzVHJhbnNpdGlvbmluZz10fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0dC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsbnQpLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX3BhcmVudD1udWxsLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLl90cmlnZ2VyQXJyYXk9bnVsbCx0aGlzLl9pc1RyYW5zaXRpb25pbmc9bnVsbH0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybih0PWgoe30sc3QsdCkpLnRvZ2dsZT1Cb29sZWFuKHQudG9nZ2xlKSxDbi50eXBlQ2hlY2tDb25maWcoZXQsdCxvdCksdH0sdC5fZ2V0RGltZW5zaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGZ0KT9mdDpkdH0sdC5fZ2V0UGFyZW50PWZ1bmN0aW9uKCl7dmFyIG49dGhpcyx0PW51bGw7Q24uaXNFbGVtZW50KHRoaXMuX2NvbmZpZy5wYXJlbnQpPyh0PXRoaXMuX2NvbmZpZy5wYXJlbnQsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRoaXMuX2NvbmZpZy5wYXJlbnQuanF1ZXJ5JiYodD10aGlzLl9jb25maWcucGFyZW50WzBdKSk6dD10dCh0aGlzLl9jb25maWcucGFyZW50KVswXTt2YXIgZT0nW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1bZGF0YS1wYXJlbnQ9XCInK3RoaXMuX2NvbmZpZy5wYXJlbnQrJ1wiXSc7cmV0dXJuIHR0KHQpLmZpbmQoZSkuZWFjaChmdW5jdGlvbih0LGUpe24uX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhhLl9nZXRUYXJnZXRGcm9tRWxlbWVudChlKSxbZV0pfSksdH0sdC5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzPWZ1bmN0aW9uKHQsZSl7aWYodCl7dmFyIG49dHQodCkuaGFzQ2xhc3MobHQpOzA8ZS5sZW5ndGgmJnR0KGUpLnRvZ2dsZUNsYXNzKHV0LCFuKS5hdHRyKFwiYXJpYS1leHBhbmRlZFwiLG4pfX0sYS5fZ2V0VGFyZ2V0RnJvbUVsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0KTtyZXR1cm4gZT90dChlKVswXTpudWxsfSxhLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oaSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXR0KHRoaXMpLGU9dC5kYXRhKG50KSxuPWgoe30sc3QsdC5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIGkmJmkpO2lmKCFlJiZuLnRvZ2dsZSYmL3Nob3d8aGlkZS8udGVzdChpKSYmKG4udG9nZ2xlPSExKSxlfHwoZT1uZXcgYSh0aGlzLG4pLHQuZGF0YShudCxlKSksXCJzdHJpbmdcIj09dHlwZW9mIGkpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBlW2ldKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicraSsnXCInKTtlW2ldKCl9fSl9LG8oYSxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN0fX1dKSxhfSgpLHR0KGRvY3VtZW50KS5vbihhdC5DTElDS19EQVRBX0FQSSxfdC5EQVRBX1RPR0dMRSxmdW5jdGlvbih0KXtcIkFcIj09PXQuY3VycmVudFRhcmdldC50YWdOYW1lJiZ0LnByZXZlbnREZWZhdWx0KCk7dmFyIG49dHQodGhpcyksZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHRoaXMpO3R0KGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10dCh0aGlzKSxlPXQuZGF0YShudCk/XCJ0b2dnbGVcIjpuLmRhdGEoKTtndC5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodCxlKX0pfSksdHQuZm5bZXRdPWd0Ll9qUXVlcnlJbnRlcmZhY2UsdHQuZm5bZXRdLkNvbnN0cnVjdG9yPWd0LHR0LmZuW2V0XS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHR0LmZuW2V0XT1ydCxndC5falF1ZXJ5SW50ZXJmYWNlfSxndCksU249KHB0PVwiZHJvcGRvd25cIixFdD1cIi5cIisodnQ9XCJicy5kcm9wZG93blwiKSx5dD1cIi5kYXRhLWFwaVwiLFR0PShtdD1lKS5mbltwdF0sQ3Q9bmV3IFJlZ0V4cChcIjM4fDQwfDI3XCIpLEl0PXtISURFOlwiaGlkZVwiK0V0LEhJRERFTjpcImhpZGRlblwiK0V0LFNIT1c6XCJzaG93XCIrRXQsU0hPV046XCJzaG93blwiK0V0LENMSUNLOlwiY2xpY2tcIitFdCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrRXQreXQsS0VZRE9XTl9EQVRBX0FQSTpcImtleWRvd25cIitFdCt5dCxLRVlVUF9EQVRBX0FQSTpcImtleXVwXCIrRXQreXR9LEF0PVwiZGlzYWJsZWRcIixEdD1cInNob3dcIixidD1cImRyb3B1cFwiLFN0PVwiZHJvcHJpZ2h0XCIsd3Q9XCJkcm9wbGVmdFwiLE50PVwiZHJvcGRvd24tbWVudS1yaWdodFwiLE90PVwicG9zaXRpb24tc3RhdGljXCIsa3Q9J1tkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJdJyxQdD1cIi5kcm9wZG93biBmb3JtXCIsTHQ9XCIuZHJvcGRvd24tbWVudVwiLGp0PVwiLm5hdmJhci1uYXZcIixSdD1cIi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOm5vdCguZGlzYWJsZWQpOm5vdCg6ZGlzYWJsZWQpXCIsSHQ9XCJ0b3Atc3RhcnRcIixXdD1cInRvcC1lbmRcIixNdD1cImJvdHRvbS1zdGFydFwiLHh0PVwiYm90dG9tLWVuZFwiLFV0PVwicmlnaHQtc3RhcnRcIixLdD1cImxlZnQtc3RhcnRcIixGdD17b2Zmc2V0OjAsZmxpcDohMCxib3VuZGFyeTpcInNjcm9sbFBhcmVudFwiLHJlZmVyZW5jZTpcInRvZ2dsZVwiLGRpc3BsYXk6XCJkeW5hbWljXCJ9LFZ0PXtvZmZzZXQ6XCIobnVtYmVyfHN0cmluZ3xmdW5jdGlvbilcIixmbGlwOlwiYm9vbGVhblwiLGJvdW5kYXJ5OlwiKHN0cmluZ3xlbGVtZW50KVwiLHJlZmVyZW5jZTpcIihzdHJpbmd8ZWxlbWVudClcIixkaXNwbGF5Olwic3RyaW5nXCJ9LFF0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbCh0LGUpe3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9wb3BwZXI9bnVsbCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX21lbnU9dGhpcy5fZ2V0TWVudUVsZW1lbnQoKSx0aGlzLl9pbk5hdmJhcj10aGlzLl9kZXRlY3ROYXZiYXIoKSx0aGlzLl9hZGRFdmVudExpc3RlbmVycygpfXZhciB0PWwucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbigpe2lmKCF0aGlzLl9lbGVtZW50LmRpc2FibGVkJiYhbXQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoQXQpKXt2YXIgdD1sLl9nZXRQYXJlbnRGcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KSxlPW10KHRoaXMuX21lbnUpLmhhc0NsYXNzKER0KTtpZihsLl9jbGVhck1lbnVzKCksIWUpe3ZhciBuPXtyZWxhdGVkVGFyZ2V0OnRoaXMuX2VsZW1lbnR9LGk9bXQuRXZlbnQoSXQuU0hPVyxuKTtpZihtdCh0KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZighdGhpcy5faW5OYXZiYXIpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBjKXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb290c3RyYXAgZHJvcGRvd24gcmVxdWlyZSBQb3BwZXIuanMgKGh0dHBzOi8vcG9wcGVyLmpzLm9yZylcIik7dmFyIHI9dGhpcy5fZWxlbWVudDtcInBhcmVudFwiPT09dGhpcy5fY29uZmlnLnJlZmVyZW5jZT9yPXQ6Q24uaXNFbGVtZW50KHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UpJiYocj10aGlzLl9jb25maWcucmVmZXJlbmNlLFwidW5kZWZpbmVkXCIhPXR5cGVvZiB0aGlzLl9jb25maWcucmVmZXJlbmNlLmpxdWVyeSYmKHI9dGhpcy5fY29uZmlnLnJlZmVyZW5jZVswXSkpLFwic2Nyb2xsUGFyZW50XCIhPT10aGlzLl9jb25maWcuYm91bmRhcnkmJm10KHQpLmFkZENsYXNzKE90KSx0aGlzLl9wb3BwZXI9bmV3IGMocix0aGlzLl9tZW51LHRoaXMuX2dldFBvcHBlckNvbmZpZygpKX1cIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYwPT09bXQodCkuY2xvc2VzdChqdCkubGVuZ3RoJiZtdChkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigpLm9uKFwibW91c2VvdmVyXCIsbnVsbCxtdC5ub29wKSx0aGlzLl9lbGVtZW50LmZvY3VzKCksdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsITApLG10KHRoaXMuX21lbnUpLnRvZ2dsZUNsYXNzKER0KSxtdCh0KS50b2dnbGVDbGFzcyhEdCkudHJpZ2dlcihtdC5FdmVudChJdC5TSE9XTixuKSl9fX19LHQuZGlzcG9zZT1mdW5jdGlvbigpe210LnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCx2dCksbXQodGhpcy5fZWxlbWVudCkub2ZmKEV0KSx0aGlzLl9lbGVtZW50PW51bGwsKHRoaXMuX21lbnU9bnVsbCkhPT10aGlzLl9wb3BwZXImJih0aGlzLl9wb3BwZXIuZGVzdHJveSgpLHRoaXMuX3BvcHBlcj1udWxsKX0sdC51cGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl9pbk5hdmJhcj10aGlzLl9kZXRlY3ROYXZiYXIoKSxudWxsIT09dGhpcy5fcG9wcGVyJiZ0aGlzLl9wb3BwZXIuc2NoZWR1bGVVcGRhdGUoKX0sdC5fYWRkRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO210KHRoaXMuX2VsZW1lbnQpLm9uKEl0LkNMSUNLLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLGUudG9nZ2xlKCl9KX0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiB0PWgoe30sdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0LG10KHRoaXMuX2VsZW1lbnQpLmRhdGEoKSx0KSxDbi50eXBlQ2hlY2tDb25maWcocHQsdCx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRUeXBlKSx0fSx0Ll9nZXRNZW51RWxlbWVudD1mdW5jdGlvbigpe2lmKCF0aGlzLl9tZW51KXt2YXIgdD1sLl9nZXRQYXJlbnRGcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTt0aGlzLl9tZW51PW10KHQpLmZpbmQoTHQpWzBdfXJldHVybiB0aGlzLl9tZW51fSx0Ll9nZXRQbGFjZW1lbnQ9ZnVuY3Rpb24oKXt2YXIgdD1tdCh0aGlzLl9lbGVtZW50KS5wYXJlbnQoKSxlPU10O3JldHVybiB0Lmhhc0NsYXNzKGJ0KT8oZT1IdCxtdCh0aGlzLl9tZW51KS5oYXNDbGFzcyhOdCkmJihlPVd0KSk6dC5oYXNDbGFzcyhTdCk/ZT1VdDp0Lmhhc0NsYXNzKHd0KT9lPUt0Om10KHRoaXMuX21lbnUpLmhhc0NsYXNzKE50KSYmKGU9eHQpLGV9LHQuX2RldGVjdE5hdmJhcj1mdW5jdGlvbigpe3JldHVybiAwPG10KHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoXCIubmF2YmFyXCIpLmxlbmd0aH0sdC5fZ2V0UG9wcGVyQ29uZmlnPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXt9O1wiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuX2NvbmZpZy5vZmZzZXQ/dC5mbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5vZmZzZXRzPWgoe30sdC5vZmZzZXRzLGUuX2NvbmZpZy5vZmZzZXQodC5vZmZzZXRzKXx8e30pLHR9OnQub2Zmc2V0PXRoaXMuX2NvbmZpZy5vZmZzZXQ7dmFyIG49e3BsYWNlbWVudDp0aGlzLl9nZXRQbGFjZW1lbnQoKSxtb2RpZmllcnM6e29mZnNldDp0LGZsaXA6e2VuYWJsZWQ6dGhpcy5fY29uZmlnLmZsaXB9LHByZXZlbnRPdmVyZmxvdzp7Ym91bmRhcmllc0VsZW1lbnQ6dGhpcy5fY29uZmlnLmJvdW5kYXJ5fX19O3JldHVyblwic3RhdGljXCI9PT10aGlzLl9jb25maWcuZGlzcGxheSYmKG4ubW9kaWZpZXJzLmFwcGx5U3R5bGU9e2VuYWJsZWQ6ITF9KSxufSxsLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW10KHRoaXMpLmRhdGEodnQpO2lmKHR8fCh0PW5ldyBsKHRoaXMsXCJvYmplY3RcIj09dHlwZW9mIGU/ZTpudWxsKSxtdCh0aGlzKS5kYXRhKHZ0LHQpKSxcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytlKydcIicpO3RbZV0oKX19KX0sbC5fY2xlYXJNZW51cz1mdW5jdGlvbih0KXtpZighdHx8MyE9PXQud2hpY2gmJihcImtleXVwXCIhPT10LnR5cGV8fDk9PT10LndoaWNoKSlmb3IodmFyIGU9bXQubWFrZUFycmF5KG10KGt0KSksbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1sLl9nZXRQYXJlbnRGcm9tRWxlbWVudChlW25dKSxyPW10KGVbbl0pLmRhdGEodnQpLHM9e3JlbGF0ZWRUYXJnZXQ6ZVtuXX07aWYocil7dmFyIG89ci5fbWVudTtpZihtdChpKS5oYXNDbGFzcyhEdCkmJiEodCYmKFwiY2xpY2tcIj09PXQudHlwZSYmL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKXx8XCJrZXl1cFwiPT09dC50eXBlJiY5PT09dC53aGljaCkmJm10LmNvbnRhaW5zKGksdC50YXJnZXQpKSl7dmFyIGE9bXQuRXZlbnQoSXQuSElERSxzKTttdChpKS50cmlnZ2VyKGEpLGEuaXNEZWZhdWx0UHJldmVudGVkKCl8fChcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZtdChkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigpLm9mZihcIm1vdXNlb3ZlclwiLG51bGwsbXQubm9vcCksZVtuXS5zZXRBdHRyaWJ1dGUoXCJhcmlhLWV4cGFuZGVkXCIsXCJmYWxzZVwiKSxtdChvKS5yZW1vdmVDbGFzcyhEdCksbXQoaSkucmVtb3ZlQ2xhc3MoRHQpLnRyaWdnZXIobXQuRXZlbnQoSXQuSElEREVOLHMpKSl9fX19LGwuX2dldFBhcmVudEZyb21FbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlLG49Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0KTtyZXR1cm4gbiYmKGU9bXQobilbMF0pLGV8fHQucGFyZW50Tm9kZX0sbC5fZGF0YUFwaUtleWRvd25IYW5kbGVyPWZ1bmN0aW9uKHQpe2lmKCgvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpPyEoMzI9PT10LndoaWNofHwyNyE9PXQud2hpY2gmJig0MCE9PXQud2hpY2gmJjM4IT09dC53aGljaHx8bXQodC50YXJnZXQpLmNsb3Nlc3QoTHQpLmxlbmd0aCkpOkN0LnRlc3QodC53aGljaCkpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksIXRoaXMuZGlzYWJsZWQmJiFtdCh0aGlzKS5oYXNDbGFzcyhBdCkpKXt2YXIgZT1sLl9nZXRQYXJlbnRGcm9tRWxlbWVudCh0aGlzKSxuPW10KGUpLmhhc0NsYXNzKER0KTtpZigobnx8Mjc9PT10LndoaWNoJiYzMj09PXQud2hpY2gpJiYoIW58fDI3IT09dC53aGljaCYmMzIhPT10LndoaWNoKSl7dmFyIGk9bXQoZSkuZmluZChSdCkuZ2V0KCk7aWYoMCE9PWkubGVuZ3RoKXt2YXIgcj1pLmluZGV4T2YodC50YXJnZXQpOzM4PT09dC53aGljaCYmMDxyJiZyLS0sNDA9PT10LndoaWNoJiZyPGkubGVuZ3RoLTEmJnIrKyxyPDAmJihyPTApLGlbcl0uZm9jdXMoKX19ZWxzZXtpZigyNz09PXQud2hpY2gpe3ZhciBzPW10KGUpLmZpbmQoa3QpWzBdO210KHMpLnRyaWdnZXIoXCJmb2N1c1wiKX1tdCh0aGlzKS50cmlnZ2VyKFwiY2xpY2tcIil9fX0sbyhsLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRnR9fSx7a2V5OlwiRGVmYXVsdFR5cGVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVnR9fV0pLGx9KCksbXQoZG9jdW1lbnQpLm9uKEl0LktFWURPV05fREFUQV9BUEksa3QsUXQuX2RhdGFBcGlLZXlkb3duSGFuZGxlcikub24oSXQuS0VZRE9XTl9EQVRBX0FQSSxMdCxRdC5fZGF0YUFwaUtleWRvd25IYW5kbGVyKS5vbihJdC5DTElDS19EQVRBX0FQSStcIiBcIitJdC5LRVlVUF9EQVRBX0FQSSxRdC5fY2xlYXJNZW51cykub24oSXQuQ0xJQ0tfREFUQV9BUEksa3QsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksUXQuX2pRdWVyeUludGVyZmFjZS5jYWxsKG10KHRoaXMpLFwidG9nZ2xlXCIpfSkub24oSXQuQ0xJQ0tfREFUQV9BUEksUHQsZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX0pLG10LmZuW3B0XT1RdC5falF1ZXJ5SW50ZXJmYWNlLG10LmZuW3B0XS5Db25zdHJ1Y3Rvcj1RdCxtdC5mbltwdF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBtdC5mbltwdF09VHQsUXQuX2pRdWVyeUludGVyZmFjZX0sUXQpLHduPShZdD1cIm1vZGFsXCIscXQ9XCIuXCIrKEd0PVwiYnMubW9kYWxcIiksenQ9KEJ0PWUpLmZuW1l0XSxYdD17YmFja2Ryb3A6ITAsa2V5Ym9hcmQ6ITAsZm9jdXM6ITAsc2hvdzohMH0sSnQ9e2JhY2tkcm9wOlwiKGJvb2xlYW58c3RyaW5nKVwiLGtleWJvYXJkOlwiYm9vbGVhblwiLGZvY3VzOlwiYm9vbGVhblwiLHNob3c6XCJib29sZWFuXCJ9LFp0PXtISURFOlwiaGlkZVwiK3F0LEhJRERFTjpcImhpZGRlblwiK3F0LFNIT1c6XCJzaG93XCIrcXQsU0hPV046XCJzaG93blwiK3F0LEZPQ1VTSU46XCJmb2N1c2luXCIrcXQsUkVTSVpFOlwicmVzaXplXCIrcXQsQ0xJQ0tfRElTTUlTUzpcImNsaWNrLmRpc21pc3NcIitxdCxLRVlET1dOX0RJU01JU1M6XCJrZXlkb3duLmRpc21pc3NcIitxdCxNT1VTRVVQX0RJU01JU1M6XCJtb3VzZXVwLmRpc21pc3NcIitxdCxNT1VTRURPV05fRElTTUlTUzpcIm1vdXNlZG93bi5kaXNtaXNzXCIrcXQsQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK3F0K1wiLmRhdGEtYXBpXCJ9LCR0PVwibW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmVcIix0ZT1cIm1vZGFsLWJhY2tkcm9wXCIsZWU9XCJtb2RhbC1vcGVuXCIsbmU9XCJmYWRlXCIsaWU9XCJzaG93XCIscmU9e0RJQUxPRzpcIi5tb2RhbC1kaWFsb2dcIixEQVRBX1RPR0dMRTonW2RhdGEtdG9nZ2xlPVwibW9kYWxcIl0nLERBVEFfRElTTUlTUzonW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJyxGSVhFRF9DT05URU5UOlwiLmZpeGVkLXRvcCwgLmZpeGVkLWJvdHRvbSwgLmlzLWZpeGVkLCAuc3RpY2t5LXRvcFwiLFNUSUNLWV9DT05URU5UOlwiLnN0aWNreS10b3BcIixOQVZCQVJfVE9HR0xFUjpcIi5uYXZiYXItdG9nZ2xlclwifSxzZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxlKXt0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX2VsZW1lbnQ9dCx0aGlzLl9kaWFsb2c9QnQodCkuZmluZChyZS5ESUFMT0cpWzBdLHRoaXMuX2JhY2tkcm9wPW51bGwsdGhpcy5faXNTaG93bj0hMSx0aGlzLl9pc0JvZHlPdmVyZmxvd2luZz0hMSx0aGlzLl9pZ25vcmVCYWNrZHJvcENsaWNrPSExLHRoaXMuX3Njcm9sbGJhcldpZHRoPTB9dmFyIHQ9ci5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9pc1Nob3duP3RoaXMuaGlkZSgpOnRoaXMuc2hvdyh0KX0sdC5zaG93PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX2lzVHJhbnNpdGlvbmluZyYmIXRoaXMuX2lzU2hvd24pe0J0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKSYmKHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMCk7dmFyIG49QnQuRXZlbnQoWnQuU0hPVyx7cmVsYXRlZFRhcmdldDp0fSk7QnQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihuKSx0aGlzLl9pc1Nob3dufHxuLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodGhpcy5faXNTaG93bj0hMCx0aGlzLl9jaGVja1Njcm9sbGJhcigpLHRoaXMuX3NldFNjcm9sbGJhcigpLHRoaXMuX2FkanVzdERpYWxvZygpLEJ0KGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKGVlKSx0aGlzLl9zZXRFc2NhcGVFdmVudCgpLHRoaXMuX3NldFJlc2l6ZUV2ZW50KCksQnQodGhpcy5fZWxlbWVudCkub24oWnQuQ0xJQ0tfRElTTUlTUyxyZS5EQVRBX0RJU01JU1MsZnVuY3Rpb24odCl7cmV0dXJuIGUuaGlkZSh0KX0pLEJ0KHRoaXMuX2RpYWxvZykub24oWnQuTU9VU0VET1dOX0RJU01JU1MsZnVuY3Rpb24oKXtCdChlLl9lbGVtZW50KS5vbmUoWnQuTU9VU0VVUF9ESVNNSVNTLGZ1bmN0aW9uKHQpe0J0KHQudGFyZ2V0KS5pcyhlLl9lbGVtZW50KSYmKGUuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITApfSl9KSx0aGlzLl9zaG93QmFja2Ryb3AoZnVuY3Rpb24oKXtyZXR1cm4gZS5fc2hvd0VsZW1lbnQodCl9KSl9fSx0LmhpZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0JiZ0LnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2lzVHJhbnNpdGlvbmluZyYmdGhpcy5faXNTaG93bil7dmFyIG49QnQuRXZlbnQoWnQuSElERSk7aWYoQnQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihuKSx0aGlzLl9pc1Nob3duJiYhbi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dGhpcy5faXNTaG93bj0hMTt2YXIgaT1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk7aWYoaSYmKHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMCksdGhpcy5fc2V0RXNjYXBlRXZlbnQoKSx0aGlzLl9zZXRSZXNpemVFdmVudCgpLEJ0KGRvY3VtZW50KS5vZmYoWnQuRk9DVVNJTiksQnQodGhpcy5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoaWUpLEJ0KHRoaXMuX2VsZW1lbnQpLm9mZihadC5DTElDS19ESVNNSVNTKSxCdCh0aGlzLl9kaWFsb2cpLm9mZihadC5NT1VTRURPV05fRElTTUlTUyksaSl7dmFyIHI9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7QnQodGhpcy5fZWxlbWVudCkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKHQpe3JldHVybiBlLl9oaWRlTW9kYWwodCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChyKX1lbHNlIHRoaXMuX2hpZGVNb2RhbCgpfX19LHQuZGlzcG9zZT1mdW5jdGlvbigpe0J0LnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxHdCksQnQod2luZG93LGRvY3VtZW50LHRoaXMuX2VsZW1lbnQsdGhpcy5fYmFja2Ryb3ApLm9mZihxdCksdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX2RpYWxvZz1udWxsLHRoaXMuX2JhY2tkcm9wPW51bGwsdGhpcy5faXNTaG93bj1udWxsLHRoaXMuX2lzQm9keU92ZXJmbG93aW5nPW51bGwsdGhpcy5faWdub3JlQmFja2Ryb3BDbGljaz1udWxsLHRoaXMuX3Njcm9sbGJhcldpZHRoPW51bGx9LHQuaGFuZGxlVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5fYWRqdXN0RGlhbG9nKCl9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gdD1oKHt9LFh0LHQpLENuLnR5cGVDaGVja0NvbmZpZyhZdCx0LEp0KSx0fSx0Ll9zaG93RWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpO3RoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV8fGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudCksdGhpcy5fZWxlbWVudC5zdHlsZS5kaXNwbGF5PVwiYmxvY2tcIix0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIpLHRoaXMuX2VsZW1lbnQuc2Nyb2xsVG9wPTAsbiYmQ24ucmVmbG93KHRoaXMuX2VsZW1lbnQpLEJ0KHRoaXMuX2VsZW1lbnQpLmFkZENsYXNzKGllKSx0aGlzLl9jb25maWcuZm9jdXMmJnRoaXMuX2VuZm9yY2VGb2N1cygpO3ZhciBpPUJ0LkV2ZW50KFp0LlNIT1dOLHtyZWxhdGVkVGFyZ2V0OnR9KSxyPWZ1bmN0aW9uKCl7ZS5fY29uZmlnLmZvY3VzJiZlLl9lbGVtZW50LmZvY3VzKCksZS5faXNUcmFuc2l0aW9uaW5nPSExLEJ0KGUuX2VsZW1lbnQpLnRyaWdnZXIoaSl9O2lmKG4pe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO0J0KHRoaXMuX2RpYWxvZykub25lKENuLlRSQU5TSVRJT05fRU5ELHIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHMpfWVsc2UgcigpfSx0Ll9lbmZvcmNlRm9jdXM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO0J0KGRvY3VtZW50KS5vZmYoWnQuRk9DVVNJTikub24oWnQuRk9DVVNJTixmdW5jdGlvbih0KXtkb2N1bWVudCE9PXQudGFyZ2V0JiZlLl9lbGVtZW50IT09dC50YXJnZXQmJjA9PT1CdChlLl9lbGVtZW50KS5oYXModC50YXJnZXQpLmxlbmd0aCYmZS5fZWxlbWVudC5mb2N1cygpfSl9LHQuX3NldEVzY2FwZUV2ZW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9pc1Nob3duJiZ0aGlzLl9jb25maWcua2V5Ym9hcmQ/QnQodGhpcy5fZWxlbWVudCkub24oWnQuS0VZRE9XTl9ESVNNSVNTLGZ1bmN0aW9uKHQpezI3PT09dC53aGljaCYmKHQucHJldmVudERlZmF1bHQoKSxlLmhpZGUoKSl9KTp0aGlzLl9pc1Nob3dufHxCdCh0aGlzLl9lbGVtZW50KS5vZmYoWnQuS0VZRE9XTl9ESVNNSVNTKX0sdC5fc2V0UmVzaXplRXZlbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2lzU2hvd24/QnQod2luZG93KS5vbihadC5SRVNJWkUsZnVuY3Rpb24odCl7cmV0dXJuIGUuaGFuZGxlVXBkYXRlKHQpfSk6QnQod2luZG93KS5vZmYoWnQuUkVTSVpFKX0sdC5faGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk9XCJub25lXCIsdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLCEwKSx0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITEsdGhpcy5fc2hvd0JhY2tkcm9wKGZ1bmN0aW9uKCl7QnQoZG9jdW1lbnQuYm9keSkucmVtb3ZlQ2xhc3MoZWUpLHQuX3Jlc2V0QWRqdXN0bWVudHMoKSx0Ll9yZXNldFNjcm9sbGJhcigpLEJ0KHQuX2VsZW1lbnQpLnRyaWdnZXIoWnQuSElEREVOKX0pfSx0Ll9yZW1vdmVCYWNrZHJvcD1mdW5jdGlvbigpe3RoaXMuX2JhY2tkcm9wJiYoQnQodGhpcy5fYmFja2Ryb3ApLnJlbW92ZSgpLHRoaXMuX2JhY2tkcm9wPW51bGwpfSx0Ll9zaG93QmFja2Ryb3A9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKT9uZTpcIlwiO2lmKHRoaXMuX2lzU2hvd24mJnRoaXMuX2NvbmZpZy5iYWNrZHJvcCl7aWYodGhpcy5fYmFja2Ryb3A9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSx0aGlzLl9iYWNrZHJvcC5jbGFzc05hbWU9dGUsbiYmQnQodGhpcy5fYmFja2Ryb3ApLmFkZENsYXNzKG4pLEJ0KHRoaXMuX2JhY2tkcm9wKS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KSxCdCh0aGlzLl9lbGVtZW50KS5vbihadC5DTElDS19ESVNNSVNTLGZ1bmN0aW9uKHQpe2UuX2lnbm9yZUJhY2tkcm9wQ2xpY2s/ZS5faWdub3JlQmFja2Ryb3BDbGljaz0hMTp0LnRhcmdldD09PXQuY3VycmVudFRhcmdldCYmKFwic3RhdGljXCI9PT1lLl9jb25maWcuYmFja2Ryb3A/ZS5fZWxlbWVudC5mb2N1cygpOmUuaGlkZSgpKX0pLG4mJkNuLnJlZmxvdyh0aGlzLl9iYWNrZHJvcCksQnQodGhpcy5fYmFja2Ryb3ApLmFkZENsYXNzKGllKSwhdClyZXR1cm47aWYoIW4pcmV0dXJuIHZvaWQgdCgpO3ZhciBpPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2JhY2tkcm9wKTtCdCh0aGlzLl9iYWNrZHJvcCkub25lKENuLlRSQU5TSVRJT05fRU5ELHQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGkpfWVsc2UgaWYoIXRoaXMuX2lzU2hvd24mJnRoaXMuX2JhY2tkcm9wKXtCdCh0aGlzLl9iYWNrZHJvcCkucmVtb3ZlQ2xhc3MoaWUpO3ZhciByPWZ1bmN0aW9uKCl7ZS5fcmVtb3ZlQmFja2Ryb3AoKSx0JiZ0KCl9O2lmKEJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKSl7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fYmFja2Ryb3ApO0J0KHRoaXMuX2JhY2tkcm9wKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQscikuZW11bGF0ZVRyYW5zaXRpb25FbmQocyl9ZWxzZSByKCl9ZWxzZSB0JiZ0KCl9LHQuX2FkanVzdERpYWxvZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2VsZW1lbnQuc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7IXRoaXMuX2lzQm9keU92ZXJmbG93aW5nJiZ0JiYodGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nTGVmdD10aGlzLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpLHRoaXMuX2lzQm9keU92ZXJmbG93aW5nJiYhdCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ1JpZ2h0PXRoaXMuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9LHQuX3Jlc2V0QWRqdXN0bWVudHM9ZnVuY3Rpb24oKXt0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0PVwiXCIsdGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQ9XCJcIn0sdC5fY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5ib2R5LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX2lzQm9keU92ZXJmbG93aW5nPXQubGVmdCt0LnJpZ2h0PHdpbmRvdy5pbm5lcldpZHRoLHRoaXMuX3Njcm9sbGJhcldpZHRoPXRoaXMuX2dldFNjcm9sbGJhcldpZHRoKCl9LHQuX3NldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciByPXRoaXM7aWYodGhpcy5faXNCb2R5T3ZlcmZsb3dpbmcpe0J0KHJlLkZJWEVEX0NPTlRFTlQpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKVswXS5zdHlsZS5wYWRkaW5nUmlnaHQsaT1CdChlKS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIpO0J0KGUpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIsbikuY3NzKFwicGFkZGluZy1yaWdodFwiLHBhcnNlRmxvYXQoaSkrci5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX0pLEJ0KHJlLlNUSUNLWV9DT05URU5UKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSlbMF0uc3R5bGUubWFyZ2luUmlnaHQsaT1CdChlKS5jc3MoXCJtYXJnaW4tcmlnaHRcIik7QnQoZSkuZGF0YShcIm1hcmdpbi1yaWdodFwiLG4pLmNzcyhcIm1hcmdpbi1yaWdodFwiLHBhcnNlRmxvYXQoaSktci5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX0pLEJ0KHJlLk5BVkJBUl9UT0dHTEVSKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSlbMF0uc3R5bGUubWFyZ2luUmlnaHQsaT1CdChlKS5jc3MoXCJtYXJnaW4tcmlnaHRcIik7QnQoZSkuZGF0YShcIm1hcmdpbi1yaWdodFwiLG4pLmNzcyhcIm1hcmdpbi1yaWdodFwiLHBhcnNlRmxvYXQoaSkrci5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX0pO3ZhciB0PWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0LGU9QnQoZG9jdW1lbnQuYm9keSkuY3NzKFwicGFkZGluZy1yaWdodFwiKTtCdChkb2N1bWVudC5ib2R5KS5kYXRhKFwicGFkZGluZy1yaWdodFwiLHQpLmNzcyhcInBhZGRpbmctcmlnaHRcIixwYXJzZUZsb2F0KGUpK3RoaXMuX3Njcm9sbGJhcldpZHRoK1wicHhcIil9fSx0Ll9yZXNldFNjcm9sbGJhcj1mdW5jdGlvbigpe0J0KHJlLkZJWEVEX0NPTlRFTlQpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKS5kYXRhKFwicGFkZGluZy1yaWdodFwiKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgbiYmQnQoZSkuY3NzKFwicGFkZGluZy1yaWdodFwiLG4pLnJlbW92ZURhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpfSksQnQocmUuU1RJQ0tZX0NPTlRFTlQrXCIsIFwiK3JlLk5BVkJBUl9UT0dHTEVSKS5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49QnQoZSkuZGF0YShcIm1hcmdpbi1yaWdodFwiKTtcInVuZGVmaW5lZFwiIT10eXBlb2YgbiYmQnQoZSkuY3NzKFwibWFyZ2luLXJpZ2h0XCIsbikucmVtb3ZlRGF0YShcIm1hcmdpbi1yaWdodFwiKX0pO3ZhciB0PUJ0KGRvY3VtZW50LmJvZHkpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiB0JiZCdChkb2N1bWVudC5ib2R5KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIsdCkucmVtb3ZlRGF0YShcInBhZGRpbmctcmlnaHRcIil9LHQuX2dldFNjcm9sbGJhcldpZHRoPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt0LmNsYXNzTmFtZT0kdCxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgtdC5jbGllbnRXaWR0aDtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KSxlfSxyLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obixpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9QnQodGhpcykuZGF0YShHdCksZT1oKHt9LHIuRGVmYXVsdCxCdCh0aGlzKS5kYXRhKCksXCJvYmplY3RcIj09dHlwZW9mIG4mJm4pO2lmKHR8fCh0PW5ldyByKHRoaXMsZSksQnQodGhpcykuZGF0YShHdCx0KSksXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTt0W25dKGkpfWVsc2UgZS5zaG93JiZ0LnNob3coaSl9KX0sbyhyLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHR9fV0pLHJ9KCksQnQoZG9jdW1lbnQpLm9uKFp0LkNMSUNLX0RBVEFfQVBJLHJlLkRBVEFfVE9HR0xFLGZ1bmN0aW9uKHQpe3ZhciBlLG49dGhpcyxpPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodGhpcyk7aSYmKGU9QnQoaSlbMF0pO3ZhciByPUJ0KGUpLmRhdGEoR3QpP1widG9nZ2xlXCI6aCh7fSxCdChlKS5kYXRhKCksQnQodGhpcykuZGF0YSgpKTtcIkFcIiE9PXRoaXMudGFnTmFtZSYmXCJBUkVBXCIhPT10aGlzLnRhZ05hbWV8fHQucHJldmVudERlZmF1bHQoKTt2YXIgcz1CdChlKS5vbmUoWnQuU0hPVyxmdW5jdGlvbih0KXt0LmlzRGVmYXVsdFByZXZlbnRlZCgpfHxzLm9uZShadC5ISURERU4sZnVuY3Rpb24oKXtCdChuKS5pcyhcIjp2aXNpYmxlXCIpJiZuLmZvY3VzKCl9KX0pO3NlLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChCdChlKSxyLHRoaXMpfSksQnQuZm5bWXRdPXNlLl9qUXVlcnlJbnRlcmZhY2UsQnQuZm5bWXRdLkNvbnN0cnVjdG9yPXNlLEJ0LmZuW1l0XS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIEJ0LmZuW1l0XT16dCxzZS5falF1ZXJ5SW50ZXJmYWNlfSxzZSksTm49KGFlPVwidG9vbHRpcFwiLGhlPVwiLlwiKyhsZT1cImJzLnRvb2x0aXBcIiksY2U9KG9lPWUpLmZuW2FlXSx1ZT1cImJzLXRvb2x0aXBcIixmZT1uZXcgUmVnRXhwKFwiKF58XFxcXHMpXCIrdWUrXCJcXFxcUytcIixcImdcIiksZ2U9e2FuaW1hdGlvbjohMCx0ZW1wbGF0ZTonPGRpdiBjbGFzcz1cInRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiPjxkaXYgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJ0b29sdGlwLWlubmVyXCI+PC9kaXY+PC9kaXY+Jyx0cmlnZ2VyOlwiaG92ZXIgZm9jdXNcIix0aXRsZTpcIlwiLGRlbGF5OjAsaHRtbDohKF9lPXtBVVRPOlwiYXV0b1wiLFRPUDpcInRvcFwiLFJJR0hUOlwicmlnaHRcIixCT1RUT006XCJib3R0b21cIixMRUZUOlwibGVmdFwifSksc2VsZWN0b3I6IShkZT17YW5pbWF0aW9uOlwiYm9vbGVhblwiLHRlbXBsYXRlOlwic3RyaW5nXCIsdGl0bGU6XCIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pXCIsdHJpZ2dlcjpcInN0cmluZ1wiLGRlbGF5OlwiKG51bWJlcnxvYmplY3QpXCIsaHRtbDpcImJvb2xlYW5cIixzZWxlY3RvcjpcIihzdHJpbmd8Ym9vbGVhbilcIixwbGFjZW1lbnQ6XCIoc3RyaW5nfGZ1bmN0aW9uKVwiLG9mZnNldDpcIihudW1iZXJ8c3RyaW5nKVwiLGNvbnRhaW5lcjpcIihzdHJpbmd8ZWxlbWVudHxib29sZWFuKVwiLGZhbGxiYWNrUGxhY2VtZW50OlwiKHN0cmluZ3xhcnJheSlcIixib3VuZGFyeTpcIihzdHJpbmd8ZWxlbWVudClcIn0pLHBsYWNlbWVudDpcInRvcFwiLG9mZnNldDowLGNvbnRhaW5lcjohMSxmYWxsYmFja1BsYWNlbWVudDpcImZsaXBcIixib3VuZGFyeTpcInNjcm9sbFBhcmVudFwifSxwZT1cIm91dFwiLHZlPXtISURFOlwiaGlkZVwiK2hlLEhJRERFTjpcImhpZGRlblwiK2hlLFNIT1c6KG1lPVwic2hvd1wiKStoZSxTSE9XTjpcInNob3duXCIraGUsSU5TRVJURUQ6XCJpbnNlcnRlZFwiK2hlLENMSUNLOlwiY2xpY2tcIitoZSxGT0NVU0lOOlwiZm9jdXNpblwiK2hlLEZPQ1VTT1VUOlwiZm9jdXNvdXRcIitoZSxNT1VTRUVOVEVSOlwibW91c2VlbnRlclwiK2hlLE1PVVNFTEVBVkU6XCJtb3VzZWxlYXZlXCIraGV9LEVlPVwiZmFkZVwiLHllPVwic2hvd1wiLFRlPVwiLnRvb2x0aXAtaW5uZXJcIixDZT1cIi5hcnJvd1wiLEllPVwiaG92ZXJcIixBZT1cImZvY3VzXCIsRGU9XCJjbGlja1wiLGJlPVwibWFudWFsXCIsU2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQsZSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGMpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCB0b29sdGlwcyByZXF1aXJlIFBvcHBlci5qcyAoaHR0cHM6Ly9wb3BwZXIuanMub3JnKVwiKTt0aGlzLl9pc0VuYWJsZWQ9ITAsdGhpcy5fdGltZW91dD0wLHRoaXMuX2hvdmVyU3RhdGU9XCJcIix0aGlzLl9hY3RpdmVUcmlnZ2VyPXt9LHRoaXMuX3BvcHBlcj1udWxsLHRoaXMuZWxlbWVudD10LHRoaXMuY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLnRpcD1udWxsLHRoaXMuX3NldExpc3RlbmVycygpfXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hMH0sdC5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSExfSx0LnRvZ2dsZUVuYWJsZWQ9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9IXRoaXMuX2lzRW5hYmxlZH0sdC50b2dnbGU9ZnVuY3Rpb24odCl7aWYodGhpcy5faXNFbmFibGVkKWlmKHQpe3ZhciBlPXRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksbj1vZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEoZSk7bnx8KG49bmV3IHRoaXMuY29uc3RydWN0b3IodC5jdXJyZW50VGFyZ2V0LHRoaXMuX2dldERlbGVnYXRlQ29uZmlnKCkpLG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShlLG4pKSxuLl9hY3RpdmVUcmlnZ2VyLmNsaWNrPSFuLl9hY3RpdmVUcmlnZ2VyLmNsaWNrLG4uX2lzV2l0aEFjdGl2ZVRyaWdnZXIoKT9uLl9lbnRlcihudWxsLG4pOm4uX2xlYXZlKG51bGwsbil9ZWxzZXtpZihvZSh0aGlzLmdldFRpcEVsZW1lbnQoKSkuaGFzQ2xhc3MoeWUpKXJldHVybiB2b2lkIHRoaXMuX2xlYXZlKG51bGwsdGhpcyk7dGhpcy5fZW50ZXIobnVsbCx0aGlzKX19LHQuZGlzcG9zZT1mdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSxvZS5yZW1vdmVEYXRhKHRoaXMuZWxlbWVudCx0aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZKSxvZSh0aGlzLmVsZW1lbnQpLm9mZih0aGlzLmNvbnN0cnVjdG9yLkVWRU5UX0tFWSksb2UodGhpcy5lbGVtZW50KS5jbG9zZXN0KFwiLm1vZGFsXCIpLm9mZihcImhpZGUuYnMubW9kYWxcIiksdGhpcy50aXAmJm9lKHRoaXMudGlwKS5yZW1vdmUoKSx0aGlzLl9pc0VuYWJsZWQ9bnVsbCx0aGlzLl90aW1lb3V0PW51bGwsdGhpcy5faG92ZXJTdGF0ZT1udWxsLCh0aGlzLl9hY3RpdmVUcmlnZ2VyPW51bGwpIT09dGhpcy5fcG9wcGVyJiZ0aGlzLl9wb3BwZXIuZGVzdHJveSgpLHRoaXMuX3BvcHBlcj1udWxsLHRoaXMuZWxlbWVudD1udWxsLHRoaXMuY29uZmlnPW51bGwsdGhpcy50aXA9bnVsbH0sdC5zaG93PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztpZihcIm5vbmVcIj09PW9lKHRoaXMuZWxlbWVudCkuY3NzKFwiZGlzcGxheVwiKSl0aHJvdyBuZXcgRXJyb3IoXCJQbGVhc2UgdXNlIHNob3cgb24gdmlzaWJsZSBlbGVtZW50c1wiKTt2YXIgdD1vZS5FdmVudCh0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LlNIT1cpO2lmKHRoaXMuaXNXaXRoQ29udGVudCgpJiZ0aGlzLl9pc0VuYWJsZWQpe29lKHRoaXMuZWxlbWVudCkudHJpZ2dlcih0KTt2YXIgbj1vZS5jb250YWlucyh0aGlzLmVsZW1lbnQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy5lbGVtZW50KTtpZih0LmlzRGVmYXVsdFByZXZlbnRlZCgpfHwhbilyZXR1cm47dmFyIGk9dGhpcy5nZXRUaXBFbGVtZW50KCkscj1Dbi5nZXRVSUQodGhpcy5jb25zdHJ1Y3Rvci5OQU1FKTtpLnNldEF0dHJpYnV0ZShcImlkXCIsciksdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIixyKSx0aGlzLnNldENvbnRlbnQoKSx0aGlzLmNvbmZpZy5hbmltYXRpb24mJm9lKGkpLmFkZENsYXNzKEVlKTt2YXIgcz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmNvbmZpZy5wbGFjZW1lbnQ/dGhpcy5jb25maWcucGxhY2VtZW50LmNhbGwodGhpcyxpLHRoaXMuZWxlbWVudCk6dGhpcy5jb25maWcucGxhY2VtZW50LG89dGhpcy5fZ2V0QXR0YWNobWVudChzKTt0aGlzLmFkZEF0dGFjaG1lbnRDbGFzcyhvKTt2YXIgYT0hMT09PXRoaXMuY29uZmlnLmNvbnRhaW5lcj9kb2N1bWVudC5ib2R5Om9lKHRoaXMuY29uZmlnLmNvbnRhaW5lcik7b2UoaSkuZGF0YSh0aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZLHRoaXMpLG9lLmNvbnRhaW5zKHRoaXMuZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLnRpcCl8fG9lKGkpLmFwcGVuZFRvKGEpLG9lKHRoaXMuZWxlbWVudCkudHJpZ2dlcih0aGlzLmNvbnN0cnVjdG9yLkV2ZW50LklOU0VSVEVEKSx0aGlzLl9wb3BwZXI9bmV3IGModGhpcy5lbGVtZW50LGkse3BsYWNlbWVudDpvLG1vZGlmaWVyczp7b2Zmc2V0OntvZmZzZXQ6dGhpcy5jb25maWcub2Zmc2V0fSxmbGlwOntiZWhhdmlvcjp0aGlzLmNvbmZpZy5mYWxsYmFja1BsYWNlbWVudH0sYXJyb3c6e2VsZW1lbnQ6Q2V9LHByZXZlbnRPdmVyZmxvdzp7Ym91bmRhcmllc0VsZW1lbnQ6dGhpcy5jb25maWcuYm91bmRhcnl9fSxvbkNyZWF0ZTpmdW5jdGlvbih0KXt0Lm9yaWdpbmFsUGxhY2VtZW50IT09dC5wbGFjZW1lbnQmJmUuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZSh0KX0sb25VcGRhdGU6ZnVuY3Rpb24odCl7ZS5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlKHQpfX0pLG9lKGkpLmFkZENsYXNzKHllKSxcIm9udG91Y2hzdGFydFwiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZvZShkb2N1bWVudC5ib2R5KS5jaGlsZHJlbigpLm9uKFwibW91c2VvdmVyXCIsbnVsbCxvZS5ub29wKTt2YXIgbD1mdW5jdGlvbigpe2UuY29uZmlnLmFuaW1hdGlvbiYmZS5fZml4VHJhbnNpdGlvbigpO3ZhciB0PWUuX2hvdmVyU3RhdGU7ZS5faG92ZXJTdGF0ZT1udWxsLG9lKGUuZWxlbWVudCkudHJpZ2dlcihlLmNvbnN0cnVjdG9yLkV2ZW50LlNIT1dOKSx0PT09cGUmJmUuX2xlYXZlKG51bGwsZSl9O2lmKG9lKHRoaXMudGlwKS5oYXNDbGFzcyhFZSkpe3ZhciBoPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMudGlwKTtvZSh0aGlzLnRpcCkub25lKENuLlRSQU5TSVRJT05fRU5ELGwpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGgpfWVsc2UgbCgpfX0sdC5oaWRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmdldFRpcEVsZW1lbnQoKSxpPW9lLkV2ZW50KHRoaXMuY29uc3RydWN0b3IuRXZlbnQuSElERSkscj1mdW5jdGlvbigpe2UuX2hvdmVyU3RhdGUhPT1tZSYmbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksZS5fY2xlYW5UaXBDbGFzcygpLGUuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJhcmlhLWRlc2NyaWJlZGJ5XCIpLG9lKGUuZWxlbWVudCkudHJpZ2dlcihlLmNvbnN0cnVjdG9yLkV2ZW50LkhJRERFTiksbnVsbCE9PWUuX3BvcHBlciYmZS5fcG9wcGVyLmRlc3Ryb3koKSx0JiZ0KCl9O2lmKG9lKHRoaXMuZWxlbWVudCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7aWYob2UobikucmVtb3ZlQ2xhc3MoeWUpLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJm9lKGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub2ZmKFwibW91c2VvdmVyXCIsbnVsbCxvZS5ub29wKSx0aGlzLl9hY3RpdmVUcmlnZ2VyW0RlXT0hMSx0aGlzLl9hY3RpdmVUcmlnZ2VyW0FlXT0hMSx0aGlzLl9hY3RpdmVUcmlnZ2VyW0llXT0hMSxvZSh0aGlzLnRpcCkuaGFzQ2xhc3MoRWUpKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChuKTtvZShuKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQscikuZW11bGF0ZVRyYW5zaXRpb25FbmQocyl9ZWxzZSByKCk7dGhpcy5faG92ZXJTdGF0ZT1cIlwifX0sdC51cGRhdGU9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5fcG9wcGVyJiZ0aGlzLl9wb3BwZXIuc2NoZWR1bGVVcGRhdGUoKX0sdC5pc1dpdGhDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5nZXRUaXRsZSgpKX0sdC5hZGRBdHRhY2htZW50Q2xhc3M9ZnVuY3Rpb24odCl7b2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLmFkZENsYXNzKHVlK1wiLVwiK3QpfSx0LmdldFRpcEVsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aXA9dGhpcy50aXB8fG9lKHRoaXMuY29uZmlnLnRlbXBsYXRlKVswXSx0aGlzLnRpcH0sdC5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9b2UodGhpcy5nZXRUaXBFbGVtZW50KCkpO3RoaXMuc2V0RWxlbWVudENvbnRlbnQodC5maW5kKFRlKSx0aGlzLmdldFRpdGxlKCkpLHQucmVtb3ZlQ2xhc3MoRWUrXCIgXCIreWUpfSx0LnNldEVsZW1lbnRDb250ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5jb25maWcuaHRtbDtcIm9iamVjdFwiPT10eXBlb2YgZSYmKGUubm9kZVR5cGV8fGUuanF1ZXJ5KT9uP29lKGUpLnBhcmVudCgpLmlzKHQpfHx0LmVtcHR5KCkuYXBwZW5kKGUpOnQudGV4dChvZShlKS50ZXh0KCkpOnRbbj9cImh0bWxcIjpcInRleHRcIl0oZSl9LHQuZ2V0VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1vcmlnaW5hbC10aXRsZVwiKTtyZXR1cm4gdHx8KHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5jb25maWcudGl0bGU/dGhpcy5jb25maWcudGl0bGUuY2FsbCh0aGlzLmVsZW1lbnQpOnRoaXMuY29uZmlnLnRpdGxlKSx0fSx0Ll9nZXRBdHRhY2htZW50PWZ1bmN0aW9uKHQpe3JldHVybiBfZVt0LnRvVXBwZXJDYXNlKCldfSx0Ll9zZXRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgaT10aGlzO3RoaXMuY29uZmlnLnRyaWdnZXIuc3BsaXQoXCIgXCIpLmZvckVhY2goZnVuY3Rpb24odCl7aWYoXCJjbGlja1wiPT09dClvZShpLmVsZW1lbnQpLm9uKGkuY29uc3RydWN0b3IuRXZlbnQuQ0xJQ0ssaS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkudG9nZ2xlKHQpfSk7ZWxzZSBpZih0IT09YmUpe3ZhciBlPXQ9PT1JZT9pLmNvbnN0cnVjdG9yLkV2ZW50Lk1PVVNFRU5URVI6aS5jb25zdHJ1Y3Rvci5FdmVudC5GT0NVU0lOLG49dD09PUllP2kuY29uc3RydWN0b3IuRXZlbnQuTU9VU0VMRUFWRTppLmNvbnN0cnVjdG9yLkV2ZW50LkZPQ1VTT1VUO29lKGkuZWxlbWVudCkub24oZSxpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS5fZW50ZXIodCl9KS5vbihuLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLl9sZWF2ZSh0KX0pfW9lKGkuZWxlbWVudCkuY2xvc2VzdChcIi5tb2RhbFwiKS5vbihcImhpZGUuYnMubW9kYWxcIixmdW5jdGlvbigpe3JldHVybiBpLmhpZGUoKX0pfSksdGhpcy5jb25maWcuc2VsZWN0b3I/dGhpcy5jb25maWc9aCh7fSx0aGlzLmNvbmZpZyx7dHJpZ2dlcjpcIm1hbnVhbFwiLHNlbGVjdG9yOlwiXCJ9KTp0aGlzLl9maXhUaXRsZSgpfSx0Ll9maXhUaXRsZT1mdW5jdGlvbigpe3ZhciB0PXR5cGVvZiB0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1vcmlnaW5hbC10aXRsZVwiKTsodGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcInRpdGxlXCIpfHxcInN0cmluZ1wiIT09dCkmJih0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZGF0YS1vcmlnaW5hbC10aXRsZVwiLHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKXx8XCJcIiksdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZShcInRpdGxlXCIsXCJcIikpfSx0Ll9lbnRlcj1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29uc3RydWN0b3IuREFUQV9LRVk7KGU9ZXx8b2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4pKXx8KGU9bmV3IHRoaXMuY29uc3RydWN0b3IodC5jdXJyZW50VGFyZ2V0LHRoaXMuX2dldERlbGVnYXRlQ29uZmlnKCkpLG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuLGUpKSx0JiYoZS5fYWN0aXZlVHJpZ2dlcltcImZvY3VzaW5cIj09PXQudHlwZT9BZTpJZV09ITApLG9lKGUuZ2V0VGlwRWxlbWVudCgpKS5oYXNDbGFzcyh5ZSl8fGUuX2hvdmVyU3RhdGU9PT1tZT9lLl9ob3ZlclN0YXRlPW1lOihjbGVhclRpbWVvdXQoZS5fdGltZW91dCksZS5faG92ZXJTdGF0ZT1tZSxlLmNvbmZpZy5kZWxheSYmZS5jb25maWcuZGVsYXkuc2hvdz9lLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLl9ob3ZlclN0YXRlPT09bWUmJmUuc2hvdygpfSxlLmNvbmZpZy5kZWxheS5zaG93KTplLnNob3coKSl9LHQuX2xlYXZlPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWTsoZT1lfHxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobikpfHwoZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSksb2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4sZSkpLHQmJihlLl9hY3RpdmVUcmlnZ2VyW1wiZm9jdXNvdXRcIj09PXQudHlwZT9BZTpJZV09ITEpLGUuX2lzV2l0aEFjdGl2ZVRyaWdnZXIoKXx8KGNsZWFyVGltZW91dChlLl90aW1lb3V0KSxlLl9ob3ZlclN0YXRlPXBlLGUuY29uZmlnLmRlbGF5JiZlLmNvbmZpZy5kZWxheS5oaWRlP2UuX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe2UuX2hvdmVyU3RhdGU9PT1wZSYmZS5oaWRlKCl9LGUuY29uZmlnLmRlbGF5LmhpZGUpOmUuaGlkZSgpKX0sdC5faXNXaXRoQWN0aXZlVHJpZ2dlcj1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLl9hY3RpdmVUcmlnZ2VyKWlmKHRoaXMuX2FjdGl2ZVRyaWdnZXJbdF0pcmV0dXJuITA7cmV0dXJuITF9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm5cIm51bWJlclwiPT10eXBlb2YodD1oKHt9LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdCxvZSh0aGlzLmVsZW1lbnQpLmRhdGEoKSx0KSkuZGVsYXkmJih0LmRlbGF5PXtzaG93OnQuZGVsYXksaGlkZTp0LmRlbGF5fSksXCJudW1iZXJcIj09dHlwZW9mIHQudGl0bGUmJih0LnRpdGxlPXQudGl0bGUudG9TdHJpbmcoKSksXCJudW1iZXJcIj09dHlwZW9mIHQuY29udGVudCYmKHQuY29udGVudD10LmNvbnRlbnQudG9TdHJpbmcoKSksQ24udHlwZUNoZWNrQ29uZmlnKGFlLHQsdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0VHlwZSksdH0sdC5fZ2V0RGVsZWdhdGVDb25maWc9ZnVuY3Rpb24oKXt2YXIgdD17fTtpZih0aGlzLmNvbmZpZylmb3IodmFyIGUgaW4gdGhpcy5jb25maWcpdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0W2VdIT09dGhpcy5jb25maWdbZV0mJih0W2VdPXRoaXMuY29uZmlnW2VdKTtyZXR1cm4gdH0sdC5fY2xlYW5UaXBDbGFzcz1mdW5jdGlvbigpe3ZhciB0PW9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKSxlPXQuYXR0cihcImNsYXNzXCIpLm1hdGNoKGZlKTtudWxsIT09ZSYmMDxlLmxlbmd0aCYmdC5yZW1vdmVDbGFzcyhlLmpvaW4oXCJcIikpfSx0Ll9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2U9ZnVuY3Rpb24odCl7dGhpcy5fY2xlYW5UaXBDbGFzcygpLHRoaXMuYWRkQXR0YWNobWVudENsYXNzKHRoaXMuX2dldEF0dGFjaG1lbnQodC5wbGFjZW1lbnQpKX0sdC5fZml4VHJhbnNpdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0VGlwRWxlbWVudCgpLGU9dGhpcy5jb25maWcuYW5pbWF0aW9uO251bGw9PT10LmdldEF0dHJpYnV0ZShcIngtcGxhY2VtZW50XCIpJiYob2UodCkucmVtb3ZlQ2xhc3MoRWUpLHRoaXMuY29uZmlnLmFuaW1hdGlvbj0hMSx0aGlzLmhpZGUoKSx0aGlzLnNob3coKSx0aGlzLmNvbmZpZy5hbmltYXRpb249ZSl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9b2UodGhpcykuZGF0YShsZSksZT1cIm9iamVjdFwiPT10eXBlb2YgbiYmbjtpZigodHx8IS9kaXNwb3NlfGhpZGUvLnRlc3QobikpJiYodHx8KHQ9bmV3IGkodGhpcyxlKSxvZSh0aGlzKS5kYXRhKGxlLHQpKSxcInN0cmluZ1wiPT10eXBlb2Ygbikpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTt0W25dKCl9fSl9LG8oaSxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGdlfX0se2tleTpcIk5BTUVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWV9fSx7a2V5OlwiREFUQV9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbGV9fSx7a2V5OlwiRXZlbnRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdmV9fSx7a2V5OlwiRVZFTlRfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGhlfX0se2tleTpcIkRlZmF1bHRUeXBlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGRlfX1dKSxpfSgpLG9lLmZuW2FlXT1TZS5falF1ZXJ5SW50ZXJmYWNlLG9lLmZuW2FlXS5Db25zdHJ1Y3Rvcj1TZSxvZS5mblthZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBvZS5mblthZV09Y2UsU2UuX2pRdWVyeUludGVyZmFjZX0sU2UpLE9uPShOZT1cInBvcG92ZXJcIixrZT1cIi5cIisoT2U9XCJicy5wb3BvdmVyXCIpLFBlPSh3ZT1lKS5mbltOZV0sTGU9XCJicy1wb3BvdmVyXCIsamU9bmV3IFJlZ0V4cChcIihefFxcXFxzKVwiK0xlK1wiXFxcXFMrXCIsXCJnXCIpLFJlPWgoe30sTm4uRGVmYXVsdCx7cGxhY2VtZW50OlwicmlnaHRcIix0cmlnZ2VyOlwiY2xpY2tcIixjb250ZW50OlwiXCIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9XCJwb3BvdmVyXCIgcm9sZT1cInRvb2x0aXBcIj48ZGl2IGNsYXNzPVwiYXJyb3dcIj48L2Rpdj48aDMgY2xhc3M9XCJwb3BvdmVyLWhlYWRlclwiPjwvaDM+PGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPjwvZGl2PjwvZGl2Pid9KSxIZT1oKHt9LE5uLkRlZmF1bHRUeXBlLHtjb250ZW50OlwiKHN0cmluZ3xlbGVtZW50fGZ1bmN0aW9uKVwifSksV2U9XCJmYWRlXCIseGU9XCIucG9wb3Zlci1oZWFkZXJcIixVZT1cIi5wb3BvdmVyLWJvZHlcIixLZT17SElERTpcImhpZGVcIitrZSxISURERU46XCJoaWRkZW5cIitrZSxTSE9XOihNZT1cInNob3dcIikra2UsU0hPV046XCJzaG93blwiK2tlLElOU0VSVEVEOlwiaW5zZXJ0ZWRcIitrZSxDTElDSzpcImNsaWNrXCIra2UsRk9DVVNJTjpcImZvY3VzaW5cIitrZSxGT0NVU09VVDpcImZvY3Vzb3V0XCIra2UsTU9VU0VFTlRFUjpcIm1vdXNlZW50ZXJcIitrZSxNT1VTRUxFQVZFOlwibW91c2VsZWF2ZVwiK2tlfSxGZT1mdW5jdGlvbih0KXt2YXIgZSxuO2Z1bmN0aW9uIGkoKXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXN9bj10LChlPWkpLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSwoZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSkuX19wcm90b19fPW47dmFyIHI9aS5wcm90b3R5cGU7cmV0dXJuIHIuaXNXaXRoQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl8fHRoaXMuX2dldENvbnRlbnQoKX0sci5hZGRBdHRhY2htZW50Q2xhc3M9ZnVuY3Rpb24odCl7d2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLmFkZENsYXNzKExlK1wiLVwiK3QpfSxyLmdldFRpcEVsZW1lbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aXA9dGhpcy50aXB8fHdlKHRoaXMuY29uZmlnLnRlbXBsYXRlKVswXSx0aGlzLnRpcH0sci5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIHQ9d2UodGhpcy5nZXRUaXBFbGVtZW50KCkpO3RoaXMuc2V0RWxlbWVudENvbnRlbnQodC5maW5kKHhlKSx0aGlzLmdldFRpdGxlKCkpO3ZhciBlPXRoaXMuX2dldENvbnRlbnQoKTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiYoZT1lLmNhbGwodGhpcy5lbGVtZW50KSksdGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoVWUpLGUpLHQucmVtb3ZlQ2xhc3MoV2UrXCIgXCIrTWUpfSxyLl9nZXRDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLWNvbnRlbnRcIil8fHRoaXMuY29uZmlnLmNvbnRlbnR9LHIuX2NsZWFuVGlwQ2xhc3M9ZnVuY3Rpb24oKXt2YXIgdD13ZSh0aGlzLmdldFRpcEVsZW1lbnQoKSksZT10LmF0dHIoXCJjbGFzc1wiKS5tYXRjaChqZSk7bnVsbCE9PWUmJjA8ZS5sZW5ndGgmJnQucmVtb3ZlQ2xhc3MoZS5qb2luKFwiXCIpKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD13ZSh0aGlzKS5kYXRhKE9lKSxlPVwib2JqZWN0XCI9PXR5cGVvZiBuP246bnVsbDtpZigodHx8IS9kZXN0cm95fGhpZGUvLnRlc3QobikpJiYodHx8KHQ9bmV3IGkodGhpcyxlKSx3ZSh0aGlzKS5kYXRhKE9lLHQpKSxcInN0cmluZ1wiPT10eXBlb2Ygbikpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTt0W25dKCl9fSl9LG8oaSxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFJlfX0se2tleTpcIk5BTUVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTmV9fSx7a2V5OlwiREFUQV9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2V9fSx7a2V5OlwiRXZlbnRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gS2V9fSx7a2V5OlwiRVZFTlRfS0VZXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGtlfX0se2tleTpcIkRlZmF1bHRUeXBlXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEhlfX1dKSxpfShObiksd2UuZm5bTmVdPUZlLl9qUXVlcnlJbnRlcmZhY2Usd2UuZm5bTmVdLkNvbnN0cnVjdG9yPUZlLHdlLmZuW05lXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHdlLmZuW05lXT1QZSxGZS5falF1ZXJ5SW50ZXJmYWNlfSxGZSksa249KFFlPVwic2Nyb2xsc3B5XCIsWWU9XCIuXCIrKEJlPVwiYnMuc2Nyb2xsc3B5XCIpLEdlPShWZT1lKS5mbltRZV0scWU9e29mZnNldDoxMCxtZXRob2Q6XCJhdXRvXCIsdGFyZ2V0OlwiXCJ9LHplPXtvZmZzZXQ6XCJudW1iZXJcIixtZXRob2Q6XCJzdHJpbmdcIix0YXJnZXQ6XCIoc3RyaW5nfGVsZW1lbnQpXCJ9LFhlPXtBQ1RJVkFURTpcImFjdGl2YXRlXCIrWWUsU0NST0xMOlwic2Nyb2xsXCIrWWUsTE9BRF9EQVRBX0FQSTpcImxvYWRcIitZZStcIi5kYXRhLWFwaVwifSxKZT1cImRyb3Bkb3duLWl0ZW1cIixaZT1cImFjdGl2ZVwiLCRlPXtEQVRBX1NQWTonW2RhdGEtc3B5PVwic2Nyb2xsXCJdJyxBQ1RJVkU6XCIuYWN0aXZlXCIsTkFWX0xJU1RfR1JPVVA6XCIubmF2LCAubGlzdC1ncm91cFwiLE5BVl9MSU5LUzpcIi5uYXYtbGlua1wiLE5BVl9JVEVNUzpcIi5uYXYtaXRlbVwiLExJU1RfSVRFTVM6XCIubGlzdC1ncm91cC1pdGVtXCIsRFJPUERPV046XCIuZHJvcGRvd25cIixEUk9QRE9XTl9JVEVNUzpcIi5kcm9wZG93bi1pdGVtXCIsRFJPUERPV05fVE9HR0xFOlwiLmRyb3Bkb3duLXRvZ2dsZVwifSx0bj1cIm9mZnNldFwiLGVuPVwicG9zaXRpb25cIixubj1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCxlKXt2YXIgbj10aGlzO3RoaXMuX2VsZW1lbnQ9dCx0aGlzLl9zY3JvbGxFbGVtZW50PVwiQk9EWVwiPT09dC50YWdOYW1lP3dpbmRvdzp0LHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fc2VsZWN0b3I9dGhpcy5fY29uZmlnLnRhcmdldCtcIiBcIiskZS5OQVZfTElOS1MrXCIsXCIrdGhpcy5fY29uZmlnLnRhcmdldCtcIiBcIiskZS5MSVNUX0lURU1TK1wiLFwiK3RoaXMuX2NvbmZpZy50YXJnZXQrXCIgXCIrJGUuRFJPUERPV05fSVRFTVMsdGhpcy5fb2Zmc2V0cz1bXSx0aGlzLl90YXJnZXRzPVtdLHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHRoaXMuX3Njcm9sbEhlaWdodD0wLFZlKHRoaXMuX3Njcm9sbEVsZW1lbnQpLm9uKFhlLlNDUk9MTCxmdW5jdGlvbih0KXtyZXR1cm4gbi5fcHJvY2Vzcyh0KX0pLHRoaXMucmVmcmVzaCgpLHRoaXMuX3Byb2Nlc3MoKX12YXIgdD1uLnByb3RvdHlwZTtyZXR1cm4gdC5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuX3Njcm9sbEVsZW1lbnQ9PT10aGlzLl9zY3JvbGxFbGVtZW50LndpbmRvdz90bjplbixyPVwiYXV0b1wiPT09dGhpcy5fY29uZmlnLm1ldGhvZD90OnRoaXMuX2NvbmZpZy5tZXRob2Qscz1yPT09ZW4/dGhpcy5fZ2V0U2Nyb2xsVG9wKCk6MDt0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fc2Nyb2xsSGVpZ2h0PXRoaXMuX2dldFNjcm9sbEhlaWdodCgpLFZlLm1ha2VBcnJheShWZSh0aGlzLl9zZWxlY3RvcikpLm1hcChmdW5jdGlvbih0KXt2YXIgZSxuPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodCk7aWYobiYmKGU9VmUobilbMF0pLGUpe3ZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoaS53aWR0aHx8aS5oZWlnaHQpcmV0dXJuW1ZlKGUpW3JdKCkudG9wK3Msbl19cmV0dXJuIG51bGx9KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHR9KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0tZVswXX0pLmZvckVhY2goZnVuY3Rpb24odCl7ZS5fb2Zmc2V0cy5wdXNoKHRbMF0pLGUuX3RhcmdldHMucHVzaCh0WzFdKX0pfSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtWZS5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsQmUpLFZlKHRoaXMuX3Njcm9sbEVsZW1lbnQpLm9mZihZZSksdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX3Njcm9sbEVsZW1lbnQ9bnVsbCx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9zZWxlY3Rvcj1udWxsLHRoaXMuX29mZnNldHM9bnVsbCx0aGlzLl90YXJnZXRzPW51bGwsdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PW51bGx9LHQuX2dldENvbmZpZz1mdW5jdGlvbih0KXtpZihcInN0cmluZ1wiIT10eXBlb2YodD1oKHt9LHFlLHQpKS50YXJnZXQpe3ZhciBlPVZlKHQudGFyZ2V0KS5hdHRyKFwiaWRcIik7ZXx8KGU9Q24uZ2V0VUlEKFFlKSxWZSh0LnRhcmdldCkuYXR0cihcImlkXCIsZSkpLHQudGFyZ2V0PVwiI1wiK2V9cmV0dXJuIENuLnR5cGVDaGVja0NvbmZpZyhRZSx0LHplKSx0fSx0Ll9nZXRTY3JvbGxUb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2Nyb2xsRWxlbWVudD09PXdpbmRvdz90aGlzLl9zY3JvbGxFbGVtZW50LnBhZ2VZT2Zmc2V0OnRoaXMuX3Njcm9sbEVsZW1lbnQuc2Nyb2xsVG9wfSx0Ll9nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2Nyb2xsRWxlbWVudC5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSx0Ll9nZXRPZmZzZXRIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2Nyb2xsRWxlbWVudD09PXdpbmRvdz93aW5kb3cuaW5uZXJIZWlnaHQ6dGhpcy5fc2Nyb2xsRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHR9LHQuX3Byb2Nlc3M9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRTY3JvbGxUb3AoKSt0aGlzLl9jb25maWcub2Zmc2V0LGU9dGhpcy5fZ2V0U2Nyb2xsSGVpZ2h0KCksbj10aGlzLl9jb25maWcub2Zmc2V0K2UtdGhpcy5fZ2V0T2Zmc2V0SGVpZ2h0KCk7aWYodGhpcy5fc2Nyb2xsSGVpZ2h0IT09ZSYmdGhpcy5yZWZyZXNoKCksbjw9dCl7dmFyIGk9dGhpcy5fdGFyZ2V0c1t0aGlzLl90YXJnZXRzLmxlbmd0aC0xXTt0aGlzLl9hY3RpdmVUYXJnZXQhPT1pJiZ0aGlzLl9hY3RpdmF0ZShpKX1lbHNle2lmKHRoaXMuX2FjdGl2ZVRhcmdldCYmdDx0aGlzLl9vZmZzZXRzWzBdJiYwPHRoaXMuX29mZnNldHNbMF0pcmV0dXJuIHRoaXMuX2FjdGl2ZVRhcmdldD1udWxsLHZvaWQgdGhpcy5fY2xlYXIoKTtmb3IodmFyIHI9dGhpcy5fb2Zmc2V0cy5sZW5ndGg7ci0tOyl7dGhpcy5fYWN0aXZlVGFyZ2V0IT09dGhpcy5fdGFyZ2V0c1tyXSYmdD49dGhpcy5fb2Zmc2V0c1tyXSYmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0aGlzLl9vZmZzZXRzW3IrMV18fHQ8dGhpcy5fb2Zmc2V0c1tyKzFdKSYmdGhpcy5fYWN0aXZhdGUodGhpcy5fdGFyZ2V0c1tyXSl9fX0sdC5fYWN0aXZhdGU9ZnVuY3Rpb24oZSl7dGhpcy5fYWN0aXZlVGFyZ2V0PWUsdGhpcy5fY2xlYXIoKTt2YXIgdD10aGlzLl9zZWxlY3Rvci5zcGxpdChcIixcIik7dD10Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdCsnW2RhdGEtdGFyZ2V0PVwiJytlKydcIl0sJyt0KydbaHJlZj1cIicrZSsnXCJdJ30pO3ZhciBuPVZlKHQuam9pbihcIixcIikpO24uaGFzQ2xhc3MoSmUpPyhuLmNsb3Nlc3QoJGUuRFJPUERPV04pLmZpbmQoJGUuRFJPUERPV05fVE9HR0xFKS5hZGRDbGFzcyhaZSksbi5hZGRDbGFzcyhaZSkpOihuLmFkZENsYXNzKFplKSxuLnBhcmVudHMoJGUuTkFWX0xJU1RfR1JPVVApLnByZXYoJGUuTkFWX0xJTktTK1wiLCBcIiskZS5MSVNUX0lURU1TKS5hZGRDbGFzcyhaZSksbi5wYXJlbnRzKCRlLk5BVl9MSVNUX0dST1VQKS5wcmV2KCRlLk5BVl9JVEVNUykuY2hpbGRyZW4oJGUuTkFWX0xJTktTKS5hZGRDbGFzcyhaZSkpLFZlKHRoaXMuX3Njcm9sbEVsZW1lbnQpLnRyaWdnZXIoWGUuQUNUSVZBVEUse3JlbGF0ZWRUYXJnZXQ6ZX0pfSx0Ll9jbGVhcj1mdW5jdGlvbigpe1ZlKHRoaXMuX3NlbGVjdG9yKS5maWx0ZXIoJGUuQUNUSVZFKS5yZW1vdmVDbGFzcyhaZSl9LG4uX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9VmUodGhpcykuZGF0YShCZSk7aWYodHx8KHQ9bmV3IG4odGhpcyxcIm9iamVjdFwiPT10eXBlb2YgZSYmZSksVmUodGhpcykuZGF0YShCZSx0KSksXCJzdHJpbmdcIj09dHlwZW9mIGUpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0W2VdKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrZSsnXCInKTt0W2VdKCl9fSl9LG8obixudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19LHtrZXk6XCJEZWZhdWx0XCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHFlfX1dKSxufSgpLFZlKHdpbmRvdykub24oWGUuTE9BRF9EQVRBX0FQSSxmdW5jdGlvbigpe2Zvcih2YXIgdD1WZS5tYWtlQXJyYXkoVmUoJGUuREFUQV9TUFkpKSxlPXQubGVuZ3RoO2UtLTspe3ZhciBuPVZlKHRbZV0pO25uLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChuLG4uZGF0YSgpKX19KSxWZS5mbltRZV09bm4uX2pRdWVyeUludGVyZmFjZSxWZS5mbltRZV0uQ29uc3RydWN0b3I9bm4sVmUuZm5bUWVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gVmUuZm5bUWVdPUdlLG5uLl9qUXVlcnlJbnRlcmZhY2V9LG5uKSxQbj0ob249XCIuXCIrKHNuPVwiYnMudGFiXCIpLGFuPShybj1lKS5mbi50YWIsbG49e0hJREU6XCJoaWRlXCIrb24sSElEREVOOlwiaGlkZGVuXCIrb24sU0hPVzpcInNob3dcIitvbixTSE9XTjpcInNob3duXCIrb24sQ0xJQ0tfREFUQV9BUEk6XCJjbGlja1wiK29uK1wiLmRhdGEtYXBpXCJ9LGhuPVwiZHJvcGRvd24tbWVudVwiLGNuPVwiYWN0aXZlXCIsdW49XCJkaXNhYmxlZFwiLGZuPVwiZmFkZVwiLGRuPVwic2hvd1wiLF9uPVwiLmRyb3Bkb3duXCIsZ249XCIubmF2LCAubGlzdC1ncm91cFwiLG1uPVwiLmFjdGl2ZVwiLHBuPVwiPiBsaSA+IC5hY3RpdmVcIix2bj0nW2RhdGEtdG9nZ2xlPVwidGFiXCJdLCBbZGF0YS10b2dnbGU9XCJwaWxsXCJdLCBbZGF0YS10b2dnbGU9XCJsaXN0XCJdJyxFbj1cIi5kcm9wZG93bi10b2dnbGVcIix5bj1cIj4gLmRyb3Bkb3duLW1lbnUgLmFjdGl2ZVwiLFRuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuc2hvdz1mdW5jdGlvbigpe3ZhciBuPXRoaXM7aWYoISh0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZybih0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhjbil8fHJuKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKHVuKSkpe3ZhciB0LGksZT1ybih0aGlzLl9lbGVtZW50KS5jbG9zZXN0KGduKVswXSxyPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7aWYoZSl7dmFyIHM9XCJVTFwiPT09ZS5ub2RlTmFtZT9wbjptbjtpPShpPXJuLm1ha2VBcnJheShybihlKS5maW5kKHMpKSlbaS5sZW5ndGgtMV19dmFyIG89cm4uRXZlbnQobG4uSElERSx7cmVsYXRlZFRhcmdldDp0aGlzLl9lbGVtZW50fSksYT1ybi5FdmVudChsbi5TSE9XLHtyZWxhdGVkVGFyZ2V0Oml9KTtpZihpJiZybihpKS50cmlnZ2VyKG8pLHJuKHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoYSksIWEuaXNEZWZhdWx0UHJldmVudGVkKCkmJiFvLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtyJiYodD1ybihyKVswXSksdGhpcy5fYWN0aXZhdGUodGhpcy5fZWxlbWVudCxlKTt2YXIgbD1mdW5jdGlvbigpe3ZhciB0PXJuLkV2ZW50KGxuLkhJRERFTix7cmVsYXRlZFRhcmdldDpuLl9lbGVtZW50fSksZT1ybi5FdmVudChsbi5TSE9XTix7cmVsYXRlZFRhcmdldDppfSk7cm4oaSkudHJpZ2dlcih0KSxybihuLl9lbGVtZW50KS50cmlnZ2VyKGUpfTt0P3RoaXMuX2FjdGl2YXRlKHQsdC5wYXJlbnROb2RlLGwpOmwoKX19fSx0LmRpc3Bvc2U9ZnVuY3Rpb24oKXtybi5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsc24pLHRoaXMuX2VsZW1lbnQ9bnVsbH0sdC5fYWN0aXZhdGU9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMscj0oXCJVTFwiPT09ZS5ub2RlTmFtZT9ybihlKS5maW5kKHBuKTpybihlKS5jaGlsZHJlbihtbikpWzBdLHM9biYmciYmcm4ocikuaGFzQ2xhc3MoZm4pLG89ZnVuY3Rpb24oKXtyZXR1cm4gaS5fdHJhbnNpdGlvbkNvbXBsZXRlKHQscixuKX07aWYociYmcyl7dmFyIGE9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQocik7cm4ocikub25lKENuLlRSQU5TSVRJT05fRU5ELG8pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGEpfWVsc2UgbygpfSx0Ll90cmFuc2l0aW9uQ29tcGxldGU9ZnVuY3Rpb24odCxlLG4pe2lmKGUpe3JuKGUpLnJlbW92ZUNsYXNzKGRuK1wiIFwiK2NuKTt2YXIgaT1ybihlLnBhcmVudE5vZGUpLmZpbmQoeW4pWzBdO2kmJnJuKGkpLnJlbW92ZUNsYXNzKGNuKSxcInRhYlwiPT09ZS5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZlLnNldEF0dHJpYnV0ZShcImFyaWEtc2VsZWN0ZWRcIiwhMSl9aWYocm4odCkuYWRkQ2xhc3MoY24pLFwidGFiXCI9PT10LmdldEF0dHJpYnV0ZShcInJvbGVcIikmJnQuc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCEwKSxDbi5yZWZsb3codCkscm4odCkuYWRkQ2xhc3MoZG4pLHQucGFyZW50Tm9kZSYmcm4odC5wYXJlbnROb2RlKS5oYXNDbGFzcyhobikpe3ZhciByPXJuKHQpLmNsb3Nlc3QoX24pWzBdO3ImJnJuKHIpLmZpbmQoRW4pLmFkZENsYXNzKGNuKSx0LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwhMCl9biYmbigpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXJuKHRoaXMpLGU9dC5kYXRhKHNuKTtpZihlfHwoZT1uZXcgaSh0aGlzKSx0LmRhdGEoc24sZSkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZVtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7ZVtuXSgpfX0pfSxvKGksbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLGl9KCkscm4oZG9jdW1lbnQpLm9uKGxuLkNMSUNLX0RBVEFfQVBJLHZuLGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSxUbi5falF1ZXJ5SW50ZXJmYWNlLmNhbGwocm4odGhpcyksXCJzaG93XCIpfSkscm4uZm4udGFiPVRuLl9qUXVlcnlJbnRlcmZhY2Uscm4uZm4udGFiLkNvbnN0cnVjdG9yPVRuLHJuLmZuLnRhYi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHJuLmZuLnRhYj1hbixUbi5falF1ZXJ5SW50ZXJmYWNlfSxUbik7IWZ1bmN0aW9uKHQpe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeS4galF1ZXJ5IG11c3QgYmUgaW5jbHVkZWQgYmVmb3JlIEJvb3RzdHJhcCdzIEphdmFTY3JpcHQuXCIpO3ZhciBlPXQuZm4uanF1ZXJ5LnNwbGl0KFwiIFwiKVswXS5zcGxpdChcIi5cIik7aWYoZVswXTwyJiZlWzFdPDl8fDE9PT1lWzBdJiY5PT09ZVsxXSYmZVsyXTwxfHw0PD1lWzBdKXRocm93IG5ldyBFcnJvcihcIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgYXQgbGVhc3QgalF1ZXJ5IHYxLjkuMSBidXQgbGVzcyB0aGFuIHY0LjAuMFwiKX0oZSksdC5VdGlsPUNuLHQuQWxlcnQ9SW4sdC5CdXR0b249QW4sdC5DYXJvdXNlbD1Ebix0LkNvbGxhcHNlPWJuLHQuRHJvcGRvd249U24sdC5Nb2RhbD13bix0LlBvcG92ZXI9T24sdC5TY3JvbGxzcHk9a24sdC5UYWI9UG4sdC5Ub29sdGlwPU5uLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pfSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ib290c3RyYXAubWluLmpzLm1hcCIsIi8vIGh0dHBzOi8vZDNqcy5vcmcgVmVyc2lvbiA1LjUuMC4gQ29weXJpZ2h0IDIwMTggTWlrZSBCb3N0b2NrLlxuKGZ1bmN0aW9uKHQsbil7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/bihleHBvcnRzKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtcImV4cG9ydHNcIl0sbik6bih0LmQzPXQuZDN8fHt9KX0pKHRoaXMsZnVuY3Rpb24odCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gbih0LG4pe3JldHVybiB0PG4/LTE6dD5uPzE6dD49bj8wOk5hTn1mdW5jdGlvbiBlKHQpe3JldHVybiAxPT09dC5sZW5ndGgmJih0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVybiBuKHQoZSkscil9fSh0KSkse2xlZnQ6ZnVuY3Rpb24obixlLHIsaSl7Zm9yKG51bGw9PXImJihyPTApLG51bGw9PWkmJihpPW4ubGVuZ3RoKTtyPGk7KXt2YXIgbz1yK2k+Pj4xO3QobltvXSxlKTwwP3I9bysxOmk9b31yZXR1cm4gcn0scmlnaHQ6ZnVuY3Rpb24obixlLHIsaSl7Zm9yKG51bGw9PXImJihyPTApLG51bGw9PWkmJihpPW4ubGVuZ3RoKTtyPGk7KXt2YXIgbz1yK2k+Pj4xO3QobltvXSxlKT4wP2k9bzpyPW8rMX1yZXR1cm4gcn19fWZ1bmN0aW9uIHIodCxuKXtyZXR1cm5bdCxuXX1mdW5jdGlvbiBpKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9ZnVuY3Rpb24gbyh0LG4pe3ZhciBlLHIsbz10Lmxlbmd0aCxhPTAsdT0tMSxmPTAsYz0wO2lmKG51bGw9PW4pZm9yKDsrK3U8bzspaXNOYU4oZT1pKHRbdV0pKXx8KGMrPShyPWUtZikqKGUtKGYrPXIvKythKSkpO2Vsc2UgZm9yKDsrK3U8bzspaXNOYU4oZT1pKG4odFt1XSx1LHQpKSl8fChjKz0ocj1lLWYpKihlLShmKz1yLysrYSkpKTtpZihhPjEpcmV0dXJuIGMvKGEtMSl9ZnVuY3Rpb24gYSh0LG4pe3ZhciBlPW8odCxuKTtyZXR1cm4gZT9NYXRoLnNxcnQoZSk6ZX1mdW5jdGlvbiB1KHQsbil7dmFyIGUscixpLG89dC5sZW5ndGgsYT0tMTtpZihudWxsPT1uKXtmb3IoOysrYTxvOylpZihudWxsIT0oZT10W2FdKSYmZT49ZSlmb3Iocj1pPWU7KythPG87KW51bGwhPShlPXRbYV0pJiYocj5lJiYocj1lKSxpPGUmJihpPWUpKX1lbHNlIGZvcig7KythPG87KWlmKG51bGwhPShlPW4odFthXSxhLHQpKSYmZT49ZSlmb3Iocj1pPWU7KythPG87KW51bGwhPShlPW4odFthXSxhLHQpKSYmKHI+ZSYmKHI9ZSksaTxlJiYoaT1lKSk7cmV0dXJuW3IsaV19ZnVuY3Rpb24gZih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdH1mdW5jdGlvbiBzKHQsbixlKXt0PSt0LG49K24sZT0oaT1hcmd1bWVudHMubGVuZ3RoKTwyPyhuPXQsdD0wLDEpOmk8Mz8xOitlO2Zvcih2YXIgcj0tMSxpPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKG4tdCkvZSkpLG89bmV3IEFycmF5KGkpOysrcjxpOylvW3JdPXQrciplO3JldHVybiBvfWZ1bmN0aW9uIGwodCxuLGUpe3ZhciByLGksbyxhLHU9LTE7aWYobj0rbix0PSt0LGU9K2UsdD09PW4mJmU+MClyZXR1cm5bdF07aWYoKHI9bjx0KSYmKGk9dCx0PW4sbj1pKSwwPT09KGE9aCh0LG4sZSkpfHwhaXNGaW5pdGUoYSkpcmV0dXJuW107aWYoYT4wKWZvcih0PU1hdGguY2VpbCh0L2EpLG49TWF0aC5mbG9vcihuL2EpLG89bmV3IEFycmF5KGk9TWF0aC5jZWlsKG4tdCsxKSk7Kyt1PGk7KW9bdV09KHQrdSkqYTtlbHNlIGZvcih0PU1hdGguZmxvb3IodCphKSxuPU1hdGguY2VpbChuKmEpLG89bmV3IEFycmF5KGk9TWF0aC5jZWlsKHQtbisxKSk7Kyt1PGk7KW9bdV09KHQtdSkvYTtyZXR1cm4gciYmby5yZXZlcnNlKCksb31mdW5jdGlvbiBoKHQsbixlKXt2YXIgcj0obi10KS9NYXRoLm1heCgwLGUpLGk9TWF0aC5mbG9vcihNYXRoLmxvZyhyKS9NYXRoLkxOMTApLG89ci9NYXRoLnBvdygxMCxpKTtyZXR1cm4gaT49MD8obz49aXM/MTA6bz49b3M/NTpvPj1hcz8yOjEpKk1hdGgucG93KDEwLGkpOi1NYXRoLnBvdygxMCwtaSkvKG8+PWlzPzEwOm8+PW9zPzU6bz49YXM/MjoxKX1mdW5jdGlvbiBkKHQsbixlKXt2YXIgcj1NYXRoLmFicyhuLXQpL01hdGgubWF4KDAsZSksaT1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKHIpL01hdGguTE4xMCkpLG89ci9pO3JldHVybiBvPj1pcz9pKj0xMDpvPj1vcz9pKj01Om8+PWFzJiYoaSo9Miksbjx0Py1pOml9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gTWF0aC5jZWlsKE1hdGgubG9nKHQubGVuZ3RoKS9NYXRoLkxOMikrMX1mdW5jdGlvbiB2KHQsbixlKXtpZihudWxsPT1lJiYoZT1pKSxyPXQubGVuZ3RoKXtpZigobj0rbik8PTB8fHI8MilyZXR1cm4rZSh0WzBdLDAsdCk7aWYobj49MSlyZXR1cm4rZSh0W3ItMV0sci0xLHQpO3ZhciByLG89KHItMSkqbixhPU1hdGguZmxvb3IobyksdT0rZSh0W2FdLGEsdCk7cmV0dXJuIHUrKCtlKHRbYSsxXSxhKzEsdCktdSkqKG8tYSl9fWZ1bmN0aW9uIGcodCxuKXt2YXIgZSxyLGk9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1uKXtmb3IoOysrbzxpOylpZihudWxsIT0oZT10W29dKSYmZT49ZSlmb3Iocj1lOysrbzxpOyludWxsIT0oZT10W29dKSYmZT5yJiYocj1lKX1lbHNlIGZvcig7KytvPGk7KWlmKG51bGwhPShlPW4odFtvXSxvLHQpKSYmZT49ZSlmb3Iocj1lOysrbzxpOyludWxsIT0oZT1uKHRbb10sbyx0KSkmJmU+ciYmKHI9ZSk7cmV0dXJuIHJ9ZnVuY3Rpb24geSh0KXtmb3IodmFyIG4sZSxyLGk9dC5sZW5ndGgsbz0tMSxhPTA7KytvPGk7KWErPXRbb10ubGVuZ3RoO2ZvcihlPW5ldyBBcnJheShhKTstLWk+PTA7KWZvcihuPShyPXRbaV0pLmxlbmd0aDstLW4+PTA7KWVbLS1hXT1yW25dO3JldHVybiBlfWZ1bmN0aW9uIF8odCxuKXt2YXIgZSxyLGk9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1uKXtmb3IoOysrbzxpOylpZihudWxsIT0oZT10W29dKSYmZT49ZSlmb3Iocj1lOysrbzxpOyludWxsIT0oZT10W29dKSYmcj5lJiYocj1lKX1lbHNlIGZvcig7KytvPGk7KWlmKG51bGwhPShlPW4odFtvXSxvLHQpKSYmZT49ZSlmb3Iocj1lOysrbzxpOyludWxsIT0oZT1uKHRbb10sbyx0KSkmJnI+ZSYmKHI9ZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYih0KXtpZighKGk9dC5sZW5ndGgpKXJldHVybltdO2Zvcih2YXIgbj0tMSxlPV8odCxtKSxyPW5ldyBBcnJheShlKTsrK248ZTspZm9yKHZhciBpLG89LTEsYT1yW25dPW5ldyBBcnJheShpKTsrK288aTspYVtvXT10W29dW25dO3JldHVybiByfWZ1bmN0aW9uIG0odCl7cmV0dXJuIHQubGVuZ3RofWZ1bmN0aW9uIHgodCl7cmV0dXJuIHR9ZnVuY3Rpb24gdyh0KXtyZXR1cm5cInRyYW5zbGF0ZShcIisodCsuNSkrXCIsMClcIn1mdW5jdGlvbiBNKHQpe3JldHVyblwidHJhbnNsYXRlKDAsXCIrKHQrLjUpK1wiKVwifWZ1bmN0aW9uIEEoKXtyZXR1cm4hdGhpcy5fX2F4aXN9ZnVuY3Rpb24gVCh0LG4pe2Z1bmN0aW9uIGUoZSl7dmFyIGg9bnVsbD09aT9uLnRpY2tzP24udGlja3MuYXBwbHkobixyKTpuLmRvbWFpbigpOmksZD1udWxsPT1vP24udGlja0Zvcm1hdD9uLnRpY2tGb3JtYXQuYXBwbHkobixyKTp4Om8scD1NYXRoLm1heChhLDApK2Ysdj1uLnJhbmdlKCksZz0rdlswXSsuNSx5PSt2W3YubGVuZ3RoLTFdKy41LF89KG4uYmFuZHdpZHRoP2Z1bmN0aW9uKHQpe3ZhciBuPU1hdGgubWF4KDAsdC5iYW5kd2lkdGgoKS0xKS8yO3JldHVybiB0LnJvdW5kKCkmJihuPU1hdGgucm91bmQobikpLGZ1bmN0aW9uKGUpe3JldHVybit0KGUpK259fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuK3Qobil9fSkobi5jb3B5KCkpLGI9ZS5zZWxlY3Rpb24/ZS5zZWxlY3Rpb24oKTplLG09Yi5zZWxlY3RBbGwoXCIuZG9tYWluXCIpLmRhdGEoW251bGxdKSx3PWIuc2VsZWN0QWxsKFwiLnRpY2tcIikuZGF0YShoLG4pLm9yZGVyKCksTT13LmV4aXQoKSxUPXcuZW50ZXIoKS5hcHBlbmQoXCJnXCIpLmF0dHIoXCJjbGFzc1wiLFwidGlja1wiKSxOPXcuc2VsZWN0KFwibGluZVwiKSxTPXcuc2VsZWN0KFwidGV4dFwiKTttPW0ubWVyZ2UobS5lbnRlcigpLmluc2VydChcInBhdGhcIixcIi50aWNrXCIpLmF0dHIoXCJjbGFzc1wiLFwiZG9tYWluXCIpLmF0dHIoXCJzdHJva2VcIixcIiMwMDBcIikpLHc9dy5tZXJnZShUKSxOPU4ubWVyZ2UoVC5hcHBlbmQoXCJsaW5lXCIpLmF0dHIoXCJzdHJva2VcIixcIiMwMDBcIikuYXR0cihzK1wiMlwiLGMqYSkpLFM9Uy5tZXJnZShULmFwcGVuZChcInRleHRcIikuYXR0cihcImZpbGxcIixcIiMwMDBcIikuYXR0cihzLGMqcCkuYXR0cihcImR5XCIsdD09PWZzP1wiMGVtXCI6dD09PXNzP1wiMC43MWVtXCI6XCIwLjMyZW1cIikpLGUhPT1iJiYobT1tLnRyYW5zaXRpb24oZSksdz13LnRyYW5zaXRpb24oZSksTj1OLnRyYW5zaXRpb24oZSksUz1TLnRyYW5zaXRpb24oZSksTT1NLnRyYW5zaXRpb24oZSkuYXR0cihcIm9wYWNpdHlcIixocykuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PV8odCkpP2wodCk6dGhpcy5nZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIil9KSxULmF0dHIoXCJvcGFjaXR5XCIsaHMpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXt2YXIgbj10aGlzLnBhcmVudE5vZGUuX19heGlzO3JldHVybiBsKG4mJmlzRmluaXRlKG49bih0KSk/bjpfKHQpKX0pKSxNLnJlbW92ZSgpLG0uYXR0cihcImRcIix0PT09bHN8fHQ9PWNzP1wiTVwiK2MqdStcIixcIitnK1wiSDAuNVZcIit5K1wiSFwiK2MqdTpcIk1cIitnK1wiLFwiK2MqdStcIlYwLjVIXCIreStcIlZcIitjKnUpLHcuYXR0cihcIm9wYWNpdHlcIiwxKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7cmV0dXJuIGwoXyh0KSl9KSxOLmF0dHIocytcIjJcIixjKmEpLFMuYXR0cihzLGMqcCkudGV4dChkKSxiLmZpbHRlcihBKS5hdHRyKFwiZmlsbFwiLFwibm9uZVwiKS5hdHRyKFwiZm9udC1zaXplXCIsMTApLmF0dHIoXCJmb250LWZhbWlseVwiLFwic2Fucy1zZXJpZlwiKS5hdHRyKFwidGV4dC1hbmNob3JcIix0PT09Y3M/XCJzdGFydFwiOnQ9PT1scz9cImVuZFwiOlwibWlkZGxlXCIpLGIuZWFjaChmdW5jdGlvbigpe3RoaXMuX19heGlzPV99KX12YXIgcj1bXSxpPW51bGwsbz1udWxsLGE9Nix1PTYsZj0zLGM9dD09PWZzfHx0PT09bHM/LTE6MSxzPXQ9PT1sc3x8dD09PWNzP1wieFwiOlwieVwiLGw9dD09PWZzfHx0PT09c3M/dzpNO3JldHVybiBlLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZSk6bn0sZS50aWNrcz1mdW5jdGlvbigpe3JldHVybiByPXVzLmNhbGwoYXJndW1lbnRzKSxlfSxlLnRpY2tBcmd1bWVudHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09dD9bXTp1cy5jYWxsKHQpLGUpOnIuc2xpY2UoKX0sZS50aWNrVmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/bnVsbDp1cy5jYWxsKHQpLGUpOmkmJmkuc2xpY2UoKX0sZS50aWNrRm9ybWF0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQsZSk6b30sZS50aWNrU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT11PSt0LGUpOmF9LGUudGlja1NpemVJbm5lcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxlKTphfSxlLnRpY2tTaXplT3V0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9K3QsZSk6dX0sZS50aWNrUGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdCxlKTpmfSxlfWZ1bmN0aW9uIE4oKXtmb3IodmFyIHQsbj0wLGU9YXJndW1lbnRzLmxlbmd0aCxyPXt9O248ZTsrK24pe2lmKCEodD1hcmd1bWVudHNbbl0rXCJcIil8fHQgaW4gcil0aHJvdyBuZXcgRXJyb3IoXCJpbGxlZ2FsIHR5cGU6IFwiK3QpO3JbdF09W119cmV0dXJuIG5ldyBTKHIpfWZ1bmN0aW9uIFModCl7dGhpcy5fPXR9ZnVuY3Rpb24gRSh0LG4sZSl7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7KytyKWlmKHRbcl0ubmFtZT09PW4pe3Rbcl09ZHMsdD10LnNsaWNlKDAscikuY29uY2F0KHQuc2xpY2UocisxKSk7YnJlYWt9cmV0dXJuIG51bGwhPWUmJnQucHVzaCh7bmFtZTpuLHZhbHVlOmV9KSx0fWZ1bmN0aW9uIGsodCl7dmFyIG49dCs9XCJcIixlPW4uaW5kZXhPZihcIjpcIik7cmV0dXJuIGU+PTAmJlwieG1sbnNcIiE9PShuPXQuc2xpY2UoMCxlKSkmJih0PXQuc2xpY2UoZSsxKSksdnMuaGFzT3duUHJvcGVydHkobik/e3NwYWNlOnZzW25dLGxvY2FsOnR9OnR9ZnVuY3Rpb24gQyh0KXt2YXIgbj1rKHQpO3JldHVybihuLmxvY2FsP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLm93bmVyRG9jdW1lbnQsZT10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gZT09PXBzJiZuLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1wcz9uLmNyZWF0ZUVsZW1lbnQodCk6bi5jcmVhdGVFbGVtZW50TlMoZSx0KX19KShuKX1mdW5jdGlvbiBQKCl7fWZ1bmN0aW9uIHoodCl7cmV0dXJuIG51bGw9PXQ/UDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3IodCl9fWZ1bmN0aW9uIFIoKXtyZXR1cm5bXX1mdW5jdGlvbiBMKHQpe3JldHVybiBudWxsPT10P1I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsKHQpfX1mdW5jdGlvbiBEKHQpe3JldHVybiBuZXcgQXJyYXkodC5sZW5ndGgpfWZ1bmN0aW9uIFUodCxuKXt0aGlzLm93bmVyRG9jdW1lbnQ9dC5vd25lckRvY3VtZW50LHRoaXMubmFtZXNwYWNlVVJJPXQubmFtZXNwYWNlVVJJLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wYXJlbnQ9dCx0aGlzLl9fZGF0YV9fPW59ZnVuY3Rpb24gcSh0LG4sZSxyLGksbyl7Zm9yKHZhciBhLHU9MCxmPW4ubGVuZ3RoLGM9by5sZW5ndGg7dTxjOysrdSkoYT1uW3VdKT8oYS5fX2RhdGFfXz1vW3VdLHJbdV09YSk6ZVt1XT1uZXcgVSh0LG9bdV0pO2Zvcig7dTxmOysrdSkoYT1uW3VdKSYmKGlbdV09YSl9ZnVuY3Rpb24gTyh0LG4sZSxyLGksbyxhKXt2YXIgdSxmLGMscz17fSxsPW4ubGVuZ3RoLGg9by5sZW5ndGgsZD1uZXcgQXJyYXkobCk7Zm9yKHU9MDt1PGw7Kyt1KShmPW5bdV0pJiYoZFt1XT1jPW1zK2EuY2FsbChmLGYuX19kYXRhX18sdSxuKSxjIGluIHM/aVt1XT1mOnNbY109Zik7Zm9yKHU9MDt1PGg7Kyt1KShmPXNbYz1tcythLmNhbGwodCxvW3VdLHUsbyldKT8oclt1XT1mLGYuX19kYXRhX189b1t1XSxzW2NdPW51bGwpOmVbdV09bmV3IFUodCxvW3VdKTtmb3IodT0wO3U8bDsrK3UpKGY9blt1XSkmJnNbZFt1XV09PT1mJiYoaVt1XT1mKX1mdW5jdGlvbiBZKHQsbil7cmV0dXJuIHQ8bj8tMTp0Pm4/MTp0Pj1uPzA6TmFOfWZ1bmN0aW9uIEIodCl7cmV0dXJuIHQub3duZXJEb2N1bWVudCYmdC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx0LmRvY3VtZW50JiZ0fHx0LmRlZmF1bHRWaWV3fWZ1bmN0aW9uIEYodCxuKXtyZXR1cm4gdC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG4pfHxCKHQpLmdldENvbXB1dGVkU3R5bGUodCxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKG4pfWZ1bmN0aW9uIEkodCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxccysvKX1mdW5jdGlvbiBqKHQpe3JldHVybiB0LmNsYXNzTGlzdHx8bmV3IEgodCl9ZnVuY3Rpb24gSCh0KXt0aGlzLl9ub2RlPXQsdGhpcy5fbmFtZXM9SSh0LmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwiKX1mdW5jdGlvbiBYKHQsbil7Zm9yKHZhciBlPWoodCkscj0tMSxpPW4ubGVuZ3RoOysrcjxpOyllLmFkZChuW3JdKX1mdW5jdGlvbiBHKHQsbil7Zm9yKHZhciBlPWoodCkscj0tMSxpPW4ubGVuZ3RoOysrcjxpOyllLnJlbW92ZShuW3JdKX1mdW5jdGlvbiBWKCl7dGhpcy50ZXh0Q29udGVudD1cIlwifWZ1bmN0aW9uICQoKXt0aGlzLmlubmVySFRNTD1cIlwifWZ1bmN0aW9uIFcoKXt0aGlzLm5leHRTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcyl9ZnVuY3Rpb24gWigpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIFEoKXtyZXR1cm4gbnVsbH1mdW5jdGlvbiBKKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gSygpe3JldHVybiB0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuY2xvbmVOb2RlKCExKSx0aGlzLm5leHRTaWJsaW5nKX1mdW5jdGlvbiB0dCgpe3JldHVybiB0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuY2xvbmVOb2RlKCEwKSx0aGlzLm5leHRTaWJsaW5nKX1mdW5jdGlvbiBudCh0LG4sZSl7cmV0dXJuIHQ9ZXQodCxuLGUpLGZ1bmN0aW9uKG4pe3ZhciBlPW4ucmVsYXRlZFRhcmdldDtlJiYoZT09PXRoaXN8fDgmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHQuY2FsbCh0aGlzLG4pfX1mdW5jdGlvbiBldChuLGUscil7cmV0dXJuIGZ1bmN0aW9uKGkpe3ZhciBvPXQuZXZlbnQ7dC5ldmVudD1pO3RyeXtuLmNhbGwodGhpcyx0aGlzLl9fZGF0YV9fLGUscil9ZmluYWxseXt0LmV2ZW50PW99fX1mdW5jdGlvbiBydCh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLl9fb247aWYobil7Zm9yKHZhciBlLHI9MCxpPS0xLG89bi5sZW5ndGg7cjxvOysrcillPW5bcl0sdC50eXBlJiZlLnR5cGUhPT10LnR5cGV8fGUubmFtZSE9PXQubmFtZT9uWysraV09ZTp0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZS50eXBlLGUubGlzdGVuZXIsZS5jYXB0dXJlKTsrK2k/bi5sZW5ndGg9aTpkZWxldGUgdGhpcy5fX29ufX19ZnVuY3Rpb24gaXQodCxuLGUpe3ZhciByPXhzLmhhc093blByb3BlcnR5KHQudHlwZSk/bnQ6ZXQ7cmV0dXJuIGZ1bmN0aW9uKGksbyxhKXt2YXIgdSxmPXRoaXMuX19vbixjPXIobixvLGEpO2lmKGYpZm9yKHZhciBzPTAsbD1mLmxlbmd0aDtzPGw7KytzKWlmKCh1PWZbc10pLnR5cGU9PT10LnR5cGUmJnUubmFtZT09PXQubmFtZSlyZXR1cm4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHUudHlwZSx1Lmxpc3RlbmVyLHUuY2FwdHVyZSksdGhpcy5hZGRFdmVudExpc3RlbmVyKHUudHlwZSx1Lmxpc3RlbmVyPWMsdS5jYXB0dXJlPWUpLHZvaWQodS52YWx1ZT1uKTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIodC50eXBlLGMsZSksdT17dHlwZTp0LnR5cGUsbmFtZTp0Lm5hbWUsdmFsdWU6bixsaXN0ZW5lcjpjLGNhcHR1cmU6ZX0sZj9mLnB1c2godSk6dGhpcy5fX29uPVt1XX19ZnVuY3Rpb24gb3QobixlLHIsaSl7dmFyIG89dC5ldmVudDtuLnNvdXJjZUV2ZW50PXQuZXZlbnQsdC5ldmVudD1uO3RyeXtyZXR1cm4gZS5hcHBseShyLGkpfWZpbmFsbHl7dC5ldmVudD1vfX1mdW5jdGlvbiBhdCh0LG4sZSl7dmFyIHI9Qih0KSxpPXIuQ3VzdG9tRXZlbnQ7XCJmdW5jdGlvblwiPT10eXBlb2YgaT9pPW5ldyBpKG4sZSk6KGk9ci5kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpLGU/KGkuaW5pdEV2ZW50KG4sZS5idWJibGVzLGUuY2FuY2VsYWJsZSksaS5kZXRhaWw9ZS5kZXRhaWwpOmkuaW5pdEV2ZW50KG4sITEsITEpKSx0LmRpc3BhdGNoRXZlbnQoaSl9ZnVuY3Rpb24gdXQodCxuKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPW59ZnVuY3Rpb24gZnQoKXtyZXR1cm4gbmV3IHV0KFtbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XV0sd3MpfWZ1bmN0aW9uIGN0KHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P25ldyB1dChbW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodCldXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IHV0KFtbdF1dLHdzKX1mdW5jdGlvbiBzdCgpe3JldHVybiBuZXcgbHR9ZnVuY3Rpb24gbHQoKXt0aGlzLl89XCJAXCIrKCsrTXMpLnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBodCgpe2Zvcih2YXIgbixlPXQuZXZlbnQ7bj1lLnNvdXJjZUV2ZW50OyllPW47cmV0dXJuIGV9ZnVuY3Rpb24gZHQodCxuKXt2YXIgZT10Lm93bmVyU1ZHRWxlbWVudHx8dDtpZihlLmNyZWF0ZVNWR1BvaW50KXt2YXIgcj1lLmNyZWF0ZVNWR1BvaW50KCk7cmV0dXJuIHIueD1uLmNsaWVudFgsci55PW4uY2xpZW50WSxyPXIubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSxbci54LHIueV19dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bbi5jbGllbnRYLWkubGVmdC10LmNsaWVudExlZnQsbi5jbGllbnRZLWkudG9wLXQuY2xpZW50VG9wXX1mdW5jdGlvbiBwdCh0KXt2YXIgbj1odCgpO3JldHVybiBuLmNoYW5nZWRUb3VjaGVzJiYobj1uLmNoYW5nZWRUb3VjaGVzWzBdKSxkdCh0LG4pfWZ1bmN0aW9uIHZ0KHQsbixlKXthcmd1bWVudHMubGVuZ3RoPDMmJihlPW4sbj1odCgpLmNoYW5nZWRUb3VjaGVzKTtmb3IodmFyIHIsaT0wLG89bj9uLmxlbmd0aDowO2k8bzsrK2kpaWYoKHI9bltpXSkuaWRlbnRpZmllcj09PWUpcmV0dXJuIGR0KHQscik7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZ3QoKXt0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIHl0KCl7dC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpLHQuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gX3QodCl7dmFyIG49dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsZT1jdCh0KS5vbihcImRyYWdzdGFydC5kcmFnXCIseXQsITApO1wib25zZWxlY3RzdGFydFwiaW4gbj9lLm9uKFwic2VsZWN0c3RhcnQuZHJhZ1wiLHl0LCEwKToobi5fX25vc2VsZWN0PW4uc3R5bGUuTW96VXNlclNlbGVjdCxuLnN0eWxlLk1velVzZXJTZWxlY3Q9XCJub25lXCIpfWZ1bmN0aW9uIGJ0KHQsbil7dmFyIGU9dC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQscj1jdCh0KS5vbihcImRyYWdzdGFydC5kcmFnXCIsbnVsbCk7biYmKHIub24oXCJjbGljay5kcmFnXCIseXQsITApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLm9uKFwiY2xpY2suZHJhZ1wiLG51bGwpfSwwKSksXCJvbnNlbGVjdHN0YXJ0XCJpbiBlP3Iub24oXCJzZWxlY3RzdGFydC5kcmFnXCIsbnVsbCk6KGUuc3R5bGUuTW96VXNlclNlbGVjdD1lLl9fbm9zZWxlY3QsZGVsZXRlIGUuX19ub3NlbGVjdCl9ZnVuY3Rpb24gbXQodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHh0KHQsbixlLHIsaSxvLGEsdSxmLGMpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy5zdWJqZWN0PWUsdGhpcy5pZGVudGlmaWVyPXIsdGhpcy5hY3RpdmU9aSx0aGlzLng9byx0aGlzLnk9YSx0aGlzLmR4PXUsdGhpcy5keT1mLHRoaXMuXz1jfWZ1bmN0aW9uIHd0KCl7cmV0dXJuIXQuZXZlbnQuYnV0dG9ufWZ1bmN0aW9uIE10KCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX1mdW5jdGlvbiBBdChuKXtyZXR1cm4gbnVsbD09bj97eDp0LmV2ZW50LngseTp0LmV2ZW50Lnl9Om59ZnVuY3Rpb24gVHQoKXtyZXR1cm5cIm9udG91Y2hzdGFydFwiaW4gdGhpc31mdW5jdGlvbiBOdCh0LG4sZSl7dC5wcm90b3R5cGU9bi5wcm90b3R5cGU9ZSxlLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gU3QodCxuKXt2YXIgZT1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIHIgaW4gbillW3JdPW5bcl07cmV0dXJuIGV9ZnVuY3Rpb24gRXQoKXt9ZnVuY3Rpb24ga3QodCl7dmFyIG47cmV0dXJuIHQ9KHQrXCJcIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKG49U3MuZXhlYyh0KSk/KG49cGFyc2VJbnQoblsxXSwxNiksbmV3IEx0KG4+PjgmMTV8bj4+NCYyNDAsbj4+NCYxNXwyNDAmbiwoMTUmbik8PDR8MTUmbiwxKSk6KG49RXMuZXhlYyh0KSk/Q3QocGFyc2VJbnQoblsxXSwxNikpOihuPWtzLmV4ZWModCkpP25ldyBMdChuWzFdLG5bMl0sblszXSwxKToobj1Dcy5leGVjKHQpKT9uZXcgTHQoMjU1Km5bMV0vMTAwLDI1NSpuWzJdLzEwMCwyNTUqblszXS8xMDAsMSk6KG49UHMuZXhlYyh0KSk/UHQoblsxXSxuWzJdLG5bM10sbls0XSk6KG49enMuZXhlYyh0KSk/UHQoMjU1Km5bMV0vMTAwLDI1NSpuWzJdLzEwMCwyNTUqblszXS8xMDAsbls0XSk6KG49UnMuZXhlYyh0KSk/VXQoblsxXSxuWzJdLzEwMCxuWzNdLzEwMCwxKToobj1Mcy5leGVjKHQpKT9VdChuWzFdLG5bMl0vMTAwLG5bM10vMTAwLG5bNF0pOkRzLmhhc093blByb3BlcnR5KHQpP0N0KERzW3RdKTpcInRyYW5zcGFyZW50XCI9PT10P25ldyBMdChOYU4sTmFOLE5hTiwwKTpudWxsfWZ1bmN0aW9uIEN0KHQpe3JldHVybiBuZXcgTHQodD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LDEpfWZ1bmN0aW9uIFB0KHQsbixlLHIpe3JldHVybiByPD0wJiYodD1uPWU9TmFOKSxuZXcgTHQodCxuLGUscil9ZnVuY3Rpb24genQodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBFdHx8KHQ9a3QodCkpLHQ/KHQ9dC5yZ2IoKSxuZXcgTHQodC5yLHQuZyx0LmIsdC5vcGFjaXR5KSk6bmV3IEx0fWZ1bmN0aW9uIFJ0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD96dCh0KTpuZXcgTHQodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIEx0KHQsbixlLHIpe3RoaXMucj0rdCx0aGlzLmc9K24sdGhpcy5iPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBEdCh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj9cIjBcIjpcIlwiKSt0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBVdCh0LG4sZSxyKXtyZXR1cm4gcjw9MD90PW49ZT1OYU46ZTw9MHx8ZT49MT90PW49TmFOOm48PTAmJih0PU5hTiksbmV3IE90KHQsbixlLHIpfWZ1bmN0aW9uIHF0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgT3QpcmV0dXJuIG5ldyBPdCh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBFdHx8KHQ9a3QodCkpLCF0KXJldHVybiBuZXcgT3Q7aWYodCBpbnN0YW5jZW9mIE90KXJldHVybiB0O3ZhciBuPSh0PXQucmdiKCkpLnIvMjU1LGU9dC5nLzI1NSxyPXQuYi8yNTUsaT1NYXRoLm1pbihuLGUsciksbz1NYXRoLm1heChuLGUsciksYT1OYU4sdT1vLWksZj0obytpKS8yO3JldHVybiB1PyhhPW49PT1vPyhlLXIpL3UrNiooZTxyKTplPT09bz8oci1uKS91KzI6KG4tZSkvdSs0LHUvPWY8LjU/bytpOjItby1pLGEqPTYwKTp1PWY+MCYmZjwxPzA6YSxuZXcgT3QoYSx1LGYsdC5vcGFjaXR5KX0odCk6bmV3IE90KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBPdCh0LG4sZSxyKXt0aGlzLmg9K3QsdGhpcy5zPStuLHRoaXMubD0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24gWXQodCxuLGUpe3JldHVybiAyNTUqKHQ8NjA/bisoZS1uKSp0LzYwOnQ8MTgwP2U6dDwyNDA/bisoZS1uKSooMjQwLXQpLzYwOm4pfWZ1bmN0aW9uIEJ0KHQpe2lmKHQgaW5zdGFuY2VvZiBJdClyZXR1cm4gbmV3IEl0KHQubCx0LmEsdC5iLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIFd0KXtpZihpc05hTih0LmgpKXJldHVybiBuZXcgSXQodC5sLDAsMCx0Lm9wYWNpdHkpO3ZhciBuPXQuaCpVcztyZXR1cm4gbmV3IEl0KHQubCxNYXRoLmNvcyhuKSp0LmMsTWF0aC5zaW4obikqdC5jLHQub3BhY2l0eSl9dCBpbnN0YW5jZW9mIEx0fHwodD16dCh0KSk7dmFyIGUscixpPUd0KHQuciksbz1HdCh0LmcpLGE9R3QodC5iKSx1PWp0KCguMjIyNTA0NSppKy43MTY4Nzg2Km8rLjA2MDYxNjkqYSkvWXMpO3JldHVybiBpPT09byYmbz09PWE/ZT1yPXU6KGU9anQoKC40MzYwNzQ3KmkrLjM4NTA2NDkqbysuMTQzMDgwNCphKS9Pcykscj1qdCgoLjAxMzkzMjIqaSsuMDk3MTA0NSpvKy43MTQxNzMzKmEpL0JzKSksbmV3IEl0KDExNip1LTE2LDUwMCooZS11KSwyMDAqKHUtciksdC5vcGFjaXR5KX1mdW5jdGlvbiBGdCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/QnQodCk6bmV3IEl0KHQsbixlLG51bGw9PXI/MTpyKX1mdW5jdGlvbiBJdCh0LG4sZSxyKXt0aGlzLmw9K3QsdGhpcy5hPStuLHRoaXMuYj0rZSx0aGlzLm9wYWNpdHk9K3J9ZnVuY3Rpb24ganQodCl7cmV0dXJuIHQ+SHM/TWF0aC5wb3codCwxLzMpOnQvanMrRnN9ZnVuY3Rpb24gSHQodCl7cmV0dXJuIHQ+SXM/dCp0KnQ6anMqKHQtRnMpfWZ1bmN0aW9uIFh0KHQpe3JldHVybiAyNTUqKHQ8PS4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwxLzIuNCktLjA1NSl9ZnVuY3Rpb24gR3QodCl7cmV0dXJuKHQvPTI1NSk8PS4wNDA0NT90LzEyLjkyOk1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gVnQodCl7aWYodCBpbnN0YW5jZW9mIFd0KXJldHVybiBuZXcgV3QodC5oLHQuYyx0LmwsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgSXR8fCh0PUJ0KHQpKSwwPT09dC5hJiYwPT09dC5iKXJldHVybiBuZXcgV3QoTmFOLDAsdC5sLHQub3BhY2l0eSk7dmFyIG49TWF0aC5hdGFuMih0LmIsdC5hKSpxcztyZXR1cm4gbmV3IFd0KG48MD9uKzM2MDpuLE1hdGguc3FydCh0LmEqdC5hK3QuYip0LmIpLHQubCx0Lm9wYWNpdHkpfWZ1bmN0aW9uICR0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9WdCh0KTpuZXcgV3QodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIFd0KHQsbixlLHIpe3RoaXMuaD0rdCx0aGlzLmM9K24sdGhpcy5sPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBadCh0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFF0KXJldHVybiBuZXcgUXQodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2YgTHR8fCh0PXp0KHQpKTt2YXIgbj10LnIvMjU1LGU9dC5nLzI1NSxyPXQuYi8yNTUsaT0oWnMqciskcypuLVdzKmUpLyhacyskcy1Xcyksbz1yLWksYT0oVnMqKGUtaSktWHMqbykvR3MsdT1NYXRoLnNxcnQoYSphK28qbykvKFZzKmkqKDEtaSkpLGY9dT9NYXRoLmF0YW4yKGEsbykqcXMtMTIwOk5hTjtyZXR1cm4gbmV3IFF0KGY8MD9mKzM2MDpmLHUsaSx0Lm9wYWNpdHkpfSh0KTpuZXcgUXQodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIFF0KHQsbixlLHIpe3RoaXMuaD0rdCx0aGlzLnM9K24sdGhpcy5sPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBKdCh0LG4sZSxyLGkpe3ZhciBvPXQqdCxhPW8qdDtyZXR1cm4oKDEtMyp0KzMqby1hKSpuKyg0LTYqbyszKmEpKmUrKDErMyp0KzMqby0zKmEpKnIrYSppKS82fWZ1bmN0aW9uIEt0KHQpe3ZhciBuPXQubGVuZ3RoLTE7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPWU8PTA/ZT0wOmU+PTE/KGU9MSxuLTEpOk1hdGguZmxvb3IoZSpuKSxpPXRbcl0sbz10W3IrMV0sYT1yPjA/dFtyLTFdOjIqaS1vLHU9cjxuLTE/dFtyKzJdOjIqby1pO3JldHVybiBKdCgoZS1yL24pKm4sYSxpLG8sdSl9fWZ1bmN0aW9uIHRuKHQpe3ZhciBuPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1NYXRoLmZsb29yKCgoZSU9MSk8MD8rK2U6ZSkqbiksaT10WyhyK24tMSklbl0sbz10W3Ilbl0sYT10WyhyKzEpJW5dLHU9dFsocisyKSVuXTtyZXR1cm4gSnQoKGUtci9uKSpuLGksbyxhLHUpfX1mdW5jdGlvbiBubih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gZW4odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQrZSpufX1mdW5jdGlvbiBybih0LG4pe3ZhciBlPW4tdDtyZXR1cm4gZT9lbih0LGU+MTgwfHxlPC0xODA/ZS0zNjAqTWF0aC5yb3VuZChlLzM2MCk6ZSk6bm4oaXNOYU4odCk/bjp0KX1mdW5jdGlvbiBvbih0KXtyZXR1cm4gMT09KHQ9K3QpP2FuOmZ1bmN0aW9uKG4sZSl7cmV0dXJuIGUtbj9mdW5jdGlvbih0LG4sZSl7cmV0dXJuIHQ9TWF0aC5wb3codCxlKSxuPU1hdGgucG93KG4sZSktdCxlPTEvZSxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5wb3codCtyKm4sZSl9fShuLGUsdCk6bm4oaXNOYU4obik/ZTpuKX19ZnVuY3Rpb24gYW4odCxuKXt2YXIgZT1uLXQ7cmV0dXJuIGU/ZW4odCxlKTpubihpc05hTih0KT9uOnQpfWZ1bmN0aW9uIHVuKHQpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgZSxyLGk9bi5sZW5ndGgsbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSksdT1uZXcgQXJyYXkoaSk7Zm9yKGU9MDtlPGk7KytlKXI9UnQobltlXSksb1tlXT1yLnJ8fDAsYVtlXT1yLmd8fDAsdVtlXT1yLmJ8fDA7cmV0dXJuIG89dChvKSxhPXQoYSksdT10KHUpLHIub3BhY2l0eT0xLGZ1bmN0aW9uKHQpe3JldHVybiByLnI9byh0KSxyLmc9YSh0KSxyLmI9dSh0KSxyK1wiXCJ9fX1mdW5jdGlvbiBmbih0LG4pe3ZhciBlLHI9bj9uLmxlbmd0aDowLGk9dD9NYXRoLm1pbihyLHQubGVuZ3RoKTowLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KHIpO2ZvcihlPTA7ZTxpOysrZSlvW2VdPWRuKHRbZV0sbltlXSk7Zm9yKDtlPHI7KytlKWFbZV09bltlXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKGU9MDtlPGk7KytlKWFbZV09b1tlXSh0KTtyZXR1cm4gYX19ZnVuY3Rpb24gY24odCxuKXt2YXIgZT1uZXcgRGF0ZTtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKHIpe3JldHVybiBlLnNldFRpbWUodCtuKnIpLGV9fWZ1bmN0aW9uIHNuKHQsbil7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihlKXtyZXR1cm4gdCtuKmV9fWZ1bmN0aW9uIGxuKHQsbil7dmFyIGUscj17fSxpPXt9O251bGwhPT10JiZcIm9iamVjdFwiPT10eXBlb2YgdHx8KHQ9e30pLG51bGwhPT1uJiZcIm9iamVjdFwiPT10eXBlb2Ygbnx8KG49e30pO2ZvcihlIGluIG4pZSBpbiB0P3JbZV09ZG4odFtlXSxuW2VdKTppW2VdPW5bZV07cmV0dXJuIGZ1bmN0aW9uKHQpe2ZvcihlIGluIHIpaVtlXT1yW2VdKHQpO3JldHVybiBpfX1mdW5jdGlvbiBobih0LG4pe3ZhciBlLHIsaSxvPWFsLmxhc3RJbmRleD11bC5sYXN0SW5kZXg9MCxhPS0xLHU9W10sZj1bXTtmb3IodCs9XCJcIixuKz1cIlwiOyhlPWFsLmV4ZWModCkpJiYocj11bC5leGVjKG4pKTspKGk9ci5pbmRleCk+byYmKGk9bi5zbGljZShvLGkpLHVbYV0/dVthXSs9aTp1WysrYV09aSksKGU9ZVswXSk9PT0ocj1yWzBdKT91W2FdP3VbYV0rPXI6dVsrK2FdPXI6KHVbKythXT1udWxsLGYucHVzaCh7aTphLHg6c24oZSxyKX0pKSxvPXVsLmxhc3RJbmRleDtyZXR1cm4gbzxuLmxlbmd0aCYmKGk9bi5zbGljZShvKSx1W2FdP3VbYV0rPWk6dVsrK2FdPWkpLHUubGVuZ3RoPDI/ZlswXT9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHQobikrXCJcIn19KGZbMF0ueCk6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fShuKToobj1mLmxlbmd0aCxmdW5jdGlvbih0KXtmb3IodmFyIGUscj0wO3I8bjsrK3IpdVsoZT1mW3JdKS5pXT1lLngodCk7cmV0dXJuIHUuam9pbihcIlwiKX0pfWZ1bmN0aW9uIGRuKHQsbil7dmFyIGUscj10eXBlb2YgbjtyZXR1cm4gbnVsbD09bnx8XCJib29sZWFuXCI9PT1yP25uKG4pOihcIm51bWJlclwiPT09cj9zbjpcInN0cmluZ1wiPT09cj8oZT1rdChuKSk/KG49ZSxybCk6aG46biBpbnN0YW5jZW9mIGt0P3JsOm4gaW5zdGFuY2VvZiBEYXRlP2NuOkFycmF5LmlzQXJyYXkobik/Zm46XCJmdW5jdGlvblwiIT10eXBlb2Ygbi52YWx1ZU9mJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnRvU3RyaW5nfHxpc05hTihuKT9sbjpzbikodCxuKX1mdW5jdGlvbiBwbih0LG4pe3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucm91bmQodCtuKmUpfX1mdW5jdGlvbiB2bih0LG4sZSxyLGksbyl7dmFyIGEsdSxmO3JldHVybihhPU1hdGguc3FydCh0KnQrbipuKSkmJih0Lz1hLG4vPWEpLChmPXQqZStuKnIpJiYoZS09dCpmLHItPW4qZiksKHU9TWF0aC5zcXJ0KGUqZStyKnIpKSYmKGUvPXUsci89dSxmLz11KSx0KnI8biplJiYodD0tdCxuPS1uLGY9LWYsYT0tYSkse3RyYW5zbGF0ZVg6aSx0cmFuc2xhdGVZOm8scm90YXRlOk1hdGguYXRhbjIobix0KSpmbCxza2V3WDpNYXRoLmF0YW4oZikqZmwsc2NhbGVYOmEsc2NhbGVZOnV9fWZ1bmN0aW9uIGduKHQsbixlLHIpe2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrXCIgXCI6XCJcIn1yZXR1cm4gZnVuY3Rpb24obyxhKXt2YXIgdT1bXSxmPVtdO3JldHVybiBvPXQobyksYT10KGEpLGZ1bmN0aW9uKHQscixpLG8sYSx1KXtpZih0IT09aXx8ciE9PW8pe3ZhciBmPWEucHVzaChcInRyYW5zbGF0ZShcIixudWxsLG4sbnVsbCxlKTt1LnB1c2goe2k6Zi00LHg6c24odCxpKX0se2k6Zi0yLHg6c24ocixvKX0pfWVsc2UoaXx8bykmJmEucHVzaChcInRyYW5zbGF0ZShcIitpK24rbytlKX0oby50cmFuc2xhdGVYLG8udHJhbnNsYXRlWSxhLnRyYW5zbGF0ZVgsYS50cmFuc2xhdGVZLHUsZiksZnVuY3Rpb24odCxuLGUsbyl7dCE9PW4/KHQtbj4xODA/bis9MzYwOm4tdD4xODAmJih0Kz0zNjApLG8ucHVzaCh7aTplLnB1c2goaShlKStcInJvdGF0ZShcIixudWxsLHIpLTIseDpzbih0LG4pfSkpOm4mJmUucHVzaChpKGUpK1wicm90YXRlKFwiK24rcil9KG8ucm90YXRlLGEucm90YXRlLHUsZiksZnVuY3Rpb24odCxuLGUsbyl7dCE9PW4/by5wdXNoKHtpOmUucHVzaChpKGUpK1wic2tld1goXCIsbnVsbCxyKS0yLHg6c24odCxuKX0pOm4mJmUucHVzaChpKGUpK1wic2tld1goXCIrbityKX0oby5za2V3WCxhLnNrZXdYLHUsZiksZnVuY3Rpb24odCxuLGUscixvLGEpe2lmKHQhPT1lfHxuIT09cil7dmFyIHU9by5wdXNoKGkobykrXCJzY2FsZShcIixudWxsLFwiLFwiLG51bGwsXCIpXCIpO2EucHVzaCh7aTp1LTQseDpzbih0LGUpfSx7aTp1LTIseDpzbihuLHIpfSl9ZWxzZSAxPT09ZSYmMT09PXJ8fG8ucHVzaChpKG8pK1wic2NhbGUoXCIrZStcIixcIityK1wiKVwiKX0oby5zY2FsZVgsby5zY2FsZVksYS5zY2FsZVgsYS5zY2FsZVksdSxmKSxvPWE9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0tMSxyPWYubGVuZ3RoOysrZTxyOyl1WyhuPWZbZV0pLmldPW4ueCh0KTtyZXR1cm4gdS5qb2luKFwiXCIpfX19ZnVuY3Rpb24geW4odCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKSsxL3QpLzJ9ZnVuY3Rpb24gX24odCxuKXt2YXIgZSxyLGk9dFswXSxvPXRbMV0sYT10WzJdLHU9blswXSxmPW5bMV0sYz1uWzJdLHM9dS1pLGw9Zi1vLGg9cypzK2wqbDtpZihoPHZsKXI9TWF0aC5sb2coYy9hKS9obCxlPWZ1bmN0aW9uKHQpe3JldHVybltpK3QqcyxvK3QqbCxhKk1hdGguZXhwKGhsKnQqcildfTtlbHNle3ZhciBkPU1hdGguc3FydChoKSxwPShjKmMtYSphK3BsKmgpLygyKmEqZGwqZCksdj0oYypjLWEqYS1wbCpoKS8oMipjKmRsKmQpLGc9TWF0aC5sb2coTWF0aC5zcXJ0KHAqcCsxKS1wKSx5PU1hdGgubG9nKE1hdGguc3FydCh2KnYrMSktdik7cj0oeS1nKS9obCxlPWZ1bmN0aW9uKHQpe3ZhciBuPXQqcixlPXluKGcpLHU9YS8oZGwqZCkqKGUqZnVuY3Rpb24odCl7cmV0dXJuKCh0PU1hdGguZXhwKDIqdCkpLTEpLyh0KzEpfShobCpuK2cpLWZ1bmN0aW9uKHQpe3JldHVybigodD1NYXRoLmV4cCh0KSktMS90KS8yfShnKSk7cmV0dXJuW2krdSpzLG8rdSpsLGEqZS95bihobCpuK2cpXX19cmV0dXJuIGUuZHVyYXRpb249MWUzKnIsZX1mdW5jdGlvbiBibih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KChuPXF0KG4pKS5oLChlPXF0KGUpKS5oKSxpPWFuKG4ucyxlLnMpLG89YW4obi5sLGUubCksYT1hbihuLm9wYWNpdHksZS5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4uaD1yKHQpLG4ucz1pKHQpLG4ubD1vKHQpLG4ub3BhY2l0eT1hKHQpLG4rXCJcIn19fWZ1bmN0aW9uIG1uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQoKG49JHQobikpLmgsKGU9JHQoZSkpLmgpLGk9YW4obi5jLGUuYyksbz1hbihuLmwsZS5sKSxhPWFuKG4ub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbi5oPXIodCksbi5jPWkodCksbi5sPW8odCksbi5vcGFjaXR5PWEodCksbitcIlwifX19ZnVuY3Rpb24geG4odCl7cmV0dXJuIGZ1bmN0aW9uIG4oZSl7ZnVuY3Rpb24gcihuLHIpe3ZhciBpPXQoKG49WnQobikpLmgsKHI9WnQocikpLmgpLG89YW4obi5zLHIucyksYT1hbihuLmwsci5sKSx1PWFuKG4ub3BhY2l0eSxyLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbi5oPWkodCksbi5zPW8odCksbi5sPWEoTWF0aC5wb3codCxlKSksbi5vcGFjaXR5PXUodCksbitcIlwifX1yZXR1cm4gZT0rZSxyLmdhbW1hPW4scn0oMSl9ZnVuY3Rpb24gd24oKXtyZXR1cm4gU2x8fChDbChNbiksU2w9a2wubm93KCkrRWwpfWZ1bmN0aW9uIE1uKCl7U2w9MH1mdW5jdGlvbiBBbigpe3RoaXMuX2NhbGw9dGhpcy5fdGltZT10aGlzLl9uZXh0PW51bGx9ZnVuY3Rpb24gVG4odCxuLGUpe3ZhciByPW5ldyBBbjtyZXR1cm4gci5yZXN0YXJ0KHQsbixlKSxyfWZ1bmN0aW9uIE5uKCl7d24oKSwrK3dsO2Zvcih2YXIgdCxuPW5sO247KSh0PVNsLW4uX3RpbWUpPj0wJiZuLl9jYWxsLmNhbGwobnVsbCx0KSxuPW4uX25leHQ7LS13bH1mdW5jdGlvbiBTbigpe1NsPShObD1rbC5ub3coKSkrRWwsd2w9TWw9MDt0cnl7Tm4oKX1maW5hbGx5e3dsPTAsZnVuY3Rpb24oKXt2YXIgdCxuLGU9bmwscj0xLzA7Zm9yKDtlOyllLl9jYWxsPyhyPmUuX3RpbWUmJihyPWUuX3RpbWUpLHQ9ZSxlPWUuX25leHQpOihuPWUuX25leHQsZS5fbmV4dD1udWxsLGU9dD90Ll9uZXh0PW46bmw9bik7ZWw9dCxrbihyKX0oKSxTbD0wfX1mdW5jdGlvbiBFbigpe3ZhciB0PWtsLm5vdygpLG49dC1ObDtuPlRsJiYoRWwtPW4sTmw9dCl9ZnVuY3Rpb24ga24odCl7aWYoIXdsKXtNbCYmKE1sPWNsZWFyVGltZW91dChNbCkpO3QtU2w+MjQ/KHQ8MS8wJiYoTWw9c2V0VGltZW91dChTbix0LWtsLm5vdygpLUVsKSksQWwmJihBbD1jbGVhckludGVydmFsKEFsKSkpOihBbHx8KE5sPWtsLm5vdygpLEFsPXNldEludGVydmFsKEVuLFRsKSksd2w9MSxDbChTbikpfX1mdW5jdGlvbiBDbih0LG4sZSl7dmFyIHI9bmV3IEFuO3JldHVybiBuPW51bGw9PW4/MDorbixyLnJlc3RhcnQoZnVuY3Rpb24oZSl7ci5zdG9wKCksdChlK24pfSxuLGUpLHJ9ZnVuY3Rpb24gUG4odCxuLGUscixpLG8pe3ZhciBhPXQuX190cmFuc2l0aW9uO2lmKGEpe2lmKGUgaW4gYSlyZXR1cm59ZWxzZSB0Ll9fdHJhbnNpdGlvbj17fTsoZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIoZil7dmFyIGMscyxsLGg7aWYoZS5zdGF0ZSE9PUxsKXJldHVybiBvKCk7Zm9yKGMgaW4gdSlpZigoaD11W2NdKS5uYW1lPT09ZS5uYW1lKXtpZihoLnN0YXRlPT09VWwpcmV0dXJuIENuKHIpO2guc3RhdGU9PT1xbD8oaC5zdGF0ZT1ZbCxoLnRpbWVyLnN0b3AoKSxoLm9uLmNhbGwoXCJpbnRlcnJ1cHRcIix0LHQuX19kYXRhX18saC5pbmRleCxoLmdyb3VwKSxkZWxldGUgdVtjXSk6K2M8biYmKGguc3RhdGU9WWwsaC50aW1lci5zdG9wKCksZGVsZXRlIHVbY10pfWlmKENuKGZ1bmN0aW9uKCl7ZS5zdGF0ZT09PVVsJiYoZS5zdGF0ZT1xbCxlLnRpbWVyLnJlc3RhcnQoaSxlLmRlbGF5LGUudGltZSksaShmKSl9KSxlLnN0YXRlPURsLGUub24uY2FsbChcInN0YXJ0XCIsdCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCksZS5zdGF0ZT09PURsKXtmb3IoZS5zdGF0ZT1VbCxhPW5ldyBBcnJheShsPWUudHdlZW4ubGVuZ3RoKSxjPTAscz0tMTtjPGw7KytjKShoPWUudHdlZW5bY10udmFsdWUuY2FsbCh0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSkmJihhWysrc109aCk7YS5sZW5ndGg9cysxfX1mdW5jdGlvbiBpKG4pe2Zvcih2YXIgcj1uPGUuZHVyYXRpb24/ZS5lYXNlLmNhbGwobnVsbCxuL2UuZHVyYXRpb24pOihlLnRpbWVyLnJlc3RhcnQobyksZS5zdGF0ZT1PbCwxKSxpPS0xLHU9YS5sZW5ndGg7KytpPHU7KWFbaV0uY2FsbChudWxsLHIpO2Uuc3RhdGU9PT1PbCYmKGUub24uY2FsbChcImVuZFwiLHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApLG8oKSl9ZnVuY3Rpb24gbygpe2Uuc3RhdGU9WWwsZS50aW1lci5zdG9wKCksZGVsZXRlIHVbbl07Zm9yKHZhciByIGluIHUpcmV0dXJuO2RlbGV0ZSB0Ll9fdHJhbnNpdGlvbn12YXIgYSx1PXQuX190cmFuc2l0aW9uO3Vbbl09ZSxlLnRpbWVyPVRuKGZ1bmN0aW9uKHQpe2Uuc3RhdGU9TGwsZS50aW1lci5yZXN0YXJ0KHIsZS5kZWxheSxlLnRpbWUpLGUuZGVsYXk8PXQmJnIodC1lLmRlbGF5KX0sMCxlLnRpbWUpfSkodCxlLHtuYW1lOm4saW5kZXg6cixncm91cDppLG9uOlBsLHR3ZWVuOnpsLHRpbWU6by50aW1lLGRlbGF5Om8uZGVsYXksZHVyYXRpb246by5kdXJhdGlvbixlYXNlOm8uZWFzZSx0aW1lcjpudWxsLHN0YXRlOlJsfSl9ZnVuY3Rpb24gem4odCxuKXt2YXIgZT1Mbih0LG4pO2lmKGUuc3RhdGU+UmwpdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkXCIpO3JldHVybiBlfWZ1bmN0aW9uIFJuKHQsbil7dmFyIGU9TG4odCxuKTtpZihlLnN0YXRlPkRsKXRocm93IG5ldyBFcnJvcihcInRvbyBsYXRlOyBhbHJlYWR5IHN0YXJ0ZWRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gTG4odCxuKXt2YXIgZT10Ll9fdHJhbnNpdGlvbjtpZighZXx8IShlPWVbbl0pKXRocm93IG5ldyBFcnJvcihcInRyYW5zaXRpb24gbm90IGZvdW5kXCIpO3JldHVybiBlfWZ1bmN0aW9uIERuKHQsbil7dmFyIGUscixpLG89dC5fX3RyYW5zaXRpb24sYT0hMDtpZihvKXtuPW51bGw9PW4/bnVsbDpuK1wiXCI7Zm9yKGkgaW4gbykoZT1vW2ldKS5uYW1lPT09bj8ocj1lLnN0YXRlPkRsJiZlLnN0YXRlPE9sLGUuc3RhdGU9WWwsZS50aW1lci5zdG9wKCksciYmZS5vbi5jYWxsKFwiaW50ZXJydXB0XCIsdCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCksZGVsZXRlIG9baV0pOmE9ITE7YSYmZGVsZXRlIHQuX190cmFuc2l0aW9ufX1mdW5jdGlvbiBVbih0LG4sZSl7dmFyIHI9dC5faWQ7cmV0dXJuIHQuZWFjaChmdW5jdGlvbigpe3ZhciB0PVJuKHRoaXMscik7KHQudmFsdWV8fCh0LnZhbHVlPXt9KSlbbl09ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxmdW5jdGlvbih0KXtyZXR1cm4gTG4odCxyKS52YWx1ZVtuXX19ZnVuY3Rpb24gcW4odCxuKXt2YXIgZTtyZXR1cm4oXCJudW1iZXJcIj09dHlwZW9mIG4/c246biBpbnN0YW5jZW9mIGt0P3JsOihlPWt0KG4pKT8obj1lLHJsKTpobikodCxuKX1mdW5jdGlvbiBPbih0LG4sZSxyKXt0aGlzLl9ncm91cHM9dCx0aGlzLl9wYXJlbnRzPW4sdGhpcy5fbmFtZT1lLHRoaXMuX2lkPXJ9ZnVuY3Rpb24gWW4odCl7cmV0dXJuIGZ0KCkudHJhbnNpdGlvbih0KX1mdW5jdGlvbiBCbigpe3JldHVybisrRmx9ZnVuY3Rpb24gRm4odCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQ6LS10KigyLXQpKzEpLzJ9ZnVuY3Rpb24gSW4odCl7cmV0dXJuKCh0Kj0yKTw9MT90KnQqdDoodC09MikqdCp0KzIpLzJ9ZnVuY3Rpb24gam4odCl7cmV0dXJuKDEtTWF0aC5jb3MoR2wqdCkpLzJ9ZnVuY3Rpb24gSG4odCl7cmV0dXJuKCh0Kj0yKTw9MT9NYXRoLnBvdygyLDEwKnQtMTApOjItTWF0aC5wb3coMiwxMC0xMCp0KSkvMn1mdW5jdGlvbiBYbih0KXtyZXR1cm4oKHQqPTIpPD0xPzEtTWF0aC5zcXJ0KDEtdCp0KTpNYXRoLnNxcnQoMS0odC09MikqdCkrMSkvMn1mdW5jdGlvbiBHbih0KXtyZXR1cm4odD0rdCk8JGw/cmgqdCp0OnQ8Wmw/cmgqKHQtPVdsKSp0K1FsOnQ8S2w/cmgqKHQtPUpsKSp0K3RoOnJoKih0LT1uaCkqdCtlaH1mdW5jdGlvbiBWbih0LG4pe2Zvcih2YXIgZTshKGU9dC5fX3RyYW5zaXRpb24pfHwhKGU9ZVtuXSk7KWlmKCEodD10LnBhcmVudE5vZGUpKXJldHVybiBsaC50aW1lPXduKCksbGg7cmV0dXJuIGV9ZnVuY3Rpb24gJG4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFduKCl7dC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBabigpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKSx0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFFuKHQpe3JldHVybnt0eXBlOnR9fWZ1bmN0aW9uIEpuKCl7cmV0dXJuIXQuZXZlbnQuYnV0dG9ufWZ1bmN0aW9uIEtuKCl7dmFyIHQ9dGhpcy5vd25lclNWR0VsZW1lbnR8fHRoaXM7cmV0dXJuW1swLDBdLFt0LndpZHRoLmJhc2VWYWwudmFsdWUsdC5oZWlnaHQuYmFzZVZhbC52YWx1ZV1dfWZ1bmN0aW9uIHRlKHQpe2Zvcig7IXQuX19icnVzaDspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuO3JldHVybiB0Ll9fYnJ1c2h9ZnVuY3Rpb24gbmUodCl7cmV0dXJuIHRbMF1bMF09PT10WzFdWzBdfHx0WzBdWzFdPT09dFsxXVsxXX1mdW5jdGlvbiBlZShuKXtmdW5jdGlvbiBlKHQpe3ZhciBlPXQucHJvcGVydHkoXCJfX2JydXNoXCIsdSkuc2VsZWN0QWxsKFwiLm92ZXJsYXlcIikuZGF0YShbUW4oXCJvdmVybGF5XCIpXSk7ZS5lbnRlcigpLmFwcGVuZChcInJlY3RcIikuYXR0cihcImNsYXNzXCIsXCJvdmVybGF5XCIpLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwiYWxsXCIpLmF0dHIoXCJjdXJzb3JcIixtaC5vdmVybGF5KS5tZXJnZShlKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dGUodGhpcykuZXh0ZW50O2N0KHRoaXMpLmF0dHIoXCJ4XCIsdFswXVswXSkuYXR0cihcInlcIix0WzBdWzFdKS5hdHRyKFwid2lkdGhcIix0WzFdWzBdLXRbMF1bMF0pLmF0dHIoXCJoZWlnaHRcIix0WzFdWzFdLXRbMF1bMV0pfSksdC5zZWxlY3RBbGwoXCIuc2VsZWN0aW9uXCIpLmRhdGEoW1FuKFwic2VsZWN0aW9uXCIpXSkuZW50ZXIoKS5hcHBlbmQoXCJyZWN0XCIpLmF0dHIoXCJjbGFzc1wiLFwic2VsZWN0aW9uXCIpLmF0dHIoXCJjdXJzb3JcIixtaC5zZWxlY3Rpb24pLmF0dHIoXCJmaWxsXCIsXCIjNzc3XCIpLmF0dHIoXCJmaWxsLW9wYWNpdHlcIiwuMykuYXR0cihcInN0cm9rZVwiLFwiI2ZmZlwiKS5hdHRyKFwic2hhcGUtcmVuZGVyaW5nXCIsXCJjcmlzcEVkZ2VzXCIpO3ZhciBpPXQuc2VsZWN0QWxsKFwiLmhhbmRsZVwiKS5kYXRhKG4uaGFuZGxlcyxmdW5jdGlvbih0KXtyZXR1cm4gdC50eXBlfSk7aS5leGl0KCkucmVtb3ZlKCksaS5lbnRlcigpLmFwcGVuZChcInJlY3RcIikuYXR0cihcImNsYXNzXCIsZnVuY3Rpb24odCl7cmV0dXJuXCJoYW5kbGUgaGFuZGxlLS1cIit0LnR5cGV9KS5hdHRyKFwiY3Vyc29yXCIsZnVuY3Rpb24odCl7cmV0dXJuIG1oW3QudHlwZV19KSx0LmVhY2gocikuYXR0cihcImZpbGxcIixcIm5vbmVcIikuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJhbGxcIikuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIixcInJnYmEoMCwwLDAsMClcIikub24oXCJtb3VzZWRvd24uYnJ1c2ggdG91Y2hzdGFydC5icnVzaFwiLGEpfWZ1bmN0aW9uIHIoKXt2YXIgdD1jdCh0aGlzKSxuPXRlKHRoaXMpLnNlbGVjdGlvbjtuPyh0LnNlbGVjdEFsbChcIi5zZWxlY3Rpb25cIikuc3R5bGUoXCJkaXNwbGF5XCIsbnVsbCkuYXR0cihcInhcIixuWzBdWzBdKS5hdHRyKFwieVwiLG5bMF1bMV0pLmF0dHIoXCJ3aWR0aFwiLG5bMV1bMF0tblswXVswXSkuYXR0cihcImhlaWdodFwiLG5bMV1bMV0tblswXVsxXSksdC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpLnN0eWxlKFwiZGlzcGxheVwiLG51bGwpLmF0dHIoXCJ4XCIsZnVuY3Rpb24odCl7cmV0dXJuXCJlXCI9PT10LnR5cGVbdC50eXBlLmxlbmd0aC0xXT9uWzFdWzBdLWgvMjpuWzBdWzBdLWgvMn0pLmF0dHIoXCJ5XCIsZnVuY3Rpb24odCl7cmV0dXJuXCJzXCI9PT10LnR5cGVbMF0/blsxXVsxXS1oLzI6blswXVsxXS1oLzJ9KS5hdHRyKFwid2lkdGhcIixmdW5jdGlvbih0KXtyZXR1cm5cIm5cIj09PXQudHlwZXx8XCJzXCI9PT10LnR5cGU/blsxXVswXS1uWzBdWzBdK2g6aH0pLmF0dHIoXCJoZWlnaHRcIixmdW5jdGlvbih0KXtyZXR1cm5cImVcIj09PXQudHlwZXx8XCJ3XCI9PT10LnR5cGU/blsxXVsxXS1uWzBdWzFdK2g6aH0pKTp0LnNlbGVjdEFsbChcIi5zZWxlY3Rpb24sLmhhbmRsZVwiKS5zdHlsZShcImRpc3BsYXlcIixcIm5vbmVcIikuYXR0cihcInhcIixudWxsKS5hdHRyKFwieVwiLG51bGwpLmF0dHIoXCJ3aWR0aFwiLG51bGwpLmF0dHIoXCJoZWlnaHRcIixudWxsKX1mdW5jdGlvbiBpKHQsbil7cmV0dXJuIHQuX19icnVzaC5lbWl0dGVyfHxuZXcgbyh0LG4pfWZ1bmN0aW9uIG8odCxuKXt0aGlzLnRoYXQ9dCx0aGlzLmFyZ3M9bix0aGlzLnN0YXRlPXQuX19icnVzaCx0aGlzLmFjdGl2ZT0wfWZ1bmN0aW9uIGEoKXtmdW5jdGlvbiBlKCl7dmFyIHQ9cHQodyk7IUx8fG18fHh8fChNYXRoLmFicyh0WzBdLVVbMF0pPk1hdGguYWJzKHRbMV0tVVsxXSk/eD0hMDptPSEwKSxVPXQsYj0hMCxabigpLG8oKX1mdW5jdGlvbiBvKCl7dmFyIHQ7c3dpdGNoKHk9VVswXS1EWzBdLF89VVsxXS1EWzFdLEEpe2Nhc2UgcGg6Y2FzZSBkaDpUJiYoeT1NYXRoLm1heChDLXUsTWF0aC5taW4oei1kLHkpKSxjPXUreSxwPWQreSksTiYmKF89TWF0aC5tYXgoUC1sLE1hdGgubWluKFItdixfKSksaD1sK18sZz12K18pO2JyZWFrO2Nhc2Ugdmg6VDwwPyh5PU1hdGgubWF4KEMtdSxNYXRoLm1pbih6LXUseSkpLGM9dSt5LHA9ZCk6VD4wJiYoeT1NYXRoLm1heChDLWQsTWF0aC5taW4oei1kLHkpKSxjPXUscD1kK3kpLE48MD8oXz1NYXRoLm1heChQLWwsTWF0aC5taW4oUi1sLF8pKSxoPWwrXyxnPXYpOk4+MCYmKF89TWF0aC5tYXgoUC12LE1hdGgubWluKFItdixfKSksaD1sLGc9ditfKTticmVhaztjYXNlIGdoOlQmJihjPU1hdGgubWF4KEMsTWF0aC5taW4oeix1LXkqVCkpLHA9TWF0aC5tYXgoQyxNYXRoLm1pbih6LGQreSpUKSkpLE4mJihoPU1hdGgubWF4KFAsTWF0aC5taW4oUixsLV8qTikpLGc9TWF0aC5tYXgoUCxNYXRoLm1pbihSLHYrXypOKSkpfXA8YyYmKFQqPS0xLHQ9dSx1PWQsZD10LHQ9YyxjPXAscD10LE0gaW4geGgmJlkuYXR0cihcImN1cnNvclwiLG1oW009eGhbTV1dKSksZzxoJiYoTio9LTEsdD1sLGw9dix2PXQsdD1oLGg9ZyxnPXQsTSBpbiB3aCYmWS5hdHRyKFwiY3Vyc29yXCIsbWhbTT13aFtNXV0pKSxTLnNlbGVjdGlvbiYmKGs9Uy5zZWxlY3Rpb24pLG0mJihjPWtbMF1bMF0scD1rWzFdWzBdKSx4JiYoaD1rWzBdWzFdLGc9a1sxXVsxXSksa1swXVswXT09PWMmJmtbMF1bMV09PT1oJiZrWzFdWzBdPT09cCYma1sxXVsxXT09PWd8fChTLnNlbGVjdGlvbj1bW2MsaF0sW3AsZ11dLHIuY2FsbCh3KSxxLmJydXNoKCkpfWZ1bmN0aW9uIGEoKXtpZihXbigpLHQuZXZlbnQudG91Y2hlcyl7aWYodC5ldmVudC50b3VjaGVzLmxlbmd0aClyZXR1cm47ZiYmY2xlYXJUaW1lb3V0KGYpLGY9c2V0VGltZW91dChmdW5jdGlvbigpe2Y9bnVsbH0sNTAwKSxPLm9uKFwidG91Y2htb3ZlLmJydXNoIHRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoXCIsbnVsbCl9ZWxzZSBidCh0LmV2ZW50LnZpZXcsYiksQi5vbihcImtleWRvd24uYnJ1c2gga2V5dXAuYnJ1c2ggbW91c2Vtb3ZlLmJydXNoIG1vdXNldXAuYnJ1c2hcIixudWxsKTtPLmF0dHIoXCJwb2ludGVyLWV2ZW50c1wiLFwiYWxsXCIpLFkuYXR0cihcImN1cnNvclwiLG1oLm92ZXJsYXkpLFMuc2VsZWN0aW9uJiYoaz1TLnNlbGVjdGlvbiksbmUoaykmJihTLnNlbGVjdGlvbj1udWxsLHIuY2FsbCh3KSkscS5lbmQoKX1pZih0LmV2ZW50LnRvdWNoZXMpe2lmKHQuZXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoPHQuZXZlbnQudG91Y2hlcy5sZW5ndGgpcmV0dXJuIFpuKCl9ZWxzZSBpZihmKXJldHVybjtpZihzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHUsYyxsLGgsZCxwLHYsZyx5LF8sYixtLHgsdz10aGlzLE09dC5ldmVudC50YXJnZXQuX19kYXRhX18udHlwZSxBPVwic2VsZWN0aW9uXCI9PT0odC5ldmVudC5tZXRhS2V5P009XCJvdmVybGF5XCI6TSk/ZGg6dC5ldmVudC5hbHRLZXk/Z2g6dmgsVD1uPT09X2g/bnVsbDpNaFtNXSxOPW49PT15aD9udWxsOkFoW01dLFM9dGUodyksRT1TLmV4dGVudCxrPVMuc2VsZWN0aW9uLEM9RVswXVswXSxQPUVbMF1bMV0sej1FWzFdWzBdLFI9RVsxXVsxXSxMPVQmJk4mJnQuZXZlbnQuc2hpZnRLZXksRD1wdCh3KSxVPUQscT1pKHcsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpO1wib3ZlcmxheVwiPT09TT9TLnNlbGVjdGlvbj1rPVtbdT1uPT09X2g/QzpEWzBdLGw9bj09PXloP1A6RFsxXV0sW2Q9bj09PV9oP3o6dSx2PW49PT15aD9SOmxdXToodT1rWzBdWzBdLGw9a1swXVsxXSxkPWtbMV1bMF0sdj1rWzFdWzFdKSxjPXUsaD1sLHA9ZCxnPXY7dmFyIE89Y3QodykuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJub25lXCIpLFk9Ty5zZWxlY3RBbGwoXCIub3ZlcmxheVwiKS5hdHRyKFwiY3Vyc29yXCIsbWhbTV0pO2lmKHQuZXZlbnQudG91Y2hlcylPLm9uKFwidG91Y2htb3ZlLmJydXNoXCIsZSwhMCkub24oXCJ0b3VjaGVuZC5icnVzaCB0b3VjaGNhbmNlbC5icnVzaFwiLGEsITApO2Vsc2V7dmFyIEI9Y3QodC5ldmVudC52aWV3KS5vbihcImtleWRvd24uYnJ1c2hcIixmdW5jdGlvbigpe3N3aXRjaCh0LmV2ZW50LmtleUNvZGUpe2Nhc2UgMTY6TD1UJiZOO2JyZWFrO2Nhc2UgMTg6QT09PXZoJiYoVCYmKGQ9cC15KlQsdT1jK3kqVCksTiYmKHY9Zy1fKk4sbD1oK18qTiksQT1naCxvKCkpO2JyZWFrO2Nhc2UgMzI6QSE9PXZoJiZBIT09Z2h8fChUPDA/ZD1wLXk6VD4wJiYodT1jLXkpLE48MD92PWctXzpOPjAmJihsPWgtXyksQT1waCxZLmF0dHIoXCJjdXJzb3JcIixtaC5zZWxlY3Rpb24pLG8oKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm59Wm4oKX0sITApLm9uKFwia2V5dXAuYnJ1c2hcIixmdW5jdGlvbigpe3N3aXRjaCh0LmV2ZW50LmtleUNvZGUpe2Nhc2UgMTY6TCYmKG09eD1MPSExLG8oKSk7YnJlYWs7Y2FzZSAxODpBPT09Z2gmJihUPDA/ZD1wOlQ+MCYmKHU9YyksTjwwP3Y9ZzpOPjAmJihsPWgpLEE9dmgsbygpKTticmVhaztjYXNlIDMyOkE9PT1waCYmKHQuZXZlbnQuYWx0S2V5PyhUJiYoZD1wLXkqVCx1PWMreSpUKSxOJiYodj1nLV8qTixsPWgrXypOKSxBPWdoKTooVDwwP2Q9cDpUPjAmJih1PWMpLE48MD92PWc6Tj4wJiYobD1oKSxBPXZoKSxZLmF0dHIoXCJjdXJzb3JcIixtaFtNXSksbygpKTticmVhaztkZWZhdWx0OnJldHVybn1abigpfSwhMCkub24oXCJtb3VzZW1vdmUuYnJ1c2hcIixlLCEwKS5vbihcIm1vdXNldXAuYnJ1c2hcIixhLCEwKTtfdCh0LmV2ZW50LnZpZXcpfVduKCksRG4odyksci5jYWxsKHcpLHEuc3RhcnQoKX19ZnVuY3Rpb24gdSgpe3ZhciB0PXRoaXMuX19icnVzaHx8e3NlbGVjdGlvbjpudWxsfTtyZXR1cm4gdC5leHRlbnQ9Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdC5kaW09bix0fXZhciBmLGM9S24scz1KbixsPU4oZSxcInN0YXJ0XCIsXCJicnVzaFwiLFwiZW5kXCIpLGg9NjtyZXR1cm4gZS5tb3ZlPWZ1bmN0aW9uKHQsZSl7dC5zZWxlY3Rpb24/dC5vbihcInN0YXJ0LmJydXNoXCIsZnVuY3Rpb24oKXtpKHRoaXMsYXJndW1lbnRzKS5iZWZvcmVzdGFydCgpLnN0YXJ0KCl9KS5vbihcImludGVycnVwdC5icnVzaCBlbmQuYnJ1c2hcIixmdW5jdGlvbigpe2kodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkudHdlZW4oXCJicnVzaFwiLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXthLnNlbGVjdGlvbj0xPT09dCYmbmUoYyk/bnVsbDpzKHQpLHIuY2FsbChvKSx1LmJydXNoKCl9dmFyIG89dGhpcyxhPW8uX19icnVzaCx1PWkobyxhcmd1bWVudHMpLGY9YS5zZWxlY3Rpb24sYz1uLmlucHV0KFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSxhLmV4dGVudCkscz1kbihmLGMpO3JldHVybiBmJiZjP3Q6dCgxKX0pOnQuZWFjaChmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cyxvPXRoaXMuX19icnVzaCxhPW4uaW5wdXQoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsdCk6ZSxvLmV4dGVudCksdT1pKHRoaXMsdCkuYmVmb3Jlc3RhcnQoKTtEbih0aGlzKSxvLnNlbGVjdGlvbj1udWxsPT1hfHxuZShhKT9udWxsOmEsci5jYWxsKHRoaXMpLHUuc3RhcnQoKS5icnVzaCgpLmVuZCgpfSl9LG8ucHJvdG90eXBlPXtiZWZvcmVzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy5zdGF0ZS5lbWl0dGVyPXRoaXMsdGhpcy5zdGFydGluZz0hMCksdGhpc30sc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFydGluZyYmKHRoaXMuc3RhcnRpbmc9ITEsdGhpcy5lbWl0KFwic3RhcnRcIikpLHRoaXN9LGJydXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW1pdChcImJydXNoXCIpLHRoaXN9LGVuZDpmdW5jdGlvbigpe3JldHVybiAwPT0tLXRoaXMuYWN0aXZlJiYoZGVsZXRlIHRoaXMuc3RhdGUuZW1pdHRlcix0aGlzLmVtaXQoXCJlbmRcIikpLHRoaXN9LGVtaXQ6ZnVuY3Rpb24odCl7b3QobmV3IGZ1bmN0aW9uKHQsbixlKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMuc2VsZWN0aW9uPWV9KGUsdCxuLm91dHB1dCh0aGlzLnN0YXRlLnNlbGVjdGlvbikpLGwuYXBwbHksbCxbdCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxlLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6JG4oW1srdFswXVswXSwrdFswXVsxXV0sWyt0WzFdWzBdLCt0WzFdWzFdXV0pLGUpOmN9LGUuZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDokbighIXQpLGUpOnN9LGUuaGFuZGxlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0rdCxlKTpofSxlLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9bC5vbi5hcHBseShsLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1sP2U6dH0sZX1mdW5jdGlvbiByZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gaWUoKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz1cIlwifWZ1bmN0aW9uIG9lKCl7cmV0dXJuIG5ldyBpZX1mdW5jdGlvbiBhZSh0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24gdWUodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIGZlKHQpe3JldHVybiB0LnJhZGl1c31mdW5jdGlvbiBjZSh0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfWZ1bmN0aW9uIHNlKHQpe3JldHVybiB0LmVuZEFuZ2xlfWZ1bmN0aW9uIGxlKCl7fWZ1bmN0aW9uIGhlKHQsbil7dmFyIGU9bmV3IGxlO2lmKHQgaW5zdGFuY2VvZiBsZSl0LmVhY2goZnVuY3Rpb24odCxuKXtlLnNldChuLHQpfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgcixpPS0xLG89dC5sZW5ndGg7aWYobnVsbD09bilmb3IoOysraTxvOyllLnNldChpLHRbaV0pO2Vsc2UgZm9yKDsrK2k8bzspZS5zZXQobihyPXRbaV0saSx0KSxyKX1lbHNlIGlmKHQpZm9yKHZhciBhIGluIHQpZS5zZXQoYSx0W2FdKTtyZXR1cm4gZX1mdW5jdGlvbiBkZSgpe3JldHVybnt9fWZ1bmN0aW9uIHBlKHQsbixlKXt0W25dPWV9ZnVuY3Rpb24gdmUoKXtyZXR1cm4gaGUoKX1mdW5jdGlvbiBnZSh0LG4sZSl7dC5zZXQobixlKX1mdW5jdGlvbiB5ZSgpe31mdW5jdGlvbiBfZSh0LG4pe3ZhciBlPW5ldyB5ZTtpZih0IGluc3RhbmNlb2YgeWUpdC5lYWNoKGZ1bmN0aW9uKHQpe2UuYWRkKHQpfSk7ZWxzZSBpZih0KXt2YXIgcj0tMSxpPXQubGVuZ3RoO2lmKG51bGw9PW4pZm9yKDsrK3I8aTspZS5hZGQodFtyXSk7ZWxzZSBmb3IoOysrcjxpOyllLmFkZChuKHRbcl0scix0KSl9cmV0dXJuIGV9ZnVuY3Rpb24gYmUodCxuKXtyZXR1cm4gdC1ufWZ1bmN0aW9uIG1lKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiB4ZSh0LG4pe2Zvcih2YXIgZSxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KWlmKGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9blswXSxyPW5bMV0saT0tMSxvPTAsYT10Lmxlbmd0aCx1PWEtMTtvPGE7dT1vKyspe3ZhciBmPXRbb10sYz1mWzBdLHM9ZlsxXSxsPXRbdV0saD1sWzBdLGQ9bFsxXTtpZihmdW5jdGlvbih0LG4sZSl7dmFyIHI7cmV0dXJuIGZ1bmN0aW9uKHQsbixlKXtyZXR1cm4oblswXS10WzBdKSooZVsxXS10WzFdKT09KGVbMF0tdFswXSkqKG5bMV0tdFsxXSl9KHQsbixlKSYmZnVuY3Rpb24odCxuLGUpe3JldHVybiB0PD1uJiZuPD1lfHxlPD1uJiZuPD10fSh0W3I9Kyh0WzBdPT09blswXSldLGVbcl0sbltyXSl9KGYsbCxuKSlyZXR1cm4gMDtzPnIhPWQ+ciYmZTwoaC1jKSooci1zKS8oZC1zKStjJiYoaT0taSl9cmV0dXJuIGl9KHQsbltyXSkpcmV0dXJuIGU7cmV0dXJuIDB9ZnVuY3Rpb24gd2UoKXt9ZnVuY3Rpb24gTWUoKXtmdW5jdGlvbiB0KHQpe3ZhciBlPWEodCk7aWYoQXJyYXkuaXNBcnJheShlKSllPWUuc2xpY2UoKS5zb3J0KGJlKTtlbHNle3ZhciByPXUodCksaT1yWzBdLG89clsxXTtlPWQoaSxvLGUpLGU9cyhNYXRoLmZsb29yKGkvZSkqZSxNYXRoLmZsb29yKG8vZSkqZSxlKX1yZXR1cm4gZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIG4odCxlKX0pfWZ1bmN0aW9uIG4odCxuKXt2YXIgcj1bXSxhPVtdO3JldHVybiBmdW5jdGlvbih0LG4scil7ZnVuY3Rpb24gYSh0KXt2YXIgbixpLG89W3RbMF1bMF0rdSx0WzBdWzFdK2ZdLGE9W3RbMV1bMF0rdSx0WzFdWzFdK2ZdLGM9ZShvKSxzPWUoYSk7KG49cFtjXSk/KGk9ZFtzXSk/KGRlbGV0ZSBwW24uZW5kXSxkZWxldGUgZFtpLnN0YXJ0XSxuPT09aT8obi5yaW5nLnB1c2goYSkscihuLnJpbmcpKTpkW24uc3RhcnRdPXBbaS5lbmRdPXtzdGFydDpuLnN0YXJ0LGVuZDppLmVuZCxyaW5nOm4ucmluZy5jb25jYXQoaS5yaW5nKX0pOihkZWxldGUgcFtuLmVuZF0sbi5yaW5nLnB1c2goYSkscFtuLmVuZD1zXT1uKToobj1kW3NdKT8oaT1wW2NdKT8oZGVsZXRlIGRbbi5zdGFydF0sZGVsZXRlIHBbaS5lbmRdLG49PT1pPyhuLnJpbmcucHVzaChhKSxyKG4ucmluZykpOmRbaS5zdGFydF09cFtuLmVuZF09e3N0YXJ0Omkuc3RhcnQsZW5kOm4uZW5kLHJpbmc6aS5yaW5nLmNvbmNhdChuLnJpbmcpfSk6KGRlbGV0ZSBkW24uc3RhcnRdLG4ucmluZy51bnNoaWZ0KG8pLGRbbi5zdGFydD1jXT1uKTpkW2NdPXBbc109e3N0YXJ0OmMsZW5kOnMscmluZzpbbyxhXX19dmFyIHUsZixjLHMsbCxoLGQ9bmV3IEFycmF5LHA9bmV3IEFycmF5O3U9Zj0tMSxzPXRbMF0+PW4scWhbczw8MV0uZm9yRWFjaChhKTtmb3IoOysrdTxpLTE7KWM9cyxzPXRbdSsxXT49bixxaFtjfHM8PDFdLmZvckVhY2goYSk7cWhbczw8MF0uZm9yRWFjaChhKTtmb3IoOysrZjxvLTE7KXtmb3IodT0tMSxzPXRbZippK2ldPj1uLGw9dFtmKmldPj1uLHFoW3M8PDF8bDw8Ml0uZm9yRWFjaChhKTsrK3U8aS0xOyljPXMscz10W2YqaStpK3UrMV0+PW4saD1sLGw9dFtmKmkrdSsxXT49bixxaFtjfHM8PDF8bDw8MnxoPDwzXS5mb3JFYWNoKGEpO3FoW3N8bDw8M10uZm9yRWFjaChhKX11PS0xLGw9dFtmKmldPj1uLHFoW2w8PDJdLmZvckVhY2goYSk7Zm9yKDsrK3U8aS0xOyloPWwsbD10W2YqaSt1KzFdPj1uLHFoW2w8PDJ8aDw8M10uZm9yRWFjaChhKTtxaFtsPDwzXS5mb3JFYWNoKGEpfSh0LG4sZnVuY3Rpb24oZSl7ZihlLHQsbiksZnVuY3Rpb24odCl7Zm9yKHZhciBuPTAsZT10Lmxlbmd0aCxyPXRbZS0xXVsxXSp0WzBdWzBdLXRbZS0xXVswXSp0WzBdWzFdOysrbjxlOylyKz10W24tMV1bMV0qdFtuXVswXS10W24tMV1bMF0qdFtuXVsxXTtyZXR1cm4gcn0oZSk+MD9yLnB1c2goW2VdKTphLnB1c2goZSl9KSxhLmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9MCxpPXIubGVuZ3RoO2U8aTsrK2UpaWYoLTEhPT14ZSgobj1yW2VdKVswXSx0KSlyZXR1cm4gdm9pZCBuLnB1c2godCl9KSx7dHlwZTpcIk11bHRpUG9seWdvblwiLHZhbHVlOm4sY29vcmRpbmF0ZXM6cn19ZnVuY3Rpb24gZSh0KXtyZXR1cm4gMip0WzBdK3RbMV0qKGkrMSkqNH1mdW5jdGlvbiByKHQsbixlKXt0LmZvckVhY2goZnVuY3Rpb24odCl7dmFyIHIsYT10WzBdLHU9dFsxXSxmPTB8YSxjPTB8dSxzPW5bYyppK2ZdO2E+MCYmYTxpJiZmPT09YSYmKHI9bltjKmkrZi0xXSx0WzBdPWErKGUtcikvKHMtciktLjUpLHU+MCYmdTxvJiZjPT09dSYmKHI9blsoYy0xKSppK2ZdLHRbMV09dSsoZS1yKS8ocy1yKS0uNSl9KX12YXIgaT0xLG89MSxhPXAsZj1yO3JldHVybiB0LmNvbnRvdXI9bix0LnNpemU9ZnVuY3Rpb24obil7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW2ksb107dmFyIGU9TWF0aC5jZWlsKG5bMF0pLHI9TWF0aC5jZWlsKG5bMV0pO2lmKCEoZT4wJiZyPjApKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgc2l6ZVwiKTtyZXR1cm4gaT1lLG89cix0fSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/bWUoVWguY2FsbChuKSk6bWUobiksdCk6YX0sdC5zbW9vdGg9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bj9yOndlLHQpOmY9PT1yfSx0fWZ1bmN0aW9uIEFlKHQsbixlKXtmb3IodmFyIHI9dC53aWR0aCxpPXQuaGVpZ2h0LG89MSsoZTw8MSksYT0wO2E8aTsrK2EpZm9yKHZhciB1PTAsZj0wO3U8citlOysrdSl1PHImJihmKz10LmRhdGFbdSthKnJdKSx1Pj1lJiYodT49byYmKGYtPXQuZGF0YVt1LW8rYSpyXSksbi5kYXRhW3UtZSthKnJdPWYvTWF0aC5taW4odSsxLHItMStvLXUsbykpfWZ1bmN0aW9uIFRlKHQsbixlKXtmb3IodmFyIHI9dC53aWR0aCxpPXQuaGVpZ2h0LG89MSsoZTw8MSksYT0wO2E8cjsrK2EpZm9yKHZhciB1PTAsZj0wO3U8aStlOysrdSl1PGkmJihmKz10LmRhdGFbYSt1KnJdKSx1Pj1lJiYodT49byYmKGYtPXQuZGF0YVthKyh1LW8pKnJdKSxuLmRhdGFbYSsodS1lKSpyXT1mL01hdGgubWluKHUrMSxpLTErby11LG8pKX1mdW5jdGlvbiBOZSh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBTZSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBFZSh0KXtyZXR1cm4gbmV3IEZ1bmN0aW9uKFwiZFwiLFwicmV0dXJuIHtcIit0Lm1hcChmdW5jdGlvbih0LG4pe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KStcIjogZFtcIituK1wiXVwifSkuam9pbihcIixcIikrXCJ9XCIpfWZ1bmN0aW9uIGtlKHQpe2Z1bmN0aW9uIG4odCxuKXtmdW5jdGlvbiBlKCl7aWYoYylyZXR1cm4gWWg7aWYocylyZXR1cm4gcz0hMSxPaDt2YXIgbixlLHI9dTtpZih0LmNoYXJDb2RlQXQocik9PT1CaCl7Zm9yKDt1Kys8YSYmdC5jaGFyQ29kZUF0KHUpIT09Qmh8fHQuY2hhckNvZGVBdCgrK3UpPT09Qmg7KTtyZXR1cm4obj11KT49YT9jPSEwOihlPXQuY2hhckNvZGVBdCh1KyspKT09PUZoP3M9ITA6ZT09PUloJiYocz0hMCx0LmNoYXJDb2RlQXQodSk9PT1GaCYmKyt1KSx0LnNsaWNlKHIrMSxuLTEpLnJlcGxhY2UoL1wiXCIvZywnXCInKX1mb3IoO3U8YTspe2lmKChlPXQuY2hhckNvZGVBdChuPXUrKykpPT09Rmgpcz0hMDtlbHNlIGlmKGU9PT1JaClzPSEwLHQuY2hhckNvZGVBdCh1KT09PUZoJiYrK3U7ZWxzZSBpZihlIT09byljb250aW51ZTtyZXR1cm4gdC5zbGljZShyLG4pfXJldHVybiBjPSEwLHQuc2xpY2UocixhKX12YXIgcixpPVtdLGE9dC5sZW5ndGgsdT0wLGY9MCxjPWE8PTAscz0hMTtmb3IodC5jaGFyQ29kZUF0KGEtMSk9PT1GaCYmLS1hLHQuY2hhckNvZGVBdChhLTEpPT09SWgmJi0tYTsocj1lKCkpIT09WWg7KXtmb3IodmFyIGw9W107ciE9PU9oJiZyIT09WWg7KWwucHVzaChyKSxyPWUoKTtuJiZudWxsPT0obD1uKGwsZisrKSl8fGkucHVzaChsKX1yZXR1cm4gaX1mdW5jdGlvbiBlKG4pe3JldHVybiBuLm1hcChyKS5qb2luKHQpfWZ1bmN0aW9uIHIodCl7cmV0dXJuIG51bGw9PXQ/XCJcIjppLnRlc3QodCs9XCJcIik/J1wiJyt0LnJlcGxhY2UoL1wiL2csJ1wiXCInKSsnXCInOnR9dmFyIGk9bmV3IFJlZ0V4cCgnW1wiJyt0K1wiXFxuXFxyXVwiKSxvPXQuY2hhckNvZGVBdCgwKTtyZXR1cm57cGFyc2U6ZnVuY3Rpb24odCxlKXt2YXIgcixpLG89bih0LGZ1bmN0aW9uKHQsbil7aWYocilyZXR1cm4gcih0LG4tMSk7aT10LHI9ZT9mdW5jdGlvbih0LG4pe3ZhciBlPUVlKHQpO3JldHVybiBmdW5jdGlvbihyLGkpe3JldHVybiBuKGUociksaSx0KX19KHQsZSk6RWUodCl9KTtyZXR1cm4gby5jb2x1bW5zPWl8fFtdLG99LHBhcnNlUm93czpuLGZvcm1hdDpmdW5jdGlvbihuLGUpe3JldHVybiBudWxsPT1lJiYoZT1mdW5jdGlvbih0KXt2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLGU9W107cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0KXtmb3IodmFyIHIgaW4gdClyIGluIG58fGUucHVzaChuW3JdPXIpfSksZX0obikpLFtlLm1hcChyKS5qb2luKHQpXS5jb25jYXQobi5tYXAoZnVuY3Rpb24obil7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiByKG5bdF0pfSkuam9pbih0KX0pKS5qb2luKFwiXFxuXCIpfSxmb3JtYXRSb3dzOmZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChlKS5qb2luKFwiXFxuXCIpfX19ZnVuY3Rpb24gQ2UodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQuYmxvYigpfWZ1bmN0aW9uIFBlKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0LmFycmF5QnVmZmVyKCl9ZnVuY3Rpb24gemUodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQudGV4dCgpfWZ1bmN0aW9uIFJlKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbih6ZSl9ZnVuY3Rpb24gTGUodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSxyKXtyZXR1cm4gMj09PWFyZ3VtZW50cy5sZW5ndGgmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihyPWUsZT12b2lkIDApLFJlKG4sZSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gdChuLHIpfSl9fWZ1bmN0aW9uIERlKHQpe2lmKCF0Lm9rKXRocm93IG5ldyBFcnJvcih0LnN0YXR1cytcIiBcIit0LnN0YXR1c1RleHQpO3JldHVybiB0Lmpzb24oKX1mdW5jdGlvbiBVZSh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXtyZXR1cm4gUmUobixlKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybihuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcobix0KX0pfX1mdW5jdGlvbiBxZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gT2UoKXtyZXR1cm4gMWUtNiooTWF0aC5yYW5kb20oKS0uNSl9ZnVuY3Rpb24gWWUodCxuLGUscil7aWYoaXNOYU4obil8fGlzTmFOKGUpKXJldHVybiB0O3ZhciBpLG8sYSx1LGYsYyxzLGwsaCxkPXQuX3Jvb3QscD17ZGF0YTpyfSx2PXQuX3gwLGc9dC5feTAseT10Ll94MSxfPXQuX3kxO2lmKCFkKXJldHVybiB0Ll9yb290PXAsdDtmb3IoO2QubGVuZ3RoOylpZigoYz1uPj0obz0odit5KS8yKSk/dj1vOnk9bywocz1lPj0oYT0oZytfKS8yKSk/Zz1hOl89YSxpPWQsIShkPWRbbD1zPDwxfGNdKSlyZXR1cm4gaVtsXT1wLHQ7aWYodT0rdC5feC5jYWxsKG51bGwsZC5kYXRhKSxmPSt0Ll95LmNhbGwobnVsbCxkLmRhdGEpLG49PT11JiZlPT09ZilyZXR1cm4gcC5uZXh0PWQsaT9pW2xdPXA6dC5fcm9vdD1wLHQ7ZG97aT1pP2lbbF09bmV3IEFycmF5KDQpOnQuX3Jvb3Q9bmV3IEFycmF5KDQpLChjPW4+PShvPSh2K3kpLzIpKT92PW86eT1vLChzPWU+PShhPShnK18pLzIpKT9nPWE6Xz1hfXdoaWxlKChsPXM8PDF8Yyk9PShoPShmPj1hKTw8MXx1Pj1vKSk7cmV0dXJuIGlbaF09ZCxpW2xdPXAsdH1mdW5jdGlvbiBCZSh0LG4sZSxyLGkpe3RoaXMubm9kZT10LHRoaXMueDA9bix0aGlzLnkwPWUsdGhpcy54MT1yLHRoaXMueTE9aX1mdW5jdGlvbiBGZSh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBJZSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBqZSh0LG4sZSl7dmFyIHI9bmV3IEhlKG51bGw9PW4/RmU6bixudWxsPT1lP0llOmUsTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gbnVsbD09dD9yOnIuYWRkQWxsKHQpfWZ1bmN0aW9uIEhlKHQsbixlLHIsaSxvKXt0aGlzLl94PXQsdGhpcy5feT1uLHRoaXMuX3gwPWUsdGhpcy5feTA9cix0aGlzLl94MT1pLHRoaXMuX3kxPW8sdGhpcy5fcm9vdD12b2lkIDB9ZnVuY3Rpb24gWGUodCl7Zm9yKHZhciBuPXtkYXRhOnQuZGF0YX0sZT1uO3Q9dC5uZXh0OyllPWUubmV4dD17ZGF0YTp0LmRhdGF9O3JldHVybiBufWZ1bmN0aW9uIEdlKHQpe3JldHVybiB0LngrdC52eH1mdW5jdGlvbiBWZSh0KXtyZXR1cm4gdC55K3Qudnl9ZnVuY3Rpb24gJGUodCl7cmV0dXJuIHQuaW5kZXh9ZnVuY3Rpb24gV2UodCxuKXt2YXIgZT10LmdldChuKTtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJtaXNzaW5nOiBcIituKTtyZXR1cm4gZX1mdW5jdGlvbiBaZSh0KXtyZXR1cm4gdC54fWZ1bmN0aW9uIFFlKHQpe3JldHVybiB0Lnl9ZnVuY3Rpb24gSmUodCxuKXtpZigoZT0odD1uP3QudG9FeHBvbmVudGlhbChuLTEpOnQudG9FeHBvbmVudGlhbCgpKS5pbmRleE9mKFwiZVwiKSk8MClyZXR1cm4gbnVsbDt2YXIgZSxyPXQuc2xpY2UoMCxlKTtyZXR1cm5bci5sZW5ndGg+MT9yWzBdK3Iuc2xpY2UoMik6ciwrdC5zbGljZShlKzEpXX1mdW5jdGlvbiBLZSh0KXtyZXR1cm4odD1KZShNYXRoLmFicyh0KSkpP3RbMV06TmFOfWZ1bmN0aW9uIHRyKHQpe3JldHVybiBuZXcgbnIodCl9ZnVuY3Rpb24gbnIodCl7aWYoIShuPXVkLmV4ZWModCkpKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgZm9ybWF0OiBcIit0KTt2YXIgbjt0aGlzLmZpbGw9blsxXXx8XCIgXCIsdGhpcy5hbGlnbj1uWzJdfHxcIj5cIix0aGlzLnNpZ249blszXXx8XCItXCIsdGhpcy5zeW1ib2w9bls0XXx8XCJcIix0aGlzLnplcm89ISFuWzVdLHRoaXMud2lkdGg9bls2XSYmK25bNl0sdGhpcy5jb21tYT0hIW5bN10sdGhpcy5wcmVjaXNpb249bls4XSYmK25bOF0uc2xpY2UoMSksdGhpcy50cmltPSEhbls5XSx0aGlzLnR5cGU9blsxMF18fFwiXCJ9ZnVuY3Rpb24gZXIodCxuKXt2YXIgZT1KZSh0LG4pO2lmKCFlKXJldHVybiB0K1wiXCI7dmFyIHI9ZVswXSxpPWVbMV07cmV0dXJuIGk8MD9cIjAuXCIrbmV3IEFycmF5KC1pKS5qb2luKFwiMFwiKStyOnIubGVuZ3RoPmkrMT9yLnNsaWNlKDAsaSsxKStcIi5cIityLnNsaWNlKGkrMSk6cituZXcgQXJyYXkoaS1yLmxlbmd0aCsyKS5qb2luKFwiMFwiKX1mdW5jdGlvbiBycih0KXtyZXR1cm4gdH1mdW5jdGlvbiBpcih0KXtmdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIG4odCl7dmFyIG4scixhLHM9eSx4PV87aWYoXCJjXCI9PT1nKXg9Yih0KSt4LHQ9XCJcIjtlbHNle3ZhciB3PSh0PSt0KTwwO2lmKHQ9YihNYXRoLmFicyh0KSxwKSx2JiYodD1mdW5jdGlvbih0KXt0OmZvcih2YXIgbixlPXQubGVuZ3RoLHI9MSxpPS0xO3I8ZTsrK3Ipc3dpdGNoKHRbcl0pe2Nhc2VcIi5cIjppPW49cjticmVhaztjYXNlXCIwXCI6MD09PWkmJihpPXIpLG49cjticmVhaztkZWZhdWx0OmlmKGk+MCl7aWYoISt0W3JdKWJyZWFrIHQ7aT0wfX1yZXR1cm4gaT4wP3Quc2xpY2UoMCxpKSt0LnNsaWNlKG4rMSk6dH0odCkpLHcmJjA9PSt0JiYodz0hMSkscz0odz9cIihcIj09PWM/YzpcIi1cIjpcIi1cIj09PWN8fFwiKFwiPT09Yz9cIlwiOmMpK3MseD0oXCJzXCI9PT1nP2xkWzgrZmQvM106XCJcIikreCsodyYmXCIoXCI9PT1jP1wiKVwiOlwiXCIpLG0pZm9yKG49LTEscj10Lmxlbmd0aDsrK248cjspaWYoNDg+KGE9dC5jaGFyQ29kZUF0KG4pKXx8YT41Nyl7eD0oNDY9PT1hP2krdC5zbGljZShuKzEpOnQuc2xpY2UobikpK3gsdD10LnNsaWNlKDAsbik7YnJlYWt9fWQmJiFsJiYodD1lKHQsMS8wKSk7dmFyIE09cy5sZW5ndGgrdC5sZW5ndGgreC5sZW5ndGgsQT1NPGg/bmV3IEFycmF5KGgtTSsxKS5qb2luKHUpOlwiXCI7c3dpdGNoKGQmJmwmJih0PWUoQSt0LEEubGVuZ3RoP2gteC5sZW5ndGg6MS8wKSxBPVwiXCIpLGYpe2Nhc2VcIjxcIjp0PXMrdCt4K0E7YnJlYWs7Y2FzZVwiPVwiOnQ9cytBK3QreDticmVhaztjYXNlXCJeXCI6dD1BLnNsaWNlKDAsTT1BLmxlbmd0aD4+MSkrcyt0K3grQS5zbGljZShNKTticmVhaztkZWZhdWx0OnQ9QStzK3QreH1yZXR1cm4gbyh0KX12YXIgdT0odD10cih0KSkuZmlsbCxmPXQuYWxpZ24sYz10LnNpZ24scz10LnN5bWJvbCxsPXQuemVybyxoPXQud2lkdGgsZD10LmNvbW1hLHA9dC5wcmVjaXNpb24sdj10LnRyaW0sZz10LnR5cGU7XCJuXCI9PT1nPyhkPSEwLGc9XCJnXCIpOnNkW2ddfHwobnVsbD09cCYmKHA9MTIpLHY9ITAsZz1cImdcIiksKGx8fFwiMFwiPT09dSYmXCI9XCI9PT1mKSYmKGw9ITAsdT1cIjBcIixmPVwiPVwiKTt2YXIgeT1cIiRcIj09PXM/clswXTpcIiNcIj09PXMmJi9bYm94WF0vLnRlc3QoZyk/XCIwXCIrZy50b0xvd2VyQ2FzZSgpOlwiXCIsXz1cIiRcIj09PXM/clsxXTovWyVwXS8udGVzdChnKT9hOlwiXCIsYj1zZFtnXSxtPS9bZGVmZ3BycyVdLy50ZXN0KGcpO3JldHVybiBwPW51bGw9PXA/NjovW2dwcnNdLy50ZXN0KGcpP01hdGgubWF4KDEsTWF0aC5taW4oMjEscCkpOk1hdGgubWF4KDAsTWF0aC5taW4oMjAscCkpLG4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdCtcIlwifSxufXZhciBlPXQuZ3JvdXBpbmcmJnQudGhvdXNhbmRzP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUscil7Zm9yKHZhciBpPWUubGVuZ3RoLG89W10sYT0wLHU9dFswXSxmPTA7aT4wJiZ1PjAmJihmK3UrMT5yJiYodT1NYXRoLm1heCgxLHItZikpLG8ucHVzaChlLnN1YnN0cmluZyhpLT11LGkrdSkpLCEoKGYrPXUrMSk+cikpOyl1PXRbYT0oYSsxKSV0Lmxlbmd0aF07cmV0dXJuIG8ucmV2ZXJzZSgpLmpvaW4obil9fSh0Lmdyb3VwaW5nLHQudGhvdXNhbmRzKTpycixyPXQuY3VycmVuY3ksaT10LmRlY2ltYWwsbz10Lm51bWVyYWxzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gbi5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKG4pe3JldHVybiB0WytuXX0pfX0odC5udW1lcmFscyk6cnIsYT10LnBlcmNlbnR8fFwiJVwiO3JldHVybntmb3JtYXQ6bixmb3JtYXRQcmVmaXg6ZnVuY3Rpb24odCxlKXt2YXIgcj1uKCh0PXRyKHQpLHQudHlwZT1cImZcIix0KSksaT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihLZShlKS8zKSkpLG89TWF0aC5wb3coMTAsLWkpLGE9bGRbOCtpLzNdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gcihvKnQpK2F9fX19ZnVuY3Rpb24gb3Iobil7cmV0dXJuIGNkPWlyKG4pLHQuZm9ybWF0PWNkLmZvcm1hdCx0LmZvcm1hdFByZWZpeD1jZC5mb3JtYXRQcmVmaXgsY2R9ZnVuY3Rpb24gYXIodCl7cmV0dXJuIE1hdGgubWF4KDAsLUtlKE1hdGguYWJzKHQpKSl9ZnVuY3Rpb24gdXIodCxuKXtyZXR1cm4gTWF0aC5tYXgoMCwzKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihLZShuKS8zKSkpLUtlKE1hdGguYWJzKHQpKSl9ZnVuY3Rpb24gZnIodCxuKXtyZXR1cm4gdD1NYXRoLmFicyh0KSxuPU1hdGguYWJzKG4pLXQsTWF0aC5tYXgoMCxLZShuKS1LZSh0KSkrMX1mdW5jdGlvbiBjcigpe3JldHVybiBuZXcgc3J9ZnVuY3Rpb24gc3IoKXt0aGlzLnJlc2V0KCl9ZnVuY3Rpb24gbHIodCxuLGUpe3ZhciByPXQucz1uK2UsaT1yLW4sbz1yLWk7dC50PW4tbysoZS1pKX1mdW5jdGlvbiBocih0KXtyZXR1cm4gdD4xPzA6dDwtMT9HZDpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gZHIodCl7cmV0dXJuIHQ+MT9WZDp0PC0xPy1WZDpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gcHIodCl7cmV0dXJuKHQ9YXAodC8yKSkqdH1mdW5jdGlvbiB2cigpe31mdW5jdGlvbiBncih0LG4pe3QmJmxwLmhhc093blByb3BlcnR5KHQudHlwZSkmJmxwW3QudHlwZV0odCxuKX1mdW5jdGlvbiB5cih0LG4sZSl7dmFyIHIsaT0tMSxvPXQubGVuZ3RoLWU7Zm9yKG4ubGluZVN0YXJ0KCk7KytpPG87KXI9dFtpXSxuLnBvaW50KHJbMF0sclsxXSxyWzJdKTtuLmxpbmVFbmQoKX1mdW5jdGlvbiBfcih0LG4pe3ZhciBlPS0xLHI9dC5sZW5ndGg7Zm9yKG4ucG9seWdvblN0YXJ0KCk7KytlPHI7KXlyKHRbZV0sbiwxKTtuLnBvbHlnb25FbmQoKX1mdW5jdGlvbiBicih0LG4pe3QmJnNwLmhhc093blByb3BlcnR5KHQudHlwZSk/c3BbdC50eXBlXSh0LG4pOmdyKHQsbil9ZnVuY3Rpb24gbXIoKXtwcC5wb2ludD13cn1mdW5jdGlvbiB4cigpe01yKGhkLGRkKX1mdW5jdGlvbiB3cih0LG4pe3BwLnBvaW50PU1yLGhkPXQsZGQ9bixwZD10Kj1RZCx2ZD1ucChuPShuKj1RZCkvMiskZCksZ2Q9YXAobil9ZnVuY3Rpb24gTXIodCxuKXtuPShuKj1RZCkvMiskZDt2YXIgZT0odCo9UWQpLXBkLHI9ZT49MD8xOi0xLGk9ciplLG89bnAobiksYT1hcChuKSx1PWdkKmEsZj12ZCpvK3UqbnAoaSksYz11KnIqYXAoaSk7aHAuYWRkKHRwKGMsZikpLHBkPXQsdmQ9byxnZD1hfWZ1bmN0aW9uIEFyKHQpe3JldHVyblt0cCh0WzFdLHRbMF0pLGRyKHRbMl0pXX1mdW5jdGlvbiBUcih0KXt2YXIgbj10WzBdLGU9dFsxXSxyPW5wKGUpO3JldHVybltyKm5wKG4pLHIqYXAobiksYXAoZSldfWZ1bmN0aW9uIE5yKHQsbil7cmV0dXJuIHRbMF0qblswXSt0WzFdKm5bMV0rdFsyXSpuWzJdfWZ1bmN0aW9uIFNyKHQsbil7cmV0dXJuW3RbMV0qblsyXS10WzJdKm5bMV0sdFsyXSpuWzBdLXRbMF0qblsyXSx0WzBdKm5bMV0tdFsxXSpuWzBdXX1mdW5jdGlvbiBFcih0LG4pe3RbMF0rPW5bMF0sdFsxXSs9blsxXSx0WzJdKz1uWzJdfWZ1bmN0aW9uIGtyKHQsbil7cmV0dXJuW3RbMF0qbix0WzFdKm4sdFsyXSpuXX1mdW5jdGlvbiBDcih0KXt2YXIgbj1mcCh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSk7dFswXS89bix0WzFdLz1uLHRbMl0vPW59ZnVuY3Rpb24gUHIodCxuKXtUZC5wdXNoKE5kPVt5ZD10LGJkPXRdKSxuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pfWZ1bmN0aW9uIHpyKHQsbil7dmFyIGU9VHIoW3QqUWQsbipRZF0pO2lmKEFkKXt2YXIgcj1TcihBZCxlKSxpPVNyKFtyWzFdLC1yWzBdLDBdLHIpO0NyKGkpLGk9QXIoaSk7dmFyIG8sYT10LXhkLHU9YT4wPzE6LTEsZj1pWzBdKlpkKnUsYz1KZChhKT4xODA7Y14odSp4ZDxmJiZmPHUqdCk/KG89aVsxXSpaZCk+bWQmJihtZD1vKTooZj0oZiszNjApJTM2MC0xODAsY14odSp4ZDxmJiZmPHUqdCk/KG89LWlbMV0qWmQpPF9kJiYoX2Q9byk6KG48X2QmJihfZD1uKSxuPm1kJiYobWQ9bikpKSxjP3Q8eGQ/T3IoeWQsdCk+T3IoeWQsYmQpJiYoYmQ9dCk6T3IodCxiZCk+T3IoeWQsYmQpJiYoeWQ9dCk6YmQ+PXlkPyh0PHlkJiYoeWQ9dCksdD5iZCYmKGJkPXQpKTp0PnhkP09yKHlkLHQpPk9yKHlkLGJkKSYmKGJkPXQpOk9yKHQsYmQpPk9yKHlkLGJkKSYmKHlkPXQpfWVsc2UgVGQucHVzaChOZD1beWQ9dCxiZD10XSk7bjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKSxBZD1lLHhkPXR9ZnVuY3Rpb24gUnIoKXtncC5wb2ludD16cn1mdW5jdGlvbiBMcigpe05kWzBdPXlkLE5kWzFdPWJkLGdwLnBvaW50PVByLEFkPW51bGx9ZnVuY3Rpb24gRHIodCxuKXtpZihBZCl7dmFyIGU9dC14ZDt2cC5hZGQoSmQoZSk+MTgwP2UrKGU+MD8zNjA6LTM2MCk6ZSl9ZWxzZSB3ZD10LE1kPW47cHAucG9pbnQodCxuKSx6cih0LG4pfWZ1bmN0aW9uIFVyKCl7cHAubGluZVN0YXJ0KCl9ZnVuY3Rpb24gcXIoKXtEcih3ZCxNZCkscHAubGluZUVuZCgpLEpkKHZwKT5IZCYmKHlkPS0oYmQ9MTgwKSksTmRbMF09eWQsTmRbMV09YmQsQWQ9bnVsbH1mdW5jdGlvbiBPcih0LG4pe3JldHVybihuLT10KTwwP24rMzYwOm59ZnVuY3Rpb24gWXIodCxuKXtyZXR1cm4gdFswXS1uWzBdfWZ1bmN0aW9uIEJyKHQsbil7cmV0dXJuIHRbMF08PXRbMV0/dFswXTw9biYmbjw9dFsxXTpuPHRbMF18fHRbMV08bn1mdW5jdGlvbiBGcih0LG4pe3QqPVFkO3ZhciBlPW5wKG4qPVFkKTtJcihlKm5wKHQpLGUqYXAodCksYXAobikpfWZ1bmN0aW9uIElyKHQsbixlKXtrZCs9KHQta2QpLysrU2QsQ2QrPShuLUNkKS9TZCxQZCs9KGUtUGQpL1NkfWZ1bmN0aW9uIGpyKCl7eXAucG9pbnQ9SHJ9ZnVuY3Rpb24gSHIodCxuKXt0Kj1RZDt2YXIgZT1ucChuKj1RZCk7QmQ9ZSpucCh0KSxGZD1lKmFwKHQpLElkPWFwKG4pLHlwLnBvaW50PVhyLElyKEJkLEZkLElkKX1mdW5jdGlvbiBYcih0LG4pe3QqPVFkO3ZhciBlPW5wKG4qPVFkKSxyPWUqbnAodCksaT1lKmFwKHQpLG89YXAobiksYT10cChmcCgoYT1GZCpvLUlkKmkpKmErKGE9SWQqci1CZCpvKSphKyhhPUJkKmktRmQqcikqYSksQmQqcitGZCppK0lkKm8pO0VkKz1hLHpkKz1hKihCZCsoQmQ9cikpLFJkKz1hKihGZCsoRmQ9aSkpLExkKz1hKihJZCsoSWQ9bykpLElyKEJkLEZkLElkKX1mdW5jdGlvbiBHcigpe3lwLnBvaW50PUZyfWZ1bmN0aW9uIFZyKCl7eXAucG9pbnQ9V3J9ZnVuY3Rpb24gJHIoKXtacihPZCxZZCkseXAucG9pbnQ9RnJ9ZnVuY3Rpb24gV3IodCxuKXtPZD10LFlkPW4sdCo9UWQsbio9UWQseXAucG9pbnQ9WnI7dmFyIGU9bnAobik7QmQ9ZSpucCh0KSxGZD1lKmFwKHQpLElkPWFwKG4pLElyKEJkLEZkLElkKX1mdW5jdGlvbiBacih0LG4pe3QqPVFkO3ZhciBlPW5wKG4qPVFkKSxyPWUqbnAodCksaT1lKmFwKHQpLG89YXAobiksYT1GZCpvLUlkKmksdT1JZCpyLUJkKm8sZj1CZCppLUZkKnIsYz1mcChhKmErdSp1K2YqZikscz1kcihjKSxsPWMmJi1zL2M7RGQrPWwqYSxVZCs9bCp1LHFkKz1sKmYsRWQrPXMsemQrPXMqKEJkKyhCZD1yKSksUmQrPXMqKEZkKyhGZD1pKSksTGQrPXMqKElkKyhJZD1vKSksSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIFFyKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBKcih0LG4pe2Z1bmN0aW9uIGUoZSxyKXtyZXR1cm4gZT10KGUsciksbihlWzBdLGVbMV0pfXJldHVybiB0LmludmVydCYmbi5pbnZlcnQmJihlLmludmVydD1mdW5jdGlvbihlLHIpe3JldHVybihlPW4uaW52ZXJ0KGUscikpJiZ0LmludmVydChlWzBdLGVbMV0pfSksZX1mdW5jdGlvbiBLcih0LG4pe3JldHVyblt0PkdkP3QtV2Q6dDwtR2Q/dCtXZDp0LG5dfWZ1bmN0aW9uIHRpKHQsbixlKXtyZXR1cm4odCU9V2QpP258fGU/SnIoZWkodCkscmkobixlKSk6ZWkodCk6bnx8ZT9yaShuLGUpOktyfWZ1bmN0aW9uIG5pKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3JldHVybiBuKz10LFtuPkdkP24tV2Q6bjwtR2Q/bitXZDpuLGVdfX1mdW5jdGlvbiBlaSh0KXt2YXIgbj1uaSh0KTtyZXR1cm4gbi5pbnZlcnQ9bmkoLXQpLG59ZnVuY3Rpb24gcmkodCxuKXtmdW5jdGlvbiBlKHQsbil7dmFyIGU9bnAobiksdT1ucCh0KSplLGY9YXAodCkqZSxjPWFwKG4pLHM9YypyK3UqaTtyZXR1cm5bdHAoZipvLXMqYSx1KnItYyppKSxkcihzKm8rZiphKV19dmFyIHI9bnAodCksaT1hcCh0KSxvPW5wKG4pLGE9YXAobik7cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9bnAobiksdT1ucCh0KSplLGY9YXAodCkqZSxjPWFwKG4pLHM9YypvLWYqYTtyZXR1cm5bdHAoZipvK2MqYSx1KnIrcyppKSxkcihzKnItdSppKV19LGV9ZnVuY3Rpb24gaWkodCl7ZnVuY3Rpb24gbihuKXtyZXR1cm4gbj10KG5bMF0qUWQsblsxXSpRZCksblswXSo9WmQsblsxXSo9WmQsbn1yZXR1cm4gdD10aSh0WzBdKlFkLHRbMV0qUWQsdC5sZW5ndGg+Mj90WzJdKlFkOjApLG4uaW52ZXJ0PWZ1bmN0aW9uKG4pe3JldHVybiBuPXQuaW52ZXJ0KG5bMF0qUWQsblsxXSpRZCksblswXSo9WmQsblsxXSo9WmQsbn0sbn1mdW5jdGlvbiBvaSh0LG4sZSxyLGksbyl7aWYoZSl7dmFyIGE9bnAobiksdT1hcChuKSxmPXIqZTtudWxsPT1pPyhpPW4rcipXZCxvPW4tZi8yKTooaT1haShhLGkpLG89YWkoYSxvKSwocj4wP2k8bzppPm8pJiYoaSs9cipXZCkpO2Zvcih2YXIgYyxzPWk7cj4wP3M+bzpzPG87cy09ZiljPUFyKFthLC11Km5wKHMpLC11KmFwKHMpXSksdC5wb2ludChjWzBdLGNbMV0pfX1mdW5jdGlvbiBhaSh0LG4peyhuPVRyKG4pKVswXS09dCxDcihuKTt2YXIgZT1ocigtblsxXSk7cmV0dXJuKCgtblsyXTwwPy1lOmUpK1dkLUhkKSVXZH1mdW5jdGlvbiB1aSgpe3ZhciB0LG49W107cmV0dXJue3BvaW50OmZ1bmN0aW9uKG4sZSl7dC5wdXNoKFtuLGVdKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7bi5wdXNoKHQ9W10pfSxsaW5lRW5kOnZyLHJlam9pbjpmdW5jdGlvbigpe24ubGVuZ3RoPjEmJm4ucHVzaChuLnBvcCgpLmNvbmNhdChuLnNoaWZ0KCkpKX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIGU9bjtyZXR1cm4gbj1bXSx0PW51bGwsZX19fWZ1bmN0aW9uIGZpKHQsbil7cmV0dXJuIEpkKHRbMF0tblswXSk8SGQmJkpkKHRbMV0tblsxXSk8SGR9ZnVuY3Rpb24gY2kodCxuLGUscil7dGhpcy54PXQsdGhpcy56PW4sdGhpcy5vPWUsdGhpcy5lPXIsdGhpcy52PSExLHRoaXMubj10aGlzLnA9bnVsbH1mdW5jdGlvbiBzaSh0LG4sZSxyLGkpe3ZhciBvLGEsdT1bXSxmPVtdO2lmKHQuZm9yRWFjaChmdW5jdGlvbih0KXtpZighKChuPXQubGVuZ3RoLTEpPD0wKSl7dmFyIG4sZSxyPXRbMF0sYT10W25dO2lmKGZpKHIsYSkpe2ZvcihpLmxpbmVTdGFydCgpLG89MDtvPG47KytvKWkucG9pbnQoKHI9dFtvXSlbMF0sclsxXSk7aS5saW5lRW5kKCl9ZWxzZSB1LnB1c2goZT1uZXcgY2kocix0LG51bGwsITApKSxmLnB1c2goZS5vPW5ldyBjaShyLG51bGwsZSwhMSkpLHUucHVzaChlPW5ldyBjaShhLHQsbnVsbCwhMSkpLGYucHVzaChlLm89bmV3IGNpKGEsbnVsbCxlLCEwKSl9fSksdS5sZW5ndGgpe2ZvcihmLnNvcnQobiksbGkodSksbGkoZiksbz0wLGE9Zi5sZW5ndGg7bzxhOysrbylmW29dLmU9ZT0hZTtmb3IodmFyIGMscyxsPXVbMF07Oyl7Zm9yKHZhciBoPWwsZD0hMDtoLnY7KWlmKChoPWgubik9PT1sKXJldHVybjtjPWgueixpLmxpbmVTdGFydCgpO2Rve2lmKGgudj1oLm8udj0hMCxoLmUpe2lmKGQpZm9yKG89MCxhPWMubGVuZ3RoO288YTsrK28paS5wb2ludCgocz1jW29dKVswXSxzWzFdKTtlbHNlIHIoaC54LGgubi54LDEsaSk7aD1oLm59ZWxzZXtpZihkKWZvcihjPWgucC56LG89Yy5sZW5ndGgtMTtvPj0wOy0tbylpLnBvaW50KChzPWNbb10pWzBdLHNbMV0pO2Vsc2UgcihoLngsaC5wLngsLTEsaSk7aD1oLnB9Yz0oaD1oLm8pLnosZD0hZH13aGlsZSghaC52KTtpLmxpbmVFbmQoKX19fWZ1bmN0aW9uIGxpKHQpe2lmKG49dC5sZW5ndGgpe2Zvcih2YXIgbixlLHI9MCxpPXRbMF07KytyPG47KWkubj1lPXRbcl0sZS5wPWksaT1lO2kubj1lPXRbMF0sZS5wPWl9fWZ1bmN0aW9uIGhpKHQsbil7dmFyIGU9blswXSxyPW5bMV0saT1hcChyKSxvPVthcChlKSwtbnAoZSksMF0sYT0wLHU9MDtrcC5yZXNldCgpLDE9PT1pP3I9VmQrSGQ6LTE9PT1pJiYocj0tVmQtSGQpO2Zvcih2YXIgZj0wLGM9dC5sZW5ndGg7ZjxjOysrZilpZihsPShzPXRbZl0pLmxlbmd0aClmb3IodmFyIHMsbCxoPXNbbC0xXSxkPWhbMF0scD1oWzFdLzIrJGQsdj1hcChwKSxnPW5wKHApLHk9MDt5PGw7Kyt5LGQ9Yix2PXgsZz13LGg9Xyl7dmFyIF89c1t5XSxiPV9bMF0sbT1fWzFdLzIrJGQseD1hcChtKSx3PW5wKG0pLE09Yi1kLEE9TT49MD8xOi0xLFQ9QSpNLE49VD5HZCxTPXYqeDtpZihrcC5hZGQodHAoUypBKmFwKFQpLGcqdytTKm5wKFQpKSksYSs9Tj9NK0EqV2Q6TSxOXmQ+PWVeYj49ZSl7dmFyIEU9U3IoVHIoaCksVHIoXykpO0NyKEUpO3ZhciBrPVNyKG8sRSk7Q3Ioayk7dmFyIEM9KE5eTT49MD8tMToxKSpkcihrWzJdKTsocj5DfHxyPT09QyYmKEVbMF18fEVbMV0pKSYmKHUrPU5eTT49MD8xOi0xKX19cmV0dXJuKGE8LUhkfHxhPEhkJiZrcDwtSGQpXjEmdX1mdW5jdGlvbiBkaSh0LG4sZSxyKXtyZXR1cm4gZnVuY3Rpb24oaSl7ZnVuY3Rpb24gbyhuLGUpe3QobixlKSYmaS5wb2ludChuLGUpfWZ1bmN0aW9uIGEodCxuKXt2LnBvaW50KHQsbil9ZnVuY3Rpb24gdSgpe20ucG9pbnQ9YSx2LmxpbmVTdGFydCgpfWZ1bmN0aW9uIGYoKXttLnBvaW50PW8sdi5saW5lRW5kKCl9ZnVuY3Rpb24gYyh0LG4pe3AucHVzaChbdCxuXSksXy5wb2ludCh0LG4pfWZ1bmN0aW9uIHMoKXtfLmxpbmVTdGFydCgpLHA9W119ZnVuY3Rpb24gbCgpe2MocFswXVswXSxwWzBdWzFdKSxfLmxpbmVFbmQoKTt2YXIgdCxuLGUscixvPV8uY2xlYW4oKSxhPWcucmVzdWx0KCksdT1hLmxlbmd0aDtpZihwLnBvcCgpLGgucHVzaChwKSxwPW51bGwsdSlpZigxJm8pe2lmKGU9YVswXSwobj1lLmxlbmd0aC0xKT4wKXtmb3IoYnx8KGkucG9seWdvblN0YXJ0KCksYj0hMCksaS5saW5lU3RhcnQoKSx0PTA7dDxuOysrdClpLnBvaW50KChyPWVbdF0pWzBdLHJbMV0pO2kubGluZUVuZCgpfX1lbHNlIHU+MSYmMiZvJiZhLnB1c2goYS5wb3AoKS5jb25jYXQoYS5zaGlmdCgpKSksZC5wdXNoKGEuZmlsdGVyKHBpKSl9dmFyIGgsZCxwLHY9bihpKSxnPXVpKCksXz1uKGcpLGI9ITEsbT17cG9pbnQ6byxsaW5lU3RhcnQ6dSxsaW5lRW5kOmYscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7bS5wb2ludD1jLG0ubGluZVN0YXJ0PXMsbS5saW5lRW5kPWwsZD1bXSxoPVtdfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7bS5wb2ludD1vLG0ubGluZVN0YXJ0PXUsbS5saW5lRW5kPWYsZD15KGQpO3ZhciB0PWhpKGgscik7ZC5sZW5ndGg/KGJ8fChpLnBvbHlnb25TdGFydCgpLGI9ITApLHNpKGQsdmksdCxlLGkpKTp0JiYoYnx8KGkucG9seWdvblN0YXJ0KCksYj0hMCksaS5saW5lU3RhcnQoKSxlKG51bGwsbnVsbCwxLGkpLGkubGluZUVuZCgpKSxiJiYoaS5wb2x5Z29uRW5kKCksYj0hMSksZD1oPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe2kucG9seWdvblN0YXJ0KCksaS5saW5lU3RhcnQoKSxlKG51bGwsbnVsbCwxLGkpLGkubGluZUVuZCgpLGkucG9seWdvbkVuZCgpfX07cmV0dXJuIG19fWZ1bmN0aW9uIHBpKHQpe3JldHVybiB0Lmxlbmd0aD4xfWZ1bmN0aW9uIHZpKHQsbil7cmV0dXJuKCh0PXQueClbMF08MD90WzFdLVZkLUhkOlZkLXRbMV0pLSgobj1uLngpWzBdPDA/blsxXS1WZC1IZDpWZC1uWzFdKX1mdW5jdGlvbiBnaSh0KXtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIG5wKHQpKm5wKG4pPml9ZnVuY3Rpb24gZSh0LG4sZSl7dmFyIHI9WzEsMCwwXSxvPVNyKFRyKHQpLFRyKG4pKSxhPU5yKG8sbyksdT1vWzBdLGY9YS11KnU7aWYoIWYpcmV0dXJuIWUmJnQ7dmFyIGM9aSphL2Yscz0taSp1L2YsbD1TcihyLG8pLGg9a3IocixjKTtFcihoLGtyKG8scykpO3ZhciBkPWwscD1OcihoLGQpLHY9TnIoZCxkKSxnPXAqcC12KihOcihoLGgpLTEpO2lmKCEoZzwwKSl7dmFyIHk9ZnAoZyksXz1rcihkLCgtcC15KS92KTtpZihFcihfLGgpLF89QXIoXyksIWUpcmV0dXJuIF87dmFyIGIsbT10WzBdLHg9blswXSx3PXRbMV0sTT1uWzFdO3g8bSYmKGI9bSxtPXgseD1iKTt2YXIgQT14LW0sVD1KZChBLUdkKTxIZDtpZighVCYmTTx3JiYoYj13LHc9TSxNPWIpLFR8fEE8SGQ/VD93K00+MF5fWzFdPChKZChfWzBdLW0pPEhkP3c6TSk6dzw9X1sxXSYmX1sxXTw9TTpBPkdkXihtPD1fWzBdJiZfWzBdPD14KSl7dmFyIE49a3IoZCwoLXAreSkvdik7cmV0dXJuIEVyKE4saCksW18sQXIoTildfX19ZnVuY3Rpb24gcihuLGUpe3ZhciByPWE/dDpHZC10LGk9MDtyZXR1cm4gbjwtcj9pfD0xOm4+ciYmKGl8PTIpLGU8LXI/aXw9NDplPnImJihpfD04KSxpfXZhciBpPW5wKHQpLG89NipRZCxhPWk+MCx1PUpkKGkpPkhkO3JldHVybiBkaShuLGZ1bmN0aW9uKHQpe3ZhciBpLG8sZixjLHM7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe2M9Zj0hMSxzPTF9LHBvaW50OmZ1bmN0aW9uKGwsaCl7dmFyIGQscD1bbCxoXSx2PW4obCxoKSxnPWE/dj8wOnIobCxoKTp2P3IobCsobDwwP0dkOi1HZCksaCk6MDtpZighaSYmKGM9Zj12KSYmdC5saW5lU3RhcnQoKSx2IT09ZiYmKCEoZD1lKGkscCkpfHxmaShpLGQpfHxmaShwLGQpKSYmKHBbMF0rPUhkLHBbMV0rPUhkLHY9bihwWzBdLHBbMV0pKSx2IT09ZilzPTAsdj8odC5saW5lU3RhcnQoKSxkPWUocCxpKSx0LnBvaW50KGRbMF0sZFsxXSkpOihkPWUoaSxwKSx0LnBvaW50KGRbMF0sZFsxXSksdC5saW5lRW5kKCkpLGk9ZDtlbHNlIGlmKHUmJmkmJmFedil7dmFyIHk7ZyZvfHwhKHk9ZShwLGksITApKXx8KHM9MCxhPyh0LmxpbmVTdGFydCgpLHQucG9pbnQoeVswXVswXSx5WzBdWzFdKSx0LnBvaW50KHlbMV1bMF0seVsxXVsxXSksdC5saW5lRW5kKCkpOih0LnBvaW50KHlbMV1bMF0seVsxXVsxXSksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHlbMF1bMF0seVswXVsxXSkpKX0hdnx8aSYmZmkoaSxwKXx8dC5wb2ludChwWzBdLHBbMV0pLGk9cCxmPXYsbz1nfSxsaW5lRW5kOmZ1bmN0aW9uKCl7ZiYmdC5saW5lRW5kKCksaT1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiBzfChjJiZmKTw8MX19fSxmdW5jdGlvbihuLGUscixpKXtvaShpLHQsbyxyLG4sZSl9LGE/WzAsLXRdOlstR2QsdC1HZF0pfWZ1bmN0aW9uIHlpKHQsbixlLHIpe2Z1bmN0aW9uIGkoaSxvKXtyZXR1cm4gdDw9aSYmaTw9ZSYmbjw9byYmbzw9cn1mdW5jdGlvbiBvKGksbyx1LGMpe3ZhciBzPTAsbD0wO2lmKG51bGw9PWl8fChzPWEoaSx1KSkhPT0obD1hKG8sdSkpfHxmKGksbyk8MF51PjApZG97Yy5wb2ludCgwPT09c3x8Mz09PXM/dDplLHM+MT9yOm4pfXdoaWxlKChzPShzK3UrNCklNCkhPT1sKTtlbHNlIGMucG9pbnQob1swXSxvWzFdKX1mdW5jdGlvbiBhKHIsaSl7cmV0dXJuIEpkKHJbMF0tdCk8SGQ/aT4wPzA6MzpKZChyWzBdLWUpPEhkP2k+MD8yOjE6SmQoclsxXS1uKTxIZD9pPjA/MTowOmk+MD8zOjJ9ZnVuY3Rpb24gdSh0LG4pe3JldHVybiBmKHQueCxuLngpfWZ1bmN0aW9uIGYodCxuKXt2YXIgZT1hKHQsMSkscj1hKG4sMSk7cmV0dXJuIGUhPT1yP2UtcjowPT09ZT9uWzFdLXRbMV06MT09PWU/dFswXS1uWzBdOjI9PT1lP3RbMV0tblsxXTpuWzBdLXRbMF19cmV0dXJuIGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGYodCxuKXtpKHQsbikmJncucG9pbnQodCxuKX1mdW5jdGlvbiBjKG8sYSl7dmFyIHU9aShvLGEpO2lmKGwmJmgucHVzaChbbyxhXSksbSlkPW8scD1hLHY9dSxtPSExLHUmJih3LmxpbmVTdGFydCgpLHcucG9pbnQobyxhKSk7ZWxzZSBpZih1JiZiKXcucG9pbnQobyxhKTtlbHNle3ZhciBmPVtnPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLGcpKSxfPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLF8pKV0sYz1bbz1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxvKSksYT1NYXRoLm1heCh6cCxNYXRoLm1pbihQcCxhKSldOyFmdW5jdGlvbih0LG4sZSxyLGksbyl7dmFyIGEsdT10WzBdLGY9dFsxXSxjPTAscz0xLGw9blswXS11LGg9blsxXS1mO2lmKGE9ZS11LGx8fCEoYT4wKSl7aWYoYS89bCxsPDApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1lbHNlIGlmKGw+MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWlmKGE9aS11LGx8fCEoYTwwKSl7aWYoYS89bCxsPDApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGw+MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfWlmKGE9ci1mLGh8fCEoYT4wKSl7aWYoYS89aCxoPDApe2lmKGE8YylyZXR1cm47YTxzJiYocz1hKX1lbHNlIGlmKGg+MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWlmKGE9by1mLGh8fCEoYTwwKSl7aWYoYS89aCxoPDApe2lmKGE+cylyZXR1cm47YT5jJiYoYz1hKX1lbHNlIGlmKGg+MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfXJldHVybiBjPjAmJih0WzBdPXUrYypsLHRbMV09ZitjKmgpLHM8MSYmKG5bMF09dStzKmwsblsxXT1mK3MqaCksITB9fX19fShmLGMsdCxuLGUscik/dSYmKHcubGluZVN0YXJ0KCksdy5wb2ludChvLGEpLHg9ITEpOihifHwody5saW5lU3RhcnQoKSx3LnBvaW50KGZbMF0sZlsxXSkpLHcucG9pbnQoY1swXSxjWzFdKSx1fHx3LmxpbmVFbmQoKSx4PSExKX1nPW8sXz1hLGI9dX12YXIgcyxsLGgsZCxwLHYsZyxfLGIsbSx4LHc9YSxNPXVpKCksQT17cG9pbnQ6ZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtBLnBvaW50PWMsbCYmbC5wdXNoKGg9W10pLG09ITAsYj0hMSxnPV89TmFOfSxsaW5lRW5kOmZ1bmN0aW9uKCl7cyYmKGMoZCxwKSx2JiZiJiZNLnJlam9pbigpLHMucHVzaChNLnJlc3VsdCgpKSksQS5wb2ludD1mLGImJncubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt3PU0scz1bXSxsPVtdLHg9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgbj1mdW5jdGlvbigpe2Zvcih2YXIgbj0wLGU9MCxpPWwubGVuZ3RoO2U8aTsrK2UpZm9yKHZhciBvLGEsdT1sW2VdLGY9MSxjPXUubGVuZ3RoLHM9dVswXSxoPXNbMF0sZD1zWzFdO2Y8YzsrK2Ypbz1oLGE9ZCxoPShzPXVbZl0pWzBdLGQ9c1sxXSxhPD1yP2Q+ciYmKGgtbykqKHItYSk+KGQtYSkqKHQtbykmJisrbjpkPD1yJiYoaC1vKSooci1hKTwoZC1hKSoodC1vKSYmLS1uO3JldHVybiBufSgpLGU9eCYmbixpPShzPXkocykpLmxlbmd0aDsoZXx8aSkmJihhLnBvbHlnb25TdGFydCgpLGUmJihhLmxpbmVTdGFydCgpLG8obnVsbCxudWxsLDEsYSksYS5saW5lRW5kKCkpLGkmJnNpKHMsdSxuLG8sYSksYS5wb2x5Z29uRW5kKCkpLHc9YSxzPWw9aD1udWxsfX07cmV0dXJuIEF9fWZ1bmN0aW9uIF9pKCl7THAucG9pbnQ9THAubGluZUVuZD12cn1mdW5jdGlvbiBiaSh0LG4pe19wPXQqPVFkLGJwPWFwKG4qPVFkKSxtcD1ucChuKSxMcC5wb2ludD1taX1mdW5jdGlvbiBtaSh0LG4pe3QqPVFkO3ZhciBlPWFwKG4qPVFkKSxyPW5wKG4pLGk9SmQodC1fcCksbz1ucChpKSxhPXIqYXAoaSksdT1tcCplLWJwKnIqbyxmPWJwKmUrbXAqcipvO1JwLmFkZCh0cChmcChhKmErdSp1KSxmKSksX3A9dCxicD1lLG1wPXJ9ZnVuY3Rpb24geGkodCl7cmV0dXJuIFJwLnJlc2V0KCksYnIodCxMcCksK1JwfWZ1bmN0aW9uIHdpKHQsbil7cmV0dXJuIERwWzBdPXQsRHBbMV09bix4aShVcCl9ZnVuY3Rpb24gTWkodCxuKXtyZXR1cm4hKCF0fHwhT3AuaGFzT3duUHJvcGVydHkodC50eXBlKSkmJk9wW3QudHlwZV0odCxuKX1mdW5jdGlvbiBBaSh0LG4pe3JldHVybiAwPT09d2kodCxuKX1mdW5jdGlvbiBUaSh0LG4pe3ZhciBlPXdpKHRbMF0sdFsxXSk7cmV0dXJuIHdpKHRbMF0sbikrd2kobix0WzFdKTw9ZStIZH1mdW5jdGlvbiBOaSh0LG4pe3JldHVybiEhaGkodC5tYXAoU2kpLEVpKG4pKX1mdW5jdGlvbiBTaSh0KXtyZXR1cm4odD10Lm1hcChFaSkpLnBvcCgpLHR9ZnVuY3Rpb24gRWkodCl7cmV0dXJuW3RbMF0qUWQsdFsxXSpRZF19ZnVuY3Rpb24ga2kodCxuLGUpe3ZhciByPXModCxuLUhkLGUpLmNvbmNhdChuKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKG4pe3JldHVyblt0LG5dfSl9fWZ1bmN0aW9uIENpKHQsbixlKXt2YXIgcj1zKHQsbi1IZCxlKS5jb25jYXQobik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLm1hcChmdW5jdGlvbihuKXtyZXR1cm5bbix0XX0pfX1mdW5jdGlvbiBQaSgpe2Z1bmN0aW9uIHQoKXtyZXR1cm57dHlwZTpcIk11bHRpTGluZVN0cmluZ1wiLGNvb3JkaW5hdGVzOm4oKX19ZnVuY3Rpb24gbigpe3JldHVybiBzKGVwKG8veSkqeSxpLHkpLm1hcChkKS5jb25jYXQocyhlcChjL18pKl8sZixfKS5tYXAocCkpLmNvbmNhdChzKGVwKHIvdikqdixlLHYpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gSmQodCV5KT5IZH0pLm1hcChsKSkuY29uY2F0KHMoZXAodS9nKSpnLGEsZykuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBKZCh0JV8pPkhkfSkubWFwKGgpKX12YXIgZSxyLGksbyxhLHUsZixjLGwsaCxkLHAsdj0xMCxnPXYseT05MCxfPTM2MCxiPTIuNTtyZXR1cm4gdC5saW5lcz1mdW5jdGlvbigpe3JldHVybiBuKCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOlwiTGluZVN0cmluZ1wiLGNvb3JkaW5hdGVzOnR9fSl9LHQub3V0bGluZT1mdW5jdGlvbigpe3JldHVybnt0eXBlOlwiUG9seWdvblwiLGNvb3JkaW5hdGVzOltkKG8pLmNvbmNhdChwKGYpLnNsaWNlKDEpLGQoaSkucmV2ZXJzZSgpLnNsaWNlKDEpLHAoYykucmV2ZXJzZSgpLnNsaWNlKDEpKV19fSx0LmV4dGVudD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LmV4dGVudE1ham9yKG4pLmV4dGVudE1pbm9yKG4pOnQuZXh0ZW50TWlub3IoKX0sdC5leHRlbnRNYWpvcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rblswXVswXSxpPStuWzFdWzBdLGM9K25bMF1bMV0sZj0rblsxXVsxXSxvPmkmJihuPW8sbz1pLGk9biksYz5mJiYobj1jLGM9ZixmPW4pLHQucHJlY2lzaW9uKGIpKTpbW28sY10sW2ksZl1dfSx0LmV4dGVudE1pbm9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPStuWzBdWzBdLGU9K25bMV1bMF0sdT0rblswXVsxXSxhPStuWzFdWzFdLHI+ZSYmKG49cixyPWUsZT1uKSx1PmEmJihuPXUsdT1hLGE9biksdC5wcmVjaXNpb24oYikpOltbcix1XSxbZSxhXV19LHQuc3RlcD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90LnN0ZXBNYWpvcihuKS5zdGVwTWlub3Iobik6dC5zdGVwTWlub3IoKX0sdC5zdGVwTWFqb3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9K25bMF0sXz0rblsxXSx0KTpbeSxfXX0sdC5zdGVwTWlub3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9K25bMF0sZz0rblsxXSx0KTpbdixnXX0sdC5wcmVjaXNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9K24sbD1raSh1LGEsOTApLGg9Q2kocixlLGIpLGQ9a2koYyxmLDkwKSxwPUNpKG8saSxiKSx0KTpifSx0LmV4dGVudE1ham9yKFtbLTE4MCwtOTArSGRdLFsxODAsOTAtSGRdXSkuZXh0ZW50TWlub3IoW1stMTgwLC04MC1IZF0sWzE4MCw4MCtIZF1dKX1mdW5jdGlvbiB6aSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBSaSgpe0ZwLnBvaW50PUxpfWZ1bmN0aW9uIExpKHQsbil7RnAucG9pbnQ9RGkseHA9TXA9dCx3cD1BcD1ufWZ1bmN0aW9uIERpKHQsbil7QnAuYWRkKEFwKnQtTXAqbiksTXA9dCxBcD1ufWZ1bmN0aW9uIFVpKCl7RGkoeHAsd3ApfWZ1bmN0aW9uIHFpKHQsbil7VnArPXQsJHArPW4sKytXcH1mdW5jdGlvbiBPaSgpe2V2LnBvaW50PVlpfWZ1bmN0aW9uIFlpKHQsbil7ZXYucG9pbnQ9QmkscWkoU3A9dCxFcD1uKX1mdW5jdGlvbiBCaSh0LG4pe3ZhciBlPXQtU3Ascj1uLUVwLGk9ZnAoZSplK3Iqcik7WnArPWkqKFNwK3QpLzIsUXArPWkqKEVwK24pLzIsSnArPWkscWkoU3A9dCxFcD1uKX1mdW5jdGlvbiBGaSgpe2V2LnBvaW50PXFpfWZ1bmN0aW9uIElpKCl7ZXYucG9pbnQ9SGl9ZnVuY3Rpb24gamkoKXtYaShUcCxOcCl9ZnVuY3Rpb24gSGkodCxuKXtldi5wb2ludD1YaSxxaShUcD1TcD10LE5wPUVwPW4pfWZ1bmN0aW9uIFhpKHQsbil7dmFyIGU9dC1TcCxyPW4tRXAsaT1mcChlKmUrcipyKTtacCs9aSooU3ArdCkvMixRcCs9aSooRXArbikvMixKcCs9aSxLcCs9KGk9RXAqdC1TcCpuKSooU3ArdCksdHYrPWkqKEVwK24pLG52Kz0zKmkscWkoU3A9dCxFcD1uKX1mdW5jdGlvbiBHaSh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gVmkodCxuKXtjdi5wb2ludD0kaSxpdj1hdj10LG92PXV2PW59ZnVuY3Rpb24gJGkodCxuKXthdi09dCx1di09bixmdi5hZGQoZnAoYXYqYXYrdXYqdXYpKSxhdj10LHV2PW59ZnVuY3Rpb24gV2koKXt0aGlzLl9zdHJpbmc9W119ZnVuY3Rpb24gWmkodCl7cmV0dXJuXCJtMCxcIit0K1wiYVwiK3QrXCIsXCIrdCtcIiAwIDEsMSAwLFwiKy0yKnQrXCJhXCIrdCtcIixcIit0K1wiIDAgMSwxIDAsXCIrMip0K1wielwifWZ1bmN0aW9uIFFpKHQpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgZT1uZXcgSmk7Zm9yKHZhciByIGluIHQpZVtyXT10W3JdO3JldHVybiBlLnN0cmVhbT1uLGV9fWZ1bmN0aW9uIEppKCl7fWZ1bmN0aW9uIEtpKHQsbixlKXt2YXIgcj10LmNsaXBFeHRlbnQmJnQuY2xpcEV4dGVudCgpO3JldHVybiB0LnNjYWxlKDE1MCkudHJhbnNsYXRlKFswLDBdKSxudWxsIT1yJiZ0LmNsaXBFeHRlbnQobnVsbCksYnIoZSx0LnN0cmVhbShHcCkpLG4oR3AucmVzdWx0KCkpLG51bGwhPXImJnQuY2xpcEV4dGVudChyKSx0fWZ1bmN0aW9uIHRvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj1uWzFdWzBdLW5bMF1bMF0saT1uWzFdWzFdLW5bMF1bMV0sbz1NYXRoLm1pbihyLyhlWzFdWzBdLWVbMF1bMF0pLGkvKGVbMV1bMV0tZVswXVsxXSkpLGE9K25bMF1bMF0rKHItbyooZVsxXVswXStlWzBdWzBdKSkvMix1PStuWzBdWzFdKyhpLW8qKGVbMV1bMV0rZVswXVsxXSkpLzI7dC5zY2FsZSgxNTAqbykudHJhbnNsYXRlKFthLHVdKX0sZSl9ZnVuY3Rpb24gbm8odCxuLGUpe3JldHVybiB0byh0LFtbMCwwXSxuXSxlKX1mdW5jdGlvbiBlbyh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9K24saT1yLyhlWzFdWzBdLWVbMF1bMF0pLG89KHItaSooZVsxXVswXStlWzBdWzBdKSkvMixhPS1pKmVbMF1bMV07dC5zY2FsZSgxNTAqaSkudHJhbnNsYXRlKFtvLGFdKX0sZSl9ZnVuY3Rpb24gcm8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPStuLGk9ci8oZVsxXVsxXS1lWzBdWzFdKSxvPS1pKmVbMF1bMF0sYT0oci1pKihlWzFdWzFdK2VbMF1bMV0pKS8yO3Quc2NhbGUoMTUwKmkpLnRyYW5zbGF0ZShbbyxhXSl9LGUpfWZ1bmN0aW9uIGlvKHQsbil7cmV0dXJuK24/ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKHIsaSxvLGEsdSxmLGMscyxsLGgsZCxwLHYsZyl7dmFyIHk9Yy1yLF89cy1pLGI9eSp5K18qXztpZihiPjQqbiYmdi0tKXt2YXIgbT1hK2gseD11K2Qsdz1mK3AsTT1mcChtKm0reCp4K3cqdyksQT1kcih3Lz1NKSxUPUpkKEpkKHcpLTEpPEhkfHxKZChvLWwpPEhkPyhvK2wpLzI6dHAoeCxtKSxOPXQoVCxBKSxTPU5bMF0sRT1OWzFdLGs9Uy1yLEM9RS1pLFA9XyprLXkqQzsoUCpQL2I+bnx8SmQoKHkqaytfKkMpL2ItLjUpPi4zfHxhKmgrdSpkK2YqcDxsdikmJihlKHIsaSxvLGEsdSxmLFMsRSxULG0vPU0seC89TSx3LHYsZyksZy5wb2ludChTLEUpLGUoUyxFLFQsbSx4LHcsYyxzLGwsaCxkLHAsdixnKSl9fXJldHVybiBmdW5jdGlvbihuKXtmdW5jdGlvbiByKGUscil7ZT10KGUsciksbi5wb2ludChlWzBdLGVbMV0pfWZ1bmN0aW9uIGkoKXt5PU5hTix3LnBvaW50PW8sbi5saW5lU3RhcnQoKX1mdW5jdGlvbiBvKHIsaSl7dmFyIG89VHIoW3IsaV0pLGE9dChyLGkpO2UoeSxfLGcsYixtLHgseT1hWzBdLF89YVsxXSxnPXIsYj1vWzBdLG09b1sxXSx4PW9bMl0sc3Ysbiksbi5wb2ludCh5LF8pfWZ1bmN0aW9uIGEoKXt3LnBvaW50PXIsbi5saW5lRW5kKCl9ZnVuY3Rpb24gdSgpe2koKSx3LnBvaW50PWYsdy5saW5lRW5kPWN9ZnVuY3Rpb24gZih0LG4pe28ocz10LG4pLGw9eSxoPV8sZD1iLHA9bSx2PXgsdy5wb2ludD1vfWZ1bmN0aW9uIGMoKXtlKHksXyxnLGIsbSx4LGwsaCxzLGQscCx2LHN2LG4pLHcubGluZUVuZD1hLGEoKX12YXIgcyxsLGgsZCxwLHYsZyx5LF8sYixtLHgsdz17cG9pbnQ6cixsaW5lU3RhcnQ6aSxsaW5lRW5kOmEscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7bi5wb2x5Z29uU3RhcnQoKSx3LmxpbmVTdGFydD11fSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7bi5wb2x5Z29uRW5kKCksdy5saW5lU3RhcnQ9aX19O3JldHVybiB3fX0odCxuKTpmdW5jdGlvbih0KXtyZXR1cm4gUWkoe3BvaW50OmZ1bmN0aW9uKG4sZSl7bj10KG4sZSksdGhpcy5zdHJlYW0ucG9pbnQoblswXSxuWzFdKX19KX0odCl9ZnVuY3Rpb24gb28odCxuLGUscil7ZnVuY3Rpb24gaSh0LHIpe3JldHVyblt1KnQtZipyK24sZS1mKnQtdSpyXX12YXIgbz1ucChyKSxhPWFwKHIpLHU9byp0LGY9YSp0LGM9by90LHM9YS90LGw9KGEqZS1vKm4pL3QsaD0oYSpuK28qZSkvdDtyZXR1cm4gaS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bYyp0LXMqbitsLGgtcyp0LWMqbl19LGl9ZnVuY3Rpb24gYW8odCl7cmV0dXJuIHVvKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSgpfWZ1bmN0aW9uIHVvKHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIGwodFswXSpRZCx0WzFdKlFkKX1mdW5jdGlvbiBlKCl7dmFyIHQ9b28ocCwwLDAsdykuYXBwbHkobnVsbCxpKHksXykpLG49KHc/b286ZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIocixpKXtyZXR1cm5bbit0KnIsZS10KmldfXJldHVybiByLmludmVydD1mdW5jdGlvbihyLGkpe3JldHVyblsoci1uKS90LChlLWkpL3RdfSxyfSkocCx2LXRbMF0sZy10WzFdLHcpO3JldHVybiBvPXRpKGIsbSx4KSxzPUpyKGksbiksbD1KcihvLHMpLGM9aW8ocyxTKSxyKCl9ZnVuY3Rpb24gcigpe3JldHVybiBoPWQ9bnVsbCxufXZhciBpLG8sYSx1LGYsYyxzLGwsaCxkLHA9MTUwLHY9NDgwLGc9MjUwLHk9MCxfPTAsYj0wLG09MCx4PTAsdz0wLE09bnVsbCxBPUNwLFQ9bnVsbCxOPXppLFM9LjU7cmV0dXJuIG4uc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBoJiZkPT09dD9oOmg9aHYoZnVuY3Rpb24odCl7cmV0dXJuIFFpKHtwb2ludDpmdW5jdGlvbihuLGUpe3ZhciByPXQobixlKTtyZXR1cm4gdGhpcy5zdHJlYW0ucG9pbnQoclswXSxyWzFdKX19KX0obykoQShjKE4oZD10KSkpKSl9LG4ucHJlY2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQT10LE09dm9pZCAwLHIoKSk6QX0sbi5wb3N0Y2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTj10LFQ9YT11PWY9bnVsbCxyKCkpOk59LG4uY2xpcEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPSt0P2dpKE09dCpRZCk6KE09bnVsbCxDcCkscigpKTpNKlpkfSxuLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE49bnVsbD09dD8oVD1hPXU9Zj1udWxsLHppKTp5aShUPSt0WzBdWzBdLGE9K3RbMF1bMV0sdT0rdFsxXVswXSxmPSt0WzFdWzFdKSxyKCkpOm51bGw9PVQ/bnVsbDpbW1QsYV0sW3UsZl1dfSxuLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSt0LGUoKSk6cH0sbi50cmFuc2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9K3RbMF0sZz0rdFsxXSxlKCkpOlt2LGddfSxuLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT10WzBdJTM2MCpRZCxfPXRbMV0lMzYwKlFkLGUoKSk6W3kqWmQsXypaZF19LG4ucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPXRbMF0lMzYwKlFkLG09dFsxXSUzNjAqUWQseD10Lmxlbmd0aD4yP3RbMl0lMzYwKlFkOjAsZSgpKTpbYipaZCxtKlpkLHgqWmRdfSxuLmFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3PXQlMzYwKlFkLGUoKSk6dypaZH0sbi5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9aW8ocyxTPXQqdCkscigpKTpmcChTKX0sbi5maXRFeHRlbnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdG8obix0LGUpfSxuLmZpdFNpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbm8obix0LGUpfSxuLmZpdFdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVvKG4sdCxlKX0sbi5maXRIZWlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcm8obix0LGUpfSxmdW5jdGlvbigpe3JldHVybiBpPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLG4uaW52ZXJ0PWkuaW52ZXJ0JiZmdW5jdGlvbih0KXtyZXR1cm4odD1sLmludmVydCh0WzBdLHRbMV0pKSYmW3RbMF0qWmQsdFsxXSpaZF19LGUoKX19ZnVuY3Rpb24gZm8odCl7dmFyIG49MCxlPUdkLzMscj11byh0KSxpPXIobixlKTtyZXR1cm4gaS5wYXJhbGxlbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cihuPXRbMF0qUWQsZT10WzFdKlFkKTpbbipaZCxlKlpkXX0saX1mdW5jdGlvbiBjbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1mcChvLTIqaSphcChuKSkvaTtyZXR1cm5bZSphcCh0Kj1pKSxhLWUqbnAodCldfXZhciByPWFwKHQpLGk9KHIrYXAobikpLzI7aWYoSmQoaSk8SGQpcmV0dXJuIGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm5bdCplLGFwKG4pL2VdfXZhciBlPW5wKHQpO3JldHVybiBuLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVyblt0L2UsZHIobiplKV19LG59KHQpO3ZhciBvPTErciooMippLXIpLGE9ZnAobykvaTtyZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1hLW47cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksZHIoKG8tKHQqdCtlKmUpKmkqaSkvKDIqaSkpXX0sZX1mdW5jdGlvbiBzbygpe3JldHVybiBmbyhjbykuc2NhbGUoMTU1LjQyNCkuY2VudGVyKFswLDMzLjY0NDJdKX1mdW5jdGlvbiBsbygpe3JldHVybiBzbygpLnBhcmFsbGVscyhbMjkuNSw0NS41XSkuc2NhbGUoMTA3MCkudHJhbnNsYXRlKFs0ODAsMjUwXSkucm90YXRlKFs5NiwwXSkuY2VudGVyKFstLjYsMzguN10pfWZ1bmN0aW9uIGhvKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPW5wKG4pLGk9bnAoZSksbz10KHIqaSk7cmV0dXJuW28qaSphcChuKSxvKmFwKGUpXX19ZnVuY3Rpb24gcG8odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9ZnAobipuK2UqZSksaT10KHIpLG89YXAoaSksYT1ucChpKTtyZXR1cm5bdHAobipvLHIqYSksZHIociYmZSpvL3IpXX19ZnVuY3Rpb24gdm8odCxuKXtyZXR1cm5bdCxpcChjcCgoVmQrbikvMikpXX1mdW5jdGlvbiBnbyh0KXtmdW5jdGlvbiBuKCl7dmFyIG49R2QqdSgpLGE9byhpaShvLnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gYyhudWxsPT1zP1tbYVswXS1uLGFbMV0tbl0sW2FbMF0rbixhWzFdK25dXTp0PT09dm8/W1tNYXRoLm1heChhWzBdLW4scyksZV0sW01hdGgubWluKGFbMF0rbixyKSxpXV06W1tzLE1hdGgubWF4KGFbMV0tbixlKV0sW3IsTWF0aC5taW4oYVsxXStuLGkpXV0pfXZhciBlLHIsaSxvPWFvKHQpLGE9by5jZW50ZXIsdT1vLnNjYWxlLGY9by50cmFuc2xhdGUsYz1vLmNsaXBFeHRlbnQscz1udWxsO3JldHVybiBvLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1KHQpLG4oKSk6dSgpfSxvLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZih0KSxuKCkpOmYoKX0sby5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGEodCksbigpKTphKCl9LG8uY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9zPWU9cj1pPW51bGw6KHM9K3RbMF1bMF0sZT0rdFswXVsxXSxyPSt0WzFdWzBdLGk9K3RbMV1bMV0pLG4oKSk6bnVsbD09cz9udWxsOltbcyxlXSxbcixpXV19LG4oKX1mdW5jdGlvbiB5byh0KXtyZXR1cm4gY3AoKFZkK3QpLzIpfWZ1bmN0aW9uIF9vKHQsbil7ZnVuY3Rpb24gZSh0LG4pe28+MD9uPC1WZCtIZCYmKG49LVZkK0hkKTpuPlZkLUhkJiYobj1WZC1IZCk7dmFyIGU9by9vcCh5byhuKSxpKTtyZXR1cm5bZSphcChpKnQpLG8tZSpucChpKnQpXX12YXIgcj1ucCh0KSxpPXQ9PT1uP2FwKHQpOmlwKHIvbnAobikpL2lwKHlvKG4pL3lvKHQpKSxvPXIqb3AoeW8odCksaSkvaTtyZXR1cm4gaT8oZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1vLW4scj11cChpKSpmcCh0KnQrZSplKTtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSwyKktkKG9wKG8vciwxL2kpKS1WZF19LGUpOnZvfWZ1bmN0aW9uIGJvKHQsbil7cmV0dXJuW3Qsbl19ZnVuY3Rpb24gbW8odCxuKXtmdW5jdGlvbiBlKHQsbil7dmFyIGU9by1uLHI9aSp0O3JldHVybltlKmFwKHIpLG8tZSpucChyKV19dmFyIHI9bnAodCksaT10PT09bj9hcCh0KTooci1ucChuKSkvKG4tdCksbz1yL2krdDtyZXR1cm4gSmQoaSk8SGQ/Ym86KGUuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGU9by1uO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLG8tdXAoaSkqZnAodCp0K2UqZSldfSxlKX1mdW5jdGlvbiB4byh0LG4pe3ZhciBlPW5wKG4pLHI9bnAodCkqZTtyZXR1cm5bZSphcCh0KS9yLGFwKG4pL3JdfWZ1bmN0aW9uIHdvKHQsbixlLHIpe3JldHVybiAxPT09dCYmMT09PW4mJjA9PT1lJiYwPT09cj96aTpRaSh7cG9pbnQ6ZnVuY3Rpb24oaSxvKXt0aGlzLnN0cmVhbS5wb2ludChpKnQrZSxvKm4rcil9fSl9ZnVuY3Rpb24gTW8odCxuKXt2YXIgZT1uKm4scj1lKmU7cmV0dXJuW3QqKC44NzA3LS4xMzE5NzkqZStyKihyKiguMDAzOTcxKmUtLjAwMTUyOSpyKS0uMDEzNzkxKSksbiooMS4wMDcyMjYrZSooLjAxNTA4NStyKiguMDI4ODc0KmUtLjA0NDQ3NS0uMDA1OTE2KnIpKSldfWZ1bmN0aW9uIEFvKHQsbil7cmV0dXJuW25wKG4pKmFwKHQpLGFwKG4pXX1mdW5jdGlvbiBUbyh0LG4pe3ZhciBlPW5wKG4pLHI9MStucCh0KSplO3JldHVybltlKmFwKHQpL3IsYXAobikvcl19ZnVuY3Rpb24gTm8odCxuKXtyZXR1cm5baXAoY3AoKFZkK24pLzIpKSwtdF19ZnVuY3Rpb24gU28odCxuKXtyZXR1cm4gdC5wYXJlbnQ9PT1uLnBhcmVudD8xOjJ9ZnVuY3Rpb24gRW8odCxuKXtyZXR1cm4gdCtuLnh9ZnVuY3Rpb24ga28odCxuKXtyZXR1cm4gTWF0aC5tYXgodCxuLnkpfWZ1bmN0aW9uIENvKHQpe3ZhciBuPTAsZT10LmNoaWxkcmVuLHI9ZSYmZS5sZW5ndGg7aWYocilmb3IoOy0tcj49MDspbis9ZVtyXS52YWx1ZTtlbHNlIG49MTt0LnZhbHVlPW59ZnVuY3Rpb24gUG8odCxuKXt2YXIgZSxyLGksbyxhLHU9bmV3IERvKHQpLGY9K3QudmFsdWUmJih1LnZhbHVlPXQudmFsdWUpLGM9W3VdO2ZvcihudWxsPT1uJiYobj16byk7ZT1jLnBvcCgpOylpZihmJiYoZS52YWx1ZT0rZS5kYXRhLnZhbHVlKSwoaT1uKGUuZGF0YSkpJiYoYT1pLmxlbmd0aCkpZm9yKGUuY2hpbGRyZW49bmV3IEFycmF5KGEpLG89YS0xO28+PTA7LS1vKWMucHVzaChyPWUuY2hpbGRyZW5bb109bmV3IERvKGlbb10pKSxyLnBhcmVudD1lLHIuZGVwdGg9ZS5kZXB0aCsxO3JldHVybiB1LmVhY2hCZWZvcmUoTG8pfWZ1bmN0aW9uIHpvKHQpe3JldHVybiB0LmNoaWxkcmVufWZ1bmN0aW9uIFJvKHQpe3QuZGF0YT10LmRhdGEuZGF0YX1mdW5jdGlvbiBMbyh0KXt2YXIgbj0wO2Rve3QuaGVpZ2h0PW59d2hpbGUoKHQ9dC5wYXJlbnQpJiZ0LmhlaWdodDwrK24pfWZ1bmN0aW9uIERvKHQpe3RoaXMuZGF0YT10LHRoaXMuZGVwdGg9dGhpcy5oZWlnaHQ9MCx0aGlzLnBhcmVudD1udWxsfWZ1bmN0aW9uIFVvKHQpe2Zvcih2YXIgbixlLHI9MCxpPSh0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHI9dC5sZW5ndGg7cjspZT1NYXRoLnJhbmRvbSgpKnItLXwwLG49dFtyXSx0W3JdPXRbZV0sdFtlXT1uO3JldHVybiB0fSh2di5jYWxsKHQpKSkubGVuZ3RoLG89W107cjxpOyluPXRbcl0sZSYmT28oZSxuKT8rK3I6KGU9ZnVuY3Rpb24odCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybnt4OnQueCx5OnQueSxyOnQucn19KHRbMF0pO2Nhc2UgMjpyZXR1cm4gQm8odFswXSx0WzFdKTtjYXNlIDM6cmV0dXJuIEZvKHRbMF0sdFsxXSx0WzJdKX19KG89ZnVuY3Rpb24odCxuKXt2YXIgZSxyO2lmKFlvKG4sdCkpcmV0dXJuW25dO2ZvcihlPTA7ZTx0Lmxlbmd0aDsrK2UpaWYocW8obix0W2VdKSYmWW8oQm8odFtlXSxuKSx0KSlyZXR1cm5bdFtlXSxuXTtmb3IoZT0wO2U8dC5sZW5ndGgtMTsrK2UpZm9yKHI9ZSsxO3I8dC5sZW5ndGg7KytyKWlmKHFvKEJvKHRbZV0sdFtyXSksbikmJnFvKEJvKHRbZV0sbiksdFtyXSkmJnFvKEJvKHRbcl0sbiksdFtlXSkmJllvKEZvKHRbZV0sdFtyXSxuKSx0KSlyZXR1cm5bdFtlXSx0W3JdLG5dO3Rocm93IG5ldyBFcnJvcn0obyxuKSkscj0wKTtyZXR1cm4gZX1mdW5jdGlvbiBxbyh0LG4pe3ZhciBlPXQuci1uLnIscj1uLngtdC54LGk9bi55LXQueTtyZXR1cm4gZTwwfHxlKmU8cipyK2kqaX1mdW5jdGlvbiBPbyh0LG4pe3ZhciBlPXQuci1uLnIrMWUtNixyPW4ueC10LngsaT1uLnktdC55O3JldHVybiBlPjAmJmUqZT5yKnIraSppfWZ1bmN0aW9uIFlvKHQsbil7Zm9yKHZhciBlPTA7ZTxuLmxlbmd0aDsrK2UpaWYoIU9vKHQsbltlXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gQm8odCxuKXt2YXIgZT10Lngscj10LnksaT10LnIsbz1uLngsYT1uLnksdT1uLnIsZj1vLWUsYz1hLXIscz11LWksbD1NYXRoLnNxcnQoZipmK2MqYyk7cmV0dXJue3g6KGUrbytmL2wqcykvMix5OihyK2ErYy9sKnMpLzIscjoobCtpK3UpLzJ9fWZ1bmN0aW9uIEZvKHQsbixlKXt2YXIgcj10LngsaT10Lnksbz10LnIsYT1uLngsdT1uLnksZj1uLnIsYz1lLngscz1lLnksbD1lLnIsaD1yLWEsZD1yLWMscD1pLXUsdj1pLXMsZz1mLW8seT1sLW8sXz1yKnIraSppLW8qbyxiPV8tYSphLXUqdStmKmYsbT1fLWMqYy1zKnMrbCpsLHg9ZCpwLWgqdix3PShwKm0tdipiKS8oMip4KS1yLE09KHYqZy1wKnkpL3gsQT0oZCpiLWgqbSkvKDIqeCktaSxUPShoKnktZCpnKS94LE49TSpNK1QqVC0xLFM9Mioobyt3Kk0rQSpUKSxFPXcqdytBKkEtbypvLGs9LShOPyhTK01hdGguc3FydChTKlMtNCpOKkUpKS8oMipOKTpFL1MpO3JldHVybnt4OnIrdytNKmsseTppK0ErVCprLHI6a319ZnVuY3Rpb24gSW8odCxuLGUpe3ZhciByLGksbyxhLHU9dC54LW4ueCxmPXQueS1uLnksYz11KnUrZipmO2M/KGk9bi5yK2UucixpKj1pLGE9dC5yK2UucixpPihhKj1hKT8ocj0oYythLWkpLygyKmMpLG89TWF0aC5zcXJ0KE1hdGgubWF4KDAsYS9jLXIqcikpLGUueD10Lngtcip1LW8qZixlLnk9dC55LXIqZitvKnUpOihyPShjK2ktYSkvKDIqYyksbz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxpL2MtcipyKSksZS54PW4ueCtyKnUtbypmLGUueT1uLnkrcipmK28qdSkpOihlLng9bi54K2UucixlLnk9bi55KX1mdW5jdGlvbiBqbyh0LG4pe3ZhciBlPXQucituLnItMWUtNixyPW4ueC10LngsaT1uLnktdC55O3JldHVybiBlPjAmJmUqZT5yKnIraSppfWZ1bmN0aW9uIEhvKHQpe3ZhciBuPXQuXyxlPXQubmV4dC5fLHI9bi5yK2UucixpPShuLngqZS5yK2UueCpuLnIpL3Isbz0obi55KmUucitlLnkqbi5yKS9yO3JldHVybiBpKmkrbypvfWZ1bmN0aW9uIFhvKHQpe3RoaXMuXz10LHRoaXMubmV4dD1udWxsLHRoaXMucHJldmlvdXM9bnVsbH1mdW5jdGlvbiBHbyh0KXtpZighKGk9dC5sZW5ndGgpKXJldHVybiAwO3ZhciBuLGUscixpLG8sYSx1LGYsYyxzLGw7aWYobj10WzBdLG4ueD0wLG4ueT0wLCEoaT4xKSlyZXR1cm4gbi5yO2lmKGU9dFsxXSxuLng9LWUucixlLng9bi5yLGUueT0wLCEoaT4yKSlyZXR1cm4gbi5yK2UucjtJbyhlLG4scj10WzJdKSxuPW5ldyBYbyhuKSxlPW5ldyBYbyhlKSxyPW5ldyBYbyhyKSxuLm5leHQ9ci5wcmV2aW91cz1lLGUubmV4dD1uLnByZXZpb3VzPXIsci5uZXh0PWUucHJldmlvdXM9bjt0OmZvcih1PTM7dTxpOysrdSl7SW8obi5fLGUuXyxyPXRbdV0pLHI9bmV3IFhvKHIpLGY9ZS5uZXh0LGM9bi5wcmV2aW91cyxzPWUuXy5yLGw9bi5fLnI7ZG97aWYoczw9bCl7aWYoam8oZi5fLHIuXykpe2U9ZixuLm5leHQ9ZSxlLnByZXZpb3VzPW4sLS11O2NvbnRpbnVlIHR9cys9Zi5fLnIsZj1mLm5leHR9ZWxzZXtpZihqbyhjLl8sci5fKSl7KG49YykubmV4dD1lLGUucHJldmlvdXM9biwtLXU7Y29udGludWUgdH1sKz1jLl8ucixjPWMucHJldmlvdXN9fXdoaWxlKGYhPT1jLm5leHQpO2ZvcihyLnByZXZpb3VzPW4sci5uZXh0PWUsbi5uZXh0PWUucHJldmlvdXM9ZT1yLG89SG8obik7KHI9ci5uZXh0KSE9PWU7KShhPUhvKHIpKTxvJiYobj1yLG89YSk7ZT1uLm5leHR9Zm9yKG49W2UuX10scj1lOyhyPXIubmV4dCkhPT1lOyluLnB1c2goci5fKTtmb3Iocj1VbyhuKSx1PTA7dTxpOysrdSluPXRbdV0sbi54LT1yLngsbi55LT1yLnk7cmV0dXJuIHIucn1mdW5jdGlvbiBWbyh0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdH1mdW5jdGlvbiAkbygpe3JldHVybiAwfWZ1bmN0aW9uIFdvKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBabyh0KXtyZXR1cm4gTWF0aC5zcXJ0KHQudmFsdWUpfWZ1bmN0aW9uIFFvKHQpe3JldHVybiBmdW5jdGlvbihuKXtuLmNoaWxkcmVufHwobi5yPU1hdGgubWF4KDAsK3Qobil8fDApKX19ZnVuY3Rpb24gSm8odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYocj1lLmNoaWxkcmVuKXt2YXIgcixpLG8sYT1yLmxlbmd0aCx1PXQoZSkqbnx8MDtpZih1KWZvcihpPTA7aTxhOysraSlyW2ldLnIrPXU7aWYobz1HbyhyKSx1KWZvcihpPTA7aTxhOysraSlyW2ldLnItPXU7ZS5yPW8rdX19fWZ1bmN0aW9uIEtvKHQpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgZT1uLnBhcmVudDtuLnIqPXQsZSYmKG4ueD1lLngrdCpuLngsbi55PWUueSt0Km4ueSl9fWZ1bmN0aW9uIHRhKHQpe3QueDA9TWF0aC5yb3VuZCh0LngwKSx0LnkwPU1hdGgucm91bmQodC55MCksdC54MT1NYXRoLnJvdW5kKHQueDEpLHQueTE9TWF0aC5yb3VuZCh0LnkxKX1mdW5jdGlvbiBuYSh0LG4sZSxyLGkpe2Zvcih2YXIgbyxhPXQuY2hpbGRyZW4sdT0tMSxmPWEubGVuZ3RoLGM9dC52YWx1ZSYmKHItbikvdC52YWx1ZTsrK3U8ZjspKG89YVt1XSkueTA9ZSxvLnkxPWksby54MD1uLG8ueDE9bis9by52YWx1ZSpjfWZ1bmN0aW9uIGVhKHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIHJhKHQpe3JldHVybiB0LnBhcmVudElkfWZ1bmN0aW9uIGlhKHQsbil7cmV0dXJuIHQucGFyZW50PT09bi5wYXJlbnQ/MToyfWZ1bmN0aW9uIG9hKHQpe3ZhciBuPXQuY2hpbGRyZW47cmV0dXJuIG4/blswXTp0LnR9ZnVuY3Rpb24gYWEodCl7dmFyIG49dC5jaGlsZHJlbjtyZXR1cm4gbj9uW24ubGVuZ3RoLTFdOnQudH1mdW5jdGlvbiB1YSh0LG4sZSl7dmFyIHI9ZS8obi5pLXQuaSk7bi5jLT1yLG4ucys9ZSx0LmMrPXIsbi56Kz1lLG4ubSs9ZX1mdW5jdGlvbiBmYSh0LG4sZSl7cmV0dXJuIHQuYS5wYXJlbnQ9PT1uLnBhcmVudD90LmE6ZX1mdW5jdGlvbiBjYSh0LG4pe3RoaXMuXz10LHRoaXMucGFyZW50PW51bGwsdGhpcy5jaGlsZHJlbj1udWxsLHRoaXMuQT1udWxsLHRoaXMuYT10aGlzLHRoaXMuej0wLHRoaXMubT0wLHRoaXMuYz0wLHRoaXMucz0wLHRoaXMudD1udWxsLHRoaXMuaT1ufWZ1bmN0aW9uIHNhKHQsbixlLHIsaSl7Zm9yKHZhciBvLGE9dC5jaGlsZHJlbix1PS0xLGY9YS5sZW5ndGgsYz10LnZhbHVlJiYoaS1lKS90LnZhbHVlOysrdTxmOykobz1hW3VdKS54MD1uLG8ueDE9cixvLnkwPWUsby55MT1lKz1vLnZhbHVlKmN9ZnVuY3Rpb24gbGEodCxuLGUscixpLG8pe2Zvcih2YXIgYSx1LGYsYyxzLGwsaCxkLHAsdixnLHk9W10sXz1uLmNoaWxkcmVuLGI9MCxtPTAseD1fLmxlbmd0aCx3PW4udmFsdWU7Yjx4Oyl7Zj1pLWUsYz1vLXI7ZG97cz1fW20rK10udmFsdWV9d2hpbGUoIXMmJm08eCk7Zm9yKGw9aD1zLGc9cypzKih2PU1hdGgubWF4KGMvZixmL2MpLyh3KnQpKSxwPU1hdGgubWF4KGgvZyxnL2wpO208eDsrK20pe2lmKHMrPXU9X1ttXS52YWx1ZSx1PGwmJihsPXUpLHU+aCYmKGg9dSksZz1zKnMqdiwoZD1NYXRoLm1heChoL2csZy9sKSk+cCl7cy09dTticmVha31wPWR9eS5wdXNoKGE9e3ZhbHVlOnMsZGljZTpmPGMsY2hpbGRyZW46Xy5zbGljZShiLG0pfSksYS5kaWNlP25hKGEsZSxyLGksdz9yKz1jKnMvdzpvKTpzYShhLGUscix3P2UrPWYqcy93Omksbyksdy09cyxiPW19cmV0dXJuIHl9ZnVuY3Rpb24gaGEodCxuLGUpe3JldHVybihuWzBdLXRbMF0pKihlWzFdLXRbMV0pLShuWzFdLXRbMV0pKihlWzBdLXRbMF0pfWZ1bmN0aW9uIGRhKHQsbil7cmV0dXJuIHRbMF0tblswXXx8dFsxXS1uWzFdfWZ1bmN0aW9uIHBhKHQpe2Zvcih2YXIgbj10Lmxlbmd0aCxlPVswLDFdLHI9MixpPTI7aTxuOysraSl7Zm9yKDtyPjEmJmhhKHRbZVtyLTJdXSx0W2Vbci0xXV0sdFtpXSk8PTA7KS0tcjtlW3IrK109aX1yZXR1cm4gZS5zbGljZSgwLHIpfWZ1bmN0aW9uIHZhKCl7cmV0dXJuIE1hdGgucmFuZG9tKCl9ZnVuY3Rpb24gZ2EodCl7ZnVuY3Rpb24gbihuKXt2YXIgbz1uK1wiXCIsYT1lLmdldChvKTtpZighYSl7aWYoaSE9PVB2KXJldHVybiBpO2Uuc2V0KG8sYT1yLnB1c2gobikpfXJldHVybiB0WyhhLTEpJXQubGVuZ3RoXX12YXIgZT1oZSgpLHI9W10saT1QdjtyZXR1cm4gdD1udWxsPT10P1tdOkN2LmNhbGwodCksbi5kb21haW49ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHIuc2xpY2UoKTtyPVtdLGU9aGUoKTtmb3IodmFyIGksbyxhPS0xLHU9dC5sZW5ndGg7KythPHU7KWUuaGFzKG89KGk9dFthXSkrXCJcIil8fGUuc2V0KG8sci5wdXNoKGkpKTtyZXR1cm4gbn0sbi5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1Ddi5jYWxsKGUpLG4pOnQuc2xpY2UoKX0sbi51bmtub3duPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsbik6aX0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGdhKCkuZG9tYWluKHIpLnJhbmdlKHQpLnVua25vd24oaSl9LG59ZnVuY3Rpb24geWEoKXtmdW5jdGlvbiB0KCl7dmFyIHQ9aSgpLmxlbmd0aCxyPWFbMV08YVswXSxoPWFbci0wXSxkPWFbMS1yXTtuPShkLWgpL01hdGgubWF4KDEsdC1mKzIqYyksdSYmKG49TWF0aC5mbG9vcihuKSksaCs9KGQtaC1uKih0LWYpKSpsLGU9biooMS1mKSx1JiYoaD1NYXRoLnJvdW5kKGgpLGU9TWF0aC5yb3VuZChlKSk7dmFyIHA9cyh0KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGgrbip0fSk7cmV0dXJuIG8ocj9wLnJldmVyc2UoKTpwKX12YXIgbixlLHI9Z2EoKS51bmtub3duKHZvaWQgMCksaT1yLmRvbWFpbixvPXIucmFuZ2UsYT1bMCwxXSx1PSExLGY9MCxjPTAsbD0uNTtyZXR1cm4gZGVsZXRlIHIudW5rbm93bixyLmRvbWFpbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaShuKSx0KCkpOmkoKX0sci5yYW5nZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1bK25bMF0sK25bMV1dLHQoKSk6YS5zbGljZSgpfSxyLnJhbmdlUm91bmQ9ZnVuY3Rpb24obil7cmV0dXJuIGE9WytuWzBdLCtuWzFdXSx1PSEwLHQoKX0sci5iYW5kd2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gZX0sci5zdGVwPWZ1bmN0aW9uKCl7cmV0dXJuIG59LHIucm91bmQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ISFuLHQoKSk6dX0sci5wYWRkaW5nPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPWM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmZ9LHIucGFkZGluZ0lubmVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpmfSxyLnBhZGRpbmdPdXRlcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Y30sci5hbGlnbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6bH0sci5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHlhKCkuZG9tYWluKGkoKSkucmFuZ2UoYSkucm91bmQodSkucGFkZGluZ0lubmVyKGYpLnBhZGRpbmdPdXRlcihjKS5hbGlnbihsKX0sdCgpfWZ1bmN0aW9uIF9hKHQpe3ZhciBuPXQuY29weTtyZXR1cm4gdC5wYWRkaW5nPXQucGFkZGluZ091dGVyLGRlbGV0ZSB0LnBhZGRpbmdJbm5lcixkZWxldGUgdC5wYWRkaW5nT3V0ZXIsdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIF9hKG4oKSl9LHR9ZnVuY3Rpb24gYmEodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIG1hKHQpe3JldHVybit0fWZ1bmN0aW9uIHhhKHQsbil7cmV0dXJuKG4tPXQ9K3QpP2Z1bmN0aW9uKGUpe3JldHVybihlLXQpL259OmJhKG4pfWZ1bmN0aW9uIHdhKHQsbixlLHIpe3ZhciBpPXRbMF0sbz10WzFdLGE9blswXSx1PW5bMV07cmV0dXJuIG88aT8oaT1lKG8saSksYT1yKHUsYSkpOihpPWUoaSxvKSxhPXIoYSx1KSksZnVuY3Rpb24odCl7cmV0dXJuIGEoaSh0KSl9fWZ1bmN0aW9uIE1hKHQsbixlLHIpe3ZhciBpPU1hdGgubWluKHQubGVuZ3RoLG4ubGVuZ3RoKS0xLG89bmV3IEFycmF5KGkpLGE9bmV3IEFycmF5KGkpLHU9LTE7Zm9yKHRbaV08dFswXSYmKHQ9dC5zbGljZSgpLnJldmVyc2UoKSxuPW4uc2xpY2UoKS5yZXZlcnNlKCkpOysrdTxpOylvW3VdPWUodFt1XSx0W3UrMV0pLGFbdV09cihuW3VdLG5bdSsxXSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPUtjKHQsbiwxLGkpLTE7cmV0dXJuIGFbZV0ob1tlXShuKSl9fWZ1bmN0aW9uIEFhKHQsbil7cmV0dXJuIG4uZG9tYWluKHQuZG9tYWluKCkpLnJhbmdlKHQucmFuZ2UoKSkuaW50ZXJwb2xhdGUodC5pbnRlcnBvbGF0ZSgpKS5jbGFtcCh0LmNsYW1wKCkpfWZ1bmN0aW9uIFRhKHQsbil7ZnVuY3Rpb24gZSgpe3JldHVybiBpPU1hdGgubWluKHUubGVuZ3RoLGYubGVuZ3RoKT4yP01hOndhLG89YT1udWxsLHJ9ZnVuY3Rpb24gcihuKXtyZXR1cm4ob3x8KG89aSh1LGYscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KG49K24sZT0rZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0PD1uPzA6dD49ZT8xOnIodCl9fX0odCk6dCxjKSkpKCtuKX12YXIgaSxvLGEsdT16dixmPXp2LGM9ZG4scz0hMTtyZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuKGF8fChhPWkoZix1LHhhLHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuPStuLGU9K2UpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdDw9MD9uOnQ+PTE/ZTpyKHQpfX19KG4pOm4pKSkoK3QpfSxyLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1rdi5jYWxsKHQsbWEpLGUoKSk6dS5zbGljZSgpfSxyLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPUN2LmNhbGwodCksZSgpKTpmLnNsaWNlKCl9LHIucmFuZ2VSb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gZj1Ddi5jYWxsKHQpLGM9cG4sZSgpfSxyLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSEhdCxlKCkpOnN9LHIuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCxlKCkpOmN9LGUoKX1mdW5jdGlvbiBOYShuKXt2YXIgZT1uLmRvbWFpbjtyZXR1cm4gbi50aWNrcz1mdW5jdGlvbih0KXt2YXIgbj1lKCk7cmV0dXJuIGwoblswXSxuW24ubGVuZ3RoLTFdLG51bGw9PXQ/MTA6dCl9LG4udGlja0Zvcm1hdD1mdW5jdGlvbihuLHIpe3JldHVybiBmdW5jdGlvbihuLGUscil7dmFyIGksbz1uWzBdLGE9bltuLmxlbmd0aC0xXSx1PWQobyxhLG51bGw9PWU/MTA6ZSk7c3dpdGNoKChyPXRyKG51bGw9PXI/XCIsZlwiOnIpKS50eXBlKXtjYXNlXCJzXCI6dmFyIGY9TWF0aC5tYXgoTWF0aC5hYnMobyksTWF0aC5hYnMoYSkpO3JldHVybiBudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT11cih1LGYpKXx8KHIucHJlY2lzaW9uPWkpLHQuZm9ybWF0UHJlZml4KHIsZik7Y2FzZVwiXCI6Y2FzZVwiZVwiOmNhc2VcImdcIjpjYXNlXCJwXCI6Y2FzZVwiclwiOm51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPWZyKHUsTWF0aC5tYXgoTWF0aC5hYnMobyksTWF0aC5hYnMoYSkpKSl8fChyLnByZWNpc2lvbj1pLShcImVcIj09PXIudHlwZSkpO2JyZWFrO2Nhc2VcImZcIjpjYXNlXCIlXCI6bnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9YXIodSkpfHwoci5wcmVjaXNpb249aS0yKihcIiVcIj09PXIudHlwZSkpfXJldHVybiB0LmZvcm1hdChyKX0oZSgpLG4scil9LG4ubmljZT1mdW5jdGlvbih0KXtudWxsPT10JiYodD0xMCk7dmFyIHIsaT1lKCksbz0wLGE9aS5sZW5ndGgtMSx1PWlbb10sZj1pW2FdO3JldHVybiBmPHUmJihyPXUsdT1mLGY9cixyPW8sbz1hLGE9ciksKHI9aCh1LGYsdCkpPjA/cj1oKHU9TWF0aC5mbG9vcih1L3IpKnIsZj1NYXRoLmNlaWwoZi9yKSpyLHQpOnI8MCYmKHI9aCh1PU1hdGguY2VpbCh1KnIpL3IsZj1NYXRoLmZsb29yKGYqcikvcix0KSkscj4wPyhpW29dPU1hdGguZmxvb3IodS9yKSpyLGlbYV09TWF0aC5jZWlsKGYvcikqcixlKGkpKTpyPDAmJihpW29dPU1hdGguY2VpbCh1KnIpL3IsaVthXT1NYXRoLmZsb29yKGYqcikvcixlKGkpKSxufSxufWZ1bmN0aW9uIFNhKCl7dmFyIHQ9VGEoeGEsc24pO3JldHVybiB0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEodCxTYSgpKX0sTmEodCl9ZnVuY3Rpb24gRWEoKXtmdW5jdGlvbiB0KHQpe3JldHVybit0fXZhciBuPVswLDFdO3JldHVybiB0LmludmVydD10LHQuZG9tYWluPXQucmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49a3YuY2FsbChlLG1hKSx0KTpuLnNsaWNlKCl9LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBFYSgpLmRvbWFpbihuKX0sTmEodCl9ZnVuY3Rpb24ga2EodCxuKXt2YXIgZSxyPTAsaT0odD10LnNsaWNlKCkpLmxlbmd0aC0xLG89dFtyXSxhPXRbaV07cmV0dXJuIGE8byYmKGU9cixyPWksaT1lLGU9byxvPWEsYT1lKSx0W3JdPW4uZmxvb3IobyksdFtpXT1uLmNlaWwoYSksdH1mdW5jdGlvbiBDYSh0LG4pe3JldHVybihuPU1hdGgubG9nKG4vdCkpP2Z1bmN0aW9uKGUpe3JldHVybiBNYXRoLmxvZyhlL3QpL259OmJhKG4pfWZ1bmN0aW9uIFBhKHQsbil7cmV0dXJuIHQ8MD9mdW5jdGlvbihlKXtyZXR1cm4tTWF0aC5wb3coLW4sZSkqTWF0aC5wb3coLXQsMS1lKX06ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KG4sZSkqTWF0aC5wb3codCwxLWUpfX1mdW5jdGlvbiB6YSh0KXtyZXR1cm4gaXNGaW5pdGUodCk/KyhcIjFlXCIrdCk6dDwwPzA6dH1mdW5jdGlvbiBSYSh0KXtyZXR1cm4gMTA9PT10P3phOnQ9PT1NYXRoLkU/TWF0aC5leHA6ZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucG93KHQsbil9fWZ1bmN0aW9uIExhKHQpe3JldHVybiB0PT09TWF0aC5FP01hdGgubG9nOjEwPT09dCYmTWF0aC5sb2cxMHx8Mj09PXQmJk1hdGgubG9nMnx8KHQ9TWF0aC5sb2codCksZnVuY3Rpb24obil7cmV0dXJuIE1hdGgubG9nKG4pL3R9KX1mdW5jdGlvbiBEYSh0KXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuLXQoLW4pfX1mdW5jdGlvbiBVYSgpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gbz1MYShpKSxhPVJhKGkpLHIoKVswXTwwJiYobz1EYShvKSxhPURhKGEpKSxlfXZhciBlPVRhKENhLFBhKS5kb21haW4oWzEsMTBdKSxyPWUuZG9tYWluLGk9MTAsbz1MYSgxMCksYT1SYSgxMCk7cmV0dXJuIGUuYmFzZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCxuKCkpOml9LGUuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyKHQpLG4oKSk6cigpfSxlLnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBuLGU9cigpLHU9ZVswXSxmPWVbZS5sZW5ndGgtMV07KG49Zjx1KSYmKGQ9dSx1PWYsZj1kKTt2YXIgYyxzLGgsZD1vKHUpLHA9byhmKSx2PW51bGw9PXQ/MTA6K3QsZz1bXTtpZighKGklMSkmJnAtZDx2KXtpZihkPU1hdGgucm91bmQoZCktMSxwPU1hdGgucm91bmQocCkrMSx1PjApe2Zvcig7ZDxwOysrZClmb3Iocz0xLGM9YShkKTtzPGk7KytzKWlmKCEoKGg9YypzKTx1KSl7aWYoaD5mKWJyZWFrO2cucHVzaChoKX19ZWxzZSBmb3IoO2Q8cDsrK2QpZm9yKHM9aS0xLGM9YShkKTtzPj0xOy0tcylpZighKChoPWMqcyk8dSkpe2lmKGg+ZilicmVhaztnLnB1c2goaCl9fWVsc2UgZz1sKGQscCxNYXRoLm1pbihwLWQsdikpLm1hcChhKTtyZXR1cm4gbj9nLnJldmVyc2UoKTpnfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24obixyKXtpZihudWxsPT1yJiYocj0xMD09PWk/XCIuMGVcIjpcIixcIiksXCJmdW5jdGlvblwiIT10eXBlb2YgciYmKHI9dC5mb3JtYXQocikpLG49PT0xLzApcmV0dXJuIHI7bnVsbD09biYmKG49MTApO3ZhciB1PU1hdGgubWF4KDEsaSpuL2UudGlja3MoKS5sZW5ndGgpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj10L2EoTWF0aC5yb3VuZChvKHQpKSk7cmV0dXJuIG4qaTxpLS41JiYobio9aSksbjw9dT9yKHQpOlwiXCJ9fSxlLm5pY2U9ZnVuY3Rpb24oKXtyZXR1cm4gcihrYShyKCkse2Zsb29yOmZ1bmN0aW9uKHQpe3JldHVybiBhKE1hdGguZmxvb3Iobyh0KSkpfSxjZWlsOmZ1bmN0aW9uKHQpe3JldHVybiBhKE1hdGguY2VpbChvKHQpKSl9fSkpfSxlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEoZSxVYSgpLmJhc2UoaSkpfSxlfWZ1bmN0aW9uIHFhKHQsbil7cmV0dXJuIHQ8MD8tTWF0aC5wb3coLXQsbik6TWF0aC5wb3codCxuKX1mdW5jdGlvbiBPYSgpe3ZhciB0PTEsbj1UYShmdW5jdGlvbihuLGUpe3JldHVybihlPXFhKGUsdCktKG49cWEobix0KSkpP2Z1bmN0aW9uKHIpe3JldHVybihxYShyLHQpLW4pL2V9OmJhKGUpfSxmdW5jdGlvbihuLGUpe3JldHVybiBlPXFhKGUsdCktKG49cWEobix0KSksZnVuY3Rpb24ocil7cmV0dXJuIHFhKG4rZSpyLDEvdCl9fSksZT1uLmRvbWFpbjtyZXR1cm4gbi5leHBvbmVudD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rbixlKGUoKSkpOnR9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBBYShuLE9hKCkuZXhwb25lbnQodCkpfSxOYShuKX1mdW5jdGlvbiBZYSgpe2Z1bmN0aW9uIHQoKXt2YXIgdD0wLG49TWF0aC5tYXgoMSxpLmxlbmd0aCk7Zm9yKG89bmV3IEFycmF5KG4tMSk7Kyt0PG47KW9bdC0xXT12KHIsdC9uKTtyZXR1cm4gZX1mdW5jdGlvbiBlKHQpe2lmKCFpc05hTih0PSt0KSlyZXR1cm4gaVtLYyhvLHQpXX12YXIgcj1bXSxpPVtdLG89W107cmV0dXJuIGUuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBuPWkuaW5kZXhPZih0KTtyZXR1cm4gbjwwP1tOYU4sTmFOXTpbbj4wP29bbi0xXTpyWzBdLG48by5sZW5ndGg/b1tuXTpyW3IubGVuZ3RoLTFdXX0sZS5kb21haW49ZnVuY3Rpb24oZSl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHIuc2xpY2UoKTtyPVtdO2Zvcih2YXIgaSxvPTAsYT1lLmxlbmd0aDtvPGE7KytvKW51bGw9PShpPWVbb10pfHxpc05hTihpPStpKXx8ci5wdXNoKGkpO3JldHVybiByLnNvcnQobiksdCgpfSxlLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPUN2LmNhbGwobiksdCgpKTppLnNsaWNlKCl9LGUucXVhbnRpbGVzPWZ1bmN0aW9uKCl7cmV0dXJuIG8uc2xpY2UoKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIFlhKCkuZG9tYWluKHIpLnJhbmdlKGkpfSxlfWZ1bmN0aW9uIEJhKCl7ZnVuY3Rpb24gdCh0KXtpZih0PD10KXJldHVybiBhW0tjKG8sdCwwLGkpXX1mdW5jdGlvbiBuKCl7dmFyIG49LTE7Zm9yKG89bmV3IEFycmF5KGkpOysrbjxpOylvW25dPSgobisxKSpyLShuLWkpKmUpLyhpKzEpO3JldHVybiB0fXZhciBlPTAscj0xLGk9MSxvPVsuNV0sYT1bMCwxXTtyZXR1cm4gdC5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFsxXSxuKCkpOltlLHJdfSx0LnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPShhPUN2LmNhbGwodCkpLmxlbmd0aC0xLG4oKSk6YS5zbGljZSgpfSx0LmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgbj1hLmluZGV4T2YodCk7cmV0dXJuIG48MD9bTmFOLE5hTl06bjwxP1tlLG9bMF1dOm4+PWk/W29baS0xXSxyXTpbb1tuLTFdLG9bbl1dfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQmEoKS5kb21haW4oW2Uscl0pLnJhbmdlKGEpfSxOYSh0KX1mdW5jdGlvbiBGYSgpe2Z1bmN0aW9uIHQodCl7aWYodDw9dClyZXR1cm4gZVtLYyhuLHQsMCxyKV19dmFyIG49Wy41XSxlPVswLDFdLHI9MTtyZXR1cm4gdC5kb21haW49ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Q3YuY2FsbChpKSxyPU1hdGgubWluKG4ubGVuZ3RoLGUubGVuZ3RoLTEpLHQpOm4uc2xpY2UoKX0sdC5yYW5nZT1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1Ddi5jYWxsKGkpLHI9TWF0aC5taW4obi5sZW5ndGgsZS5sZW5ndGgtMSksdCk6ZS5zbGljZSgpfSx0LmludmVydEV4dGVudD1mdW5jdGlvbih0KXt2YXIgcj1lLmluZGV4T2YodCk7cmV0dXJuW25bci0xXSxuW3JdXX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEZhKCkuZG9tYWluKG4pLnJhbmdlKGUpfSx0fWZ1bmN0aW9uIElhKHQsbixlLHIpe2Z1bmN0aW9uIGkobil7cmV0dXJuIHQobj1uZXcgRGF0ZSgrbikpLG59cmV0dXJuIGkuZmxvb3I9aSxpLmNlaWw9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZT1uZXcgRGF0ZShlLTEpKSxuKGUsMSksdChlKSxlfSxpLnJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBuPWkodCksZT1pLmNlaWwodCk7cmV0dXJuIHQtbjxlLXQ/bjplfSxpLm9mZnNldD1mdW5jdGlvbih0LGUpe3JldHVybiBuKHQ9bmV3IERhdGUoK3QpLG51bGw9PWU/MTpNYXRoLmZsb29yKGUpKSx0fSxpLnJhbmdlPWZ1bmN0aW9uKGUscixvKXt2YXIgYSx1PVtdO2lmKGU9aS5jZWlsKGUpLG89bnVsbD09bz8xOk1hdGguZmxvb3IobyksIShlPHImJm8+MCkpcmV0dXJuIHU7ZG97dS5wdXNoKGE9bmV3IERhdGUoK2UpKSxuKGUsbyksdChlKX13aGlsZShhPGUmJmU8cik7cmV0dXJuIHV9LGkuZmlsdGVyPWZ1bmN0aW9uKGUpe3JldHVybiBJYShmdW5jdGlvbihuKXtpZihuPj1uKWZvcig7dChuKSwhZShuKTspbi5zZXRUaW1lKG4tMSl9LGZ1bmN0aW9uKHQscil7aWYodD49dClpZihyPDApZm9yKDsrK3I8PTA7KWZvcig7bih0LC0xKSwhZSh0KTspO2Vsc2UgZm9yKDstLXI+PTA7KWZvcig7bih0LDEpLCFlKHQpOyk7fSl9LGUmJihpLmNvdW50PWZ1bmN0aW9uKG4scil7cmV0dXJuIFJ2LnNldFRpbWUoK24pLEx2LnNldFRpbWUoK3IpLHQoUnYpLHQoTHYpLE1hdGguZmxvb3IoZShSdixMdikpfSxpLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/aS5maWx0ZXIocj9mdW5jdGlvbihuKXtyZXR1cm4gcihuKSV0PT0wfTpmdW5jdGlvbihuKXtyZXR1cm4gaS5jb3VudCgwLG4pJXQ9PTB9KTppOm51bGx9KSxpfWZ1bmN0aW9uIGphKHQpe3JldHVybiBJYShmdW5jdGlvbihuKXtuLnNldERhdGUobi5nZXREYXRlKCktKG4uZ2V0RGF5KCkrNy10KSU3KSxuLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0RGF0ZSh0LmdldERhdGUoKSs3Km4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQtKG4uZ2V0VGltZXpvbmVPZmZzZXQoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkpKnF2KS9Pdn0pfWZ1bmN0aW9uIEhhKHQpe3JldHVybiBJYShmdW5jdGlvbihuKXtuLnNldFVUQ0RhdGUobi5nZXRVVENEYXRlKCktKG4uZ2V0VVRDRGF5KCkrNy10KSU3KSxuLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKSs3Km4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpL092fSl9ZnVuY3Rpb24gWGEodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgbj1uZXcgRGF0ZSgtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCk7cmV0dXJuIG4uc2V0RnVsbFllYXIodC55KSxufXJldHVybiBuZXcgRGF0ZSh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpfWZ1bmN0aW9uIEdhKHQpe2lmKDA8PXQueSYmdC55PDEwMCl7dmFyIG49bmV3IERhdGUoRGF0ZS5VVEMoLTEsdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpKTtyZXR1cm4gbi5zZXRVVENGdWxsWWVhcih0LnkpLG59cmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpfWZ1bmN0aW9uIFZhKHQpe3JldHVybnt5OnQsbTowLGQ6MSxIOjAsTTowLFM6MCxMOjB9fWZ1bmN0aW9uICRhKHQpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHIsaSxvLGE9W10sdT0tMSxmPTAsYz10Lmxlbmd0aDtmb3IoZSBpbnN0YW5jZW9mIERhdGV8fChlPW5ldyBEYXRlKCtlKSk7Kyt1PGM7KTM3PT09dC5jaGFyQ29kZUF0KHUpJiYoYS5wdXNoKHQuc2xpY2UoZix1KSksbnVsbCE9KGk9VWdbcj10LmNoYXJBdCgrK3UpXSk/cj10LmNoYXJBdCgrK3UpOmk9XCJlXCI9PT1yP1wiIFwiOlwiMFwiLChvPW5bcl0pJiYocj1vKGUsaSkpLGEucHVzaChyKSxmPXUrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGYsdSkpLGEuam9pbihcIlwiKX19ZnVuY3Rpb24gZSh0LG4pe3JldHVybiBmdW5jdGlvbihlKXt2YXIgaSxvLGE9VmEoMTkwMCk7aWYocihhLHQsZSs9XCJcIiwwKSE9ZS5sZW5ndGgpcmV0dXJuIG51bGw7aWYoXCJRXCJpbiBhKXJldHVybiBuZXcgRGF0ZShhLlEpO2lmKFwicFwiaW4gYSYmKGEuSD1hLkglMTIrMTIqYS5wKSxcIlZcImluIGEpe2lmKGEuVjwxfHxhLlY+NTMpcmV0dXJuIG51bGw7XCJ3XCJpbiBhfHwoYS53PTEpLFwiWlwiaW4gYT8oaT0obz0oaT1HYShWYShhLnkpKSkuZ2V0VVRDRGF5KCkpPjR8fDA9PT1vP19nLmNlaWwoaSk6X2coaSksaT12Zy5vZmZzZXQoaSw3KihhLlYtMSkpLGEueT1pLmdldFVUQ0Z1bGxZZWFyKCksYS5tPWkuZ2V0VVRDTW9udGgoKSxhLmQ9aS5nZXRVVENEYXRlKCkrKGEudys2KSU3KTooaT0obz0oaT1uKFZhKGEueSkpKS5nZXREYXkoKSk+NHx8MD09PW8/JHYuY2VpbChpKTokdihpKSxpPVh2Lm9mZnNldChpLDcqKGEuVi0xKSksYS55PWkuZ2V0RnVsbFllYXIoKSxhLm09aS5nZXRNb250aCgpLGEuZD1pLmdldERhdGUoKSsoYS53KzYpJTcpfWVsc2UoXCJXXCJpbiBhfHxcIlVcImluIGEpJiYoXCJ3XCJpbiBhfHwoYS53PVwidVwiaW4gYT9hLnUlNzpcIldcImluIGE/MTowKSxvPVwiWlwiaW4gYT9HYShWYShhLnkpKS5nZXRVVENEYXkoKTpuKFZhKGEueSkpLmdldERheSgpLGEubT0wLGEuZD1cIldcImluIGE/KGEudys2KSU3KzcqYS5XLShvKzUpJTc6YS53KzcqYS5VLShvKzYpJTcpO3JldHVyblwiWlwiaW4gYT8oYS5IKz1hLlovMTAwfDAsYS5NKz1hLlolMTAwLEdhKGEpKTpuKGEpfX1mdW5jdGlvbiByKHQsbixlLHIpe2Zvcih2YXIgaSxvLGE9MCx1PW4ubGVuZ3RoLGY9ZS5sZW5ndGg7YTx1Oyl7aWYocj49ZilyZXR1cm4tMTtpZigzNz09PShpPW4uY2hhckNvZGVBdChhKyspKSl7aWYoaT1uLmNoYXJBdChhKyspLCEobz1BW2kgaW4gVWc/bi5jaGFyQXQoYSsrKTppXSl8fChyPW8odCxlLHIpKTwwKXJldHVybi0xfWVsc2UgaWYoaSE9ZS5jaGFyQ29kZUF0KHIrKykpcmV0dXJuLTF9cmV0dXJuIHJ9dmFyIGk9dC5kYXRlVGltZSxvPXQuZGF0ZSxhPXQudGltZSx1PXQucGVyaW9kcyxmPXQuZGF5cyxjPXQuc2hvcnREYXlzLHM9dC5tb250aHMsbD10LnNob3J0TW9udGhzLGg9UWEodSksZD1KYSh1KSxwPVFhKGYpLHY9SmEoZiksZz1RYShjKSx5PUphKGMpLF89UWEocyksYj1KYShzKSxtPVFhKGwpLHg9SmEobCksdz17YTpmdW5jdGlvbih0KXtyZXR1cm4gY1t0LmdldERheSgpXX0sQTpmdW5jdGlvbih0KXtyZXR1cm4gZlt0LmdldERheSgpXX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gbFt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uKHQpe3JldHVybiBzW3QuZ2V0TW9udGgoKV19LGM6bnVsbCxkOl91LGU6X3UsZjpNdSxIOmJ1LEk6bXUsajp4dSxMOnd1LG06QXUsTTpUdSxwOmZ1bmN0aW9uKHQpe3JldHVybiB1WysodC5nZXRIb3VycygpPj0xMildfSxROkt1LHM6dGYsUzpOdSx1OlN1LFU6RXUsVjprdSx3OkN1LFc6UHUseDpudWxsLFg6bnVsbCx5Onp1LFk6UnUsWjpMdSxcIiVcIjpKdX0sTT17YTpmdW5jdGlvbih0KXtyZXR1cm4gY1t0LmdldFVUQ0RheSgpXX0sQTpmdW5jdGlvbih0KXtyZXR1cm4gZlt0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gbFt0LmdldFVUQ01vbnRoKCldfSxCOmZ1bmN0aW9uKHQpe3JldHVybiBzW3QuZ2V0VVRDTW9udGgoKV19LGM6bnVsbCxkOkR1LGU6RHUsZjpCdSxIOlV1LEk6cXUsajpPdSxMOll1LG06RnUsTTpJdSxwOmZ1bmN0aW9uKHQpe3JldHVybiB1WysodC5nZXRVVENIb3VycygpPj0xMildfSxROkt1LHM6dGYsUzpqdSx1Okh1LFU6WHUsVjpHdSx3OlZ1LFc6JHUseDpudWxsLFg6bnVsbCx5Old1LFk6WnUsWjpRdSxcIiVcIjpKdX0sQT17YTpmdW5jdGlvbih0LG4sZSl7dmFyIHI9Zy5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lnc9eVtyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1wLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQudz12W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LGI6ZnVuY3Rpb24odCxuLGUpe3ZhciByPW0uZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5tPXhbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sQjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9Xy5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lm09YltyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LGksbixlKX0sZDpmdSxlOmZ1LGY6cHUsSDpzdSxJOnN1LGo6Y3UsTDpkdSxtOnV1LE06bHUscDpmdW5jdGlvbih0LG4sZSl7dmFyIHI9aC5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0LnA9ZFtyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxROmd1LHM6eXUsUzpodSx1OnR1LFU6bnUsVjpldSx3OkthLFc6cnUseDpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxvLG4sZSl9LFg6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsYSxuLGUpfSx5Om91LFk6aXUsWjphdSxcIiVcIjp2dX07cmV0dXJuIHcueD1uKG8sdyksdy5YPW4oYSx3KSx3LmM9bihpLHcpLE0ueD1uKG8sTSksTS5YPW4oYSxNKSxNLmM9bihpLE0pLHtmb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9bih0Kz1cIlwiLHcpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBuPWUodCs9XCJcIixYYSk7cmV0dXJuIG4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbn0sdXRjRm9ybWF0OmZ1bmN0aW9uKHQpe3ZhciBlPW4odCs9XCJcIixNKTtyZXR1cm4gZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxlfSx1dGNQYXJzZTpmdW5jdGlvbih0KXt2YXIgbj1lKHQsR2EpO3JldHVybiBuLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LG59fX1mdW5jdGlvbiBXYSh0LG4sZSl7dmFyIHI9dDwwP1wiLVwiOlwiXCIsaT0ocj8tdDp0KStcIlwiLG89aS5sZW5ndGg7cmV0dXJuIHIrKG88ZT9uZXcgQXJyYXkoZS1vKzEpLmpvaW4obikraTppKX1mdW5jdGlvbiBaYSh0KXtyZXR1cm4gdC5yZXBsYWNlKFlnLFwiXFxcXCQmXCIpfWZ1bmN0aW9uIFFhKHQpe3JldHVybiBuZXcgUmVnRXhwKFwiXig/OlwiK3QubWFwKFphKS5qb2luKFwifFwiKStcIilcIixcImlcIil9ZnVuY3Rpb24gSmEodCl7Zm9yKHZhciBuPXt9LGU9LTEscj10Lmxlbmd0aDsrK2U8cjspblt0W2VdLnRvTG93ZXJDYXNlKCldPWU7cmV0dXJuIG59ZnVuY3Rpb24gS2EodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMSkpO3JldHVybiByPyh0Lnc9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdHUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMSkpO3JldHVybiByPyh0LnU9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gbnUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LlU9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gZXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0LlY9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gcnUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Llc9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gaXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrNCkpO3JldHVybiByPyh0Lnk9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gb3UodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lnk9K3JbMF0rKCtyWzBdPjY4PzE5MDA6MmUzKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBhdSh0LG4sZSl7dmFyIHI9L14oWil8KFsrLV1cXGRcXGQpKD86Oj8oXFxkXFxkKSk/Ly5leGVjKG4uc2xpY2UoZSxlKzYpKTtyZXR1cm4gcj8odC5aPXJbMV0/MDotKHJbMl0rKHJbM118fFwiMDBcIikpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHV1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5tPXJbMF0tMSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBmdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuZD0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBjdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSszKSk7cmV0dXJuIHI/KHQubT0wLHQuZD0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBzdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuSD0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBsdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuTT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBodSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuUz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBkdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSszKSk7cmV0dXJuIHI/KHQuTD0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBwdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSs2KSk7cmV0dXJuIHI/KHQuTD1NYXRoLmZsb29yKHJbMF0vMWUzKSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB2dSh0LG4sZSl7dmFyIHI9T2cuZXhlYyhuLnNsaWNlKGUsZSsxKSk7cmV0dXJuIHI/ZStyWzBdLmxlbmd0aDotMX1mdW5jdGlvbiBndSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC5RPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHl1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0LlE9MWUzKityWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIF91KHQsbil7cmV0dXJuIFdhKHQuZ2V0RGF0ZSgpLG4sMil9ZnVuY3Rpb24gYnUodCxuKXtyZXR1cm4gV2EodC5nZXRIb3VycygpLG4sMil9ZnVuY3Rpb24gbXUodCxuKXtyZXR1cm4gV2EodC5nZXRIb3VycygpJTEyfHwxMixuLDIpfWZ1bmN0aW9uIHh1KHQsbil7cmV0dXJuIFdhKDErWHYuY291bnQoY2codCksdCksbiwzKX1mdW5jdGlvbiB3dSh0LG4pe3JldHVybiBXYSh0LmdldE1pbGxpc2Vjb25kcygpLG4sMyl9ZnVuY3Rpb24gTXUodCxuKXtyZXR1cm4gd3UodCxuKStcIjAwMFwifWZ1bmN0aW9uIEF1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TW9udGgoKSsxLG4sMil9ZnVuY3Rpb24gVHUodCxuKXtyZXR1cm4gV2EodC5nZXRNaW51dGVzKCksbiwyKX1mdW5jdGlvbiBOdSh0LG4pe3JldHVybiBXYSh0LmdldFNlY29uZHMoKSxuLDIpfWZ1bmN0aW9uIFN1KHQpe3ZhciBuPXQuZ2V0RGF5KCk7cmV0dXJuIDA9PT1uPzc6bn1mdW5jdGlvbiBFdSh0LG4pe3JldHVybiBXYShWdi5jb3VudChjZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIGt1KHQsbil7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gdD1lPj00fHwwPT09ZT9Rdih0KTpRdi5jZWlsKHQpLFdhKFF2LmNvdW50KGNnKHQpLHQpKyg0PT09Y2codCkuZ2V0RGF5KCkpLG4sMil9ZnVuY3Rpb24gQ3UodCl7cmV0dXJuIHQuZ2V0RGF5KCl9ZnVuY3Rpb24gUHUodCxuKXtyZXR1cm4gV2EoJHYuY291bnQoY2codCksdCksbiwyKX1mdW5jdGlvbiB6dSh0LG4pe3JldHVybiBXYSh0LmdldEZ1bGxZZWFyKCklMTAwLG4sMil9ZnVuY3Rpb24gUnUodCxuKXtyZXR1cm4gV2EodC5nZXRGdWxsWWVhcigpJTFlNCxuLDQpfWZ1bmN0aW9uIEx1KHQpe3ZhciBuPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4obj4wP1wiLVwiOihuKj0tMSxcIitcIikpK1dhKG4vNjB8MCxcIjBcIiwyKStXYShuJTYwLFwiMFwiLDIpfWZ1bmN0aW9uIER1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRGF0ZSgpLG4sMil9ZnVuY3Rpb24gVXUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENIb3VycygpLG4sMil9ZnVuY3Rpb24gcXUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENIb3VycygpJTEyfHwxMixuLDIpfWZ1bmN0aW9uIE91KHQsbil7cmV0dXJuIFdhKDErdmcuY291bnQoUmcodCksdCksbiwzKX1mdW5jdGlvbiBZdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01pbGxpc2Vjb25kcygpLG4sMyl9ZnVuY3Rpb24gQnUodCxuKXtyZXR1cm4gWXUodCxuKStcIjAwMFwifWZ1bmN0aW9uIEZ1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTW9udGgoKSsxLG4sMil9ZnVuY3Rpb24gSXUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNaW51dGVzKCksbiwyKX1mdW5jdGlvbiBqdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ1NlY29uZHMoKSxuLDIpfWZ1bmN0aW9uIEh1KHQpe3ZhciBuPXQuZ2V0VVRDRGF5KCk7cmV0dXJuIDA9PT1uPzc6bn1mdW5jdGlvbiBYdSh0LG4pe3JldHVybiBXYSh5Zy5jb3VudChSZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIEd1KHQsbil7dmFyIGU9dC5nZXRVVENEYXkoKTtyZXR1cm4gdD1lPj00fHwwPT09ZT94Zyh0KTp4Zy5jZWlsKHQpLFdhKHhnLmNvdW50KFJnKHQpLHQpKyg0PT09UmcodCkuZ2V0VVRDRGF5KCkpLG4sMil9ZnVuY3Rpb24gVnUodCl7cmV0dXJuIHQuZ2V0VVRDRGF5KCl9ZnVuY3Rpb24gJHUodCxuKXtyZXR1cm4gV2EoX2cuY291bnQoUmcodCksdCksbiwyKX1mdW5jdGlvbiBXdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0Z1bGxZZWFyKCklMTAwLG4sMil9ZnVuY3Rpb24gWnUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENGdWxsWWVhcigpJTFlNCxuLDQpfWZ1bmN0aW9uIFF1KCl7cmV0dXJuXCIrMDAwMFwifWZ1bmN0aW9uIEp1KCl7cmV0dXJuXCIlXCJ9ZnVuY3Rpb24gS3UodCl7cmV0dXJuK3R9ZnVuY3Rpb24gdGYodCl7cmV0dXJuIE1hdGguZmxvb3IoK3QvMWUzKX1mdW5jdGlvbiBuZihuKXtyZXR1cm4gTGc9JGEobiksdC50aW1lRm9ybWF0PUxnLmZvcm1hdCx0LnRpbWVQYXJzZT1MZy5wYXJzZSx0LnV0Y0Zvcm1hdD1MZy51dGNGb3JtYXQsdC51dGNQYXJzZT1MZy51dGNQYXJzZSxMZ31mdW5jdGlvbiBlZih0KXtyZXR1cm4gbmV3IERhdGUodCl9ZnVuY3Rpb24gcmYodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBEYXRlPyt0OituZXcgRGF0ZSgrdCl9ZnVuY3Rpb24gb2YodCxuLHIsaSxvLGEsdSxmLGMpe2Z1bmN0aW9uIHMoZSl7cmV0dXJuKHUoZSk8ZT9nOmEoZSk8ZT95Om8oZSk8ZT9fOmkoZSk8ZT9iOm4oZSk8ZT9yKGUpPGU/bTp4OnQoZSk8ZT93Ok0pKGUpfWZ1bmN0aW9uIGwobixyLGksbyl7aWYobnVsbD09biYmKG49MTApLFwibnVtYmVyXCI9PXR5cGVvZiBuKXt2YXIgYT1NYXRoLmFicyhpLXIpL24sdT1lKGZ1bmN0aW9uKHQpe3JldHVybiB0WzJdfSkucmlnaHQoQSxhKTt1PT09QS5sZW5ndGg/KG89ZChyL1dnLGkvV2csbiksbj10KTp1PyhvPSh1PUFbYS9BW3UtMV1bMl08QVt1XVsyXS9hP3UtMTp1XSlbMV0sbj11WzBdKToobz1NYXRoLm1heChkKHIsaSxuKSwxKSxuPWYpfXJldHVybiBudWxsPT1vP246bi5ldmVyeShvKX12YXIgaD1UYSh4YSxzbikscD1oLmludmVydCx2PWguZG9tYWluLGc9YyhcIi4lTFwiKSx5PWMoXCI6JVNcIiksXz1jKFwiJUk6JU1cIiksYj1jKFwiJUkgJXBcIiksbT1jKFwiJWEgJWRcIikseD1jKFwiJWIgJWRcIiksdz1jKFwiJUJcIiksTT1jKFwiJVlcIiksQT1bW3UsMSxqZ10sW3UsNSw1KmpnXSxbdSwxNSwxNSpqZ10sW3UsMzAsMzAqamddLFthLDEsSGddLFthLDUsNSpIZ10sW2EsMTUsMTUqSGddLFthLDMwLDMwKkhnXSxbbywxLFhnXSxbbywzLDMqWGddLFtvLDYsNipYZ10sW28sMTIsMTIqWGddLFtpLDEsR2ddLFtpLDIsMipHZ10sW3IsMSxWZ10sW24sMSwkZ10sW24sMywzKiRnXSxbdCwxLFdnXV07cmV0dXJuIGguaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRGF0ZShwKHQpKX0saC5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dihrdi5jYWxsKHQscmYpKTp2KCkubWFwKGVmKX0saC50aWNrcz1mdW5jdGlvbih0LG4pe3ZhciBlLHI9digpLGk9clswXSxvPXJbci5sZW5ndGgtMV0sYT1vPGk7cmV0dXJuIGEmJihlPWksaT1vLG89ZSksZT1sKHQsaSxvLG4pLGU9ZT9lLnJhbmdlKGksbysxKTpbXSxhP2UucmV2ZXJzZSgpOmV9LGgudGlja0Zvcm1hdD1mdW5jdGlvbih0LG4pe3JldHVybiBudWxsPT1uP3M6YyhuKX0saC5uaWNlPWZ1bmN0aW9uKHQsbil7dmFyIGU9digpO3JldHVybih0PWwodCxlWzBdLGVbZS5sZW5ndGgtMV0sbikpP3Yoa2EoZSx0KSk6aH0saC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKGgsb2YodCxuLHIsaSxvLGEsdSxmLGMpKX0saH1mdW5jdGlvbiBhZih0KXtmdW5jdGlvbiBuKG4pe3ZhciByPShuLWUpKmk7cmV0dXJuIHQobz9NYXRoLm1heCgwLE1hdGgubWluKDEscikpOnIpfXZhciBlPTAscj0xLGk9MSxvPSExO3JldHVybiBuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLGk9ZT09PXI/MDoxLyhyLWUpLG4pOltlLHJdfSxuLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSEhdCxuKTpvfSxuLmludGVycG9sYXRvcj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLG4pOnR9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiBhZih0KS5kb21haW4oW2Uscl0pLmNsYW1wKG8pfSxOYShuKX1mdW5jdGlvbiB1Zih0KXtmdW5jdGlvbiBuKG4pe3ZhciBlPS41Kygobj0rbiktcikqKG48cj9vOmEpO3JldHVybiB0KHU/TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKTplKX12YXIgZT0wLHI9LjUsaT0xLG89MSxhPTEsdT0hMTtyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFsxXSxpPSt0WzJdLG89ZT09PXI/MDouNS8oci1lKSxhPXI9PT1pPzA6LjUvKGktciksbik6W2UscixpXX0sbi5jbGFtcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hIXQsbik6dX0sbi5pbnRlcnBvbGF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gdWYodCkuZG9tYWluKFtlLHIsaV0pLmNsYW1wKHUpfSxOYShuKX1mdW5jdGlvbiBmZih0KXtmb3IodmFyIG49dC5sZW5ndGgvNnwwLGU9bmV3IEFycmF5KG4pLHI9MDtyPG47KWVbcl09XCIjXCIrdC5zbGljZSg2KnIsNiorK3IpO3JldHVybiBlfWZ1bmN0aW9uIGNmKHQpe3JldHVybiBpbCh0W3QubGVuZ3RoLTFdKX1mdW5jdGlvbiBzZih0KXt2YXIgbj10Lmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHRbTWF0aC5tYXgoMCxNYXRoLm1pbihuLTEsTWF0aC5mbG9vcihlKm4pKSldfX1mdW5jdGlvbiBsZih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gaGYodCl7cmV0dXJuIHQ+PTE/VF86dDw9LTE/LVRfOk1hdGguYXNpbih0KX1mdW5jdGlvbiBkZih0KXtyZXR1cm4gdC5pbm5lclJhZGl1c31mdW5jdGlvbiBwZih0KXtyZXR1cm4gdC5vdXRlclJhZGl1c31mdW5jdGlvbiB2Zih0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfWZ1bmN0aW9uIGdmKHQpe3JldHVybiB0LmVuZEFuZ2xlfWZ1bmN0aW9uIHlmKHQpe3JldHVybiB0JiZ0LnBhZEFuZ2xlfWZ1bmN0aW9uIF9mKHQsbixlLHIsaSxvLGEpe3ZhciB1PXQtZSxmPW4tcixjPShhP286LW8pL3dfKHUqdStmKmYpLHM9YypmLGw9LWMqdSxoPXQrcyxkPW4rbCxwPWUrcyx2PXIrbCxnPShoK3ApLzIseT0oZCt2KS8yLF89cC1oLGI9di1kLG09XypfK2IqYix4PWktbyx3PWgqdi1wKmQsTT0oYjwwPy0xOjEpKndfKGJfKDAseCp4Km0tdyp3KSksQT0odypiLV8qTSkvbSxUPSgtdypfLWIqTSkvbSxOPSh3KmIrXypNKS9tLFM9KC13Kl8rYipNKS9tLEU9QS1nLGs9VC15LEM9Ti1nLFA9Uy15O3JldHVybiBFKkUrayprPkMqQytQKlAmJihBPU4sVD1TKSx7Y3g6QSxjeTpULHgwMTotcyx5MDE6LWwseDExOkEqKGkveC0xKSx5MTE6VCooaS94LTEpfX1mdW5jdGlvbiBiZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gbWYodCl7cmV0dXJuIG5ldyBiZih0KX1mdW5jdGlvbiB4Zih0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiB3Zih0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBNZigpe2Z1bmN0aW9uIHQodCl7dmFyIHUsZixjLHM9dC5sZW5ndGgsbD0hMTtmb3IobnVsbD09aSYmKGE9byhjPW9lKCkpKSx1PTA7dTw9czsrK3UpISh1PHMmJnIoZj10W3VdLHUsdCkpPT09bCYmKChsPSFsKT9hLmxpbmVTdGFydCgpOmEubGluZUVuZCgpKSxsJiZhLnBvaW50KCtuKGYsdSx0KSwrZShmLHUsdCkpO2lmKGMpcmV0dXJuIGE9bnVsbCxjK1wiXCJ8fG51bGx9dmFyIG49eGYsZT13ZixyPWxmKCEwKSxpPW51bGwsbz1tZixhPW51bGw7cmV0dXJuIHQueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoK2UpLHQpOm59LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuZGVmaW5lZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoISFuKSx0KTpyfSx0LmN1cnZlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW4sbnVsbCE9aSYmKGE9byhpKSksdCk6b30sdC5jb250ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT1uP2k9YT1udWxsOmE9byhpPW4pLHQpOml9LHR9ZnVuY3Rpb24gQWYoKXtmdW5jdGlvbiB0KHQpe3ZhciBuLHMsbCxoLGQscD10Lmxlbmd0aCx2PSExLGc9bmV3IEFycmF5KHApLHk9bmV3IEFycmF5KHApO2ZvcihudWxsPT11JiYoYz1mKGQ9b2UoKSkpLG49MDtuPD1wOysrbil7aWYoIShuPHAmJmEoaD10W25dLG4sdCkpPT09dilpZih2PSF2KXM9bixjLmFyZWFTdGFydCgpLGMubGluZVN0YXJ0KCk7ZWxzZXtmb3IoYy5saW5lRW5kKCksYy5saW5lU3RhcnQoKSxsPW4tMTtsPj1zOy0tbCljLnBvaW50KGdbbF0seVtsXSk7Yy5saW5lRW5kKCksYy5hcmVhRW5kKCl9diYmKGdbbl09K2UoaCxuLHQpLHlbbl09K2koaCxuLHQpLGMucG9pbnQocj8rcihoLG4sdCk6Z1tuXSxvPytvKGgsbix0KTp5W25dKSl9aWYoZClyZXR1cm4gYz1udWxsLGQrXCJcInx8bnVsbH1mdW5jdGlvbiBuKCl7cmV0dXJuIE1mKCkuZGVmaW5lZChhKS5jdXJ2ZShmKS5jb250ZXh0KHUpfXZhciBlPXhmLHI9bnVsbCxpPWxmKDApLG89d2YsYT1sZighMCksdT1udWxsLGY9bWYsYz1udWxsO3JldHVybiB0Lng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSxyPW51bGwsdCk6ZX0sdC54MD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQueDE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6cn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksbz1udWxsLHQpOml9LHQueTA9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LnkxPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPW51bGw9PW4/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOm99LHQubGluZVgwPXQubGluZVkwPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKS54KGUpLnkoaSl9LHQubGluZVkxPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKS54KGUpLnkobyl9LHQubGluZVgxPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKS54KHIpLnkoaSl9LHQuZGVmaW5lZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoISFuKSx0KTphfSx0LmN1cnZlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPW4sbnVsbCE9dSYmKGM9Zih1KSksdCk6Zn0sdC5jb250ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT1uP3U9Yz1udWxsOmM9Zih1PW4pLHQpOnV9LHR9ZnVuY3Rpb24gVGYodCxuKXtyZXR1cm4gbjx0Py0xOm4+dD8xOm4+PXQ/MDpOYU59ZnVuY3Rpb24gTmYodCl7cmV0dXJuIHR9ZnVuY3Rpb24gU2YodCl7dGhpcy5fY3VydmU9dH1mdW5jdGlvbiBFZih0KXtmdW5jdGlvbiBuKG4pe3JldHVybiBuZXcgU2YodChuKSl9cmV0dXJuIG4uX2N1cnZlPXQsbn1mdW5jdGlvbiBrZih0KXt2YXIgbj10LmN1cnZlO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQucmFkaXVzPXQueSxkZWxldGUgdC55LHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihFZih0KSk6bigpLl9jdXJ2ZX0sdH1mdW5jdGlvbiBDZigpe3JldHVybiBrZihNZigpLmN1cnZlKFNfKSl9ZnVuY3Rpb24gUGYoKXt2YXIgdD1BZigpLmN1cnZlKFNfKSxuPXQuY3VydmUsZT10LmxpbmVYMCxyPXQubGluZVgxLGk9dC5saW5lWTAsbz10LmxpbmVZMTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnN0YXJ0QW5nbGU9dC54MCxkZWxldGUgdC54MCx0LmVuZEFuZ2xlPXQueDEsZGVsZXRlIHQueDEsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5pbm5lclJhZGl1cz10LnkwLGRlbGV0ZSB0LnkwLHQub3V0ZXJSYWRpdXM9dC55MSxkZWxldGUgdC55MSx0LmxpbmVTdGFydEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKGUoKSl9LGRlbGV0ZSB0LmxpbmVYMCx0LmxpbmVFbmRBbmdsZT1mdW5jdGlvbigpe3JldHVybiBrZihyKCkpfSxkZWxldGUgdC5saW5lWDEsdC5saW5lSW5uZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4ga2YoaSgpKX0sZGVsZXRlIHQubGluZVkwLHQubGluZU91dGVyUmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKG8oKSl9LGRlbGV0ZSB0LmxpbmVZMSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oRWYodCkpOm4oKS5fY3VydmV9LHR9ZnVuY3Rpb24gemYodCxuKXtyZXR1cm5bKG49K24pKk1hdGguY29zKHQtPU1hdGguUEkvMiksbipNYXRoLnNpbih0KV19ZnVuY3Rpb24gUmYodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIExmKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiBEZih0KXtmdW5jdGlvbiBuKCl7dmFyIG4sdT1FXy5jYWxsKGFyZ3VtZW50cyksZj1lLmFwcGx5KHRoaXMsdSksYz1yLmFwcGx5KHRoaXMsdSk7aWYoYXx8KGE9bj1vZSgpKSx0KGEsK2kuYXBwbHkodGhpcywodVswXT1mLHUpKSwrby5hcHBseSh0aGlzLHUpLCtpLmFwcGx5KHRoaXMsKHVbMF09Yyx1KSksK28uYXBwbHkodGhpcyx1KSksbilyZXR1cm4gYT1udWxsLG4rXCJcInx8bnVsbH12YXIgZT1SZixyPUxmLGk9eGYsbz13ZixhPW51bGw7cmV0dXJuIG4uc291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbik6ZX0sbi50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxuKTpyfSxuLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OmxmKCt0KSxuKTppfSxuLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OmxmKCt0KSxuKTpvfSxuLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09dD9udWxsOnQsbik6YX0sbn1mdW5jdGlvbiBVZih0LG4sZSxyLGkpe3QubW92ZVRvKG4sZSksdC5iZXppZXJDdXJ2ZVRvKG49KG4rcikvMixlLG4saSxyLGkpfWZ1bmN0aW9uIHFmKHQsbixlLHIsaSl7dC5tb3ZlVG8obixlKSx0LmJlemllckN1cnZlVG8obixlPShlK2kpLzIscixlLHIsaSl9ZnVuY3Rpb24gT2YodCxuLGUscixpKXt2YXIgbz16ZihuLGUpLGE9emYobixlPShlK2kpLzIpLHU9emYocixlKSxmPXpmKHIsaSk7dC5tb3ZlVG8ob1swXSxvWzFdKSx0LmJlemllckN1cnZlVG8oYVswXSxhWzFdLHVbMF0sdVsxXSxmWzBdLGZbMV0pfWZ1bmN0aW9uIFlmKCl7fWZ1bmN0aW9uIEJmKHQsbixlKXt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8oKDIqdC5feDArdC5feDEpLzMsKDIqdC5feTArdC5feTEpLzMsKHQuX3gwKzIqdC5feDEpLzMsKHQuX3kwKzIqdC5feTEpLzMsKHQuX3gwKzQqdC5feDErbikvNiwodC5feTArNCp0Ll95MStlKS82KX1mdW5jdGlvbiBGZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gSWYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIGpmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBIZih0LG4pe3RoaXMuX2Jhc2lzPW5ldyBGZih0KSx0aGlzLl9iZXRhPW59ZnVuY3Rpb24gWGYodCxuLGUpe3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyh0Ll94MSt0Ll9rKih0Ll94Mi10Ll94MCksdC5feTErdC5fayoodC5feTItdC5feTApLHQuX3gyK3QuX2sqKHQuX3gxLW4pLHQuX3kyK3QuX2sqKHQuX3kxLWUpLHQuX3gyLHQuX3kyKX1mdW5jdGlvbiBHZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gVmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uICRmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiBXZih0LG4sZSl7dmFyIHI9dC5feDEsaT10Ll95MSxvPXQuX3gyLGE9dC5feTI7aWYodC5fbDAxX2E+TV8pe3ZhciB1PTIqdC5fbDAxXzJhKzMqdC5fbDAxX2EqdC5fbDEyX2ErdC5fbDEyXzJhLGY9Myp0Ll9sMDFfYSoodC5fbDAxX2ErdC5fbDEyX2EpO3I9KHIqdS10Ll94MCp0Ll9sMTJfMmErdC5feDIqdC5fbDAxXzJhKS9mLGk9KGkqdS10Ll95MCp0Ll9sMTJfMmErdC5feTIqdC5fbDAxXzJhKS9mfWlmKHQuX2wyM19hPk1fKXt2YXIgYz0yKnQuX2wyM18yYSszKnQuX2wyM19hKnQuX2wxMl9hK3QuX2wxMl8yYSxzPTMqdC5fbDIzX2EqKHQuX2wyM19hK3QuX2wxMl9hKTtvPShvKmMrdC5feDEqdC5fbDIzXzJhLW4qdC5fbDEyXzJhKS9zLGE9KGEqYyt0Ll95MSp0Ll9sMjNfMmEtZSp0Ll9sMTJfMmEpL3N9dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHIsaSxvLGEsdC5feDIsdC5feTIpfWZ1bmN0aW9uIFpmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gUWYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBKZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIEtmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB0Yyh0KXtyZXR1cm4gdDwwPy0xOjF9ZnVuY3Rpb24gbmModCxuLGUpe3ZhciByPXQuX3gxLXQuX3gwLGk9bi10Ll94MSxvPSh0Ll95MS10Ll95MCkvKHJ8fGk8MCYmLTApLGE9KGUtdC5feTEpLyhpfHxyPDAmJi0wKSx1PShvKmkrYSpyKS8ocitpKTtyZXR1cm4odGMobykrdGMoYSkpKk1hdGgubWluKE1hdGguYWJzKG8pLE1hdGguYWJzKGEpLC41Kk1hdGguYWJzKHUpKXx8MH1mdW5jdGlvbiBlYyh0LG4pe3ZhciBlPXQuX3gxLXQuX3gwO3JldHVybiBlPygzKih0Ll95MS10Ll95MCkvZS1uKS8yOm59ZnVuY3Rpb24gcmModCxuLGUpe3ZhciByPXQuX3gwLGk9dC5feTAsbz10Ll94MSxhPXQuX3kxLHU9KG8tcikvMzt0Ll9jb250ZXh0LmJlemllckN1cnZlVG8ocit1LGkrdSpuLG8tdSxhLXUqZSxvLGEpfWZ1bmN0aW9uIGljKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBvYyh0KXt0aGlzLl9jb250ZXh0PW5ldyBhYyh0KX1mdW5jdGlvbiBhYyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gdWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIGZjKHQpe3ZhciBuLGUscj10Lmxlbmd0aC0xLGk9bmV3IEFycmF5KHIpLG89bmV3IEFycmF5KHIpLGE9bmV3IEFycmF5KHIpO2ZvcihpWzBdPTAsb1swXT0yLGFbMF09dFswXSsyKnRbMV0sbj0xO248ci0xOysrbilpW25dPTEsb1tuXT00LGFbbl09NCp0W25dKzIqdFtuKzFdO2ZvcihpW3ItMV09MixvW3ItMV09NyxhW3ItMV09OCp0W3ItMV0rdFtyXSxuPTE7bjxyOysrbillPWlbbl0vb1tuLTFdLG9bbl0tPWUsYVtuXS09ZSphW24tMV07Zm9yKGlbci0xXT1hW3ItMV0vb1tyLTFdLG49ci0yO24+PTA7LS1uKWlbbl09KGFbbl0taVtuKzFdKS9vW25dO2ZvcihvW3ItMV09KHRbcl0raVtyLTFdKS8yLG49MDtuPHItMTsrK24pb1tuXT0yKnRbbisxXS1pW24rMV07cmV0dXJuW2ksb119ZnVuY3Rpb24gY2ModCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fdD1ufWZ1bmN0aW9uIHNjKHQsbil7aWYoKGk9dC5sZW5ndGgpPjEpZm9yKHZhciBlLHIsaSxvPTEsYT10W25bMF1dLHU9YS5sZW5ndGg7bzxpOysrbylmb3Iocj1hLGE9dFtuW29dXSxlPTA7ZTx1OysrZSlhW2VdWzFdKz1hW2VdWzBdPWlzTmFOKHJbZV1bMV0pP3JbZV1bMF06cltlXVsxXX1mdW5jdGlvbiBsYyh0KXtmb3IodmFyIG49dC5sZW5ndGgsZT1uZXcgQXJyYXkobik7LS1uPj0wOyllW25dPW47cmV0dXJuIGV9ZnVuY3Rpb24gaGModCxuKXtyZXR1cm4gdFtuXX1mdW5jdGlvbiBkYyh0KXt2YXIgbj10Lm1hcChwYyk7cmV0dXJuIGxjKHQpLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gblt0XS1uW2VdfSl9ZnVuY3Rpb24gcGModCl7Zm9yKHZhciBuLGU9MCxyPS0xLGk9dC5sZW5ndGg7KytyPGk7KShuPSt0W3JdWzFdKSYmKGUrPW4pO3JldHVybiBlfWZ1bmN0aW9uIHZjKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBnYyh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiB5Yyh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBfYygpe3RoaXMuXz1udWxsfWZ1bmN0aW9uIGJjKHQpe3QuVT10LkM9dC5MPXQuUj10LlA9dC5OPW51bGx9ZnVuY3Rpb24gbWModCxuKXt2YXIgZT1uLHI9bi5SLGk9ZS5VO2k/aS5MPT09ZT9pLkw9cjppLlI9cjp0Ll89cixyLlU9aSxlLlU9cixlLlI9ci5MLGUuUiYmKGUuUi5VPWUpLHIuTD1lfWZ1bmN0aW9uIHhjKHQsbil7dmFyIGU9bixyPW4uTCxpPWUuVTtpP2kuTD09PWU/aS5MPXI6aS5SPXI6dC5fPXIsci5VPWksZS5VPXIsZS5MPXIuUixlLkwmJihlLkwuVT1lKSxyLlI9ZX1mdW5jdGlvbiB3Yyh0KXtmb3IoO3QuTDspdD10Lkw7cmV0dXJuIHR9ZnVuY3Rpb24gTWModCxuLGUscil7dmFyIGk9W251bGwsbnVsbF0sbz1yYi5wdXNoKGkpLTE7cmV0dXJuIGkubGVmdD10LGkucmlnaHQ9bixlJiZUYyhpLHQsbixlKSxyJiZUYyhpLG4sdCxyKSxuYlt0LmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxuYltuLmluZGV4XS5oYWxmZWRnZXMucHVzaChvKSxpfWZ1bmN0aW9uIEFjKHQsbixlKXt2YXIgcj1bbixlXTtyZXR1cm4gci5sZWZ0PXQscn1mdW5jdGlvbiBUYyh0LG4sZSxyKXt0WzBdfHx0WzFdP3QubGVmdD09PWU/dFsxXT1yOnRbMF09cjoodFswXT1yLHQubGVmdD1uLHQucmlnaHQ9ZSl9ZnVuY3Rpb24gTmModCxuLGUscixpKXt2YXIgbyxhPXRbMF0sdT10WzFdLGY9YVswXSxjPWFbMV0scz0wLGw9MSxoPXVbMF0tZixkPXVbMV0tYztpZihvPW4tZixofHwhKG8+MCkpe2lmKG8vPWgsaDwwKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9ZWxzZSBpZihoPjApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1pZihvPXItZixofHwhKG88MCkpe2lmKG8vPWgsaDwwKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9ZWxzZSBpZihoPjApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1pZihvPWUtYyxkfHwhKG8+MCkpe2lmKG8vPWQsZDwwKXtpZihvPHMpcmV0dXJuO288bCYmKGw9byl9ZWxzZSBpZihkPjApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1pZihvPWktYyxkfHwhKG88MCkpe2lmKG8vPWQsZDwwKXtpZihvPmwpcmV0dXJuO28+cyYmKHM9byl9ZWxzZSBpZihkPjApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1yZXR1cm4hKHM+MHx8bDwxKXx8KHM+MCYmKHRbMF09W2YrcypoLGMrcypkXSksbDwxJiYodFsxXT1bZitsKmgsYytsKmRdKSwhMCl9fX19fWZ1bmN0aW9uIFNjKHQsbixlLHIsaSl7dmFyIG89dFsxXTtpZihvKXJldHVybiEwO3ZhciBhLHUsZj10WzBdLGM9dC5sZWZ0LHM9dC5yaWdodCxsPWNbMF0saD1jWzFdLGQ9c1swXSxwPXNbMV0sdj0obCtkKS8yLGc9KGgrcCkvMjtpZihwPT09aCl7aWYodjxufHx2Pj1yKXJldHVybjtpZihsPmQpe2lmKGYpe2lmKGZbMV0+PWkpcmV0dXJufWVsc2UgZj1bdixlXTtvPVt2LGldfWVsc2V7aWYoZil7aWYoZlsxXTxlKXJldHVybn1lbHNlIGY9W3YsaV07bz1bdixlXX19ZWxzZSBpZihhPShsLWQpLyhwLWgpLHU9Zy1hKnYsYTwtMXx8YT4xKWlmKGw+ZCl7aWYoZil7aWYoZlsxXT49aSlyZXR1cm59ZWxzZSBmPVsoZS11KS9hLGVdO289WyhpLXUpL2EsaV19ZWxzZXtpZihmKXtpZihmWzFdPGUpcmV0dXJufWVsc2UgZj1bKGktdSkvYSxpXTtvPVsoZS11KS9hLGVdfWVsc2UgaWYoaDxwKXtpZihmKXtpZihmWzBdPj1yKXJldHVybn1lbHNlIGY9W24sYSpuK3VdO289W3IsYSpyK3VdfWVsc2V7aWYoZil7aWYoZlswXTxuKXJldHVybn1lbHNlIGY9W3IsYSpyK3VdO289W24sYSpuK3VdfXJldHVybiB0WzBdPWYsdFsxXT1vLCEwfWZ1bmN0aW9uIEVjKHQsbil7dmFyIGU9dC5zaXRlLHI9bi5sZWZ0LGk9bi5yaWdodDtyZXR1cm4gZT09PWkmJihpPXIscj1lKSxpP01hdGguYXRhbjIoaVsxXS1yWzFdLGlbMF0tclswXSk6KGU9PT1yPyhyPW5bMV0saT1uWzBdKToocj1uWzBdLGk9blsxXSksTWF0aC5hdGFuMihyWzBdLWlbMF0saVsxXS1yWzFdKSl9ZnVuY3Rpb24ga2ModCxuKXtyZXR1cm4gblsrKG4ubGVmdCE9PXQuc2l0ZSldfWZ1bmN0aW9uIENjKHQsbil7cmV0dXJuIG5bKyhuLmxlZnQ9PT10LnNpdGUpXX1mdW5jdGlvbiBQYyh0KXt2YXIgbj10LlAsZT10Lk47aWYobiYmZSl7dmFyIHI9bi5zaXRlLGk9dC5zaXRlLG89ZS5zaXRlO2lmKHIhPT1vKXt2YXIgYT1pWzBdLHU9aVsxXSxmPXJbMF0tYSxjPXJbMV0tdSxzPW9bMF0tYSxsPW9bMV0tdSxoPTIqKGYqbC1jKnMpO2lmKCEoaD49LXViKSl7dmFyIGQ9ZipmK2MqYyxwPXMqcytsKmwsdj0obCpkLWMqcCkvaCxnPShmKnAtcypkKS9oLHk9aWIucG9wKCl8fG5ldyBmdW5jdGlvbigpe2JjKHRoaXMpLHRoaXMueD10aGlzLnk9dGhpcy5hcmM9dGhpcy5zaXRlPXRoaXMuY3k9bnVsbH07eS5hcmM9dCx5LnNpdGU9aSx5Lng9dithLHkueT0oeS5jeT1nK3UpK01hdGguc3FydCh2KnYrZypnKSx0LmNpcmNsZT15O2Zvcih2YXIgXz1udWxsLGI9ZWIuXztiOylpZih5Lnk8Yi55fHx5Lnk9PT1iLnkmJnkueDw9Yi54KXtpZighYi5MKXtfPWIuUDticmVha31iPWIuTH1lbHNle2lmKCFiLlIpe189YjticmVha31iPWIuUn1lYi5pbnNlcnQoXyx5KSxffHwoS189eSl9fX19ZnVuY3Rpb24gemModCl7dmFyIG49dC5jaXJjbGU7biYmKG4uUHx8KEtfPW4uTiksZWIucmVtb3ZlKG4pLGliLnB1c2gobiksYmMobiksdC5jaXJjbGU9bnVsbCl9ZnVuY3Rpb24gUmModCl7dmFyIG49b2IucG9wKCl8fG5ldyBmdW5jdGlvbigpe2JjKHRoaXMpLHRoaXMuZWRnZT10aGlzLnNpdGU9dGhpcy5jaXJjbGU9bnVsbH07cmV0dXJuIG4uc2l0ZT10LG59ZnVuY3Rpb24gTGModCl7emModCksdGIucmVtb3ZlKHQpLG9iLnB1c2godCksYmModCl9ZnVuY3Rpb24gRGModCl7dmFyIG49dC5jaXJjbGUsZT1uLngscj1uLmN5LGk9W2Uscl0sbz10LlAsYT10Lk4sdT1bdF07TGModCk7Zm9yKHZhciBmPW87Zi5jaXJjbGUmJk1hdGguYWJzKGUtZi5jaXJjbGUueCk8YWImJk1hdGguYWJzKHItZi5jaXJjbGUuY3kpPGFiOylvPWYuUCx1LnVuc2hpZnQoZiksTGMoZiksZj1vO3UudW5zaGlmdChmKSx6YyhmKTtmb3IodmFyIGM9YTtjLmNpcmNsZSYmTWF0aC5hYnMoZS1jLmNpcmNsZS54KTxhYiYmTWF0aC5hYnMoci1jLmNpcmNsZS5jeSk8YWI7KWE9Yy5OLHUucHVzaChjKSxMYyhjKSxjPWE7dS5wdXNoKGMpLHpjKGMpO3ZhciBzLGw9dS5sZW5ndGg7Zm9yKHM9MTtzPGw7KytzKWM9dVtzXSxmPXVbcy0xXSxUYyhjLmVkZ2UsZi5zaXRlLGMuc2l0ZSxpKTtmPXVbMF0sKGM9dVtsLTFdKS5lZGdlPU1jKGYuc2l0ZSxjLnNpdGUsbnVsbCxpKSxQYyhmKSxQYyhjKX1mdW5jdGlvbiBVYyh0KXtmb3IodmFyIG4sZSxyLGksbz10WzBdLGE9dFsxXSx1PXRiLl87dTspaWYoKHI9cWModSxhKS1vKT5hYil1PXUuTDtlbHNle2lmKCEoKGk9by1mdW5jdGlvbih0LG4pe3ZhciBlPXQuTjtpZihlKXJldHVybiBxYyhlLG4pO3ZhciByPXQuc2l0ZTtyZXR1cm4gclsxXT09PW4/clswXToxLzB9KHUsYSkpPmFiKSl7cj4tYWI/KG49dS5QLGU9dSk6aT4tYWI/KG49dSxlPXUuTik6bj1lPXU7YnJlYWt9aWYoIXUuUil7bj11O2JyZWFrfXU9dS5SfShmdW5jdGlvbih0KXtuYlt0LmluZGV4XT17c2l0ZTp0LGhhbGZlZGdlczpbXX19KSh0KTt2YXIgZj1SYyh0KTtpZih0Yi5pbnNlcnQobixmKSxufHxlKXtpZihuPT09ZSlyZXR1cm4gemMobiksZT1SYyhuLnNpdGUpLHRiLmluc2VydChmLGUpLGYuZWRnZT1lLmVkZ2U9TWMobi5zaXRlLGYuc2l0ZSksUGMobiksdm9pZCBQYyhlKTtpZihlKXt6YyhuKSx6YyhlKTt2YXIgYz1uLnNpdGUscz1jWzBdLGw9Y1sxXSxoPXRbMF0tcyxkPXRbMV0tbCxwPWUuc2l0ZSx2PXBbMF0tcyxnPXBbMV0tbCx5PTIqKGgqZy1kKnYpLF89aCpoK2QqZCxiPXYqditnKmcsbT1bKGcqXy1kKmIpL3krcywoaCpiLXYqXykveStsXTtUYyhlLmVkZ2UsYyxwLG0pLGYuZWRnZT1NYyhjLHQsbnVsbCxtKSxlLmVkZ2U9TWModCxwLG51bGwsbSksUGMobiksUGMoZSl9ZWxzZSBmLmVkZ2U9TWMobi5zaXRlLGYuc2l0ZSl9fWZ1bmN0aW9uIHFjKHQsbil7dmFyIGU9dC5zaXRlLHI9ZVswXSxpPWVbMV0sbz1pLW47aWYoIW8pcmV0dXJuIHI7dmFyIGE9dC5QO2lmKCFhKXJldHVybi0xLzA7dmFyIHU9KGU9YS5zaXRlKVswXSxmPWVbMV0sYz1mLW47aWYoIWMpcmV0dXJuIHU7dmFyIHM9dS1yLGw9MS9vLTEvYyxoPXMvYztyZXR1cm4gbD8oLWgrTWF0aC5zcXJ0KGgqaC0yKmwqKHMqcy8oLTIqYyktZitjLzIraS1vLzIpKSkvbCtyOihyK3UpLzJ9ZnVuY3Rpb24gT2ModCxuLGUpe3JldHVybih0WzBdLWVbMF0pKihuWzFdLXRbMV0pLSh0WzBdLW5bMF0pKihlWzFdLXRbMV0pfWZ1bmN0aW9uIFljKHQsbil7cmV0dXJuIG5bMV0tdFsxXXx8blswXS10WzBdfWZ1bmN0aW9uIEJjKHQsbil7dmFyIGUscixpLG89dC5zb3J0KFljKS5wb3AoKTtmb3IocmI9W10sbmI9bmV3IEFycmF5KHQubGVuZ3RoKSx0Yj1uZXcgX2MsZWI9bmV3IF9jOzspaWYoaT1LXyxvJiYoIWl8fG9bMV08aS55fHxvWzFdPT09aS55JiZvWzBdPGkueCkpb1swXT09PWUmJm9bMV09PT1yfHwoVWMobyksZT1vWzBdLHI9b1sxXSksbz10LnBvcCgpO2Vsc2V7aWYoIWkpYnJlYWs7RGMoaS5hcmMpfWlmKGZ1bmN0aW9uKCl7Zm9yKHZhciB0LG4sZSxyLGk9MCxvPW5iLmxlbmd0aDtpPG87KytpKWlmKCh0PW5iW2ldKSYmKHI9KG49dC5oYWxmZWRnZXMpLmxlbmd0aCkpe3ZhciBhPW5ldyBBcnJheShyKSx1PW5ldyBBcnJheShyKTtmb3IoZT0wO2U8cjsrK2UpYVtlXT1lLHVbZV09RWModCxyYltuW2VdXSk7Zm9yKGEuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiB1W25dLXVbdF19KSxlPTA7ZTxyOysrZSl1W2VdPW5bYVtlXV07Zm9yKGU9MDtlPHI7KytlKW5bZV09dVtlXX19KCksbil7dmFyIGE9K25bMF1bMF0sdT0rblswXVsxXSxmPStuWzFdWzBdLGM9K25bMV1bMV07KGZ1bmN0aW9uKHQsbixlLHIpe2Zvcih2YXIgaSxvPXJiLmxlbmd0aDtvLS07KVNjKGk9cmJbb10sdCxuLGUscikmJk5jKGksdCxuLGUscikmJihNYXRoLmFicyhpWzBdWzBdLWlbMV1bMF0pPmFifHxNYXRoLmFicyhpWzBdWzFdLWlbMV1bMV0pPmFiKXx8ZGVsZXRlIHJiW29dfSkoYSx1LGYsYyksZnVuY3Rpb24odCxuLGUscil7dmFyIGksbyxhLHUsZixjLHMsbCxoLGQscCx2LGc9bmIubGVuZ3RoLHk9ITA7Zm9yKGk9MDtpPGc7KytpKWlmKG89bmJbaV0pe2ZvcihhPW8uc2l0ZSx1PShmPW8uaGFsZmVkZ2VzKS5sZW5ndGg7dS0tOylyYltmW3VdXXx8Zi5zcGxpY2UodSwxKTtmb3IodT0wLGM9Zi5sZW5ndGg7dTxjOylwPShkPUNjKG8scmJbZlt1XV0pKVswXSx2PWRbMV0sbD0ocz1rYyhvLHJiW2ZbKyt1JWNdXSkpWzBdLGg9c1sxXSwoTWF0aC5hYnMocC1sKT5hYnx8TWF0aC5hYnModi1oKT5hYikmJihmLnNwbGljZSh1LDAscmIucHVzaChBYyhhLGQsTWF0aC5hYnMocC10KTxhYiYmci12PmFiP1t0LE1hdGguYWJzKGwtdCk8YWI/aDpyXTpNYXRoLmFicyh2LXIpPGFiJiZlLXA+YWI/W01hdGguYWJzKGgtcik8YWI/bDplLHJdOk1hdGguYWJzKHAtZSk8YWImJnYtbj5hYj9bZSxNYXRoLmFicyhsLWUpPGFiP2g6bl06TWF0aC5hYnModi1uKTxhYiYmcC10PmFiP1tNYXRoLmFicyhoLW4pPGFiP2w6dCxuXTpudWxsKSktMSksKytjKTtjJiYoeT0hMSl9aWYoeSl7dmFyIF8sYixtLHg9MS8wO2ZvcihpPTAseT1udWxsO2k8ZzsrK2kpKG89bmJbaV0pJiYobT0oXz0oYT1vLnNpdGUpWzBdLXQpKl8rKGI9YVsxXS1uKSpiKTx4JiYoeD1tLHk9byk7aWYoeSl7dmFyIHc9W3Qsbl0sTT1bdCxyXSxBPVtlLHJdLFQ9W2Usbl07eS5oYWxmZWRnZXMucHVzaChyYi5wdXNoKEFjKGE9eS5zaXRlLHcsTSkpLTEscmIucHVzaChBYyhhLE0sQSkpLTEscmIucHVzaChBYyhhLEEsVCkpLTEscmIucHVzaChBYyhhLFQsdykpLTEpfX1mb3IoaT0wO2k8ZzsrK2kpKG89bmJbaV0pJiYoby5oYWxmZWRnZXMubGVuZ3RofHxkZWxldGUgbmJbaV0pfShhLHUsZixjKX10aGlzLmVkZ2VzPXJiLHRoaXMuY2VsbHM9bmIsdGI9ZWI9cmI9bmI9bnVsbH1mdW5jdGlvbiBGYyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gSWModCxuLGUpe3RoaXMuaz10LHRoaXMueD1uLHRoaXMueT1lfWZ1bmN0aW9uIGpjKHQpe3JldHVybiB0Ll9fem9vbXx8ZmJ9ZnVuY3Rpb24gSGMoKXt0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFhjKCl7dC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpLHQuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gR2MoKXtyZXR1cm4hdC5ldmVudC5idXR0b259ZnVuY3Rpb24gVmMoKXt2YXIgdCxuLGU9dGhpcztyZXR1cm4gZSBpbnN0YW5jZW9mIFNWR0VsZW1lbnQ/KHQ9KGU9ZS5vd25lclNWR0VsZW1lbnR8fGUpLndpZHRoLmJhc2VWYWwudmFsdWUsbj1lLmhlaWdodC5iYXNlVmFsLnZhbHVlKToodD1lLmNsaWVudFdpZHRoLG49ZS5jbGllbnRIZWlnaHQpLFtbMCwwXSxbdCxuXV19ZnVuY3Rpb24gJGMoKXtyZXR1cm4gdGhpcy5fX3pvb218fGZifWZ1bmN0aW9uIFdjKCl7cmV0dXJuLXQuZXZlbnQuZGVsdGFZKih0LmV2ZW50LmRlbHRhTW9kZT8xMjA6MSkvNTAwfWZ1bmN0aW9uIFpjKCl7cmV0dXJuXCJvbnRvdWNoc3RhcnRcImluIHRoaXN9ZnVuY3Rpb24gUWModCxuLGUpe3ZhciByPXQuaW52ZXJ0WChuWzBdWzBdKS1lWzBdWzBdLGk9dC5pbnZlcnRYKG5bMV1bMF0pLWVbMV1bMF0sbz10LmludmVydFkoblswXVsxXSktZVswXVsxXSxhPXQuaW52ZXJ0WShuWzFdWzFdKS1lWzFdWzFdO3JldHVybiB0LnRyYW5zbGF0ZShpPnI/KHIraSkvMjpNYXRoLm1pbigwLHIpfHxNYXRoLm1heCgwLGkpLGE+bz8obythKS8yOk1hdGgubWluKDAsbyl8fE1hdGgubWF4KDAsYSkpfXZhciBKYz1lKG4pLEtjPUpjLnJpZ2h0LHRzPUpjLmxlZnQsbnM9QXJyYXkucHJvdG90eXBlLGVzPW5zLnNsaWNlLHJzPW5zLm1hcCxpcz1NYXRoLnNxcnQoNTApLG9zPU1hdGguc3FydCgxMCksYXM9TWF0aC5zcXJ0KDIpLHVzPUFycmF5LnByb3RvdHlwZS5zbGljZSxmcz0xLGNzPTIsc3M9Myxscz00LGhzPTFlLTYsZHM9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07Uy5wcm90b3R5cGU9Ti5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlMsb246ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXRoaXMuXyxpPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxccysvKS5tYXAoZnVuY3Rpb24odCl7dmFyIGU9XCJcIixyPXQuaW5kZXhPZihcIi5cIik7aWYocj49MCYmKGU9dC5zbGljZShyKzEpLHQ9dC5zbGljZSgwLHIpKSx0JiYhbi5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHR5cGU6IFwiK3QpO3JldHVybnt0eXBlOnQsbmFtZTplfX0pfSh0K1wiXCIsciksbz0tMSxhPWkubGVuZ3RoO3tpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPW4mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBjYWxsYmFjazogXCIrbik7Zm9yKDsrK288YTspaWYoZT0odD1pW29dKS50eXBlKXJbZV09RShyW2VdLHQubmFtZSxuKTtlbHNlIGlmKG51bGw9PW4pZm9yKGUgaW4gcilyW2VdPUUocltlXSx0Lm5hbWUsbnVsbCk7cmV0dXJuIHRoaXN9Zm9yKDsrK288YTspaWYoKGU9KHQ9aVtvXSkudHlwZSkmJihlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlLHI9MCxpPXQubGVuZ3RoO3I8aTsrK3IpaWYoKGU9dFtyXSkubmFtZT09PW4pcmV0dXJuIGUudmFsdWV9KHJbZV0sdC5uYW1lKSkpcmV0dXJuIGV9fSxjb3B5OmZ1bmN0aW9uKCl7dmFyIHQ9e30sbj10aGlzLl87Zm9yKHZhciBlIGluIG4pdFtlXT1uW2VdLnNsaWNlKCk7cmV0dXJuIG5ldyBTKHQpfSxjYWxsOmZ1bmN0aW9uKHQsbil7aWYoKGU9YXJndW1lbnRzLmxlbmd0aC0yKT4wKWZvcih2YXIgZSxyLGk9bmV3IEFycmF5KGUpLG89MDtvPGU7KytvKWlbb109YXJndW1lbnRzW28rMl07aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHR5cGU6IFwiK3QpO2ZvcihvPTAsZT0ocj10aGlzLl9bdF0pLmxlbmd0aDtvPGU7KytvKXJbb10udmFsdWUuYXBwbHkobixpKX0sYXBwbHk6ZnVuY3Rpb24odCxuLGUpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKFwidW5rbm93biB0eXBlOiBcIit0KTtmb3IodmFyIHI9dGhpcy5fW3RdLGk9MCxvPXIubGVuZ3RoO2k8bzsrK2kpcltpXS52YWx1ZS5hcHBseShuLGUpfX07dmFyIHBzPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiLHZzPXtzdmc6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHhodG1sOnBzLHhsaW5rOlwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLHhtbDpcImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy9cIn0sZ3M9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyh0KX19O2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCl7dmFyIHlzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZigheXMubWF0Y2hlcyl7dmFyIF9zPXlzLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8eXMubXNNYXRjaGVzU2VsZWN0b3J8fHlzLm1vek1hdGNoZXNTZWxlY3Rvcnx8eXMub01hdGNoZXNTZWxlY3Rvcjtncz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gX3MuY2FsbCh0aGlzLHQpfX19fXZhciBicz1ncztVLnByb3RvdHlwZT17Y29uc3RydWN0b3I6VSxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LHRoaXMuX25leHQpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZSh0LG4pfSxxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCl9fTt2YXIgbXM9XCIkXCI7SC5wcm90b3R5cGU9e2FkZDpmdW5jdGlvbih0KXt0aGlzLl9uYW1lcy5pbmRleE9mKHQpPDAmJih0aGlzLl9uYW1lcy5wdXNoKHQpLHRoaXMuX25vZGUuc2V0QXR0cmlidXRlKFwiY2xhc3NcIix0aGlzLl9uYW1lcy5qb2luKFwiIFwiKSkpfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZXMuaW5kZXhPZih0KTtuPj0wJiYodGhpcy5fbmFtZXMuc3BsaWNlKG4sMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLHRoaXMuX25hbWVzLmpvaW4oXCIgXCIpKSl9LGNvbnRhaW5zOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9uYW1lcy5pbmRleE9mKHQpPj0wfX07dmFyIHhzPXt9O2lmKHQuZXZlbnQ9bnVsbCxcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQpe1wib25tb3VzZWVudGVyXCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fCh4cz17bW91c2VlbnRlcjpcIm1vdXNlb3ZlclwiLG1vdXNlbGVhdmU6XCJtb3VzZW91dFwifSl9dmFyIHdzPVtudWxsXTt1dC5wcm90b3R5cGU9ZnQucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp1dCxzZWxlY3Q6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9eih0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGUpLGk9MDtpPGU7KytpKWZvcih2YXIgbyxhLHU9bltpXSxmPXUubGVuZ3RoLGM9cltpXT1uZXcgQXJyYXkoZikscz0wO3M8ZjsrK3MpKG89dVtzXSkmJihhPXQuY2FsbChvLG8uX19kYXRhX18scyx1KSkmJihcIl9fZGF0YV9fXCJpbiBvJiYoYS5fX2RhdGFfXz1vLl9fZGF0YV9fKSxjW3NdPWEpO3JldHVybiBuZXcgdXQocix0aGlzLl9wYXJlbnRzKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PUwodCkpO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT1uLmxlbmd0aCxyPVtdLGk9W10sbz0wO288ZTsrK28pZm9yKHZhciBhLHU9bltvXSxmPXUubGVuZ3RoLGM9MDtjPGY7KytjKShhPXVbY10pJiYoci5wdXNoKHQuY2FsbChhLGEuX19kYXRhX18sYyx1KSksaS5wdXNoKGEpKTtyZXR1cm4gbmV3IHV0KHIsaSl9LGZpbHRlcjpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1icyh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGUpLGk9MDtpPGU7KytpKWZvcih2YXIgbyxhPW5baV0sdT1hLmxlbmd0aCxmPXJbaV09W10sYz0wO2M8dTsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmZi5wdXNoKG8pO3JldHVybiBuZXcgdXQocix0aGlzLl9wYXJlbnRzKX0sZGF0YTpmdW5jdGlvbih0LG4pe2lmKCF0KXJldHVybiBkPW5ldyBBcnJheSh0aGlzLnNpemUoKSksYz0tMSx0aGlzLmVhY2goZnVuY3Rpb24odCl7ZFsrK2NdPXR9KSxkO3ZhciBlPW4/TzpxLHI9dGhpcy5fcGFyZW50cyxpPXRoaXMuX2dyb3VwcztcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KHQpKTtmb3IodmFyIG89aS5sZW5ndGgsYT1uZXcgQXJyYXkobyksdT1uZXcgQXJyYXkobyksZj1uZXcgQXJyYXkobyksYz0wO2M8bzsrK2Mpe3ZhciBzPXJbY10sbD1pW2NdLGg9bC5sZW5ndGgsZD10LmNhbGwocyxzJiZzLl9fZGF0YV9fLGMscikscD1kLmxlbmd0aCx2PXVbY109bmV3IEFycmF5KHApLGc9YVtjXT1uZXcgQXJyYXkocCk7ZShzLGwsdixnLGZbY109bmV3IEFycmF5KGgpLGQsbik7Zm9yKHZhciB5LF8sYj0wLG09MDtiPHA7KytiKWlmKHk9dltiXSl7Zm9yKGI+PW0mJihtPWIrMSk7IShfPWdbbV0pJiYrK208cDspO3kuX25leHQ9X3x8bnVsbH19cmV0dXJuIGE9bmV3IHV0KGEsciksYS5fZW50ZXI9dSxhLl9leGl0PWYsYX0sZW50ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHV0KHRoaXMuX2VudGVyfHx0aGlzLl9ncm91cHMubWFwKEQpLHRoaXMuX3BhcmVudHMpfSxleGl0OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB1dCh0aGlzLl9leGl0fHx0aGlzLl9ncm91cHMubWFwKEQpLHRoaXMuX3BhcmVudHMpfSxtZXJnZTpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9dC5fZ3JvdXBzLHI9bi5sZW5ndGgsaT1lLmxlbmd0aCxvPU1hdGgubWluKHIsaSksYT1uZXcgQXJyYXkociksdT0wO3U8bzsrK3UpZm9yKHZhciBmLGM9blt1XSxzPWVbdV0sbD1jLmxlbmd0aCxoPWFbdV09bmV3IEFycmF5KGwpLGQ9MDtkPGw7KytkKShmPWNbZF18fHNbZF0pJiYoaFtkXT1mKTtmb3IoO3U8cjsrK3UpYVt1XT1uW3VdO3JldHVybiBuZXcgdXQoYSx0aGlzLl9wYXJlbnRzKX0sb3JkZXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLG49LTEsZT10Lmxlbmd0aDsrK248ZTspZm9yKHZhciByLGk9dFtuXSxvPWkubGVuZ3RoLTEsYT1pW29dOy0tbz49MDspKHI9aVtvXSkmJihhJiZhIT09ci5uZXh0U2libGluZyYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLGEpLGE9cik7cmV0dXJuIHRoaXN9LHNvcnQ6ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihuLGUpe3JldHVybiBuJiZlP3Qobi5fX2RhdGFfXyxlLl9fZGF0YV9fKTohbi0hZX10fHwodD1ZKTtmb3IodmFyIGU9dGhpcy5fZ3JvdXBzLHI9ZS5sZW5ndGgsaT1uZXcgQXJyYXkociksbz0wO288cjsrK28pe2Zvcih2YXIgYSx1PWVbb10sZj11Lmxlbmd0aCxjPWlbb109bmV3IEFycmF5KGYpLHM9MDtzPGY7KytzKShhPXVbc10pJiYoY1tzXT1hKTtjLnNvcnQobil9cmV0dXJuIG5ldyB1dChpLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHNbMF07cmV0dXJuIGFyZ3VtZW50c1swXT10aGlzLHQuYXBwbHkobnVsbCxhcmd1bWVudHMpLHRoaXN9LG5vZGVzOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxuPS0xO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt0Wysrbl09dGhpc30pLHR9LG5vZGU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fZ3JvdXBzLG49MCxlPXQubGVuZ3RoO248ZTsrK24pZm9yKHZhciByPXRbbl0saT0wLG89ci5sZW5ndGg7aTxvOysraSl7dmFyIGE9cltpXTtpZihhKXJldHVybiBhfXJldHVybiBudWxsfSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Kyt0fSksdH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub2RlKCl9LGVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPTAscj1uLmxlbmd0aDtlPHI7KytlKWZvcih2YXIgaSxvPW5bZV0sYT0wLHU9by5sZW5ndGg7YTx1OysrYSkoaT1vW2FdKSYmdC5jYWxsKGksaS5fX2RhdGFfXyxhLG8pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uKHQsbil7dmFyIGU9ayh0KTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciByPXRoaXMubm9kZSgpO3JldHVybiBlLmxvY2FsP3IuZ2V0QXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTpyLmdldEF0dHJpYnV0ZShlKX1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1uP2UubG9jYWw/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2UubG9jYWw/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfX06ZS5sb2NhbD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLG4pfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZSh0LG4pfX0pKGUsbikpfSxzdHlsZTpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PW4/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuLGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciByPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PXI/dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KTp0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQscixlKX19OmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsbixlKX19KSh0LG4sbnVsbD09ZT9cIlwiOmUpKTpGKHRoaXMubm9kZSgpLHQpfSxwcm9wZXJ0eTpmdW5jdGlvbih0LG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1uP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW3RdfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/ZGVsZXRlIHRoaXNbdF06dGhpc1t0XT1lfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzW3RdPW59fSkodCxuKSk6dGhpcy5ub2RlKClbdF19LGNsYXNzZWQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1JKHQrXCJcIik7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIHI9aih0aGlzLm5vZGUoKSksaT0tMSxvPWUubGVuZ3RoOysraTxvOylpZighci5jb250YWlucyhlW2ldKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7KG4uYXBwbHkodGhpcyxhcmd1bWVudHMpP1g6RykodGhpcyx0KX19Om4/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7WCh0aGlzLHQpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Ryh0aGlzLHQpfX0pKGUsbikpfSx0ZXh0OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT10P1Y6KFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1uP1wiXCI6bn19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KSh0KSk6dGhpcy5ub2RlKCkudGV4dENvbnRlbnR9LGh0bWw6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/JDooXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLmlubmVySFRNTD1udWxsPT1uP1wiXCI6bn19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9fSkodCkpOnRoaXMubm9kZSgpLmlubmVySFRNTH0scmFpc2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKFcpfSxsb3dlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goWil9LGFwcGVuZDpmdW5jdGlvbih0KXt2YXIgbj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6Qyh0KTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcHBlbmRDaGlsZChuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9KX0saW5zZXJ0OmZ1bmN0aW9uKHQsbil7dmFyIGU9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkModCkscj1udWxsPT1uP1E6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnoobik7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKGUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEopfSxjbG9uZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZWxlY3QodD90dDpLKX0sZGF0dW06ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5wcm9wZXJ0eShcIl9fZGF0YV9fXCIsdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG89ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJpbSgpLnNwbGl0KC9efFxccysvKS5tYXAoZnVuY3Rpb24odCl7dmFyIG49XCJcIixlPXQuaW5kZXhPZihcIi5cIik7cmV0dXJuIGU+PTAmJihuPXQuc2xpY2UoZSsxKSx0PXQuc2xpY2UoMCxlKSkse3R5cGU6dCxuYW1lOm59fSl9KHQrXCJcIiksYT1vLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2Zvcih1PW4/aXQ6cnQsbnVsbD09ZSYmKGU9ITEpLHI9MDtyPGE7KytyKXRoaXMuZWFjaCh1KG9bcl0sbixlKSk7cmV0dXJuIHRoaXN9dmFyIHU9dGhpcy5ub2RlKCkuX19vbjtpZih1KWZvcih2YXIgZixjPTAscz11Lmxlbmd0aDtjPHM7KytjKWZvcihyPTAsZj11W2NdO3I8YTsrK3IpaWYoKGk9b1tyXSkudHlwZT09PWYudHlwZSYmaS5uYW1lPT09Zi5uYW1lKXJldHVybiBmLnZhbHVlfSxkaXNwYXRjaDpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYXQodGhpcyx0LG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGF0KHRoaXMsdCxuKX19KSh0LG4pKX19O3ZhciBNcz0wO2x0LnByb3RvdHlwZT1zdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmx0LGdldDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcy5fOyEobiBpbiB0KTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuO3JldHVybiB0W25dfSxzZXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdFt0aGlzLl9dPW59LHJlbW92ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fIGluIHQmJmRlbGV0ZSB0W3RoaXMuX119LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319LHh0LnByb3RvdHlwZS5vbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuXy5vbi5hcHBseSh0aGlzLl8sYXJndW1lbnRzKTtyZXR1cm4gdD09PXRoaXMuXz90aGlzOnR9O3ZhciBBcz1cIlxcXFxzKihbKy1dP1xcXFxkKylcXFxccypcIixUcz1cIlxcXFxzKihbKy1dP1xcXFxkKlxcXFwuP1xcXFxkKyg/OltlRV1bKy1dP1xcXFxkKyk/KVxcXFxzKlwiLE5zPVwiXFxcXHMqKFsrLV0/XFxcXGQqXFxcXC4/XFxcXGQrKD86W2VFXVsrLV0/XFxcXGQrKT8pJVxcXFxzKlwiLFNzPS9eIyhbMC05YS1mXXszfSkkLyxFcz0vXiMoWzAtOWEtZl17Nn0pJC8sa3M9bmV3IFJlZ0V4cChcIl5yZ2JcXFxcKFwiK1tBcyxBcyxBc10rXCJcXFxcKSRcIiksQ3M9bmV3IFJlZ0V4cChcIl5yZ2JcXFxcKFwiK1tOcyxOcyxOc10rXCJcXFxcKSRcIiksUHM9bmV3IFJlZ0V4cChcIl5yZ2JhXFxcXChcIitbQXMsQXMsQXMsVHNdK1wiXFxcXCkkXCIpLHpzPW5ldyBSZWdFeHAoXCJecmdiYVxcXFwoXCIrW05zLE5zLE5zLFRzXStcIlxcXFwpJFwiKSxScz1uZXcgUmVnRXhwKFwiXmhzbFxcXFwoXCIrW1RzLE5zLE5zXStcIlxcXFwpJFwiKSxMcz1uZXcgUmVnRXhwKFwiXmhzbGFcXFxcKFwiK1tUcyxOcyxOcyxUc10rXCJcXFxcKSRcIiksRHM9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07TnQoRXQsa3Qse2Rpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuZGlzcGxheWFibGUoKX0saGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkuaGV4KCl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmdiKCkrXCJcIn19KSxOdChMdCxSdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IEx0KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBMdCh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gMDw9dGhpcy5yJiZ0aGlzLnI8PTI1NSYmMDw9dGhpcy5nJiZ0aGlzLmc8PTI1NSYmMDw9dGhpcy5iJiZ0aGlzLmI8PTI1NSYmMDw9dGhpcy5vcGFjaXR5JiZ0aGlzLm9wYWNpdHk8PTF9LGhleDpmdW5jdGlvbigpe3JldHVyblwiI1wiK0R0KHRoaXMucikrRHQodGhpcy5nKStEdCh0aGlzLmIpfSx0b1N0cmluZzpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3BhY2l0eTtyZXR1cm4oMT09PSh0PWlzTmFOKHQpPzE6TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSk/XCJyZ2IoXCI6XCJyZ2JhKFwiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKStcIiwgXCIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmcpfHwwKSkrXCIsIFwiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKygxPT09dD9cIilcIjpcIiwgXCIrdCtcIilcIil9fSkpLE50KE90LHF0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgT3QodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgT3QodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLG49aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsZT10aGlzLmwscj1lKyhlPC41P2U6MS1lKSpuLGk9MiplLXI7cmV0dXJuIG5ldyBMdChZdCh0Pj0yNDA/dC0yNDA6dCsxMjAsaSxyKSxZdCh0LGksciksWXQodDwxMjA/dCsyNDA6dC0xMjAsaSxyKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX19KSk7dmFyIFVzPU1hdGguUEkvMTgwLHFzPTE4MC9NYXRoLlBJLE9zPS45NjQyMixZcz0xLEJzPS44MjUyMSxGcz00LzI5LElzPTYvMjksanM9MypJcypJcyxIcz1JcypJcypJcztOdChJdCxGdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJdCh0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEl0KHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMubCsxNikvMTE2LG49aXNOYU4odGhpcy5hKT90OnQrdGhpcy5hLzUwMCxlPWlzTmFOKHRoaXMuYik/dDp0LXRoaXMuYi8yMDA7cmV0dXJuIG49T3MqSHQobiksdD1ZcypIdCh0KSxlPUJzKkh0KGUpLG5ldyBMdChYdCgzLjEzMzg1NjEqbi0xLjYxNjg2NjcqdC0uNDkwNjE0NiplKSxYdCgtLjk3ODc2ODQqbisxLjkxNjE0MTUqdCsuMDMzNDU0KmUpLFh0KC4wNzE5NDUzKm4tLjIyODk5MTQqdCsxLjQwNTI0MjcqZSksdGhpcy5vcGFjaXR5KX19KSksTnQoV3QsJHQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgV3QodGhpcy5oLHRoaXMuYyx0aGlzLmwrMTgqKG51bGw9PXQ/MTp0KSx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBXdCh0aGlzLmgsdGhpcy5jLHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBCdCh0aGlzKS5yZ2IoKX19KSk7dmFyIFhzPS0uMjkyMjcsR3M9LS45MDY0OSxWcz0xLjk3Mjk0LCRzPVZzKkdzLFdzPTEuNzgyNzcqVnMsWnM9MS43ODI3NypYcy0gLS4xNDg2MSpHcztOdChRdCxadCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8xLy43Ok1hdGgucG93KDEvLjcsdCksbmV3IFF0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IFF0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7dmFyIHQ9aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpVcyxuPSt0aGlzLmwsZT1pc05hTih0aGlzLnMpPzA6dGhpcy5zKm4qKDEtbikscj1NYXRoLmNvcyh0KSxpPU1hdGguc2luKHQpO3JldHVybiBuZXcgTHQoMjU1KihuK2UqKC0uMTQ4NjEqcisxLjc4Mjc3KmkpKSwyNTUqKG4rZSooWHMqcitHcyppKSksMjU1KihuK2UqKFZzKnIpKSx0aGlzLm9wYWNpdHkpfX0pKTt2YXIgUXMsSnMsS3MsdGwsbmwsZWwscmw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsbil7dmFyIGU9cigodD1SdCh0KSkuciwobj1SdChuKSkuciksaT1yKHQuZyxuLmcpLG89cih0LmIsbi5iKSxhPWFuKHQub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdC5yPWUobiksdC5nPWkobiksdC5iPW8obiksdC5vcGFjaXR5PWEobiksdCtcIlwifX12YXIgcj1vbihuKTtyZXR1cm4gZS5nYW1tYT10LGV9KDEpLGlsPXVuKEt0KSxvbD11bih0biksYWw9L1stK10/KD86XFxkK1xcLj9cXGQqfFxcLj9cXGQrKSg/OltlRV1bLStdP1xcZCspPy9nLHVsPW5ldyBSZWdFeHAoYWwuc291cmNlLFwiZ1wiKSxmbD0xODAvTWF0aC5QSSxjbD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfSxzbD1nbihmdW5jdGlvbih0KXtyZXR1cm5cIm5vbmVcIj09PXQ/Y2w6KFFzfHwoUXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIkRJVlwiKSxKcz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsS3M9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLFFzLnN0eWxlLnRyYW5zZm9ybT10LHQ9S3MuZ2V0Q29tcHV0ZWRTdHlsZShKcy5hcHBlbmRDaGlsZChRcyksbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShcInRyYW5zZm9ybVwiKSxKcy5yZW1vdmVDaGlsZChRcyksdD10LnNsaWNlKDcsLTEpLnNwbGl0KFwiLFwiKSx2bigrdFswXSwrdFsxXSwrdFsyXSwrdFszXSwrdFs0XSwrdFs1XSkpfSxcInB4LCBcIixcInB4KVwiLFwiZGVnKVwiKSxsbD1nbihmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9jbDoodGx8fCh0bD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwiZ1wiKSksdGwuc2V0QXR0cmlidXRlKFwidHJhbnNmb3JtXCIsdCksKHQ9dGwudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/KHQ9dC5tYXRyaXgsdm4odC5hLHQuYix0LmMsdC5kLHQuZSx0LmYpKTpjbCl9LFwiLCBcIixcIilcIixcIilcIiksaGw9TWF0aC5TUVJUMixkbD0yLHBsPTQsdmw9MWUtMTIsZ2w9Ym4ocm4pLHlsPWJuKGFuKSxfbD1tbihybiksYmw9bW4oYW4pLG1sPXhuKHJuKSx4bD14bihhbiksd2w9MCxNbD0wLEFsPTAsVGw9MWUzLE5sPTAsU2w9MCxFbD0wLGtsPVwib2JqZWN0XCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlOkRhdGUsQ2w9XCJvYmplY3RcIj09dHlwZW9mIHdpbmRvdyYmd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtBbi5wcm90b3R5cGU9VG4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpBbixyZXN0YXJ0OmZ1bmN0aW9uKHQsbixlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvblwiKTtlPShudWxsPT1lP3duKCk6K2UpKyhudWxsPT1uPzA6K24pLHRoaXMuX25leHR8fGVsPT09dGhpc3x8KGVsP2VsLl9uZXh0PXRoaXM6bmw9dGhpcyxlbD10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1lLGtuKCl9LHN0b3A6ZnVuY3Rpb24oKXt0aGlzLl9jYWxsJiYodGhpcy5fY2FsbD1udWxsLHRoaXMuX3RpbWU9MS8wLGtuKCkpfX07dmFyIFBsPU4oXCJzdGFydFwiLFwiZW5kXCIsXCJpbnRlcnJ1cHRcIiksemw9W10sUmw9MCxMbD0xLERsPTIsVWw9MyxxbD00LE9sPTUsWWw9NixCbD1mdC5wcm90b3R5cGUuY29uc3RydWN0b3IsRmw9MCxJbD1mdC5wcm90b3R5cGU7T24ucHJvdG90eXBlPVluLnByb3RvdHlwZT17Y29uc3RydWN0b3I6T24sc2VsZWN0OmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWUsZT10aGlzLl9pZDtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD16KHQpKTtmb3IodmFyIHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz1uZXcgQXJyYXkoaSksYT0wO2E8aTsrK2EpZm9yKHZhciB1LGYsYz1yW2FdLHM9Yy5sZW5ndGgsbD1vW2FdPW5ldyBBcnJheShzKSxoPTA7aDxzOysraCkodT1jW2hdKSYmKGY9dC5jYWxsKHUsdS5fX2RhdGFfXyxoLGMpKSYmKFwiX19kYXRhX19cImluIHUmJihmLl9fZGF0YV9fPXUuX19kYXRhX18pLGxbaF09ZixQbihsW2hdLG4sZSxoLGwsTG4odSxlKSkpO3JldHVybiBuZXcgT24obyx0aGlzLl9wYXJlbnRzLG4sZSl9LHNlbGVjdEFsbDpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lLGU9dGhpcy5faWQ7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9TCh0KSk7Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89W10sYT1bXSx1PTA7dTxpOysrdSlmb3IodmFyIGYsYz1yW3VdLHM9Yy5sZW5ndGgsbD0wO2w8czsrK2wpaWYoZj1jW2xdKXtmb3IodmFyIGgsZD10LmNhbGwoZixmLl9fZGF0YV9fLGwsYykscD1MbihmLGUpLHY9MCxnPWQubGVuZ3RoO3Y8ZzsrK3YpKGg9ZFt2XSkmJlBuKGgsbixlLHYsZCxwKTtvLnB1c2goZCksYS5wdXNoKGYpfXJldHVybiBuZXcgT24obyxhLG4sZSl9LGZpbHRlcjpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1icyh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGUpLGk9MDtpPGU7KytpKWZvcih2YXIgbyxhPW5baV0sdT1hLmxlbmd0aCxmPXJbaV09W10sYz0wO2M8dTsrK2MpKG89YVtjXSkmJnQuY2FsbChvLG8uX19kYXRhX18sYyxhKSYmZi5wdXNoKG8pO3JldHVybiBuZXcgT24ocix0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxtZXJnZTpmdW5jdGlvbih0KXtpZih0Ll9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9dC5fZ3JvdXBzLHI9bi5sZW5ndGgsaT1lLmxlbmd0aCxvPU1hdGgubWluKHIsaSksYT1uZXcgQXJyYXkociksdT0wO3U8bzsrK3UpZm9yKHZhciBmLGM9blt1XSxzPWVbdV0sbD1jLmxlbmd0aCxoPWFbdV09bmV3IEFycmF5KGwpLGQ9MDtkPGw7KytkKShmPWNbZF18fHNbZF0pJiYoaFtkXT1mKTtmb3IoO3U8cjsrK3UpYVt1XT1uW3VdO3JldHVybiBuZXcgT24oYSx0aGlzLl9wYXJlbnRzLHRoaXMuX25hbWUsdGhpcy5faWQpfSxzZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEJsKHRoaXMuX2dyb3Vwcyx0aGlzLl9wYXJlbnRzKX0sdHJhbnNpdGlvbjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9uYW1lLG49dGhpcy5faWQsZT1CbigpLHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz0wO288aTsrK28pZm9yKHZhciBhLHU9cltvXSxmPXUubGVuZ3RoLGM9MDtjPGY7KytjKWlmKGE9dVtjXSl7dmFyIHM9TG4oYSxuKTtQbihhLHQsZSxjLHUse3RpbWU6cy50aW1lK3MuZGVsYXkrcy5kdXJhdGlvbixkZWxheTowLGR1cmF0aW9uOnMuZHVyYXRpb24sZWFzZTpzLmVhc2V9KX1yZXR1cm4gbmV3IE9uKHIsdGhpcy5fcGFyZW50cyx0LGUpfSxjYWxsOklsLmNhbGwsbm9kZXM6SWwubm9kZXMsbm9kZTpJbC5ub2RlLHNpemU6SWwuc2l6ZSxlbXB0eTpJbC5lbXB0eSxlYWNoOklsLmVhY2gsb246ZnVuY3Rpb24odCxuKXt2YXIgZT10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0xuKHRoaXMubm9kZSgpLGUpLm9uLm9uKHQpOnRoaXMuZWFjaChmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvPWZ1bmN0aW9uKHQpe3JldHVybih0K1wiXCIpLnRyaW0oKS5zcGxpdCgvXnxcXHMrLykuZXZlcnkoZnVuY3Rpb24odCl7dmFyIG49dC5pbmRleE9mKFwiLlwiKTtyZXR1cm4gbj49MCYmKHQ9dC5zbGljZSgwLG4pKSwhdHx8XCJzdGFydFwiPT09dH0pfShuKT96bjpSbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT1vKHRoaXMsdCksdT1hLm9uO3UhPT1yJiYoaT0ocj11KS5jb3B5KCkpLm9uKG4sZSksYS5vbj1pfX0oZSx0LG4pKX0sYXR0cjpmdW5jdGlvbih0LG4pe3ZhciBlPWsodCkscj1cInRyYW5zZm9ybVwiPT09ZT9sbDpxbjtyZXR1cm4gdGhpcy5hdHRyVHdlZW4odCxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuPyhlLmxvY2FsP2Z1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGEsdT1lKHRoaXMpO2lmKG51bGwhPXUpcmV0dXJuKGE9dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpKT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSx1PWUodGhpcyk7aWYobnVsbCE9dSlyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZSh0KSk9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpO3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX0pKGUscixVbih0aGlzLFwiYXR0ci5cIit0LG4pKTpudWxsPT1uPyhlLmxvY2FsP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpfX0pKGUpOihlLmxvY2FsP2Z1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXRoaXMuZ2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTtyZXR1cm4gbz09PWU/bnVsbDpvPT09cj9pOmk9bihyPW8sZSl9fTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz10aGlzLmdldEF0dHJpYnV0ZSh0KTtyZXR1cm4gbz09PWU/bnVsbDpvPT09cj9pOmk9bihyPW8sZSl9fSkoZSxyLG4rXCJcIikpfSxhdHRyVHdlZW46ZnVuY3Rpb24odCxuKXt2YXIgZT1cImF0dHIuXCIrdDtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKGU9dGhpcy50d2VlbihlKSkmJmUuX3ZhbHVlO2lmKG51bGw9PW4pcmV0dXJuIHRoaXMudHdlZW4oZSxudWxsKTtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjt2YXIgcj1rKHQpO3JldHVybiB0aGlzLnR3ZWVuKGUsKHIubG9jYWw/ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKCl7dmFyIGU9dGhpcyxyPW4uYXBwbHkoZSxhcmd1bWVudHMpO3JldHVybiByJiZmdW5jdGlvbihuKXtlLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxyKG4pKX19cmV0dXJuIGUuX3ZhbHVlPW4sZX06ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKCl7dmFyIGU9dGhpcyxyPW4uYXBwbHkoZSxhcmd1bWVudHMpO3JldHVybiByJiZmdW5jdGlvbihuKXtlLnNldEF0dHJpYnV0ZSh0LHIobikpfX1yZXR1cm4gZS5fdmFsdWU9bixlfSkocixuKSl9LHN0eWxlOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1cInRyYW5zZm9ybVwiPT0odCs9XCJcIik/c2w6cW47cmV0dXJuIG51bGw9PW4/dGhpcy5zdHlsZVR3ZWVuKHQsZnVuY3Rpb24odCxuKXt2YXIgZSxyLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Rih0aGlzLHQpLGE9KHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksRih0aGlzLHQpKTtyZXR1cm4gbz09PWE/bnVsbDpvPT09ZSYmYT09PXI/aTppPW4oZT1vLHI9YSl9fSh0LHIpKS5vbihcImVuZC5zdHlsZS5cIit0LGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9fSh0KSk6dGhpcy5zdHlsZVR3ZWVuKHQsXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPUYodGhpcyx0KSx1PWUodGhpcyk7cmV0dXJuIG51bGw9PXUmJih0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpLHU9Rih0aGlzLHQpKSxhPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KX19KHQscixVbih0aGlzLFwic3R5bGUuXCIrdCxuKSk6ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89Rih0aGlzLHQpO3JldHVybiBvPT09ZT9udWxsOm89PT1yP2k6aT1uKHI9byxlKX19KHQscixuK1wiXCIpLGUpfSxzdHlsZVR3ZWVuOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1cInN0eWxlLlwiKyh0Kz1cIlwiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpcmV0dXJuKHI9dGhpcy50d2VlbihyKSkmJnIuX3ZhbHVlO2lmKG51bGw9PW4pcmV0dXJuIHRoaXMudHdlZW4ocixudWxsKTtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihyLGZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKCl7dmFyIHI9dGhpcyxpPW4uYXBwbHkocixhcmd1bWVudHMpO3JldHVybiBpJiZmdW5jdGlvbihuKXtyLnN0eWxlLnNldFByb3BlcnR5KHQsaShuKSxlKX19cmV0dXJuIHIuX3ZhbHVlPW4scn0odCxuLG51bGw9PWU/XCJcIjplKSl9LHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudHdlZW4oXCJ0ZXh0XCIsXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10KHRoaXMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09bj9cIlwiOm59fShVbih0aGlzLFwidGV4dFwiLHQpKTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9fShudWxsPT10P1wiXCI6dCtcIlwiKSl9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9uKFwiZW5kLnJlbW92ZVwiLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMucGFyZW50Tm9kZTtmb3IodmFyIGUgaW4gdGhpcy5fX3RyYW5zaXRpb24paWYoK2UhPT10KXJldHVybjtuJiZuLnJlbW92ZUNoaWxkKHRoaXMpfX0odGhpcy5faWQpKX0sdHdlZW46ZnVuY3Rpb24odCxuKXt2YXIgZT10aGlzLl9pZDtpZih0Kz1cIlwiLGFyZ3VtZW50cy5sZW5ndGg8Mil7Zm9yKHZhciByLGk9TG4odGhpcy5ub2RlKCksZSkudHdlZW4sbz0wLGE9aS5sZW5ndGg7bzxhOysrbylpZigocj1pW29dKS5uYW1lPT09dClyZXR1cm4gci52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1uP2Z1bmN0aW9uKHQsbil7dmFyIGUscjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaT1Sbih0aGlzLHQpLG89aS50d2VlbjtpZihvIT09ZSlmb3IodmFyIGE9MCx1PShyPWU9bykubGVuZ3RoO2E8dTsrK2EpaWYoclthXS5uYW1lPT09bil7KHI9ci5zbGljZSgpKS5zcGxpY2UoYSwxKTticmVha31pLnR3ZWVuPXJ9fTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1Sbih0aGlzLHQpLGE9by50d2VlbjtpZihhIT09cil7aT0ocj1hKS5zbGljZSgpO2Zvcih2YXIgdT17bmFtZTpuLHZhbHVlOmV9LGY9MCxjPWkubGVuZ3RoO2Y8YzsrK2YpaWYoaVtmXS5uYW1lPT09bil7aVtmXT11O2JyZWFrfWY9PT1jJiZpLnB1c2godSl9by50d2Vlbj1pfX0pKGUsdCxuKSl9LGRlbGF5OmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3puKHRoaXMsdCkuZGVsYXk9K24uYXBwbHkodGhpcyxhcmd1bWVudHMpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gbj0rbixmdW5jdGlvbigpe3puKHRoaXMsdCkuZGVsYXk9bn19KShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5kZWxheX0sZHVyYXRpb246ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7Um4odGhpcyx0KS5kdXJhdGlvbj0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBuPStuLGZ1bmN0aW9uKCl7Um4odGhpcyx0KS5kdXJhdGlvbj1ufX0pKG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmR1cmF0aW9ufSxlYXNlOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbih0LG4pe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe1JuKHRoaXMsdCkuZWFzZT1ufX0obix0KSk6TG4odGhpcy5ub2RlKCksbikuZWFzZX19O3ZhciBqbD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIE1hdGgucG93KHQsbil9cmV0dXJuIG49K24sZS5leHBvbmVudD10LGV9KDMpLEhsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gMS1NYXRoLnBvdygxLXQsbil9cmV0dXJuIG49K24sZS5leHBvbmVudD10LGV9KDMpLFhsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4oKHQqPTIpPD0xP01hdGgucG93KHQsbik6Mi1NYXRoLnBvdygyLXQsbikpLzJ9cmV0dXJuIG49K24sZS5leHBvbmVudD10LGV9KDMpLEdsPU1hdGguUEksVmw9R2wvMiwkbD00LzExLFdsPTYvMTEsWmw9OC8xMSxRbD0uNzUsSmw9OS8xMSxLbD0xMC8xMSx0aD0uOTM3NSxuaD0yMS8yMixlaD02My82NCxyaD0xLyRsLyRsLGloPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gdCp0KigobisxKSp0LW4pfXJldHVybiBuPStuLGUub3ZlcnNob290PXQsZX0oMS43MDE1OCksb2g9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybi0tdCp0KigobisxKSp0K24pKzF9cmV0dXJuIG49K24sZS5vdmVyc2hvb3Q9dCxlfSgxLjcwMTU4KSxhaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuKCh0Kj0yKTwxP3QqdCooKG4rMSkqdC1uKToodC09MikqdCooKG4rMSkqdCtuKSsyKS8yfXJldHVybiBuPStuLGUub3ZlcnNob290PXQsZX0oMS43MDE1OCksdWg9MipNYXRoLlBJLGZoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuKk1hdGgucG93KDIsMTAqLS10KSpNYXRoLnNpbigoaS10KS9lKX12YXIgaT1NYXRoLmFzaW4oMS8obj1NYXRoLm1heCgxLG4pKSkqKGUvPXVoKTtyZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24obil7cmV0dXJuIHQobixlKnVoKX0sci5wZXJpb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHQobixlKX0scn0oMSwuMyksY2g9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIDEtbipNYXRoLnBvdygyLC0xMCoodD0rdCkpKk1hdGguc2luKCh0K2kpL2UpfXZhciBpPU1hdGguYXNpbigxLyhuPU1hdGgubWF4KDEsbikpKSooZS89dWgpO3JldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihuKXtyZXR1cm4gdChuLGUqdWgpfSxyLnBlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gdChuLGUpfSxyfSgxLC4zKSxzaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4oKHQ9Mip0LTEpPDA/bipNYXRoLnBvdygyLDEwKnQpKk1hdGguc2luKChpLXQpL2UpOjItbipNYXRoLnBvdygyLC0xMCp0KSpNYXRoLnNpbigoaSt0KS9lKSkvMn12YXIgaT1NYXRoLmFzaW4oMS8obj1NYXRoLm1heCgxLG4pKSkqKGUvPXVoKTtyZXR1cm4gci5hbXBsaXR1ZGU9ZnVuY3Rpb24obil7cmV0dXJuIHQobixlKnVoKX0sci5wZXJpb2Q9ZnVuY3Rpb24oZSl7cmV0dXJuIHQobixlKX0scn0oMSwuMyksbGg9e3RpbWU6bnVsbCxkZWxheTowLGR1cmF0aW9uOjI1MCxlYXNlOklufTtmdC5wcm90b3R5cGUuaW50ZXJydXB0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtEbih0aGlzLHQpfSl9LGZ0LnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uKHQpe3ZhciBuLGU7dCBpbnN0YW5jZW9mIE9uPyhuPXQuX2lkLHQ9dC5fbmFtZSk6KG49Qm4oKSwoZT1saCkudGltZT13bigpLHQ9bnVsbD09dD9udWxsOnQrXCJcIik7Zm9yKHZhciByPXRoaXMuX2dyb3VwcyxpPXIubGVuZ3RoLG89MDtvPGk7KytvKWZvcih2YXIgYSx1PXJbb10sZj11Lmxlbmd0aCxjPTA7YzxmOysrYykoYT11W2NdKSYmUG4oYSx0LG4sYyx1LGV8fFZuKGEsbikpO3JldHVybiBuZXcgT24ocix0aGlzLl9wYXJlbnRzLHQsbil9O3ZhciBoaD1bbnVsbF0sZGg9e25hbWU6XCJkcmFnXCJ9LHBoPXtuYW1lOlwic3BhY2VcIn0sdmg9e25hbWU6XCJoYW5kbGVcIn0sZ2g9e25hbWU6XCJjZW50ZXJcIn0seWg9e25hbWU6XCJ4XCIsaGFuZGxlczpbXCJlXCIsXCJ3XCJdLm1hcChRbiksaW5wdXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdCYmW1t0WzBdLG5bMF1bMV1dLFt0WzFdLG5bMV1bMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVswXSx0WzFdWzBdXX19LF9oPXtuYW1lOlwieVwiLGhhbmRsZXM6W1wiblwiLFwic1wiXS5tYXAoUW4pLGlucHV0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQmJltbblswXVswXSx0WzBdXSxbblsxXVswXSx0WzFdXV19LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdCYmW3RbMF1bMV0sdFsxXVsxXV19fSxiaD17bmFtZTpcInh5XCIsaGFuZGxlczpbXCJuXCIsXCJlXCIsXCJzXCIsXCJ3XCIsXCJud1wiLFwibmVcIixcInNlXCIsXCJzd1wiXS5tYXAoUW4pLGlucHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxtaD17b3ZlcmxheTpcImNyb3NzaGFpclwiLHNlbGVjdGlvbjpcIm1vdmVcIixuOlwibnMtcmVzaXplXCIsZTpcImV3LXJlc2l6ZVwiLHM6XCJucy1yZXNpemVcIix3OlwiZXctcmVzaXplXCIsbnc6XCJud3NlLXJlc2l6ZVwiLG5lOlwibmVzdy1yZXNpemVcIixzZTpcIm53c2UtcmVzaXplXCIsc3c6XCJuZXN3LXJlc2l6ZVwifSx4aD17ZTpcIndcIix3OlwiZVwiLG53OlwibmVcIixuZTpcIm53XCIsc2U6XCJzd1wiLHN3Olwic2VcIn0sd2g9e246XCJzXCIsczpcIm5cIixudzpcInN3XCIsbmU6XCJzZVwiLHNlOlwibmVcIixzdzpcIm53XCJ9LE1oPXtvdmVybGF5OjEsc2VsZWN0aW9uOjEsbjpudWxsLGU6MSxzOm51bGwsdzotMSxudzotMSxuZToxLHNlOjEsc3c6LTF9LEFoPXtvdmVybGF5OjEsc2VsZWN0aW9uOjEsbjotMSxlOm51bGwsczoxLHc6bnVsbCxudzotMSxuZTotMSxzZToxLHN3OjF9LFRoPU1hdGguY29zLE5oPU1hdGguc2luLFNoPU1hdGguUEksRWg9U2gvMixraD0yKlNoLENoPU1hdGgubWF4LFBoPUFycmF5LnByb3RvdHlwZS5zbGljZSx6aD1NYXRoLlBJLFJoPTIqemgsTGg9UmgtMWUtNjtpZS5wcm90b3R5cGU9b2UucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjppZSxtb3ZlVG86ZnVuY3Rpb24odCxuKXt0aGlzLl8rPVwiTVwiKyh0aGlzLl94MD10aGlzLl94MT0rdCkrXCIsXCIrKHRoaXMuX3kwPXRoaXMuX3kxPStuKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz1cIlpcIil9LGxpbmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuXys9XCJMXCIrKHRoaXMuX3gxPSt0KStcIixcIisodGhpcy5feTE9K24pfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsbixlLHIpe3RoaXMuXys9XCJRXCIrICt0K1wiLFwiKyArbitcIixcIisodGhpcy5feDE9K2UpK1wiLFwiKyh0aGlzLl95MT0rcil9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxuLGUscixpLG8pe3RoaXMuXys9XCJDXCIrICt0K1wiLFwiKyArbitcIixcIisgK2UrXCIsXCIrICtyK1wiLFwiKyh0aGlzLl94MT0raSkrXCIsXCIrKHRoaXMuX3kxPStvKX0sYXJjVG86ZnVuY3Rpb24odCxuLGUscixpKXt0PSt0LG49K24sZT0rZSxyPStyLGk9K2k7dmFyIG89dGhpcy5feDEsYT10aGlzLl95MSx1PWUtdCxmPXItbixjPW8tdCxzPWEtbixsPWMqYytzKnM7aWYoaTwwKXRocm93IG5ldyBFcnJvcihcIm5lZ2F0aXZlIHJhZGl1czogXCIraSk7aWYobnVsbD09PXRoaXMuX3gxKXRoaXMuXys9XCJNXCIrKHRoaXMuX3gxPXQpK1wiLFwiKyh0aGlzLl95MT1uKTtlbHNlIGlmKGw+MWUtNilpZihNYXRoLmFicyhzKnUtZipjKT4xZS02JiZpKXt2YXIgaD1lLW8sZD1yLWEscD11KnUrZipmLHY9aCpoK2QqZCxnPU1hdGguc3FydChwKSx5PU1hdGguc3FydChsKSxfPWkqTWF0aC50YW4oKHpoLU1hdGguYWNvcygocCtsLXYpLygyKmcqeSkpKS8yKSxiPV8veSxtPV8vZztNYXRoLmFicyhiLTEpPjFlLTYmJih0aGlzLl8rPVwiTFwiKyh0K2IqYykrXCIsXCIrKG4rYipzKSksdGhpcy5fKz1cIkFcIitpK1wiLFwiK2krXCIsMCwwLFwiKyArKHMqaD5jKmQpK1wiLFwiKyh0aGlzLl94MT10K20qdSkrXCIsXCIrKHRoaXMuX3kxPW4rbSpmKX1lbHNlIHRoaXMuXys9XCJMXCIrKHRoaXMuX3gxPXQpK1wiLFwiKyh0aGlzLl95MT1uKTtlbHNlO30sYXJjOmZ1bmN0aW9uKHQsbixlLHIsaSxvKXt0PSt0LG49K247dmFyIGE9KGU9K2UpKk1hdGguY29zKHIpLHU9ZSpNYXRoLnNpbihyKSxmPXQrYSxjPW4rdSxzPTFebyxsPW8/ci1pOmktcjtpZihlPDApdGhyb3cgbmV3IEVycm9yKFwibmVnYXRpdmUgcmFkaXVzOiBcIitlKTtudWxsPT09dGhpcy5feDE/dGhpcy5fKz1cIk1cIitmK1wiLFwiK2M6KE1hdGguYWJzKHRoaXMuX3gxLWYpPjFlLTZ8fE1hdGguYWJzKHRoaXMuX3kxLWMpPjFlLTYpJiYodGhpcy5fKz1cIkxcIitmK1wiLFwiK2MpLGUmJihsPDAmJihsPWwlUmgrUmgpLGw+TGg/dGhpcy5fKz1cIkFcIitlK1wiLFwiK2UrXCIsMCwxLFwiK3MrXCIsXCIrKHQtYSkrXCIsXCIrKG4tdSkrXCJBXCIrZStcIixcIitlK1wiLDAsMSxcIitzK1wiLFwiKyh0aGlzLl94MT1mKStcIixcIisodGhpcy5feTE9Yyk6bD4xZS02JiYodGhpcy5fKz1cIkFcIitlK1wiLFwiK2UrXCIsMCxcIisgKyhsPj16aCkrXCIsXCIrcytcIixcIisodGhpcy5feDE9dCtlKk1hdGguY29zKGkpKStcIixcIisodGhpcy5feTE9bitlKk1hdGguc2luKGkpKSkpfSxyZWN0OmZ1bmN0aW9uKHQsbixlLHIpe3RoaXMuXys9XCJNXCIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KStcIixcIisodGhpcy5feTA9dGhpcy5feTE9K24pK1wiaFwiKyArZStcInZcIisgK3IrXCJoXCIrLWUrXCJaXCJ9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O2xlLnByb3RvdHlwZT1oZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmxlLGhhczpmdW5jdGlvbih0KXtyZXR1cm5cIiRcIit0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1tcIiRcIit0XX0sc2V0OmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXNbXCIkXCIrdF09bix0aGlzfSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIG49XCIkXCIrdDtyZXR1cm4gbiBpbiB0aGlzJiZkZWxldGUgdGhpc1tuXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcylcIiRcIj09PXRbMF0mJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0LnB1c2gobi5zbGljZSgxKSk7cmV0dXJuIHR9LHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdC5wdXNoKHRoaXNbbl0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0LnB1c2goe2tleTpuLnNsaWNlKDEpLHZhbHVlOnRoaXNbbl19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiYrK3Q7cmV0dXJuIHR9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMpaWYoXCIkXCI9PT10WzBdKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbiBpbiB0aGlzKVwiJFwiPT09blswXSYmdCh0aGlzW25dLG4uc2xpY2UoMSksdGhpcyl9fTt2YXIgRGg9aGUucHJvdG90eXBlO3llLnByb3RvdHlwZT1fZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnllLGhhczpEaC5oYXMsYWRkOmZ1bmN0aW9uKHQpe3JldHVybiB0Kz1cIlwiLHRoaXNbXCIkXCIrdF09dCx0aGlzfSxyZW1vdmU6RGgucmVtb3ZlLGNsZWFyOkRoLmNsZWFyLHZhbHVlczpEaC5rZXlzLHNpemU6RGguc2l6ZSxlbXB0eTpEaC5lbXB0eSxlYWNoOkRoLmVhY2h9O3ZhciBVaD1BcnJheS5wcm90b3R5cGUuc2xpY2UscWg9W1tdLFtbWzEsMS41XSxbLjUsMV1dXSxbW1sxLjUsMV0sWzEsMS41XV1dLFtbWzEuNSwxXSxbLjUsMV1dXSxbW1sxLC41XSxbMS41LDFdXV0sW1tbMSwxLjVdLFsuNSwxXV0sW1sxLC41XSxbMS41LDFdXV0sW1tbMSwuNV0sWzEsMS41XV1dLFtbWzEsLjVdLFsuNSwxXV1dLFtbWy41LDFdLFsxLC41XV1dLFtbWzEsMS41XSxbMSwuNV1dXSxbW1suNSwxXSxbMSwuNV1dLFtbMS41LDFdLFsxLDEuNV1dXSxbW1sxLjUsMV0sWzEsLjVdXV0sW1tbLjUsMV0sWzEuNSwxXV1dLFtbWzEsMS41XSxbMS41LDFdXV0sW1tbLjUsMV0sWzEsMS41XV1dLFtdXSxPaD17fSxZaD17fSxCaD0zNCxGaD0xMCxJaD0xMyxqaD1rZShcIixcIiksSGg9amgucGFyc2UsWGg9amgucGFyc2VSb3dzLEdoPWpoLmZvcm1hdCxWaD1qaC5mb3JtYXRSb3dzLCRoPWtlKFwiXFx0XCIpLFdoPSRoLnBhcnNlLFpoPSRoLnBhcnNlUm93cyxRaD0kaC5mb3JtYXQsSmg9JGguZm9ybWF0Um93cyxLaD1MZShIaCksdGQ9TGUoV2gpLG5kPVVlKFwiYXBwbGljYXRpb24veG1sXCIpLGVkPVVlKFwidGV4dC9odG1sXCIpLHJkPVVlKFwiaW1hZ2Uvc3ZnK3htbFwiKSxpZD1qZS5wcm90b3R5cGU9SGUucHJvdG90eXBlO2lkLmNvcHk9ZnVuY3Rpb24oKXt2YXIgdCxuLGU9bmV3IEhlKHRoaXMuX3gsdGhpcy5feSx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkscj10aGlzLl9yb290O2lmKCFyKXJldHVybiBlO2lmKCFyLmxlbmd0aClyZXR1cm4gZS5fcm9vdD1YZShyKSxlO2Zvcih0PVt7c291cmNlOnIsdGFyZ2V0OmUuX3Jvb3Q9bmV3IEFycmF5KDQpfV07cj10LnBvcCgpOylmb3IodmFyIGk9MDtpPDQ7KytpKShuPXIuc291cmNlW2ldKSYmKG4ubGVuZ3RoP3QucHVzaCh7c291cmNlOm4sdGFyZ2V0OnIudGFyZ2V0W2ldPW5ldyBBcnJheSg0KX0pOnIudGFyZ2V0W2ldPVhlKG4pKTtyZXR1cm4gZX0saWQuYWRkPWZ1bmN0aW9uKHQpe3ZhciBuPSt0aGlzLl94LmNhbGwobnVsbCx0KSxlPSt0aGlzLl95LmNhbGwobnVsbCx0KTtyZXR1cm4gWWUodGhpcy5jb3ZlcihuLGUpLG4sZSx0KX0saWQuYWRkQWxsPWZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG89dC5sZW5ndGgsYT1uZXcgQXJyYXkobyksdT1uZXcgQXJyYXkobyksZj0xLzAsYz0xLzAscz0tMS8wLGw9LTEvMDtmb3IoZT0wO2U8bzsrK2UpaXNOYU4ocj0rdGhpcy5feC5jYWxsKG51bGwsbj10W2VdKSl8fGlzTmFOKGk9K3RoaXMuX3kuY2FsbChudWxsLG4pKXx8KGFbZV09cix1W2VdPWkscjxmJiYoZj1yKSxyPnMmJihzPXIpLGk8YyYmKGM9aSksaT5sJiYobD1pKSk7Zm9yKHM8ZiYmKGY9dGhpcy5feDAscz10aGlzLl94MSksbDxjJiYoYz10aGlzLl95MCxsPXRoaXMuX3kxKSx0aGlzLmNvdmVyKGYsYykuY292ZXIocyxsKSxlPTA7ZTxvOysrZSlZZSh0aGlzLGFbZV0sdVtlXSx0W2VdKTtyZXR1cm4gdGhpc30saWQuY292ZXI9ZnVuY3Rpb24odCxuKXtpZihpc05hTih0PSt0KXx8aXNOYU4obj0rbikpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcy5feDAscj10aGlzLl95MCxpPXRoaXMuX3gxLG89dGhpcy5feTE7aWYoaXNOYU4oZSkpaT0oZT1NYXRoLmZsb29yKHQpKSsxLG89KHI9TWF0aC5mbG9vcihuKSkrMTtlbHNle2lmKCEoZT50fHx0Pml8fHI+bnx8bj5vKSlyZXR1cm4gdGhpczt2YXIgYSx1LGY9aS1lLGM9dGhpcy5fcm9vdDtzd2l0Y2godT0objwocitvKS8yKTw8MXx0PChlK2kpLzIpe2Nhc2UgMDpkb3thPW5ldyBBcnJheSg0KSxhW3VdPWMsYz1hfXdoaWxlKGYqPTIsaT1lK2Ysbz1yK2YsdD5pfHxuPm8pO2JyZWFrO2Nhc2UgMTpkb3thPW5ldyBBcnJheSg0KSxhW3VdPWMsYz1hfXdoaWxlKGYqPTIsZT1pLWYsbz1yK2YsZT50fHxuPm8pO2JyZWFrO2Nhc2UgMjpkb3thPW5ldyBBcnJheSg0KSxhW3VdPWMsYz1hfXdoaWxlKGYqPTIsaT1lK2Yscj1vLWYsdD5pfHxyPm4pO2JyZWFrO2Nhc2UgMzpkb3thPW5ldyBBcnJheSg0KSxhW3VdPWMsYz1hfXdoaWxlKGYqPTIsZT1pLWYscj1vLWYsZT50fHxyPm4pfXRoaXMuX3Jvb3QmJnRoaXMuX3Jvb3QubGVuZ3RoJiYodGhpcy5fcm9vdD1jKX1yZXR1cm4gdGhpcy5feDA9ZSx0aGlzLl95MD1yLHRoaXMuX3gxPWksdGhpcy5feTE9byx0aGlzfSxpZC5kYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMudmlzaXQoZnVuY3Rpb24obil7aWYoIW4ubGVuZ3RoKWRve3QucHVzaChuLmRhdGEpfXdoaWxlKG49bi5uZXh0KX0pLHR9LGlkLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmNvdmVyKCt0WzBdWzBdLCt0WzBdWzFdKS5jb3ZlcigrdFsxXVswXSwrdFsxXVsxXSk6aXNOYU4odGhpcy5feDApP3ZvaWQgMDpbW3RoaXMuX3gwLHRoaXMuX3kwXSxbdGhpcy5feDEsdGhpcy5feTFdXX0saWQuZmluZD1mdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvLGEsdSxmLGMscz10aGlzLl94MCxsPXRoaXMuX3kwLGg9dGhpcy5feDEsZD10aGlzLl95MSxwPVtdLHY9dGhpcy5fcm9vdDtmb3IodiYmcC5wdXNoKG5ldyBCZSh2LHMsbCxoLGQpKSxudWxsPT1lP2U9MS8wOihzPXQtZSxsPW4tZSxoPXQrZSxkPW4rZSxlKj1lKTtmPXAucG9wKCk7KWlmKCEoISh2PWYubm9kZSl8fChpPWYueDApPmh8fChvPWYueTApPmR8fChhPWYueDEpPHN8fCh1PWYueTEpPGwpKWlmKHYubGVuZ3RoKXt2YXIgZz0oaSthKS8yLHk9KG8rdSkvMjtwLnB1c2gobmV3IEJlKHZbM10sZyx5LGEsdSksbmV3IEJlKHZbMl0saSx5LGcsdSksbmV3IEJlKHZbMV0sZyxvLGEseSksbmV3IEJlKHZbMF0saSxvLGcseSkpLChjPShuPj15KTw8MXx0Pj1nKSYmKGY9cFtwLmxlbmd0aC0xXSxwW3AubGVuZ3RoLTFdPXBbcC5sZW5ndGgtMS1jXSxwW3AubGVuZ3RoLTEtY109Zil9ZWxzZXt2YXIgXz10LSt0aGlzLl94LmNhbGwobnVsbCx2LmRhdGEpLGI9bi0rdGhpcy5feS5jYWxsKG51bGwsdi5kYXRhKSxtPV8qXytiKmI7aWYobTxlKXt2YXIgeD1NYXRoLnNxcnQoZT1tKTtzPXQteCxsPW4teCxoPXQreCxkPW4reCxyPXYuZGF0YX19cmV0dXJuIHJ9LGlkLnJlbW92ZT1mdW5jdGlvbih0KXtpZihpc05hTihvPSt0aGlzLl94LmNhbGwobnVsbCx0KSl8fGlzTmFOKGE9K3RoaXMuX3kuY2FsbChudWxsLHQpKSlyZXR1cm4gdGhpczt2YXIgbixlLHIsaSxvLGEsdSxmLGMscyxsLGgsZD10aGlzLl9yb290LHA9dGhpcy5feDAsdj10aGlzLl95MCxnPXRoaXMuX3gxLHk9dGhpcy5feTE7aWYoIWQpcmV0dXJuIHRoaXM7aWYoZC5sZW5ndGgpZm9yKDs7KXtpZigoYz1vPj0odT0ocCtnKS8yKSk/cD11Omc9dSwocz1hPj0oZj0odit5KS8yKSk/dj1mOnk9ZixuPWQsIShkPWRbbD1zPDwxfGNdKSlyZXR1cm4gdGhpcztpZighZC5sZW5ndGgpYnJlYWs7KG5bbCsxJjNdfHxuW2wrMiYzXXx8bltsKzMmM10pJiYoZT1uLGg9bCl9Zm9yKDtkLmRhdGEhPT10OylpZihyPWQsIShkPWQubmV4dCkpcmV0dXJuIHRoaXM7cmV0dXJuKGk9ZC5uZXh0KSYmZGVsZXRlIGQubmV4dCxyPyhpP3IubmV4dD1pOmRlbGV0ZSByLm5leHQsdGhpcyk6bj8oaT9uW2xdPWk6ZGVsZXRlIG5bbF0sKGQ9blswXXx8blsxXXx8blsyXXx8blszXSkmJmQ9PT0oblszXXx8blsyXXx8blsxXXx8blswXSkmJiFkLmxlbmd0aCYmKGU/ZVtoXT1kOnRoaXMuX3Jvb3Q9ZCksdGhpcyk6KHRoaXMuX3Jvb3Q9aSx0aGlzKX0saWQucmVtb3ZlQWxsPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbil0aGlzLnJlbW92ZSh0W25dKTtyZXR1cm4gdGhpc30saWQucm9vdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb290fSxpZC5zaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gdGhpcy52aXNpdChmdW5jdGlvbihuKXtpZighbi5sZW5ndGgpZG97Kyt0fXdoaWxlKG49bi5uZXh0KX0pLHR9LGlkLnZpc2l0PWZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG8sYSx1PVtdLGY9dGhpcy5fcm9vdDtmb3IoZiYmdS5wdXNoKG5ldyBCZShmLHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7bj11LnBvcCgpOylpZighdChmPW4ubm9kZSxyPW4ueDAsaT1uLnkwLG89bi54MSxhPW4ueTEpJiZmLmxlbmd0aCl7dmFyIGM9KHIrbykvMixzPShpK2EpLzI7KGU9ZlszXSkmJnUucHVzaChuZXcgQmUoZSxjLHMsbyxhKSksKGU9ZlsyXSkmJnUucHVzaChuZXcgQmUoZSxyLHMsYyxhKSksKGU9ZlsxXSkmJnUucHVzaChuZXcgQmUoZSxjLGksbyxzKSksKGU9ZlswXSkmJnUucHVzaChuZXcgQmUoZSxyLGksYyxzKSl9cmV0dXJuIHRoaXN9LGlkLnZpc2l0QWZ0ZXI9ZnVuY3Rpb24odCl7dmFyIG4sZT1bXSxyPVtdO2Zvcih0aGlzLl9yb290JiZlLnB1c2gobmV3IEJlKHRoaXMuX3Jvb3QsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtuPWUucG9wKCk7KXt2YXIgaT1uLm5vZGU7aWYoaS5sZW5ndGgpe3ZhciBvLGE9bi54MCx1PW4ueTAsZj1uLngxLGM9bi55MSxzPShhK2YpLzIsbD0odStjKS8yOyhvPWlbMF0pJiZlLnB1c2gobmV3IEJlKG8sYSx1LHMsbCkpLChvPWlbMV0pJiZlLnB1c2gobmV3IEJlKG8scyx1LGYsbCkpLChvPWlbMl0pJiZlLnB1c2gobmV3IEJlKG8sYSxsLHMsYykpLChvPWlbM10pJiZlLnB1c2gobmV3IEJlKG8scyxsLGYsYykpfXIucHVzaChuKX1mb3IoO249ci5wb3AoKTspdChuLm5vZGUsbi54MCxuLnkwLG4ueDEsbi55MSk7cmV0dXJuIHRoaXN9LGlkLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3g9dCx0aGlzKTp0aGlzLl94fSxpZC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl95PXQsdGhpcyk6dGhpcy5feX07dmFyIG9kPTEwLGFkPU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKSx1ZD0vXig/OiguKT8oWzw+PV5dKSk/KFsrXFwtXFwoIF0pPyhbJCNdKT8oMCk/KFxcZCspPygsKT8oXFwuXFxkKyk/KH4pPyhbYS16JV0pPyQvaTt0ci5wcm90b3R5cGU9bnIucHJvdG90eXBlLG5yLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbGwrdGhpcy5hbGlnbit0aGlzLnNpZ24rdGhpcy5zeW1ib2wrKHRoaXMuemVybz9cIjBcIjpcIlwiKSsobnVsbD09dGhpcy53aWR0aD9cIlwiOk1hdGgubWF4KDEsMHx0aGlzLndpZHRoKSkrKHRoaXMuY29tbWE/XCIsXCI6XCJcIikrKG51bGw9PXRoaXMucHJlY2lzaW9uP1wiXCI6XCIuXCIrTWF0aC5tYXgoMCwwfHRoaXMucHJlY2lzaW9uKSkrKHRoaXMudHJpbT9cIn5cIjpcIlwiKSt0aGlzLnR5cGV9O3ZhciBmZCxjZCxzZD17XCIlXCI6ZnVuY3Rpb24odCxuKXtyZXR1cm4oMTAwKnQpLnRvRml4ZWQobil9LGI6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMil9LGM6ZnVuY3Rpb24odCl7cmV0dXJuIHQrXCJcIn0sZDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b0V4cG9uZW50aWFsKG4pfSxmOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9GaXhlZChuKX0sZzpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvUHJlY2lzaW9uKG4pfSxvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDgpfSxwOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGVyKDEwMCp0LG4pfSxyOmVyLHM6ZnVuY3Rpb24odCxuKXt2YXIgZT1KZSh0LG4pO2lmKCFlKXJldHVybiB0K1wiXCI7dmFyIHI9ZVswXSxpPWVbMV0sbz1pLShmZD0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihpLzMpKSkpKzEsYT1yLmxlbmd0aDtyZXR1cm4gbz09PWE/cjpvPmE/cituZXcgQXJyYXkoby1hKzEpLmpvaW4oXCIwXCIpOm8+MD9yLnNsaWNlKDAsbykrXCIuXCIrci5zbGljZShvKTpcIjAuXCIrbmV3IEFycmF5KDEtbykuam9pbihcIjBcIikrSmUodCxNYXRoLm1heCgwLG4rby0xKSlbMF19LFg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9LHg6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpfX0sbGQ9W1wieVwiLFwielwiLFwiYVwiLFwiZlwiLFwicFwiLFwiblwiLFwiwrVcIixcIm1cIixcIlwiLFwia1wiLFwiTVwiLFwiR1wiLFwiVFwiLFwiUFwiLFwiRVwiLFwiWlwiLFwiWVwiXTtvcih7ZGVjaW1hbDpcIi5cIix0aG91c2FuZHM6XCIsXCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OltcIiRcIixcIlwiXX0pLHNyLnByb3RvdHlwZT17Y29uc3RydWN0b3I6c3IscmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnM9dGhpcy50PTB9LGFkZDpmdW5jdGlvbih0KXtscihqZCx0LHRoaXMudCksbHIodGhpcyxqZC5zLHRoaXMucyksdGhpcy5zP3RoaXMudCs9amQudDp0aGlzLnM9amQudH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgaGQsZGQscGQsdmQsZ2QseWQsX2QsYmQsbWQseGQsd2QsTWQsQWQsVGQsTmQsU2QsRWQsa2QsQ2QsUGQsemQsUmQsTGQsRGQsVWQscWQsT2QsWWQsQmQsRmQsSWQsamQ9bmV3IHNyLEhkPTFlLTYsWGQ9MWUtMTIsR2Q9TWF0aC5QSSxWZD1HZC8yLCRkPUdkLzQsV2Q9MipHZCxaZD0xODAvR2QsUWQ9R2QvMTgwLEpkPU1hdGguYWJzLEtkPU1hdGguYXRhbix0cD1NYXRoLmF0YW4yLG5wPU1hdGguY29zLGVwPU1hdGguY2VpbCxycD1NYXRoLmV4cCxpcD1NYXRoLmxvZyxvcD1NYXRoLnBvdyxhcD1NYXRoLnNpbix1cD1NYXRoLnNpZ258fGZ1bmN0aW9uKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH0sZnA9TWF0aC5zcXJ0LGNwPU1hdGgudGFuLHNwPXtGZWF0dXJlOmZ1bmN0aW9uKHQsbil7Z3IodC5nZW9tZXRyeSxuKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5mZWF0dXJlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWdyKGVbcl0uZ2VvbWV0cnksbil9fSxscD17U3BoZXJlOmZ1bmN0aW9uKHQsbil7bi5zcGhlcmUoKX0sUG9pbnQ6ZnVuY3Rpb24odCxuKXt0PXQuY29vcmRpbmF0ZXMsbi5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KXQ9ZVtyXSxuLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe3lyKHQuY29vcmRpbmF0ZXMsbiwwKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOyl5cihlW3JdLG4sMCl9LFBvbHlnb246ZnVuY3Rpb24odCxuKXtfcih0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KV9yKGVbcl0sbil9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10Lmdlb21ldHJpZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylncihlW3JdLG4pfX0saHA9Y3IoKSxkcD1jcigpLHBwPXtwb2ludDp2cixsaW5lU3RhcnQ6dnIsbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtocC5yZXNldCgpLHBwLmxpbmVTdGFydD1tcixwcC5saW5lRW5kPXhyfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9K2hwO2RwLmFkZCh0PDA/V2QrdDp0KSx0aGlzLmxpbmVTdGFydD10aGlzLmxpbmVFbmQ9dGhpcy5wb2ludD12cn0sc3BoZXJlOmZ1bmN0aW9uKCl7ZHAuYWRkKFdkKX19LHZwPWNyKCksZ3A9e3BvaW50OlByLGxpbmVTdGFydDpScixsaW5lRW5kOkxyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2dwLnBvaW50PURyLGdwLmxpbmVTdGFydD1VcixncC5saW5lRW5kPXFyLHZwLnJlc2V0KCkscHAucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtwcC5wb2x5Z29uRW5kKCksZ3AucG9pbnQ9UHIsZ3AubGluZVN0YXJ0PVJyLGdwLmxpbmVFbmQ9THIsaHA8MD8oeWQ9LShiZD0xODApLF9kPS0obWQ9OTApKTp2cD5IZD9tZD05MDp2cDwtSGQmJihfZD0tOTApLE5kWzBdPXlkLE5kWzFdPWJkfX0seXA9e3NwaGVyZTp2cixwb2ludDpGcixsaW5lU3RhcnQ6anIsbGluZUVuZDpHcixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt5cC5saW5lU3RhcnQ9VnIseXAubGluZUVuZD0kcn0scG9seWdvbkVuZDpmdW5jdGlvbigpe3lwLmxpbmVTdGFydD1qcix5cC5saW5lRW5kPUdyfX07S3IuaW52ZXJ0PUtyO3ZhciBfcCxicCxtcCx4cCx3cCxNcCxBcCxUcCxOcCxTcCxFcCxrcD1jcigpLENwPWRpKGZ1bmN0aW9uKCl7cmV0dXJuITB9LGZ1bmN0aW9uKHQpe3ZhciBuLGU9TmFOLHI9TmFOLGk9TmFOO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0LmxpbmVTdGFydCgpLG49MX0scG9pbnQ6ZnVuY3Rpb24obyxhKXt2YXIgdT1vPjA/R2Q6LUdkLGY9SmQoby1lKTtKZChmLUdkKTxIZD8odC5wb2ludChlLHI9KHIrYSkvMj4wP1ZkOi1WZCksdC5wb2ludChpLHIpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh1LHIpLHQucG9pbnQobyxyKSxuPTApOmkhPT11JiZmPj1HZCYmKEpkKGUtaSk8SGQmJihlLT1pKkhkKSxKZChvLXUpPEhkJiYoby09dSpIZCkscj1mdW5jdGlvbih0LG4sZSxyKXt2YXIgaSxvLGE9YXAodC1lKTtyZXR1cm4gSmQoYSk+SGQ/S2QoKGFwKG4pKihvPW5wKHIpKSphcChlKS1hcChyKSooaT1ucChuKSkqYXAodCkpLyhpKm8qYSkpOihuK3IpLzJ9KGUscixvLGEpLHQucG9pbnQoaSxyKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQodSxyKSxuPTApLHQucG9pbnQoZT1vLHI9YSksaT11fSxsaW5lRW5kOmZ1bmN0aW9uKCl7dC5saW5lRW5kKCksZT1yPU5hTn0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gMi1ufX19LGZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpO2lmKG51bGw9PXQpaT1lKlZkLHIucG9pbnQoLUdkLGkpLHIucG9pbnQoMCxpKSxyLnBvaW50KEdkLGkpLHIucG9pbnQoR2QsMCksci5wb2ludChHZCwtaSksci5wb2ludCgwLC1pKSxyLnBvaW50KC1HZCwtaSksci5wb2ludCgtR2QsMCksci5wb2ludCgtR2QsaSk7ZWxzZSBpZihKZCh0WzBdLW5bMF0pPkhkKXt2YXIgbz10WzBdPG5bMF0/R2Q6LUdkO2k9ZSpvLzIsci5wb2ludCgtbyxpKSxyLnBvaW50KDAsaSksci5wb2ludChvLGkpfWVsc2Ugci5wb2ludChuWzBdLG5bMV0pfSxbLUdkLC1WZF0pLFBwPTFlOSx6cD0tUHAsUnA9Y3IoKSxMcD17c3BoZXJlOnZyLHBvaW50OnZyLGxpbmVTdGFydDpmdW5jdGlvbigpe0xwLnBvaW50PWJpLExwLmxpbmVFbmQ9X2l9LGxpbmVFbmQ6dnIscG9seWdvblN0YXJ0OnZyLHBvbHlnb25FbmQ6dnJ9LERwPVtudWxsLG51bGxdLFVwPXt0eXBlOlwiTGluZVN0cmluZ1wiLGNvb3JkaW5hdGVzOkRwfSxxcD17RmVhdHVyZTpmdW5jdGlvbih0LG4pe3JldHVybiBNaSh0Lmdlb21ldHJ5LG4pfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmZlYXR1cmVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoTWkoZVtyXS5nZW9tZXRyeSxuKSlyZXR1cm4hMDtyZXR1cm4hMX19LE9wPXtTcGhlcmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sUG9pbnQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gQWkodC5jb29yZGluYXRlcyxuKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoQWkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe3JldHVybiBUaSh0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKFRpKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LFBvbHlnb246ZnVuY3Rpb24odCxuKXtyZXR1cm4gTmkodC5jb29yZGluYXRlcyxuKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihOaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxHZW9tZXRyeUNvbGxlY3Rpb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5nZW9tZXRyaWVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoTWkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX19LFlwPWNyKCksQnA9Y3IoKSxGcD17cG9pbnQ6dnIsbGluZVN0YXJ0OnZyLGxpbmVFbmQ6dnIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7RnAubGluZVN0YXJ0PVJpLEZwLmxpbmVFbmQ9VWl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtGcC5saW5lU3RhcnQ9RnAubGluZUVuZD1GcC5wb2ludD12cixZcC5hZGQoSmQoQnApKSxCcC5yZXNldCgpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1ZcC8yO3JldHVybiBZcC5yZXNldCgpLHR9fSxJcD0xLzAsanA9SXAsSHA9LUlwLFhwPUhwLEdwPXtwb2ludDpmdW5jdGlvbih0LG4pe3Q8SXAmJihJcD10KSx0PkhwJiYoSHA9dCksbjxqcCYmKGpwPW4pLG4+WHAmJihYcD1uKX0sbGluZVN0YXJ0OnZyLGxpbmVFbmQ6dnIscG9seWdvblN0YXJ0OnZyLHBvbHlnb25FbmQ6dnIscmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9W1tJcCxqcF0sW0hwLFhwXV07cmV0dXJuIEhwPVhwPS0oanA9SXA9MS8wKSx0fX0sVnA9MCwkcD0wLFdwPTAsWnA9MCxRcD0wLEpwPTAsS3A9MCx0dj0wLG52PTAsZXY9e3BvaW50OnFpLGxpbmVTdGFydDpPaSxsaW5lRW5kOkZpLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2V2LmxpbmVTdGFydD1JaSxldi5saW5lRW5kPWppfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ZXYucG9pbnQ9cWksZXYubGluZVN0YXJ0PU9pLGV2LmxpbmVFbmQ9Rml9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PW52P1tLcC9udix0di9udl06SnA/W1pwL0pwLFFwL0pwXTpXcD9bVnAvV3AsJHAvV3BdOltOYU4sTmFOXTtyZXR1cm4gVnA9JHA9V3A9WnA9UXA9SnA9S3A9dHY9bnY9MCx0fX07R2kucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmFkaXVzPXQsdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pO2JyZWFrO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5tb3ZlVG8odCt0aGlzLl9yYWRpdXMsbiksdGhpcy5fY29udGV4dC5hcmModCxuLHRoaXMuX3JhZGl1cywwLFdkKX19LHJlc3VsdDp2cn07dmFyIHJ2LGl2LG92LGF2LHV2LGZ2PWNyKCksY3Y9e3BvaW50OnZyLGxpbmVTdGFydDpmdW5jdGlvbigpe2N2LnBvaW50PVZpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7cnYmJiRpKGl2LG92KSxjdi5wb2ludD12cn0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7cnY9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtydj1udWxsfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD0rZnY7cmV0dXJuIGZ2LnJlc2V0KCksdH19O1dpLnByb3RvdHlwZT17X3JhZGl1czo0LjUsX2NpcmNsZTpaaSg0LjUpLHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybih0PSt0KSE9PXRoaXMuX3JhZGl1cyYmKHRoaXMuX3JhZGl1cz10LHRoaXMuX2NpcmNsZT1udWxsKSx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA9PT10aGlzLl9saW5lJiZ0aGlzLl9zdHJpbmcucHVzaChcIlpcIiksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3N0cmluZy5wdXNoKFwiTVwiLHQsXCIsXCIsbiksdGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fc3RyaW5nLnB1c2goXCJMXCIsdCxcIixcIixuKTticmVhaztkZWZhdWx0Om51bGw9PXRoaXMuX2NpcmNsZSYmKHRoaXMuX2NpcmNsZT1aaSh0aGlzLl9yYWRpdXMpKSx0aGlzLl9zdHJpbmcucHVzaChcIk1cIix0LFwiLFwiLG4sdGhpcy5fY2lyY2xlKX19LHJlc3VsdDpmdW5jdGlvbigpe2lmKHRoaXMuX3N0cmluZy5sZW5ndGgpe3ZhciB0PXRoaXMuX3N0cmluZy5qb2luKFwiXCIpO3JldHVybiB0aGlzLl9zdHJpbmc9W10sdH1yZXR1cm4gbnVsbH19LEppLnByb3RvdHlwZT17Y29uc3RydWN0b3I6SmkscG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLnN0cmVhbS5wb2ludCh0LG4pfSxzcGhlcmU6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5zcGhlcmUoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvbkVuZCgpfX07dmFyIHN2PTE2LGx2PW5wKDMwKlFkKSxodj1RaSh7cG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLnN0cmVhbS5wb2ludCh0KlFkLG4qUWQpfX0pLGR2PWhvKGZ1bmN0aW9uKHQpe3JldHVybiBmcCgyLygxK3QpKX0pO2R2LmludmVydD1wbyhmdW5jdGlvbih0KXtyZXR1cm4gMipkcih0LzIpfSk7dmFyIHB2PWhvKGZ1bmN0aW9uKHQpe3JldHVybih0PWhyKHQpKSYmdC9hcCh0KX0pO3B2LmludmVydD1wbyhmdW5jdGlvbih0KXtyZXR1cm4gdH0pLHZvLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVyblt0LDIqS2QocnAobikpLVZkXX0sYm8uaW52ZXJ0PWJvLHhvLmludmVydD1wbyhLZCksTW8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7dmFyIGUscj1uLGk9MjU7ZG97dmFyIG89cipyLGE9bypvO3ItPWU9KHIqKDEuMDA3MjI2K28qKC4wMTUwODUrYSooLjAyODg3NCpvLS4wNDQ0NzUtLjAwNTkxNiphKSkpLW4pLygxLjAwNzIyNitvKiguMDQ1MjU1K2EqKC4yNTk4NjYqby0uMzExMzI1LS4wMDU5MTYqMTEqYSkpKX13aGlsZShKZChlKT5IZCYmLS1pPjApO3JldHVyblt0LyguODcwNysobz1yKnIpKihvKihvKm8qbyooLjAwMzk3MS0uMDAxNTI5Km8pLS4wMTM3OTEpLS4xMzE5NzkpKSxyXX0sQW8uaW52ZXJ0PXBvKGRyKSxUby5pbnZlcnQ9cG8oZnVuY3Rpb24odCl7cmV0dXJuIDIqS2QodCl9KSxOby5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm5bLW4sMipLZChycCh0KSktVmRdfSxEby5wcm90b3R5cGU9UG8ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpEbyxjb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2hBZnRlcihDbyl9LGVhY2g6ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbz10aGlzLGE9W29dO2Rve2ZvcihuPWEucmV2ZXJzZSgpLGE9W107bz1uLnBvcCgpOylpZih0KG8pLGU9by5jaGlsZHJlbilmb3Iocj0wLGk9ZS5sZW5ndGg7cjxpOysrcilhLnB1c2goZVtyXSl9d2hpbGUoYS5sZW5ndGgpO3JldHVybiB0aGlzfSxlYWNoQWZ0ZXI6ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscixpPXRoaXMsbz1baV0sYT1bXTtpPW8ucG9wKCk7KWlmKGEucHVzaChpKSxuPWkuY2hpbGRyZW4pZm9yKGU9MCxyPW4ubGVuZ3RoO2U8cjsrK2Upby5wdXNoKG5bZV0pO2Zvcig7aT1hLnBvcCgpOyl0KGkpO3JldHVybiB0aGlzfSxlYWNoQmVmb3JlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHI9dGhpcyxpPVtyXTtyPWkucG9wKCk7KWlmKHQociksbj1yLmNoaWxkcmVuKWZvcihlPW4ubGVuZ3RoLTE7ZT49MDstLWUpaS5wdXNoKG5bZV0pO3JldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKGZ1bmN0aW9uKG4pe2Zvcih2YXIgZT0rdChuLmRhdGEpfHwwLHI9bi5jaGlsZHJlbixpPXImJnIubGVuZ3RoOy0taT49MDspZSs9cltpXS52YWx1ZTtuLnZhbHVlPWV9KX0sc29ydDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKGZ1bmN0aW9uKG4pe24uY2hpbGRyZW4mJm4uY2hpbGRyZW4uc29ydCh0KX0pfSxwYXRoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLGU9ZnVuY3Rpb24odCxuKXtpZih0PT09bilyZXR1cm4gdDt2YXIgZT10LmFuY2VzdG9ycygpLHI9bi5hbmNlc3RvcnMoKSxpPW51bGw7Zm9yKHQ9ZS5wb3AoKSxuPXIucG9wKCk7dD09PW47KWk9dCx0PWUucG9wKCksbj1yLnBvcCgpO3JldHVybiBpfShuLHQpLHI9W25dO24hPT1lOyluPW4ucGFyZW50LHIucHVzaChuKTtmb3IodmFyIGk9ci5sZW5ndGg7dCE9PWU7KXIuc3BsaWNlKGksMCx0KSx0PXQucGFyZW50O3JldHVybiByfSxhbmNlc3RvcnM6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxuPVt0XTt0PXQucGFyZW50OyluLnB1c2godCk7cmV0dXJuIG59LGRlc2NlbmRhbnRzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihuKXt0LnB1c2gobil9KSx0fSxsZWF2ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKGZ1bmN0aW9uKG4pe24uY2hpbGRyZW58fHQucHVzaChuKX0pLHR9LGxpbmtzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPVtdO3JldHVybiB0LmVhY2goZnVuY3Rpb24oZSl7ZSE9PXQmJm4ucHVzaCh7c291cmNlOmUucGFyZW50LHRhcmdldDplfSl9KSxufSxjb3B5OmZ1bmN0aW9uKCl7cmV0dXJuIFBvKHRoaXMpLmVhY2hCZWZvcmUoUm8pfX07dmFyIHZ2PUFycmF5LnByb3RvdHlwZS5zbGljZSxndj1cIiRcIix5dj17ZGVwdGg6LTF9LF92PXt9O2NhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKERvLnByb3RvdHlwZSk7dmFyIGJ2PSgxK01hdGguc3FydCg1KSkvMixtdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlLHIsaSxvKXtsYShuLHQsZSxyLGksbyl9cmV0dXJuIGUucmF0aW89ZnVuY3Rpb24obil7cmV0dXJuIHQoKG49K24pPjE/bjoxKX0sZX0oYnYpLHh2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUscixpLG8pe2lmKChhPXQuX3NxdWFyaWZ5KSYmYS5yYXRpbz09PW4pZm9yKHZhciBhLHUsZixjLHMsbD0tMSxoPWEubGVuZ3RoLGQ9dC52YWx1ZTsrK2w8aDspe2ZvcihmPSh1PWFbbF0pLmNoaWxkcmVuLGM9dS52YWx1ZT0wLHM9Zi5sZW5ndGg7YzxzOysrYyl1LnZhbHVlKz1mW2NdLnZhbHVlO3UuZGljZT9uYSh1LGUscixpLHIrPShvLXIpKnUudmFsdWUvZCk6c2EodSxlLHIsZSs9KGktZSkqdS52YWx1ZS9kLG8pLGQtPXUudmFsdWV9ZWxzZSB0Ll9zcXVhcmlmeT1hPWxhKG4sdCxlLHIsaSxvKSxhLnJhdGlvPW59cmV0dXJuIGUucmF0aW89ZnVuY3Rpb24obil7cmV0dXJuIHQoKG49K24pPjE/bjoxKX0sZX0oYnYpLHd2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiB0PW51bGw9PXQ/MDordCxlPW51bGw9PWU/MTorZSwxPT09YXJndW1lbnRzLmxlbmd0aD8oZT10LHQ9MCk6ZS09dCxmdW5jdGlvbigpe3JldHVybiBuKCkqZSt0fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksTXY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSl7dmFyIHIsaTtyZXR1cm4gdD1udWxsPT10PzA6K3QsZT1udWxsPT1lPzE6K2UsZnVuY3Rpb24oKXt2YXIgbztpZihudWxsIT1yKW89cixyPW51bGw7ZWxzZSBkb3tyPTIqbigpLTEsbz0yKm4oKS0xLGk9cipyK28qb313aGlsZSghaXx8aT4xKTtyZXR1cm4gdCtlKm8qTWF0aC5zcXJ0KC0yKk1hdGgubG9nKGkpL2kpfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksQXY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKCl7dmFyIHQ9TXYuc291cmNlKG4pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5leHAodCgpKX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLFR2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxyPTA7cjx0OysrcillKz1uKCk7cmV0dXJuIGV9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxOdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7dmFyIGU9VHYuc291cmNlKG4pKHQpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKCkvdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLFN2PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4tTWF0aC5sb2coMS1uKCkpL3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxFdj1BcnJheS5wcm90b3R5cGUsa3Y9RXYubWFwLEN2PUV2LnNsaWNlLFB2PXtuYW1lOlwiaW1wbGljaXRcIn0senY9WzAsMV0sUnY9bmV3IERhdGUsTHY9bmV3IERhdGUsRHY9SWEoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0K24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLXR9KTtEdi5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP0lhKGZ1bmN0aW9uKG4pe24uc2V0VGltZShNYXRoLmZsb29yKG4vdCkqdCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRUaW1lKCtuK2UqdCl9LGZ1bmN0aW9uKG4sZSl7cmV0dXJuKGUtbikvdH0pOkR2Om51bGx9O3ZhciBVdj1Edi5yYW5nZSxxdj02ZTQsT3Y9NjA0OGU1LFl2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0VGltZSgxZTMqTWF0aC5mbG9vcih0LzFlMykpfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCsxZTMqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMWUzfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENTZWNvbmRzKCl9KSxCdj1Zdi5yYW5nZSxGdj1JYShmdW5jdGlvbih0KXt0LnNldFRpbWUoTWF0aC5mbG9vcih0L3F2KSpxdil9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0K24qcXYpfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpL3F2fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNaW51dGVzKCl9KSxJdj1Gdi5yYW5nZSxqdj1JYShmdW5jdGlvbih0KXt2YXIgbj10LmdldFRpbWV6b25lT2Zmc2V0KCkqcXYlMzZlNTtuPDAmJihuKz0zNmU1KSx0LnNldFRpbWUoMzZlNSpNYXRoLmZsb29yKCgrdC1uKS8zNmU1KStuKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3QrMzZlNSpuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8zNmU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRIb3VycygpfSksSHY9anYucmFuZ2UsWHY9SWEoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldERhdGUodC5nZXREYXRlKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdC0obi5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqcXYpLzg2NGU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pLEd2PVh2LnJhbmdlLFZ2PWphKDApLCR2PWphKDEpLFd2PWphKDIpLFp2PWphKDMpLFF2PWphKDQpLEp2PWphKDUpLEt2PWphKDYpLHRnPVZ2LnJhbmdlLG5nPSR2LnJhbmdlLGVnPVd2LnJhbmdlLHJnPVp2LnJhbmdlLGlnPVF2LnJhbmdlLG9nPUp2LnJhbmdlLGFnPUt2LnJhbmdlLHVnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0RGF0ZSgxKSx0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0TW9udGgodC5nZXRNb250aCgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldE1vbnRoKCktdC5nZXRNb250aCgpKzEyKihuLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TW9udGgoKX0pLGZnPXVnLnJhbmdlLGNnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0TW9udGgoMCwxKSx0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0RnVsbFllYXIodC5nZXRGdWxsWWVhcigpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpfSk7Y2cuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9JYShmdW5jdGlvbihuKXtuLnNldEZ1bGxZZWFyKE1hdGguZmxvb3Iobi5nZXRGdWxsWWVhcigpL3QpKnQpLG4uc2V0TW9udGgoMCwxKSxuLnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLGUpe24uc2V0RnVsbFllYXIobi5nZXRGdWxsWWVhcigpK2UqdCl9KTpudWxsfTt2YXIgc2c9Y2cucmFuZ2UsbGc9SWEoZnVuY3Rpb24odCl7dC5zZXRVVENTZWNvbmRzKDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0K24qcXYpfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpL3F2fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNaW51dGVzKCl9KSxoZz1sZy5yYW5nZSxkZz1JYShmdW5jdGlvbih0KXt0LnNldFVUQ01pbnV0ZXMoMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCszNmU1Km4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzM2ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9KSxwZz1kZy5yYW5nZSx2Zz1JYShmdW5jdGlvbih0KXt0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS84NjRlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRGF0ZSgpLTF9KSxnZz12Zy5yYW5nZSx5Zz1IYSgwKSxfZz1IYSgxKSxiZz1IYSgyKSxtZz1IYSgzKSx4Zz1IYSg0KSx3Zz1IYSg1KSxNZz1IYSg2KSxBZz15Zy5yYW5nZSxUZz1fZy5yYW5nZSxOZz1iZy5yYW5nZSxTZz1tZy5yYW5nZSxFZz14Zy5yYW5nZSxrZz13Zy5yYW5nZSxDZz1NZy5yYW5nZSxQZz1JYShmdW5jdGlvbih0KXt0LnNldFVUQ0RhdGUoMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ01vbnRoKHQuZ2V0VVRDTW9udGgoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRVVENNb250aCgpLXQuZ2V0VVRDTW9udGgoKSsxMioobi5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01vbnRoKCl9KSx6Zz1QZy5yYW5nZSxSZz1JYShmdW5jdGlvbih0KXt0LnNldFVUQ01vbnRoKDAsMSksdC5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFVUQ0Z1bGxZZWFyKHQuZ2V0VVRDRnVsbFllYXIoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4gbi5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDRnVsbFllYXIoKX0pO1JnLmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/SWEoZnVuY3Rpb24obil7bi5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKG4uZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxuLnNldFVUQ01vbnRoKDAsMSksbi5zZXRVVENIb3VycygwLDAsMCwwKX0sZnVuY3Rpb24obixlKXtuLnNldFVUQ0Z1bGxZZWFyKG4uZ2V0VVRDRnVsbFllYXIoKStlKnQpfSk6bnVsbH07dmFyIExnLERnPVJnLnJhbmdlLFVnPXtcIi1cIjpcIlwiLF86XCIgXCIsMDpcIjBcIn0scWc9L15cXHMqXFxkKy8sT2c9L14lLyxZZz0vW1xcXFxeJCorP3xbXFxdKCkue31dL2c7bmYoe2RhdGVUaW1lOlwiJXgsICVYXCIsZGF0ZTpcIiUtbS8lLWQvJVlcIix0aW1lOlwiJS1JOiVNOiVTICVwXCIscGVyaW9kczpbXCJBTVwiLFwiUE1cIl0sZGF5czpbXCJTdW5kYXlcIixcIk1vbmRheVwiLFwiVHVlc2RheVwiLFwiV2VkbmVzZGF5XCIsXCJUaHVyc2RheVwiLFwiRnJpZGF5XCIsXCJTYXR1cmRheVwiXSxzaG9ydERheXM6W1wiU3VuXCIsXCJNb25cIixcIlR1ZVwiLFwiV2VkXCIsXCJUaHVcIixcIkZyaVwiLFwiU2F0XCJdLG1vbnRoczpbXCJKYW51YXJ5XCIsXCJGZWJydWFyeVwiLFwiTWFyY2hcIixcIkFwcmlsXCIsXCJNYXlcIixcIkp1bmVcIixcIkp1bHlcIixcIkF1Z3VzdFwiLFwiU2VwdGVtYmVyXCIsXCJPY3RvYmVyXCIsXCJOb3ZlbWJlclwiLFwiRGVjZW1iZXJcIl0sc2hvcnRNb250aHM6W1wiSmFuXCIsXCJGZWJcIixcIk1hclwiLFwiQXByXCIsXCJNYXlcIixcIkp1blwiLFwiSnVsXCIsXCJBdWdcIixcIlNlcFwiLFwiT2N0XCIsXCJOb3ZcIixcIkRlY1wiXX0pO3ZhciBCZz1cIiVZLSVtLSVkVCVIOiVNOiVTLiVMWlwiLEZnPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nP2Z1bmN0aW9uKHQpe3JldHVybiB0LnRvSVNPU3RyaW5nKCl9OnQudXRjRm9ybWF0KEJnKSxJZz0rbmV3IERhdGUoXCIyMDAwLTAxLTAxVDAwOjAwOjAwLjAwMFpcIik/ZnVuY3Rpb24odCl7dmFyIG49bmV3IERhdGUodCk7cmV0dXJuIGlzTmFOKG4pP251bGw6bn06dC51dGNQYXJzZShCZyksamc9MWUzLEhnPTYwKmpnLFhnPTYwKkhnLEdnPTI0KlhnLFZnPTcqR2csJGc9MzAqR2csV2c9MzY1KkdnLFpnPWZmKFwiMWY3N2I0ZmY3ZjBlMmNhMDJjZDYyNzI4OTQ2N2JkOGM1NjRiZTM3N2MyN2Y3ZjdmYmNiZDIyMTdiZWNmXCIpLFFnPWZmKFwiN2ZjOTdmYmVhZWQ0ZmRjMDg2ZmZmZjk5Mzg2Y2IwZjAwMjdmYmY1YjE3NjY2NjY2XCIpLEpnPWZmKFwiMWI5ZTc3ZDk1ZjAyNzU3MGIzZTcyOThhNjZhNjFlZTZhYjAyYTY3NjFkNjY2NjY2XCIpLEtnPWZmKFwiYTZjZWUzMWY3OGI0YjJkZjhhMzNhMDJjZmI5YTk5ZTMxYTFjZmRiZjZmZmY3ZjAwY2FiMmQ2NmEzZDlhZmZmZjk5YjE1OTI4XCIpLHR5PWZmKFwiZmJiNGFlYjNjZGUzY2NlYmM1ZGVjYmU0ZmVkOWE2ZmZmZmNjZTVkOGJkZmRkYWVjZjJmMmYyXCIpLG55PWZmKFwiYjNlMmNkZmRjZGFjY2JkNWU4ZjRjYWU0ZTZmNWM5ZmZmMmFlZjFlMmNjY2NjY2NjXCIpLGV5PWZmKFwiZTQxYTFjMzc3ZWI4NGRhZjRhOTg0ZWEzZmY3ZjAwZmZmZjMzYTY1NjI4Zjc4MWJmOTk5OTk5XCIpLHJ5PWZmKFwiNjZjMmE1ZmM4ZDYyOGRhMGNiZTc4YWMzYTZkODU0ZmZkOTJmZTVjNDk0YjNiM2IzXCIpLGl5PWZmKFwiOGRkM2M3ZmZmZmIzYmViYWRhZmI4MDcyODBiMWQzZmRiNDYyYjNkZTY5ZmNjZGU1ZDlkOWQ5YmM4MGJkY2NlYmM1ZmZlZDZmXCIpLG95PW5ldyBBcnJheSgzKS5jb25jYXQoXCJkOGIzNjVmNWY1ZjU1YWI0YWNcIixcImE2NjExYWRmYzI3ZDgwY2RjMTAxODU3MVwiLFwiYTY2MTFhZGZjMjdkZjVmNWY1ODBjZGMxMDE4NTcxXCIsXCI4YzUxMGFkOGIzNjVmNmU4YzNjN2VhZTU1YWI0YWMwMTY2NWVcIixcIjhjNTEwYWQ4YjM2NWY2ZThjM2Y1ZjVmNWM3ZWFlNTVhYjRhYzAxNjY1ZVwiLFwiOGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzYzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlXCIsXCI4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNmNWY1ZjVjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWVcIixcIjU0MzAwNThjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2M3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZTAwM2MzMFwiLFwiNTQzMDA1OGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzZjVmNWY1YzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlMDAzYzMwXCIpLm1hcChmZiksYXk9Y2Yob3kpLHV5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJhZjhkYzNmN2Y3Zjc3ZmJmN2JcIixcIjdiMzI5NGMyYTVjZmE2ZGJhMDAwODgzN1wiLFwiN2IzMjk0YzJhNWNmZjdmN2Y3YTZkYmEwMDA4ODM3XCIsXCI3NjJhODNhZjhkYzNlN2Q0ZThkOWYwZDM3ZmJmN2IxYjc4MzdcIixcIjc2MmE4M2FmOGRjM2U3ZDRlOGY3ZjdmN2Q5ZjBkMzdmYmY3YjFiNzgzN1wiLFwiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3XCIsXCI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThmN2Y3ZjdkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzdcIixcIjQwMDA0Yjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGQ5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzNzAwNDQxYlwiLFwiNDAwMDRiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZjdmN2Y3ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3MDA0NDFiXCIpLm1hcChmZiksZnk9Y2YodXkpLGN5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlOWEzYzlmN2Y3ZjdhMWQ3NmFcIixcImQwMWM4YmYxYjZkYWI4ZTE4NjRkYWMyNlwiLFwiZDAxYzhiZjFiNmRhZjdmN2Y3YjhlMTg2NGRhYzI2XCIsXCJjNTFiN2RlOWEzYzlmZGUwZWZlNmY1ZDBhMWQ3NmE0ZDkyMjFcIixcImM1MWI3ZGU5YTNjOWZkZTBlZmY3ZjdmN2U2ZjVkMGExZDc2YTRkOTIyMVwiLFwiYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxXCIsXCJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZmN2Y3ZjdlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjFcIixcIjhlMDE1MmM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmU2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMTI3NjQxOVwiLFwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZjdmN2Y3ZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5XCIpLm1hcChmZiksc3k9Y2YoY3kpLGx5PW5ldyBBcnJheSgzKS5jb25jYXQoXCI5OThlYzNmN2Y3ZjdmMWEzNDBcIixcIjVlM2M5OWIyYWJkMmZkYjg2M2U2NjEwMVwiLFwiNWUzYzk5YjJhYmQyZjdmN2Y3ZmRiODYzZTY2MTAxXCIsXCI1NDI3ODg5OThlYzNkOGRhZWJmZWUwYjZmMWEzNDBiMzU4MDZcIixcIjU0Mjc4ODk5OGVjM2Q4ZGFlYmY3ZjdmN2ZlZTBiNmYxYTM0MGIzNTgwNlwiLFwiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2XCIsXCI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmN2Y3ZjdmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDZcIixcIjJkMDA0YjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNjdmM2IwOFwiLFwiMmQwMDRiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZjdmN2Y3ZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2N2YzYjA4XCIpLm1hcChmZiksaHk9Y2YobHkpLGR5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlZjhhNjJmN2Y3Zjc2N2E5Y2ZcIixcImNhMDAyMGY0YTU4MjkyYzVkZTA1NzFiMFwiLFwiY2EwMDIwZjRhNTgyZjdmN2Y3OTJjNWRlMDU3MWIwXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdkMWU1ZjA2N2E5Y2YyMTY2YWNcIixcImIyMTgyYmVmOGE2MmZkZGJjN2Y3ZjdmN2QxZTVmMDY3YTljZjIxNjZhY1wiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmN2Y3ZjdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWNcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhYzA1MzA2MVwiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZjdmN2Y3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjMDUzMDYxXCIpLm1hcChmZikscHk9Y2YoZHkpLHZ5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlZjhhNjJmZmZmZmY5OTk5OTlcIixcImNhMDAyMGY0YTU4MmJhYmFiYTQwNDA0MFwiLFwiY2EwMDIwZjRhNTgyZmZmZmZmYmFiYWJhNDA0MDQwXCIsXCJiMjE4MmJlZjhhNjJmZGRiYzdlMGUwZTA5OTk5OTk0ZDRkNGRcIixcImIyMTgyYmVmOGE2MmZkZGJjN2ZmZmZmZmUwZTBlMDk5OTk5OTRkNGQ0ZFwiLFwiYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmZmZmZmZlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGRcIixcIjY3MDAxZmIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2UwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZDFhMWExYVwiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZmZmZmZmZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhXCIpLm1hcChmZiksZ3k9Y2YodnkpLHl5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmYzhkNTlmZmZmYmY5MWJmZGJcIixcImQ3MTkxY2ZkYWU2MWFiZDllOTJjN2JiNlwiLFwiZDcxOTFjZmRhZTYxZmZmZmJmYWJkOWU5MmM3YmI2XCIsXCJkNzMwMjdmYzhkNTlmZWUwOTBlMGYzZjg5MWJmZGI0NTc1YjRcIixcImQ3MzAyN2ZjOGQ1OWZlZTA5MGZmZmZiZmUwZjNmODkxYmZkYjQ1NzViNFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0XCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBmZmZmYmZlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjRcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNDMxMzY5NVwiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZmZmZmJmZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0MzEzNjk1XCIpLm1hcChmZiksX3k9Y2YoeXkpLGJ5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmYzhkNTlmZmZmYmY5MWNmNjBcIixcImQ3MTkxY2ZkYWU2MWE2ZDk2YTFhOTY0MVwiLFwiZDcxOTFjZmRhZTYxZmZmZmJmYTZkOTZhMWE5NjQxXCIsXCJkNzMwMjdmYzhkNTlmZWUwOGJkOWVmOGI5MWNmNjAxYTk4NTBcIixcImQ3MzAyN2ZjOGQ1OWZlZTA4YmZmZmZiZmQ5ZWY4YjkxY2Y2MDFhOTg1MFwiLFwiZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwXCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTBcIixcImE1MDAyNmQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MDAwNjgzN1wiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwMDA2ODM3XCIpLm1hcChmZiksbXk9Y2YoYnkpLHh5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmYzhkNTlmZmZmYmY5OWQ1OTRcIixcImQ3MTkxY2ZkYWU2MWFiZGRhNDJiODNiYVwiLFwiZDcxOTFjZmRhZTYxZmZmZmJmYWJkZGE0MmI4M2JhXCIsXCJkNTNlNGZmYzhkNTlmZWUwOGJlNmY1OTg5OWQ1OTQzMjg4YmRcIixcImQ1M2U0ZmZjOGQ1OWZlZTA4YmZmZmZiZmU2ZjU5ODk5ZDU5NDMyODhiZFwiLFwiZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkXCIsXCJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmRcIixcIjllMDE0MmQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZDVlNGZhMlwiLFwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZmZmZmJmZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyXCIpLm1hcChmZiksd3k9Y2YoeHkpLE15PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlNWY1Zjk5OWQ4YzkyY2EyNWZcIixcImVkZjhmYmIyZTJlMjY2YzJhNDIzOGI0NVwiLFwiZWRmOGZiYjJlMmUyNjZjMmE0MmNhMjVmMDA2ZDJjXCIsXCJlZGY4ZmJjY2VjZTY5OWQ4Yzk2NmMyYTQyY2EyNWYwMDZkMmNcIixcImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNTgyNFwiLFwiZjdmY2ZkZTVmNWY5Y2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA1ODI0XCIsXCJmN2ZjZmRlNWY1ZjljY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDZkMmMwMDQ0MWJcIikubWFwKGZmKSxBeT1jZihNeSksVHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImUwZWNmNDllYmNkYTg4NTZhN1wiLFwiZWRmOGZiYjNjZGUzOGM5NmM2ODg0MTlkXCIsXCJlZGY4ZmJiM2NkZTM4Yzk2YzY4ODU2YTc4MTBmN2NcIixcImVkZjhmYmJmZDNlNjllYmNkYThjOTZjNjg4NTZhNzgxMGY3Y1wiLFwiZWRmOGZiYmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkNmUwMTZiXCIsXCJmN2ZjZmRlMGVjZjRiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ2ZTAxNmJcIixcImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDgxMGY3YzRkMDA0YlwiKS5tYXAoZmYpLE55PWNmKFR5KSxTeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTBmM2RiYThkZGI1NDNhMmNhXCIsXCJmMGY5ZThiYWU0YmM3YmNjYzQyYjhjYmVcIixcImYwZjllOGJhZTRiYzdiY2NjNDQzYTJjYTA4NjhhY1wiLFwiZjBmOWU4Y2NlYmM1YThkZGI1N2JjY2M0NDNhMmNhMDg2OGFjXCIsXCJmMGY5ZThjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODU4OWVcIixcImY3ZmNmMGUwZjNkYmNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZVwiLFwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg2OGFjMDg0MDgxXCIpLm1hcChmZiksRXk9Y2YoU3kpLGt5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWU4YzhmZGJiODRlMzRhMzNcIixcImZlZjBkOWZkY2M4YWZjOGQ1OWQ3MzAxZlwiLFwiZmVmMGQ5ZmRjYzhhZmM4ZDU5ZTM0YTMzYjMwMDAwXCIsXCJmZWYwZDlmZGQ0OWVmZGJiODRmYzhkNTllMzRhMzNiMzAwMDBcIixcImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZjk5MDAwMFwiLFwiZmZmN2VjZmVlOGM4ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmOTkwMDAwXCIsXCJmZmY3ZWNmZWU4YzhmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWZiMzAwMDA3ZjAwMDBcIikubWFwKGZmKSxDeT1jZihreSksUHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVjZTJmMGE2YmRkYjFjOTA5OVwiLFwiZjZlZmY3YmRjOWUxNjdhOWNmMDI4MThhXCIsXCJmNmVmZjdiZGM5ZTE2N2E5Y2YxYzkwOTkwMTZjNTlcIixcImY2ZWZmN2QwZDFlNmE2YmRkYjY3YTljZjFjOTA5OTAxNmM1OVwiLFwiZjZlZmY3ZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2NDUwXCIsXCJmZmY3ZmJlY2UyZjBkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTY0NTBcIixcImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNmM1OTAxNDYzNlwiKS5tYXAoZmYpLHp5PWNmKFB5KSxSeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWNlN2YyYTZiZGRiMmI4Y2JlXCIsXCJmMWVlZjZiZGM5ZTE3NGE5Y2YwNTcwYjBcIixcImYxZWVmNmJkYzllMTc0YTljZjJiOGNiZTA0NWE4ZFwiLFwiZjFlZWY2ZDBkMWU2YTZiZGRiNzRhOWNmMmI4Y2JlMDQ1YThkXCIsXCJmMWVlZjZkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwMzRlN2JcIixcImZmZjdmYmVjZTdmMmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YlwiLFwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDQ1YThkMDIzODU4XCIpLm1hcChmZiksTHk9Y2YoUnkpLER5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlN2UxZWZjOTk0YzdkZDFjNzdcIixcImYxZWVmNmQ3YjVkOGRmNjViMGNlMTI1NlwiLFwiZjFlZWY2ZDdiNWQ4ZGY2NWIwZGQxYzc3OTgwMDQzXCIsXCJmMWVlZjZkNGI5ZGFjOTk0YzdkZjY1YjBkZDFjNzc5ODAwNDNcIixcImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1NjkxMDAzZlwiLFwiZjdmNGY5ZTdlMWVmZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTEwMDNmXCIsXCJmN2Y0ZjllN2UxZWZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5ODAwNDM2NzAwMWZcIikubWFwKGZmKSxVeT1jZihEeSkscXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZkZTBkZGZhOWZiNWM1MWI4YVwiLFwiZmVlYmUyZmJiNGI5Zjc2OGExYWUwMTdlXCIsXCJmZWViZTJmYmI0YjlmNzY4YTFjNTFiOGE3YTAxNzdcIixcImZlZWJlMmZjYzVjMGZhOWZiNWY3NjhhMWM1MWI4YTdhMDE3N1wiLFwiZmVlYmUyZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3XCIsXCJmZmY3ZjNmZGUwZGRmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzdcIixcImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3NzQ5MDA2YVwiKS5tYXAoZmYpLE95PWNmKHF5KSxZeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWRmOGIxN2ZjZGJiMmM3ZmI4XCIsXCJmZmZmY2NhMWRhYjQ0MWI2YzQyMjVlYThcIixcImZmZmZjY2ExZGFiNDQxYjZjNDJjN2ZiODI1MzQ5NFwiLFwiZmZmZmNjYzdlOWI0N2ZjZGJiNDFiNmM0MmM3ZmI4MjUzNDk0XCIsXCJmZmZmY2NjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgwYzJjODRcIixcImZmZmZkOWVkZjhiMWM3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NFwiLFwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MjUzNDk0MDgxZDU4XCIpLm1hcChmZiksQnk9Y2YoWXkpLEZ5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmN2ZjYjlhZGRkOGUzMWEzNTRcIixcImZmZmZjY2MyZTY5OTc4YzY3OTIzODQ0M1wiLFwiZmZmZmNjYzJlNjk5NzhjNjc5MzFhMzU0MDA2ODM3XCIsXCJmZmZmY2NkOWYwYTNhZGRkOGU3OGM2NzkzMWEzNTQwMDY4MzdcIixcImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNWEzMlwiLFwiZmZmZmU1ZjdmY2I5ZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA1YTMyXCIsXCJmZmZmZTVmN2ZjYjlkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDY4MzcwMDQ1MjlcIikubWFwKGZmKSxJeT1jZihGeSksank9bmV3IEFycmF5KDMpLmNvbmNhdChcImZmZjdiY2ZlYzQ0ZmQ5NWYwZVwiLFwiZmZmZmQ0ZmVkOThlZmU5OTI5Y2M0YzAyXCIsXCJmZmZmZDRmZWQ5OGVmZTk5MjlkOTVmMGU5OTM0MDRcIixcImZmZmZkNGZlZTM5MWZlYzQ0ZmZlOTkyOWQ5NWYwZTk5MzQwNFwiLFwiZmZmZmQ0ZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOGMyZDA0XCIsXCJmZmZmZTVmZmY3YmNmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI4YzJkMDRcIixcImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjk5MzQwNDY2MjUwNlwiKS5tYXAoZmYpLEh5PWNmKGp5KSxYeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmZlZGEwZmViMjRjZjAzYjIwXCIsXCJmZmZmYjJmZWNjNWNmZDhkM2NlMzFhMWNcIixcImZmZmZiMmZlY2M1Y2ZkOGQzY2YwM2IyMGJkMDAyNlwiLFwiZmZmZmIyZmVkOTc2ZmViMjRjZmQ4ZDNjZjAzYjIwYmQwMDI2XCIsXCJmZmZmYjJmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiMTAwMjZcIixcImZmZmZjY2ZmZWRhMGZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNlwiLFwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYmQwMDI2ODAwMDI2XCIpLm1hcChmZiksR3k9Y2YoWHkpLFZ5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJkZWViZjc5ZWNhZTEzMTgyYmRcIixcImVmZjNmZmJkZDdlNzZiYWVkNjIxNzFiNVwiLFwiZWZmM2ZmYmRkN2U3NmJhZWQ2MzE4MmJkMDg1MTljXCIsXCJlZmYzZmZjNmRiZWY5ZWNhZTE2YmFlZDYzMTgyYmQwODUxOWNcIixcImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NDU5NFwiLFwiZjdmYmZmZGVlYmY3YzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0XCIsXCJmN2ZiZmZkZWViZjdjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODUxOWMwODMwNmJcIikubWFwKGZmKSwkeT1jZihWeSksV3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImU1ZjVlMGExZDk5YjMxYTM1NFwiLFwiZWRmOGU5YmFlNGIzNzRjNDc2MjM4YjQ1XCIsXCJlZGY4ZTliYWU0YjM3NGM0NzYzMWEzNTQwMDZkMmNcIixcImVkZjhlOWM3ZTljMGExZDk5Yjc0YzQ3NjMxYTM1NDAwNmQyY1wiLFwiZWRmOGU5YzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA1YTMyXCIsXCJmN2ZjZjVlNWY1ZTBjN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDVhMzJcIixcImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNmQyYzAwNDQxYlwiKS5tYXAoZmYpLFp5PWNmKFd5KSxReT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZjBmMGYwYmRiZGJkNjM2MzYzXCIsXCJmN2Y3ZjdjY2NjY2M5Njk2OTY1MjUyNTJcIixcImY3ZjdmN2NjY2NjYzk2OTY5NjYzNjM2MzI1MjUyNVwiLFwiZjdmN2Y3ZDlkOWQ5YmRiZGJkOTY5Njk2NjM2MzYzMjUyNTI1XCIsXCJmN2Y3ZjdkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjVcIixcImZmZmZmZmYwZjBmMGQ5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNVwiLFwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1MDAwMDAwXCIpLm1hcChmZiksSnk9Y2YoUXkpLEt5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlZmVkZjViY2JkZGM3NTZiYjFcIixcImYyZjBmN2NiYzllMjllOWFjODZhNTFhM1wiLFwiZjJmMGY3Y2JjOWUyOWU5YWM4NzU2YmIxNTQyNzhmXCIsXCJmMmYwZjdkYWRhZWJiY2JkZGM5ZTlhYzg3NTZiYjE1NDI3OGZcIixcImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzRhMTQ4NlwiLFwiZmNmYmZkZWZlZGY1ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNGExNDg2XCIsXCJmY2ZiZmRlZmVkZjVkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM1NDI3OGYzZjAwN2RcIikubWFwKGZmKSx0Xz1jZihLeSksbl89bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZTBkMmZjOTI3MmRlMmQyNlwiLFwiZmVlNWQ5ZmNhZTkxZmI2YTRhY2IxODFkXCIsXCJmZWU1ZDlmY2FlOTFmYjZhNGFkZTJkMjZhNTBmMTVcIixcImZlZTVkOWZjYmJhMWZjOTI3MmZiNmE0YWRlMmQyNmE1MGYxNVwiLFwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkOTkwMDBkXCIsXCJmZmY1ZjBmZWUwZDJmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWQ5OTAwMGRcIixcImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZGE1MGYxNTY3MDAwZFwiKS5tYXAoZmYpLGVfPWNmKG5fKSxyXz1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlNmNlZmRhZTZiZTY1NTBkXCIsXCJmZWVkZGVmZGJlODVmZDhkM2NkOTQ3MDFcIixcImZlZWRkZWZkYmU4NWZkOGQzY2U2NTUwZGE2MzYwM1wiLFwiZmVlZGRlZmRkMGEyZmRhZTZiZmQ4ZDNjZTY1NTBkYTYzNjAzXCIsXCJmZWVkZGVmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDE4YzJkMDRcIixcImZmZjVlYmZlZTZjZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNFwiLFwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxYTYzNjAzN2YyNzA0XCIpLm1hcChmZiksaV89Y2Yocl8pLG9fPXhsKFp0KDMwMCwuNSwwKSxadCgtMjQwLC41LDEpKSxhXz14bChadCgtMTAwLC43NSwuMzUpLFp0KDgwLDEuNSwuOCkpLHVfPXhsKFp0KDI2MCwuNzUsLjM1KSxadCg4MCwxLjUsLjgpKSxmXz1adCgpLGNfPVJ0KCksc189TWF0aC5QSS8zLGxfPTIqTWF0aC5QSS8zLGhfPXNmKGZmKFwiNDQwMTU0NDQwMjU2NDUwNDU3NDUwNTU5NDYwNzVhNDYwODVjNDYwYTVkNDYwYjVlNDcwZDYwNDcwZTYxNDcxMDYzNDcxMTY0NDcxMzY1NDgxNDY3NDgxNjY4NDgxNzY5NDgxODZhNDgxYTZjNDgxYjZkNDgxYzZlNDgxZDZmNDgxZjcwNDgyMDcxNDgyMTczNDgyMzc0NDgyNDc1NDgyNTc2NDgyNjc3NDgyODc4NDgyOTc5NDcyYTdhNDcyYzdhNDcyZDdiNDcyZTdjNDcyZjdkNDYzMDdlNDYzMjdlNDYzMzdmNDYzNDgwNDUzNTgxNDUzNzgxNDUzODgyNDQzOTgzNDQzYTgzNDQzYjg0NDMzZDg0NDMzZTg1NDIzZjg1NDI0MDg2NDI0MTg2NDE0Mjg3NDE0NDg3NDA0NTg4NDA0Njg4M2Y0Nzg4M2Y0ODg5M2U0OTg5M2U0YTg5M2U0YzhhM2Q0ZDhhM2Q0ZThhM2M0ZjhhM2M1MDhiM2I1MThiM2I1MjhiM2E1MzhiM2E1NDhjMzk1NThjMzk1NjhjMzg1ODhjMzg1OThjMzc1YThjMzc1YjhkMzY1YzhkMzY1ZDhkMzU1ZThkMzU1ZjhkMzQ2MDhkMzQ2MThkMzM2MjhkMzM2MzhkMzI2NDhlMzI2NThlMzE2NjhlMzE2NzhlMzE2ODhlMzA2OThlMzA2YThlMmY2YjhlMmY2YzhlMmU2ZDhlMmU2ZThlMmU2ZjhlMmQ3MDhlMmQ3MThlMmM3MThlMmM3MjhlMmM3MzhlMmI3NDhlMmI3NThlMmE3NjhlMmE3NzhlMmE3ODhlMjk3OThlMjk3YThlMjk3YjhlMjg3YzhlMjg3ZDhlMjc3ZThlMjc3ZjhlMjc4MDhlMjY4MThlMjY4MjhlMjY4MjhlMjU4MzhlMjU4NDhlMjU4NThlMjQ4NjhlMjQ4NzhlMjM4ODhlMjM4OThlMjM4YThkMjI4YjhkMjI4YzhkMjI4ZDhkMjE4ZThkMjE4ZjhkMjE5MDhkMjE5MThjMjA5MjhjMjA5MjhjMjA5MzhjMWY5NDhjMWY5NThiMWY5NjhiMWY5NzhiMWY5ODhiMWY5OThhMWY5YThhMWU5YjhhMWU5Yzg5MWU5ZDg5MWY5ZTg5MWY5Zjg4MWZhMDg4MWZhMTg4MWZhMTg3MWZhMjg3MjBhMzg2MjBhNDg2MjFhNTg1MjFhNjg1MjJhNzg1MjJhODg0MjNhOTgzMjRhYTgzMjVhYjgyMjVhYzgyMjZhZDgxMjdhZDgxMjhhZTgwMjlhZjdmMmFiMDdmMmNiMTdlMmRiMjdkMmViMzdjMmZiNDdjMzFiNTdiMzJiNjdhMzRiNjc5MzViNzc5MzdiODc4MzhiOTc3M2FiYTc2M2JiYjc1M2RiYzc0M2ZiYzczNDBiZDcyNDJiZTcxNDRiZjcwNDZjMDZmNDhjMTZlNGFjMTZkNGNjMjZjNGVjMzZiNTBjNDZhNTJjNTY5NTRjNTY4NTZjNjY3NThjNzY1NWFjODY0NWNjODYzNWVjOTYyNjBjYTYwNjNjYjVmNjVjYjVlNjdjYzVjNjljZDViNmNjZDVhNmVjZTU4NzBjZjU3NzNkMDU2NzVkMDU0NzdkMTUzN2FkMTUxN2NkMjUwN2ZkMzRlODFkMzRkODRkNDRiODZkNTQ5ODlkNTQ4OGJkNjQ2OGVkNjQ1OTBkNzQzOTNkNzQxOTVkODQwOThkODNlOWJkOTNjOWRkOTNiYTBkYTM5YTJkYTM3YTVkYjM2YThkYjM0YWFkYzMyYWRkYzMwYjBkZDJmYjJkZDJkYjVkZTJiYjhkZTI5YmFkZTI4YmRkZjI2YzBkZjI1YzJkZjIzYzVlMDIxYzhlMDIwY2FlMTFmY2RlMTFkZDBlMTFjZDJlMjFiZDVlMjFhZDhlMjE5ZGFlMzE5ZGRlMzE4ZGZlMzE4ZTJlNDE4ZTVlNDE5ZTdlNDE5ZWFlNTFhZWNlNTFiZWZlNTFjZjFlNTFkZjRlNjFlZjZlNjIwZjhlNjIxZmJlNzIzZmRlNzI1XCIpKSxkXz1zZihmZihcIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwOTAyMDIwYjAyMDIwZDAzMDMwZjAzMDMxMjA0MDQxNDA1MDQxNjA2MDUxODA2MDUxYTA3MDYxYzA4MDcxZTA5MDcyMDBhMDgyMjBiMDkyNDBjMDkyNjBkMGEyOTBlMGIyYjEwMGIyZDExMGMyZjEyMGQzMTEzMGQzNDE0MGUzNjE1MGUzODE2MGYzYjE4MGYzZDE5MTAzZjFhMTA0MjFjMTA0NDFkMTE0NzFlMTE0OTIwMTE0YjIxMTE0ZTIyMTE1MDI0MTI1MzI1MTI1NTI3MTI1ODI5MTE1YTJhMTE1YzJjMTE1ZjJkMTE2MTJmMTE2MzMxMTE2NTMzMTA2NzM0MTA2OTM2MTA2YjM4MTA2YzM5MGY2ZTNiMGY3MDNkMGY3MTNmMGY3MjQwMGY3NDQyMGY3NTQ0MGY3NjQ1MTA3NzQ3MTA3ODQ5MTA3ODRhMTA3OTRjMTE3YTRlMTE3YjRmMTI3YjUxMTI3YzUyMTM3YzU0MTM3ZDU2MTQ3ZDU3MTU3ZTU5MTU3ZTVhMTY3ZTVjMTY3ZjVkMTc3ZjVmMTg3ZjYwMTg4MDYyMTk4MDY0MWE4MDY1MWE4MDY3MWI4MDY4MWM4MTZhMWM4MTZiMWQ4MTZkMWQ4MTZlMWU4MTcwMWY4MTcyMWY4MTczMjA4MTc1MjE4MTc2MjE4MTc4MjI4MTc5MjI4MjdiMjM4MjdjMjM4MjdlMjQ4MjgwMjU4MjgxMjU4MTgzMjY4MTg0MjY4MTg2Mjc4MTg4Mjc4MTg5Mjg4MThiMjk4MThjMjk4MThlMmE4MTkwMmE4MTkxMmI4MTkzMmI4MDk0MmM4MDk2MmM4MDk4MmQ4MDk5MmQ4MDliMmU3ZjljMmU3ZjllMmY3ZmEwMmY3ZmExMzA3ZWEzMzA3ZWE1MzE3ZWE2MzE3ZGE4MzI3ZGFhMzM3ZGFiMzM3Y2FkMzQ3Y2FlMzQ3YmIwMzU3YmIyMzU3YmIzMzY3YWI1MzY3YWI3Mzc3OWI4Mzc3OWJhMzg3OGJjMzk3OGJkMzk3N2JmM2E3N2MwM2E3NmMyM2I3NWM0M2M3NWM1M2M3NGM3M2Q3M2M4M2U3M2NhM2U3MmNjM2Y3MWNkNDA3MWNmNDA3MGQwNDE2ZmQyNDI2ZmQzNDM2ZWQ1NDQ2ZGQ2NDU2Y2Q4NDU2Y2Q5NDY2YmRiNDc2YWRjNDg2OWRlNDk2OGRmNGE2OGUwNGM2N2UyNGQ2NmUzNGU2NWU0NGY2NGU1NTA2NGU3NTI2M2U4NTM2MmU5NTQ2MmVhNTY2MWViNTc2MGVjNTg2MGVkNWE1ZmVlNWI1ZWVmNWQ1ZWYwNWY1ZWYxNjA1ZGYyNjI1ZGYyNjQ1Y2YzNjU1Y2Y0Njc1Y2Y0Njk1Y2Y1NmI1Y2Y2NmM1Y2Y2NmU1Y2Y3NzA1Y2Y3NzI1Y2Y4NzQ1Y2Y4NzY1Y2Y5Nzg1ZGY5Nzk1ZGY5N2I1ZGZhN2Q1ZWZhN2Y1ZWZhODE1ZmZiODM1ZmZiODU2MGZiODc2MWZjODk2MWZjOGE2MmZjOGM2M2ZjOGU2NGZjOTA2NWZkOTI2NmZkOTQ2N2ZkOTY2OGZkOTg2OWZkOWE2YWZkOWI2YmZlOWQ2Y2ZlOWY2ZGZlYTE2ZWZlYTM2ZmZlYTU3MWZlYTc3MmZlYTk3M2ZlYWE3NGZlYWM3NmZlYWU3N2ZlYjA3OGZlYjI3YWZlYjQ3YmZlYjY3Y2ZlYjc3ZWZlYjk3ZmZlYmI4MWZlYmQ4MmZlYmY4NGZlYzE4NWZlYzI4N2ZlYzQ4OGZlYzY4YWZlYzg4Y2ZlY2E4ZGZlY2M4ZmZlY2Q5MGZlY2Y5MmZlZDE5NGZlZDM5NWZlZDU5N2ZlZDc5OWZlZDg5YWZkZGE5Y2ZkZGM5ZWZkZGVhMGZkZTBhMWZkZTJhM2ZkZTNhNWZkZTVhN2ZkZTdhOWZkZTlhYWZkZWJhY2ZjZWNhZWZjZWViMGZjZjBiMmZjZjJiNGZjZjRiNmZjZjZiOGZjZjdiOWZjZjliYmZjZmJiZGZjZmRiZlwiKSkscF89c2YoZmYoXCIwMDAwMDQwMTAwMDUwMTAxMDYwMTAxMDgwMjAxMGEwMjAyMGMwMjAyMGUwMzAyMTAwNDAzMTIwNDAzMTQwNTA0MTcwNjA0MTkwNzA1MWIwODA1MWQwOTA2MWYwYTA3MjIwYjA3MjQwYzA4MjYwZDA4MjkwZTA5MmIxMDA5MmQxMTBhMzAxMjBhMzIxNDBiMzQxNTBiMzcxNjBiMzkxODBjM2MxOTBjM2UxYjBjNDExYzBjNDMxZTBjNDUxZjBjNDgyMTBjNGEyMzBjNGMyNDBjNGYyNjBjNTEyODBiNTMyOTBiNTUyYjBiNTcyZDBiNTkyZjBhNWIzMTBhNWMzMjBhNWUzNDBhNWYzNjA5NjEzODA5NjIzOTA5NjMzYjA5NjQzZDA5NjUzZTA5NjY0MDBhNjc0MjBhNjg0NDBhNjg0NTBhNjk0NzBiNmE0OTBiNmE0YTBjNmI0YzBjNmI0ZDBkNmM0ZjBkNmM1MTBlNmM1MjBlNmQ1NDBmNmQ1NTBmNmQ1NzEwNmU1OTEwNmU1YTExNmU1YzEyNmU1ZDEyNmU1ZjEzNmU2MTEzNmU2MjE0NmU2NDE1NmU2NTE1NmU2NzE2NmU2OTE2NmU2YTE3NmU2YzE4NmU2ZDE4NmU2ZjE5NmU3MTE5NmU3MjFhNmU3NDFhNmU3NTFiNmU3NzFjNmQ3ODFjNmQ3YTFkNmQ3YzFkNmQ3ZDFlNmQ3ZjFlNmM4MDFmNmM4MjIwNmM4NDIwNmI4NTIxNmI4NzIxNmI4ODIyNmE4YTIyNmE4YzIzNjk4ZDIzNjk4ZjI0Njk5MDI1Njg5MjI1Njg5MzI2Njc5NTI2Njc5NzI3NjY5ODI3NjY5YTI4NjU5YjI5NjQ5ZDI5NjQ5ZjJhNjNhMDJhNjNhMjJiNjJhMzJjNjFhNTJjNjBhNjJkNjBhODJlNWZhOTJlNWVhYjJmNWVhZDMwNWRhZTMwNWNiMDMxNWJiMTMyNWFiMzMyNWFiNDMzNTliNjM0NThiNzM1NTdiOTM1NTZiYTM2NTViYzM3NTRiZDM4NTNiZjM5NTJjMDNhNTFjMTNhNTBjMzNiNGZjNDNjNGVjNjNkNGRjNzNlNGNjODNmNGJjYTQwNGFjYjQxNDljYzQyNDhjZTQzNDdjZjQ0NDZkMDQ1NDVkMjQ2NDRkMzQ3NDNkNDQ4NDJkNTRhNDFkNzRiM2ZkODRjM2VkOTRkM2RkYTRlM2NkYjUwM2JkZDUxM2FkZTUyMzhkZjUzMzdlMDU1MzZlMTU2MzVlMjU3MzRlMzU5MzNlNDVhMzFlNTVjMzBlNjVkMmZlNzVlMmVlODYwMmRlOTYxMmJlYTYzMmFlYjY0MjllYjY2MjhlYzY3MjZlZDY5MjVlZTZhMjRlZjZjMjNlZjZlMjFmMDZmMjBmMTcxMWZmMTczMWRmMjc0MWNmMzc2MWJmMzc4MTlmNDc5MThmNTdiMTdmNTdkMTVmNjdlMTRmNjgwMTNmNzgyMTJmNzg0MTBmODg1MGZmODg3MGVmODg5MGNmOThiMGJmOThjMGFmOThlMDlmYTkwMDhmYTkyMDdmYTk0MDdmYjk2MDZmYjk3MDZmYjk5MDZmYjliMDZmYjlkMDdmYzlmMDdmY2ExMDhmY2EzMDlmY2E1MGFmY2E2MGNmY2E4MGRmY2FhMGZmY2FjMTFmY2FlMTJmY2IwMTRmY2IyMTZmY2I0MThmYmI2MWFmYmI4MWRmYmJhMWZmYmJjMjFmYmJlMjNmYWMwMjZmYWMyMjhmYWM0MmFmYWM2MmRmOWM3MmZmOWM5MzJmOWNiMzVmOGNkMzdmOGNmM2FmN2QxM2RmN2QzNDBmNmQ1NDNmNmQ3NDZmNWQ5NDlmNWRiNGNmNGRkNGZmNGRmNTNmNGUxNTZmM2UzNWFmM2U1NWRmMmU2NjFmMmU4NjVmMmVhNjlmMWVjNmRmMWVkNzFmMWVmNzVmMWYxNzlmMmYyN2RmMmY0ODJmM2Y1ODZmM2Y2OGFmNGY4OGVmNWY5OTJmNmZhOTZmOGZiOWFmOWZjOWRmYWZkYTFmY2ZmYTRcIikpLHZfPXNmKGZmKFwiMGQwODg3MTAwNzg4MTMwNzg5MTYwNzhhMTkwNjhjMWIwNjhkMWQwNjhlMjAwNjhmMjIwNjkwMjQwNjkxMjYwNTkxMjgwNTkyMmEwNTkzMmMwNTk0MmUwNTk1MmYwNTk2MzEwNTk3MzMwNTk3MzUwNDk4MzcwNDk5MzgwNDlhM2EwNDlhM2MwNDliM2UwNDljM2YwNDljNDEwNDlkNDMwMzllNDQwMzllNDYwMzlmNDgwMzlmNDkwM2EwNGIwM2ExNGMwMmExNGUwMmEyNTAwMmEyNTEwMmEzNTMwMmEzNTUwMmE0NTYwMWE0NTgwMWE0NTkwMWE1NWIwMWE1NWMwMWE2NWUwMWE2NjAwMWE2NjEwMGE3NjMwMGE3NjQwMGE3NjYwMGE3NjcwMGE4NjkwMGE4NmEwMGE4NmMwMGE4NmUwMGE4NmYwMGE4NzEwMGE4NzIwMWE4NzQwMWE4NzUwMWE4NzcwMWE4NzgwMWE4N2EwMmE4N2IwMmE4N2QwM2E4N2UwM2E4ODAwNGE4ODEwNGE3ODMwNWE3ODQwNWE3ODYwNmE2ODcwN2E2ODgwOGE2OGEwOWE1OGIwYWE1OGQwYmE1OGUwY2E0OGYwZGE0OTEwZWEzOTIwZmEzOTQxMGEyOTUxMWExOTYxM2ExOTgxNGEwOTkxNTlmOWExNjlmOWMxNzllOWQxODlkOWUxOTlkYTAxYTljYTExYjliYTIxZDlhYTMxZTlhYTUxZjk5YTYyMDk4YTcyMTk3YTgyMjk2YWEyMzk1YWIyNDk0YWMyNjk0YWQyNzkzYWUyODkyYjAyOTkxYjEyYTkwYjIyYjhmYjMyYzhlYjQyZThkYjUyZjhjYjYzMDhiYjczMThhYjgzMjg5YmEzMzg4YmIzNDg4YmMzNTg3YmQzNzg2YmUzODg1YmYzOTg0YzAzYTgzYzEzYjgyYzIzYzgxYzMzZDgwYzQzZTdmYzU0MDdlYzY0MTdkYzc0MjdjYzg0MzdiYzk0NDdhY2E0NTdhY2I0Njc5Y2M0Nzc4Y2M0OTc3Y2Q0YTc2Y2U0Yjc1Y2Y0Yzc0ZDA0ZDczZDE0ZTcyZDI0ZjcxZDM1MTcxZDQ1MjcwZDU1MzZmZDU1NDZlZDY1NTZkZDc1NjZjZDg1NzZiZDk1ODZhZGE1YTZhZGE1YjY5ZGI1YzY4ZGM1ZDY3ZGQ1ZTY2ZGU1ZjY1ZGU2MTY0ZGY2MjYzZTA2MzYzZTE2NDYyZTI2NTYxZTI2NjYwZTM2ODVmZTQ2OTVlZTU2YTVkZTU2YjVkZTY2YzVjZTc2ZTViZTc2ZjVhZTg3MDU5ZTk3MTU4ZTk3MjU3ZWE3NDU3ZWI3NTU2ZWI3NjU1ZWM3NzU0ZWQ3OTUzZWQ3YTUyZWU3YjUxZWY3YzUxZWY3ZTUwZjA3ZjRmZjA4MDRlZjE4MTRkZjE4MzRjZjI4NDRiZjM4NTRiZjM4NzRhZjQ4ODQ5ZjQ4OTQ4ZjU4YjQ3ZjU4YzQ2ZjY4ZDQ1ZjY4ZjQ0Zjc5MDQ0Zjc5MTQzZjc5MzQyZjg5NDQxZjg5NTQwZjk5NzNmZjk5ODNlZjk5YTNlZmE5YjNkZmE5YzNjZmE5ZTNiZmI5ZjNhZmJhMTM5ZmJhMjM4ZmNhMzM4ZmNhNTM3ZmNhNjM2ZmNhODM1ZmNhOTM0ZmRhYjMzZmRhYzMzZmRhZTMyZmRhZjMxZmRiMTMwZmRiMjJmZmRiNDJmZmRiNTJlZmViNzJkZmViODJjZmViYTJjZmViYjJiZmViZDJhZmViZTJhZmVjMDI5ZmRjMjI5ZmRjMzI4ZmRjNTI3ZmRjNjI3ZmRjODI3ZmRjYTI2ZmRjYjI2ZmNjZDI1ZmNjZTI1ZmNkMDI1ZmNkMjI1ZmJkMzI0ZmJkNTI0ZmJkNzI0ZmFkODI0ZmFkYTI0ZjlkYzI0ZjlkZDI1ZjhkZjI1ZjhlMTI1ZjdlMjI1ZjdlNDI1ZjZlNjI2ZjZlODI2ZjVlOTI2ZjVlYjI3ZjRlZDI3ZjNlZTI3ZjNmMDI3ZjJmMjI3ZjFmNDI2ZjFmNTI1ZjBmNzI0ZjBmOTIxXCIpKSxnXz1NYXRoLmFicyx5Xz1NYXRoLmF0YW4yLF9fPU1hdGguY29zLGJfPU1hdGgubWF4LG1fPU1hdGgubWluLHhfPU1hdGguc2luLHdfPU1hdGguc3FydCxNXz0xZS0xMixBXz1NYXRoLlBJLFRfPUFfLzIsTl89MipBXztiZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5saW5lVG8odCxuKX19fTt2YXIgU189RWYobWYpO1NmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYVN0YXJ0KCl9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhRW5kKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuX2N1cnZlLnBvaW50KG4qTWF0aC5zaW4odCksbiotTWF0aC5jb3ModCkpfX07dmFyIEVfPUFycmF5LnByb3RvdHlwZS5zbGljZSxrXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuL0FfKTt0Lm1vdmVUbyhlLDApLHQuYXJjKDAsMCxlLDAsTl8pfX0sQ189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobi81KS8yO3QubW92ZVRvKC0zKmUsLWUpLHQubGluZVRvKC1lLC1lKSx0LmxpbmVUbygtZSwtMyplKSx0LmxpbmVUbyhlLC0zKmUpLHQubGluZVRvKGUsLWUpLHQubGluZVRvKDMqZSwtZSksdC5saW5lVG8oMyplLGUpLHQubGluZVRvKGUsZSksdC5saW5lVG8oZSwzKmUpLHQubGluZVRvKC1lLDMqZSksdC5saW5lVG8oLWUsZSksdC5saW5lVG8oLTMqZSxlKSx0LmNsb3NlUGF0aCgpfX0sUF89TWF0aC5zcXJ0KDEvMyksel89MipQXyxSXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuL3pfKSxyPWUqUF87dC5tb3ZlVG8oMCwtZSksdC5saW5lVG8ociwwKSx0LmxpbmVUbygwLGUpLHQubGluZVRvKC1yLDApLHQuY2xvc2VQYXRoKCl9fSxMXz1NYXRoLnNpbihBXy8xMCkvTWF0aC5zaW4oNypBXy8xMCksRF89TWF0aC5zaW4oTl8vMTApKkxfLFVfPS1NYXRoLmNvcyhOXy8xMCkqTF8scV89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQoLjg5MDgxMzA5MTUyOTI4NTIqbikscj1EXyplLGk9VV8qZTt0Lm1vdmVUbygwLC1lKSx0LmxpbmVUbyhyLGkpO2Zvcih2YXIgbz0xO288NTsrK28pe3ZhciBhPU5fKm8vNSx1PU1hdGguY29zKGEpLGY9TWF0aC5zaW4oYSk7dC5saW5lVG8oZiplLC11KmUpLHQubGluZVRvKHUqci1mKmksZipyK3UqaSl9dC5jbG9zZVBhdGgoKX19LE9fPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4pLHI9LWUvMjt0LnJlY3QocixyLGUsZSl9fSxZXz1NYXRoLnNxcnQoMyksQl89e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT0tTWF0aC5zcXJ0KG4vKDMqWV8pKTt0Lm1vdmVUbygwLDIqZSksdC5saW5lVG8oLVlfKmUsLWUpLHQubGluZVRvKFlfKmUsLWUpLHQuY2xvc2VQYXRoKCl9fSxGXz1NYXRoLnNxcnQoMykvMixJXz0xL01hdGguc3FydCgxMiksal89MyooSV8vMisxKSxIXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuL2pfKSxyPWUvMixpPWUqSV8sbz1yLGE9ZSpJXytlLHU9LW8sZj1hO3QubW92ZVRvKHIsaSksdC5saW5lVG8obyxhKSx0LmxpbmVUbyh1LGYpLHQubGluZVRvKC0uNSpyLUZfKmksRl8qcistLjUqaSksdC5saW5lVG8oLS41Km8tRl8qYSxGXypvKy0uNSphKSx0LmxpbmVUbygtLjUqdS1GXypmLEZfKnUrLS41KmYpLHQubGluZVRvKC0uNSpyK0ZfKmksLS41KmktRl8qciksdC5saW5lVG8oLS41Km8rRl8qYSwtLjUqYS1GXypvKSx0LmxpbmVUbygtLjUqdStGXypmLC0uNSpmLUZfKnUpLHQuY2xvc2VQYXRoKCl9fSxYXz1ba18sQ18sUl8sT18scV8sQl8sSF9dO0ZmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDM6QmYodGhpcyx0aGlzLl94MSx0aGlzLl95MSk7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5fY29udGV4dC5saW5lVG8oKDUqdGhpcy5feDArdGhpcy5feDEpLzYsKDUqdGhpcy5feTArdGhpcy5feTEpLzYpO2RlZmF1bHQ6QmYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bn19LElmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gyKzIqdGhpcy5feDMpLzMsKHRoaXMuX3kyKzIqdGhpcy5feTMpLzMpLHRoaXMuX2NvbnRleHQubGluZVRvKCh0aGlzLl94MysyKnRoaXMuX3gyKS8zLCh0aGlzLl95MysyKnRoaXMuX3kyKS8zKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KX19LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDI9dCx0aGlzLl95Mj1uO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gzPXQsdGhpcy5feTM9bjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94ND10LHRoaXMuX3k0PW4sdGhpcy5fY29udGV4dC5tb3ZlVG8oKHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNiwodGhpcy5feTArNCp0aGlzLl95MStuKS82KTticmVhaztkZWZhdWx0OkJmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW59fSxqZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Mzt2YXIgZT0odGhpcy5feDArNCp0aGlzLl94MSt0KS82LHI9KHRoaXMuX3kwKzQqdGhpcy5feTErbikvNjt0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKGUscik6dGhpcy5fY29udGV4dC5tb3ZlVG8oZSxyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OkJmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPW59fSxIZi5wcm90b3R5cGU9e2xpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3g9W10sdGhpcy5feT1bXSx0aGlzLl9iYXNpcy5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3gsbj10aGlzLl95LGU9dC5sZW5ndGgtMTtpZihlPjApZm9yKHZhciByLGk9dFswXSxvPW5bMF0sYT10W2VdLWksdT1uW2VdLW8sZj0tMTsrK2Y8PWU7KXI9Zi9lLHRoaXMuX2Jhc2lzLnBvaW50KHRoaXMuX2JldGEqdFtmXSsoMS10aGlzLl9iZXRhKSooaStyKmEpLHRoaXMuX2JldGEqbltmXSsoMS10aGlzLl9iZXRhKSoobytyKnUpKTt0aGlzLl94PXRoaXMuX3k9bnVsbCx0aGlzLl9iYXNpcy5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5feC5wdXNoKCt0KSx0aGlzLl95LnB1c2goK24pfX07dmFyIEdfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gMT09PW4/bmV3IEZmKHQpOm5ldyBIZih0LG4pfXJldHVybiBlLmJldGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguODUpO0dmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzpYZih0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDE9dCx0aGlzLl95MT1uO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6WGYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBWXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBHZih0LG4pfXJldHVybiBlLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSgwKTtWZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3g1PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PXRoaXMuX3k1PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLnBvaW50KHRoaXMuX3g0LHRoaXMuX3k0KSx0aGlzLnBvaW50KHRoaXMuX3g1LHRoaXMuX3k1KX19LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1uO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9bik7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1uO2JyZWFrO2RlZmF1bHQ6WGYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciAkXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG5ldyBWZih0LG4pfXJldHVybiBlLnRlbnNpb249ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSgwKTskZi5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpYZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFdfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3ICRmKHQsbil9cmV0dXJuIGUudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KDApO1pmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpO2JyZWFrO2Nhc2UgMzp0aGlzLnBvaW50KHRoaXMuX3gyLHRoaXMuX3kyKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO2RlZmF1bHQ6V2YodGhpcyx0LG4pfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgWl89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuP25ldyBaZih0LG4pOm5ldyBHZih0LDApfXJldHVybiBlLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjUpO1FmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1uO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9bik7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1uO2JyZWFrO2RlZmF1bHQ6V2YodGhpcyx0LG4pfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgUV89ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuP25ldyBRZih0LG4pOm5ldyBWZih0LDApfXJldHVybiBlLmFscGhhPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oLjUpO0pmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9sMDFfYT10aGlzLl9sMTJfYT10aGlzLl9sMjNfYT10aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYT10aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpXZih0aGlzLHQsbil9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBKXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG4/bmV3IEpmKHQsbik6bmV3ICRmKHQsMCl9cmV0dXJuIGUuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguNSk7S2YucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LHBvaW50OmZ1bmN0aW9uKHQsbil7dD0rdCxuPStuLHRoaXMuX3BvaW50P3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6KHRoaXMuX3BvaW50PTEsdGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKSl9fSxpYy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT10aGlzLl90MD1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gxLHRoaXMuX3kxKTticmVhaztjYXNlIDM6cmModGhpcyx0aGlzLl90MCxlYyh0aGlzLHRoaXMuX3QwKSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3ZhciBlPU5hTjtpZih0PSt0LG49K24sdCE9PXRoaXMuX3gxfHxuIT09dGhpcy5feTEpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMscmModGhpcyxlYyh0aGlzLGU9bmModGhpcyx0LG4pKSxlKTticmVhaztkZWZhdWx0OnJjKHRoaXMsdGhpcy5fdDAsZT1uYyh0aGlzLHQsbikpfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bix0aGlzLl90MD1lfX19LChvYy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShpYy5wcm90b3R5cGUpKS5wb2ludD1mdW5jdGlvbih0LG4pe2ljLnByb3RvdHlwZS5wb2ludC5jYWxsKHRoaXMsbix0KX0sYWMucHJvdG90eXBlPXttb3ZlVG86ZnVuY3Rpb24odCxuKXt0aGlzLl9jb250ZXh0Lm1vdmVUbyhuLHQpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXt0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpfSxsaW5lVG86ZnVuY3Rpb24odCxuKXt0aGlzLl9jb250ZXh0LmxpbmVUbyhuLHQpfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsbixlLHIsaSxvKXt0aGlzLl9jb250ZXh0LmJlemllckN1cnZlVG8obix0LHIsZSxvLGkpfX0sdWMucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxuPXRoaXMuX3ksZT10Lmxlbmd0aDtpZihlKWlmKHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odFswXSxuWzBdKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0WzBdLG5bMF0pLDI9PT1lKXRoaXMuX2NvbnRleHQubGluZVRvKHRbMV0sblsxXSk7ZWxzZSBmb3IodmFyIHI9ZmModCksaT1mYyhuKSxvPTAsYT0xO2E8ZTsrK28sKythKXRoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyWzBdW29dLGlbMF1bb10sclsxXVtvXSxpWzFdW29dLHRbYV0sblthXSk7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09ZSkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUsdGhpcy5feD10aGlzLl95PW51bGx9LHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5feC5wdXNoKCt0KSx0aGlzLl95LnB1c2goK24pfX0sY2MucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD10aGlzLl95PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MDx0aGlzLl90JiZ0aGlzLl90PDEmJjI9PT10aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCx0aGlzLl95KSwodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT49MCYmKHRoaXMuX3Q9MS10aGlzLl90LHRoaXMuX2xpbmU9MS10aGlzLl9saW5lKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OmlmKHRoaXMuX3Q8PTApdGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feCxuKSx0aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pO2Vsc2V7dmFyIGU9dGhpcy5feCooMS10aGlzLl90KSt0KnRoaXMuX3Q7dGhpcy5fY29udGV4dC5saW5lVG8oZSx0aGlzLl95KSx0aGlzLl9jb250ZXh0LmxpbmVUbyhlLG4pfX10aGlzLl94PXQsdGhpcy5feT1ufX0sX2MucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpfYyxpbnNlcnQ6ZnVuY3Rpb24odCxuKXt2YXIgZSxyLGk7aWYodCl7aWYobi5QPXQsbi5OPXQuTix0Lk4mJih0Lk4uUD1uKSx0Lk49bix0LlIpe2Zvcih0PXQuUjt0Lkw7KXQ9dC5MO3QuTD1ufWVsc2UgdC5SPW47ZT10fWVsc2UgdGhpcy5fPyh0PXdjKHRoaXMuXyksbi5QPW51bGwsbi5OPXQsdC5QPXQuTD1uLGU9dCk6KG4uUD1uLk49bnVsbCx0aGlzLl89bixlPW51bGwpO2ZvcihuLkw9bi5SPW51bGwsbi5VPWUsbi5DPSEwLHQ9bjtlJiZlLkM7KWU9PT0ocj1lLlUpLkw/KGk9ci5SKSYmaS5DPyhlLkM9aS5DPSExLHIuQz0hMCx0PXIpOih0PT09ZS5SJiYobWModGhpcyxlKSxlPSh0PWUpLlUpLGUuQz0hMSxyLkM9ITAseGModGhpcyxyKSk6KGk9ci5MKSYmaS5DPyhlLkM9aS5DPSExLHIuQz0hMCx0PXIpOih0PT09ZS5MJiYoeGModGhpcyxlKSxlPSh0PWUpLlUpLGUuQz0hMSxyLkM9ITAsbWModGhpcyxyKSksZT10LlU7dGhpcy5fLkM9ITF9LHJlbW92ZTpmdW5jdGlvbih0KXt0Lk4mJih0Lk4uUD10LlApLHQuUCYmKHQuUC5OPXQuTiksdC5OPXQuUD1udWxsO3ZhciBuLGUscixpPXQuVSxvPXQuTCxhPXQuUjtpZihlPW8/YT93YyhhKTpvOmEsaT9pLkw9PT10P2kuTD1lOmkuUj1lOnRoaXMuXz1lLG8mJmE/KHI9ZS5DLGUuQz10LkMsZS5MPW8sby5VPWUsZSE9PWE/KGk9ZS5VLGUuVT10LlUsdD1lLlIsaS5MPXQsZS5SPWEsYS5VPWUpOihlLlU9aSxpPWUsdD1lLlIpKToocj10LkMsdD1lKSx0JiYodC5VPWkpLCFyKWlmKHQmJnQuQyl0LkM9ITE7ZWxzZXtkb3tpZih0PT09dGhpcy5fKWJyZWFrO2lmKHQ9PT1pLkwpe2lmKChuPWkuUikuQyYmKG4uQz0hMSxpLkM9ITAsbWModGhpcyxpKSxuPWkuUiksbi5MJiZuLkwuQ3x8bi5SJiZuLlIuQyl7bi5SJiZuLlIuQ3x8KG4uTC5DPSExLG4uQz0hMCx4Yyh0aGlzLG4pLG49aS5SKSxuLkM9aS5DLGkuQz1uLlIuQz0hMSxtYyh0aGlzLGkpLHQ9dGhpcy5fO2JyZWFrfX1lbHNlIGlmKChuPWkuTCkuQyYmKG4uQz0hMSxpLkM9ITAseGModGhpcyxpKSxuPWkuTCksbi5MJiZuLkwuQ3x8bi5SJiZuLlIuQyl7bi5MJiZuLkwuQ3x8KG4uUi5DPSExLG4uQz0hMCxtYyh0aGlzLG4pLG49aS5MKSxuLkM9aS5DLGkuQz1uLkwuQz0hMSx4Yyh0aGlzLGkpLHQ9dGhpcy5fO2JyZWFrfW4uQz0hMCx0PWksaT1pLlV9d2hpbGUoIXQuQyk7dCYmKHQuQz0hMSl9fX07dmFyIEtfLHRiLG5iLGViLHJiLGliPVtdLG9iPVtdLGFiPTFlLTYsdWI9MWUtMTI7QmMucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpCYyxwb2x5Z29uczpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMubWFwKGZ1bmN0aW9uKG4pe3ZhciBlPW4uaGFsZmVkZ2VzLm1hcChmdW5jdGlvbihlKXtyZXR1cm4ga2Mobix0W2VdKX0pO3JldHVybiBlLmRhdGE9bi5zaXRlLmRhdGEsZX0pfSx0cmlhbmdsZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXSxuPXRoaXMuZWRnZXM7cmV0dXJuIHRoaXMuY2VsbHMuZm9yRWFjaChmdW5jdGlvbihlLHIpe2lmKG89KGk9ZS5oYWxmZWRnZXMpLmxlbmd0aClmb3IodmFyIGksbyxhLHU9ZS5zaXRlLGY9LTEsYz1uW2lbby0xXV0scz1jLmxlZnQ9PT11P2MucmlnaHQ6Yy5sZWZ0OysrZjxvOylhPXMscz0oYz1uW2lbZl1dKS5sZWZ0PT09dT9jLnJpZ2h0OmMubGVmdCxhJiZzJiZyPGEuaW5kZXgmJnI8cy5pbmRleCYmT2ModSxhLHMpPDAmJnQucHVzaChbdS5kYXRhLGEuZGF0YSxzLmRhdGFdKX0pLHR9LGxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJpZ2h0fSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybntzb3VyY2U6dC5sZWZ0LmRhdGEsdGFyZ2V0OnQucmlnaHQuZGF0YX19KX0sZmluZDpmdW5jdGlvbih0LG4sZSl7Zm9yKHZhciByLGksbz10aGlzLGE9by5fZm91bmR8fDAsdT1vLmNlbGxzLmxlbmd0aDshKGk9by5jZWxsc1thXSk7KWlmKCsrYT49dSlyZXR1cm4gbnVsbDt2YXIgZj10LWkuc2l0ZVswXSxjPW4taS5zaXRlWzFdLHM9ZipmK2MqYztkb3tpPW8uY2VsbHNbcj1hXSxhPW51bGwsaS5oYWxmZWRnZXMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgcj1vLmVkZ2VzW2VdLHU9ci5sZWZ0O2lmKHUhPT1pLnNpdGUmJnV8fCh1PXIucmlnaHQpKXt2YXIgZj10LXVbMF0sYz1uLXVbMV0sbD1mKmYrYypjO2w8cyYmKHM9bCxhPXUuaW5kZXgpfX0pfXdoaWxlKG51bGwhPT1hKTtyZXR1cm4gby5fZm91bmQ9cixudWxsPT1lfHxzPD1lKmU/aS5zaXRlOm51bGx9fSxJYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkljLHNjYWxlOmZ1bmN0aW9uKHQpe3JldHVybiAxPT09dD90aGlzOm5ldyBJYyh0aGlzLmsqdCx0aGlzLngsdGhpcy55KX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIDA9PT10JjA9PT1uP3RoaXM6bmV3IEljKHRoaXMuayx0aGlzLngrdGhpcy5rKnQsdGhpcy55K3RoaXMuaypuKX0sYXBwbHk6ZnVuY3Rpb24odCl7cmV0dXJuW3RbMF0qdGhpcy5rK3RoaXMueCx0WzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueH0sYXBwbHlZOmZ1bmN0aW9uKHQpe3JldHVybiB0KnRoaXMuayt0aGlzLnl9LGludmVydDpmdW5jdGlvbih0KXtyZXR1cm5bKHRbMF0tdGhpcy54KS90aGlzLmssKHRbMV0tdGhpcy55KS90aGlzLmtdfSxpbnZlcnRYOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKHQpe3JldHVybih0LXRoaXMueSkvdGhpcy5rfSxyZXNjYWxlWDpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb3B5KCkuZG9tYWluKHQucmFuZ2UoKS5tYXAodGhpcy5pbnZlcnRYLHRoaXMpLm1hcCh0LmludmVydCx0KSl9LHJlc2NhbGVZOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFksdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm5cInRyYW5zbGF0ZShcIit0aGlzLngrXCIsXCIrdGhpcy55K1wiKSBzY2FsZShcIit0aGlzLmsrXCIpXCJ9fTt2YXIgZmI9bmV3IEljKDEsMCwwKTtqYy5wcm90b3R5cGU9SWMucHJvdG90eXBlLHQudmVyc2lvbj1cIjUuNS4wXCIsdC5iaXNlY3Q9S2MsdC5iaXNlY3RSaWdodD1LYyx0LmJpc2VjdExlZnQ9dHMsdC5hc2NlbmRpbmc9bix0LmJpc2VjdG9yPWUsdC5jcm9zcz1mdW5jdGlvbih0LG4sZSl7dmFyIGksbyxhLHUsZj10Lmxlbmd0aCxjPW4ubGVuZ3RoLHM9bmV3IEFycmF5KGYqYyk7Zm9yKG51bGw9PWUmJihlPXIpLGk9YT0wO2k8ZjsrK2kpZm9yKHU9dFtpXSxvPTA7bzxjOysrbywrK2Epc1thXT1lKHUsbltvXSk7cmV0dXJuIHN9LHQuZGVzY2VuZGluZz1mdW5jdGlvbih0LG4pe3JldHVybiBuPHQ/LTE6bj50PzE6bj49dD8wOk5hTn0sdC5kZXZpYXRpb249YSx0LmV4dGVudD11LHQuaGlzdG9ncmFtPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgaSxvLGE9dC5sZW5ndGgsdT1uZXcgQXJyYXkoYSk7Zm9yKGk9MDtpPGE7KytpKXVbaV09bih0W2ldLGksdCk7dmFyIGY9ZSh1KSxjPWZbMF0sbD1mWzFdLGg9cih1LGMsbCk7QXJyYXkuaXNBcnJheShoKXx8KGg9ZChjLGwsaCksaD1zKE1hdGguY2VpbChjL2gpKmgsTWF0aC5mbG9vcihsL2gpKmgsaCkpO2Zvcih2YXIgcD1oLmxlbmd0aDtoWzBdPD1jOyloLnNoaWZ0KCksLS1wO2Zvcig7aFtwLTFdPmw7KWgucG9wKCksLS1wO3ZhciB2LGc9bmV3IEFycmF5KHArMSk7Zm9yKGk9MDtpPD1wOysraSkodj1nW2ldPVtdKS54MD1pPjA/aFtpLTFdOmMsdi54MT1pPHA/aFtpXTpsO2ZvcihpPTA7aTxhOysraSljPD0obz11W2ldKSYmbzw9bCYmZ1tLYyhoLG8sMCxwKV0ucHVzaCh0W2ldKTtyZXR1cm4gZ312YXIgbj1jLGU9dSxyPXA7cmV0dXJuIHQudmFsdWU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmYoZSksdCk6bn0sdC5kb21haW49ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmYoW25bMF0sblsxXV0pLHQpOmV9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9mKGVzLmNhbGwobikpOmYobiksdCk6cn0sdH0sdC50aHJlc2hvbGRGcmVlZG1hbkRpYWNvbmlzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD1ycy5jYWxsKHQsaSkuc29ydChuKSxNYXRoLmNlaWwoKHItZSkvKDIqKHYodCwuNzUpLXYodCwuMjUpKSpNYXRoLnBvdyh0Lmxlbmd0aCwtMS8zKSkpfSx0LnRocmVzaG9sZFNjb3R0PWZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gTWF0aC5jZWlsKChlLW4pLygzLjUqYSh0KSpNYXRoLnBvdyh0Lmxlbmd0aCwtMS8zKSkpfSx0LnRocmVzaG9sZFN0dXJnZXM9cCx0Lm1heD1nLHQubWVhbj1mdW5jdGlvbih0LG4pe3ZhciBlLHI9dC5sZW5ndGgsbz1yLGE9LTEsdT0wO2lmKG51bGw9PW4pZm9yKDsrK2E8cjspaXNOYU4oZT1pKHRbYV0pKT8tLW86dSs9ZTtlbHNlIGZvcig7KythPHI7KWlzTmFOKGU9aShuKHRbYV0sYSx0KSkpPy0tbzp1Kz1lO2lmKG8pcmV0dXJuIHUvb30sdC5tZWRpYW49ZnVuY3Rpb24odCxlKXt2YXIgcixvPXQubGVuZ3RoLGE9LTEsdT1bXTtpZihudWxsPT1lKWZvcig7KythPG87KWlzTmFOKHI9aSh0W2FdKSl8fHUucHVzaChyKTtlbHNlIGZvcig7KythPG87KWlzTmFOKHI9aShlKHRbYV0sYSx0KSkpfHx1LnB1c2gocik7cmV0dXJuIHYodS5zb3J0KG4pLC41KX0sdC5tZXJnZT15LHQubWluPV8sdC5wYWlycz1mdW5jdGlvbih0LG4pe251bGw9PW4mJihuPXIpO2Zvcih2YXIgZT0wLGk9dC5sZW5ndGgtMSxvPXRbMF0sYT1uZXcgQXJyYXkoaTwwPzA6aSk7ZTxpOylhW2VdPW4obyxvPXRbKytlXSk7cmV0dXJuIGF9LHQucGVybXV0ZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uLmxlbmd0aCxyPW5ldyBBcnJheShlKTtlLS07KXJbZV09dFtuW2VdXTtyZXR1cm4gcn0sdC5xdWFudGlsZT12LHQucmFuZ2U9cyx0LnNjYW49ZnVuY3Rpb24odCxlKXtpZihyPXQubGVuZ3RoKXt2YXIgcixpLG89MCxhPTAsdT10W2FdO2ZvcihudWxsPT1lJiYoZT1uKTsrK288cjspKGUoaT10W29dLHUpPDB8fDAhPT1lKHUsdSkpJiYodT1pLGE9byk7cmV0dXJuIDA9PT1lKHUsdSk/YTp2b2lkIDB9fSx0LnNodWZmbGU9ZnVuY3Rpb24odCxuLGUpe2Zvcih2YXIgcixpLG89KG51bGw9PWU/dC5sZW5ndGg6ZSktKG49bnVsbD09bj8wOituKTtvOylpPU1hdGgucmFuZG9tKCkqby0tfDAscj10W28rbl0sdFtvK25dPXRbaStuXSx0W2krbl09cjtyZXR1cm4gdH0sdC5zdW09ZnVuY3Rpb24odCxuKXt2YXIgZSxyPXQubGVuZ3RoLGk9LTEsbz0wO2lmKG51bGw9PW4pZm9yKDsrK2k8cjspKGU9K3RbaV0pJiYobys9ZSk7ZWxzZSBmb3IoOysraTxyOykoZT0rbih0W2ldLGksdCkpJiYobys9ZSk7cmV0dXJuIG99LHQudGlja3M9bCx0LnRpY2tJbmNyZW1lbnQ9aCx0LnRpY2tTdGVwPWQsdC50cmFuc3Bvc2U9Yix0LnZhcmlhbmNlPW8sdC56aXA9ZnVuY3Rpb24oKXtyZXR1cm4gYihhcmd1bWVudHMpfSx0LmF4aXNUb3A9ZnVuY3Rpb24odCl7cmV0dXJuIFQoZnMsdCl9LHQuYXhpc1JpZ2h0PWZ1bmN0aW9uKHQpe3JldHVybiBUKGNzLHQpfSx0LmF4aXNCb3R0b209ZnVuY3Rpb24odCl7cmV0dXJuIFQoc3MsdCl9LHQuYXhpc0xlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIFQobHMsdCl9LHQuYnJ1c2g9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoYmgpfSx0LmJydXNoWD1mdW5jdGlvbigpe3JldHVybiBlZSh5aCl9LHQuYnJ1c2hZPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKF9oKX0sdC5icnVzaFNlbGVjdGlvbj1mdW5jdGlvbih0KXt2YXIgbj10Ll9fYnJ1c2g7cmV0dXJuIG4/bi5kaW0ub3V0cHV0KG4uc2VsZWN0aW9uKTpudWxsfSx0LmNob3JkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhLHUsZixjLGwsaD10Lmxlbmd0aCxkPVtdLHA9cyhoKSx2PVtdLGc9W10seT1nLmdyb3Vwcz1uZXcgQXJyYXkoaCksXz1uZXcgQXJyYXkoaCpoKTtmb3Iobz0wLGM9LTE7KytjPGg7KXtmb3IoYT0wLGw9LTE7KytsPGg7KWErPXRbY11bbF07ZC5wdXNoKGEpLHYucHVzaChzKGgpKSxvKz1hfWZvcihlJiZwLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gZShkW3RdLGRbbl0pfSksciYmdi5mb3JFYWNoKGZ1bmN0aW9uKG4sZSl7bi5zb3J0KGZ1bmN0aW9uKG4saSl7cmV0dXJuIHIodFtlXVtuXSx0W2VdW2ldKX0pfSksZj0obz1DaCgwLGtoLW4qaCkvbyk/bjpraC9oLGE9MCxjPS0xOysrYzxoOyl7Zm9yKHU9YSxsPS0xOysrbDxoOyl7dmFyIGI9cFtjXSxtPXZbYl1bbF0seD10W2JdW21dLHc9YSxNPWErPXgqbztfW20qaCtiXT17aW5kZXg6YixzdWJpbmRleDptLHN0YXJ0QW5nbGU6dyxlbmRBbmdsZTpNLHZhbHVlOnh9fXlbYl09e2luZGV4OmIsc3RhcnRBbmdsZTp1LGVuZEFuZ2xlOmEsdmFsdWU6ZFtiXX0sYSs9Zn1mb3IoYz0tMTsrK2M8aDspZm9yKGw9Yy0xOysrbDxoOyl7dmFyIEE9X1tsKmgrY10sVD1fW2MqaCtsXTsoQS52YWx1ZXx8VC52YWx1ZSkmJmcucHVzaChBLnZhbHVlPFQudmFsdWU/e3NvdXJjZTpULHRhcmdldDpBfTp7c291cmNlOkEsdGFyZ2V0OlR9KX1yZXR1cm4gaT9nLnNvcnQoaSk6Z312YXIgbj0wLGU9bnVsbCxyPW51bGwsaT1udWxsO3JldHVybiB0LnBhZEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPUNoKDAsZSksdCk6bn0sdC5zb3J0R3JvdXBzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4sdCk6ZX0sdC5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW4sdCk6cn0sdC5zb3J0Q2hvcmRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT1uP2k9bnVsbDooaT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXtyZXR1cm4gdChuLnNvdXJjZS52YWx1ZStuLnRhcmdldC52YWx1ZSxlLnNvdXJjZS52YWx1ZStlLnRhcmdldC52YWx1ZSl9fShuKSkuXz1uLHQpOmkmJmkuX30sdH0sdC5yaWJib249ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQsdT1QaC5jYWxsKGFyZ3VtZW50cyksZj1uLmFwcGx5KHRoaXMsdSksYz1lLmFwcGx5KHRoaXMsdSkscz0rci5hcHBseSh0aGlzLCh1WzBdPWYsdSkpLGw9aS5hcHBseSh0aGlzLHUpLUVoLGg9by5hcHBseSh0aGlzLHUpLUVoLGQ9cypUaChsKSxwPXMqTmgobCksdj0rci5hcHBseSh0aGlzLCh1WzBdPWMsdSkpLGc9aS5hcHBseSh0aGlzLHUpLUVoLHk9by5hcHBseSh0aGlzLHUpLUVoO2lmKGF8fChhPXQ9b2UoKSksYS5tb3ZlVG8oZCxwKSxhLmFyYygwLDAscyxsLGgpLGw9PT1nJiZoPT09eXx8KGEucXVhZHJhdGljQ3VydmVUbygwLDAsdipUaChnKSx2Kk5oKGcpKSxhLmFyYygwLDAsdixnLHkpKSxhLnF1YWRyYXRpY0N1cnZlVG8oMCwwLGQscCksYS5jbG9zZVBhdGgoKSx0KXJldHVybiBhPW51bGwsdCtcIlwifHxudWxsfXZhciBuPWFlLGU9dWUscj1mZSxpPWNlLG89c2UsYT1udWxsO3JldHVybiB0LnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cmUoK24pLHQpOnJ9LHQuc3RhcnRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cmUoK24pLHQpOml9LHQuZW5kQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnJlKCtuKSx0KTpvfSx0LnNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1lLHQpOm59LHQudGFyZ2V0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4sdCk6ZX0sdC5jb250ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PW4/bnVsbDpuLHQpOmF9LHR9LHQubmVzdD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobixpLGEsdSl7aWYoaT49by5sZW5ndGgpcmV0dXJuIG51bGwhPWUmJm4uc29ydChlKSxudWxsIT1yP3Iobik6bjtmb3IodmFyIGYsYyxzLGw9LTEsaD1uLmxlbmd0aCxkPW9baSsrXSxwPWhlKCksdj1hKCk7KytsPGg7KShzPXAuZ2V0KGY9ZChjPW5bbF0pK1wiXCIpKT9zLnB1c2goYyk6cC5zZXQoZixbY10pO3JldHVybiBwLmVhY2goZnVuY3Rpb24obixlKXt1KHYsZSx0KG4saSxhLHUpKX0pLHZ9ZnVuY3Rpb24gbih0LGUpe2lmKCsrZT5vLmxlbmd0aClyZXR1cm4gdDt2YXIgaSx1PWFbZS0xXTtyZXR1cm4gbnVsbCE9ciYmZT49by5sZW5ndGg/aT10LmVudHJpZXMoKTooaT1bXSx0LmVhY2goZnVuY3Rpb24odCxyKXtpLnB1c2goe2tleTpyLHZhbHVlczpuKHQsZSl9KX0pKSxudWxsIT11P2kuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiB1KHQua2V5LG4ua2V5KX0pOml9dmFyIGUscixpLG89W10sYT1bXTtyZXR1cm4gaT17b2JqZWN0OmZ1bmN0aW9uKG4pe3JldHVybiB0KG4sMCxkZSxwZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdChuLDAsdmUsZ2UpfSxlbnRyaWVzOmZ1bmN0aW9uKGUpe3JldHVybiBuKHQoZSwwLHZlLGdlKSwwKX0sa2V5OmZ1bmN0aW9uKHQpe3JldHVybiBvLnB1c2godCksaX0sc29ydEtleXM6ZnVuY3Rpb24odCl7cmV0dXJuIGFbby5sZW5ndGgtMV09dCxpfSxzb3J0VmFsdWVzOmZ1bmN0aW9uKHQpe3JldHVybiBlPXQsaX0scm9sbHVwOmZ1bmN0aW9uKHQpe3JldHVybiByPXQsaX19fSx0LnNldD1fZSx0Lm1hcD1oZSx0LmtleXM9ZnVuY3Rpb24odCl7dmFyIG49W107Zm9yKHZhciBlIGluIHQpbi5wdXNoKGUpO3JldHVybiBufSx0LnZhbHVlcz1mdW5jdGlvbih0KXt2YXIgbj1bXTtmb3IodmFyIGUgaW4gdCluLnB1c2godFtlXSk7cmV0dXJuIG59LHQuZW50cmllcz1mdW5jdGlvbih0KXt2YXIgbj1bXTtmb3IodmFyIGUgaW4gdCluLnB1c2goe2tleTplLHZhbHVlOnRbZV19KTtyZXR1cm4gbn0sdC5jb2xvcj1rdCx0LnJnYj1SdCx0LmhzbD1xdCx0LmxhYj1GdCx0LmhjbD0kdCx0LmxjaD1mdW5jdGlvbih0LG4sZSxyKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/VnQodCk6bmV3IFd0KGUsbix0LG51bGw9PXI/MTpyKX0sdC5ncmF5PWZ1bmN0aW9uKHQsbil7cmV0dXJuIG5ldyBJdCh0LDAsMCxudWxsPT1uPzE6bil9LHQuY3ViZWhlbGl4PVp0LHQuY29udG91cnM9TWUsdC5jb250b3VyRGVuc2l0eT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9bmV3IEZsb2F0MzJBcnJheSh2KnkpLHI9bmV3IEZsb2F0MzJBcnJheSh2KnkpO3QuZm9yRWFjaChmdW5jdGlvbih0LG4scil7dmFyIGk9YSh0LG4scikrcD4+aCxvPXUodCxuLHIpK3A+Pmg7aT49MCYmaTx2JiZvPj0wJiZvPHkmJisrZVtpK28qdl19KSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKTt2YXIgaT1fKGUpO2lmKCFBcnJheS5pc0FycmF5KGkpKXt2YXIgbz1nKGUpO2k9ZCgwLG8saSksKGk9cygwLE1hdGguZmxvb3Ioby9pKSppLGkpKS5zaGlmdCgpfXJldHVybiBNZSgpLnRocmVzaG9sZHMoaSkuc2l6ZShbdix5XSkoZSkubWFwKG4pfWZ1bmN0aW9uIG4odCl7cmV0dXJuIHQudmFsdWUqPU1hdGgucG93KDIsLTIqaCksdC5jb29yZGluYXRlcy5mb3JFYWNoKGUpLHR9ZnVuY3Rpb24gZSh0KXt0LmZvckVhY2gocil9ZnVuY3Rpb24gcih0KXt0LmZvckVhY2goaSl9ZnVuY3Rpb24gaSh0KXt0WzBdPXRbMF0qTWF0aC5wb3coMixoKS1wLHRbMV09dFsxXSpNYXRoLnBvdygyLGgpLXB9ZnVuY3Rpb24gbygpe3JldHVybiBwPTMqbCx2PWYrMipwPj5oLHk9YysyKnA+PmgsdH12YXIgYT1OZSx1PVNlLGY9OTYwLGM9NTAwLGw9MjAsaD0yLHA9MypsLHY9ZisyKnA+PmgseT1jKzIqcD4+aCxfPW1lKDIwKTtyZXR1cm4gdC54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjptZSgrbiksdCk6YX0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjptZSgrbiksdCk6dX0sdC5zaXplPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybltmLGNdO3ZhciBuPU1hdGguY2VpbCh0WzBdKSxlPU1hdGguY2VpbCh0WzFdKTtpZighKG4+PTB8fG4+PTApKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgc2l6ZVwiKTtyZXR1cm4gZj1uLGM9ZSxvKCl9LHQuY2VsbFNpemU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIDE8PGg7aWYoISgodD0rdCk+PTEpKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgY2VsbCBzaXplXCIpO3JldHVybiBoPU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjIpLG8oKX0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP21lKFVoLmNhbGwobikpOm1lKG4pLHQpOl99LHQuYmFuZHdpZHRoPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBNYXRoLnNxcnQobCoobCsxKSk7aWYoISgodD0rdCk+PTApKXRocm93IG5ldyBFcnJvcihcImludmFsaWQgYmFuZHdpZHRoXCIpO3JldHVybiBsPU1hdGgucm91bmQoKE1hdGguc3FydCg0KnQqdCsxKS0xKS8yKSxvKCl9LHR9LHQuZGlzcGF0Y2g9Tix0LmRyYWc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQpe3Qub24oXCJtb3VzZWRvd24uZHJhZ1wiLGUpLmZpbHRlcihnKS5vbihcInRvdWNoc3RhcnQuZHJhZ1wiLG8pLm9uKFwidG91Y2htb3ZlLmRyYWdcIixhKS5vbihcInRvdWNoZW5kLmRyYWcgdG91Y2hjYW5jZWwuZHJhZ1wiLHUpLnN0eWxlKFwidG91Y2gtYWN0aW9uXCIsXCJub25lXCIpLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsXCJyZ2JhKDAsMCwwLDApXCIpfWZ1bmN0aW9uIGUoKXtpZighaCYmZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuPWYoXCJtb3VzZVwiLHAuYXBwbHkodGhpcyxhcmd1bWVudHMpLHB0LHRoaXMsYXJndW1lbnRzKTtuJiYoY3QodC5ldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS5kcmFnXCIsciwhMCkub24oXCJtb3VzZXVwLmRyYWdcIixpLCEwKSxfdCh0LmV2ZW50LnZpZXcpLGd0KCksbD0hMSxjPXQuZXZlbnQuY2xpZW50WCxzPXQuZXZlbnQuY2xpZW50WSxuKFwic3RhcnRcIikpfX1mdW5jdGlvbiByKCl7aWYoeXQoKSwhbCl7dmFyIG49dC5ldmVudC5jbGllbnRYLWMsZT10LmV2ZW50LmNsaWVudFktcztsPW4qbitlKmU+bX15Lm1vdXNlKFwiZHJhZ1wiKX1mdW5jdGlvbiBpKCl7Y3QodC5ldmVudC52aWV3KS5vbihcIm1vdXNlbW92ZS5kcmFnIG1vdXNldXAuZHJhZ1wiLG51bGwpLGJ0KHQuZXZlbnQudmlldyxsKSx5dCgpLHkubW91c2UoXCJlbmRcIil9ZnVuY3Rpb24gbygpe2lmKGQuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXAuYXBwbHkodGhpcyxhcmd1bWVudHMpLG89ci5sZW5ndGg7Zm9yKG49MDtuPG87KytuKShlPWYocltuXS5pZGVudGlmaWVyLGksdnQsdGhpcyxhcmd1bWVudHMpKSYmKGd0KCksZShcInN0YXJ0XCIpKX19ZnVuY3Rpb24gYSgpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9ci5sZW5ndGg7Zm9yKG49MDtuPGk7KytuKShlPXlbcltuXS5pZGVudGlmaWVyXSkmJih5dCgpLGUoXCJkcmFnXCIpKX1mdW5jdGlvbiB1KCl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1yLmxlbmd0aDtmb3IoaCYmY2xlYXJUaW1lb3V0KGgpLGg9c2V0VGltZW91dChmdW5jdGlvbigpe2g9bnVsbH0sNTAwKSxuPTA7bjxpOysrbikoZT15W3Jbbl0uaWRlbnRpZmllcl0pJiYoZ3QoKSxlKFwiZW5kXCIpKX1mdW5jdGlvbiBmKGUscixpLG8sYSl7dmFyIHUsZixjLHM9aShyLGUpLGw9Xy5jb3B5KCk7aWYob3QobmV3IHh0KG4sXCJiZWZvcmVzdGFydFwiLHUsZSxiLHNbMF0sc1sxXSwwLDAsbCksZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9KHQuZXZlbnQuc3ViamVjdD11PXYuYXBwbHkobyxhKSkmJihmPXUueC1zWzBdfHwwLGM9dS55LXNbMV18fDAsITApfSkpcmV0dXJuIGZ1bmN0aW9uIHQoaCl7dmFyIGQscD1zO3N3aXRjaChoKXtjYXNlXCJzdGFydFwiOnlbZV09dCxkPWIrKzticmVhaztjYXNlXCJlbmRcIjpkZWxldGUgeVtlXSwtLWI7Y2FzZVwiZHJhZ1wiOnM9aShyLGUpLGQ9Yn1vdChuZXcgeHQobixoLHUsZSxkLHNbMF0rZixzWzFdK2Msc1swXS1wWzBdLHNbMV0tcFsxXSxsKSxsLmFwcGx5LGwsW2gsbyxhXSl9fXZhciBjLHMsbCxoLGQ9d3QscD1NdCx2PUF0LGc9VHQseT17fSxfPU4oXCJzdGFydFwiLFwiZHJhZ1wiLFwiZW5kXCIpLGI9MCxtPTA7cmV0dXJuIG4uZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDptdCghIXQpLG4pOmR9LG4uY29udGFpbmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDptdCh0KSxuKTpwfSxuLnN1YmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KHQpLG4pOnZ9LG4udG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDptdCghIXQpLG4pOmd9LG4ub249ZnVuY3Rpb24oKXt2YXIgdD1fLm9uLmFwcGx5KF8sYXJndW1lbnRzKTtyZXR1cm4gdD09PV8/bjp0fSxuLmNsaWNrRGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09KHQ9K3QpKnQsbik6TWF0aC5zcXJ0KG0pfSxufSx0LmRyYWdEaXNhYmxlPV90LHQuZHJhZ0VuYWJsZT1idCx0LmRzdkZvcm1hdD1rZSx0LmNzdlBhcnNlPUhoLHQuY3N2UGFyc2VSb3dzPVhoLHQuY3N2Rm9ybWF0PUdoLHQuY3N2Rm9ybWF0Um93cz1WaCx0LnRzdlBhcnNlPVdoLHQudHN2UGFyc2VSb3dzPVpoLHQudHN2Rm9ybWF0PVFoLHQudHN2Rm9ybWF0Um93cz1KaCx0LmVhc2VMaW5lYXI9ZnVuY3Rpb24odCl7cmV0dXJuK3R9LHQuZWFzZVF1YWQ9Rm4sdC5lYXNlUXVhZEluPWZ1bmN0aW9uKHQpe3JldHVybiB0KnR9LHQuZWFzZVF1YWRPdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQqKDItdCl9LHQuZWFzZVF1YWRJbk91dD1Gbix0LmVhc2VDdWJpYz1Jbix0LmVhc2VDdWJpY0luPWZ1bmN0aW9uKHQpe3JldHVybiB0KnQqdH0sdC5lYXNlQ3ViaWNPdXQ9ZnVuY3Rpb24odCl7cmV0dXJuLS10KnQqdCsxfSx0LmVhc2VDdWJpY0luT3V0PUluLHQuZWFzZVBvbHk9WGwsdC5lYXNlUG9seUluPWpsLHQuZWFzZVBvbHlPdXQ9SGwsdC5lYXNlUG9seUluT3V0PVhsLHQuZWFzZVNpbj1qbix0LmVhc2VTaW5Jbj1mdW5jdGlvbih0KXtyZXR1cm4gMS1NYXRoLmNvcyh0KlZsKX0sdC5lYXNlU2luT3V0PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNpbih0KlZsKX0sdC5lYXNlU2luSW5PdXQ9am4sdC5lYXNlRXhwPUhuLHQuZWFzZUV4cEluPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdygyLDEwKnQtMTApfSx0LmVhc2VFeHBPdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5wb3coMiwtMTAqdCl9LHQuZWFzZUV4cEluT3V0PUhuLHQuZWFzZUNpcmNsZT1Ybix0LmVhc2VDaXJjbGVJbj1mdW5jdGlvbih0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfSx0LmVhc2VDaXJjbGVPdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCgxLSAtLXQqdCl9LHQuZWFzZUNpcmNsZUluT3V0PVhuLHQuZWFzZUJvdW5jZT1Hbix0LmVhc2VCb3VuY2VJbj1mdW5jdGlvbih0KXtyZXR1cm4gMS1HbigxLXQpfSx0LmVhc2VCb3VuY2VPdXQ9R24sdC5lYXNlQm91bmNlSW5PdXQ9ZnVuY3Rpb24odCl7cmV0dXJuKCh0Kj0yKTw9MT8xLUduKDEtdCk6R24odC0xKSsxKS8yfSx0LmVhc2VCYWNrPWFoLHQuZWFzZUJhY2tJbj1paCx0LmVhc2VCYWNrT3V0PW9oLHQuZWFzZUJhY2tJbk91dD1haCx0LmVhc2VFbGFzdGljPWNoLHQuZWFzZUVsYXN0aWNJbj1maCx0LmVhc2VFbGFzdGljT3V0PWNoLHQuZWFzZUVsYXN0aWNJbk91dD1zaCx0LmJsb2I9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKENlKX0sdC5idWZmZXI9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKFBlKX0sdC5kc3Y9ZnVuY3Rpb24odCxuLGUscil7Mz09PWFyZ3VtZW50cy5sZW5ndGgmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihyPWUsZT12b2lkIDApO3ZhciBpPWtlKHQpO3JldHVybiBSZShuLGUpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIGkucGFyc2UodCxyKX0pfSx0LmNzdj1LaCx0LnRzdj10ZCx0LmltYWdlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUscil7dmFyIGk9bmV3IEltYWdlO2Zvcih2YXIgbyBpbiBuKWlbb109bltvXTtpLm9uZXJyb3I9cixpLm9ubG9hZD1mdW5jdGlvbigpe2UoaSl9LGkuc3JjPXR9KX0sdC5qc29uPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGZldGNoKHQsbikudGhlbihEZSl9LHQudGV4dD1SZSx0LnhtbD1uZCx0Lmh0bWw9ZWQsdC5zdmc9cmQsdC5mb3JjZUNlbnRlcj1mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUoKXt2YXIgZSxpLG89ci5sZW5ndGgsYT0wLHU9MDtmb3IoZT0wO2U8bzsrK2UpYSs9KGk9cltlXSkueCx1Kz1pLnk7Zm9yKGE9YS9vLXQsdT11L28tbixlPTA7ZTxvOysrZSkoaT1yW2VdKS54LT1hLGkueS09dX12YXIgcjtyZXR1cm4gbnVsbD09dCYmKHQ9MCksbnVsbD09biYmKG49MCksZS5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3I9dH0sZS54PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStuLGUpOnR9LGUueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxlKTpufSxlfSx0LmZvcmNlQ29sbGlkZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7Zm9yKHZhciB0LG4scixmLGMscyxsLGg9aS5sZW5ndGgsZD0wO2Q8dTsrK2QpZm9yKG49amUoaSxHZSxWZSkudmlzaXRBZnRlcihlKSx0PTA7dDxoOysrdClyPWlbdF0scz1vW3IuaW5kZXhdLGw9cypzLGY9ci54K3IudngsYz1yLnkrci52eSxuLnZpc2l0KGZ1bmN0aW9uKHQsbixlLGksbyl7dmFyIHU9dC5kYXRhLGg9dC5yLGQ9cytoO2lmKCF1KXJldHVybiBuPmYrZHx8aTxmLWR8fGU+YytkfHxvPGMtZDtpZih1LmluZGV4PnIuaW5kZXgpe3ZhciBwPWYtdS54LXUudngsdj1jLXUueS11LnZ5LGc9cCpwK3YqdjtnPGQqZCYmKDA9PT1wJiYocD1PZSgpLGcrPXAqcCksMD09PXYmJih2PU9lKCksZys9dip2KSxnPShkLShnPU1hdGguc3FydChnKSkpL2cqYSxyLnZ4Kz0ocCo9ZykqKGQ9KGgqPWgpLyhsK2gpKSxyLnZ5Kz0odio9ZykqZCx1LnZ4LT1wKihkPTEtZCksdS52eS09dipkKX19KX1mdW5jdGlvbiBlKHQpe2lmKHQuZGF0YSlyZXR1cm4gdC5yPW9bdC5kYXRhLmluZGV4XTtmb3IodmFyIG49dC5yPTA7bjw0Oysrbil0W25dJiZ0W25dLnI+dC5yJiYodC5yPXRbbl0ucil9ZnVuY3Rpb24gcigpe2lmKGkpe3ZhciBuLGUscj1pLmxlbmd0aDtmb3Iobz1uZXcgQXJyYXkociksbj0wO248cjsrK24pZT1pW25dLG9bZS5pbmRleF09K3QoZSxuLGkpfX12YXIgaSxvLGE9MSx1PTE7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUobnVsbD09dD8xOit0KSksbi5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxyKCl9LG4uaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxuKTp1fSxuLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LG4pOmF9LG4ucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpxZSgrZSkscigpLG4pOnR9LG59LHQuZm9yY2VMaW5rPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4obil7Zm9yKHZhciBlPTAscj10Lmxlbmd0aDtlPGQ7KytlKWZvcih2YXIgaSx1LGYscyxsLGgscCx2PTA7djxyOysrdil1PShpPXRbdl0pLnNvdXJjZSxzPShmPWkudGFyZ2V0KS54K2YudngtdS54LXUudnh8fE9lKCksbD1mLnkrZi52eS11LnktdS52eXx8T2UoKSxzKj1oPSgoaD1NYXRoLnNxcnQocypzK2wqbCkpLWFbdl0pL2gqbipvW3ZdLGwqPWgsZi52eC09cyoocD1jW3ZdKSxmLnZ5LT1sKnAsdS52eCs9cyoocD0xLXApLHUudnkrPWwqcH1mdW5jdGlvbiBlKCl7aWYodSl7dmFyIG4sZSxsPXUubGVuZ3RoLGg9dC5sZW5ndGgsZD1oZSh1LHMpO2ZvcihuPTAsZj1uZXcgQXJyYXkobCk7bjxoOysrbikoZT10W25dKS5pbmRleD1uLFwib2JqZWN0XCIhPXR5cGVvZiBlLnNvdXJjZSYmKGUuc291cmNlPVdlKGQsZS5zb3VyY2UpKSxcIm9iamVjdFwiIT10eXBlb2YgZS50YXJnZXQmJihlLnRhcmdldD1XZShkLGUudGFyZ2V0KSksZltlLnNvdXJjZS5pbmRleF09KGZbZS5zb3VyY2UuaW5kZXhdfHwwKSsxLGZbZS50YXJnZXQuaW5kZXhdPShmW2UudGFyZ2V0LmluZGV4XXx8MCkrMTtmb3Iobj0wLGM9bmV3IEFycmF5KGgpO248aDsrK24pZT10W25dLGNbbl09ZltlLnNvdXJjZS5pbmRleF0vKGZbZS5zb3VyY2UuaW5kZXhdK2ZbZS50YXJnZXQuaW5kZXhdKTtvPW5ldyBBcnJheShoKSxyKCksYT1uZXcgQXJyYXkoaCksaSgpfX1mdW5jdGlvbiByKCl7aWYodSlmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pb1tuXT0rbCh0W25dLG4sdCl9ZnVuY3Rpb24gaSgpe2lmKHUpZm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKWFbbl09K2godFtuXSxuLHQpfXZhciBvLGEsdSxmLGMscz0kZSxsPWZ1bmN0aW9uKHQpe3JldHVybiAxL01hdGgubWluKGZbdC5zb3VyY2UuaW5kZXhdLGZbdC50YXJnZXQuaW5kZXhdKX0saD1xZSgzMCksZD0xO3JldHVybiBudWxsPT10JiYodD1bXSksbi5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3U9dCxlKCl9LG4ubGlua3M9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9cixlKCksbik6dH0sbi5pZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LG4pOnN9LG4uaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdCxuKTpkfSxuLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCkscigpLG4pOmx9LG4uZGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxpKCksbik6aH0sbn0sdC5mb3JjZU1hbnlCb2R5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbix1PWkubGVuZ3RoLGY9amUoaSxaZSxRZSkudmlzaXRBZnRlcihlKTtmb3IoYT10LG49MDtuPHU7KytuKW89aVtuXSxmLnZpc2l0KHIpfWZ1bmN0aW9uIG4oKXtpZihpKXt2YXIgdCxuLGU9aS5sZW5ndGg7Zm9yKHU9bmV3IEFycmF5KGUpLHQ9MDt0PGU7Kyt0KW49aVt0XSx1W24uaW5kZXhdPStmKG4sdCxpKX19ZnVuY3Rpb24gZSh0KXt2YXIgbixlLHIsaSxvLGE9MCxmPTA7aWYodC5sZW5ndGgpe2ZvcihyPWk9bz0wO288NDsrK28pKG49dFtvXSkmJihlPU1hdGguYWJzKG4udmFsdWUpKSYmKGErPW4udmFsdWUsZis9ZSxyKz1lKm4ueCxpKz1lKm4ueSk7dC54PXIvZix0Lnk9aS9mfWVsc2V7KG49dCkueD1uLmRhdGEueCxuLnk9bi5kYXRhLnk7ZG97YSs9dVtuLmRhdGEuaW5kZXhdfXdoaWxlKG49bi5uZXh0KX10LnZhbHVlPWF9ZnVuY3Rpb24gcih0LG4sZSxyKXtpZighdC52YWx1ZSlyZXR1cm4hMDt2YXIgaT10Lngtby54LGY9dC55LW8ueSxoPXItbixkPWkqaStmKmY7aWYoaCpoL2w8ZClyZXR1cm4gZDxzJiYoMD09PWkmJihpPU9lKCksZCs9aSppKSwwPT09ZiYmKGY9T2UoKSxkKz1mKmYpLGQ8YyYmKGQ9TWF0aC5zcXJ0KGMqZCkpLG8udngrPWkqdC52YWx1ZSphL2Qsby52eSs9Zip0LnZhbHVlKmEvZCksITA7aWYoISh0Lmxlbmd0aHx8ZD49cykpeyh0LmRhdGEhPT1vfHx0Lm5leHQpJiYoMD09PWkmJihpPU9lKCksZCs9aSppKSwwPT09ZiYmKGY9T2UoKSxkKz1mKmYpLGQ8YyYmKGQ9TWF0aC5zcXJ0KGMqZCkpKTtkb3t0LmRhdGEhPT1vJiYoaD11W3QuZGF0YS5pbmRleF0qYS9kLG8udngrPWkqaCxvLnZ5Kz1mKmgpfXdoaWxlKHQ9dC5uZXh0KX19dmFyIGksbyxhLHUsZj1xZSgtMzApLGM9MSxzPTEvMCxsPS44MTtyZXR1cm4gdC5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxuKCl9LHQuc3RyZW5ndGg9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOnFlKCtlKSxuKCksdCk6Zn0sdC5kaXN0YW5jZU1pbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1uKm4sdCk6TWF0aC5zcXJ0KGMpfSx0LmRpc3RhbmNlTWF4PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPW4qbix0KTpNYXRoLnNxcnQocyl9LHQudGhldGE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9bipuLHQpOk1hdGguc3FydChsKX0sdH0sdC5mb3JjZVJhZGlhbD1mdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcih0KXtmb3IodmFyIHI9MCxpPW8ubGVuZ3RoO3I8aTsrK3Ipe3ZhciBmPW9bcl0sYz1mLngtbnx8MWUtNixzPWYueS1lfHwxZS02LGw9TWF0aC5zcXJ0KGMqYytzKnMpLGg9KHVbcl0tbCkqYVtyXSp0L2w7Zi52eCs9YypoLGYudnkrPXMqaH19ZnVuY3Rpb24gaSgpe2lmKG8pe3ZhciBuLGU9by5sZW5ndGg7Zm9yKGE9bmV3IEFycmF5KGUpLHU9bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKXVbbl09K3Qob1tuXSxuLG8pLGFbbl09aXNOYU4odVtuXSk/MDorZihvW25dLG4sbyl9fXZhciBvLGEsdSxmPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZSgrdCkpLG51bGw9PW4mJihuPTApLG51bGw9PWUmJihlPTApLHIuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtvPXQsaSgpfSxyLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksaSgpLHIpOmZ9LHIucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpxZSgrbiksaSgpLHIpOnR9LHIueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxyKTpufSxyLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3Qscik6ZX0scn0sdC5mb3JjZVNpbXVsYXRpb249ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe2UoKSxkLmNhbGwoXCJ0aWNrXCIsbyksYTx1JiYoaC5zdG9wKCksZC5jYWxsKFwiZW5kXCIsbykpfWZ1bmN0aW9uIGUoKXt2YXIgbixlLHI9dC5sZW5ndGg7Zm9yKGErPShjLWEpKmYsbC5lYWNoKGZ1bmN0aW9uKHQpe3QoYSl9KSxuPTA7bjxyOysrbiludWxsPT0oZT10W25dKS5meD9lLngrPWUudngqPXM6KGUueD1lLmZ4LGUudng9MCksbnVsbD09ZS5meT9lLnkrPWUudnkqPXM6KGUueT1lLmZ5LGUudnk9MCl9ZnVuY3Rpb24gcigpe2Zvcih2YXIgbixlPTAscj10Lmxlbmd0aDtlPHI7KytlKXtpZihuPXRbZV0sbi5pbmRleD1lLGlzTmFOKG4ueCl8fGlzTmFOKG4ueSkpe3ZhciBpPW9kKk1hdGguc3FydChlKSxvPWUqYWQ7bi54PWkqTWF0aC5jb3Mobyksbi55PWkqTWF0aC5zaW4obyl9KGlzTmFOKG4udngpfHxpc05hTihuLnZ5KSkmJihuLnZ4PW4udnk9MCl9fWZ1bmN0aW9uIGkobil7cmV0dXJuIG4uaW5pdGlhbGl6ZSYmbi5pbml0aWFsaXplKHQpLG59dmFyIG8sYT0xLHU9LjAwMSxmPTEtTWF0aC5wb3codSwxLzMwMCksYz0wLHM9LjYsbD1oZSgpLGg9VG4obiksZD1OKFwidGlja1wiLFwiZW5kXCIpO3JldHVybiBudWxsPT10JiYodD1bXSkscigpLG89e3RpY2s6ZSxyZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVzdGFydChuKSxvfSxzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIGguc3RvcCgpLG99LG5vZGVzOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PW4scigpLGwuZWFjaChpKSxvKTp0fSxhbHBoYTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0rdCxvKTphfSxhbHBoYU1pbjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxvKTp1fSxhbHBoYURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSt0LG8pOitmfSxhbHBoYVRhcmdldDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz0rdCxvKTpjfSx2ZWxvY2l0eURlY2F5OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPTEtdCxvKToxLXN9LGZvcmNlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8obnVsbD09bj9sLnJlbW92ZSh0KTpsLnNldCh0LGkobikpLG8pOmwuZ2V0KHQpfSxmaW5kOmZ1bmN0aW9uKG4sZSxyKXt2YXIgaSxvLGEsdSxmLGM9MCxzPXQubGVuZ3RoO2ZvcihudWxsPT1yP3I9MS8wOnIqPXIsYz0wO2M8czsrK2MpKGE9KGk9bi0odT10W2NdKS54KSppKyhvPWUtdS55KSpvKTxyJiYoZj11LHI9YSk7cmV0dXJuIGZ9LG9uOmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT8oZC5vbih0LG4pLG8pOmQub24odCl9fX0sdC5mb3JjZVg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0KXtmb3IodmFyIG4sZT0wLGE9ci5sZW5ndGg7ZTxhOysrZSkobj1yW2VdKS52eCs9KG9bZV0tbi54KSppW2VdKnR9ZnVuY3Rpb24gZSgpe2lmKHIpe3ZhciBuLGU9ci5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KGUpLG89bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKWlbbl09aXNOYU4ob1tuXT0rdChyW25dLG4scikpPzA6K2EocltuXSxuLHIpfX12YXIgcixpLG8sYT1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUobnVsbD09dD8wOit0KSksbi5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3I9dCxlKCl9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxlKCksbik6YX0sbi54PWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHI/cjpxZSgrciksZSgpLG4pOnR9LG59LHQuZm9yY2VZPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBuLGU9MCxhPXIubGVuZ3RoO2U8YTsrK2UpKG49cltlXSkudnkrPShvW2VdLW4ueSkqaVtlXSp0fWZ1bmN0aW9uIGUoKXtpZihyKXt2YXIgbixlPXIubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShlKSxvPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilpW25dPWlzTmFOKG9bbl09K3QocltuXSxuLHIpKT8wOithKHJbbl0sbixyKX19dmFyIHIsaSxvLGE9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKG51bGw9PXQ/MDordCkpLG4uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXQsZSgpfSxuLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpxZSgrdCksZSgpLG4pOmF9LG4ueT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByP3I6cWUoK3IpLGUoKSxuKTp0fSxufSx0LmZvcm1hdERlZmF1bHRMb2NhbGU9b3IsdC5mb3JtYXRMb2NhbGU9aXIsdC5mb3JtYXRTcGVjaWZpZXI9dHIsdC5wcmVjaXNpb25GaXhlZD1hcix0LnByZWNpc2lvblByZWZpeD11cix0LnByZWNpc2lvblJvdW5kPWZyLHQuZ2VvQXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gZHAucmVzZXQoKSxicih0LHBwKSwyKmRwfSx0Lmdlb0JvdW5kcz1mdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvLGEsdTtpZihtZD1iZD0tKHlkPV9kPTEvMCksVGQ9W10sYnIodCxncCksZT1UZC5sZW5ndGgpe2ZvcihUZC5zb3J0KFlyKSxuPTEsbz1bcj1UZFswXV07bjxlOysrbilCcihyLChpPVRkW25dKVswXSl8fEJyKHIsaVsxXSk/KE9yKHJbMF0saVsxXSk+T3IoclswXSxyWzFdKSYmKHJbMV09aVsxXSksT3IoaVswXSxyWzFdKT5PcihyWzBdLHJbMV0pJiYoclswXT1pWzBdKSk6by5wdXNoKHI9aSk7Zm9yKGE9LTEvMCxuPTAscj1vW2U9by5sZW5ndGgtMV07bjw9ZTtyPWksKytuKWk9b1tuXSwodT1PcihyWzFdLGlbMF0pKT5hJiYoYT11LHlkPWlbMF0sYmQ9clsxXSl9cmV0dXJuIFRkPU5kPW51bGwseWQ9PT0xLzB8fF9kPT09MS8wP1tbTmFOLE5hTl0sW05hTixOYU5dXTpbW3lkLF9kXSxbYmQsbWRdXX0sdC5nZW9DZW50cm9pZD1mdW5jdGlvbih0KXtTZD1FZD1rZD1DZD1QZD16ZD1SZD1MZD1EZD1VZD1xZD0wLGJyKHQseXApO3ZhciBuPURkLGU9VWQscj1xZCxpPW4qbitlKmUrcipyO3JldHVybiBpPFhkJiYobj16ZCxlPVJkLHI9TGQsRWQ8SGQmJihuPWtkLGU9Q2Qscj1QZCksKGk9bipuK2UqZStyKnIpPFhkKT9bTmFOLE5hTl06W3RwKGUsbikqWmQsZHIoci9mcChpKSkqWmRdfSx0Lmdlb0NpcmNsZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx1PWkuYXBwbHkodGhpcyxhcmd1bWVudHMpKlFkLGY9by5hcHBseSh0aGlzLGFyZ3VtZW50cykqUWQ7cmV0dXJuIG49W10sZT10aSgtdFswXSpRZCwtdFsxXSpRZCwwKS5pbnZlcnQsb2koYSx1LGYsMSksdD17dHlwZTpcIlBvbHlnb25cIixjb29yZGluYXRlczpbbl19LG49ZT1udWxsLHR9dmFyIG4sZSxyPVFyKFswLDBdKSxpPVFyKDkwKSxvPVFyKDYpLGE9e3BvaW50OmZ1bmN0aW9uKHQscil7bi5wdXNoKHQ9ZSh0LHIpKSx0WzBdKj1aZCx0WzFdKj1aZH19O3JldHVybiB0LmNlbnRlcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246UXIoWytuWzBdLCtuWzFdXSksdCk6cn0sdC5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOlFyKCtuKSx0KTppfSx0LnByZWNpc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246UXIoK24pLHQpOm99LHR9LHQuZ2VvQ2xpcEFudGltZXJpZGlhbj1DcCx0Lmdlb0NsaXBDaXJjbGU9Z2ksdC5nZW9DbGlwRXh0ZW50PWZ1bmN0aW9uKCl7dmFyIHQsbixlLHI9MCxpPTAsbz05NjAsYT01MDA7cmV0dXJuIGU9e3N0cmVhbTpmdW5jdGlvbihlKXtyZXR1cm4gdCYmbj09PWU/dDp0PXlpKHIsaSxvLGEpKG49ZSl9LGV4dGVudDpmdW5jdGlvbih1KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdVswXVswXSxpPSt1WzBdWzFdLG89K3VbMV1bMF0sYT0rdVsxXVsxXSx0PW49bnVsbCxlKTpbW3IsaV0sW28sYV1dfX19LHQuZ2VvQ2xpcFJlY3RhbmdsZT15aSx0Lmdlb0NvbnRhaW5zPWZ1bmN0aW9uKHQsbil7cmV0dXJuKHQmJnFwLmhhc093blByb3BlcnR5KHQudHlwZSk/cXBbdC50eXBlXTpNaSkodCxuKX0sdC5nZW9EaXN0YW5jZT13aSx0Lmdlb0dyYXRpY3VsZT1QaSx0Lmdlb0dyYXRpY3VsZTEwPWZ1bmN0aW9uKCl7cmV0dXJuIFBpKCkoKX0sdC5nZW9JbnRlcnBvbGF0ZT1mdW5jdGlvbih0LG4pe3ZhciBlPXRbMF0qUWQscj10WzFdKlFkLGk9blswXSpRZCxvPW5bMV0qUWQsYT1ucChyKSx1PWFwKHIpLGY9bnAobyksYz1hcChvKSxzPWEqbnAoZSksbD1hKmFwKGUpLGg9ZipucChpKSxkPWYqYXAoaSkscD0yKmRyKGZwKHByKG8tcikrYSpmKnByKGktZSkpKSx2PWFwKHApLGc9cD9mdW5jdGlvbih0KXt2YXIgbj1hcCh0Kj1wKS92LGU9YXAocC10KS92LHI9ZSpzK24qaCxpPWUqbCtuKmQsbz1lKnUrbipjO3JldHVyblt0cChpLHIpKlpkLHRwKG8sZnAocipyK2kqaSkpKlpkXX06ZnVuY3Rpb24oKXtyZXR1cm5bZSpaZCxyKlpkXX07cmV0dXJuIGcuZGlzdGFuY2U9cCxnfSx0Lmdlb0xlbmd0aD14aSx0Lmdlb1BhdGg9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiBlKHQpe3JldHVybiB0JiYoXCJmdW5jdGlvblwiPT10eXBlb2YgbyYmaS5wb2ludFJhZGl1cygrby5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGJyKHQscihpKSkpLGkucmVzdWx0KCl9dmFyIHIsaSxvPTQuNTtyZXR1cm4gZS5hcmVhPWZ1bmN0aW9uKHQpe3JldHVybiBicih0LHIoRnApKSxGcC5yZXN1bHQoKX0sZS5tZWFzdXJlPWZ1bmN0aW9uKHQpe3JldHVybiBicih0LHIoY3YpKSxjdi5yZXN1bHQoKX0sZS5ib3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihHcCkpLEdwLnJlc3VsdCgpfSxlLmNlbnRyb2lkPWZ1bmN0aW9uKHQpe3JldHVybiBicih0LHIoZXYpKSxldi5yZXN1bHQoKX0sZS5wcm9qZWN0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/KHQ9bnVsbCx6aSk6KHQ9bikuc3RyZWFtLGUpOnR9LGUuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT10PyhuPW51bGwsbmV3IFdpKTpuZXcgR2kobj10KSxcImZ1bmN0aW9uXCIhPXR5cGVvZiBvJiZpLnBvaW50UmFkaXVzKG8pLGUpOm59LGUucG9pbnRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OihpLnBvaW50UmFkaXVzKCt0KSwrdCksZSk6b30sZS5wcm9qZWN0aW9uKHQpLmNvbnRleHQobil9LHQuZ2VvQWxiZXJzPWxvLHQuZ2VvQWxiZXJzVXNhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbj10WzBdLGU9dFsxXTtyZXR1cm4gdT1udWxsLGkucG9pbnQobixlKSx1fHwoby5wb2ludChuLGUpLHUpfHwoYS5wb2ludChuLGUpLHUpfWZ1bmN0aW9uIG4oKXtyZXR1cm4gZT1yPW51bGwsdH12YXIgZSxyLGksbyxhLHUsZj1sbygpLGM9c28oKS5yb3RhdGUoWzE1NCwwXSkuY2VudGVyKFstMiw1OC41XSkucGFyYWxsZWxzKFs1NSw2NV0pLHM9c28oKS5yb3RhdGUoWzE1NywwXSkuY2VudGVyKFstMywxOS45XSkucGFyYWxsZWxzKFs4LDE4XSksbD17cG9pbnQ6ZnVuY3Rpb24odCxuKXt1PVt0LG5dfX07cmV0dXJuIHQuaW52ZXJ0PWZ1bmN0aW9uKHQpe3ZhciBuPWYuc2NhbGUoKSxlPWYudHJhbnNsYXRlKCkscj0odFswXS1lWzBdKS9uLGk9KHRbMV0tZVsxXSkvbjtyZXR1cm4oaT49LjEyJiZpPC4yMzQmJnI+PS0uNDI1JiZyPC0uMjE0P2M6aT49LjE2NiYmaTwuMjM0JiZyPj0tLjIxNCYmcjwtLjExNT9zOmYpLmludmVydCh0KX0sdC5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGUmJnI9PT10P2U6ZT1mdW5jdGlvbih0KXt2YXIgbj10Lmxlbmd0aDtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24oZSxyKXtmb3IodmFyIGk9LTE7KytpPG47KXRbaV0ucG9pbnQoZSxyKX0sc3BoZXJlOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPS0xOysrZTxuOyl0W2VdLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9LTE7KytlPG47KXRbZV0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9LTE7KytlPG47KXRbZV0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9LTE7KytlPG47KXRbZV0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9LTE7KytlPG47KXRbZV0ucG9seWdvbkVuZCgpfX19KFtmLnN0cmVhbShyPXQpLGMuc3RyZWFtKHQpLHMuc3RyZWFtKHQpXSl9LHQucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmLnByZWNpc2lvbih0KSxjLnByZWNpc2lvbih0KSxzLnByZWNpc2lvbih0KSxuKCkpOmYucHJlY2lzaW9uKCl9LHQuc2NhbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYuc2NhbGUobiksYy5zY2FsZSguMzUqbikscy5zY2FsZShuKSx0LnRyYW5zbGF0ZShmLnRyYW5zbGF0ZSgpKSk6Zi5zY2FsZSgpfSx0LnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZi50cmFuc2xhdGUoKTt2YXIgZT1mLnNjYWxlKCkscj0rdFswXSx1PSt0WzFdO3JldHVybiBpPWYudHJhbnNsYXRlKHQpLmNsaXBFeHRlbnQoW1tyLS40NTUqZSx1LS4yMzgqZV0sW3IrLjQ1NSplLHUrLjIzOCplXV0pLnN0cmVhbShsKSxvPWMudHJhbnNsYXRlKFtyLS4zMDcqZSx1Ky4yMDEqZV0pLmNsaXBFeHRlbnQoW1tyLS40MjUqZStIZCx1Ky4xMiplK0hkXSxbci0uMjE0KmUtSGQsdSsuMjM0KmUtSGRdXSkuc3RyZWFtKGwpLGE9cy50cmFuc2xhdGUoW3ItLjIwNSplLHUrLjIxMiplXSkuY2xpcEV4dGVudChbW3ItLjIxNCplK0hkLHUrLjE2NiplK0hkXSxbci0uMTE1KmUtSGQsdSsuMjM0KmUtSGRdXSkuc3RyZWFtKGwpLG4oKX0sdC5maXRFeHRlbnQ9ZnVuY3Rpb24obixlKXtyZXR1cm4gdG8odCxuLGUpfSx0LmZpdFNpemU9ZnVuY3Rpb24obixlKXtyZXR1cm4gbm8odCxuLGUpfSx0LmZpdFdpZHRoPWZ1bmN0aW9uKG4sZSl7cmV0dXJuIGVvKHQsbixlKX0sdC5maXRIZWlnaHQ9ZnVuY3Rpb24obixlKXtyZXR1cm4gcm8odCxuLGUpfSx0LnNjYWxlKDEwNzApfSx0Lmdlb0F6aW11dGhhbEVxdWFsQXJlYT1mdW5jdGlvbigpe3JldHVybiBhbyhkdikuc2NhbGUoMTI0Ljc1KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQXppbXV0aGFsRXF1YWxBcmVhUmF3PWR2LHQuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gYW8ocHYpLnNjYWxlKDc5LjQxODgpLmNsaXBBbmdsZSgxNzkuOTk5KX0sdC5nZW9BemltdXRoYWxFcXVpZGlzdGFudFJhdz1wdix0Lmdlb0NvbmljQ29uZm9ybWFsPWZ1bmN0aW9uKCl7cmV0dXJuIGZvKF9vKS5zY2FsZSgxMDkuNSkucGFyYWxsZWxzKFszMCwzMF0pfSx0Lmdlb0NvbmljQ29uZm9ybWFsUmF3PV9vLHQuZ2VvQ29uaWNFcXVhbEFyZWE9c28sdC5nZW9Db25pY0VxdWFsQXJlYVJhdz1jbyx0Lmdlb0NvbmljRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gZm8obW8pLnNjYWxlKDEzMS4xNTQpLmNlbnRlcihbMCwxMy45Mzg5XSl9LHQuZ2VvQ29uaWNFcXVpZGlzdGFudFJhdz1tbyx0Lmdlb0VxdWlyZWN0YW5ndWxhcj1mdW5jdGlvbigpe3JldHVybiBhbyhibykuc2NhbGUoMTUyLjYzKX0sdC5nZW9FcXVpcmVjdGFuZ3VsYXJSYXc9Ym8sdC5nZW9Hbm9tb25pYz1mdW5jdGlvbigpe3JldHVybiBhbyh4bykuc2NhbGUoMTQ0LjA0OSkuY2xpcEFuZ2xlKDYwKX0sdC5nZW9Hbm9tb25pY1Jhdz14byx0Lmdlb0lkZW50aXR5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybiBpPW89bnVsbCxhfXZhciBuLGUscixpLG8sYSx1PTEsZj0wLGM9MCxzPTEsbD0xLGg9emksZD1udWxsLHA9emk7cmV0dXJuIGE9e3N0cmVhbTpmdW5jdGlvbih0KXtyZXR1cm4gaSYmbz09PXQ/aTppPWgocChvPXQpKX0scG9zdGNsaXA6ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9aSxkPW49ZT1yPW51bGwsdCgpKTpwfSxjbGlwRXh0ZW50OmZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPW51bGw9PWk/KGQ9bj1lPXI9bnVsbCx6aSk6eWkoZD0raVswXVswXSxuPStpWzBdWzFdLGU9K2lbMV1bMF0scj0raVsxXVsxXSksdCgpKTpudWxsPT1kP251bGw6W1tkLG5dLFtlLHJdXX0sc2NhbGU6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9d28oKHU9K24pKnMsdSpsLGYsYyksdCgpKTp1fSx0cmFuc2xhdGU6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9d28odSpzLHUqbCxmPStuWzBdLGM9K25bMV0pLHQoKSk6W2YsY119LHJlZmxlY3RYOmZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXdvKHUqKHM9bj8tMToxKSx1KmwsZixjKSx0KCkpOnM8MH0scmVmbGVjdFk6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9d28odSpzLHUqKGw9bj8tMToxKSxmLGMpLHQoKSk6bDwwfSxmaXRFeHRlbnQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdG8oYSx0LG4pfSxmaXRTaXplOmZ1bmN0aW9uKHQsbil7cmV0dXJuIG5vKGEsdCxuKX0sZml0V2lkdGg6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZW8oYSx0LG4pfSxmaXRIZWlnaHQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gcm8oYSx0LG4pfX19LHQuZ2VvUHJvamVjdGlvbj1hbyx0Lmdlb1Byb2plY3Rpb25NdXRhdG9yPXVvLHQuZ2VvTWVyY2F0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gZ28odm8pLnNjYWxlKDk2MS9XZCl9LHQuZ2VvTWVyY2F0b3JSYXc9dm8sdC5nZW9OYXR1cmFsRWFydGgxPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKE1vKS5zY2FsZSgxNzUuMjk1KX0sdC5nZW9OYXR1cmFsRWFydGgxUmF3PU1vLHQuZ2VvT3J0aG9ncmFwaGljPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKEFvKS5zY2FsZSgyNDkuNSkuY2xpcEFuZ2xlKDkwK0hkKX0sdC5nZW9PcnRob2dyYXBoaWNSYXc9QW8sdC5nZW9TdGVyZW9ncmFwaGljPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKFRvKS5zY2FsZSgyNTApLmNsaXBBbmdsZSgxNDIpfSx0Lmdlb1N0ZXJlb2dyYXBoaWNSYXc9VG8sdC5nZW9UcmFuc3ZlcnNlTWVyY2F0b3I9ZnVuY3Rpb24oKXt2YXIgdD1nbyhObyksbj10LmNlbnRlcixlPXQucm90YXRlO3JldHVybiB0LmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKFstdFsxXSx0WzBdXSk6KHQ9bigpLFt0WzFdLC10WzBdXSl9LHQucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoW3RbMF0sdFsxXSx0Lmxlbmd0aD4yP3RbMl0rOTA6OTBdKToodD1lKCksW3RbMF0sdFsxXSx0WzJdLTkwXSl9LGUoWzAsMCw5MF0pLnNjYWxlKDE1OS4xNTUpfSx0Lmdlb1RyYW5zdmVyc2VNZXJjYXRvclJhdz1Obyx0Lmdlb1JvdGF0aW9uPWlpLHQuZ2VvU3RyZWFtPWJyLHQuZ2VvVHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3JldHVybntzdHJlYW06UWkodCl9fSx0LmNsdXN0ZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGE9MDt0LmVhY2hBZnRlcihmdW5jdGlvbih0KXt2YXIgZT10LmNoaWxkcmVuO2U/KHQueD1mdW5jdGlvbih0KXtyZXR1cm4gdC5yZWR1Y2UoRW8sMCkvdC5sZW5ndGh9KGUpLHQueT1mdW5jdGlvbih0KXtyZXR1cm4gMSt0LnJlZHVjZShrbywwKX0oZSkpOih0Lng9bz9hKz1uKHQsbyk6MCx0Lnk9MCxvPXQpfSk7dmFyIHU9ZnVuY3Rpb24odCl7Zm9yKHZhciBuO249dC5jaGlsZHJlbjspdD1uWzBdO3JldHVybiB0fSh0KSxmPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbjtuPXQuY2hpbGRyZW47KXQ9bltuLmxlbmd0aC0xXTtyZXR1cm4gdH0odCksYz11Lngtbih1LGYpLzIscz1mLngrbihmLHUpLzI7cmV0dXJuIHQuZWFjaEFmdGVyKGk/ZnVuY3Rpb24obil7bi54PShuLngtdC54KSplLG4ueT0odC55LW4ueSkqcn06ZnVuY3Rpb24obil7bi54PShuLngtYykvKHMtYykqZSxuLnk9KDEtKHQueT9uLnkvdC55OjEpKSpyfSl9dmFyIG49U28sZT0xLHI9MSxpPSExO3JldHVybiB0LnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZSx0KTpufSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ITEsZT0rblswXSxyPStuWzFdLHQpOmk/bnVsbDpbZSxyXX0sdC5ub2RlU2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMCxlPStuWzBdLHI9K25bMV0sdCk6aT9bZSxyXTpudWxsfSx0fSx0LmhpZXJhcmNoeT1Qbyx0LnBhY2s9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0Lng9ZS8yLHQueT1yLzIsbj90LmVhY2hCZWZvcmUoUW8obikpLmVhY2hBZnRlcihKbyhpLC41KSkuZWFjaEJlZm9yZShLbygxKSk6dC5lYWNoQmVmb3JlKFFvKFpvKSkuZWFjaEFmdGVyKEpvKCRvLDEpKS5lYWNoQWZ0ZXIoSm8oaSx0LnIvTWF0aC5taW4oZSxyKSkpLmVhY2hCZWZvcmUoS28oTWF0aC5taW4oZSxyKS8oMip0LnIpKSksdH12YXIgbj1udWxsLGU9MSxyPTEsaT0kbztyZXR1cm4gdC5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/bnVsbDpWbyh0KX0oZSksdCk6bn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPStuWzBdLHI9K25bMV0sdCk6W2Uscl19LHQucGFkZGluZz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOml9LHR9LHQucGFja1NpYmxpbmdzPWZ1bmN0aW9uKHQpe3JldHVybiBHbyh0KSx0fSx0LnBhY2tFbmNsb3NlPVVvLHQucGFydGl0aW9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbz10LmhlaWdodCsxO3JldHVybiB0LngwPXQueTA9cix0LngxPW4sdC55MT1lL28sdC5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW4mJm5hKGUsZS54MCx0KihlLmRlcHRoKzEpL24sZS54MSx0KihlLmRlcHRoKzIpL24pO3ZhciBpPWUueDAsbz1lLnkwLGE9ZS54MS1yLHU9ZS55MS1yO2E8aSYmKGk9YT0oaSthKS8yKSx1PG8mJihvPXU9KG8rdSkvMiksZS54MD1pLGUueTA9byxlLngxPWEsZS55MT11fX0oZSxvKSksaSYmdC5lYWNoQmVmb3JlKHRhKSx0fXZhciBuPTEsZT0xLHI9MCxpPSExO3JldHVybiB0LnJvdW5kPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEhbix0KTppfSx0LnNpemU9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3JbMF0sZT0rclsxXSx0KTpbbixlXX0sdC5wYWRkaW5nPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPStuLHQpOnJ9LHR9LHQuc3RyYXRpZnk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciByLGksbyxhLHUsZixjLHM9dC5sZW5ndGgsbD1uZXcgQXJyYXkocyksaD17fTtmb3IoaT0wO2k8czsrK2kpcj10W2ldLHU9bFtpXT1uZXcgRG8ociksbnVsbCE9KGY9bihyLGksdCkpJiYoZis9XCJcIikmJihoW2M9Z3YrKHUuaWQ9ZildPWMgaW4gaD9fdjp1KTtmb3IoaT0wO2k8czsrK2kpaWYodT1sW2ldLG51bGwhPShmPWUodFtpXSxpLHQpKSYmKGYrPVwiXCIpKXtpZighKGE9aFtnditmXSkpdGhyb3cgbmV3IEVycm9yKFwibWlzc2luZzogXCIrZik7aWYoYT09PV92KXRocm93IG5ldyBFcnJvcihcImFtYmlndW91czogXCIrZik7YS5jaGlsZHJlbj9hLmNoaWxkcmVuLnB1c2godSk6YS5jaGlsZHJlbj1bdV0sdS5wYXJlbnQ9YX1lbHNle2lmKG8pdGhyb3cgbmV3IEVycm9yKFwibXVsdGlwbGUgcm9vdHNcIik7bz11fWlmKCFvKXRocm93IG5ldyBFcnJvcihcIm5vIHJvb3RcIik7aWYoby5wYXJlbnQ9eXYsby5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QuZGVwdGg9dC5wYXJlbnQuZGVwdGgrMSwtLXN9KS5lYWNoQmVmb3JlKExvKSxvLnBhcmVudD1udWxsLHM+MCl0aHJvdyBuZXcgRXJyb3IoXCJjeWNsZVwiKTtyZXR1cm4gb312YXIgbj1lYSxlPXJhO3JldHVybiB0LmlkPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVZvKGUpLHQpOm59LHQucGFyZW50SWQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Vm8obiksdCk6ZX0sdH0sdC50cmVlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZj1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyLGksbyxhPW5ldyBjYSh0LDApLHU9W2FdO249dS5wb3AoKTspaWYocj1uLl8uY2hpbGRyZW4pZm9yKG4uY2hpbGRyZW49bmV3IEFycmF5KG89ci5sZW5ndGgpLGk9by0xO2k+PTA7LS1pKXUucHVzaChlPW4uY2hpbGRyZW5baV09bmV3IGNhKHJbaV0saSkpLGUucGFyZW50PW47cmV0dXJuKGEucGFyZW50PW5ldyBjYShudWxsLDApKS5jaGlsZHJlbj1bYV0sYX0odCk7aWYoZi5lYWNoQWZ0ZXIobiksZi5wYXJlbnQubT0tZi56LGYuZWFjaEJlZm9yZShlKSx1KXQuZWFjaEJlZm9yZShyKTtlbHNle3ZhciBjPXQscz10LGw9dDt0LmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC54PGMueCYmKGM9dCksdC54PnMueCYmKHM9dCksdC5kZXB0aD5sLmRlcHRoJiYobD10KX0pO3ZhciBoPWM9PT1zPzE6aShjLHMpLzIsZD1oLWMueCxwPW8vKHMueCtoK2QpLHY9YS8obC5kZXB0aHx8MSk7dC5lYWNoQmVmb3JlKGZ1bmN0aW9uKHQpe3QueD0odC54K2QpKnAsdC55PXQuZGVwdGgqdn0pfXJldHVybiB0fWZ1bmN0aW9uIG4odCl7dmFyIG49dC5jaGlsZHJlbixlPXQucGFyZW50LmNoaWxkcmVuLHI9dC5pP2VbdC5pLTFdOm51bGw7aWYobil7KGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPTAscj0wLGk9dC5jaGlsZHJlbixvPWkubGVuZ3RoOy0tbz49MDspKG49aVtvXSkueis9ZSxuLm0rPWUsZSs9bi5zKyhyKz1uLmMpfSkodCk7dmFyIG89KG5bMF0ueituW24ubGVuZ3RoLTFdLnopLzI7cj8odC56PXIueitpKHQuXyxyLl8pLHQubT10Lnotbyk6dC56PW99ZWxzZSByJiYodC56PXIueitpKHQuXyxyLl8pKTt0LnBhcmVudC5BPWZ1bmN0aW9uKHQsbixlKXtpZihuKXtmb3IodmFyIHIsbz10LGE9dCx1PW4sZj1vLnBhcmVudC5jaGlsZHJlblswXSxjPW8ubSxzPWEubSxsPXUubSxoPWYubTt1PWFhKHUpLG89b2EobyksdSYmbzspZj1vYShmKSwoYT1hYShhKSkuYT10LChyPXUueitsLW8uei1jK2kodS5fLG8uXykpPjAmJih1YShmYSh1LHQsZSksdCxyKSxjKz1yLHMrPXIpLGwrPXUubSxjKz1vLm0saCs9Zi5tLHMrPWEubTt1JiYhYWEoYSkmJihhLnQ9dSxhLm0rPWwtcyksbyYmIW9hKGYpJiYoZi50PW8sZi5tKz1jLWgsZT10KX1yZXR1cm4gZX0odCxyLHQucGFyZW50LkF8fGVbMF0pfWZ1bmN0aW9uIGUodCl7dC5fLng9dC56K3QucGFyZW50Lm0sdC5tKz10LnBhcmVudC5tfWZ1bmN0aW9uIHIodCl7dC54Kj1vLHQueT10LmRlcHRoKmF9dmFyIGk9aWEsbz0xLGE9MSx1PW51bGw7cmV0dXJuIHQuc2VwYXJhdGlvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1uLHQpOml9LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hMSxvPStuWzBdLGE9K25bMV0sdCk6dT9udWxsOltvLGFdfSx0Lm5vZGVTaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEwLG89K25bMF0sYT0rblsxXSx0KTp1P1tvLGFdOm51bGx9LHR9LHQudHJlZW1hcD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIHQueDA9dC55MD0wLHQueDE9aSx0LnkxPW8sdC5lYWNoQmVmb3JlKG4pLGE9WzBdLHImJnQuZWFjaEJlZm9yZSh0YSksdH1mdW5jdGlvbiBuKHQpe3ZhciBuPWFbdC5kZXB0aF0scj10LngwK24saT10LnkwK24sbz10LngxLW4saD10LnkxLW47bzxyJiYocj1vPShyK28pLzIpLGg8aSYmKGk9aD0oaStoKS8yKSx0LngwPXIsdC55MD1pLHQueDE9byx0LnkxPWgsdC5jaGlsZHJlbiYmKG49YVt0LmRlcHRoKzFdPXUodCkvMixyKz1sKHQpLW4saSs9Zih0KS1uLG8tPWModCktbixoLT1zKHQpLW4sbzxyJiYocj1vPShyK28pLzIpLGg8aSYmKGk9aD0oaStoKS8yKSxlKHQscixpLG8saCkpfXZhciBlPW12LHI9ITEsaT0xLG89MSxhPVswXSx1PSRvLGY9JG8sYz0kbyxzPSRvLGw9JG87cmV0dXJuIHQucm91bmQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ISFuLHQpOnJ9LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rblswXSxvPStuWzFdLHQpOltpLG9dfSx0LnRpbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Vm8obiksdCk6ZX0sdC5wYWRkaW5nPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QucGFkZGluZ0lubmVyKG4pLnBhZGRpbmdPdXRlcihuKTp0LnBhZGRpbmdJbm5lcigpfSx0LnBhZGRpbmdJbm5lcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOnV9LHQucGFkZGluZ091dGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QucGFkZGluZ1RvcChuKS5wYWRkaW5nUmlnaHQobikucGFkZGluZ0JvdHRvbShuKS5wYWRkaW5nTGVmdChuKTp0LnBhZGRpbmdUb3AoKX0sdC5wYWRkaW5nVG9wPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6Zn0sdC5wYWRkaW5nUmlnaHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpjfSx0LnBhZGRpbmdCb3R0b209ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpzfSx0LnBhZGRpbmdMZWZ0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6bH0sdH0sdC50cmVlbWFwQmluYXJ5PWZ1bmN0aW9uKHQsbixlLHIsaSl7ZnVuY3Rpb24gbyh0LG4sZSxyLGksYSx1KXtpZih0Pj1uLTEpe3ZhciBjPWZbdF07cmV0dXJuIGMueDA9cixjLnkwPWksYy54MT1hLHZvaWQoYy55MT11KX1mb3IodmFyIGw9c1t0XSxoPWUvMitsLGQ9dCsxLHA9bi0xO2Q8cDspe3ZhciB2PWQrcD4+PjE7c1t2XTxoP2Q9disxOnA9dn1oLXNbZC0xXTxzW2RdLWgmJnQrMTxkJiYtLWQ7dmFyIGc9c1tkXS1sLHk9ZS1nO2lmKGEtcj51LWkpe3ZhciBfPShyKnkrYSpnKS9lO28odCxkLGcscixpLF8sdSksbyhkLG4seSxfLGksYSx1KX1lbHNle3ZhciBiPShpKnkrdSpnKS9lO28odCxkLGcscixpLGEsYiksbyhkLG4seSxyLGIsYSx1KX19dmFyIGEsdSxmPXQuY2hpbGRyZW4sYz1mLmxlbmd0aCxzPW5ldyBBcnJheShjKzEpO2ZvcihzWzBdPXU9YT0wO2E8YzsrK2Epc1thKzFdPXUrPWZbYV0udmFsdWU7bygwLGMsdC52YWx1ZSxuLGUscixpKX0sdC50cmVlbWFwRGljZT1uYSx0LnRyZWVtYXBTbGljZT1zYSx0LnRyZWVtYXBTbGljZURpY2U9ZnVuY3Rpb24odCxuLGUscixpKXsoMSZ0LmRlcHRoP3NhOm5hKSh0LG4sZSxyLGkpfSx0LnRyZWVtYXBTcXVhcmlmeT1tdix0LnRyZWVtYXBSZXNxdWFyaWZ5PXh2LHQuaW50ZXJwb2xhdGU9ZG4sdC5pbnRlcnBvbGF0ZUFycmF5PWZuLHQuaW50ZXJwb2xhdGVCYXNpcz1LdCx0LmludGVycG9sYXRlQmFzaXNDbG9zZWQ9dG4sdC5pbnRlcnBvbGF0ZURhdGU9Y24sdC5pbnRlcnBvbGF0ZU51bWJlcj1zbix0LmludGVycG9sYXRlT2JqZWN0PWxuLHQuaW50ZXJwb2xhdGVSb3VuZD1wbix0LmludGVycG9sYXRlU3RyaW5nPWhuLHQuaW50ZXJwb2xhdGVUcmFuc2Zvcm1Dc3M9c2wsdC5pbnRlcnBvbGF0ZVRyYW5zZm9ybVN2Zz1sbCx0LmludGVycG9sYXRlWm9vbT1fbix0LmludGVycG9sYXRlUmdiPXJsLHQuaW50ZXJwb2xhdGVSZ2JCYXNpcz1pbCx0LmludGVycG9sYXRlUmdiQmFzaXNDbG9zZWQ9b2wsdC5pbnRlcnBvbGF0ZUhzbD1nbCx0LmludGVycG9sYXRlSHNsTG9uZz15bCx0LmludGVycG9sYXRlTGFiPWZ1bmN0aW9uKHQsbil7dmFyIGU9YW4oKHQ9RnQodCkpLmwsKG49RnQobikpLmwpLHI9YW4odC5hLG4uYSksaT1hbih0LmIsbi5iKSxvPWFuKHQub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdC5sPWUobiksdC5hPXIobiksdC5iPWkobiksdC5vcGFjaXR5PW8obiksdCtcIlwifX0sdC5pbnRlcnBvbGF0ZUhjbD1fbCx0LmludGVycG9sYXRlSGNsTG9uZz1ibCx0LmludGVycG9sYXRlQ3ViZWhlbGl4PW1sLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXhMb25nPXhsLHQucGllY2V3aXNlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPTAscj1uLmxlbmd0aC0xLGk9blswXSxvPW5ldyBBcnJheShyPDA/MDpyKTtlPHI7KW9bZV09dChpLGk9blsrK2VdKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49TWF0aC5tYXgoMCxNYXRoLm1pbihyLTEsTWF0aC5mbG9vcih0Kj1yKSkpO3JldHVybiBvW25dKHQtbil9fSx0LnF1YW50aXplPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW5ldyBBcnJheShuKSxyPTA7cjxuOysrcillW3JdPXQoci8obi0xKSk7cmV0dXJuIGV9LHQucGF0aD1vZSx0LnBvbHlnb25BcmVhPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPS0xLHI9dC5sZW5ndGgsaT10W3ItMV0sbz0wOysrZTxyOyluPWksaT10W2VdLG8rPW5bMV0qaVswXS1uWzBdKmlbMV07cmV0dXJuIG8vMn0sdC5wb2x5Z29uQ2VudHJvaWQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj0tMSxpPXQubGVuZ3RoLG89MCxhPTAsdT10W2ktMV0sZj0wOysrcjxpOyluPXUsdT10W3JdLGYrPWU9blswXSp1WzFdLXVbMF0qblsxXSxvKz0oblswXSt1WzBdKSplLGErPShuWzFdK3VbMV0pKmU7cmV0dXJuIGYqPTMsW28vZixhL2ZdfSx0LnBvbHlnb25IdWxsPWZ1bmN0aW9uKHQpe2lmKChlPXQubGVuZ3RoKTwzKXJldHVybiBudWxsO3ZhciBuLGUscj1uZXcgQXJyYXkoZSksaT1uZXcgQXJyYXkoZSk7Zm9yKG49MDtuPGU7KytuKXJbbl09Wyt0W25dWzBdLCt0W25dWzFdLG5dO2ZvcihyLnNvcnQoZGEpLG49MDtuPGU7KytuKWlbbl09W3Jbbl1bMF0sLXJbbl1bMV1dO3ZhciBvPXBhKHIpLGE9cGEoaSksdT1hWzBdPT09b1swXSxmPWFbYS5sZW5ndGgtMV09PT1vW28ubGVuZ3RoLTFdLGM9W107Zm9yKG49by5sZW5ndGgtMTtuPj0wOy0tbiljLnB1c2godFtyW29bbl1dWzJdXSk7Zm9yKG49K3U7bjxhLmxlbmd0aC1mOysrbiljLnB1c2godFtyW2Fbbl1dWzJdXSk7cmV0dXJuIGN9LHQucG9seWdvbkNvbnRhaW5zPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlLHIsaT10Lmxlbmd0aCxvPXRbaS0xXSxhPW5bMF0sdT1uWzFdLGY9b1swXSxjPW9bMV0scz0hMSxsPTA7bDxpOysrbCllPShvPXRbbF0pWzBdLChyPW9bMV0pPnUhPWM+dSYmYTwoZi1lKSoodS1yKS8oYy1yKStlJiYocz0hcyksZj1lLGM9cjtyZXR1cm4gc30sdC5wb2x5Z29uTGVuZ3RoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHI9LTEsaT10Lmxlbmd0aCxvPXRbaS0xXSxhPW9bMF0sdT1vWzFdLGY9MDsrK3I8aTspbj1hLGU9dSxuLT1hPShvPXRbcl0pWzBdLGUtPXU9b1sxXSxmKz1NYXRoLnNxcnQobipuK2UqZSk7cmV0dXJuIGZ9LHQucXVhZHRyZWU9amUsdC5yYW5kb21Vbmlmb3JtPXd2LHQucmFuZG9tTm9ybWFsPU12LHQucmFuZG9tTG9nTm9ybWFsPUF2LHQucmFuZG9tQmF0ZXM9TnYsdC5yYW5kb21JcndpbkhhbGw9VHYsdC5yYW5kb21FeHBvbmVudGlhbD1Tdix0LnNjYWxlQmFuZD15YSx0LnNjYWxlUG9pbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gX2EoeWEoKS5wYWRkaW5nSW5uZXIoMSkpfSx0LnNjYWxlSWRlbnRpdHk9RWEsdC5zY2FsZUxpbmVhcj1TYSx0LnNjYWxlTG9nPVVhLHQuc2NhbGVPcmRpbmFsPWdhLHQuc2NhbGVJbXBsaWNpdD1Qdix0LnNjYWxlUG93PU9hLHQuc2NhbGVTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIE9hKCkuZXhwb25lbnQoLjUpfSx0LnNjYWxlUXVhbnRpbGU9WWEsdC5zY2FsZVF1YW50aXplPUJhLHQuc2NhbGVUaHJlc2hvbGQ9RmEsdC5zY2FsZVRpbWU9ZnVuY3Rpb24oKXtyZXR1cm4gb2YoY2csdWcsVnYsWHYsanYsRnYsWXYsRHYsdC50aW1lRm9ybWF0KS5kb21haW4oW25ldyBEYXRlKDJlMywwLDEpLG5ldyBEYXRlKDJlMywwLDIpXSl9LHQuc2NhbGVVdGM9ZnVuY3Rpb24oKXtyZXR1cm4gb2YoUmcsUGcseWcsdmcsZGcsbGcsWXYsRHYsdC51dGNGb3JtYXQpLmRvbWFpbihbRGF0ZS5VVEMoMmUzLDAsMSksRGF0ZS5VVEMoMmUzLDAsMildKX0sdC5zY2FsZVNlcXVlbnRpYWw9YWYsdC5zY2FsZURpdmVyZ2luZz11Zix0LnNjaGVtZUNhdGVnb3J5MTA9WmcsdC5zY2hlbWVBY2NlbnQ9UWcsdC5zY2hlbWVEYXJrMj1KZyx0LnNjaGVtZVBhaXJlZD1LZyx0LnNjaGVtZVBhc3RlbDE9dHksdC5zY2hlbWVQYXN0ZWwyPW55LHQuc2NoZW1lU2V0MT1leSx0LnNjaGVtZVNldDI9cnksdC5zY2hlbWVTZXQzPWl5LHQuaW50ZXJwb2xhdGVCckJHPWF5LHQuc2NoZW1lQnJCRz1veSx0LmludGVycG9sYXRlUFJHbj1meSx0LnNjaGVtZVBSR249dXksdC5pbnRlcnBvbGF0ZVBpWUc9c3ksdC5zY2hlbWVQaVlHPWN5LHQuaW50ZXJwb2xhdGVQdU9yPWh5LHQuc2NoZW1lUHVPcj1seSx0LmludGVycG9sYXRlUmRCdT1weSx0LnNjaGVtZVJkQnU9ZHksdC5pbnRlcnBvbGF0ZVJkR3k9Z3ksdC5zY2hlbWVSZEd5PXZ5LHQuaW50ZXJwb2xhdGVSZFlsQnU9X3ksdC5zY2hlbWVSZFlsQnU9eXksdC5pbnRlcnBvbGF0ZVJkWWxHbj1teSx0LnNjaGVtZVJkWWxHbj1ieSx0LmludGVycG9sYXRlU3BlY3RyYWw9d3ksdC5zY2hlbWVTcGVjdHJhbD14eSx0LmludGVycG9sYXRlQnVHbj1BeSx0LnNjaGVtZUJ1R249TXksdC5pbnRlcnBvbGF0ZUJ1UHU9TnksdC5zY2hlbWVCdVB1PVR5LHQuaW50ZXJwb2xhdGVHbkJ1PUV5LHQuc2NoZW1lR25CdT1TeSx0LmludGVycG9sYXRlT3JSZD1DeSx0LnNjaGVtZU9yUmQ9a3ksdC5pbnRlcnBvbGF0ZVB1QnVHbj16eSx0LnNjaGVtZVB1QnVHbj1QeSx0LmludGVycG9sYXRlUHVCdT1MeSx0LnNjaGVtZVB1QnU9UnksdC5pbnRlcnBvbGF0ZVB1UmQ9VXksdC5zY2hlbWVQdVJkPUR5LHQuaW50ZXJwb2xhdGVSZFB1PU95LHQuc2NoZW1lUmRQdT1xeSx0LmludGVycG9sYXRlWWxHbkJ1PUJ5LHQuc2NoZW1lWWxHbkJ1PVl5LHQuaW50ZXJwb2xhdGVZbEduPUl5LHQuc2NoZW1lWWxHbj1GeSx0LmludGVycG9sYXRlWWxPckJyPUh5LHQuc2NoZW1lWWxPckJyPWp5LHQuaW50ZXJwb2xhdGVZbE9yUmQ9R3ksdC5zY2hlbWVZbE9yUmQ9WHksdC5pbnRlcnBvbGF0ZUJsdWVzPSR5LHQuc2NoZW1lQmx1ZXM9VnksdC5pbnRlcnBvbGF0ZUdyZWVucz1aeSx0LnNjaGVtZUdyZWVucz1XeSx0LmludGVycG9sYXRlR3JleXM9SnksdC5zY2hlbWVHcmV5cz1ReSx0LmludGVycG9sYXRlUHVycGxlcz10Xyx0LnNjaGVtZVB1cnBsZXM9S3ksdC5pbnRlcnBvbGF0ZVJlZHM9ZV8sdC5zY2hlbWVSZWRzPW5fLHQuaW50ZXJwb2xhdGVPcmFuZ2VzPWlfLHQuc2NoZW1lT3Jhbmdlcz1yXyx0LmludGVycG9sYXRlQ3ViZWhlbGl4RGVmYXVsdD1vXyx0LmludGVycG9sYXRlUmFpbmJvdz1mdW5jdGlvbih0KXsodDwwfHx0PjEpJiYodC09TWF0aC5mbG9vcih0KSk7dmFyIG49TWF0aC5hYnModC0uNSk7cmV0dXJuIGZfLmg9MzYwKnQtMTAwLGZfLnM9MS41LTEuNSpuLGZfLmw9LjgtLjkqbixmXytcIlwifSx0LmludGVycG9sYXRlV2FybT1hXyx0LmludGVycG9sYXRlQ29vbD11Xyx0LmludGVycG9sYXRlU2luZWJvdz1mdW5jdGlvbih0KXt2YXIgbjtyZXR1cm4gdD0oLjUtdCkqTWF0aC5QSSxjXy5yPTI1NSoobj1NYXRoLnNpbih0KSkqbixjXy5nPTI1NSoobj1NYXRoLnNpbih0K3NfKSkqbixjXy5iPTI1NSoobj1NYXRoLnNpbih0K2xfKSkqbixjXytcIlwifSx0LmludGVycG9sYXRlVmlyaWRpcz1oXyx0LmludGVycG9sYXRlTWFnbWE9ZF8sdC5pbnRlcnBvbGF0ZUluZmVybm89cF8sdC5pbnRlcnBvbGF0ZVBsYXNtYT12Xyx0LmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gY3QoQyh0KS5jYWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfSx0LmNyZWF0b3I9Qyx0LmxvY2FsPXN0LHQubWF0Y2hlcj1icyx0Lm1vdXNlPXB0LHQubmFtZXNwYWNlPWssdC5uYW1lc3BhY2VzPXZzLHQuY2xpZW50UG9pbnQ9ZHQsdC5zZWxlY3Q9Y3QsdC5zZWxlY3RBbGw9ZnVuY3Rpb24odCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/bmV3IHV0KFtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHQpXSxbZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XSk6bmV3IHV0KFtudWxsPT10P1tdOnRdLHdzKX0sdC5zZWxlY3Rpb249ZnQsdC5zZWxlY3Rvcj16LHQuc2VsZWN0b3JBbGw9TCx0LnN0eWxlPUYsdC50b3VjaD12dCx0LnRvdWNoZXM9ZnVuY3Rpb24odCxuKXtudWxsPT1uJiYobj1odCgpLnRvdWNoZXMpO2Zvcih2YXIgZT0wLHI9bj9uLmxlbmd0aDowLGk9bmV3IEFycmF5KHIpO2U8cjsrK2UpaVtlXT1kdCh0LG5bZV0pO3JldHVybiBpfSx0LndpbmRvdz1CLHQuY3VzdG9tRXZlbnQ9b3QsdC5hcmM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQsYyxzPStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxsPStlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxoPW8uYXBwbHkodGhpcyxhcmd1bWVudHMpLVRfLGQ9YS5hcHBseSh0aGlzLGFyZ3VtZW50cyktVF8scD1nXyhkLWgpLHY9ZD5oO2lmKGZ8fChmPXQ9b2UoKSksbDxzJiYoYz1sLGw9cyxzPWMpLGw+TV8paWYocD5OXy1NXylmLm1vdmVUbyhsKl9fKGgpLGwqeF8oaCkpLGYuYXJjKDAsMCxsLGgsZCwhdikscz5NXyYmKGYubW92ZVRvKHMqX18oZCkscyp4XyhkKSksZi5hcmMoMCwwLHMsZCxoLHYpKTtlbHNle3ZhciBnLHksXz1oLGI9ZCxtPWgseD1kLHc9cCxNPXAsQT11LmFwcGx5KHRoaXMsYXJndW1lbnRzKS8yLFQ9QT5NXyYmKGk/K2kuYXBwbHkodGhpcyxhcmd1bWVudHMpOndfKHMqcytsKmwpKSxOPW1fKGdfKGwtcykvMiwrci5hcHBseSh0aGlzLGFyZ3VtZW50cykpLFM9TixFPU47aWYoVD5NXyl7dmFyIGs9aGYoVC9zKnhfKEEpKSxDPWhmKFQvbCp4XyhBKSk7KHctPTIqayk+TV8/KGsqPXY/MTotMSxtKz1rLHgtPWspOih3PTAsbT14PShoK2QpLzIpLChNLT0yKkMpPk1fPyhDKj12PzE6LTEsXys9QyxiLT1DKTooTT0wLF89Yj0oaCtkKS8yKX12YXIgUD1sKl9fKF8pLHo9bCp4XyhfKSxSPXMqX18oeCksTD1zKnhfKHgpO2lmKE4+TV8pe3ZhciBEPWwqX18oYiksVT1sKnhfKGIpLHE9cypfXyhtKSxPPXMqeF8obSk7aWYocDxBXyl7dmFyIFk9dz5NXz9mdW5jdGlvbih0LG4sZSxyLGksbyxhLHUpe3ZhciBmPWUtdCxjPXItbixzPWEtaSxsPXUtbyxoPShzKihuLW8pLWwqKHQtaSkpLyhsKmYtcypjKTtyZXR1cm5bdCtoKmYsbitoKmNdfShQLHoscSxPLEQsVSxSLEwpOltSLExdLEI9UC1ZWzBdLEY9ei1ZWzFdLEk9RC1ZWzBdLGo9VS1ZWzFdLEg9MS94XyhmdW5jdGlvbih0KXtyZXR1cm4gdD4xPzA6dDwtMT9BXzpNYXRoLmFjb3ModCl9KChCKkkrRipqKS8od18oQipCK0YqRikqd18oSSpJK2oqaikpKS8yKSxYPXdfKFlbMF0qWVswXStZWzFdKllbMV0pO1M9bV8oTiwocy1YKS8oSC0xKSksRT1tXyhOLChsLVgpLyhIKzEpKX19TT5NXz9FPk1fPyhnPV9mKHEsTyxQLHosbCxFLHYpLHk9X2YoRCxVLFIsTCxsLEUsdiksZi5tb3ZlVG8oZy5jeCtnLngwMSxnLmN5K2cueTAxKSxFPE4/Zi5hcmMoZy5jeCxnLmN5LEUseV8oZy55MDEsZy54MDEpLHlfKHkueTAxLHkueDAxKSwhdik6KGYuYXJjKGcuY3gsZy5jeSxFLHlfKGcueTAxLGcueDAxKSx5XyhnLnkxMSxnLngxMSksIXYpLGYuYXJjKDAsMCxsLHlfKGcuY3krZy55MTEsZy5jeCtnLngxMSkseV8oeS5jeSt5LnkxMSx5LmN4K3kueDExKSwhdiksZi5hcmMoeS5jeCx5LmN5LEUseV8oeS55MTEseS54MTEpLHlfKHkueTAxLHkueDAxKSwhdikpKTooZi5tb3ZlVG8oUCx6KSxmLmFyYygwLDAsbCxfLGIsIXYpKTpmLm1vdmVUbyhQLHopLHM+TV8mJnc+TV8/Uz5NXz8oZz1fZihSLEwsRCxVLHMsLVMsdikseT1fZihQLHoscSxPLHMsLVMsdiksZi5saW5lVG8oZy5jeCtnLngwMSxnLmN5K2cueTAxKSxTPE4/Zi5hcmMoZy5jeCxnLmN5LFMseV8oZy55MDEsZy54MDEpLHlfKHkueTAxLHkueDAxKSwhdik6KGYuYXJjKGcuY3gsZy5jeSxTLHlfKGcueTAxLGcueDAxKSx5XyhnLnkxMSxnLngxMSksIXYpLGYuYXJjKDAsMCxzLHlfKGcuY3krZy55MTEsZy5jeCtnLngxMSkseV8oeS5jeSt5LnkxMSx5LmN4K3kueDExKSx2KSxmLmFyYyh5LmN4LHkuY3ksUyx5Xyh5LnkxMSx5LngxMSkseV8oeS55MDEseS54MDEpLCF2KSkpOmYuYXJjKDAsMCxzLHgsbSx2KTpmLmxpbmVUbyhSLEwpfWVsc2UgZi5tb3ZlVG8oMCwwKTtpZihmLmNsb3NlUGF0aCgpLHQpcmV0dXJuIGY9bnVsbCx0K1wiXCJ8fG51bGx9dmFyIG49ZGYsZT1wZixyPWxmKDApLGk9bnVsbCxvPXZmLGE9Z2YsdT15ZixmPW51bGw7cmV0dXJuIHQuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgdD0oK24uYXBwbHkodGhpcyxhcmd1bWVudHMpKyArZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIscj0oK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKyArYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItQV8vMjtyZXR1cm5bX18ocikqdCx4XyhyKSp0XX0sdC5pbm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoK2UpLHQpOm59LHQub3V0ZXJSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmNvcm5lclJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOnJ9LHQucGFkUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PW4/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQuc3RhcnRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOm99LHQuZW5kQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTphfSx0LnBhZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6dX0sdC5jb250ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPW51bGw9PW4/bnVsbDpuLHQpOmZ9LHR9LHQuYXJlYT1BZix0LmxpbmU9TWYsdC5waWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciB1LGYsYyxzLGwsaD10Lmxlbmd0aCxkPTAscD1uZXcgQXJyYXkoaCksdj1uZXcgQXJyYXkoaCksZz0raS5hcHBseSh0aGlzLGFyZ3VtZW50cykseT1NYXRoLm1pbihOXyxNYXRoLm1heCgtTl8sby5hcHBseSh0aGlzLGFyZ3VtZW50cyktZykpLF89TWF0aC5taW4oTWF0aC5hYnMoeSkvaCxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYj1fKih5PDA/LTE6MSk7Zm9yKHU9MDt1PGg7Kyt1KShsPXZbcFt1XT11XT0rbih0W3VdLHUsdCkpPjAmJihkKz1sKTtmb3IobnVsbCE9ZT9wLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gZSh2W3RdLHZbbl0pfSk6bnVsbCE9ciYmcC5zb3J0KGZ1bmN0aW9uKG4sZSl7cmV0dXJuIHIodFtuXSx0W2VdKX0pLHU9MCxjPWQ/KHktaCpiKS9kOjA7dTxoOysrdSxnPXMpZj1wW3VdLHM9ZysoKGw9dltmXSk+MD9sKmM6MCkrYix2W2ZdPXtkYXRhOnRbZl0saW5kZXg6dSx2YWx1ZTpsLHN0YXJ0QW5nbGU6ZyxlbmRBbmdsZTpzLHBhZEFuZ2xlOl99O3JldHVybiB2fXZhciBuPU5mLGU9VGYscj1udWxsLGk9bGYoMCksbz1sZihOXyksYT1sZigwKTtyZXR1cm4gdC52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoK2UpLHQpOm59LHQuc29ydFZhbHVlcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1uLHI9bnVsbCx0KTplfSx0LnNvcnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bixlPW51bGwsdCk6cn0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC5lbmRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOm99LHQucGFkQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTphfSx0fSx0LmFyZWFSYWRpYWw9UGYsdC5yYWRpYWxBcmVhPVBmLHQubGluZVJhZGlhbD1DZix0LnJhZGlhbExpbmU9Q2YsdC5wb2ludFJhZGlhbD16Zix0LmxpbmtIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuIERmKFVmKX0sdC5saW5rVmVydGljYWw9ZnVuY3Rpb24oKXtyZXR1cm4gRGYocWYpfSx0LmxpbmtSYWRpYWw9ZnVuY3Rpb24oKXt2YXIgdD1EZihPZik7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdH0sdC5zeW1ib2w9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ7aWYocnx8KHI9dD1vZSgpKSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKS5kcmF3KHIsK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx0KXJldHVybiByPW51bGwsdCtcIlwifHxudWxsfXZhciBuPWxmKGtfKSxlPWxmKDY0KSxyPW51bGw7cmV0dXJuIHQudHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bGYoZSksdCk6bn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5jb250ZXh0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpuLHQpOnJ9LHR9LHQuc3ltYm9scz1YXyx0LnN5bWJvbENpcmNsZT1rXyx0LnN5bWJvbENyb3NzPUNfLHQuc3ltYm9sRGlhbW9uZD1SXyx0LnN5bWJvbFNxdWFyZT1PXyx0LnN5bWJvbFN0YXI9cV8sdC5zeW1ib2xUcmlhbmdsZT1CXyx0LnN5bWJvbFd5ZT1IXyx0LmN1cnZlQmFzaXNDbG9zZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBJZih0KX0sdC5jdXJ2ZUJhc2lzT3Blbj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGpmKHQpfSx0LmN1cnZlQmFzaXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBGZih0KX0sdC5jdXJ2ZUJ1bmRsZT1HXyx0LmN1cnZlQ2FyZGluYWxDbG9zZWQ9JF8sdC5jdXJ2ZUNhcmRpbmFsT3Blbj1XXyx0LmN1cnZlQ2FyZGluYWw9Vl8sdC5jdXJ2ZUNhdG11bGxSb21DbG9zZWQ9UV8sdC5jdXJ2ZUNhdG11bGxSb21PcGVuPUpfLHQuY3VydmVDYXRtdWxsUm9tPVpfLHQuY3VydmVMaW5lYXJDbG9zZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBLZih0KX0sdC5jdXJ2ZUxpbmVhcj1tZix0LmN1cnZlTW9ub3RvbmVYPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaWModCl9LHQuY3VydmVNb25vdG9uZVk9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBvYyh0KX0sdC5jdXJ2ZU5hdHVyYWw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB1Yyh0KX0sdC5jdXJ2ZVN0ZXA9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LC41KX0sdC5jdXJ2ZVN0ZXBBZnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsMSl9LHQuY3VydmVTdGVwQmVmb3JlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwwKX0sdC5zdGFjaz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYSx1PW4uYXBwbHkodGhpcyxhcmd1bWVudHMpLGY9dC5sZW5ndGgsYz11Lmxlbmd0aCxzPW5ldyBBcnJheShjKTtmb3Iobz0wO288YzsrK28pe2Zvcih2YXIgbCxoPXVbb10sZD1zW29dPW5ldyBBcnJheShmKSxwPTA7cDxmOysrcClkW3BdPWw9WzAsK2kodFtwXSxoLHAsdCldLGwuZGF0YT10W3BdO2Qua2V5PWh9Zm9yKG89MCxhPWUocyk7bzxjOysrbylzW2Fbb11dLmluZGV4PW87cmV0dXJuIHIocyxhKSxzfXZhciBuPWxmKFtdKSxlPWxjLHI9c2MsaT1oYztyZXR1cm4gdC5rZXlzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZihFXy5jYWxsKGUpKSx0KTpufSx0LnZhbHVlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC5vcmRlcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT1uP2xjOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZihFXy5jYWxsKG4pKSx0KTplfSx0Lm9mZnNldD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP3NjOm4sdCk6cn0sdH0sdC5zdGFja09mZnNldEV4cGFuZD1mdW5jdGlvbih0LG4pe2lmKChyPXQubGVuZ3RoKT4wKXtmb3IodmFyIGUscixpLG89MCxhPXRbMF0ubGVuZ3RoO288YTsrK28pe2ZvcihpPWU9MDtlPHI7KytlKWkrPXRbZV1bb11bMV18fDA7aWYoaSlmb3IoZT0wO2U8cjsrK2UpdFtlXVtvXVsxXS89aX1zYyh0LG4pfX0sdC5zdGFja09mZnNldERpdmVyZ2luZz1mdW5jdGlvbih0LG4pe2lmKCh1PXQubGVuZ3RoKT4xKWZvcih2YXIgZSxyLGksbyxhLHUsZj0wLGM9dFtuWzBdXS5sZW5ndGg7ZjxjOysrZilmb3Iobz1hPTAsZT0wO2U8dTsrK2UpKGk9KHI9dFtuW2VdXVtmXSlbMV0tclswXSk+PTA/KHJbMF09byxyWzFdPW8rPWkpOmk8MD8oclsxXT1hLHJbMF09YSs9aSk6clswXT1vfSx0LnN0YWNrT2Zmc2V0Tm9uZT1zYyx0LnN0YWNrT2Zmc2V0U2lsaG91ZXR0ZT1mdW5jdGlvbih0LG4pe2lmKChlPXQubGVuZ3RoKT4wKXtmb3IodmFyIGUscj0wLGk9dFtuWzBdXSxvPWkubGVuZ3RoO3I8bzsrK3Ipe2Zvcih2YXIgYT0wLHU9MDthPGU7KythKXUrPXRbYV1bcl1bMV18fDA7aVtyXVsxXSs9aVtyXVswXT0tdS8yfXNjKHQsbil9fSx0LnN0YWNrT2Zmc2V0V2lnZ2xlPWZ1bmN0aW9uKHQsbil7aWYoKGk9dC5sZW5ndGgpPjAmJihyPShlPXRbblswXV0pLmxlbmd0aCk+MCl7Zm9yKHZhciBlLHIsaSxvPTAsYT0xO2E8cjsrK2Epe2Zvcih2YXIgdT0wLGY9MCxjPTA7dTxpOysrdSl7Zm9yKHZhciBzPXRbblt1XV0sbD1zW2FdWzFdfHwwLGg9KGwtKHNbYS0xXVsxXXx8MCkpLzIsZD0wO2Q8dTsrK2Qpe3ZhciBwPXRbbltkXV07aCs9KHBbYV1bMV18fDApLShwW2EtMV1bMV18fDApfWYrPWwsYys9aCpsfWVbYS0xXVsxXSs9ZVthLTFdWzBdPW8sZiYmKG8tPWMvZil9ZVthLTFdWzFdKz1lW2EtMV1bMF09byxzYyh0LG4pfX0sdC5zdGFja09yZGVyQXNjZW5kaW5nPWRjLHQuc3RhY2tPcmRlckRlc2NlbmRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGRjKHQpLnJldmVyc2UoKX0sdC5zdGFja09yZGVySW5zaWRlT3V0PWZ1bmN0aW9uKHQpe3ZhciBuLGUscj10Lmxlbmd0aCxpPXQubWFwKHBjKSxvPWxjKHQpLnNvcnQoZnVuY3Rpb24odCxuKXtyZXR1cm4gaVtuXS1pW3RdfSksYT0wLHU9MCxmPVtdLGM9W107Zm9yKG49MDtuPHI7KytuKWU9b1tuXSxhPHU/KGErPWlbZV0sZi5wdXNoKGUpKToodSs9aVtlXSxjLnB1c2goZSkpO3JldHVybiBjLnJldmVyc2UoKS5jb25jYXQoZil9LHQuc3RhY2tPcmRlck5vbmU9bGMsdC5zdGFja09yZGVyUmV2ZXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gbGModCkucmV2ZXJzZSgpfSx0LnRpbWVJbnRlcnZhbD1JYSx0LnRpbWVNaWxsaXNlY29uZD1Edix0LnRpbWVNaWxsaXNlY29uZHM9VXYsdC51dGNNaWxsaXNlY29uZD1Edix0LnV0Y01pbGxpc2Vjb25kcz1Vdix0LnRpbWVTZWNvbmQ9WXYsdC50aW1lU2Vjb25kcz1Cdix0LnV0Y1NlY29uZD1Zdix0LnV0Y1NlY29uZHM9QnYsdC50aW1lTWludXRlPUZ2LHQudGltZU1pbnV0ZXM9SXYsdC50aW1lSG91cj1qdix0LnRpbWVIb3Vycz1Idix0LnRpbWVEYXk9WHYsdC50aW1lRGF5cz1Hdix0LnRpbWVXZWVrPVZ2LHQudGltZVdlZWtzPXRnLHQudGltZVN1bmRheT1Wdix0LnRpbWVTdW5kYXlzPXRnLHQudGltZU1vbmRheT0kdix0LnRpbWVNb25kYXlzPW5nLHQudGltZVR1ZXNkYXk9V3YsdC50aW1lVHVlc2RheXM9ZWcsdC50aW1lV2VkbmVzZGF5PVp2LHQudGltZVdlZG5lc2RheXM9cmcsdC50aW1lVGh1cnNkYXk9UXYsdC50aW1lVGh1cnNkYXlzPWlnLHQudGltZUZyaWRheT1Kdix0LnRpbWVGcmlkYXlzPW9nLHQudGltZVNhdHVyZGF5PUt2LHQudGltZVNhdHVyZGF5cz1hZyx0LnRpbWVNb250aD11Zyx0LnRpbWVNb250aHM9ZmcsdC50aW1lWWVhcj1jZyx0LnRpbWVZZWFycz1zZyx0LnV0Y01pbnV0ZT1sZyx0LnV0Y01pbnV0ZXM9aGcsdC51dGNIb3VyPWRnLHQudXRjSG91cnM9cGcsdC51dGNEYXk9dmcsdC51dGNEYXlzPWdnLHQudXRjV2Vlaz15Zyx0LnV0Y1dlZWtzPUFnLHQudXRjU3VuZGF5PXlnLHQudXRjU3VuZGF5cz1BZyx0LnV0Y01vbmRheT1fZyx0LnV0Y01vbmRheXM9VGcsdC51dGNUdWVzZGF5PWJnLHQudXRjVHVlc2RheXM9TmcsdC51dGNXZWRuZXNkYXk9bWcsdC51dGNXZWRuZXNkYXlzPVNnLHQudXRjVGh1cnNkYXk9eGcsdC51dGNUaHVyc2RheXM9RWcsdC51dGNGcmlkYXk9d2csdC51dGNGcmlkYXlzPWtnLHQudXRjU2F0dXJkYXk9TWcsdC51dGNTYXR1cmRheXM9Q2csdC51dGNNb250aD1QZyx0LnV0Y01vbnRocz16Zyx0LnV0Y1llYXI9UmcsdC51dGNZZWFycz1EZyx0LnRpbWVGb3JtYXREZWZhdWx0TG9jYWxlPW5mLHQudGltZUZvcm1hdExvY2FsZT0kYSx0Lmlzb0Zvcm1hdD1GZyx0Lmlzb1BhcnNlPUlnLHQubm93PXduLHQudGltZXI9VG4sdC50aW1lckZsdXNoPU5uLHQudGltZW91dD1Dbix0LmludGVydmFsPWZ1bmN0aW9uKHQsbixlKXt2YXIgcj1uZXcgQW4saT1uO3JldHVybiBudWxsPT1uPyhyLnJlc3RhcnQodCxuLGUpLHIpOihuPStuLGU9bnVsbD09ZT93bigpOitlLHIucmVzdGFydChmdW5jdGlvbiBvKGEpe2ErPWksci5yZXN0YXJ0KG8saSs9bixlKSx0KGEpfSxuLGUpLHIpfSx0LnRyYW5zaXRpb249WW4sdC5hY3RpdmU9ZnVuY3Rpb24odCxuKXt2YXIgZSxyLGk9dC5fX3RyYW5zaXRpb247aWYoaSl7bj1udWxsPT1uP251bGw6bitcIlwiO2ZvcihyIGluIGkpaWYoKGU9aVtyXSkuc3RhdGU+TGwmJmUubmFtZT09PW4pcmV0dXJuIG5ldyBPbihbW3RdXSxoaCxuLCtyKX1yZXR1cm4gbnVsbH0sdC5pbnRlcnJ1cHQ9RG4sdC52b3Jvbm9pPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gbmV3IEJjKHQubWFwKGZ1bmN0aW9uKHIsaSl7dmFyIG89W01hdGgucm91bmQobihyLGksdCkvYWIpKmFiLE1hdGgucm91bmQoZShyLGksdCkvYWIpKmFiXTtyZXR1cm4gby5pbmRleD1pLG8uZGF0YT1yLG99KSxyKX12YXIgbj1nYyxlPXljLHI9bnVsbDtyZXR1cm4gdC5wb2x5Z29ucz1mdW5jdGlvbihuKXtyZXR1cm4gdChuKS5wb2x5Z29ucygpfSx0LmxpbmtzPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4pLmxpbmtzKCl9LHQudHJpYW5nbGVzPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4pLnRyaWFuZ2xlcygpfSx0Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOnZjKCtlKSx0KTpufSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnZjKCtuKSx0KTplfSx0LmV4dGVudD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6W1srblswXVswXSwrblswXVsxXV0sWytuWzFdWzBdLCtuWzFdWzFdXV0sdCk6ciYmW1tyWzBdWzBdLHJbMF1bMV1dLFtyWzFdWzBdLHJbMV1bMV1dXX0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpbWzAsMF0sWytuWzBdLCtuWzFdXV0sdCk6ciYmW3JbMV1bMF0tclswXVswXSxyWzFdWzFdLXJbMF1bMV1dfSx0fSx0Lnpvb209ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKHQpe3QucHJvcGVydHkoXCJfX3pvb21cIiwkYykub24oXCJ3aGVlbC56b29tXCIsZikub24oXCJtb3VzZWRvd24uem9vbVwiLGMpLm9uKFwiZGJsY2xpY2suem9vbVwiLHMpLmZpbHRlcihtKS5vbihcInRvdWNoc3RhcnQuem9vbVwiLGwpLm9uKFwidG91Y2htb3ZlLnpvb21cIixoKS5vbihcInRvdWNoZW5kLnpvb20gdG91Y2hjYW5jZWwuem9vbVwiLGQpLnN0eWxlKFwidG91Y2gtYWN0aW9uXCIsXCJub25lXCIpLnN0eWxlKFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yXCIsXCJyZ2JhKDAsMCwwLDApXCIpfWZ1bmN0aW9uIGUodCxuKXtyZXR1cm4obj1NYXRoLm1heCh4WzBdLE1hdGgubWluKHhbMV0sbikpKT09PXQuaz90Om5ldyBJYyhuLHQueCx0LnkpfWZ1bmN0aW9uIHIodCxuLGUpe3ZhciByPW5bMF0tZVswXSp0LmssaT1uWzFdLWVbMV0qdC5rO3JldHVybiByPT09dC54JiZpPT09dC55P3Q6bmV3IEljKHQuayxyLGkpfWZ1bmN0aW9uIGkodCl7cmV0dXJuWygrdFswXVswXSsgK3RbMV1bMF0pLzIsKCt0WzBdWzFdKyArdFsxXVsxXSkvMl19ZnVuY3Rpb24gbyh0LG4sZSl7dC5vbihcInN0YXJ0Lnpvb21cIixmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLnN0YXJ0KCl9KS5vbihcImludGVycnVwdC56b29tIGVuZC56b29tXCIsZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKFwiem9vbVwiLGZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLHI9YSh0aGlzLHQpLG89eS5hcHBseSh0aGlzLHQpLHU9ZXx8aShvKSxmPU1hdGgubWF4KG9bMV1bMF0tb1swXVswXSxvWzFdWzFdLW9bMF1bMV0pLGM9dGhpcy5fX3pvb20scz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyx0KTpuLGw9QShjLmludmVydCh1KS5jb25jYXQoZi9jLmspLHMuaW52ZXJ0KHUpLmNvbmNhdChmL3MuaykpO3JldHVybiBmdW5jdGlvbih0KXtpZigxPT09dCl0PXM7ZWxzZXt2YXIgbj1sKHQpLGU9Zi9uWzJdO3Q9bmV3IEljKGUsdVswXS1uWzBdKmUsdVsxXS1uWzFdKmUpfXIuem9vbShudWxsLHQpfX0pfWZ1bmN0aW9uIGEodCxuKXtmb3IodmFyIGUscj0wLGk9VC5sZW5ndGg7cjxpOysrcilpZigoZT1UW3JdKS50aGF0PT09dClyZXR1cm4gZTtyZXR1cm4gbmV3IHUodCxuKX1mdW5jdGlvbiB1KHQsbil7dGhpcy50aGF0PXQsdGhpcy5hcmdzPW4sdGhpcy5pbmRleD0tMSx0aGlzLmFjdGl2ZT0wLHRoaXMuZXh0ZW50PXkuYXBwbHkodCxuKX1mdW5jdGlvbiBmKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciB0PWEodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20saT1NYXRoLm1heCh4WzBdLE1hdGgubWluKHhbMV0sbi5rKk1hdGgucG93KDIsYi5hcHBseSh0aGlzLGFyZ3VtZW50cykpKSksbz1wdCh0aGlzKTtpZih0LndoZWVsKXQubW91c2VbMF1bMF09PT1vWzBdJiZ0Lm1vdXNlWzBdWzFdPT09b1sxXXx8KHQubW91c2VbMV09bi5pbnZlcnQodC5tb3VzZVswXT1vKSksY2xlYXJUaW1lb3V0KHQud2hlZWwpO2Vsc2V7aWYobi5rPT09aSlyZXR1cm47dC5tb3VzZT1bbyxuLmludmVydChvKV0sRG4odGhpcyksdC5zdGFydCgpfVhjKCksdC53aGVlbD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC53aGVlbD1udWxsLHQuZW5kKCl9LGspLHQuem9vbShcIm1vdXNlXCIsXyhyKGUobixpKSx0Lm1vdXNlWzBdLHQubW91c2VbMV0pLHQuZXh0ZW50LHcpKX19ZnVuY3Rpb24gYygpe2lmKCF2JiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG49YSh0aGlzLGFyZ3VtZW50cyksZT1jdCh0LmV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLnpvb21cIixmdW5jdGlvbigpe2lmKFhjKCksIW4ubW92ZWQpe3ZhciBlPXQuZXZlbnQuY2xpZW50WC1vLGk9dC5ldmVudC5jbGllbnRZLXU7bi5tb3ZlZD1lKmUraSppPkN9bi56b29tKFwibW91c2VcIixfKHIobi50aGF0Ll9fem9vbSxuLm1vdXNlWzBdPXB0KG4udGhhdCksbi5tb3VzZVsxXSksbi5leHRlbnQsdykpfSwhMCkub24oXCJtb3VzZXVwLnpvb21cIixmdW5jdGlvbigpe2Uub24oXCJtb3VzZW1vdmUuem9vbSBtb3VzZXVwLnpvb21cIixudWxsKSxidCh0LmV2ZW50LnZpZXcsbi5tb3ZlZCksWGMoKSxuLmVuZCgpfSwhMCksaT1wdCh0aGlzKSxvPXQuZXZlbnQuY2xpZW50WCx1PXQuZXZlbnQuY2xpZW50WTtfdCh0LmV2ZW50LnZpZXcpLEhjKCksbi5tb3VzZT1baSx0aGlzLl9fem9vbS5pbnZlcnQoaSldLERuKHRoaXMpLG4uc3RhcnQoKX19ZnVuY3Rpb24gcygpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgaT10aGlzLl9fem9vbSxhPXB0KHRoaXMpLHU9aS5pbnZlcnQoYSksZj1pLmsqKHQuZXZlbnQuc2hpZnRLZXk/LjU6MiksYz1fKHIoZShpLGYpLGEsdSkseS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdyk7WGMoKSxNPjA/Y3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKE0pLmNhbGwobyxjLGEpOmN0KHRoaXMpLmNhbGwobi50cmFuc2Zvcm0sYyl9fWZ1bmN0aW9uIGwoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG4sZSxyLGksbz1hKHRoaXMsYXJndW1lbnRzKSx1PXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsZj11Lmxlbmd0aDtmb3IoSGMoKSxlPTA7ZTxmOysrZSlpPVtpPXZ0KHRoaXMsdSwocj11W2VdKS5pZGVudGlmaWVyKSx0aGlzLl9fem9vbS5pbnZlcnQoaSksci5pZGVudGlmaWVyXSxvLnRvdWNoMD9vLnRvdWNoMXx8KG8udG91Y2gxPWkpOihvLnRvdWNoMD1pLG49ITApO2lmKHAmJihwPWNsZWFyVGltZW91dChwKSwhby50b3VjaDEpKXJldHVybiBvLmVuZCgpLHZvaWQoKGk9Y3QodGhpcykub24oXCJkYmxjbGljay56b29tXCIpKSYmaS5hcHBseSh0aGlzLGFyZ3VtZW50cykpO24mJihwPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtwPW51bGx9LEUpLERuKHRoaXMpLG8uc3RhcnQoKSl9fWZ1bmN0aW9uIGgoKXt2YXIgbixpLG8sdSxmPWEodGhpcyxhcmd1bWVudHMpLGM9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxzPWMubGVuZ3RoO2ZvcihYYygpLHAmJihwPWNsZWFyVGltZW91dChwKSksbj0wO248czsrK24pbz12dCh0aGlzLGMsKGk9Y1tuXSkuaWRlbnRpZmllciksZi50b3VjaDAmJmYudG91Y2gwWzJdPT09aS5pZGVudGlmaWVyP2YudG91Y2gwWzBdPW86Zi50b3VjaDEmJmYudG91Y2gxWzJdPT09aS5pZGVudGlmaWVyJiYoZi50b3VjaDFbMF09byk7aWYoaT1mLnRoYXQuX196b29tLGYudG91Y2gxKXt2YXIgbD1mLnRvdWNoMFswXSxoPWYudG91Y2gwWzFdLGQ9Zi50b3VjaDFbMF0sdj1mLnRvdWNoMVsxXSxnPShnPWRbMF0tbFswXSkqZysoZz1kWzFdLWxbMV0pKmcseT0oeT12WzBdLWhbMF0pKnkrKHk9dlsxXS1oWzFdKSp5O2k9ZShpLE1hdGguc3FydChnL3kpKSxvPVsobFswXStkWzBdKS8yLChsWzFdK2RbMV0pLzJdLHU9WyhoWzBdK3ZbMF0pLzIsKGhbMV0rdlsxXSkvMl19ZWxzZXtpZighZi50b3VjaDApcmV0dXJuO289Zi50b3VjaDBbMF0sdT1mLnRvdWNoMFsxXX1mLnpvb20oXCJ0b3VjaFwiLF8ocihpLG8sdSksZi5leHRlbnQsdykpfWZ1bmN0aW9uIGQoKXt2YXIgbixlLHI9YSh0aGlzLGFyZ3VtZW50cyksaT10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLG89aS5sZW5ndGg7Zm9yKEhjKCksdiYmY2xlYXJUaW1lb3V0KHYpLHY9c2V0VGltZW91dChmdW5jdGlvbigpe3Y9bnVsbH0sRSksbj0wO248bzsrK24pZT1pW25dLHIudG91Y2gwJiZyLnRvdWNoMFsyXT09PWUuaWRlbnRpZmllcj9kZWxldGUgci50b3VjaDA6ci50b3VjaDEmJnIudG91Y2gxWzJdPT09ZS5pZGVudGlmaWVyJiZkZWxldGUgci50b3VjaDE7ci50b3VjaDEmJiFyLnRvdWNoMCYmKHIudG91Y2gwPXIudG91Y2gxLGRlbGV0ZSByLnRvdWNoMSksci50b3VjaDA/ci50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KHIudG91Y2gwWzBdKTpyLmVuZCgpfXZhciBwLHYsZz1HYyx5PVZjLF89UWMsYj1XYyxtPVpjLHg9WzAsMS8wXSx3PVtbLTEvMCwtMS8wXSxbMS8wLDEvMF1dLE09MjUwLEE9X24sVD1bXSxTPU4oXCJzdGFydFwiLFwiem9vbVwiLFwiZW5kXCIpLEU9NTAwLGs9MTUwLEM9MDtyZXR1cm4gbi50cmFuc2Zvcm09ZnVuY3Rpb24odCxuKXt2YXIgZT10LnNlbGVjdGlvbj90LnNlbGVjdGlvbigpOnQ7ZS5wcm9wZXJ0eShcIl9fem9vbVwiLCRjKSx0IT09ZT9vKHQsbik6ZS5pbnRlcnJ1cHQoKS5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuc3RhcnQoKS56b29tKG51bGwsXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuKS5lbmQoKX0pfSxuLnNjYWxlQnk9ZnVuY3Rpb24odCxlKXtuLnNjYWxlVG8odCxmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fem9vbS5rKihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyxhcmd1bWVudHMpOmUpfSl9LG4uc2NhbGVUbz1mdW5jdGlvbih0LG8pe24udHJhbnNmb3JtKHQsZnVuY3Rpb24oKXt2YXIgdD15LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuPXRoaXMuX196b29tLGE9aSh0KSx1PW4uaW52ZXJ0KGEpLGY9XCJmdW5jdGlvblwiPT10eXBlb2Ygbz9vLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpvO3JldHVybiBfKHIoZShuLGYpLGEsdSksdCx3KX0pfSxuLnRyYW5zbGF0ZUJ5PWZ1bmN0aW9uKHQsZSxyKXtuLnRyYW5zZm9ybSh0LGZ1bmN0aW9uKCl7cmV0dXJuIF8odGhpcy5fX3pvb20udHJhbnNsYXRlKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiByP3IuYXBwbHkodGhpcyxhcmd1bWVudHMpOnIpLHkuYXBwbHkodGhpcyxhcmd1bWVudHMpLHcpfSl9LG4udHJhbnNsYXRlVG89ZnVuY3Rpb24odCxlLHIpe24udHJhbnNmb3JtKHQsZnVuY3Rpb24oKXt2YXIgdD15LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxuPXRoaXMuX196b29tLG89aSh0KTtyZXR1cm4gXyhmYi50cmFuc2xhdGUob1swXSxvWzFdKS5zY2FsZShuLmspLnRyYW5zbGF0ZShcImZ1bmN0aW9uXCI9PXR5cGVvZiBlPy1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiByPy1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTotciksdCx3KX0pfSx1LnByb3RvdHlwZT17c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gMT09Kyt0aGlzLmFjdGl2ZSYmKHRoaXMuaW5kZXg9VC5wdXNoKHRoaXMpLTEsdGhpcy5lbWl0KFwic3RhcnRcIikpLHRoaXN9LHpvb206ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpcy5tb3VzZSYmXCJtb3VzZVwiIT09dCYmKHRoaXMubW91c2VbMV09bi5pbnZlcnQodGhpcy5tb3VzZVswXSkpLHRoaXMudG91Y2gwJiZcInRvdWNoXCIhPT10JiYodGhpcy50b3VjaDBbMV09bi5pbnZlcnQodGhpcy50b3VjaDBbMF0pKSx0aGlzLnRvdWNoMSYmXCJ0b3VjaFwiIT09dCYmKHRoaXMudG91Y2gxWzFdPW4uaW52ZXJ0KHRoaXMudG91Y2gxWzBdKSksdGhpcy50aGF0Ll9fem9vbT1uLHRoaXMuZW1pdChcInpvb21cIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihULnNwbGljZSh0aGlzLmluZGV4LDEpLHRoaXMuaW5kZXg9LTEsdGhpcy5lbWl0KFwiZW5kXCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKHQpe290KG5ldyBmdW5jdGlvbih0LG4sZSl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnRyYW5zZm9ybT1lfShuLHQsdGhpcy50aGF0Ll9fem9vbSksUy5hcHBseSxTLFt0LHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LG4ud2hlZWxEZWx0YT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RmMoK3QpLG4pOmJ9LG4uZmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpGYyghIXQpLG4pOmd9LG4udG91Y2hhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpGYyghIXQpLG4pOm19LG4uZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpGYyhbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSksbik6eX0sbi5zY2FsZUV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeFswXT0rdFswXSx4WzFdPSt0WzFdLG4pOlt4WzBdLHhbMV1dfSxuLnRyYW5zbGF0ZUV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8od1swXVswXT0rdFswXVswXSx3WzFdWzBdPSt0WzFdWzBdLHdbMF1bMV09K3RbMF1bMV0sd1sxXVsxXT0rdFsxXVsxXSxuKTpbW3dbMF1bMF0sd1swXVsxXV0sW3dbMV1bMF0sd1sxXVsxXV1dfSxuLmNvbnN0cmFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz10LG4pOl99LG4uZHVyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE09K3Qsbik6TX0sbi5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQT10LG4pOkF9LG4ub249ZnVuY3Rpb24oKXt2YXIgdD1TLm9uLmFwcGx5KFMsYXJndW1lbnRzKTtyZXR1cm4gdD09PVM/bjp0fSxuLmNsaWNrRGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEM9KHQ9K3QpKnQsbik6TWF0aC5zcXJ0KEMpfSxufSx0Lnpvb21UcmFuc2Zvcm09amMsdC56b29tSWRlbnRpdHk9ZmIsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTsiLCIvKiFcbiAqIExpZ2h0Ym94IGZvciBCb290c3RyYXAgYnkgQGFzaGxleWR3XG4gKiBodHRwczovL2dpdGh1Yi5jb20vYXNobGV5ZHcvbGlnaHRib3hcbiAqXG4gKiBMaWNlbnNlOiBodHRwczovL2dpdGh1Yi5jb20vYXNobGV5ZHcvbGlnaHRib3gvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG4rZnVuY3Rpb24gKCQpIHtcblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxudmFyIExpZ2h0Ym94ID0gKGZ1bmN0aW9uICgkKSB7XG5cblx0dmFyIE5BTUUgPSAnZWtrb0xpZ2h0Ym94Jztcblx0dmFyIEpRVUVSWV9OT19DT05GTElDVCA9ICQuZm5bTkFNRV07XG5cblx0dmFyIERlZmF1bHQgPSB7XG5cdFx0dGl0bGU6ICcnLFxuXHRcdGZvb3RlcjogJycsXG5cdFx0bWF4V2lkdGg6IDk5OTksXG5cdFx0bWF4SGVpZ2h0OiA5OTk5LFxuXHRcdHNob3dBcnJvd3M6IHRydWUsIC8vZGlzcGxheSB0aGUgbGVmdCAvIHJpZ2h0IGFycm93cyBvciBub3Rcblx0XHR3cmFwcGluZzogdHJ1ZSwgLy9pZiB0cnVlLCBnYWxsZXJ5IGxvb3BzIGluZmluaXRlbHlcblx0XHR0eXBlOiBudWxsLCAvL2ZvcmNlIHRoZSBsaWdodGJveCBpbnRvIGltYWdlIC8geW91dHViZSBtb2RlLiBpZiBudWxsLCBvciBub3QgaW1hZ2V8eW91dHViZXx2aW1lbzsgZGV0ZWN0IGl0XG5cdFx0YWx3YXlzU2hvd0Nsb3NlOiBmYWxzZSwgLy9hbHdheXMgc2hvdyB0aGUgY2xvc2UgYnV0dG9uLCBldmVuIGlmIHRoZXJlIGlzIG5vIHRpdGxlXG5cdFx0bG9hZGluZ01lc3NhZ2U6ICc8ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1sb2FkZXJcIj48ZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj48L2Rpdj4nLCAvLyBodHRwOi8vdG9iaWFzYWhsaW4uY29tL3NwaW5raXQvXG5cdFx0bGVmdEFycm93OiAnPHNwYW4+JiMxMDA5NDs8L3NwYW4+Jyxcblx0XHRyaWdodEFycm93OiAnPHNwYW4+JiMxMDA5NTs8L3NwYW4+Jyxcblx0XHRzdHJpbmdzOiB7XG5cdFx0XHRjbG9zZTogJ0Nsb3NlJyxcblx0XHRcdGZhaWw6ICdGYWlsZWQgdG8gbG9hZCBpbWFnZTonLFxuXHRcdFx0dHlwZTogJ0NvdWxkIG5vdCBkZXRlY3QgcmVtb3RlIHRhcmdldCB0eXBlLiBGb3JjZSB0aGUgdHlwZSB1c2luZyBkYXRhLXR5cGUnXG5cdFx0fSxcblx0XHRkb2M6IGRvY3VtZW50LCAvLyBpZiBpbiBhbiBpZnJhbWUgY2FuIHNwZWNpZnkgdG9wLmRvY3VtZW50XG5cdFx0b25TaG93OiBmdW5jdGlvbiBvblNob3coKSB7fSxcblx0XHRvblNob3duOiBmdW5jdGlvbiBvblNob3duKCkge30sXG5cdFx0b25IaWRlOiBmdW5jdGlvbiBvbkhpZGUoKSB7fSxcblx0XHRvbkhpZGRlbjogZnVuY3Rpb24gb25IaWRkZW4oKSB7fSxcblx0XHRvbk5hdmlnYXRlOiBmdW5jdGlvbiBvbk5hdmlnYXRlKCkge30sXG5cdFx0b25Db250ZW50TG9hZGVkOiBmdW5jdGlvbiBvbkNvbnRlbnRMb2FkZWQoKSB7fVxuXHR9O1xuXG5cdHZhciBMaWdodGJveCA9IChmdW5jdGlvbiAoKSB7XG5cdFx0X2NyZWF0ZUNsYXNzKExpZ2h0Ym94LCBudWxsLCBbe1xuXHRcdFx0a2V5OiAnRGVmYXVsdCcsXG5cblx0XHRcdC8qKlxuICAgICAgIENsYXNzIHByb3BlcnRpZXM6XG4gICBcdCBfJGVsZW1lbnQ6IG51bGwgLT4gdGhlIDxhPiBlbGVtZW50IGN1cnJlbnRseSBiZWluZyBkaXNwbGF5ZWRcbiAgICBfJG1vZGFsOiBUaGUgYm9vdHN0cmFwIG1vZGFsIGdlbmVyYXRlZFxuICAgICAgIF8kbW9kYWxEaWFsb2c6IFRoZSAubW9kYWwtZGlhbG9nXG4gICAgICAgXyRtb2RhbENvbnRlbnQ6IFRoZSAubW9kYWwtY29udGVudFxuICAgICAgIF8kbW9kYWxCb2R5OiBUaGUgLm1vZGFsLWJvZHlcbiAgICAgICBfJG1vZGFsSGVhZGVyOiBUaGUgLm1vZGFsLWhlYWRlclxuICAgICAgIF8kbW9kYWxGb290ZXI6IFRoZSAubW9kYWwtZm9vdGVyXG4gICAgXyRsaWdodGJveENvbnRhaW5lck9uZTogQ29udGFpbmVyIG9mIHRoZSBmaXJzdCBsaWdodGJveCBlbGVtZW50XG4gICAgXyRsaWdodGJveENvbnRhaW5lclR3bzogQ29udGFpbmVyIG9mIHRoZSBzZWNvbmQgbGlnaHRib3ggZWxlbWVudFxuICAgIF8kbGlnaHRib3hCb2R5OiBGaXJzdCBlbGVtZW50IGluIHRoZSBjb250YWluZXJcbiAgICBfJG1vZGFsQXJyb3dzOiBUaGUgb3ZlcmxheWVkIGFycm93cyBjb250YWluZXJcbiAgIFx0IF8kZ2FsbGVyeUl0ZW1zOiBPdGhlciA8YT4ncyBhdmFpbGFibGUgZm9yIHRoaXMgZ2FsbGVyeVxuICAgIF9nYWxsZXJ5TmFtZTogTmFtZSBvZiB0aGUgY3VycmVudCBkYXRhKCdnYWxsZXJ5Jykgc2hvd2luZ1xuICAgIF9nYWxsZXJ5SW5kZXg6IFRoZSBjdXJyZW50IGluZGV4IG9mIHRoZSBfJGdhbGxlcnlJdGVtcyBiZWluZyBzaG93blxuICAgXHQgX2NvbmZpZzoge30gdGhlIG9wdGlvbnMgZm9yIHRoZSBtb2RhbFxuICAgIF9tb2RhbElkOiB1bmlxdWUgaWQgZm9yIHRoZSBjdXJyZW50IGxpZ2h0Ym94XG4gICAgX3BhZGRpbmcgLyBfYm9yZGVyOiBDU1MgcHJvcGVydGllcyBmb3IgdGhlIG1vZGFsIGNvbnRhaW5lcjsgdGhlc2UgYXJlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBhdmFpbGFibGUgc3BhY2UgZm9yIHRoZSBjb250ZW50XG4gICBcdCAqL1xuXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcblx0XHRcdFx0cmV0dXJuIERlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fV0pO1xuXG5cdFx0ZnVuY3Rpb24gTGlnaHRib3goJGVsZW1lbnQsIGNvbmZpZykge1xuXHRcdFx0dmFyIF90aGlzID0gdGhpcztcblxuXHRcdFx0X2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpZ2h0Ym94KTtcblxuXHRcdFx0dGhpcy5fY29uZmlnID0gJC5leHRlbmQoe30sIERlZmF1bHQsIGNvbmZpZyk7XG5cdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MgPSBudWxsO1xuXHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4ID0gMDtcblx0XHRcdHRoaXMuX2dhbGxlcnlOYW1lID0gbnVsbDtcblx0XHRcdHRoaXMuX3BhZGRpbmcgPSBudWxsO1xuXHRcdFx0dGhpcy5fYm9yZGVyID0gbnVsbDtcblx0XHRcdHRoaXMuX3RpdGxlSXNTaG93biA9IGZhbHNlO1xuXHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IGZhbHNlO1xuXHRcdFx0dGhpcy5fd2FudGVkV2lkdGggPSAwO1xuXHRcdFx0dGhpcy5fd2FudGVkSGVpZ2h0ID0gMDtcblx0XHRcdHRoaXMuX3RvdWNoc3RhcnRYID0gMDtcblx0XHRcdHRoaXMuX3RvdWNoZW5kWCA9IDA7XG5cblx0XHRcdHRoaXMuX21vZGFsSWQgPSAnZWtrb0xpZ2h0Ym94LScgKyBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwICsgMSk7XG5cdFx0XHR0aGlzLl8kZWxlbWVudCA9ICRlbGVtZW50IGluc3RhbmNlb2YgalF1ZXJ5ID8gJGVsZW1lbnQgOiAkKCRlbGVtZW50KTtcblxuXHRcdFx0dGhpcy5faXNCb290c3RyYXAzID0gJC5mbi5tb2RhbC5Db25zdHJ1Y3Rvci5WRVJTSU9OWzBdID09IDM7XG5cblx0XHRcdHZhciBoNCA9ICc8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiPicgKyAodGhpcy5fY29uZmlnLnRpdGxlIHx8IFwiJm5ic3A7XCIpICsgJzwvaDQ+Jztcblx0XHRcdHZhciBidG4gPSAnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIicgKyB0aGlzLl9jb25maWcuc3RyaW5ncy5jbG9zZSArICdcIj48c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPjwvYnV0dG9uPic7XG5cblx0XHRcdHZhciBoZWFkZXIgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlcicgKyAodGhpcy5fY29uZmlnLnRpdGxlIHx8IHRoaXMuX2NvbmZpZy5hbHdheXNTaG93Q2xvc2UgPyAnJyA6ICcgaGlkZScpICsgJ1wiPicgKyAodGhpcy5faXNCb290c3RyYXAzID8gYnRuICsgaDQgOiBoNCArIGJ0bikgKyAnPC9kaXY+Jztcblx0XHRcdHZhciBmb290ZXIgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlcicgKyAodGhpcy5fY29uZmlnLmZvb3RlciA/ICcnIDogJyBoaWRlJykgKyAnXCI+JyArICh0aGlzLl9jb25maWcuZm9vdGVyIHx8IFwiJm5ic3A7XCIpICsgJzwvZGl2Pic7XG5cdFx0XHR2YXIgYm9keSA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPjxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWNvbnRhaW5lclwiPjxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWl0ZW0gZmFkZSBpbiBzaG93XCI+PC9kaXY+PGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtaXRlbSBmYWRlXCI+PC9kaXY+PC9kaXY+PC9kaXY+Jztcblx0XHRcdHZhciBkaWFsb2cgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiIHJvbGU9XCJkb2N1bWVudFwiPjxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+JyArIGhlYWRlciArIGJvZHkgKyBmb290ZXIgKyAnPC9kaXY+PC9kaXY+Jztcblx0XHRcdCQodGhpcy5fY29uZmlnLmRvYy5ib2R5KS5hcHBlbmQoJzxkaXYgaWQ9XCInICsgdGhpcy5fbW9kYWxJZCArICdcIiBjbGFzcz1cImVra28tbGlnaHRib3ggbW9kYWwgZmFkZVwiIHRhYmluZGV4PVwiLTFcIiB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPicgKyBkaWFsb2cgKyAnPC9kaXY+Jyk7XG5cblx0XHRcdHRoaXMuXyRtb2RhbCA9ICQoJyMnICsgdGhpcy5fbW9kYWxJZCwgdGhpcy5fY29uZmlnLmRvYyk7XG5cdFx0XHR0aGlzLl8kbW9kYWxEaWFsb2cgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWRpYWxvZycpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxDb250ZW50ID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1jb250ZW50JykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbEJvZHkgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWJvZHknKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsSGVhZGVyID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1oZWFkZXInKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsRm9vdGVyID0gdGhpcy5fJG1vZGFsLmZpbmQoJy5tb2RhbC1mb290ZXInKS5maXJzdCgpO1xuXG5cdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIgPSB0aGlzLl8kbW9kYWxCb2R5LmZpbmQoJy5la2tvLWxpZ2h0Ym94LWNvbnRhaW5lcicpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbGlnaHRib3hCb2R5T25lID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJz4gZGl2OmZpcnN0LWNoaWxkJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRsaWdodGJveEJvZHlUd28gPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnPiBkaXY6bGFzdC1jaGlsZCcpLmZpcnN0KCk7XG5cblx0XHRcdHRoaXMuX2JvcmRlciA9IHRoaXMuX2NhbGN1bGF0ZUJvcmRlcnMoKTtcblx0XHRcdHRoaXMuX3BhZGRpbmcgPSB0aGlzLl9jYWxjdWxhdGVQYWRkaW5nKCk7XG5cblx0XHRcdHRoaXMuX2dhbGxlcnlOYW1lID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnZ2FsbGVyeScpO1xuXHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlOYW1lKSB7XG5cdFx0XHRcdHRoaXMuXyRnYWxsZXJ5SXRlbXMgPSAkKGRvY3VtZW50LmJvZHkpLmZpbmQoJypbZGF0YS1nYWxsZXJ5PVwiJyArIHRoaXMuX2dhbGxlcnlOYW1lICsgJ1wiXScpO1xuXHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXggPSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmluZGV4KHRoaXMuXyRlbGVtZW50KTtcblx0XHRcdFx0JChkb2N1bWVudCkub24oJ2tleWRvd24uZWtrb0xpZ2h0Ym94JywgdGhpcy5fbmF2aWdhdGlvbmFsQmluZGVyLmJpbmQodGhpcykpO1xuXG5cdFx0XHRcdC8vIGFkZCB0aGUgZGlyZWN0aW9uYWwgYXJyb3dzIHRvIHRoZSBtb2RhbFxuXHRcdFx0XHRpZiAodGhpcy5fY29uZmlnLnNob3dBcnJvd3MgJiYgdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmFwcGVuZCgnPGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtbmF2LW92ZXJsYXlcIj48YSBocmVmPVwiI1wiPicgKyB0aGlzLl9jb25maWcubGVmdEFycm93ICsgJzwvYT48YSBocmVmPVwiI1wiPicgKyB0aGlzLl9jb25maWcucmlnaHRBcnJvdyArICc8L2E+PC9kaXY+Jyk7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzID0gdGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmZpbmQoJ2Rpdi5la2tvLWxpZ2h0Ym94LW5hdi1vdmVybGF5JykuZmlyc3QoKTtcblx0XHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ2NsaWNrJywgJ2E6Zmlyc3QtY2hpbGQnLCBmdW5jdGlvbiAoZXZlbnQpIHtcblx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMubmF2aWdhdGVMZWZ0KCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCdjbGljaycsICdhOmxhc3QtY2hpbGQnLCBmdW5jdGlvbiAoZXZlbnQpIHtcblx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXMubmF2aWdhdGVSaWdodCgpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlTmF2aWdhdGlvbigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuXyRtb2RhbC5vbignc2hvdy5icy5tb2RhbCcsIHRoaXMuX2NvbmZpZy5vblNob3cuYmluZCh0aGlzKSkub24oJ3Nob3duLmJzLm1vZGFsJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fdG9nZ2xlTG9hZGluZyh0cnVlKTtcblx0XHRcdFx0X3RoaXMuX2hhbmRsZSgpO1xuXHRcdFx0XHRyZXR1cm4gX3RoaXMuX2NvbmZpZy5vblNob3duLmNhbGwoX3RoaXMpO1xuXHRcdFx0fSkub24oJ2hpZGUuYnMubW9kYWwnLCB0aGlzLl9jb25maWcub25IaWRlLmJpbmQodGhpcykpLm9uKCdoaWRkZW4uYnMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGlmIChfdGhpcy5fZ2FsbGVyeU5hbWUpIHtcblx0XHRcdFx0XHQkKGRvY3VtZW50KS5vZmYoJ2tleWRvd24uZWtrb0xpZ2h0Ym94Jyk7XG5cdFx0XHRcdFx0JCh3aW5kb3cpLm9mZigncmVzaXplLmVra29MaWdodGJveCcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdF90aGlzLl8kbW9kYWwucmVtb3ZlKCk7XG5cdFx0XHRcdHJldHVybiBfdGhpcy5fY29uZmlnLm9uSGlkZGVuLmNhbGwoX3RoaXMpO1xuXHRcdFx0fSkubW9kYWwodGhpcy5fY29uZmlnKTtcblxuXHRcdFx0JCh3aW5kb3cpLm9uKCdyZXNpemUuZWtrb0xpZ2h0Ym94JywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fcmVzaXplKF90aGlzLl93YW50ZWRXaWR0aCwgX3RoaXMuX3dhbnRlZEhlaWdodCk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbigndG91Y2hzdGFydCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3RvdWNoc3RhcnRYID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uc2NyZWVuWDtcblx0XHRcdH0pLm9uKCd0b3VjaGVuZCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0X3RoaXMuX3RvdWNoZW5kWCA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnNjcmVlblg7XG5cdFx0XHRcdF90aGlzLl9zd2lwZUdlc3VyZSgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0X2NyZWF0ZUNsYXNzKExpZ2h0Ym94LCBbe1xuXHRcdFx0a2V5OiAnZWxlbWVudCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gZWxlbWVudCgpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuXyRlbGVtZW50O1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ21vZGFsJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBtb2RhbCgpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuXyRtb2RhbDtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICduYXZpZ2F0ZVRvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZVRvKGluZGV4KSB7XG5cblx0XHRcdFx0aWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkgcmV0dXJuIHRoaXM7XG5cblx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4ID0gaW5kZXg7XG5cblx0XHRcdFx0dGhpcy51cGRhdGVOYXZpZ2F0aW9uKCk7XG5cblx0XHRcdFx0dGhpcy5fJGVsZW1lbnQgPSAkKHRoaXMuXyRnYWxsZXJ5SXRlbXMuZ2V0KHRoaXMuX2dhbGxlcnlJbmRleCkpO1xuXHRcdFx0XHR0aGlzLl9oYW5kbGUoKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICduYXZpZ2F0ZUxlZnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlTGVmdCgpIHtcblxuXHRcdFx0XHRpZiAoIXRoaXMuXyRnYWxsZXJ5SXRlbXMpIHJldHVybjtcblxuXHRcdFx0XHRpZiAodGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggPT09IDEpIHJldHVybjtcblxuXHRcdFx0XHRpZiAodGhpcy5fZ2FsbGVyeUluZGV4ID09PSAwKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX2NvbmZpZy53cmFwcGluZykgdGhpcy5fZ2FsbGVyeUluZGV4ID0gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxO2Vsc2UgcmV0dXJuO1xuXHRcdFx0XHR9IGVsc2UgLy9jaXJjdWxhclxuXHRcdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleC0tO1xuXG5cdFx0XHRcdHRoaXMuX2NvbmZpZy5vbk5hdmlnYXRlLmNhbGwodGhpcywgJ2xlZnQnLCB0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZVRvKHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbmF2aWdhdGVSaWdodCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVSaWdodCgpIHtcblxuXHRcdFx0XHRpZiAoIXRoaXMuXyRnYWxsZXJ5SXRlbXMpIHJldHVybjtcblxuXHRcdFx0XHRpZiAodGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggPT09IDEpIHJldHVybjtcblxuXHRcdFx0XHRpZiAodGhpcy5fZ2FsbGVyeUluZGV4ID09PSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5fY29uZmlnLndyYXBwaW5nKSB0aGlzLl9nYWxsZXJ5SW5kZXggPSAwO2Vsc2UgcmV0dXJuO1xuXHRcdFx0XHR9IGVsc2UgLy9jaXJjdWxhclxuXHRcdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCsrO1xuXG5cdFx0XHRcdHRoaXMuX2NvbmZpZy5vbk5hdmlnYXRlLmNhbGwodGhpcywgJ3JpZ2h0JywgdGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVUbyh0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ3VwZGF0ZU5hdmlnYXRpb24nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIHVwZGF0ZU5hdmlnYXRpb24oKSB7XG5cdFx0XHRcdGlmICghdGhpcy5fY29uZmlnLndyYXBwaW5nKSB7XG5cdFx0XHRcdFx0dmFyICRuYXYgPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnZGl2LmVra28tbGlnaHRib3gtbmF2LW92ZXJsYXknKTtcblx0XHRcdFx0XHRpZiAodGhpcy5fZ2FsbGVyeUluZGV4ID09PSAwKSAkbmF2LmZpbmQoJ2E6Zmlyc3QtY2hpbGQnKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtlbHNlICRuYXYuZmluZCgnYTpmaXJzdC1jaGlsZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXG5cdFx0XHRcdFx0aWYgKHRoaXMuX2dhbGxlcnlJbmRleCA9PT0gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSAkbmF2LmZpbmQoJ2E6bGFzdC1jaGlsZCcpLmFkZENsYXNzKCdkaXNhYmxlZCcpO2Vsc2UgJG5hdi5maW5kKCdhOmxhc3QtY2hpbGQnKS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ2Nsb3NlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBjbG9zZSgpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuXyRtb2RhbC5tb2RhbCgnaGlkZScpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBoZWxwZXIgcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX25hdmlnYXRpb25hbEJpbmRlcicsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX25hdmlnYXRpb25hbEJpbmRlcihldmVudCkge1xuXHRcdFx0XHRldmVudCA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDtcblx0XHRcdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDM5KSByZXR1cm4gdGhpcy5uYXZpZ2F0ZVJpZ2h0KCk7XG5cdFx0XHRcdGlmIChldmVudC5rZXlDb2RlID09PSAzNykgcmV0dXJuIHRoaXMubmF2aWdhdGVMZWZ0KCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIHR5cGUgZGV0ZWN0aW9uIHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ19kZXRlY3RSZW1vdGVUeXBlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZGV0ZWN0UmVtb3RlVHlwZShzcmMsIHR5cGUpIHtcblxuXHRcdFx0XHR0eXBlID0gdHlwZSB8fCBmYWxzZTtcblxuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5faXNJbWFnZShzcmMpKSB0eXBlID0gJ2ltYWdlJztcblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2dldFlvdXR1YmVJZChzcmMpKSB0eXBlID0gJ3lvdXR1YmUnO1xuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5fZ2V0VmltZW9JZChzcmMpKSB0eXBlID0gJ3ZpbWVvJztcblx0XHRcdFx0aWYgKCF0eXBlICYmIHRoaXMuX2dldEluc3RhZ3JhbUlkKHNyYykpIHR5cGUgPSAnaW5zdGFncmFtJztcblxuXHRcdFx0XHRpZiAoIXR5cGUgfHwgWydpbWFnZScsICd5b3V0dWJlJywgJ3ZpbWVvJywgJ2luc3RhZ3JhbScsICd2aWRlbycsICd1cmwnXS5pbmRleE9mKHR5cGUpIDwgMCkgdHlwZSA9ICd1cmwnO1xuXG5cdFx0XHRcdHJldHVybiB0eXBlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19pc0ltYWdlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfaXNJbWFnZShzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIHN0cmluZyAmJiBzdHJpbmcubWF0Y2goLyheZGF0YTppbWFnZVxcLy4qLCl8KFxcLihqcChlfGd8ZWcpfGdpZnxwbmd8Ym1wfHdlYnB8c3ZnKSgoXFw/fCMpLiopPyQpL2kpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19jb250YWluZXJUb1VzZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2NvbnRhaW5lclRvVXNlKCkge1xuXHRcdFx0XHR2YXIgX3RoaXMyID0gdGhpcztcblxuXHRcdFx0XHQvLyBpZiBjdXJyZW50bHkgc2hvd2luZyBhbiBpbWFnZSwgZmFkZSBpdCBvdXQgYW5kIHJlbW92ZVxuXHRcdFx0XHR2YXIgJHRvVXNlID0gdGhpcy5fJGxpZ2h0Ym94Qm9keVR3bztcblx0XHRcdFx0dmFyICRjdXJyZW50ID0gdGhpcy5fJGxpZ2h0Ym94Qm9keU9uZTtcblxuXHRcdFx0XHRpZiAodGhpcy5fJGxpZ2h0Ym94Qm9keVR3by5oYXNDbGFzcygnaW4nKSkge1xuXHRcdFx0XHRcdCR0b1VzZSA9IHRoaXMuXyRsaWdodGJveEJvZHlPbmU7XG5cdFx0XHRcdFx0JGN1cnJlbnQgPSB0aGlzLl8kbGlnaHRib3hCb2R5VHdvO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JGN1cnJlbnQucmVtb3ZlQ2xhc3MoJ2luIHNob3cnKTtcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0aWYgKCFfdGhpczIuXyRsaWdodGJveEJvZHlUd28uaGFzQ2xhc3MoJ2luJykpIF90aGlzMi5fJGxpZ2h0Ym94Qm9keVR3by5lbXB0eSgpO1xuXHRcdFx0XHRcdGlmICghX3RoaXMyLl8kbGlnaHRib3hCb2R5T25lLmhhc0NsYXNzKCdpbicpKSBfdGhpczIuXyRsaWdodGJveEJvZHlPbmUuZW1wdHkoKTtcblx0XHRcdFx0fSwgNTAwKTtcblxuXHRcdFx0XHQkdG9Vc2UuYWRkQ2xhc3MoJ2luIHNob3cnKTtcblx0XHRcdFx0cmV0dXJuICR0b1VzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaGFuZGxlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfaGFuZGxlKCkge1xuXG5cdFx0XHRcdHZhciAkdG9Vc2UgPSB0aGlzLl9jb250YWluZXJUb1VzZSgpO1xuXHRcdFx0XHR0aGlzLl91cGRhdGVUaXRsZUFuZEZvb3RlcigpO1xuXG5cdFx0XHRcdHZhciBjdXJyZW50UmVtb3RlID0gdGhpcy5fJGVsZW1lbnQuYXR0cignZGF0YS1yZW1vdGUnKSB8fCB0aGlzLl8kZWxlbWVudC5hdHRyKCdocmVmJyk7XG5cdFx0XHRcdHZhciBjdXJyZW50VHlwZSA9IHRoaXMuX2RldGVjdFJlbW90ZVR5cGUoY3VycmVudFJlbW90ZSwgdGhpcy5fJGVsZW1lbnQuYXR0cignZGF0YS10eXBlJykgfHwgZmFsc2UpO1xuXG5cdFx0XHRcdGlmIChbJ2ltYWdlJywgJ3lvdXR1YmUnLCAndmltZW8nLCAnaW5zdGFncmFtJywgJ3ZpZGVvJywgJ3VybCddLmluZGV4T2YoY3VycmVudFR5cGUpIDwgMCkgcmV0dXJuIHRoaXMuX2Vycm9yKHRoaXMuX2NvbmZpZy5zdHJpbmdzLnR5cGUpO1xuXG5cdFx0XHRcdHN3aXRjaCAoY3VycmVudFR5cGUpIHtcblx0XHRcdFx0XHRjYXNlICdpbWFnZSc6XG5cdFx0XHRcdFx0XHR0aGlzLl9wcmVsb2FkSW1hZ2UoY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdHRoaXMuX3ByZWxvYWRJbWFnZUJ5SW5kZXgodGhpcy5fZ2FsbGVyeUluZGV4LCAzKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3lvdXR1YmUnOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd1lvdXR1YmVWaWRlbyhjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAndmltZW8nOlxuXHRcdFx0XHRcdFx0dGhpcy5fc2hvd1ZpbWVvVmlkZW8odGhpcy5fZ2V0VmltZW9JZChjdXJyZW50UmVtb3RlKSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ2luc3RhZ3JhbSc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93SW5zdGFncmFtVmlkZW8odGhpcy5fZ2V0SW5zdGFncmFtSWQoY3VycmVudFJlbW90ZSksICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd2aWRlbyc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93SHRtbDVWaWRlbyhjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdC8vIHVybFxuXHRcdFx0XHRcdFx0dGhpcy5fbG9hZFJlbW90ZUNvbnRlbnQoY3VycmVudFJlbW90ZSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldFlvdXR1YmVJZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldFlvdXR1YmVJZChzdHJpbmcpIHtcblx0XHRcdFx0aWYgKCFzdHJpbmcpIHJldHVybiBmYWxzZTtcblx0XHRcdFx0dmFyIG1hdGNoZXMgPSBzdHJpbmcubWF0Y2goL14uKih5b3V0dS5iZVxcL3x2XFwvfHVcXC9cXHdcXC98ZW1iZWRcXC98d2F0Y2hcXD92PXxcXCZ2PSkoW14jXFwmXFw/XSopLiovKTtcblx0XHRcdFx0cmV0dXJuIG1hdGNoZXMgJiYgbWF0Y2hlc1syXS5sZW5ndGggPT09IDExID8gbWF0Y2hlc1syXSA6IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRWaW1lb0lkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0VmltZW9JZChzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIHN0cmluZyAmJiBzdHJpbmcuaW5kZXhPZigndmltZW8nKSA+IDAgPyBzdHJpbmcgOiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0SW5zdGFncmFtSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRJbnN0YWdyYW1JZChzdHJpbmcpIHtcblx0XHRcdFx0cmV0dXJuIHN0cmluZyAmJiBzdHJpbmcuaW5kZXhPZignaW5zdGFncmFtJykgPiAwID8gc3RyaW5nIDogZmFsc2U7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGxheW91dCBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfdG9nZ2xlTG9hZGluZycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3RvZ2dsZUxvYWRpbmcoc2hvdykge1xuXHRcdFx0XHRzaG93ID0gc2hvdyB8fCBmYWxzZTtcblx0XHRcdFx0aWYgKHNob3cpIHtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWwucmVtb3ZlQ2xhc3MoJ2luIHNob3cnKTtcblx0XHRcdFx0XHQkKCcubW9kYWwtYmFja2Ryb3AnKS5hcHBlbmQodGhpcy5fY29uZmlnLmxvYWRpbmdNZXNzYWdlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxEaWFsb2cuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsLmFkZENsYXNzKCdpbiBzaG93Jyk7XG5cdFx0XHRcdFx0JCgnLm1vZGFsLWJhY2tkcm9wJykuZmluZCgnLmVra28tbGlnaHRib3gtbG9hZGVyJykucmVtb3ZlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2NhbGN1bGF0ZUJvcmRlcnMnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9jYWxjdWxhdGVCb3JkZXJzKCkge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHRvcDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLXRvcC13aWR0aCcpLFxuXHRcdFx0XHRcdHJpZ2h0OiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItcmlnaHQtd2lkdGgnKSxcblx0XHRcdFx0XHRib3R0b206IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci1ib3R0b20td2lkdGgnKSxcblx0XHRcdFx0XHRsZWZ0OiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItbGVmdC13aWR0aCcpXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2NhbGN1bGF0ZVBhZGRpbmcnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9jYWxjdWxhdGVQYWRkaW5nKCkge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdHRvcDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgncGFkZGluZy10b3AnKSxcblx0XHRcdFx0XHRyaWdodDogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgncGFkZGluZy1yaWdodCcpLFxuXHRcdFx0XHRcdGJvdHRvbTogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgncGFkZGluZy1ib3R0b20nKSxcblx0XHRcdFx0XHRsZWZ0OiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLWxlZnQnKVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ190b3RhbENzc0J5QXR0cmlidXRlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfdG90YWxDc3NCeUF0dHJpYnV0ZShhdHRyaWJ1dGUpIHtcblx0XHRcdFx0cmV0dXJuIHBhcnNlSW50KHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoYXR0cmlidXRlKSwgMTApICsgcGFyc2VJbnQodGhpcy5fJG1vZGFsQ29udGVudC5jc3MoYXR0cmlidXRlKSwgMTApICsgcGFyc2VJbnQodGhpcy5fJG1vZGFsQm9keS5jc3MoYXR0cmlidXRlKSwgMTApO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ191cGRhdGVUaXRsZUFuZEZvb3RlcicsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3VwZGF0ZVRpdGxlQW5kRm9vdGVyKCkge1xuXHRcdFx0XHR2YXIgdGl0bGUgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd0aXRsZScpIHx8IFwiXCI7XG5cdFx0XHRcdHZhciBjYXB0aW9uID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnZm9vdGVyJykgfHwgXCJcIjtcblxuXHRcdFx0XHR0aGlzLl90aXRsZUlzU2hvd24gPSBmYWxzZTtcblx0XHRcdFx0aWYgKHRpdGxlIHx8IHRoaXMuX2NvbmZpZy5hbHdheXNTaG93Q2xvc2UpIHtcblx0XHRcdFx0XHR0aGlzLl90aXRsZUlzU2hvd24gPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEhlYWRlci5jc3MoJ2Rpc3BsYXknLCAnJykuZmluZCgnLm1vZGFsLXRpdGxlJykuaHRtbCh0aXRsZSB8fCBcIiZuYnNwO1wiKTtcblx0XHRcdFx0fSBlbHNlIHRoaXMuXyRtb2RhbEhlYWRlci5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG5cdFx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSBmYWxzZTtcblx0XHRcdFx0aWYgKGNhcHRpb24pIHtcblx0XHRcdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxGb290ZXIuY3NzKCdkaXNwbGF5JywgJycpLmh0bWwoY2FwdGlvbik7XG5cdFx0XHRcdH0gZWxzZSB0aGlzLl8kbW9kYWxGb290ZXIuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd1lvdXR1YmVWaWRlbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dZb3V0dWJlVmlkZW8ocmVtb3RlLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHR2YXIgaWQgPSB0aGlzLl9nZXRZb3V0dWJlSWQocmVtb3RlKTtcblx0XHRcdFx0dmFyIHF1ZXJ5ID0gcmVtb3RlLmluZGV4T2YoJyYnKSA+IDAgPyByZW1vdGUuc3Vic3RyKHJlbW90ZS5pbmRleE9mKCcmJykpIDogJyc7XG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTYwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgd2lkdGggLyAoNTYwIC8gMzE1KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX3Nob3dWaWRlb0lmcmFtZSgnLy93d3cueW91dHViZS5jb20vZW1iZWQvJyArIGlkICsgJz9iYWRnZT0wJmF1dG9wbGF5PTEmaHRtbDU9MScgKyBxdWVyeSwgd2lkdGgsIGhlaWdodCwgJGNvbnRhaW5lckZvckVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93VmltZW9WaWRlbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dWaW1lb1ZpZGVvKGlkLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDUwMDtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2hlaWdodCcpIHx8IHdpZHRoIC8gKDU2MCAvIDMxNSk7XG5cdFx0XHRcdHJldHVybiB0aGlzLl9zaG93VmlkZW9JZnJhbWUoaWQgKyAnP2F1dG9wbGF5PTEnLCB3aWR0aCwgaGVpZ2h0LCAkY29udGFpbmVyRm9yRWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dJbnN0YWdyYW1WaWRlbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dJbnN0YWdyYW1WaWRlbyhpZCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0Ly8gaW5zdGFncmFtIGxvYWQgdGhlaXIgY29udGVudCBpbnRvIGlmcmFtZSdzIHNvIHRoaXMgY2FuIGJlIHB1dCBzdHJhaWdodCBpbnRvIHRoZSBlbGVtZW50XG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNjEyO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gd2lkdGggKyA4MDtcblx0XHRcdFx0aWQgPSBpZC5zdWJzdHIoLTEpICE9PSAnLycgPyBpZCArICcvJyA6IGlkOyAvLyBlbnN1cmUgaWQgaGFzIHRyYWlsaW5nIHNsYXNoXG5cdFx0XHRcdCRjb250YWluZXJGb3JFbGVtZW50Lmh0bWwoJzxpZnJhbWUgd2lkdGg9XCInICsgd2lkdGggKyAnXCIgaGVpZ2h0PVwiJyArIGhlaWdodCArICdcIiBzcmM9XCInICsgaWQgKyAnZW1iZWQvXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpO1xuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0aWYgKHRoaXMuXyRtb2RhbEFycm93cykgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd1ZpZGVvSWZyYW1lJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd1ZpZGVvSWZyYW1lKHVybCwgd2lkdGgsIGhlaWdodCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0Ly8gc2hvdWxkIGJlIHVzZWQgZm9yIHZpZGVvcyBvbmx5LiBmb3IgcmVtb3RlIGNvbnRlbnQgdXNlIGxvYWRSZW1vdGVDb250ZW50IChkYXRhLXR5cGU9dXJsKVxuXHRcdFx0XHRoZWlnaHQgPSBoZWlnaHQgfHwgd2lkdGg7IC8vIGRlZmF1bHQgdG8gc3F1YXJlXG5cdFx0XHRcdCRjb250YWluZXJGb3JFbGVtZW50Lmh0bWwoJzxkaXYgY2xhc3M9XCJlbWJlZC1yZXNwb25zaXZlIGVtYmVkLXJlc3BvbnNpdmUtMTZieTlcIj48aWZyYW1lIHdpZHRoPVwiJyArIHdpZHRoICsgJ1wiIGhlaWdodD1cIicgKyBoZWlnaHQgKyAnXCIgc3JjPVwiJyArIHVybCArICdcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4gY2xhc3M9XCJlbWJlZC1yZXNwb25zaXZlLWl0ZW1cIj48L2lmcmFtZT48L2Rpdj4nKTtcblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdGlmICh0aGlzLl8kbW9kYWxBcnJvd3MpIHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpOyAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93SHRtbDVWaWRlbycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3Nob3dIdG1sNVZpZGVvKHVybCwgJGNvbnRhaW5lckZvckVsZW1lbnQpIHtcblx0XHRcdFx0Ly8gc2hvdWxkIGJlIHVzZWQgZm9yIHZpZGVvcyBvbmx5LiBmb3IgcmVtb3RlIGNvbnRlbnQgdXNlIGxvYWRSZW1vdGVDb250ZW50IChkYXRhLXR5cGU9dXJsKVxuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDU2MDtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2hlaWdodCcpIHx8IHdpZHRoIC8gKDU2MCAvIDMxNSk7XG5cdFx0XHRcdCRjb250YWluZXJGb3JFbGVtZW50Lmh0bWwoJzxkaXYgY2xhc3M9XCJlbWJlZC1yZXNwb25zaXZlIGVtYmVkLXJlc3BvbnNpdmUtMTZieTlcIj48dmlkZW8gd2lkdGg9XCInICsgd2lkdGggKyAnXCIgaGVpZ2h0PVwiJyArIGhlaWdodCArICdcIiBzcmM9XCInICsgdXJsICsgJ1wiIHByZWxvYWQ9XCJhdXRvXCIgYXV0b3BsYXkgY29udHJvbHMgY2xhc3M9XCJlbWJlZC1yZXNwb25zaXZlLWl0ZW1cIj48L3ZpZGVvPjwvZGl2PicpO1xuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0aWYgKHRoaXMuXyRtb2RhbEFycm93cykgdGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7IC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2xvYWRSZW1vdGVDb250ZW50Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfbG9hZFJlbW90ZUNvbnRlbnQodXJsLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHR2YXIgX3RoaXMzID0gdGhpcztcblxuXHRcdFx0XHR2YXIgd2lkdGggPSB0aGlzLl8kZWxlbWVudC5kYXRhKCd3aWR0aCcpIHx8IDU2MDtcblx0XHRcdFx0dmFyIGhlaWdodCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2hlaWdodCcpIHx8IDU2MDtcblxuXHRcdFx0XHR2YXIgZGlzYWJsZUV4dGVybmFsQ2hlY2sgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdkaXNhYmxlRXh0ZXJuYWxDaGVjaycpIHx8IGZhbHNlO1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblxuXHRcdFx0XHQvLyBleHRlcm5hbCB1cmxzIGFyZSBsb2FkaW5nIGludG8gYW4gaWZyYW1lXG5cdFx0XHRcdC8vIGxvY2FsIGFqYXggY2FuIGJlIGxvYWRlZCBpbnRvIHRoZSBjb250YWluZXIgaXRzZWxmXG5cdFx0XHRcdGlmICghZGlzYWJsZUV4dGVybmFsQ2hlY2sgJiYgIXRoaXMuX2lzRXh0ZXJuYWwodXJsKSkge1xuXHRcdFx0XHRcdCRjb250YWluZXJGb3JFbGVtZW50LmxvYWQodXJsLCAkLnByb3h5KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpczMuXyRlbGVtZW50LnRyaWdnZXIoJ2xvYWRlZC5icy5tb2RhbCcpO2w7XG5cdFx0XHRcdFx0fSkpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCRjb250YWluZXJGb3JFbGVtZW50Lmh0bWwoJzxpZnJhbWUgc3JjPVwiJyArIHVybCArICdcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyk7XG5cdFx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHRoaXMuXyRtb2RhbEFycm93cykgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiByZW1vdGUgY29udGVudFxuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2lzRXh0ZXJuYWwnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9pc0V4dGVybmFsKHVybCkge1xuXHRcdFx0XHR2YXIgbWF0Y2ggPSB1cmwubWF0Y2goL14oW146XFwvPyNdKzopPyg/OlxcL1xcLyhbXlxcLz8jXSopKT8oW14/I10rKT8oXFw/W14jXSopPygjLiopPy8pO1xuXHRcdFx0XHRpZiAodHlwZW9mIG1hdGNoWzFdID09PSBcInN0cmluZ1wiICYmIG1hdGNoWzFdLmxlbmd0aCA+IDAgJiYgbWF0Y2hbMV0udG9Mb3dlckNhc2UoKSAhPT0gbG9jYXRpb24ucHJvdG9jb2wpIHJldHVybiB0cnVlO1xuXG5cdFx0XHRcdGlmICh0eXBlb2YgbWF0Y2hbMl0gPT09IFwic3RyaW5nXCIgJiYgbWF0Y2hbMl0ubGVuZ3RoID4gMCAmJiBtYXRjaFsyXS5yZXBsYWNlKG5ldyBSZWdFeHAoJzooJyArICh7XG5cdFx0XHRcdFx0XCJodHRwOlwiOiA4MCxcblx0XHRcdFx0XHRcImh0dHBzOlwiOiA0NDNcblx0XHRcdFx0fSlbbG9jYXRpb24ucHJvdG9jb2xdICsgJyk/JCcpLCBcIlwiKSAhPT0gbG9jYXRpb24uaG9zdCkgcmV0dXJuIHRydWU7XG5cblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19lcnJvcicsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2Vycm9yKG1lc3NhZ2UpIHtcblx0XHRcdFx0Y29uc29sZS5lcnJvcihtZXNzYWdlKTtcblx0XHRcdFx0dGhpcy5fY29udGFpbmVyVG9Vc2UoKS5odG1sKG1lc3NhZ2UpO1xuXHRcdFx0XHR0aGlzLl9yZXNpemUoMzAwLCAzMDApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfcHJlbG9hZEltYWdlQnlJbmRleCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3ByZWxvYWRJbWFnZUJ5SW5kZXgoc3RhcnRJbmRleCwgbnVtYmVyT2ZUaW1lcykge1xuXG5cdFx0XHRcdGlmICghdGhpcy5fJGdhbGxlcnlJdGVtcykgcmV0dXJuO1xuXG5cdFx0XHRcdHZhciBuZXh0ID0gJCh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmdldChzdGFydEluZGV4KSwgZmFsc2UpO1xuXHRcdFx0XHRpZiAodHlwZW9mIG5leHQgPT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuXHRcdFx0XHR2YXIgc3JjID0gbmV4dC5hdHRyKCdkYXRhLXJlbW90ZScpIHx8IG5leHQuYXR0cignaHJlZicpO1xuXHRcdFx0XHRpZiAobmV4dC5hdHRyKCdkYXRhLXR5cGUnKSA9PT0gJ2ltYWdlJyB8fCB0aGlzLl9pc0ltYWdlKHNyYykpIHRoaXMuX3ByZWxvYWRJbWFnZShzcmMsIGZhbHNlKTtcblxuXHRcdFx0XHRpZiAobnVtYmVyT2ZUaW1lcyA+IDApIHJldHVybiB0aGlzLl9wcmVsb2FkSW1hZ2VCeUluZGV4KHN0YXJ0SW5kZXggKyAxLCBudW1iZXJPZlRpbWVzIC0gMSk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3ByZWxvYWRJbWFnZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3ByZWxvYWRJbWFnZShzcmMsICRjb250YWluZXJGb3JJbWFnZSkge1xuXHRcdFx0XHR2YXIgX3RoaXM0ID0gdGhpcztcblxuXHRcdFx0XHQkY29udGFpbmVyRm9ySW1hZ2UgPSAkY29udGFpbmVyRm9ySW1hZ2UgfHwgZmFsc2U7XG5cblx0XHRcdFx0dmFyIGltZyA9IG5ldyBJbWFnZSgpO1xuXHRcdFx0XHRpZiAoJGNvbnRhaW5lckZvckltYWdlKSB7XG5cdFx0XHRcdFx0KGZ1bmN0aW9uICgpIHtcblxuXHRcdFx0XHRcdFx0Ly8gaWYgbG9hZGluZyB0YWtlcyA+IDIwMG1zIHNob3cgYSBsb2FkZXJcblx0XHRcdFx0XHRcdHZhciBsb2FkaW5nVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHQkY29udGFpbmVyRm9ySW1hZ2UuYXBwZW5kKF90aGlzNC5fY29uZmlnLmxvYWRpbmdNZXNzYWdlKTtcblx0XHRcdFx0XHRcdH0sIDIwMCk7XG5cblx0XHRcdFx0XHRcdGltZy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChsb2FkaW5nVGltZW91dCkgY2xlYXJUaW1lb3V0KGxvYWRpbmdUaW1lb3V0KTtcblx0XHRcdFx0XHRcdFx0bG9hZGluZ1RpbWVvdXQgPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR2YXIgaW1hZ2UgPSAkKCc8aW1nIC8+Jyk7XG5cdFx0XHRcdFx0XHRcdGltYWdlLmF0dHIoJ3NyYycsIGltZy5zcmMpO1xuXHRcdFx0XHRcdFx0XHRpbWFnZS5hZGRDbGFzcygnaW1nLWZsdWlkJyk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgYm9vdHN0cmFwIHYzXG5cdFx0XHRcdFx0XHRcdGltYWdlLmNzcygnd2lkdGgnLCAnMTAwJScpO1xuXG5cdFx0XHRcdFx0XHRcdCRjb250YWluZXJGb3JJbWFnZS5odG1sKGltYWdlKTtcblx0XHRcdFx0XHRcdFx0aWYgKF90aGlzNC5fJG1vZGFsQXJyb3dzKSBfdGhpczQuXyRtb2RhbEFycm93cy5jc3MoJ2Rpc3BsYXknLCAnJyk7IC8vIHJlbW92ZSBkaXNwbGF5IHRvIGRlZmF1bHQgdG8gY3NzIHByb3BlcnR5XG5cblx0XHRcdFx0XHRcdFx0X3RoaXM0Ll9yZXNpemUoaW1nLndpZHRoLCBpbWcuaGVpZ2h0KTtcblx0XHRcdFx0XHRcdFx0X3RoaXM0Ll90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzNC5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKF90aGlzNCk7XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0aW1nLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdF90aGlzNC5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBfdGhpczQuX2Vycm9yKF90aGlzNC5fY29uZmlnLnN0cmluZ3MuZmFpbCArICgnICAnICsgc3JjKSk7XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH0pKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpbWcuc3JjID0gc3JjO1xuXHRcdFx0XHRyZXR1cm4gaW1nO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zd2lwZUdlc3VyZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX3N3aXBlR2VzdXJlKCkge1xuXHRcdFx0XHRpZiAodGhpcy5fdG91Y2hlbmRYIDwgdGhpcy5fdG91Y2hzdGFydFgpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZVJpZ2h0KCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMuX3RvdWNoZW5kWCA+IHRoaXMuX3RvdWNoc3RhcnRYKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMubmF2aWdhdGVMZWZ0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfcmVzaXplJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfcmVzaXplKHdpZHRoLCBoZWlnaHQpIHtcblxuXHRcdFx0XHRoZWlnaHQgPSBoZWlnaHQgfHwgd2lkdGg7XG5cdFx0XHRcdHRoaXMuX3dhbnRlZFdpZHRoID0gd2lkdGg7XG5cdFx0XHRcdHRoaXMuX3dhbnRlZEhlaWdodCA9IGhlaWdodDtcblxuXHRcdFx0XHR2YXIgaW1hZ2VBc3BlY1JhdGlvID0gd2lkdGggLyBoZWlnaHQ7XG5cblx0XHRcdFx0Ly8gaWYgd2lkdGggPiB0aGUgYXZhaWxhYmxlIHNwYWNlLCBzY2FsZSBkb3duIHRoZSBleHBlY3RlZCB3aWR0aCBhbmQgaGVpZ2h0XG5cdFx0XHRcdHZhciB3aWR0aEJvcmRlckFuZFBhZGRpbmcgPSB0aGlzLl9wYWRkaW5nLmxlZnQgKyB0aGlzLl9wYWRkaW5nLnJpZ2h0ICsgdGhpcy5fYm9yZGVyLmxlZnQgKyB0aGlzLl9ib3JkZXIucmlnaHQ7XG5cblx0XHRcdFx0Ly8gZm9yY2UgMTBweCBtYXJnaW4gaWYgd2luZG93IHNpemUgPiA1NzVweFxuXHRcdFx0XHR2YXIgYWRkTWFyZ2luID0gdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoID4gNTc1ID8gMjAgOiAwO1xuXHRcdFx0XHR2YXIgZGlzY291bnRNYXJnaW4gPSB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggPiA1NzUgPyAwIDogMjA7XG5cblx0XHRcdFx0dmFyIG1heFdpZHRoID0gTWF0aC5taW4od2lkdGggKyB3aWR0aEJvcmRlckFuZFBhZGRpbmcsIHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCAtIGFkZE1hcmdpbiwgdGhpcy5fY29uZmlnLm1heFdpZHRoKTtcblxuXHRcdFx0XHRpZiAod2lkdGggKyB3aWR0aEJvcmRlckFuZFBhZGRpbmcgPiBtYXhXaWR0aCkge1xuXHRcdFx0XHRcdGhlaWdodCA9IChtYXhXaWR0aCAtIHdpZHRoQm9yZGVyQW5kUGFkZGluZyAtIGRpc2NvdW50TWFyZ2luKSAvIGltYWdlQXNwZWNSYXRpbztcblx0XHRcdFx0XHR3aWR0aCA9IG1heFdpZHRoO1xuXHRcdFx0XHR9IGVsc2Ugd2lkdGggPSB3aWR0aCArIHdpZHRoQm9yZGVyQW5kUGFkZGluZztcblxuXHRcdFx0XHR2YXIgaGVhZGVySGVpZ2h0ID0gMCxcblx0XHRcdFx0ICAgIGZvb3RlckhlaWdodCA9IDA7XG5cblx0XHRcdFx0Ly8gYXMgdGhlIHJlc2l6ZSBpcyBwZXJmb3JtZWQgdGhlIG1vZGFsIGlzIHNob3csIHRoZSBjYWxjdWxhdGUgbWlnaHQgZmFpbFxuXHRcdFx0XHQvLyBpZiBzbywgZGVmYXVsdCB0byB0aGUgZGVmYXVsdCBzaXplc1xuXHRcdFx0XHRpZiAodGhpcy5fZm9vdGVySXNTaG93bikgZm9vdGVySGVpZ2h0ID0gdGhpcy5fJG1vZGFsRm9vdGVyLm91dGVySGVpZ2h0KHRydWUpIHx8IDU1O1xuXG5cdFx0XHRcdGlmICh0aGlzLl90aXRsZUlzU2hvd24pIGhlYWRlckhlaWdodCA9IHRoaXMuXyRtb2RhbEhlYWRlci5vdXRlckhlaWdodCh0cnVlKSB8fCA2NztcblxuXHRcdFx0XHR2YXIgYm9yZGVyUGFkZGluZyA9IHRoaXMuX3BhZGRpbmcudG9wICsgdGhpcy5fcGFkZGluZy5ib3R0b20gKyB0aGlzLl9ib3JkZXIuYm90dG9tICsgdGhpcy5fYm9yZGVyLnRvcDtcblxuXHRcdFx0XHQvL2NhbGN1bGF0ZWQgZWFjaCB0aW1lIGFzIHJlc2l6aW5nIHRoZSB3aW5kb3cgY2FuIGNhdXNlIHRoZW0gdG8gY2hhbmdlIGR1ZSB0byBCb290c3RyYXBzIGZsdWlkIG1hcmdpbnNcblx0XHRcdFx0dmFyIG1hcmdpbnMgPSBwYXJzZUZsb2F0KHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ21hcmdpbi10b3AnKSkgKyBwYXJzZUZsb2F0KHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ21hcmdpbi1ib3R0b20nKSk7XG5cblx0XHRcdFx0dmFyIG1heEhlaWdodCA9IE1hdGgubWluKGhlaWdodCwgJCh3aW5kb3cpLmhlaWdodCgpIC0gYm9yZGVyUGFkZGluZyAtIG1hcmdpbnMgLSBoZWFkZXJIZWlnaHQgLSBmb290ZXJIZWlnaHQsIHRoaXMuX2NvbmZpZy5tYXhIZWlnaHQgLSBib3JkZXJQYWRkaW5nIC0gaGVhZGVySGVpZ2h0IC0gZm9vdGVySGVpZ2h0KTtcblxuXHRcdFx0XHRpZiAoaGVpZ2h0ID4gbWF4SGVpZ2h0KSB7XG5cdFx0XHRcdFx0Ly8gaWYgaGVpZ2h0ID4gdGhlIGF2YWlsYWJsZSBoZWlnaHQsIHNjYWxlIGRvd24gdGhlIHdpZHRoXG5cdFx0XHRcdFx0d2lkdGggPSBNYXRoLmNlaWwobWF4SGVpZ2h0ICogaW1hZ2VBc3BlY1JhdGlvKSArIHdpZHRoQm9yZGVyQW5kUGFkZGluZztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5jc3MoJ2hlaWdodCcsIG1heEhlaWdodCk7XG5cdFx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ2ZsZXgnLCAxKS5jc3MoJ21heFdpZHRoJywgd2lkdGgpO1xuXG5cdFx0XHRcdHZhciBtb2RhbCA9IHRoaXMuXyRtb2RhbC5kYXRhKCdicy5tb2RhbCcpO1xuXHRcdFx0XHRpZiAobW9kYWwpIHtcblx0XHRcdFx0XHQvLyB2NCBtZXRob2QgaXMgbWlzdGFrZW5seSBwcm90ZWN0ZWRcblx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0bW9kYWwuX2hhbmRsZVVwZGF0ZSgpO1xuXHRcdFx0XHRcdH0gY2F0Y2ggKEV4Y2VwdGlvbikge1xuXHRcdFx0XHRcdFx0bW9kYWwuaGFuZGxlVXBkYXRlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH1dLCBbe1xuXHRcdFx0a2V5OiAnX2pRdWVyeUludGVyZmFjZScsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2pRdWVyeUludGVyZmFjZShjb25maWcpIHtcblx0XHRcdFx0dmFyIF90aGlzNSA9IHRoaXM7XG5cblx0XHRcdFx0Y29uZmlnID0gY29uZmlnIHx8IHt9O1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHR2YXIgJHRoaXMgPSAkKF90aGlzNSk7XG5cdFx0XHRcdFx0dmFyIF9jb25maWcgPSAkLmV4dGVuZCh7fSwgTGlnaHRib3guRGVmYXVsdCwgJHRoaXMuZGF0YSgpLCB0eXBlb2YgY29uZmlnID09PSAnb2JqZWN0JyAmJiBjb25maWcpO1xuXG5cdFx0XHRcdFx0bmV3IExpZ2h0Ym94KF90aGlzNSwgX2NvbmZpZyk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1dKTtcblxuXHRcdHJldHVybiBMaWdodGJveDtcblx0fSkoKTtcblxuXHQkLmZuW05BTUVdID0gTGlnaHRib3guX2pRdWVyeUludGVyZmFjZTtcblx0JC5mbltOQU1FXS5Db25zdHJ1Y3RvciA9IExpZ2h0Ym94O1xuXHQkLmZuW05BTUVdLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XG5cdFx0JC5mbltOQU1FXSA9IEpRVUVSWV9OT19DT05GTElDVDtcblx0XHRyZXR1cm4gTGlnaHRib3guX2pRdWVyeUludGVyZmFjZTtcblx0fTtcblxuXHRyZXR1cm4gTGlnaHRib3g7XG59KShqUXVlcnkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZWtrby1saWdodGJveC5qcy5tYXBcblxufShqUXVlcnkpO1xuIiwiIiwiXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcblx0dmFyIHByZXZpb3VzID0gXCIgXCI7XG4gICAgJChcIiNpbWFnZV9nYWxsZXJ5XCIpLmNsaWNrKGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIHZhciBpZF9uYW1lID0gZXZlbnQudGFyZ2V0LmlkO1xuICAgICAgICBpZF9uYW1lID0gaWRfbmFtZS5yZXBsYWNlKC9bMC05XS9nLCAnJyk7IC8vcmVnZXggZm9yIGFscGhhYmV0cywgbm8gbnVtYmVyc1xuICAgICAgICB2YXIgaWRfdG9nZ2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRfbmFtZSk7IC8vZ2V0IElEIG9mIG5hbWVzIHVuZGVyIGNsYXNzIFwidGVhbS1iaW9cIlxuICAgICAgICBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZF9uYW1lKSl7IC8vaWYgSUQgZXhpc3RzXG5cdFx0XHRpZigocHJldmlvdXMgIT0gaWRfbmFtZSkgJiYgKHByZXZpb3VzICE9IFwiIFwiKSl7IC8vaWYgeW91IGNsaWNrIGEgZGlmZiBpbWFnZVxuXHRcdFx0XHR2YXIgaWRfcHJldmlvdXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmV2aW91cyk7XG5cdFx0XHRcdCQoaWRfcHJldmlvdXMpLnRvZ2dsZShcImhpZGRlblwiKTtcblx0XHRcdFx0Y29uc29sZS5sb2coaWRfcHJldmlvdXMpO1xuXG5cdFx0XHR9XG5cdFx0XHRlbHNlIGlmKHByZXZpb3VzID09IGlkX25hbWUpeyAvL2NsaWNraW5nIG9uIHRoZSBzYW1lIGltYWdlXG5cdFx0XHRcdCQoaWRfdG9nZ2xlKS50b2dnbGUoXCJ1bmhpZGRlblwiKTtcblx0XHRcdH1cblx0XHRcdCQoaWRfdG9nZ2xlKS50b2dnbGUoXCJ1bmhpZGRlblwiKTsgLy90b2dnbGVzIHR4dGJveCB0byBhcHBlYXJcbiAgICAgICAgXHQgcHJldmlvdXMgPSBpZF9uYW1lOy8vY2hlY2tzIHRvIHNlZSBpZiB5b3UgY2xpY2tlZCBkaWZmZXJlbnQgaW1hZ2VzXG4gICAgICAgIH1cbiAgICAgICAgZWxzZXtcbiAgICAgICAgXHRhbGVydChcIlRoaXMgcGVyc29uIGRvZXMgbm90IGV4aXN0LiBUcnkgYWdhaW4uXCIpO1xuICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xufSk7IiwiKGZ1bmN0aW9uKCQpIHtcclxuXHJcbiAgICAkLmZuLnZpc2libGUgPSBmdW5jdGlvbigpIHtcclxuXHJcbiAgICAgICAgdmFyICR0ICAgICAgICAgICAgPSAkKHRoaXMpLFxyXG4gICAgICAgICAgICAkdyAgICAgICAgICAgID0gJCh3aW5kb3cpLFxyXG4gICAgICAgICAgICB3aW5kb3dIZWlnaHQgID0gd2luZG93LmlubmVySGVpZ2h0LFxyXG4gICAgICAgICAgICB3aW5kb3dUb3AgICAgID0gJHcuc2Nyb2xsVG9wKCksXHJcbiAgICAgICAgICAgIHdpbmRvd0JvdHRvbSAgPSB3aW5kb3dUb3AgKyB3aW5kb3dIZWlnaHQsXHJcbiAgICAgICAgICAgIF9oZWlnaHQgICAgICAgPSAkdC5vdXRlckhlaWdodCgpLFxyXG4gICAgICAgICAgICBfdG9wICAgICAgICAgID0gJHQub2Zmc2V0KCkudG9wLFxyXG4gICAgICAgICAgICBfYm90dG9tICAgICAgID0gX3RvcCArIF9oZWlnaHQ7XHJcblxyXG4gICAgICAgIHJldHVybiAoKF9ib3R0b20gPj0gd2luZG93VG9wKSAmJiAoX3RvcCA8PSB3aW5kb3dCb3R0b20pKTtcclxuICAgIH07XHJcblxyXG59KShqUXVlcnkpO1xyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG4gICAgJCh3aW5kb3cpLm9uKFwic2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpID49IDEwMCAmJiAhJChcIi5uYXZiYXJcIikuaGFzQ2xhc3MoXCJmaXhlZFwiKSkge1xyXG4gICAgICAgICAgICAkKFwiLm5hdmJhclwiKS5hZGRDbGFzcyhcImZpeGVkXCIpLmFkZENsYXNzKFwiZml4ZWQtdG9wXCIpLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICAgICAgdG9wOiAxNSxcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDFcclxuICAgICAgICAgICAgfSwgMTAwMCk7XHJcblxyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKCQod2luZG93KS5zY3JvbGxUb3AoKSA8PSA1MCkge1xyXG4gICAgICAgICAgICAkKFwiLm5hdmJhclwiKS5jc3MoXCJ0b3BcIiwgXCJcIikucmVtb3ZlQ2xhc3MoXCJmaXhlZFwiKS5yZW1vdmVDbGFzcyhcImZpeGVkLXRvcFwiKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgLy9vbiBvciBzY3JvbGwsIGRldGVjdCBlbGVtZW50cyBpbiB2aWV3XHJcbiAgICAkKHdpbmRvdykub24oJ3Njcm9sbCByZXNpemUnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAkKCcuZmx5LWluJykuZWFjaChmdW5jdGlvbiAoaSwgdmFsKSB7XHJcbiAgICAgICAgICAgIGlmKCQodmFsKS52aXNpYmxlKCkpe1xyXG4gICAgICAgICAgICAgICAgJCh2YWwpLmFkZENsYXNzKFwiY29tZS1pblwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuICAgIC8vdHJpZ2dlciBvdXIgc2Nyb2xsIGV2ZW50IG9uIGluaXRpYWwgbG9hZFxyXG4gICAgJCh3aW5kb3cpLnRyaWdnZXIoJ3Njcm9sbCcpO1xyXG5cclxuXHJcbn0pO1xyXG5cclxuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xyXG5cclxuXHJcbiAgICBsZXQgd2lkdGhQb2wgPSAxOTIwLFxyXG4gICAgICAgIGhlaWdodFBvbCA9IDEwMDtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJQb2x5ID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aFBvbCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBsZXQgd2lkdGhJbWdPdmVybGF5ID0gMTkyMCxcclxuICAgICAgICBoZWlnaHRJbWdPdmVybGF5ID0gMTAwO1xyXG5cclxuXHJcbiAgICBjb25zdCBpbWFnZVBvbHlUb3AgPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IGltYWdlUG9seUJvdHRvbSA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoSW1nT3ZlcmxheSwgXCJ5XCI6IDB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDUwfSxcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgXTtcclxuXHJcblxyXG4gICAgbGV0IGltZ0hlYWRlckhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0KFwiI2JvdHRvbS1sYW5kaW5nLW92ZXJsYXlcIikuc2VsZWN0KCcjbGFuZGluZy1zdmcnKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhQb2wpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0UG9sKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhkMy5zZWxlY3QoXCJib2R5XCIpKTtcclxuXHJcbiAgICBsZXQgaW1nQm90dG9tSG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3RBbGwoXCIuc3ZnLWltYWdlLW92ZXJsYXktYm90dG9tXCIpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aEltZ092ZXJsYXkpXHJcbiAgICAgICAgLmF0dHIoXCJoZWlnaHRcIiwgaGVpZ2h0SW1nT3ZlcmxheSk7XHJcblxyXG5cclxuICAgIGxldCBpbWdUb3BIb2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdEFsbChcIi5zdmctaW1hZ2Utb3ZlcmxheS10b3BcIilcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoSW1nT3ZlcmxheSlcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRJbWdPdmVybGF5KTtcclxuXHJcbiAgICBjcmVhdGVQb2x5Z29uKGhlYWRlclBvbHksIHdpZHRoUG9sLCBoZWlnaHRQb2wsIGltZ0hlYWRlckhvbGRlcik7XHJcbiAgICBjcmVhdGVQb2x5Z29uKGltYWdlUG9seUJvdHRvbSwgd2lkdGhJbWdPdmVybGF5LCBoZWlnaHRJbWdPdmVybGF5LCBpbWdCb3R0b21Ib2xkZXIpO1xyXG4gICAgY3JlYXRlUG9seWdvbihpbWFnZVBvbHlUb3AsIHdpZHRoSW1nT3ZlcmxheSwgaGVpZ2h0SW1nT3ZlcmxheSwgaW1nVG9wSG9sZGVyKTtcclxuXHJcblxyXG4gICAgZnVuY3Rpb24gY3JlYXRlUG9seWdvbihwb2x5Z29uLCB3aWR0aCwgaGVpZ2h0LCB2aXMpIHtcclxuXHJcbiAgICAgICAgbGV0IHN2ZyA9IHZpcy5zZWxlY3RBbGwoXCJwYXRoXCIpLmRhdGEoW3BvbHlnb25dKTtcclxuXHJcbiAgICAgICAgc3ZnLmV4aXQoKS5yZW1vdmUoKTtcclxuXHJcbiAgICAgICAgbGV0IGxpbmVGdW5jdGlvbiA9IGQzLmxpbmUoKVxyXG4gICAgICAgICAgICAueChmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAueShmdW5jdGlvbiAoZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGQueVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc3ZnLmVudGVyKCkuYXBwZW5kKFwicGF0aFwiKVxyXG4gICAgICAgICAgICAuYXR0cihcImRcIiwgbGluZUZ1bmN0aW9uKHBvbHlnb24pKVxyXG4gICAgICAgICAgICAuYXR0cihcImZpbGxcIiwgXCIjZmZmXCIpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdG9nZ2xlPVwibGlnaHRib3hcIl0nLCBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgJCh0aGlzKS5la2tvTGlnaHRib3goe1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn0pOyIsIiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcblxuICAgIGxldCBkdXJhdGlvbiA9IDE1MDA7XG5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLnNwaW5uZXInKS5lYWNoKGZ1bmN0aW9uIChrLHYpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICQodikuZmFkZUluKGR1cmF0aW9uKS5jc3MoXCJkaXNwbGF5XCIsIFwiZmxleFwiKTtcbiAgICAgICAgICAgICAgICAkKHtkZWc6IDB9KS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgZGVnOiAzNjBcbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXA6IGZ1bmN0aW9uIChub3csIGZ4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHYpLmNzcyh7XCJ0cmFuc2Zvcm1cIjogXCJyb3RhdGVZKFwiICsgbm93ICsgXCJkZWcpXCJ9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IGR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBlYXNpbmc6ICdsaW5lYXInLFxuICAgICAgICAgICAgICAgICAgICBxdWV1ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAnbGluZWFyJyk7XG4gICAgICAgICAgICB9LCBrICogZHVyYXRpb24pO1xuICAgICAgICB9KVxuICAgIH0sIDIwMCk7XG5cbiAgICAkKFwiLm1haW4tYmFja2dyb3VuZFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLnNwaW5uZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuZmFkZUluKCkuY3NzKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG4gICAgICAgIH0pXG4gICAgfSlcblxufSk7IiwibGV0IG1vZGVsSW5pdERhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAsXG4gICAgICAgIHJvZmY6IDAsXG4gICAgICAgIHJvbjogMFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjUwMzMwOCxcbiAgICAgICAgcm9mZjogMC4wMDUxMTMsXG4gICAgICAgIHJvbjogMC40MjM5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuNjkwNTgxLFxuICAgICAgICByb2ZmOiAwLjAwNDkxMzYsXG4gICAgICAgIHJvbjogMC43OTI4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuNzY3NTg2LFxuICAgICAgICByb2ZmOiAwLjAwNDcxNjM3LFxuICAgICAgICByb246IDAuODg5MjA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjgwMzQzLFxuICAgICAgICByb2ZmOiAwLjAwNDUzNDg1LFxuICAgICAgICByb246IDAuODczMTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjgyMzUxNixcbiAgICAgICAgcm9mZjogMC4wMDQzNjQ4OCxcbiAgICAgICAgcm9uOiAwLjg0NzI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC44MzczMTMsXG4gICAgICAgIHJvZmY6IDAuMDA0MjA0NDksXG4gICAgICAgIHJvbjogMC44MjQ4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuODQ4MzYxLFxuICAgICAgICByb2ZmOiAwLjAwNDA1MjY2LFxuICAgICAgICByb246IDAuODA4MDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjg1OCxcbiAgICAgICAgcm9mZjogMC4wMDM5MDg1OSxcbiAgICAgICAgcm9uOiAwLjc5NjY0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC44NjY3NTYsXG4gICAgICAgIHJvZmY6IDAuMDAzNzcxNTcsXG4gICAgICAgIHJvbjogMC43ODk1NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuODc0ODUxLFxuICAgICAgICByb2ZmOiAwLjAwMzY0MTAyLFxuICAgICAgICByb246IDAuNzg1NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjg4MjM5MyxcbiAgICAgICAgcm9mZjogMC4wMDM1MTY0NyxcbiAgICAgICAgcm9uOiAwLjc4MzU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC44ODk0NDIsXG4gICAgICAgIHJvZmY6IDAuMDAzMzk3NTMsXG4gICAgICAgIHJvbjogMC43ODI5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuODk2MDM5LFxuICAgICAgICByb2ZmOiAwLjAwMzI4Mzg4LFxuICAgICAgICByb246IDAuNzgzMDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjkwMjIxNCxcbiAgICAgICAgcm9mZjogMC4wMDMxNzUyNSxcbiAgICAgICAgcm9uOiAwLjc4MzUzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC45MDc5OTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMDcxNCxcbiAgICAgICAgcm9uOiAwLjc4NDI3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC45MTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAyOTcyMTEsXG4gICAgICAgIHJvbjogMC43ODUxMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuOTE4NDY5LFxuICAgICAgICByb2ZmOiAwLjAwMjg3NzE3LFxuICAgICAgICByb246IDAuNzg1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuOTIzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMjc4NjM4LFxuICAgICAgICByb246IDAuNzg2Nzc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjkyNzYzMyxcbiAgICAgICAgcm9mZjogMC4wMDI2OTk1NyxcbiAgICAgICAgcm9uOiAwLjc4NzU3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuOTMxNzcyLFxuICAgICAgICByb2ZmOiAwLjAwMjYxNjU3LFxuICAgICAgICByb246IDAuNzg4MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC45MzU2NDEsXG4gICAgICAgIHJvZmY6IDAuMDAyNTM3MixcbiAgICAgICAgcm9uOiAwLjc4OTAxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuOTM5MjU2LFxuICAgICAgICByb2ZmOiAwLjAwMjQ2MTMxLFxuICAgICAgICByb246IDAuNzg5NjY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC45NDI2MzQsXG4gICAgICAgIHJvZmY6IDAuMDAyMzg4NzUsXG4gICAgICAgIHJvbjogMC43OTAyNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk0NTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDIzMTkzNyxcbiAgICAgICAgcm9uOiAwLjc5MDgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuOTQ4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwMjI1MzA0LFxuICAgICAgICByb246IDAuNzkxMzYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC45NTE0ODksXG4gICAgICAgIHJvZmY6IDAuMDAyMTg5NjIsXG4gICAgICAgIHJvbjogMC43OTE4NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk1NDA2MSxcbiAgICAgICAgcm9mZjogMC4wMDIxMjg5OCxcbiAgICAgICAgcm9uOiAwLjc5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk1NjQ2NCxcbiAgICAgICAgcm9mZjogMC4wMDIwNzEwMSxcbiAgICAgICAgcm9uOiAwLjc5MjcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuOTU4NzA5LFxuICAgICAgICByb2ZmOiAwLjAwMjAxNTU5LFxuICAgICAgICByb246IDAuNzkzMTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC45NjA4MDcsXG4gICAgICAgIHJvZmY6IDAuMDAxOTYyNixcbiAgICAgICAgcm9uOiAwLjc5MzQ3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuOTYyNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMTkxMTk0LFxuICAgICAgICByb246IDAuNzkzODE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC45NjQ2MDEsXG4gICAgICAgIHJvZmY6IDAuMDAxODYzNTEsXG4gICAgICAgIHJvbjogMC43OTQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuOTY2MzE0LFxuICAgICAgICByb2ZmOiAwLjAwMTgxNzIxLFxuICAgICAgICByb246IDAuNzk0NDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC45Njc5MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxNzcyOTUsXG4gICAgICAgIHJvbjogMC43OTQ2OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk2OTQxNixcbiAgICAgICAgcm9mZjogMC4wMDE3MzA2MyxcbiAgICAgICAgcm9uOiAwLjc5NDk1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuOTcwODE5LFxuICAgICAgICByb2ZmOiAwLjAwMTY5MDE4LFxuICAgICAgICByb246IDAuNzk1MTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC45NzIxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAxNjUxNTEsXG4gICAgICAgIHJvbjogMC43OTU0MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzM2MSxcbiAgICAgICAgcm9mZjogMC4wMDE2MTQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NTYyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuOTc0NTEyLFxuICAgICAgICByb2ZmOiAwLjAwMTU3OTIxLFxuICAgICAgICByb246IDAuNzk1ODE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC45NzU1OTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNTQ1NDIsXG4gICAgICAgIHJvbjogMC43OTU5OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjYwMixcbiAgICAgICAgcm9mZjogMC4wMDE1MTMxMyxcbiAgICAgICAgcm9uOiAwLjc5NjE2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuOTc3NTQ5LFxuICAgICAgICByb2ZmOiAwLjAwMTQ4MjI2LFxuICAgICAgICByb246IDAuNzk2MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC45Nzg0MzgsXG4gICAgICAgIHJvZmY6IDAuMDAxNDUyNzUsXG4gICAgICAgIHJvbjogMC43OTY0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTI3MixcbiAgICAgICAgcm9mZjogMC4wMDE0MjQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NjYxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuOTgwMDU1LFxuICAgICAgICByb2ZmOiAwLjAwMTM5NzU3LFxuICAgICAgICByb246IDAuNzk2NzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC45ODA3OSxcbiAgICAgICAgcm9mZjogMC4wMDEzNzE3OSxcbiAgICAgICAgcm9uOiAwLjc5Njg2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuOTgxNDgxLFxuICAgICAgICByb2ZmOiAwLjAwMTM0NzE1LFxuICAgICAgICByb246IDAuNzk2OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC45ODIxMyxcbiAgICAgICAgcm9mZjogMC4wMDEzMjM2LFxuICAgICAgICByb246IDAuNzk3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mjc0LFxuICAgICAgICByb2ZmOiAwLjAwMTMwMTA5LFxuICAgICAgICByb246IDAuNzk3MTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC45ODMzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjc5NTcsXG4gICAgICAgIHJvbjogMC43OTcyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mzg1MyxcbiAgICAgICAgcm9mZjogMC4wMDEyNTg5OSxcbiAgICAgICAgcm9uOiAwLjc5NzM3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuOTg0MzYyLFxuICAgICAgICByb2ZmOiAwLjAwMTIzOTMzLFxuICAgICAgICByb246IDAuNzk3NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NDg0LFxuICAgICAgICByb2ZmOiAwLjAwMTIyMDUzLFxuICAgICAgICByb246IDAuNzk3NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC45ODUyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMjAyNTcsXG4gICAgICAgIHJvbjogMC43OTc2MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTcxNSxcbiAgICAgICAgcm9mZjogMC4wMDExODUzOSxcbiAgICAgICAgcm9uOiAwLjc5NzY4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuOTg2MTE2LFxuICAgICAgICByb2ZmOiAwLjAwMTE2ODk4LFxuICAgICAgICByb246IDAuNzk3NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC45ODY0OTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTUzMjksXG4gICAgICAgIHJvbjogMC43OTc4MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk4Njg1LFxuICAgICAgICByb2ZmOiAwLjAwMTEzODI5LFxuICAgICAgICByb246IDAuNzk3ODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC45ODcxODYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTIzOTUsXG4gICAgICAgIHJvbjogMC43OTc5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzUwMyxcbiAgICAgICAgcm9mZjogMC4wMDExMTAyNSxcbiAgICAgICAgcm9uOiAwLjc5Nzk3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuOTg3ODAzLFxuICAgICAgICByb2ZmOiAwLjAwMTA5NzE1LFxuICAgICAgICByb246IDAuNzk4MDI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC45ODgwODcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDg0NjMsXG4gICAgICAgIHJvbjogMC43OTgwNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODM1NCxcbiAgICAgICAgcm9mZjogMC4wMDEwNzI2NyxcbiAgICAgICAgcm9uOiAwLjc5ODExNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuOTg4NjA4LFxuICAgICAgICByb2ZmOiAwLjAwMTA2MTIzLFxuICAgICAgICByb246IDAuNzk4MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC45ODg4NDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUwMyxcbiAgICAgICAgcm9uOiAwLjc5ODE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuOTg5MDc0LFxuICAgICAgICByb2ZmOiAwLjAwMTAzOTg1LFxuICAgICAgICByb246IDAuNzk4MjM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC45ODkyODksXG4gICAgICAgIHJvZmY6IDAuMDAxMDI5ODYsXG4gICAgICAgIHJvbjogMC43OTgyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTQ5MixcbiAgICAgICAgcm9mZjogMC4wMDEwMjAzMSxcbiAgICAgICAgcm9uOiAwLjc5ODMwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuOTg5Njg0LFxuICAgICAgICByb2ZmOiAwLjAwMTAxMTE5LFxuICAgICAgICByb246IDAuNzk4MzM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC45ODk4NjYsXG4gICAgICAgIHJvZmY6IDAuMDAxMDAyNDcsXG4gICAgICAgIHJvbjogMC43OTgzNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDAzOSxcbiAgICAgICAgcm9mZjogMC4wMDA5OTQxMyxcbiAgICAgICAgcm9uOiAwLjc5ODM5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuOTkwMjAzLFxuICAgICAgICByb2ZmOiAwLjAwMDk4NjE2MixcbiAgICAgICAgcm9uOiAwLjc5ODQxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuOTkwMzU4LFxuICAgICAgICByb2ZmOiAwLjAwMDk3ODU0NixcbiAgICAgICAgcm9uOiAwLjc5ODQ0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuOTkwNTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MTI2NixcbiAgICAgICAgcm9uOiAwLjc5ODQ2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuOTkwNjQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDk2NDMwOCxcbiAgICAgICAgcm9uOiAwLjc5ODQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuOTkwNzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDk1NzY1NyxcbiAgICAgICAgcm9uOiAwLjc5ODUxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuOTkwOTA0LFxuICAgICAgICByb2ZmOiAwLjAwMDk1MTMsXG4gICAgICAgIHJvbjogMC43OTg1MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTAyNCxcbiAgICAgICAgcm9mZjogMC4wMDA5NDUyMjQsXG4gICAgICAgIHJvbjogMC43OTg1NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA5Mzk0MTcsXG4gICAgICAgIHJvbjogMC43OTg1NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTI0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MzM4NjYsXG4gICAgICAgIHJvbjogMC43OTg1ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA5Mjg1NjEsXG4gICAgICAgIHJvbjogMC43OTg2MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTQ0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MjM0OSxcbiAgICAgICAgcm9uOiAwLjc5ODYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuOTkxNTM4LFxuICAgICAgICByb2ZmOiAwLjAwMDkxODY0MyxcbiAgICAgICAgcm9uOiAwLjc5ODYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuOTkxNjI2LFxuICAgICAgICByb2ZmOiAwLjAwMDkxNDAxMSxcbiAgICAgICAgcm9uOiAwLjc5ODY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC45OTE3MSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDk1ODMsXG4gICAgICAgIHJvbjogMC43OTg2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDUzNTEsXG4gICAgICAgIHJvbjogMC43OTg2NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg2NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDEzMDYsXG4gICAgICAgIHJvbjogMC43OTg2ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTkzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4OTc0NCxcbiAgICAgICAgcm9uOiAwLjc5ODcwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuOTkyMDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg5Mzc0NSxcbiAgICAgICAgcm9uOiAwLjc5ODcxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyMDcxLFxuICAgICAgICByb2ZmOiAwLjAwMDg5MDIxMyxcbiAgICAgICAgcm9uOiAwLjc5ODcyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuOTkyMTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg4NjgzNyxcbiAgICAgICAgcm9uOiAwLjc5ODczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyMTkzLFxuICAgICAgICByb2ZmOiAwLjAwMDg4MzYxLFxuICAgICAgICByb246IDAuNzk4NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC45OTIyNDksXG4gICAgICAgIHJvZmY6IDAuMDAwODgwNTI2LFxuICAgICAgICByb246IDAuNzk4NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC45OTIzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODc3NTc5LFxuICAgICAgICByb246IDAuNzk4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzQ3NjEsXG4gICAgICAgIHJvbjogMC43OTg3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4NzIwNjksXG4gICAgICAgIHJvbjogMC43OTg3NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4Njk0OTUsXG4gICAgICAgIHJvbjogMC43OTg3ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjcwMzUsXG4gICAgICAgIHJvbjogMC43OTg3OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjUzNixcbiAgICAgICAgcm9mZjogMC4wMDA4NjQ2ODQsXG4gICAgICAgIHJvbjogMC43OTg3OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjU3NixcbiAgICAgICAgcm9mZjogMC4wMDA4NjI0MzcsXG4gICAgICAgIHJvbjogMC43OTg4MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjYxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4NjAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODgxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuOTkyNjUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1ODIzNyxcbiAgICAgICAgcm9uOiAwLjc5ODgxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNjg2LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NjI3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzE5LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NDQsXG4gICAgICAgIHJvbjogMC43OTg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTI2MDcsXG4gICAgICAgIHJvbjogMC43OTg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc4MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTA4OTQsXG4gICAgICAgIHJvbjogMC43OTg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgxLFxuICAgICAgICByb2ZmOiAwLjAwMDg0OTI1NyxcbiAgICAgICAgcm9uOiAwLjc5ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuOTkyODM4LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NzY5MixcbiAgICAgICAgcm9uOiAwLjc5ODg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuOTkyODY0LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NjE5NixcbiAgICAgICAgcm9uOiAwLjc5ODg1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuOTkyODg5LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NDc2NixcbiAgICAgICAgcm9uOiAwLjc5ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuOTkyOTEzLFxuICAgICAgICByb2ZmOiAwLjAwMDg0MzM5OSxcbiAgICAgICAgcm9uOiAwLjc5ODg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuOTkyOTM2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MjA5MyxcbiAgICAgICAgcm9uOiAwLjc5ODg2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuOTkyOTU3LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MDg0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuOTkyOTc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTY1MixcbiAgICAgICAgcm9uOiAwLjc5ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC45OTI5OTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM4NTEyLFxuICAgICAgICByb246IDAuNzk4ODczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC45OTMwMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NDIyLFxuICAgICAgICByb246IDAuNzk4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC45OTMwMzUsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2MzgsXG4gICAgICAgIHJvbjogMC43OTg4NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA1MixcbiAgICAgICAgcm9mZjogMC4wMDA4MzUzODUsXG4gICAgICAgIHJvbjogMC43OTg4ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ0MzMsXG4gICAgICAgIHJvbjogMC43OTg4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM1MjQsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzI2NTQsXG4gICAgICAgIHJvbjogMC43OTg4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMTE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTgyNCxcbiAgICAgICAgcm9uOiAwLjc5ODg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTAzLFxuICAgICAgICByb246IDAuNzk4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC45OTMxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzAyNzEsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE1MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk1NDUsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjg4NTIsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC45OTMxNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4MTg5LFxuICAgICAgICByb246IDAuNzk4OTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC45OTMxODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3NTU1LFxuICAgICAgICByb246IDAuNzk4OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2OTUsXG4gICAgICAgIHJvbjogMC43OTg5MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjYzNzEsXG4gICAgICAgIHJvbjogMC43OTg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU4MTgsXG4gICAgICAgIHJvbjogMC43OTg5MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIyNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjUyODksXG4gICAgICAgIHJvbjogMC43OTg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMjM1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDMsXG4gICAgICAgIHJvbjogMC43OTg5MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM4MzksXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjMzOTgsXG4gICAgICAgIHJvbjogMC43OTg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjI5NzYsXG4gICAgICAgIHJvbjogMC43OTg5MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MjI1NzMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIxODgsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE4MixcbiAgICAgICAgcm9uOiAwLjc5ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC45OTMyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNDY4LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC45OTMyOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMTMyLFxuICAgICAgICByb246IDAuNzk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzMDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwODEsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1MDMsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjAyMDksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk5MjksXG4gICAgICAgIHJvbjogMC43OTg5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTk2NixcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzI2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTQwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MTU5LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC45OTMzMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4OTI1LFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NzAxLFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NDg3LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzNDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MjgyLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgwODcsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzUyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzksXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3MjIsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc1NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzIzMixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzA4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjk0MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2ODA0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2Njc0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzNzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NTUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0MzEsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYzMTgsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjIwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzgyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjEwNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjAwNixcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkxMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTgyMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NjUxLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTcyLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDk3LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDI1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzU2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyMjcsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxNjYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxMDksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDU0LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDAxLFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTUxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTAzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODU3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODEzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzcxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzMxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjkzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjU2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjIxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1ODcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU1NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTI1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0OTYsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ0MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDE1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzkxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzQ1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzI0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzA0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mjg0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjY2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxODQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTU3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA5NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwODcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDc3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDQyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTgyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dXG5sZXQgbW9kZWxPZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTtcbmxldCBtb2RlbE9mZk9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjM2OTgsXG4gICAgICAgIHJvZmY6IDAuNjk3NzAxLFxuICAgICAgICByb246IDAuODMyNjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuMDAwMjExMDc0LFxuICAgICAgICByb2ZmOiAwLjYxMjM2MyxcbiAgICAgICAgcm9uOiAwLjk0ODUyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAyNjc1MjYsXG4gICAgICAgIHJvZmY6IDAuNTUwNzc3LFxuICAgICAgICByb246IDAuOTE5NjI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMyOTY3NixcbiAgICAgICAgcm9mZjogMC41MDE1MTYsXG4gICAgICAgIHJvbjogMC44NzA4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMzk3NTg0LFxuICAgICAgICByb2ZmOiAwLjQ2MDMxOSxcbiAgICAgICAgcm9uOiAwLjgwOTk1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDA0NzIwMjgsXG4gICAgICAgIHJvZmY6IDAuNDI0OTQ1LFxuICAgICAgICByb246IDAuNzQ0NDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU1Mzk1LFxuICAgICAgICByb2ZmOiAwLjM5NDAxNSxcbiAgICAgICAgcm9uOiAwLjY4MDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDY0NDM0LFxuICAgICAgICByb2ZmOiAwLjM2NjYxLFxuICAgICAgICByb246IDAuNjIxMDIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDc0NDIyMixcbiAgICAgICAgcm9mZjogMC4zNDIwODIsXG4gICAgICAgIHJvbjogMC41Njc4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwODU0NjY0LFxuICAgICAgICByb2ZmOiAwLjMxOTk1OCxcbiAgICAgICAgcm9uOiAwLjUyMDc0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5NzY3ODcsXG4gICAgICAgIHJvZmY6IDAuMjk5ODc3LFxuICAgICAgICByb246IDAuNDc5MzI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExMTc4LFxuICAgICAgICByb2ZmOiAwLjI4MTU1NixcbiAgICAgICAgcm9uOiAwLjQ0MjgxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjA5MSxcbiAgICAgICAgcm9mZjogMC4yNjQ3NzEsXG4gICAgICAgIHJvbjogMC40MTA1MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDI1NTIsXG4gICAgICAgIHJvZmY6IDAuMjQ5MzM4LFxuICAgICAgICByb246IDAuMzgxNzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTYwNzA0LFxuICAgICAgICByb2ZmOiAwLjIzNTEwNixcbiAgICAgICAgcm9uOiAwLjM1NjAxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC4wMDE4MDcsXG4gICAgICAgIHJvZmY6IDAuMjIxOTQ4LFxuICAgICAgICByb246IDAuMzMyODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuMDAyMDI3MDEsXG4gICAgICAgIHJvZmY6IDAuMjA5NzU3LFxuICAgICAgICByb246IDAuMzExODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI2ODc0LFxuICAgICAgICByb2ZmOiAwLjE5ODQ0MixcbiAgICAgICAgcm9uOiAwLjI5MjgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MzM5NSxcbiAgICAgICAgcm9mZjogMC4xODc5MjUsXG4gICAgICAgIHJvbjogMC4yNzU0MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuMDAyODI0NDMsXG4gICAgICAgIHJvZmY6IDAuMTc4MTM3LFxuICAgICAgICByb246IDAuMjU5NTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC4wMDMxNDIwMyxcbiAgICAgICAgcm9mZjogMC4xNjkwMjEsXG4gICAgICAgIHJvbjogMC4yNDQ5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQ4ODU0LFxuICAgICAgICByb2ZmOiAwLjE2MDUyMyxcbiAgICAgICAgcm9uOiAwLjIzMTQ3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzODY1NzYsXG4gICAgICAgIHJvZmY6IDAuMTUyNixcbiAgICAgICAgcm9uOiAwLjIxOTA5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuMDA0Mjc1MzYsXG4gICAgICAgIHJvZmY6IDAuMTQ1MjEsXG4gICAgICAgIHJvbjogMC4yMDc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDcxODg2LFxuICAgICAgICByb2ZmOiAwLjEzODMxOSxcbiAgICAgICAgcm9uOiAwLjE5NzEwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA1MTk3NTYsXG4gICAgICAgIHJvZmY6IDAuMTMxODk1LFxuICAgICAgICByb246IDAuMTg3MzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDU3MTI0MixcbiAgICAgICAgcm9mZjogMC4xMjU5MDksXG4gICAgICAgIHJvbjogMC4xNzgzMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjI2NDAxLFxuICAgICAgICByb2ZmOiAwLjEyMDMzNixcbiAgICAgICAgcm9uOiAwLjE2OTk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2ODUyMzksXG4gICAgICAgIHJvZmY6IDAuMTE1MTU0LFxuICAgICAgICByb246IDAuMTYyMjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDc0NzcwNCxcbiAgICAgICAgcm9mZjogMC4xMTAzNDEsXG4gICAgICAgIHJvbjogMC4xNTUxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuMDA4MTM2NjgsXG4gICAgICAgIHJvZmY6IDAuMTA1ODc4LFxuICAgICAgICByb246IDAuMTQ4NjI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC4wMDg4MjkyOSxcbiAgICAgICAgcm9mZjogMC4xMDE3NDgsXG4gICAgICAgIHJvbjogMC4xNDI1OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTU1MTk4LFxuICAgICAgICByb2ZmOiAwLjA5NzkzMjYsXG4gICAgICAgIHJvbjogMC4xMzcwNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDMwMSxcbiAgICAgICAgcm9mZjogMC4wOTQ0MTc0LFxuICAgICAgICByb246IDAuMTMxOTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC4wMTEwNzE4LFxuICAgICAgICByb2ZmOiAwLjA5MTE4NjYsXG4gICAgICAgIHJvbjogMC4xMjczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTg1ODksXG4gICAgICAgIHJvZmY6IDAuMDg4MjI1MixcbiAgICAgICAgcm9uOiAwLjEyMzA3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuMDEyNjU2NCxcbiAgICAgICAgcm9mZjogMC4wODU1MTg4LFxuICAgICAgICByb246IDAuMTE5MjEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTM0NTc2LFxuICAgICAgICByb2ZmOiAwLjA4MzA1MjgsXG4gICAgICAgIHJvbjogMC4xMTU3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNDI1NTcsXG4gICAgICAgIHJvZmY6IDAuMDgwODEyNyxcbiAgICAgICAgcm9uOiAwLjExMjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC4wMTUwNDM5LFxuICAgICAgICByb2ZmOiAwLjA3ODc4NDIsXG4gICAgICAgIHJvbjogMC4xMDk3MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNTgxNTYsXG4gICAgICAgIHJvZmY6IDAuMDc2OTUzLFxuICAgICAgICByb246IDAuMTA3MTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC4wMTY1NjQ1LFxuICAgICAgICByb2ZmOiAwLjA3NTMwNDksXG4gICAgICAgIHJvbjogMC4xMDQ4NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNzI4NTMsXG4gICAgICAgIHJvZmY6IDAuMDczODI1NyxcbiAgICAgICAgcm9uOiAwLjEwMjgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC4wMTc5NzMzLFxuICAgICAgICByb2ZmOiAwLjA3MjUwMTgsXG4gICAgICAgIHJvbjogMC4xMDEwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxODYyNDgsXG4gICAgICAgIHJvZmY6IDAuMDcxMzE5NixcbiAgICAgICAgcm9uOiAwLjA5OTQxMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxOTIzNzMsXG4gICAgICAgIHJvZmY6IDAuMDcwMjY2MyxcbiAgICAgICAgcm9uOiAwLjA5ODAwNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAxOTgwOTEsXG4gICAgICAgIHJvZmY6IDAuMDY5MzI5NCxcbiAgICAgICAgcm9uOiAwLjA5Njc2ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDY4NDk3MixcbiAgICAgICAgcm9uOiAwLjA5NTY4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDIwODI5NixcbiAgICAgICAgcm9mZjogMC4wNjc3NTg3LFxuICAgICAgICByb246IDAuMDk0NzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC4wMjEyNzk0LFxuICAgICAgICByb2ZmOiAwLjA2NzEwMzYsXG4gICAgICAgIHJvbjogMC4wOTM5MzM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMjE2OTA5LFxuICAgICAgICByb2ZmOiAwLjA2NjUyMjUsXG4gICAgICAgIHJvbjogMC4wOTMyMzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMjIwNjYzLFxuICAgICAgICByb2ZmOiAwLjA2NjAwNjYsXG4gICAgICAgIHJvbjogMC4wOTI2Mjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMjI0MDc4LFxuICAgICAgICByb2ZmOiAwLjA2NTU0OCxcbiAgICAgICAgcm9uOiAwLjA5MjExNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMjcxODMsXG4gICAgICAgIHJvZmY6IDAuMDY1MTM5NSxcbiAgICAgICAgcm9uOiAwLjA5MTY4MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzAwMDMsXG4gICAgICAgIHJvZmY6IDAuMDY0Nzc0NixcbiAgICAgICAgcm9uOiAwLjA5MTMxNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzI1NjcsXG4gICAgICAgIHJvZmY6IDAuMDY0NDQ3NixcbiAgICAgICAgcm9uOiAwLjA5MTAxMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzQ5MDIsXG4gICAgICAgIHJvZmY6IDAuMDY0MTUzMyxcbiAgICAgICAgcm9uOiAwLjA5MDc2NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzcwMzMsXG4gICAgICAgIHJvZmY6IDAuMDYzODg3MSxcbiAgICAgICAgcm9uOiAwLjA5MDU2NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzg5ODYsXG4gICAgICAgIHJvZmY6IDAuMDYzNjQ0OCxcbiAgICAgICAgcm9uOiAwLjA5MDQxMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDA3ODMsXG4gICAgICAgIHJvZmY6IDAuMDYzNDIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDI5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDI0NDYsXG4gICAgICAgIHJvZmY6IDAuMDYzMjE4MixcbiAgICAgICAgcm9uOiAwLjA5MDIwODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDM5OTUsXG4gICAgICAgIHJvZmY6IDAuMDYzMDI3OSxcbiAgICAgICAgcm9uOiAwLjA5MDE1NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDU0NDcsXG4gICAgICAgIHJvZmY6IDAuMDYyODQ5NSxcbiAgICAgICAgcm9uOiAwLjA5MDEzMDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDY4MixcbiAgICAgICAgcm9mZjogMC4wNjI2ODA3LFxuICAgICAgICByb246IDAuMDkwMTI5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuMDI0ODEyNyxcbiAgICAgICAgcm9mZjogMC4wNjI1MTk4LFxuICAgICAgICByb246IDAuMDkwMTUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuMDI0OTM4MyxcbiAgICAgICAgcm9mZjogMC4wNjIzNjQ5LFxuICAgICAgICByb246IDAuMDkwMTkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDI1MDYsXG4gICAgICAgIHJvZmY6IDAuMDYyMjE0NyxcbiAgICAgICAgcm9uOiAwLjA5MDI1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTE3ODcsXG4gICAgICAgIHJvZmY6IDAuMDYyMDY3NyxcbiAgICAgICAgcm9uOiAwLjA5MDMzMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTI5NTcsXG4gICAgICAgIHJvZmY6IDAuMDYxOTIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDQyNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTQxMTYsXG4gICAgICAgIHJvZmY6IDAuMDYxNzc5MSxcbiAgICAgICAgcm9uOiAwLjA5MDUzNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTUyNzQsXG4gICAgICAgIHJvZmY6IDAuMDYxNjM1NCxcbiAgICAgICAgcm9uOiAwLjA5MDY1ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTY0MzgsXG4gICAgICAgIHJvZmY6IDAuMDYxNDkxMSxcbiAgICAgICAgcm9uOiAwLjA5MDc5NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTc2MTYsXG4gICAgICAgIHJvZmY6IDAuMDYxMzQ1MyxcbiAgICAgICAgcm9uOiAwLjA5MDk0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTg4MTIsXG4gICAgICAgIHJvZmY6IDAuMDYxMTk3MyxcbiAgICAgICAgcm9uOiAwLjA5MTExMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDI2MDAzNSxcbiAgICAgICAgcm9mZjogMC4wNjEwNDY3LFxuICAgICAgICByb246IDAuMDkxMjg5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuMDI2MTI4OCxcbiAgICAgICAgcm9mZjogMC4wNjA4OTI3LFxuICAgICAgICByb246IDAuMDkxNDc5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuMDI2MjU3OCxcbiAgICAgICAgcm9mZjogMC4wNjA3MzQ4LFxuICAgICAgICByb246IDAuMDkxNjgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuMDI2MzkwOSxcbiAgICAgICAgcm9mZjogMC4wNjA1NzI3LFxuICAgICAgICByb246IDAuMDkxODk5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuMDI2NTI4NyxcbiAgICAgICAgcm9mZjogMC4wNjA0MDU3LFxuICAgICAgICByb246IDAuMDkyMTI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuMDI2NjcxNyxcbiAgICAgICAgcm9mZjogMC4wNjAyMzM2LFxuICAgICAgICByb246IDAuMDkyMzcxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDI2ODIwMyxcbiAgICAgICAgcm9mZjogMC4wNjAwNTU5LFxuICAgICAgICByb246IDAuMDkyNjI3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuMDI2OTc1LFxuICAgICAgICByb2ZmOiAwLjA1OTg3MjEsXG4gICAgICAgIHJvbjogMC4wOTI4OTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMjcxMzYzLFxuICAgICAgICByb2ZmOiAwLjA1OTY4MTksXG4gICAgICAgIHJvbjogMC4wOTMxODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMjczMDQ3LFxuICAgICAgICByb2ZmOiAwLjA1OTQ4NSxcbiAgICAgICAgcm9uOiAwLjA5MzQ4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzQ4MDgsXG4gICAgICAgIHJvZmY6IDAuMDU5MjgxLFxuICAgICAgICByb246IDAuMDkzNzk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuMDI3NjY1LFxuICAgICAgICByb2ZmOiAwLjA1OTA2OTUsXG4gICAgICAgIHJvbjogMC4wOTQxMzExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC4wMjc4NTc4LFxuICAgICAgICByb2ZmOiAwLjA1ODg1MDMsXG4gICAgICAgIHJvbjogMC4wOTQ0Nzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC4wMjgwNTk5LFxuICAgICAgICByb2ZmOiAwLjA1ODYyMjksXG4gICAgICAgIHJvbjogMC4wOTQ4NDY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC4wMjgyNzE3LFxuICAgICAgICByb2ZmOiAwLjA1ODM4NyxcbiAgICAgICAgcm9uOiAwLjA5NTIzMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODQ5NCxcbiAgICAgICAgcm9mZjogMC4wNTgxNDIzLFxuICAgICAgICByb246IDAuMDk1NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC4wMjg3MjczLFxuICAgICAgICByb2ZmOiAwLjA1Nzg4ODUsXG4gICAgICAgIHJvbjogMC4wOTYwNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC4wMjg5NzI0LFxuICAgICAgICByb2ZmOiAwLjA1NzYyNTIsXG4gICAgICAgIHJvbjogMC4wOTY1MDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC4wMjkyMjk5LFxuICAgICAgICByb2ZmOiAwLjA1NzM1MjIsXG4gICAgICAgIHJvbjogMC4wOTY5NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC4wMjk1MDA1LFxuICAgICAgICByb2ZmOiAwLjA1NzA2ODksXG4gICAgICAgIHJvbjogMC4wOTc0NjcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC4wMjk3ODUyLFxuICAgICAgICByb2ZmOiAwLjA1Njc3NTMsXG4gICAgICAgIHJvbjogMC4wOTc5ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDA4NDcsXG4gICAgICAgIHJvZmY6IDAuMDU2NDcwOCxcbiAgICAgICAgcm9uOiAwLjA5ODUyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMDM5OTksXG4gICAgICAgIHJvZmY6IDAuMDU2MTU1MixcbiAgICAgICAgcm9uOiAwLjA5OTA5NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDczMTksXG4gICAgICAgIHJvZmY6IDAuMDU1ODI4MixcbiAgICAgICAgcm9uOiAwLjA5OTY5NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMTA4MTYsXG4gICAgICAgIHJvZmY6IDAuMDU1NDg5NCxcbiAgICAgICAgcm9uOiAwLjEwMDMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuMDMxNDUwMixcbiAgICAgICAgcm9mZjogMC4wNTUxMzg2LFxuICAgICAgICByb246IDAuMTAwOTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMzE4Mzg3LFxuICAgICAgICByb2ZmOiAwLjA1NDc3NTQsXG4gICAgICAgIHJvbjogMC4xMDE2ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMjI0ODYsXG4gICAgICAgIHJvZmY6IDAuMDU0Mzk5NSxcbiAgICAgICAgcm9uOiAwLjEwMjQxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuMDMyNjgxLFxuICAgICAgICByb2ZmOiAwLjA1NDAxMDUsXG4gICAgICAgIHJvbjogMC4xMDMxODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMzEzNzUsXG4gICAgICAgIHJvZmY6IDAuMDUzNjA4MyxcbiAgICAgICAgcm9uOiAwLjEwMzk5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuMDMzNjE5NyxcbiAgICAgICAgcm9mZjogMC4wNTMxOTI2LFxuICAgICAgICByb246IDAuMTA0ODUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC4wMzQxMjkxLFxuICAgICAgICByb2ZmOiAwLjA1Mjc2MyxcbiAgICAgICAgcm9uOiAwLjEwNTc1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuMDM0NjY3NyxcbiAgICAgICAgcm9mZjogMC4wNTIzMTkyLFxuICAgICAgICByb246IDAuMTA2Njk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC4wMzUyMzcyLFxuICAgICAgICByb2ZmOiAwLjA1MTg2MTIsXG4gICAgICAgIHJvbjogMC4xMDc2OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNTgzOTgsXG4gICAgICAgIHJvZmY6IDAuMDUxMzg4NixcbiAgICAgICAgcm9uOiAwLjEwODc0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuMDM2NDc3NyxcbiAgICAgICAgcm9mZjogMC4wNTA5MDEyLFxuICAgICAgICByb246IDAuMTA5ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC4wMzcxNTM0LFxuICAgICAgICByb2ZmOiAwLjA1MDM5ODksXG4gICAgICAgIHJvbjogMC4xMTEwMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNzg2OTMsXG4gICAgICAgIHJvZmY6IDAuMDQ5ODgxNCxcbiAgICAgICAgcm9uOiAwLjExMjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuMDM4NjI4NCxcbiAgICAgICAgcm9mZjogMC4wNDkzNDg3LFxuICAgICAgICByb246IDAuMTEzNTU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC4wMzk0MzM2LFxuICAgICAgICByb2ZmOiAwLjA0ODgwMDcsXG4gICAgICAgIHJvbjogMC4xMTQ5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MDI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDQ4MjM3MixcbiAgICAgICAgcm9uOiAwLjExNjM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC4wNDExOTU4LFxuICAgICAgICByb2ZmOiAwLjA0NzY1ODMsXG4gICAgICAgIHJvbjogMC4xMTc5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MjE2MDEsXG4gICAgICAgIHJvZmY6IDAuMDQ3MDY0LFxuICAgICAgICByb246IDAuMTE5NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wNDMxODUyLFxuICAgICAgICByb2ZmOiAwLjA0NjQ1NDIsXG4gICAgICAgIHJvbjogMC4xMjEyNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NDI3NTYsXG4gICAgICAgIHJvZmY6IDAuMDQ1ODI5MixcbiAgICAgICAgcm9uOiAwLjEyMzA2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuMDQ1NDM2MixcbiAgICAgICAgcm9mZjogMC4wNDUxODksXG4gICAgICAgIHJvbjogMC4xMjQ5ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NjY3MjEsXG4gICAgICAgIHJvZmY6IDAuMDQ0NTMzOCxcbiAgICAgICAgcm9uOiAwLjEyNzAxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDQ3OTg5LFxuICAgICAgICByb2ZmOiAwLjA0Mzg2MzksXG4gICAgICAgIHJvbjogMC4xMjkxNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjA0OTM5MjksXG4gICAgICAgIHJvZmY6IDAuMDQzMTc5NSxcbiAgICAgICAgcm9uOiAwLjEzMTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC4wNTA4OTA2LFxuICAgICAgICByb2ZmOiAwLjA0MjQ4MTEsXG4gICAgICAgIHJvbjogMC4xMzM4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjA1MjQ4OSxcbiAgICAgICAgcm9mZjogMC4wNDE3NjksXG4gICAgICAgIHJvbjogMC4xMzY0MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjA1NDE5NixcbiAgICAgICAgcm9mZjogMC4wNDEwNDM4LFxuICAgICAgICByb246IDAuMTM5MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC4wNTYwMTk4LFxuICAgICAgICByb2ZmOiAwLjA0MDMwNixcbiAgICAgICAgcm9uOiAwLjE0MjA0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDU3OTY5NSxcbiAgICAgICAgcm9mZjogMC4wMzk1NTYxLFxuICAgICAgICByb246IDAuMTQ1MTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wNjAwNTQ3LFxuICAgICAgICByb2ZmOiAwLjAzODc5NSxcbiAgICAgICAgcm9uOiAwLjE0ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC4wNjIyODYxLFxuICAgICAgICByb2ZmOiAwLjAzODAyMzIsXG4gICAgICAgIHJvbjogMC4xNTE4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjA2NDY3NDgsXG4gICAgICAgIHJvZmY6IDAuMDM3MjQxNyxcbiAgICAgICAgcm9uOiAwLjE1NTUzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuMDY3MjMzMSxcbiAgICAgICAgcm9mZjogMC4wMzY0NTE0LFxuICAgICAgICByb246IDAuMTU5NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjA2OTk3MzksXG4gICAgICAgIHJvZmY6IDAuMDM1NjUzLFxuICAgICAgICByb246IDAuMTYzNjE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC4wNzI5MTE0LFxuICAgICAgICByb2ZmOiAwLjAzNDg0NzgsXG4gICAgICAgIHJvbjogMC4xNjgwNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjA3NjA2MDUsXG4gICAgICAgIHJvZmY6IDAuMDM0MDM2NixcbiAgICAgICAgcm9uOiAwLjE3Mjc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuMDc5NDM3MixcbiAgICAgICAgcm9mZjogMC4wMzMyMjA3LFxuICAgICAgICByb246IDAuMTc3Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC4wODMwNTg2LFxuICAgICAgICByb2ZmOiAwLjAzMjQwMTIsXG4gICAgICAgIHJvbjogMC4xODMxNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjA4Njk0MyxcbiAgICAgICAgcm9mZjogMC4wMzE1NzkyLFxuICAgICAgICByb246IDAuMTg4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC4wOTExMDk1LFxuICAgICAgICByb2ZmOiAwLjAzMDc1NixcbiAgICAgICAgcm9uOiAwLjE5NDg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDk1NTc4NCxcbiAgICAgICAgcm9mZjogMC4wMjk5MzI5LFxuICAgICAgICByb246IDAuMjAxMzQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC4xMDAzNzEsXG4gICAgICAgIHJvZmY6IDAuMDI5MTExMSxcbiAgICAgICAgcm9uOiAwLjIwODIwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuMTA1NTEsXG4gICAgICAgIHJvZmY6IDAuMDI4MjkyLFxuICAgICAgICByb246IDAuMjE1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuMTExMDE5LFxuICAgICAgICByb2ZmOiAwLjAyNzQ3NjcsXG4gICAgICAgIHJvbjogMC4yMjMyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuMTE2OTIxLFxuICAgICAgICByb2ZmOiAwLjAyNjY2NjUsXG4gICAgICAgIHJvbjogMC4yMzE1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjEyMzI0MSxcbiAgICAgICAgcm9mZjogMC4wMjU4NjI4LFxuICAgICAgICByb246IDAuMjQwMjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC4xMzAwMDUsXG4gICAgICAgIHJvZmY6IDAuMDI1MDY2OCxcbiAgICAgICAgcm9uOiAwLjI0OTU1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuMTM3MjM4LFxuICAgICAgICByb2ZmOiAwLjAyNDI3OTUsXG4gICAgICAgIHJvbjogMC4yNTkzOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjE0NDk2NyxcbiAgICAgICAgcm9mZjogMC4wMjM1MDIyLFxuICAgICAgICByb246IDAuMjY5ODI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4xNTMyMTUsXG4gICAgICAgIHJvZmY6IDAuMDIyNzM1OSxcbiAgICAgICAgcm9uOiAwLjI4MDg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuMTYyMDA5LFxuICAgICAgICByb2ZmOiAwLjAyMTk4MTcsXG4gICAgICAgIHJvbjogMC4yOTI0ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjE3MTM3MSxcbiAgICAgICAgcm9mZjogMC4wMjEyNDA1LFxuICAgICAgICByb246IDAuMzA0NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC4xODEzMjUsXG4gICAgICAgIHJvZmY6IDAuMDIwNTEzMixcbiAgICAgICAgcm9uOiAwLjMxNzYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMTkxODg5LFxuICAgICAgICByb2ZmOiAwLjAxOTgwMDYsXG4gICAgICAgIHJvbjogMC4zMzExNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjIwMzA4MyxcbiAgICAgICAgcm9mZjogMC4wMTkxMDMzLFxuICAgICAgICByb246IDAuMzQ1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC4yMTQ5MjEsXG4gICAgICAgIHJvZmY6IDAuMDE4NDIyMSxcbiAgICAgICAgcm9uOiAwLjM2MDA4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuMjI3NDE0LFxuICAgICAgICByb2ZmOiAwLjAxNzc1NzQsXG4gICAgICAgIHJvbjogMC4zNzU0NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjI0MDU2OCxcbiAgICAgICAgcm9mZjogMC4wMTcxMDk3LFxuICAgICAgICByb246IDAuMzkxMzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC4yNTQzODcsXG4gICAgICAgIHJvZmY6IDAuMDE2NDc5MyxcbiAgICAgICAgcm9uOiAwLjQwNzc4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuMjY4ODY2LFxuICAgICAgICByb2ZmOiAwLjAxNTg2NjcsXG4gICAgICAgIHJvbjogMC40MjQ2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjI4Mzk5NyxcbiAgICAgICAgcm9mZjogMC4wMTUyNzE5LFxuICAgICAgICByb246IDAuNDQxOTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4yOTk3NjUsXG4gICAgICAgIHJvZmY6IDAuMDE0Njk1MSxcbiAgICAgICAgcm9uOiAwLjQ1OTQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuMzE2MTQ2LFxuICAgICAgICByb2ZmOiAwLjAxNDEzNjMsXG4gICAgICAgIHJvbjogMC40NzcyNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjMzMzExMyxcbiAgICAgICAgcm9mZjogMC4wMTM1OTU2LFxuICAgICAgICByb246IDAuNDk1MTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4zNTA2MyxcbiAgICAgICAgcm9mZjogMC4wMTMwNzI5LFxuICAgICAgICByb246IDAuNTEyOTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC4zNjg2NTQsXG4gICAgICAgIHJvZmY6IDAuMDEyNTY4LFxuICAgICAgICByb246IDAuNTMwNjMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC4zODcxMzYsXG4gICAgICAgIHJvZmY6IDAuMDEyMDgwOCxcbiAgICAgICAgcm9uOiAwLjU0ODAzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuNDA2MDIxLFxuICAgICAgICByb2ZmOiAwLjAxMTYxMTEsXG4gICAgICAgIHJvbjogMC41NjUwMzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjQyNTI0OCxcbiAgICAgICAgcm9mZjogMC4wMTExNTg1LFxuICAgICAgICByb246IDAuNTgxNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC40NDQ3NTIsXG4gICAgICAgIHJvZmY6IDAuMDEwNzIyOCxcbiAgICAgICAgcm9uOiAwLjU5NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC40NjQ0NjQsXG4gICAgICAgIHJvZmY6IDAuMDEwMzAzNixcbiAgICAgICAgcm9uOiAwLjYxMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC40ODQzMSxcbiAgICAgICAgcm9mZjogMC4wMDk5MDA1NCxcbiAgICAgICAgcm9uOiAwLjYyNjY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuNTA0MjE4LFxuICAgICAgICByb2ZmOiAwLjAwOTUxMzI2LFxuICAgICAgICByb246IDAuNjQwMTA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC41MjQxMTQsXG4gICAgICAgIHJvZmY6IDAuMDA5MTQxMzMsXG4gICAgICAgIHJvbjogMC42NTI2MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjU0MzkyMyxcbiAgICAgICAgcm9mZjogMC4wMDg3ODQzLFxuICAgICAgICByb246IDAuNjY0MjQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC41NjM1NzUsXG4gICAgICAgIHJvZmY6IDAuMDA4NDQxNzMsXG4gICAgICAgIHJvbjogMC42NzQ5NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjU4MzAwMSxcbiAgICAgICAgcm9mZjogMC4wMDgxMTMxNixcbiAgICAgICAgcm9uOiAwLjY4NDg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC42MDIxMzYsXG4gICAgICAgIHJvZmY6IDAuMDA3Nzk4MTIsXG4gICAgICAgIHJvbjogMC42OTM5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjYyMDkxOSxcbiAgICAgICAgcm9mZjogMC4wMDc0OTYxNSxcbiAgICAgICAgcm9uOiAwLjcwMjIyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuNjM5Mjk3LFxuICAgICAgICByb2ZmOiAwLjAwNzIwNjc5LFxuICAgICAgICByb246IDAuNzA5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC42NTcyMjEsXG4gICAgICAgIHJvZmY6IDAuMDA2OTI5NTcsXG4gICAgICAgIHJvbjogMC43MTY3ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjY3NDY0NyxcbiAgICAgICAgcm9mZjogMC4wMDY2NjQwMyxcbiAgICAgICAgcm9uOiAwLjcyMzE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuNjkxNTM5LFxuICAgICAgICByb2ZmOiAwLjAwNjQwOTczLFxuICAgICAgICByb246IDAuNzI5MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC43MDc4NjYsXG4gICAgICAgIHJvZmY6IDAuMDA2MTY2MjMsXG4gICAgICAgIHJvbjogMC43MzQzNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjcyMzYwNCxcbiAgICAgICAgcm9mZjogMC4wMDU5MzMxMSxcbiAgICAgICAgcm9uOiAwLjczOTI3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuNzM4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwNTcwOTk1LFxuICAgICAgICByb246IDAuNzQzNzg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC43NTMyNDksXG4gICAgICAgIHJvZmY6IDAuMDA1NDk2MzQsXG4gICAgICAgIHJvbjogMC43NDc5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjc2NzEzNSxcbiAgICAgICAgcm9mZjogMC4wMDUyOTE5MSxcbiAgICAgICAgcm9uOiAwLjc1MTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC43ODAzOTIsXG4gICAgICAgIHJvZmY6IDAuMDA1MDk2MjYsXG4gICAgICAgIHJvbjogMC43NTUyNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjc5MzAyMyxcbiAgICAgICAgcm9mZjogMC4wMDQ5MDkwNCxcbiAgICAgICAgcm9uOiAwLjc1ODQ5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuODA1MDM0LFxuICAgICAgICByb2ZmOiAwLjAwNDcyOTksXG4gICAgICAgIHJvbjogMC43NjE0NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjgxNjQzNCxcbiAgICAgICAgcm9mZjogMC4wMDQ1NTg1LFxuICAgICAgICByb246IDAuNzY0MjI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC44MjcyMzUsXG4gICAgICAgIHJvZmY6IDAuMDA0Mzk0NTIsXG4gICAgICAgIHJvbjogMC43NjY3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuODM3NDU0LFxuICAgICAgICByb2ZmOiAwLjAwNDIzNzY0LFxuICAgICAgICByb246IDAuNzY5MDk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC44NDcxMDgsXG4gICAgICAgIHJvZmY6IDAuMDA0MDg3NTYsXG4gICAgICAgIHJvbjogMC43NzEyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjg1NjIxNSxcbiAgICAgICAgcm9mZjogMC4wMDM5NDQsXG4gICAgICAgIHJvbjogMC43NzMyNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjg2NDc5NSxcbiAgICAgICAgcm9mZjogMC4wMDM4MDY2OCxcbiAgICAgICAgcm9uOiAwLjc3NTA4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuODcyODcxLFxuICAgICAgICByb2ZmOiAwLjAwMzY3NTM0LFxuICAgICAgICByb246IDAuNzc2NzgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC44ODA0NjIsXG4gICAgICAgIHJvZmY6IDAuMDAzNTQ5NzEsXG4gICAgICAgIHJvbjogMC43NzgzNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjg4NzU5MyxcbiAgICAgICAgcm9mZjogMC4wMDM0Mjk1NixcbiAgICAgICAgcm9uOiAwLjc3OTc5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuODk0Mjg1LFxuICAgICAgICByb2ZmOiAwLjAwMzMxNDY0LFxuICAgICAgICByb246IDAuNzgxMTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuOTAwNTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMjA0NzQsXG4gICAgICAgIHJvbjogMC43ODIzNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45MDY0NDEsXG4gICAgICAgIHJvZmY6IDAuMDAzMDk5NjQsXG4gICAgICAgIHJvbjogMC43ODM1MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45MTE5NDgsXG4gICAgICAgIHJvZmY6IDAuMDAyOTk5MTQsXG4gICAgICAgIHJvbjogMC43ODQ1ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45MTcxMDMsXG4gICAgICAgIHJvZmY6IDAuMDAyOTAzMDIsXG4gICAgICAgIHJvbjogMC43ODU1NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45MjE5MjYsXG4gICAgICAgIHJvZmY6IDAuMDAyODExMTEsXG4gICAgICAgIHJvbjogMC43ODY0NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45MjY0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAyNzIzMjMsXG4gICAgICAgIHJvbjogMC43ODczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45MzA2NTQsXG4gICAgICAgIHJvZmY6IDAuMDAyNjM5MTksXG4gICAgICAgIHJvbjogMC43ODgwOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC45MzQ1OTYsXG4gICAgICAgIHJvZmY6IDAuMDAyNTU4ODMsXG4gICAgICAgIHJvbjogMC43ODg4MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC45MzgyNzksXG4gICAgICAgIHJvZmY6IDAuMDAyNDgxOTksXG4gICAgICAgIHJvbjogMC43ODk0ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45NDE3MjEsXG4gICAgICAgIHJvZmY6IDAuMDAyNDA4NTIsXG4gICAgICAgIHJvbjogMC43OTAxMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC45NDQ5MzYsXG4gICAgICAgIHJvZmY6IDAuMDAyMzM4MjgsXG4gICAgICAgIHJvbjogMC43OTA2ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC45NDc5NCxcbiAgICAgICAgcm9mZjogMC4wMDIyNzExMixcbiAgICAgICAgcm9uOiAwLjc5MTIxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk1MDc0NSxcbiAgICAgICAgcm9mZjogMC4wMDIyMDY5LFxuICAgICAgICByb246IDAuNzkxNzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuOTUzMzY2LFxuICAgICAgICByb2ZmOiAwLjAwMjE0NTUxLFxuICAgICAgICByb246IDAuNzkyMTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTU1ODE1LFxuICAgICAgICByb2ZmOiAwLjAwMjA4NjgxLFxuICAgICAgICByb246IDAuNzkyNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuOTU4MTAzLFxuICAgICAgICByb2ZmOiAwLjAwMjAzMDY5LFxuICAgICAgICByb246IDAuNzkzMDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuOTYwMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxOTc3MDQsXG4gICAgICAgIHJvbjogMC43OTMzNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45NjIyMzgsXG4gICAgICAgIHJvZmY6IDAuMDAxOTI1NzUsXG4gICAgICAgIHJvbjogMC43OTM3MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC45NjQxMDUsXG4gICAgICAgIHJvZmY6IDAuMDAxODc2NzEsXG4gICAgICAgIHJvbjogMC43OTQwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC45NjU4NTEsXG4gICAgICAgIHJvZmY6IDAuMDAxODI5ODMsXG4gICAgICAgIHJvbjogMC43OTQzNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45Njc0ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxNzg1MDEsXG4gICAgICAgIHJvbjogMC43OTQ2MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC45NjkwMTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNzQyMTYsXG4gICAgICAgIHJvbjogMC43OTQ4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC45NzA0NCxcbiAgICAgICAgcm9mZjogMC4wMDE3MDEyMSxcbiAgICAgICAgcm9uOiAwLjc5NTEyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk3MTc3NyxcbiAgICAgICAgcm9mZjogMC4wMDE2NjIwNSxcbiAgICAgICAgcm9uOiAwLjc5NTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzAyOSxcbiAgICAgICAgcm9mZjogMC4wMDE2MjQ2MixcbiAgICAgICAgcm9uOiAwLjc5NTU2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NDIwMSxcbiAgICAgICAgcm9mZjogMC4wMDE1ODg4MyxcbiAgICAgICAgcm9uOiAwLjc5NTc2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NTI5OSxcbiAgICAgICAgcm9mZjogMC4wMDE1NTQ2MyxcbiAgICAgICAgcm9uOiAwLjc5NTk0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjMyOCxcbiAgICAgICAgcm9mZjogMC4wMDE1MjE5MyxcbiAgICAgICAgcm9uOiAwLjc5NjEyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NzI5MyxcbiAgICAgICAgcm9mZjogMC4wMDE0OTA2NyxcbiAgICAgICAgcm9uOiAwLjc5NjI4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk3ODE5OCxcbiAgICAgICAgcm9mZjogMC4wMDE0NjA3OCxcbiAgICAgICAgcm9uOiAwLjc5NjQzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTA0NyxcbiAgICAgICAgcm9mZjogMC4wMDE0MzIyMixcbiAgICAgICAgcm9uOiAwLjc5NjU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk3OTg0NCxcbiAgICAgICAgcm9mZjogMC4wMDE0MDQ5MixcbiAgICAgICAgcm9uOiAwLjc5NjcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuOTgwNTkyLFxuICAgICAgICByb2ZmOiAwLjAwMTM3ODgyLFxuICAgICAgICByb246IDAuNzk2ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuOTgxMjk0LFxuICAgICAgICByb2ZmOiAwLjAwMTM1Mzg3LFxuICAgICAgICByb246IDAuNzk2OTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTgxOTU0LFxuICAgICAgICByb2ZmOiAwLjAwMTMzMDAyLFxuICAgICAgICByb246IDAuNzk3MDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuOTgyNTc1LFxuICAgICAgICByb2ZmOiAwLjAwMTMwNzIyLFxuICAgICAgICByb246IDAuNzk3MTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuOTgzMTU4LFxuICAgICAgICByb2ZmOiAwLjAwMTI4NTQzLFxuICAgICAgICByb246IDAuNzk3MjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTgzNzA3LFxuICAgICAgICByb2ZmOiAwLjAwMTI2NDYsXG4gICAgICAgIHJvbjogMC43OTczNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC45ODQyMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjQ0NjksXG4gICAgICAgIHJvbjogMC43OTc0MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45ODQ3MSxcbiAgICAgICAgcm9mZjogMC4wMDEyMjU2NSxcbiAgICAgICAgcm9uOiAwLjc5NzUxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NTE2OCxcbiAgICAgICAgcm9mZjogMC4wMDEyMDc0NixcbiAgICAgICAgcm9uOiAwLjc5NzU5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTkwMDcsXG4gICAgICAgIHJvbjogMC43OTc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC45ODYwMDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMTczNDUsXG4gICAgICAgIHJvbjogMC43OTc3MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45ODYzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMTU3NTYsXG4gICAgICAgIHJvbjogMC43OTc3OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC45ODY3NTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTQyMzgsXG4gICAgICAgIHJvbjogMC43OTc4NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC45ODcwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTI3ODYsXG4gICAgICAgIHJvbjogMC43OTc5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDExMTM5OCxcbiAgICAgICAgcm9uOiAwLjc5Nzk2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzcyMixcbiAgICAgICAgcm9mZjogMC4wMDExMDA3MixcbiAgICAgICAgcm9uOiAwLjc5ODAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODAxLFxuICAgICAgICByb2ZmOiAwLjAwMTA4ODA0LFxuICAgICAgICByb246IDAuNzk4MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC45ODgyODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDc1OTMsXG4gICAgICAgIHJvbjogMC43OTgxMDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45ODg1MzksXG4gICAgICAgIHJvZmY6IDAuMDAxMDY0MzUsXG4gICAgICAgIHJvbjogMC43OTgxNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC45ODg3ODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUzMjgsXG4gICAgICAgIHJvbjogMC43OTgxODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC45ODkwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDQyNjksXG4gICAgICAgIHJvbjogMC43OTgyMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45ODkyMyxcbiAgICAgICAgcm9mZjogMC4wMDEwMzI1OCxcbiAgICAgICAgcm9uOiAwLjc5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTg5NDM3LFxuICAgICAgICByb2ZmOiAwLjAwMTAyMjkxLFxuICAgICAgICByb246IDAuNzk4MjkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTg5NjMyLFxuICAgICAgICByb2ZmOiAwLjAwMTAxMzY3LFxuICAgICAgICByb246IDAuNzk4MzI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuOTg5ODE3LFxuICAgICAgICByb2ZmOiAwLjAwMTAwNDg0LFxuICAgICAgICByb246IDAuNzk4MzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuOTg5OTkyLFxuICAgICAgICByb2ZmOiAwLjAwMDk5NjQwMSxcbiAgICAgICAgcm9uOiAwLjc5ODM4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDE1OCxcbiAgICAgICAgcm9mZjogMC4wMDA5ODgzMzMsXG4gICAgICAgIHJvbjogMC43OTg0MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC45OTAzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTgwNjIxLFxuICAgICAgICByb246IDAuNzk4NDM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuOTkwNDY2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MzI0OSxcbiAgICAgICAgcm9uOiAwLjc5ODQ2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDYwNyxcbiAgICAgICAgcm9mZjogMC4wMDA5NjYyMDMsXG4gICAgICAgIHJvbjogMC43OTg0ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC45OTA3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTU5NDY5LFxuICAgICAgICByb246IDAuNzk4NTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuOTkwODcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTUzMDMyLFxuICAgICAgICByb246IDAuNzk4NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkwOTkxLFxuICAgICAgICByb2ZmOiAwLjAwMDk0Njg3OSxcbiAgICAgICAgcm9uOiAwLjc5ODU0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEwNixcbiAgICAgICAgcm9mZjogMC4wMDA5NDA5OTksXG4gICAgICAgIHJvbjogMC43OTg1NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTEyMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTM1Mzc4LFxuICAgICAgICByb246IDAuNzk4NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTMwMDA2LFxuICAgICAgICByb246IDAuNzk4NjAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkxNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDkyNDg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODYxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTUxMyxcbiAgICAgICAgcm9mZjogMC4wMDA5MTk5NjQsXG4gICAgICAgIHJvbjogMC43OTg2MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTE2MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE1MjczLFxuICAgICAgICByb246IDAuNzk4NjQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkxNjg3LFxuICAgICAgICByb2ZmOiAwLjAwMDkxMDc4OSxcbiAgICAgICAgcm9uOiAwLjc5ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuOTkxNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDkwNjUwNCxcbiAgICAgICAgcm9uOiAwLjc5ODY3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDI0MDgsXG4gICAgICAgIHJvbjogMC43OTg2ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3MDAsXG4gICAgICAgIGdmcDogMC45OTE5MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODk4NDkzLFxuICAgICAgICByb246IDAuNzk4Njk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzUwLFxuICAgICAgICBnZnA6IDAuOTkxOTg3LFxuICAgICAgICByb2ZmOiAwLjAwMDg5NDc1MSxcbiAgICAgICAgcm9uOiAwLjc5ODcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjA1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4OTExNzQsXG4gICAgICAgIHJvbjogMC43OTg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjExNyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODc3NTYsXG4gICAgICAgIHJvbjogMC43OTg3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjE3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODQ0ODksXG4gICAgICAgIHJvbjogMC43OTg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjIzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4ODEzNjYsXG4gICAgICAgIHJvbjogMC43OTg3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMDAsXG4gICAgICAgIGdmcDogMC45OTIyODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODc4MzgxLFxuICAgICAgICByb246IDAuNzk4NzU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDUwLFxuICAgICAgICBnZnA6IDAuOTkyMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODc1NTI5LFxuICAgICAgICByb246IDAuNzk4NzY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuOTkyMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODcyODAyLFxuICAgICAgICByb246IDAuNzk4Nzc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNDM3LFxuICAgICAgICByb2ZmOiAwLjAwMDg3MDE5NixcbiAgICAgICAgcm9uOiAwLjc5ODc4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ4MixcbiAgICAgICAgcm9mZjogMC4wMDA4Njc3MDYsXG4gICAgICAgIHJvbjogMC43OTg3ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC45OTI1MjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODY1MzI1LFxuICAgICAgICByb246IDAuNzk4Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzAwLFxuICAgICAgICBnZnA6IDAuOTkyNTY1LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MzA1LFxuICAgICAgICByb246IDAuNzk4ODAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzUwLFxuICAgICAgICBnZnA6IDAuOTkyNjA0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MDg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTg3OTYsXG4gICAgICAgIHJvbjogMC43OTg4MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC45OTI2NzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODU2ODA5LFxuICAgICAgICByb246IDAuNzk4ODIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU0OTEsXG4gICAgICAgIHJvbjogMC43OTg4MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1NTAsXG4gICAgICAgIGdmcDogMC45OTI3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODUzMDk1LFxuICAgICAgICByb246IDAuNzk4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzczLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MTM2MSxcbiAgICAgICAgcm9uOiAwLjc5ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgwMixcbiAgICAgICAgcm9mZjogMC4wMDA4NDk3MDIsXG4gICAgICAgIHJvbjogMC43OTg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3MDAsXG4gICAgICAgIGdmcDogMC45OTI4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDgxMTgsXG4gICAgICAgIHJvbjogMC43OTg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC45OTI4NTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ2NjAzLFxuICAgICAgICByb246IDAuNzk4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4MDAsXG4gICAgICAgIGdmcDogMC45OTI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ1MTU1LFxuICAgICAgICByb246IDAuNzk4ODU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODUwLFxuICAgICAgICBnZnA6IDAuOTkyOTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0Mzc3MixcbiAgICAgICAgcm9uOiAwLjc5ODg1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkyOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDI0NDksXG4gICAgICAgIHJvbjogMC43OTg4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5NTAsXG4gICAgICAgIGdmcDogMC45OTI5NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODQxMTg1LFxuICAgICAgICByb246IDAuNzk4ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAwLFxuICAgICAgICBnZnA6IDAuOTkyOTcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzg4MjIsXG4gICAgICAgIHJvbjogMC43OTg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC45OTMwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NzE5LFxuICAgICAgICByb246IDAuNzk4ODc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2NjY0LFxuICAgICAgICByb246IDAuNzk4ODc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMDQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNTY1NixcbiAgICAgICAgcm9uOiAwLjc5ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ2OTIsXG4gICAgICAgIHJvbjogMC43OTg4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzMDAsXG4gICAgICAgIGdmcDogMC45OTMwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM3NzEsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC45OTMwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyODkxLFxuICAgICAgICByb246IDAuNzk4ODg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyMDQ5LFxuICAgICAgICByb246IDAuNzk4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzA0NzYsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC45OTMxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk3NDIsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC45OTMxNjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5MDQsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMTczLFxuICAgICAgICByb2ZmOiAwLjAwMDgyODM2OSxcbiAgICAgICAgcm9uOiAwLjc5ODkwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjc3MjcsXG4gICAgICAgIHJvbjogMC43OTg5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3MTE0LFxuICAgICAgICByb246IDAuNzk4OTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjUyOCxcbiAgICAgICAgcm9uOiAwLjc5ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU5NjgsXG4gICAgICAgIHJvbjogMC43OTg5MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5MDAsXG4gICAgICAgIGdmcDogMC45OTMyMjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1NDMzLFxuICAgICAgICByb246IDAuNzk4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5NTAsXG4gICAgICAgIGdmcDogMC45OTMyMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0OTIxLFxuICAgICAgICByb246IDAuNzk4OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDQzMixcbiAgICAgICAgcm9uOiAwLjc5ODkxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM5NjUsXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxMDAsXG4gICAgICAgIGdmcDogMC45OTMyNTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzNTE4LFxuICAgICAgICByb246IDAuNzk4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzA5MSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjY4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIyOTMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC45OTMyODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxOTIsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzNTAsXG4gICAgICAgIGdmcDogMC45OTMyODksXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNTY0LFxuICAgICAgICByb246IDAuNzk4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0MDAsXG4gICAgICAgIGdmcDogMC45OTMyOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMjI0LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1ODcsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMjksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC45OTMzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMDA2LFxuICAgICAgICByb246IDAuNzk4OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzIxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk0NzQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC45OTMzMjksXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MjI2LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzMzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODk4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg3NjMsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NTQ2LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODMzOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgxNDEsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc5NTIsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3NzEsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NTk4LFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NDMzLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzI3NixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcxMjUsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2OTgsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0MDAsXG4gICAgICAgIGdmcDogMC45OTMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY4NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NzExLFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjU4NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0NjUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYyNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTYxMzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC45OTMzODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MDM0LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkzOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU4NDcsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC45OTMzODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NzU5LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTY3NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1OTUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTE4LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQ0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzNzUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzA5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxODQsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTI1LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDE2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDk2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5MTcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODI2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzA0LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY2NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2MzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1OTcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1NjUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MzQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MDQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDQ5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0MjMsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzOTgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNzUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNTIsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjcxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjUzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTg5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEzNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMjMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDYyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDM3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTk2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXTtcbmxldCBtb2RlbE9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dO1xubGV0IG1vZGVsT25PZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjQwMDMyOSxcbiAgICAgICAgcm9mZjogMC40NjAyOTgsXG4gICAgICAgIHJvbjogMC42ODE2MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC4xNDc0OTksXG4gICAgICAgIHJvZmY6IDAuNTU4NjM4LFxuICAgICAgICByb246IDAuNjAxODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjA1NDQ2OTQsXG4gICAgICAgIHJvZmY6IDAuNTM5MTEzLFxuICAgICAgICByb246IDAuNTQyNTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDI3NDYsXG4gICAgICAgIHJvZmY6IDAuNDk4NTI1LFxuICAgICAgICByb246IDAuNDk0Njc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzczNjk0LFxuICAgICAgICByb2ZmOiAwLjQ1OTE0MixcbiAgICAgICAgcm9uOiAwLjQ1NDQ4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDMxNzMzNSxcbiAgICAgICAgcm9mZjogMC40MjQyMDYsXG4gICAgICAgIHJvbjogMC40MTk4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuMDAxNTQ4OSxcbiAgICAgICAgcm9mZjogMC4zOTM0NDIsXG4gICAgICAgIHJvbjogMC4zODk1MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuMDAxMDExNTQsXG4gICAgICAgIHJvZmY6IDAuMzY2MTU0LFxuICAgICAgICByb246IDAuMzYyNjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDg4MDQzMSxcbiAgICAgICAgcm9mZjogMC4zNDE3NDQsXG4gICAgICAgIHJvbjogMC4zMzg1MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwOTA1NzE3LFxuICAgICAgICByb2ZmOiAwLjMxOTc0OCxcbiAgICAgICAgcm9uOiAwLjMxNjc1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5OTYxNDQsXG4gICAgICAgIHJvZmY6IDAuMjk5ODA0LFxuICAgICAgICByb246IDAuMjk3MDIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExODg1LFxuICAgICAgICByb2ZmOiAwLjI4MTYzMyxcbiAgICAgICAgcm9uOiAwLjI3OTAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjI0NyxcbiAgICAgICAgcm9mZjogMC4yNjUwMDksXG4gICAgICAgIHJvbjogMC4yNjI1MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDIzNixcbiAgICAgICAgcm9mZjogMC4yNDk3NDgsXG4gICAgICAgIHJvbjogMC4yNDczNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuMDAxNjAxNzYsXG4gICAgICAgIHJvZmY6IDAuMjM1NzAxLFxuICAgICAgICByb246IDAuMjMzNDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTc5NzU5LFxuICAgICAgICByb2ZmOiAwLjIyMjc0MixcbiAgICAgICAgcm9uOiAwLjIyMDUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC4wMDIwMTIxLFxuICAgICAgICByb2ZmOiAwLjIxMDc2NCxcbiAgICAgICAgcm9uOiAwLjIwODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI0NjQ2LFxuICAgICAgICByb2ZmOiAwLjE5OTY3OSxcbiAgICAgICAgcm9uOiAwLjE5NzQ4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MDE4NCxcbiAgICAgICAgcm9mZjogMC4xODk0MDksXG4gICAgICAgIHJvbjogMC4xODcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC4wMDI3NzkzNCxcbiAgICAgICAgcm9mZjogMC4xNzk4ODksXG4gICAgICAgIHJvbjogMC4xNzc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuMDAzMDc5OTQsXG4gICAgICAgIHJvZmY6IDAuMTcxMDYsXG4gICAgICAgIHJvbjogMC4xNjg3ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQwNDQ0LFxuICAgICAgICByb2ZmOiAwLjE2Mjg3MixcbiAgICAgICAgcm9uOiAwLjE2MDUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzNzUzMzcsXG4gICAgICAgIHJvZmY6IDAuMTU1MjgzLFxuICAgICAgICByb246IDAuMTUyODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC4wMDQxMjY5NSxcbiAgICAgICAgcm9mZjogMC4xNDgyNTIsXG4gICAgICAgIHJvbjogMC4xNDU2OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDUyNDk4LFxuICAgICAgICByb2ZmOiAwLjE0MTc0NyxcbiAgICAgICAgcm9uOiAwLjEzOTA0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA0OTQ2NzYsXG4gICAgICAgIHJvZmY6IDAuMTM1NzM3LFxuICAgICAgICByb246IDAuMTMyODcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDUzOTEwMyxcbiAgICAgICAgcm9mZjogMC4xMzAxOTQsXG4gICAgICAgIHJvbjogMC4xMjcxMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTg1NTg3LFxuICAgICAgICByb2ZmOiAwLjEyNTA5MyxcbiAgICAgICAgcm9uOiAwLjEyMTgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2MzM4NjYsXG4gICAgICAgIHJvZmY6IDAuMTIwNDE0LFxuICAgICAgICByb246IDAuMTE2ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDY4MzYwNSxcbiAgICAgICAgcm9mZjogMC4xMTYxMzMsXG4gICAgICAgIHJvbjogMC4xMTIzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzM0Mzk3LFxuICAgICAgICByb2ZmOiAwLjExMjIzMyxcbiAgICAgICAgcm9uOiAwLjEwODA5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuMDA3ODU3NjUsXG4gICAgICAgIHJvZmY6IDAuMTA4Njk1LFxuICAgICAgICByb246IDAuMTA0MTk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC4wMDgzNzE3NCxcbiAgICAgICAgcm9mZjogMC4xMDU1MDEsXG4gICAgICAgIHJvbjogMC4xMDA2MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODg4MDQsXG4gICAgICAgIHJvZmY6IDAuMTAyNjM0LFxuICAgICAgICByb246IDAuMDk3Mjk4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuMDA5Mzc3NTQsXG4gICAgICAgIHJvZmY6IDAuMTAwMDc4LFxuICAgICAgICByb246IDAuMDk0MjU1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuMDA5ODU3LFxuICAgICAgICByb2ZmOiAwLjA5NzgxNjQsXG4gICAgICAgIHJvbjogMC4wOTE0NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC4wMTAzMTI3LFxuICAgICAgICByb2ZmOiAwLjA5NTgzMzQsXG4gICAgICAgIHJvbjogMC4wODg4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTA3MzkxLFxuICAgICAgICByb2ZmOiAwLjA5NDExMzUsXG4gICAgICAgIHJvbjogMC4wODY1MjY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC4wMTExMzEsXG4gICAgICAgIHJvZmY6IDAuMDkyNjQxMyxcbiAgICAgICAgcm9uOiAwLjA4NDM1NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTQ4NDEsXG4gICAgICAgIHJvZmY6IDAuMDkxNDAxOCxcbiAgICAgICAgcm9uOiAwLjA4MjM1NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTc5NTEsXG4gICAgICAgIHJvZmY6IDAuMDkwMzgwOSxcbiAgICAgICAgcm9uOiAwLjA4MDUxMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjA2MTMsXG4gICAgICAgIHJvZmY6IDAuMDg5NTY0NixcbiAgICAgICAgcm9uOiAwLjA3ODgwNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjI4MTMsXG4gICAgICAgIHJvZmY6IDAuMDg4OTQwMixcbiAgICAgICAgcm9uOiAwLjA3NzIyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjQ1NDQsXG4gICAgICAgIHJvZmY6IDAuMDg4NDk1MyxcbiAgICAgICAgcm9uOiAwLjA3NTc0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjU4MDcsXG4gICAgICAgIHJvZmY6IDAuMDg4MjE4OSxcbiAgICAgICAgcm9uOiAwLjA3NDM2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY2MTIsXG4gICAgICAgIHJvZmY6IDAuMDg4MTAwNSxcbiAgICAgICAgcm9uOiAwLjA3MzA2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuMDEyNjk3NSxcbiAgICAgICAgcm9mZjogMC4wODgxMzEyLFxuICAgICAgICByb246IDAuMDcxODM0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuMDEyNjkxNSxcbiAgICAgICAgcm9mZjogMC4wODgzMDI3LFxuICAgICAgICByb246IDAuMDcwNjYwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDEyNjQ1NixcbiAgICAgICAgcm9mZjogMC4wODg2MDgyLFxuICAgICAgICByb246IDAuMDY5NTMzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuMDEyNTYyMyxcbiAgICAgICAgcm9mZjogMC4wODkwNDE3LFxuICAgICAgICByb246IDAuMDY4NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMTI0NDQzLFxuICAgICAgICByb2ZmOiAwLjA4OTU5ODUsXG4gICAgICAgIHJvbjogMC4wNjczODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMTIyOTQ1LFxuICAgICAgICByb2ZmOiAwLjA5MDI3NDgsXG4gICAgICAgIHJvbjogMC4wNjYzNTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMTIxMTU1LFxuICAgICAgICByb2ZmOiAwLjA5MTA2ODEsXG4gICAgICAgIHJvbjogMC4wNjUzNDA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC4wMTE5MTAxLFxuICAgICAgICByb2ZmOiAwLjA5MTk3NjgsXG4gICAgICAgIHJvbjogMC4wNjQzMzc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC4wMTE2ODA3LFxuICAgICAgICByb2ZmOiAwLjA5MzAwMDMsXG4gICAgICAgIHJvbjogMC4wNjMzNDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC4wMTE0MyxcbiAgICAgICAgcm9mZjogMC4wOTQxMzg4LFxuICAgICAgICByb246IDAuMDYyMzUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuMDExMTYwMSxcbiAgICAgICAgcm9mZjogMC4wOTUzOTM3LFxuICAgICAgICByb246IDAuMDYxMzU4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuMDEwODczMyxcbiAgICAgICAgcm9mZjogMC4wOTY3NjczLFxuICAgICAgICByb246IDAuMDYwMzY0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuMDEwNTcxOCxcbiAgICAgICAgcm9mZjogMC4wOTgyNjI2LFxuICAgICAgICByb246IDAuMDU5MzY0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuMDEwMjU3MyxcbiAgICAgICAgcm9mZjogMC4wOTk4ODM5LFxuICAgICAgICByb246IDAuMDU4MzU3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuMDA5OTMxODQsXG4gICAgICAgIHJvZmY6IDAuMTAxNjM2LFxuICAgICAgICByb246IDAuMDU3MzQyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuMDA5NTk3MDcsXG4gICAgICAgIHJvZmY6IDAuMTAzNTI1LFxuICAgICAgICByb246IDAuMDU2MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC4wMDkyNTQ2NyxcbiAgICAgICAgcm9mZjogMC4xMDU1NTcsXG4gICAgICAgIHJvbjogMC4wNTUyODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC4wMDg5MDYyMSxcbiAgICAgICAgcm9mZjogMC4xMDc3NDIsXG4gICAgICAgIHJvbjogMC4wNTQyMzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC4wMDg1NTMxOCxcbiAgICAgICAgcm9mZjogMC4xMTAwODYsXG4gICAgICAgIHJvbjogMC4wNTMxNzYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC4wMDgxOTcwMyxcbiAgICAgICAgcm9mZjogMC4xMTI2LFxuICAgICAgICByb246IDAuMDUyMTA2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDA3ODM5MTMsXG4gICAgICAgIHJvZmY6IDAuMTE1Mjk2LFxuICAgICAgICByb246IDAuMDUxMDI2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuMDA3NDgwODQsXG4gICAgICAgIHJvZmY6IDAuMTE4MTg1LFxuICAgICAgICByb246IDAuMDQ5OTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuMDA3MTIzNDMsXG4gICAgICAgIHJvZmY6IDAuMTIxMjgsXG4gICAgICAgIHJvbjogMC4wNDg4MzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC4wMDY3NjgxNSxcbiAgICAgICAgcm9mZjogMC4xMjQ1OTYsXG4gICAgICAgIHJvbjogMC4wNDc3MjQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC4wMDY0MTYyLFxuICAgICAgICByb2ZmOiAwLjEyODE0OSxcbiAgICAgICAgcm9uOiAwLjA0NjYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuMDA2MDY4NzUsXG4gICAgICAgIHJvZmY6IDAuMTMxOTU1LFxuICAgICAgICByb246IDAuMDQ1NDgyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuMDA1NzI2ODgsXG4gICAgICAgIHJvZmY6IDAuMTM2MDMzLFxuICAgICAgICByb246IDAuMDQ0MzUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuMDA1MzkxNjYsXG4gICAgICAgIHJvZmY6IDAuMTQwNDA0LFxuICAgICAgICByb246IDAuMDQzMjE3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDA1MDY0MDcsXG4gICAgICAgIHJvZmY6IDAuMTQ1MDg4LFxuICAgICAgICByb246IDAuMDQyMDgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC4wMDQ3NDUwNSxcbiAgICAgICAgcm9mZjogMC4xNTAxMDksXG4gICAgICAgIHJvbjogMC4wNDA5NDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC4wMDQ0MzU0NixcbiAgICAgICAgcm9mZjogMC4xNTU0OSxcbiAgICAgICAgcm9uOiAwLjAzOTgwNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDEzNjA5LFxuICAgICAgICByb2ZmOiAwLjE2MTI1OSxcbiAgICAgICAgcm9uOiAwLjAzODY3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzg0NzYzLFxuICAgICAgICByb2ZmOiAwLjE2NzQ0NCxcbiAgICAgICAgcm9uOiAwLjAzNzU0MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzU3MDcsXG4gICAgICAgIHJvZmY6IDAuMTc0MDcyLFxuICAgICAgICByb246IDAuMDM2NDE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDAzMzA1OCxcbiAgICAgICAgcm9mZjogMC4xODExNzYsXG4gICAgICAgIHJvbjogMC4wMzUyOTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC4wMDMwNTMzNyxcbiAgICAgICAgcm9mZjogMC4xODg3ODcsXG4gICAgICAgIHJvbjogMC4wMzQxOTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMDI4MTM3MSxcbiAgICAgICAgcm9mZjogMC4xOTY5MzgsXG4gICAgICAgIHJvbjogMC4wMzMwOTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMDI1ODcwNCxcbiAgICAgICAgcm9mZjogMC4yMDU2NjQsXG4gICAgICAgIHJvbjogMC4wMzIwMTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC4wMDIzNzM0NixcbiAgICAgICAgcm9mZjogMC4yMTQ5OTgsXG4gICAgICAgIHJvbjogMC4wMzA5NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC4wMDIxNzMsXG4gICAgICAgIHJvZmY6IDAuMjI0OTc3LFxuICAgICAgICByb246IDAuMDI5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuMDAxOTg1NTUsXG4gICAgICAgIHJvZmY6IDAuMjM1NjMyLFxuICAgICAgICByb246IDAuMDI4ODU3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuMDAxODEwOTQsXG4gICAgICAgIHJvZmY6IDAuMjQ2OTk5LFxuICAgICAgICByb246IDAuMDI3ODQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuMDAxNjQ4ODksXG4gICAgICAgIHJvZmY6IDAuMjU5MTA4LFxuICAgICAgICByb246IDAuMDI2ODQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuMDAxNDk5MDcsXG4gICAgICAgIHJvZmY6IDAuMjcxOTg3LFxuICAgICAgICByb246IDAuMDI1ODcwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuMDAxMzYxMDYsXG4gICAgICAgIHJvZmY6IDAuMjg1NjYxLFxuICAgICAgICByb246IDAuMDI0OTE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuMDAxMjM0MzgsXG4gICAgICAgIHJvZmY6IDAuMzAwMTQ3LFxuICAgICAgICByb246IDAuMDIzOTg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuMDAxMTE4NTMsXG4gICAgICAgIHJvZmY6IDAuMzE1NDU4LFxuICAgICAgICByb246IDAuMDIzMDgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuMDAxMDEyOTMsXG4gICAgICAgIHJvZmY6IDAuMzMxNTk3LFxuICAgICAgICByb246IDAuMDIyMjAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuMDAwOTE3MDAxLFxuICAgICAgICByb2ZmOiAwLjM0ODU1NyxcbiAgICAgICAgcm9uOiAwLjAyMTM0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDgzMDE0OSxcbiAgICAgICAgcm9mZjogMC4zNjYzMTcsXG4gICAgICAgIHJvbjogMC4wMjA1MTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC4wMDA3NTE3NjIsXG4gICAgICAgIHJvZmY6IDAuMzg0ODQzLFxuICAgICAgICByb246IDAuMDE5NzA4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuMDAwNjgxMjM2LFxuICAgICAgICByb2ZmOiAwLjQwNDA4NCxcbiAgICAgICAgcm9uOiAwLjAxODkyNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDYxNzk3MixcbiAgICAgICAgcm9mZjogMC40MjM5NjksXG4gICAgICAgIHJvbjogMC4wMTgxNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU2MTM5MyxcbiAgICAgICAgcm9mZjogMC40NDQ0MDgsXG4gICAgICAgIHJvbjogMC4wMTc0NDM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMDA1MTA5NDEsXG4gICAgICAgIHJvZmY6IDAuNDY1Mjg5LFxuICAgICAgICByb246IDAuMDE2NzM5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuMDAwNDY2MDg0LFxuICAgICAgICByb2ZmOiAwLjQ4NjQ3OCxcbiAgICAgICAgcm9uOiAwLjAxNjA2MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQyNjMxOCxcbiAgICAgICAgcm9mZjogMC41MDc4MixcbiAgICAgICAgcm9uOiAwLjAxNTQwNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM5MTE2OCxcbiAgICAgICAgcm9mZjogMC41MjkxNDQsXG4gICAgICAgIHJvbjogMC4wMTQ3NzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC4wMDAzNjAxOTMsXG4gICAgICAgIHJvZmY6IDAuNTUwMjYxLFxuICAgICAgICByb246IDAuMDE0MTY5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMzMyOTgyLFxuICAgICAgICByb2ZmOiAwLjU3MDk3OCxcbiAgICAgICAgcm9uOiAwLjAxMzU4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMwOTE1MixcbiAgICAgICAgcm9mZjogMC41OTExMDEsXG4gICAgICAgIHJvbjogMC4wMTMwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI4ODM0OSxcbiAgICAgICAgcm9mZjogMC42MTA0NDYsXG4gICAgICAgIHJvbjogMC4wMTI0ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI3MDI0NixcbiAgICAgICAgcm9mZjogMC42Mjg4NTEsXG4gICAgICAgIHJvbjogMC4wMTE5NzE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAyNTQ1MzgsXG4gICAgICAgIHJvZmY6IDAuNjQ2MTg1LFxuICAgICAgICByb246IDAuMDExNDc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMjQwOTQzLFxuICAgICAgICByb2ZmOiAwLjY2MjM1NyxcbiAgICAgICAgcm9uOiAwLjAxMTAwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIyOTIwMSxcbiAgICAgICAgcm9mZjogMC42NzczMTcsXG4gICAgICAgIHJvbjogMC4wMTA1NDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMTkwNzIsXG4gICAgICAgIHJvZmY6IDAuNjkxMDU2LFxuICAgICAgICByb246IDAuMDEwMTEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMjEwMzM3LFxuICAgICAgICByb2ZmOiAwLjcwMzYwNSxcbiAgICAgICAgcm9uOiAwLjAwOTY5MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMDI3OTgsXG4gICAgICAgIHJvZmY6IDAuNzE1MDI0LFxuICAgICAgICByb246IDAuMDA5MjkzNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE5NjI3OCxcbiAgICAgICAgcm9mZjogMC43MjUzOTUsXG4gICAgICAgIHJvbjogMC4wMDg5MTA4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTkwNjIzLFxuICAgICAgICByb2ZmOiAwLjczNDgwNixcbiAgICAgICAgcm9uOiAwLjAwODU0NDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxODU2OTgsXG4gICAgICAgIHJvZmY6IDAuNzQzMzUxLFxuICAgICAgICByb246IDAuMDA4MTk0MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE4MTM5LFxuICAgICAgICByb2ZmOiAwLjc1MTExOCxcbiAgICAgICAgcm9uOiAwLjAwNzg1OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNzc2MDQsXG4gICAgICAgIHJvZmY6IDAuNzU4MTkxLFxuICAgICAgICByb246IDAuMDA3NTM4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3NDI2MSxcbiAgICAgICAgcm9mZjogMC43NjQ2NDIsXG4gICAgICAgIHJvbjogMC4wMDcyMzE1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTcxMjk1LFxuICAgICAgICByb2ZmOiAwLjc3MDUzNSxcbiAgICAgICAgcm9uOiAwLjAwNjkzODE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjg2NTMsXG4gICAgICAgIHJvZmY6IDAuNzc1OTI3LFxuICAgICAgICByb246IDAuMDA2NjU3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2NjI5LFxuICAgICAgICByb2ZmOiAwLjc4MDg2NixcbiAgICAgICAgcm9uOiAwLjAwNjM4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjQxNyxcbiAgICAgICAgcm9mZjogMC43ODUzOTQsXG4gICAgICAgIHJvbjogMC4wMDYxMzI1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTYyMjYzLFxuICAgICAgICByb2ZmOiAwLjc4OTU1LFxuICAgICAgICByb246IDAuMDA1ODg3MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MDU0MixcbiAgICAgICAgcm9mZjogMC43OTMzNjUsXG4gICAgICAgIHJvbjogMC4wMDU2NTI1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU4OTg3LFxuICAgICAgICByb2ZmOiAwLjc5Njg2OSxcbiAgICAgICAgcm9uOiAwLjAwNTQyODE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTc1NzksXG4gICAgICAgIHJvZmY6IDAuODAwMDg5LFxuICAgICAgICByb246IDAuMDA1MjEzNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NjMwMixcbiAgICAgICAgcm9mZjogMC44MDMwNDksXG4gICAgICAgIHJvbjogMC4wMDUwMDg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTU1MTQyLFxuICAgICAgICByb2ZmOiAwLjgwNTc3MSxcbiAgICAgICAgcm9uOiAwLjAwNDgxMjUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTQwODcsXG4gICAgICAgIHJvZmY6IDAuODA4MjczLFxuICAgICAgICByb246IDAuMDA0NjI1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MzEyNixcbiAgICAgICAgcm9mZjogMC44MTA1NzUsXG4gICAgICAgIHJvbjogMC4wMDQ0NDU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTUyMjUxLFxuICAgICAgICByb2ZmOiAwLjgxMjY5MyxcbiAgICAgICAgcm9uOiAwLjAwNDI3NDUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTE0NTIsXG4gICAgICAgIHJvZmY6IDAuODE0NjQxLFxuICAgICAgICByb246IDAuMDA0MTEwNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MDcyMyxcbiAgICAgICAgcm9mZjogMC44MTY0MzQsXG4gICAgICAgIHJvbjogMC4wMDM5NTQxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUwMDU2LFxuICAgICAgICByb2ZmOiAwLjgxODA4NSxcbiAgICAgICAgcm9uOiAwLjAwMzgwNDQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDk0NDcsXG4gICAgICAgIHJvZmY6IDAuODE5NjA0LFxuICAgICAgICByb246IDAuMDAzNjYxNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0ODg4OSxcbiAgICAgICAgcm9mZjogMC44MjEwMDMsXG4gICAgICAgIHJvbjogMC4wMDM1MjQ2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ4Mzc4LFxuICAgICAgICByb2ZmOiAwLjgyMjI5MixcbiAgICAgICAgcm9uOiAwLjAwMzM5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzkxLFxuICAgICAgICByb2ZmOiAwLjgyMzQ3OSxcbiAgICAgICAgcm9uOiAwLjAwMzI2ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDc0ODEsXG4gICAgICAgIHJvZmY6IDAuODI0NTcyLFxuICAgICAgICByb246IDAuMDAzMTQ5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzA4NyxcbiAgICAgICAgcm9mZjogMC44MjU1OCxcbiAgICAgICAgcm9uOiAwLjAwMzAzNTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDY3MjUsXG4gICAgICAgIHJvZmY6IDAuODI2NTA5LFxuICAgICAgICByb246IDAuMDAyOTI2MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjM5MyxcbiAgICAgICAgcm9mZjogMC44MjczNjUsXG4gICAgICAgIHJvbjogMC4wMDI4MjE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2MDg4LFxuICAgICAgICByb2ZmOiAwLjgyODE1NSxcbiAgICAgICAgcm9uOiAwLjAwMjcyMjExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDU4MDgsXG4gICAgICAgIHJvZmY6IDAuODI4ODg0LFxuICAgICAgICByb246IDAuMDAyNjI2NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTU1LFxuICAgICAgICByb2ZmOiAwLjgyOTU1NixcbiAgICAgICAgcm9uOiAwLjAwMjUzNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDUzMTIsXG4gICAgICAgIHJvZmY6IDAuODMwMTc3LFxuICAgICAgICByb246IDAuMDAyNDQ4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTA5MyxcbiAgICAgICAgcm9mZjogMC44MzA3NSxcbiAgICAgICAgcm9uOiAwLjAwMjM2NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ4OTIsXG4gICAgICAgIHJvZmY6IDAuODMxMjc5LFxuICAgICAgICByb246IDAuMDAyMjg1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDcwNixcbiAgICAgICAgcm9mZjogMC44MzE3NjksXG4gICAgICAgIHJvbjogMC4wMDIyMDk4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0NTM1LFxuICAgICAgICByb2ZmOiAwLjgzMjIyMSxcbiAgICAgICAgcm9uOiAwLjAwMjEzNzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQzNzcsXG4gICAgICAgIHJvZmY6IDAuODMyNjM4LFxuICAgICAgICByb246IDAuMDAyMDY3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDIzMSxcbiAgICAgICAgcm9mZjogMC44MzMwMjUsXG4gICAgICAgIHJvbjogMC4wMDIwMDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQwOTYsXG4gICAgICAgIHJvZmY6IDAuODMzMzgzLFxuICAgICAgICByb246IDAuMDAxOTM3ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzk3MixcbiAgICAgICAgcm9mZjogMC44MzM3MTQsXG4gICAgICAgIHJvbjogMC4wMDE4NzcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzODU3LFxuICAgICAgICByb2ZmOiAwLjgzNDAyLFxuICAgICAgICByb246IDAuMDAxODE5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzc1MSxcbiAgICAgICAgcm9mZjogMC44MzQzMDQsXG4gICAgICAgIHJvbjogMC4wMDE3NjM4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNjUyLFxuICAgICAgICByb2ZmOiAwLjgzNDU2NyxcbiAgICAgICAgcm9uOiAwLjAwMTcxMDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM1NjEsXG4gICAgICAgIHJvZmY6IDAuODM0ODExLFxuICAgICAgICByb246IDAuMDAxNjYwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzQ3NyxcbiAgICAgICAgcm9mZjogMC44MzUwMzcsXG4gICAgICAgIHJvbjogMC4wMDE2MTE5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMzk4LFxuICAgICAgICByb2ZmOiAwLjgzNTI0NyxcbiAgICAgICAgcm9uOiAwLjAwMTU2NTc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMzMjYsXG4gICAgICAgIHJvZmY6IDAuODM1NDQyLFxuICAgICAgICByb246IDAuMDAxNTIxNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzI1OSxcbiAgICAgICAgcm9mZjogMC44MzU2MjMsXG4gICAgICAgIHJvbjogMC4wMDE0NzkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMTk2LFxuICAgICAgICByb2ZmOiAwLjgzNTc5MSxcbiAgICAgICAgcm9uOiAwLjAwMTQzOTAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMxMzgsXG4gICAgICAgIHJvZmY6IDAuODM1OTQ4LFxuICAgICAgICByb246IDAuMDAxNDAwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzA4NCxcbiAgICAgICAgcm9mZjogMC44MzYwOTMsXG4gICAgICAgIHJvbjogMC4wMDEzNjM1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMDM0LFxuICAgICAgICByb2ZmOiAwLjgzNjIyOCxcbiAgICAgICAgcm9uOiAwLjAwMTMyODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5ODgsXG4gICAgICAgIHJvZmY6IDAuODM2MzU0LFxuICAgICAgICByb246IDAuMDAxMjk0NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjk0NCxcbiAgICAgICAgcm9mZjogMC44MzY0NzIsXG4gICAgICAgIHJvbjogMC4wMDEyNjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTA0LFxuICAgICAgICByb2ZmOiAwLjgzNjU4MSxcbiAgICAgICAgcm9uOiAwLjAwMTIzMTc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI4NjYsXG4gICAgICAgIHJvZmY6IDAuODM2NjgzLFxuICAgICAgICByb246IDAuMDAxMjAyNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjgzMSxcbiAgICAgICAgcm9mZjogMC44MzY3NzgsXG4gICAgICAgIHJvbjogMC4wMDExNzQzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzk5LFxuICAgICAgICByb2ZmOiAwLjgzNjg2NyxcbiAgICAgICAgcm9uOiAwLjAwMTE0NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3NjgsXG4gICAgICAgIHJvZmY6IDAuODM2OTUsXG4gICAgICAgIHJvbjogMC4wMDExMjE4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzQsXG4gICAgICAgIHJvZmY6IDAuODM3MDI3LFxuICAgICAgICByb246IDAuMDAxMDk3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjcxMyxcbiAgICAgICAgcm9mZjogMC44MzcwOTksXG4gICAgICAgIHJvbjogMC4wMDEwNzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2ODksXG4gICAgICAgIHJvZmY6IDAuODM3MTY3LFxuICAgICAgICByb246IDAuMDAxMDUxNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY2NSxcbiAgICAgICAgcm9mZjogMC44MzcyMyxcbiAgICAgICAgcm9uOiAwLjAwMTAzMDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2NDQsXG4gICAgICAgIHJvZmY6IDAuODM3MjksXG4gICAgICAgIHJvbjogMC4wMDEwMDk2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjIzLFxuICAgICAgICByb2ZmOiAwLjgzNzM0NSxcbiAgICAgICAgcm9uOiAwLjAwMDk5MDEyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjA0LFxuICAgICAgICByb2ZmOiAwLjgzNzM5NyxcbiAgICAgICAgcm9uOiAwLjAwMDk3MTQ0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTg3LFxuICAgICAgICByb2ZmOiAwLjgzNzQ0NixcbiAgICAgICAgcm9uOiAwLjAwMDk1MzU5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTcsXG4gICAgICAgIHJvZmY6IDAuODM3NDkyLFxuICAgICAgICByb246IDAuMDAwOTM2NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU1NCxcbiAgICAgICAgcm9mZjogMC44Mzc1MzUsXG4gICAgICAgIHJvbjogMC4wMDA5MjAyMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU0LFxuICAgICAgICByb2ZmOiAwLjgzNzU3NSxcbiAgICAgICAgcm9uOiAwLjAwMDkwNDY1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTI2LFxuICAgICAgICByb2ZmOiAwLjgzNzYxMyxcbiAgICAgICAgcm9uOiAwLjAwMDg4OTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MTMsXG4gICAgICAgIHJvZmY6IDAuODM3NjQ4LFxuICAgICAgICByb246IDAuMDAwODc1NTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MDEsXG4gICAgICAgIHJvZmY6IDAuODM3NjgyLFxuICAgICAgICByb246IDAuMDAwODYxOTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0ODksXG4gICAgICAgIHJvZmY6IDAuODM3NzEzLFxuICAgICAgICByb246IDAuMDAwODQ4OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NzksXG4gICAgICAgIHJvZmY6IDAuODM3NzQzLFxuICAgICAgICByb246IDAuMDAwODM2NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NjgsXG4gICAgICAgIHJvZmY6IDAuODM3NzcxLFxuICAgICAgICByb246IDAuMDAwODI0NjU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NTksXG4gICAgICAgIHJvZmY6IDAuODM3Nzk3LFxuICAgICAgICByb246IDAuMDAwODEzMzE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NSxcbiAgICAgICAgcm9mZjogMC44Mzc4MjIsXG4gICAgICAgIHJvbjogMC4wMDA4MDI0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ0MixcbiAgICAgICAgcm9mZjogMC44Mzc4NDUsXG4gICAgICAgIHJvbjogMC4wMDA3OTIxMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQzNCxcbiAgICAgICAgcm9mZjogMC44Mzc4NjcsXG4gICAgICAgIHJvbjogMC4wMDA3ODIyMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQyNixcbiAgICAgICAgcm9mZjogMC44Mzc4ODgsXG4gICAgICAgIHJvbjogMC4wMDA3NzI3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxOSxcbiAgICAgICAgcm9mZjogMC44Mzc5MDcsXG4gICAgICAgIHJvbjogMC4wMDA3NjM3MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxMixcbiAgICAgICAgcm9mZjogMC44Mzc5MjYsXG4gICAgICAgIHJvbjogMC4wMDA3NTUwNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MDYsXG4gICAgICAgIHJvZmY6IDAuODM3OTQzLFxuICAgICAgICByb246IDAuMDAwNzQ2ODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNCxcbiAgICAgICAgcm9mZjogMC44Mzc5NixcbiAgICAgICAgcm9uOiAwLjAwMDczODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM5NCxcbiAgICAgICAgcm9mZjogMC44Mzc5NzYsXG4gICAgICAgIHJvbjogMC4wMDA3MzEzNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODksXG4gICAgICAgIHJvZmY6IDAuODM3OTksXG4gICAgICAgIHJvbjogMC4wMDA3MjQxNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODQsXG4gICAgICAgIHJvZmY6IDAuODM4MDA0LFxuICAgICAgICByb246IDAuMDAwNzE3MjgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzc5LFxuICAgICAgICByb2ZmOiAwLjgzODAxOCxcbiAgICAgICAgcm9uOiAwLjAwMDcxMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNzUsXG4gICAgICAgIHJvZmY6IDAuODM4MDMsXG4gICAgICAgIHJvbjogMC4wMDA3MDQ0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3LFxuICAgICAgICByb2ZmOiAwLjgzODA0MixcbiAgICAgICAgcm9uOiAwLjAwMDY5ODM5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM2NixcbiAgICAgICAgcm9mZjogMC44MzgwNTMsXG4gICAgICAgIHJvbjogMC4wMDA2OTI2NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNjMsXG4gICAgICAgIHJvZmY6IDAuODM4MDY0LFxuICAgICAgICByb246IDAuMDAwNjg3MTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzU5LFxuICAgICAgICByb2ZmOiAwLjgzODA3NCxcbiAgICAgICAgcm9uOiAwLjAwMDY4MTkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1NSxcbiAgICAgICAgcm9mZjogMC44MzgwODQsXG4gICAgICAgIHJvbjogMC4wMDA2NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzUyLFxuICAgICAgICByb2ZmOiAwLjgzODA5MyxcbiAgICAgICAgcm9uOiAwLjAwMDY3MjEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0OSxcbiAgICAgICAgcm9mZjogMC44MzgxMDEsXG4gICAgICAgIHJvbjogMC4wMDA2Njc1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDYsXG4gICAgICAgIHJvZmY6IDAuODM4MTA5LFxuICAgICAgICByb246IDAuMDAwNjYzMTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQzLFxuICAgICAgICByb2ZmOiAwLjgzODExNyxcbiAgICAgICAgcm9uOiAwLjAwMDY1ODk2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0MSxcbiAgICAgICAgcm9mZjogMC44MzgxMjUsXG4gICAgICAgIHJvbjogMC4wMDA2NTQ5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzgsXG4gICAgICAgIHJvZmY6IDAuODM4MTMyLFxuICAgICAgICByb246IDAuMDAwNjUxMTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM2LFxuICAgICAgICByb2ZmOiAwLjgzODEzOCxcbiAgICAgICAgcm9uOiAwLjAwMDY0NzUwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzNCxcbiAgICAgICAgcm9mZjogMC44MzgxNDUsXG4gICAgICAgIHJvbjogMC4wMDA2NDQwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzEsXG4gICAgICAgIHJvZmY6IDAuODM4MTUxLFxuICAgICAgICByb246IDAuMDAwNjQwNjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI5LFxuICAgICAgICByb2ZmOiAwLjgzODE1NixcbiAgICAgICAgcm9uOiAwLjAwMDYzNzQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNyxcbiAgICAgICAgcm9mZjogMC44MzgxNjIsXG4gICAgICAgIHJvbjogMC4wMDA2MzQ0NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjYsXG4gICAgICAgIHJvZmY6IDAuODM4MTY3LFxuICAgICAgICByb246IDAuMDAwNjMxNTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI0LFxuICAgICAgICByb2ZmOiAwLjgzODE3MixcbiAgICAgICAgcm9uOiAwLjAwMDYyODc1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyMixcbiAgICAgICAgcm9mZjogMC44MzgxNzYsXG4gICAgICAgIHJvbjogMC4wMDA2MjYwOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjEsXG4gICAgICAgIHJvZmY6IDAuODM4MTgxLFxuICAgICAgICByb246IDAuMDAwNjIzNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTksXG4gICAgICAgIHJvZmY6IDAuODM4MTg1LFxuICAgICAgICByb246IDAuMDAwNjIxMTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE4LFxuICAgICAgICByb2ZmOiAwLjgzODE4OSxcbiAgICAgICAgcm9uOiAwLjAwMDYxODgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNixcbiAgICAgICAgcm9mZjogMC44MzgxOTMsXG4gICAgICAgIHJvbjogMC4wMDA2MTY1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTUsXG4gICAgICAgIHJvZmY6IDAuODM4MTk3LFxuICAgICAgICByb246IDAuMDAwNjE0NDc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE0LFxuICAgICAgICByb2ZmOiAwLjgzODIsXG4gICAgICAgIHJvbjogMC4wMDA2MTI0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjAzLFxuICAgICAgICByb246IDAuMDAwNjEwNTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzExLFxuICAgICAgICByb2ZmOiAwLjgzODIwNyxcbiAgICAgICAgcm9uOiAwLjAwMDYwODY3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxLFxuICAgICAgICByb2ZmOiAwLjgzODIxLFxuICAgICAgICByb246IDAuMDAwNjA2OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA5LFxuICAgICAgICByb2ZmOiAwLjgzODIxMixcbiAgICAgICAgcm9uOiAwLjAwMDYwNTIxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwOCxcbiAgICAgICAgcm9mZjogMC44MzgyMTUsXG4gICAgICAgIHJvbjogMC4wMDA2MDM2MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDcsXG4gICAgICAgIHJvZmY6IDAuODM4MjE4LFxuICAgICAgICByb246IDAuMDAwNjAyMDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIsXG4gICAgICAgIHJvbjogMC4wMDA2MDA1ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIzLFxuICAgICAgICByb246IDAuMDAwNTk5MTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA1LFxuICAgICAgICByb2ZmOiAwLjgzODIyNSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NzgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNCxcbiAgICAgICAgcm9mZjogMC44MzgyMjcsXG4gICAgICAgIHJvbjogMC4wMDA1OTY1NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDMsXG4gICAgICAgIHJvZmY6IDAuODM4MjI5LFxuICAgICAgICByb246IDAuMDAwNTk1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAzLFxuICAgICAgICByb2ZmOiAwLjgzODIzMSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NDE0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMixcbiAgICAgICAgcm9mZjogMC44MzgyMzMsXG4gICAgICAgIHJvbjogMC4wMDA1OTMwMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDEsXG4gICAgICAgIHJvZmY6IDAuODM4MjM1LFxuICAgICAgICByb246IDAuMDAwNTkxOTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAxLFxuICAgICAgICByb2ZmOiAwLjgzODIzNixcbiAgICAgICAgcm9uOiAwLjAwMDU5MDkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMsXG4gICAgICAgIHJvZmY6IDAuODM4MjM4LFxuICAgICAgICByb246IDAuMDAwNTg5OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMyxcbiAgICAgICAgcm9mZjogMC44MzgyNCxcbiAgICAgICAgcm9uOiAwLjAwMDU4OTAwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OSxcbiAgICAgICAgcm9mZjogMC44MzgyNDEsXG4gICAgICAgIHJvbjogMC4wMDA1ODgxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTksXG4gICAgICAgIHJvZmY6IDAuODM4MjQyLFxuICAgICAgICByb246IDAuMDAwNTg3MjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk4LFxuICAgICAgICByb2ZmOiAwLjgzODI0NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4NjQzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OCxcbiAgICAgICAgcm9mZjogMC44MzgyNDUsXG4gICAgICAgIHJvbjogMC4wMDA1ODU2NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTcsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ2LFxuICAgICAgICByb246IDAuMDAwNTg0OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk3LFxuICAgICAgICByb2ZmOiAwLjgzODI0NyxcbiAgICAgICAgcm9uOiAwLjAwMDU4NDE5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNDksXG4gICAgICAgIHJvbjogMC4wMDA1ODM1MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUsXG4gICAgICAgIHJvbjogMC4wMDA1ODI4NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUxLFxuICAgICAgICByb246IDAuMDAwNTgyMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MixcbiAgICAgICAgcm9uOiAwLjAwMDU4MTY0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTMsXG4gICAgICAgIHJvbjogMC4wMDA1ODEwNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUzLFxuICAgICAgICByb246IDAuMDAwNTgwNTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4MDAxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTUsXG4gICAgICAgIHJvbjogMC4wMDA1Nzk1MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU2LFxuICAgICAgICByb246IDAuMDAwNTc5MDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3ODU5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTcsXG4gICAgICAgIHJvbjogMC4wMDA1NzgxNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU4LFxuICAgICAgICByb246IDAuMDAwNTc3NzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NzM1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTksXG4gICAgICAgIHJvbjogMC4wMDA1NzY5NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzY2MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzYyNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYxLFxuICAgICAgICByb246IDAuMDAwNTc1OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NTYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYzLFxuICAgICAgICByb246IDAuMDAwNTc0NzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MyxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDQ5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzQyNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTc0MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3Mzc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzM1NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMzQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyOTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI0MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIyNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIxMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNjk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTQ0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzEzMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxMjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTExNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzEwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwOTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA3MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAyMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAxNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwMzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTYzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTM4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxNTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTEyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTsiLCJ2YXIgc2l0ZW1hcCA9IHtcclxuICAgICcnOiAnaG9tZScsXHJcbiAgICBcclxuICAgICdPdmVydmlld19Qcm9qZWN0JzogJ3F1b3J1cycsXHJcbiAgICAnRGVzY3JpcHRpb24nOiAncXVvcnVzJyxcclxuICAgICdEZXNpZ24nOiAncXVvcnVzJyxcclxuICAgICdFeHBlcmltZW50cyc6ICdxdW9ydXMnLFxyXG4gICAgJ05vdGVib29rJzogJ3F1b3J1cycsXHJcbiAgICAnSW50ZXJMYWInOiAncXVvcnVzJyxcclxuICAgICdNb2RlbCc6ICdxdW9ydXMnLFxyXG4gICAgJ1Jlc3VsdHMnOiAncXVvcnVzJyxcclxuICAgICdEZW1vbnN0cmF0ZSc6ICdxdW9ydXMnLFxyXG4gICAgJ0ltcHJvdmUnOiAncXVvcnVzJyxcclxuXHJcbiAgICAnUGFydHMnOiAncXVvcnVzJyxcclxuICAgICdCYXNpY19QYXJ0JzogJ3F1b3J1cycsXHJcbiAgICAnQ29tcG9zaXRlX1BhcnQnOiAncXVvcnVzJyxcclxuICAgICdQYXJ0X0NvbGxlY3Rpb24nOiAncXVvcnVzJyxcclxuXHJcbiAgICAnU2FmZXR5JzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ092ZXJ2aWV3X0hQJzogJ2hwJyxcclxuICAgICdIdW1hbl9QcmFjdGljZXMnOiAnaHAnLFxyXG4gICAgJ1B1YmxpY19FbmdhZ2VtZW50JzogJ2hwJyxcclxuXHJcbiAgICAnVGVhbSc6ICd0ZWFtJyxcclxuICAgICdDb2xsYWJvcmF0aW9ucyc6ICd0ZWFtJyxcclxuICAgICdBdHRyaWJ1dGlvbnMnOiAndGVhbScsXHJcblxyXG4gICAgJ0FwcGxpZWRfRGVzaWduJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdFbnRyZXByZW5ldXJzaGlwJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdIYXJkd2FyZSc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnTWVhc3VyZW1lbnQnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ01vZGVsJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdTb2Z0d2FyZSc6ICdjb21wZXRpdGlvbidcclxufVxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcclxuICAgIHZhciBjdXJuYXZpdGVtID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICBpZihjdXJuYXZpdGVtLm1hdGNoKC9pZ2VtXFwub3JnL2kpKSB7IC8vIFdlIGtub3cgd2UncmUgbGl2ZVxyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoLyhodHRwOlxcL1xcLyk/XFxkezR9XFwuaWdlbVxcLm9yZ1xcLlRlYW06XFx3K1xcLz8vaSwgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvKGh0dHA6XFwvXFwvKT9sb2NhbGhvc3Q6XFxkK1xcLz8vLCAnJyk7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvXFwuaHRtbC9pLCAnJyk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhjdXJuYXZpdGVtKTtcclxuICAgICQoJy4nICsgc2l0ZW1hcFtjdXJuYXZpdGVtXSkuYWRkQ2xhc3MoJ2N1cnJlbnQnKTtcclxufSkiLCIvLyBDb2RlIGNvdXJ0ZXN5IG9mIE1vaGFtZWQgSGFzYW5cclxuLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL01obWRoYXNhbi9wZW4vbUFkYVFFXHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgXHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG4gIFxyXG4gICB2YXIgYywgY3VycmVudFNjcm9sbFRvcCA9IDAsXHJcbiAgICAgICBuYXZiYXIgPSAkKCdoZWFkZXInKTtcclxuXHJcbiAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgYSA9ICQod2luZG93KS5zY3JvbGxUb3AoKTtcclxuICAgICAgdmFyIGIgPSBuYXZiYXIuaGVpZ2h0KCk7XHJcbiAgICAgXHJcbiAgICAgIGN1cnJlbnRTY3JvbGxUb3AgPSBhO1xyXG4gICAgIFxyXG4gICAgICBpZiAoYyA8IGN1cnJlbnRTY3JvbGxUb3AgJiYgYSA+IGIgKyBiKSB7XHJcbiAgICAgICAgbmF2YmFyLmFkZENsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyA+IGN1cnJlbnRTY3JvbGxUb3AgJiYgIShhIDw9IGIpKSB7XHJcbiAgICAgICAgbmF2YmFyLnJlbW92ZUNsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH1cclxuICAgICAgYyA9IGN1cnJlbnRTY3JvbGxUb3A7XHJcbiAgfSk7XHJcbiAgXHJcbn0pOyIsIi8vQ29kZSBjb3VydGVzeSBvZiBodHRwczovL2NvZGVwZW4uaW8va3J1eG9yL3Blbi9Dd3BGcVxuXG4kKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCkge1xuICAgIGlmICgkKHRoaXMpLnNjcm9sbFRvcCgpID4gNTAgKSB7XG4gICAgICAgICQoJy5zY3JvbGx0b3A6aGlkZGVuJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlSW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAkKCcuc2Nyb2xsdG9wJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlT3V0KCk7XG4gICAgfVxufSk7XG4kKGZ1bmN0aW9uKCl7JChcIi5zY3JvbGxcIikuY2xpY2soZnVuY3Rpb24oKXskKFwiaHRtbCxib2R5XCIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKFwiI3RvcFwiKS5vZmZzZXQoKS50b3B9LFwiMTAwMFwiKTtyZXR1cm4gZmFsc2V9KX0pOyJdfQ==
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwb3BwZXIubWluLmpzIiwiYm9vdHN0cmFwLm1pbi5qcyIsImQzLm1pbi5qcyIsImVra28tbGlnaHRib3guanMiLCJmb290ZXItaGVhZGVyLXRlbXBsYXRlLmpzIiwiaW1hZ2UtZ2FsbGVyeS5qcyIsImluZGV4LmpzIiwibGFuZGluZy5qcyIsIm1vZGVsLmpzIiwibmF2bGluZS5qcyIsInNjcm9sbHNlbnNpdGl2ZS5qcyIsInNtb290aHNjcm9sbGJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQUNBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNXBCQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDeklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDL2pQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoid2lraS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiBDb3B5cmlnaHQgKEMpIEZlZGVyaWNvIFppdm9sbyAyMDE4XHJcbiBEaXN0cmlidXRlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKGxpY2Vuc2UgdGVybXMgYXJlIGF0IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLlxyXG4gKi8oZnVuY3Rpb24oZSx0KXsnb2JqZWN0Jz09dHlwZW9mIGV4cG9ydHMmJid1bmRlZmluZWQnIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTonZnVuY3Rpb24nPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTplLlBvcHBlcj10KCl9KSh0aGlzLGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGUmJidbb2JqZWN0IEZ1bmN0aW9uXSc9PT17fS50b1N0cmluZy5jYWxsKGUpfWZ1bmN0aW9uIHQoZSx0KXtpZigxIT09ZS5ub2RlVHlwZSlyZXR1cm5bXTt2YXIgbz1nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCk7cmV0dXJuIHQ/b1t0XTpvfWZ1bmN0aW9uIG8oZSl7cmV0dXJuJ0hUTUwnPT09ZS5ub2RlTmFtZT9lOmUucGFyZW50Tm9kZXx8ZS5ob3N0fWZ1bmN0aW9uIG4oZSl7aWYoIWUpcmV0dXJuIGRvY3VtZW50LmJvZHk7c3dpdGNoKGUubm9kZU5hbWUpe2Nhc2UnSFRNTCc6Y2FzZSdCT0RZJzpyZXR1cm4gZS5vd25lckRvY3VtZW50LmJvZHk7Y2FzZScjZG9jdW1lbnQnOnJldHVybiBlLmJvZHk7fXZhciBpPXQoZSkscj1pLm92ZXJmbG93LHA9aS5vdmVyZmxvd1gscz1pLm92ZXJmbG93WTtyZXR1cm4gLyhhdXRvfHNjcm9sbHxvdmVybGF5KS8udGVzdChyK3MrcCk/ZTpuKG8oZSkpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDExPT09ZT9yZToxMD09PWU/cGU6cmV8fHBlfWZ1bmN0aW9uIHAoZSl7aWYoIWUpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmb3IodmFyIG89cigxMCk/ZG9jdW1lbnQuYm9keTpudWxsLG49ZS5vZmZzZXRQYXJlbnQ7bj09PW8mJmUubmV4dEVsZW1lbnRTaWJsaW5nOyluPShlPWUubmV4dEVsZW1lbnRTaWJsaW5nKS5vZmZzZXRQYXJlbnQ7dmFyIGk9biYmbi5ub2RlTmFtZTtyZXR1cm4gaSYmJ0JPRFknIT09aSYmJ0hUTUwnIT09aT8tMSE9PVsnVEQnLCdUQUJMRSddLmluZGV4T2Yobi5ub2RlTmFtZSkmJidzdGF0aWMnPT09dChuLCdwb3NpdGlvbicpP3Aobik6bjplP2Uub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIHMoZSl7dmFyIHQ9ZS5ub2RlTmFtZTtyZXR1cm4nQk9EWSchPT10JiYoJ0hUTUwnPT09dHx8cChlLmZpcnN0RWxlbWVudENoaWxkKT09PWUpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIG51bGw9PT1lLnBhcmVudE5vZGU/ZTpkKGUucGFyZW50Tm9kZSl9ZnVuY3Rpb24gYShlLHQpe2lmKCFlfHwhZS5ub2RlVHlwZXx8IXR8fCF0Lm5vZGVUeXBlKXJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dmFyIG89ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyxuPW8/ZTp0LGk9bz90OmUscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2V0U3RhcnQobiwwKSxyLnNldEVuZChpLDApO3ZhciBsPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7aWYoZSE9PWwmJnQhPT1sfHxuLmNvbnRhaW5zKGkpKXJldHVybiBzKGwpP2w6cChsKTt2YXIgZj1kKGUpO3JldHVybiBmLmhvc3Q/YShmLmhvc3QsdCk6YShlLGQodCkuaG9zdCl9ZnVuY3Rpb24gbChlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06J3RvcCcsbz0ndG9wJz09PXQ/J3Njcm9sbFRvcCc6J3Njcm9sbExlZnQnLG49ZS5ub2RlTmFtZTtpZignQk9EWSc9PT1ufHwnSFRNTCc9PT1uKXt2YXIgaT1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9ZS5vd25lckRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnR8fGk7cmV0dXJuIHJbb119cmV0dXJuIGVbb119ZnVuY3Rpb24gZihlLHQpe3ZhciBvPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sbj1sKHQsJ3RvcCcpLGk9bCh0LCdsZWZ0Jykscj1vPy0xOjE7cmV0dXJuIGUudG9wKz1uKnIsZS5ib3R0b20rPW4qcixlLmxlZnQrPWkqcixlLnJpZ2h0Kz1pKnIsZX1mdW5jdGlvbiBtKGUsdCl7dmFyIG89J3gnPT09dD8nTGVmdCc6J1RvcCcsbj0nTGVmdCc9PW8/J1JpZ2h0JzonQm90dG9tJztyZXR1cm4gcGFyc2VGbG9hdChlWydib3JkZXInK28rJ1dpZHRoJ10sMTApK3BhcnNlRmxvYXQoZVsnYm9yZGVyJytuKydXaWR0aCddLDEwKX1mdW5jdGlvbiBoKGUsdCxvLG4pe3JldHVybiBKKHRbJ29mZnNldCcrZV0sdFsnc2Nyb2xsJytlXSxvWydjbGllbnQnK2VdLG9bJ29mZnNldCcrZV0sb1snc2Nyb2xsJytlXSxyKDEwKT9wYXJzZUludChvWydvZmZzZXQnK2VdKStwYXJzZUludChuWydtYXJnaW4nKygnSGVpZ2h0Jz09PWU/J1RvcCc6J0xlZnQnKV0pK3BhcnNlSW50KG5bJ21hcmdpbicrKCdIZWlnaHQnPT09ZT8nQm90dG9tJzonUmlnaHQnKV0pOjApfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9ZS5ib2R5LG89ZS5kb2N1bWVudEVsZW1lbnQsbj1yKDEwKSYmZ2V0Q29tcHV0ZWRTdHlsZShvKTtyZXR1cm57aGVpZ2h0OmgoJ0hlaWdodCcsdCxvLG4pLHdpZHRoOmgoJ1dpZHRoJyx0LG8sbil9fWZ1bmN0aW9uIGcoZSl7cmV0dXJuIGxlKHt9LGUse3JpZ2h0OmUubGVmdCtlLndpZHRoLGJvdHRvbTplLnRvcCtlLmhlaWdodH0pfWZ1bmN0aW9uIHUoZSl7dmFyIG89e307dHJ5e2lmKHIoMTApKXtvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIG49bChlLCd0b3AnKSxpPWwoZSwnbGVmdCcpO28udG9wKz1uLG8ubGVmdCs9aSxvLmJvdHRvbSs9bixvLnJpZ2h0Kz1pfWVsc2Ugbz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKHQpe312YXIgcD17bGVmdDpvLmxlZnQsdG9wOm8udG9wLHdpZHRoOm8ucmlnaHQtby5sZWZ0LGhlaWdodDpvLmJvdHRvbS1vLnRvcH0scz0nSFRNTCc9PT1lLm5vZGVOYW1lP2MoZS5vd25lckRvY3VtZW50KTp7fSxkPXMud2lkdGh8fGUuY2xpZW50V2lkdGh8fHAucmlnaHQtcC5sZWZ0LGE9cy5oZWlnaHR8fGUuY2xpZW50SGVpZ2h0fHxwLmJvdHRvbS1wLnRvcCxmPWUub2Zmc2V0V2lkdGgtZCxoPWUub2Zmc2V0SGVpZ2h0LWE7aWYoZnx8aCl7dmFyIHU9dChlKTtmLT1tKHUsJ3gnKSxoLT1tKHUsJ3knKSxwLndpZHRoLT1mLHAuaGVpZ2h0LT1ofXJldHVybiBnKHApfWZ1bmN0aW9uIGIoZSxvKXt2YXIgaT0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHA9cigxMCkscz0nSFRNTCc9PT1vLm5vZGVOYW1lLGQ9dShlKSxhPXUobyksbD1uKGUpLG09dChvKSxoPXBhcnNlRmxvYXQobS5ib3JkZXJUb3BXaWR0aCwxMCksYz1wYXJzZUZsb2F0KG0uYm9yZGVyTGVmdFdpZHRoLDEwKTtpJiZzJiYoYS50b3A9SihhLnRvcCwwKSxhLmxlZnQ9SihhLmxlZnQsMCkpO3ZhciBiPWcoe3RvcDpkLnRvcC1hLnRvcC1oLGxlZnQ6ZC5sZWZ0LWEubGVmdC1jLHdpZHRoOmQud2lkdGgsaGVpZ2h0OmQuaGVpZ2h0fSk7aWYoYi5tYXJnaW5Ub3A9MCxiLm1hcmdpbkxlZnQ9MCwhcCYmcyl7dmFyIHk9cGFyc2VGbG9hdChtLm1hcmdpblRvcCwxMCksdz1wYXJzZUZsb2F0KG0ubWFyZ2luTGVmdCwxMCk7Yi50b3AtPWgteSxiLmJvdHRvbS09aC15LGIubGVmdC09Yy13LGIucmlnaHQtPWMtdyxiLm1hcmdpblRvcD15LGIubWFyZ2luTGVmdD13fXJldHVybihwJiYhaT9vLmNvbnRhaW5zKGwpOm89PT1sJiYnQk9EWSchPT1sLm5vZGVOYW1lKSYmKGI9ZihiLG8pKSxifWZ1bmN0aW9uIHkoZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxvPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1iKGUsbyksaT1KKG8uY2xpZW50V2lkdGgsd2luZG93LmlubmVyV2lkdGh8fDApLHI9SihvLmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fDApLHA9dD8wOmwobykscz10PzA6bChvLCdsZWZ0JyksZD17dG9wOnAtbi50b3Arbi5tYXJnaW5Ub3AsbGVmdDpzLW4ubGVmdCtuLm1hcmdpbkxlZnQsd2lkdGg6aSxoZWlnaHQ6cn07cmV0dXJuIGcoZCl9ZnVuY3Rpb24gdyhlKXt2YXIgbj1lLm5vZGVOYW1lO3JldHVybidCT0RZJz09PW58fCdIVE1MJz09PW4/ITE6J2ZpeGVkJz09PXQoZSwncG9zaXRpb24nKXx8dyhvKGUpKX1mdW5jdGlvbiBFKGUpe2lmKCFlfHwhZS5wYXJlbnRFbGVtZW50fHxyKCkpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmb3IodmFyIG89ZS5wYXJlbnRFbGVtZW50O28mJidub25lJz09PXQobywndHJhbnNmb3JtJyk7KW89by5wYXJlbnRFbGVtZW50O3JldHVybiBvfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gdihlLHQsaSxyKXt2YXIgcD00PGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdLHM9e3RvcDowLGxlZnQ6MH0sZD1wP0UoZSk6YShlLHQpO2lmKCd2aWV3cG9ydCc9PT1yKXM9eShkLHApO2Vsc2V7dmFyIGw7J3Njcm9sbFBhcmVudCc9PT1yPyhsPW4obyh0KSksJ0JPRFknPT09bC5ub2RlTmFtZSYmKGw9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpOid3aW5kb3cnPT09cj9sPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6bD1yO3ZhciBmPWIobCxkLHApO2lmKCdIVE1MJz09PWwubm9kZU5hbWUmJiF3KGQpKXt2YXIgbT1jKGUub3duZXJEb2N1bWVudCksaD1tLmhlaWdodCxnPW0ud2lkdGg7cy50b3ArPWYudG9wLWYubWFyZ2luVG9wLHMuYm90dG9tPWgrZi50b3Ascy5sZWZ0Kz1mLmxlZnQtZi5tYXJnaW5MZWZ0LHMucmlnaHQ9ZytmLmxlZnR9ZWxzZSBzPWZ9aT1pfHwwO3ZhciB1PSdudW1iZXInPT10eXBlb2YgaTtyZXR1cm4gcy5sZWZ0Kz11P2k6aS5sZWZ0fHwwLHMudG9wKz11P2k6aS50b3B8fDAscy5yaWdodC09dT9pOmkucmlnaHR8fDAscy5ib3R0b20tPXU/aTppLmJvdHRvbXx8MCxzfWZ1bmN0aW9uIHgoZSl7dmFyIHQ9ZS53aWR0aCxvPWUuaGVpZ2h0O3JldHVybiB0Km99ZnVuY3Rpb24gTyhlLHQsbyxuLGkpe3ZhciByPTU8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTowO2lmKC0xPT09ZS5pbmRleE9mKCdhdXRvJykpcmV0dXJuIGU7dmFyIHA9dihvLG4scixpKSxzPXt0b3A6e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnQudG9wLXAudG9wfSxyaWdodDp7d2lkdGg6cC5yaWdodC10LnJpZ2h0LGhlaWdodDpwLmhlaWdodH0sYm90dG9tOnt3aWR0aDpwLndpZHRoLGhlaWdodDpwLmJvdHRvbS10LmJvdHRvbX0sbGVmdDp7d2lkdGg6dC5sZWZ0LXAubGVmdCxoZWlnaHQ6cC5oZWlnaHR9fSxkPU9iamVjdC5rZXlzKHMpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbGUoe2tleTplfSxzW2VdLHthcmVhOngoc1tlXSl9KX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5hcmVhLWUuYXJlYX0pLGE9ZC5maWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9ZS53aWR0aCxuPWUuaGVpZ2h0O3JldHVybiB0Pj1vLmNsaWVudFdpZHRoJiZuPj1vLmNsaWVudEhlaWdodH0pLGw9MDxhLmxlbmd0aD9hWzBdLmtleTpkWzBdLmtleSxmPWUuc3BsaXQoJy0nKVsxXTtyZXR1cm4gbCsoZj8nLScrZjonJyl9ZnVuY3Rpb24gTChlLHQsbyl7dmFyIG49Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGwsaT1uP0UodCk6YSh0LG8pO3JldHVybiBiKG8saSxuKX1mdW5jdGlvbiBTKGUpe3ZhciB0PWdldENvbXB1dGVkU3R5bGUoZSksbz1wYXJzZUZsb2F0KHQubWFyZ2luVG9wKStwYXJzZUZsb2F0KHQubWFyZ2luQm90dG9tKSxuPXBhcnNlRmxvYXQodC5tYXJnaW5MZWZ0KStwYXJzZUZsb2F0KHQubWFyZ2luUmlnaHQpLGk9e3dpZHRoOmUub2Zmc2V0V2lkdGgrbixoZWlnaHQ6ZS5vZmZzZXRIZWlnaHQrb307cmV0dXJuIGl9ZnVuY3Rpb24gVChlKXt2YXIgdD17bGVmdDoncmlnaHQnLHJpZ2h0OidsZWZ0Jyxib3R0b206J3RvcCcsdG9wOidib3R0b20nfTtyZXR1cm4gZS5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZyxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfWZ1bmN0aW9uIEQoZSx0LG8pe289by5zcGxpdCgnLScpWzBdO3ZhciBuPVMoZSksaT17d2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHR9LHI9LTEhPT1bJ3JpZ2h0JywnbGVmdCddLmluZGV4T2YobykscD1yPyd0b3AnOidsZWZ0JyxzPXI/J2xlZnQnOid0b3AnLGQ9cj8naGVpZ2h0Jzond2lkdGgnLGE9cj8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBpW3BdPXRbcF0rdFtkXS8yLW5bZF0vMixpW3NdPW89PT1zP3Rbc10tblthXTp0W1QocyldLGl9ZnVuY3Rpb24gQyhlLHQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmluZD9lLmZpbmQodCk6ZS5maWx0ZXIodClbMF19ZnVuY3Rpb24gTihlLHQsbyl7aWYoQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleClyZXR1cm4gZS5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7dmFyIG49QyhlLGZ1bmN0aW9uKGUpe3JldHVybiBlW3RdPT09b30pO3JldHVybiBlLmluZGV4T2Yobil9ZnVuY3Rpb24gUCh0LG8sbil7dmFyIGk9dm9pZCAwPT09bj90OnQuc2xpY2UoMCxOKHQsJ25hbWUnLG4pKTtyZXR1cm4gaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RbJ2Z1bmN0aW9uJ10mJmNvbnNvbGUud2FybignYG1vZGlmaWVyLmZ1bmN0aW9uYCBpcyBkZXByZWNhdGVkLCB1c2UgYG1vZGlmaWVyLmZuYCEnKTt2YXIgbj10WydmdW5jdGlvbiddfHx0LmZuO3QuZW5hYmxlZCYmZShuKSYmKG8ub2Zmc2V0cy5wb3BwZXI9ZyhvLm9mZnNldHMucG9wcGVyKSxvLm9mZnNldHMucmVmZXJlbmNlPWcoby5vZmZzZXRzLnJlZmVyZW5jZSksbz1uKG8sdCkpfSksb31mdW5jdGlvbiBrKCl7aWYoIXRoaXMuc3RhdGUuaXNEZXN0cm95ZWQpe3ZhciBlPXtpbnN0YW5jZTp0aGlzLHN0eWxlczp7fSxhcnJvd1N0eWxlczp7fSxhdHRyaWJ1dGVzOnt9LGZsaXBwZWQ6ITEsb2Zmc2V0czp7fX07ZS5vZmZzZXRzLnJlZmVyZW5jZT1MKHRoaXMuc3RhdGUsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQpLGUucGxhY2VtZW50PU8odGhpcy5vcHRpb25zLnBsYWNlbWVudCxlLm9mZnNldHMucmVmZXJlbmNlLHRoaXMucG9wcGVyLHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5ib3VuZGFyaWVzRWxlbWVudCx0aGlzLm9wdGlvbnMubW9kaWZpZXJzLmZsaXAucGFkZGluZyksZS5vcmlnaW5hbFBsYWNlbWVudD1lLnBsYWNlbWVudCxlLnBvc2l0aW9uRml4ZWQ9dGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQsZS5vZmZzZXRzLnBvcHBlcj1EKHRoaXMucG9wcGVyLGUub2Zmc2V0cy5yZWZlcmVuY2UsZS5wbGFjZW1lbnQpLGUub2Zmc2V0cy5wb3BwZXIucG9zaXRpb249dGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnLGU9UCh0aGlzLm1vZGlmaWVycyxlKSx0aGlzLnN0YXRlLmlzQ3JlYXRlZD90aGlzLm9wdGlvbnMub25VcGRhdGUoZSk6KHRoaXMuc3RhdGUuaXNDcmVhdGVkPSEwLHRoaXMub3B0aW9ucy5vbkNyZWF0ZShlKSl9fWZ1bmN0aW9uIFcoZSx0KXtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKGUpe3ZhciBvPWUubmFtZSxuPWUuZW5hYmxlZDtyZXR1cm4gbiYmbz09PXR9KX1mdW5jdGlvbiBIKGUpe2Zvcih2YXIgdD1bITEsJ21zJywnV2Via2l0JywnTW96JywnTyddLG89ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxyPWk/JycraStvOmU7aWYoJ3VuZGVmaW5lZCchPXR5cGVvZiBkb2N1bWVudC5ib2R5LnN0eWxlW3JdKXJldHVybiByfXJldHVybiBudWxsfWZ1bmN0aW9uIEIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZD0hMCxXKHRoaXMubW9kaWZpZXJzLCdhcHBseVN0eWxlJykmJih0aGlzLnBvcHBlci5yZW1vdmVBdHRyaWJ1dGUoJ3gtcGxhY2VtZW50JyksdGhpcy5wb3BwZXIuc3R5bGUucG9zaXRpb249JycsdGhpcy5wb3BwZXIuc3R5bGUudG9wPScnLHRoaXMucG9wcGVyLnN0eWxlLmxlZnQ9JycsdGhpcy5wb3BwZXIuc3R5bGUucmlnaHQ9JycsdGhpcy5wb3BwZXIuc3R5bGUuYm90dG9tPScnLHRoaXMucG9wcGVyLnN0eWxlLndpbGxDaGFuZ2U9JycsdGhpcy5wb3BwZXIuc3R5bGVbSCgndHJhbnNmb3JtJyldPScnKSx0aGlzLmRpc2FibGVFdmVudExpc3RlbmVycygpLHRoaXMub3B0aW9ucy5yZW1vdmVPbkRlc3Ryb3kmJnRoaXMucG9wcGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5wb3BwZXIpLHRoaXN9ZnVuY3Rpb24gQShlKXt2YXIgdD1lLm93bmVyRG9jdW1lbnQ7cmV0dXJuIHQ/dC5kZWZhdWx0Vmlldzp3aW5kb3d9ZnVuY3Rpb24gTShlLHQsbyxpKXt2YXIgcj0nQk9EWSc9PT1lLm5vZGVOYW1lLHA9cj9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6ZTtwLmFkZEV2ZW50TGlzdGVuZXIodCxvLHtwYXNzaXZlOiEwfSkscnx8TShuKHAucGFyZW50Tm9kZSksdCxvLGkpLGkucHVzaChwKX1mdW5jdGlvbiBGKGUsdCxvLGkpe28udXBkYXRlQm91bmQ9aSxBKGUpLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsby51cGRhdGVCb3VuZCx7cGFzc2l2ZTohMH0pO3ZhciByPW4oZSk7cmV0dXJuIE0ociwnc2Nyb2xsJyxvLnVwZGF0ZUJvdW5kLG8uc2Nyb2xsUGFyZW50cyksby5zY3JvbGxFbGVtZW50PXIsby5ldmVudHNFbmFibGVkPSEwLG99ZnVuY3Rpb24gSSgpe3RoaXMuc3RhdGUuZXZlbnRzRW5hYmxlZHx8KHRoaXMuc3RhdGU9Rih0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMsdGhpcy5zdGF0ZSx0aGlzLnNjaGVkdWxlVXBkYXRlKSl9ZnVuY3Rpb24gUihlLHQpe3JldHVybiBBKGUpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsdC51cGRhdGVCb3VuZCksdC5zY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLHQudXBkYXRlQm91bmQpfSksdC51cGRhdGVCb3VuZD1udWxsLHQuc2Nyb2xsUGFyZW50cz1bXSx0LnNjcm9sbEVsZW1lbnQ9bnVsbCx0LmV2ZW50c0VuYWJsZWQ9ITEsdH1mdW5jdGlvbiBVKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5zY2hlZHVsZVVwZGF0ZSksdGhpcy5zdGF0ZT1SKHRoaXMucmVmZXJlbmNlLHRoaXMuc3RhdGUpKX1mdW5jdGlvbiBZKGUpe3JldHVybicnIT09ZSYmIWlzTmFOKHBhcnNlRmxvYXQoZSkpJiZpc0Zpbml0ZShlKX1mdW5jdGlvbiBqKGUsdCl7T2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgbj0nJzstMSE9PVsnd2lkdGgnLCdoZWlnaHQnLCd0b3AnLCdyaWdodCcsJ2JvdHRvbScsJ2xlZnQnXS5pbmRleE9mKG8pJiZZKHRbb10pJiYobj0ncHgnKSxlLnN0eWxlW29dPXRbb10rbn0pfWZ1bmN0aW9uIEsoZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPXRbb107ITE9PT1uP2UucmVtb3ZlQXR0cmlidXRlKG8pOmUuc2V0QXR0cmlidXRlKG8sdFtvXSl9KX1mdW5jdGlvbiBxKGUsdCxvKXt2YXIgbj1DKGUsZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lO3JldHVybiBvPT09dH0pLGk9ISFuJiZlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PW8mJmUuZW5hYmxlZCYmZS5vcmRlcjxuLm9yZGVyfSk7aWYoIWkpe3ZhciByPSdgJyt0KydgJztjb25zb2xlLndhcm4oJ2AnK28rJ2AnKycgbW9kaWZpZXIgaXMgcmVxdWlyZWQgYnkgJytyKycgbW9kaWZpZXIgaW4gb3JkZXIgdG8gd29yaywgYmUgc3VyZSB0byBpbmNsdWRlIGl0IGJlZm9yZSAnK3IrJyEnKX1yZXR1cm4gaX1mdW5jdGlvbiBHKGUpe3JldHVybidlbmQnPT09ZT8nc3RhcnQnOidzdGFydCc9PT1lPydlbmQnOmV9ZnVuY3Rpb24gVihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89bWUuaW5kZXhPZihlKSxuPW1lLnNsaWNlKG8rMSkuY29uY2F0KG1lLnNsaWNlKDAsbykpO3JldHVybiB0P24ucmV2ZXJzZSgpOm59ZnVuY3Rpb24geihlLHQsbyxuKXt2YXIgaT1lLm1hdGNoKC8oKD86XFwtfFxcKyk/XFxkKlxcLj9cXGQqKSguKikvKSxyPStpWzFdLHA9aVsyXTtpZighcilyZXR1cm4gZTtpZigwPT09cC5pbmRleE9mKCclJykpe3ZhciBzO3N3aXRjaChwKXtjYXNlJyVwJzpzPW87YnJlYWs7Y2FzZSclJzpjYXNlJyVyJzpkZWZhdWx0OnM9bjt9dmFyIGQ9ZyhzKTtyZXR1cm4gZFt0XS8xMDAqcn1pZigndmgnPT09cHx8J3Z3Jz09PXApe3ZhciBhO3JldHVybiBhPSd2aCc9PT1wP0ooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fDApOkooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHdpbmRvdy5pbm5lcldpZHRofHwwKSxhLzEwMCpyfXJldHVybiByfWZ1bmN0aW9uIF8oZSx0LG8sbil7dmFyIGk9WzAsMF0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihuKSxwPWUuc3BsaXQoLyhcXCt8XFwtKS8pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9KSxzPXAuaW5kZXhPZihDKHAsZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLnNlYXJjaCgvLHxcXHMvKX0pKTtwW3NdJiYtMT09PXBbc10uaW5kZXhPZignLCcpJiZjb25zb2xlLndhcm4oJ09mZnNldHMgc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlKHMpIGFyZSBkZXByZWNhdGVkLCB1c2UgYSBjb21tYSAoLCkgaW5zdGVhZC4nKTt2YXIgZD0vXFxzKixcXHMqfFxccysvLGE9LTE9PT1zP1twXTpbcC5zbGljZSgwLHMpLmNvbmNhdChbcFtzXS5zcGxpdChkKVswXV0pLFtwW3NdLnNwbGl0KGQpWzFdXS5jb25jYXQocC5zbGljZShzKzEpKV07cmV0dXJuIGE9YS5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgaT0oMT09PW4/IXI6cik/J2hlaWdodCc6J3dpZHRoJyxwPSExO3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybicnPT09ZVtlLmxlbmd0aC0xXSYmLTEhPT1bJysnLCctJ10uaW5kZXhPZih0KT8oZVtlLmxlbmd0aC0xXT10LHA9ITAsZSk6cD8oZVtlLmxlbmd0aC0xXSs9dCxwPSExLGUpOmUuY29uY2F0KHQpfSxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB6KGUsaSx0LG8pfSl9KSxhLmZvckVhY2goZnVuY3Rpb24oZSx0KXtlLmZvckVhY2goZnVuY3Rpb24obyxuKXtZKG8pJiYoaVt0XSs9byooJy0nPT09ZVtuLTFdPy0xOjEpKX0pfSksaX1mdW5jdGlvbiBYKGUsdCl7dmFyIG8sbj10Lm9mZnNldCxpPWUucGxhY2VtZW50LHI9ZS5vZmZzZXRzLHA9ci5wb3BwZXIscz1yLnJlZmVyZW5jZSxkPWkuc3BsaXQoJy0nKVswXTtyZXR1cm4gbz1ZKCtuKT9bK24sMF06XyhuLHAscyxkKSwnbGVmdCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQtPW9bMV0pOidyaWdodCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQrPW9bMV0pOid0b3AnPT09ZD8ocC5sZWZ0Kz1vWzBdLHAudG9wLT1vWzFdKTonYm90dG9tJz09PWQmJihwLmxlZnQrPW9bMF0scC50b3ArPW9bMV0pLGUucG9wcGVyPXAsZX1mb3IodmFyIFE9TWF0aC5taW4sWj1NYXRoLnJvdW5kLCQ9TWF0aC5mbG9vcixKPU1hdGgubWF4LGVlPSd1bmRlZmluZWQnIT10eXBlb2Ygd2luZG93JiYndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LHRlPVsnRWRnZScsJ1RyaWRlbnQnLCdGaXJlZm94J10sb2U9MCxuZT0wO25lPHRlLmxlbmd0aDtuZSs9MSlpZihlZSYmMDw9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKHRlW25lXSkpe29lPTE7YnJlYWt9dmFyIGk9ZWUmJndpbmRvdy5Qcm9taXNlLGllPWk/ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsd2luZG93LlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXt0PSExLGUoKX0pKX19OmZ1bmN0aW9uKGUpe3ZhciB0PSExO3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0PSExLGUoKX0sb2UpKX19LHJlPWVlJiYhISh3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQmJmRvY3VtZW50LmRvY3VtZW50TW9kZSkscGU9ZWUmJi9NU0lFIDEwLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHNlPWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyl9LGRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbyxuPTA7bjx0Lmxlbmd0aDtuKyspbz10W25dLG8uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLCd2YWx1ZSdpbiBvJiYoby53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsby5rZXksbyl9cmV0dXJuIGZ1bmN0aW9uKHQsbyxuKXtyZXR1cm4gbyYmZSh0LnByb3RvdHlwZSxvKSxuJiZlKHQsbiksdH19KCksYWU9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6byxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09byxlfSxsZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspZm9yKHZhciBuIGluIHQ9YXJndW1lbnRzW29dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlfSxmZT1bJ2F1dG8tc3RhcnQnLCdhdXRvJywnYXV0by1lbmQnLCd0b3Atc3RhcnQnLCd0b3AnLCd0b3AtZW5kJywncmlnaHQtc3RhcnQnLCdyaWdodCcsJ3JpZ2h0LWVuZCcsJ2JvdHRvbS1lbmQnLCdib3R0b20nLCdib3R0b20tc3RhcnQnLCdsZWZ0LWVuZCcsJ2xlZnQnLCdsZWZ0LXN0YXJ0J10sbWU9ZmUuc2xpY2UoMyksaGU9e0ZMSVA6J2ZsaXAnLENMT0NLV0lTRTonY2xvY2t3aXNlJyxDT1VOVEVSQ0xPQ0tXSVNFOidjb3VudGVyY2xvY2t3aXNlJ30sY2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KG8sbil7dmFyIGk9dGhpcyxyPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtzZSh0aGlzLHQpLHRoaXMuc2NoZWR1bGVVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkudXBkYXRlKX0sdGhpcy51cGRhdGU9aWUodGhpcy51cGRhdGUuYmluZCh0aGlzKSksdGhpcy5vcHRpb25zPWxlKHt9LHQuRGVmYXVsdHMsciksdGhpcy5zdGF0ZT17aXNEZXN0cm95ZWQ6ITEsaXNDcmVhdGVkOiExLHNjcm9sbFBhcmVudHM6W119LHRoaXMucmVmZXJlbmNlPW8mJm8uanF1ZXJ5P29bMF06byx0aGlzLnBvcHBlcj1uJiZuLmpxdWVyeT9uWzBdOm4sdGhpcy5vcHRpb25zLm1vZGlmaWVycz17fSxPYmplY3Qua2V5cyhsZSh7fSx0LkRlZmF1bHRzLm1vZGlmaWVycyxyLm1vZGlmaWVycykpLmZvckVhY2goZnVuY3Rpb24oZSl7aS5vcHRpb25zLm1vZGlmaWVyc1tlXT1sZSh7fSx0LkRlZmF1bHRzLm1vZGlmaWVyc1tlXXx8e30sci5tb2RpZmllcnM/ci5tb2RpZmllcnNbZV06e30pfSksdGhpcy5tb2RpZmllcnM9T2JqZWN0LmtleXModGhpcy5vcHRpb25zLm1vZGlmaWVycykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsZSh7bmFtZTplfSxpLm9wdGlvbnMubW9kaWZpZXJzW2VdKX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5vcmRlci10Lm9yZGVyfSksdGhpcy5tb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmVuYWJsZWQmJmUodC5vbkxvYWQpJiZ0Lm9uTG9hZChpLnJlZmVyZW5jZSxpLnBvcHBlcixpLm9wdGlvbnMsdCxpLnN0YXRlKX0pLHRoaXMudXBkYXRlKCk7dmFyIHA9dGhpcy5vcHRpb25zLmV2ZW50c0VuYWJsZWQ7cCYmdGhpcy5lbmFibGVFdmVudExpc3RlbmVycygpLHRoaXMuc3RhdGUuZXZlbnRzRW5hYmxlZD1wfXJldHVybiBkZSh0LFt7a2V5Oid1cGRhdGUnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGsuY2FsbCh0aGlzKX19LHtrZXk6J2Rlc3Ryb3knLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEIuY2FsbCh0aGlzKX19LHtrZXk6J2VuYWJsZUV2ZW50TGlzdGVuZXJzJyx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBJLmNhbGwodGhpcyl9fSx7a2V5OidkaXNhYmxlRXZlbnRMaXN0ZW5lcnMnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFUuY2FsbCh0aGlzKX19XSksdH0oKTtyZXR1cm4gY2UuVXRpbHM9KCd1bmRlZmluZWQnPT10eXBlb2Ygd2luZG93P2dsb2JhbDp3aW5kb3cpLlBvcHBlclV0aWxzLGNlLnBsYWNlbWVudHM9ZmUsY2UuRGVmYXVsdHM9e3BsYWNlbWVudDonYm90dG9tJyxwb3NpdGlvbkZpeGVkOiExLGV2ZW50c0VuYWJsZWQ6ITAscmVtb3ZlT25EZXN0cm95OiExLG9uQ3JlYXRlOmZ1bmN0aW9uKCl7fSxvblVwZGF0ZTpmdW5jdGlvbigpe30sbW9kaWZpZXJzOntzaGlmdDp7b3JkZXI6MTAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj10LnNwbGl0KCctJylbMV07aWYobil7dmFyIGk9ZS5vZmZzZXRzLHI9aS5yZWZlcmVuY2UscD1pLnBvcHBlcixzPS0xIT09Wydib3R0b20nLCd0b3AnXS5pbmRleE9mKG8pLGQ9cz8nbGVmdCc6J3RvcCcsYT1zPyd3aWR0aCc6J2hlaWdodCcsbD17c3RhcnQ6YWUoe30sZCxyW2RdKSxlbmQ6YWUoe30sZCxyW2RdK3JbYV0tcFthXSl9O2Uub2Zmc2V0cy5wb3BwZXI9bGUoe30scCxsW25dKX1yZXR1cm4gZX19LG9mZnNldDp7b3JkZXI6MjAwLGVuYWJsZWQ6ITAsZm46WCxvZmZzZXQ6MH0scHJldmVudE92ZXJmbG93OntvcmRlcjozMDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQuYm91bmRhcmllc0VsZW1lbnR8fHAoZS5pbnN0YW5jZS5wb3BwZXIpO2UuaW5zdGFuY2UucmVmZXJlbmNlPT09byYmKG89cChvKSk7dmFyIG49SCgndHJhbnNmb3JtJyksaT1lLmluc3RhbmNlLnBvcHBlci5zdHlsZSxyPWkudG9wLHM9aS5sZWZ0LGQ9aVtuXTtpLnRvcD0nJyxpLmxlZnQ9JycsaVtuXT0nJzt2YXIgYT12KGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyxvLGUucG9zaXRpb25GaXhlZCk7aS50b3A9cixpLmxlZnQ9cyxpW25dPWQsdC5ib3VuZGFyaWVzPWE7dmFyIGw9dC5wcmlvcml0eSxmPWUub2Zmc2V0cy5wb3BwZXIsbT17cHJpbWFyeTpmdW5jdGlvbihlKXt2YXIgbz1mW2VdO3JldHVybiBmW2VdPGFbZV0mJiF0LmVzY2FwZVdpdGhSZWZlcmVuY2UmJihvPUooZltlXSxhW2VdKSksYWUoe30sZSxvKX0sc2Vjb25kYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPSdyaWdodCc9PT1lPydsZWZ0JzondG9wJyxuPWZbb107cmV0dXJuIGZbZV0+YVtlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG49UShmW29dLGFbZV0tKCdyaWdodCc9PT1lP2Yud2lkdGg6Zi5oZWlnaHQpKSksYWUoe30sbyxuKX19O3JldHVybiBsLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9LTE9PT1bJ2xlZnQnLCd0b3AnXS5pbmRleE9mKGUpPydzZWNvbmRhcnknOidwcmltYXJ5JztmPWxlKHt9LGYsbVt0XShlKSl9KSxlLm9mZnNldHMucG9wcGVyPWYsZX0scHJpb3JpdHk6WydsZWZ0JywncmlnaHQnLCd0b3AnLCdib3R0b20nXSxwYWRkaW5nOjUsYm91bmRhcmllc0VsZW1lbnQ6J3Njcm9sbFBhcmVudCd9LGtlZXBUb2dldGhlcjp7b3JkZXI6NDAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vZmZzZXRzLG89dC5wb3BwZXIsbj10LnJlZmVyZW5jZSxpPWUucGxhY2VtZW50LnNwbGl0KCctJylbMF0scj0kLHA9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2YoaSkscz1wPydyaWdodCc6J2JvdHRvbScsZD1wPydsZWZ0JzondG9wJyxhPXA/J3dpZHRoJzonaGVpZ2h0JztyZXR1cm4gb1tzXTxyKG5bZF0pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bZF0pLW9bYV0pLG9bZF0+cihuW3NdKSYmKGUub2Zmc2V0cy5wb3BwZXJbZF09cihuW3NdKSksZX19LGFycm93OntvcmRlcjo1MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLG8pe3ZhciBuO2lmKCFxKGUuaW5zdGFuY2UubW9kaWZpZXJzLCdhcnJvdycsJ2tlZXBUb2dldGhlcicpKXJldHVybiBlO3ZhciBpPW8uZWxlbWVudDtpZignc3RyaW5nJz09dHlwZW9mIGkpe2lmKGk9ZS5pbnN0YW5jZS5wb3BwZXIucXVlcnlTZWxlY3RvcihpKSwhaSlyZXR1cm4gZTt9ZWxzZSBpZighZS5pbnN0YW5jZS5wb3BwZXIuY29udGFpbnMoaSkpcmV0dXJuIGNvbnNvbGUud2FybignV0FSTklORzogYGFycm93LmVsZW1lbnRgIG11c3QgYmUgY2hpbGQgb2YgaXRzIHBvcHBlciBlbGVtZW50IScpLGU7dmFyIHI9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxwPWUub2Zmc2V0cyxzPXAucG9wcGVyLGQ9cC5yZWZlcmVuY2UsYT0tMSE9PVsnbGVmdCcsJ3JpZ2h0J10uaW5kZXhPZihyKSxsPWE/J2hlaWdodCc6J3dpZHRoJyxmPWE/J1RvcCc6J0xlZnQnLG09Zi50b0xvd2VyQ2FzZSgpLGg9YT8nbGVmdCc6J3RvcCcsYz1hPydib3R0b20nOidyaWdodCcsdT1TKGkpW2xdO2RbY10tdTxzW21dJiYoZS5vZmZzZXRzLnBvcHBlclttXS09c1ttXS0oZFtjXS11KSksZFttXSt1PnNbY10mJihlLm9mZnNldHMucG9wcGVyW21dKz1kW21dK3Utc1tjXSksZS5vZmZzZXRzLnBvcHBlcj1nKGUub2Zmc2V0cy5wb3BwZXIpO3ZhciBiPWRbbV0rZFtsXS8yLXUvMix5PXQoZS5pbnN0YW5jZS5wb3BwZXIpLHc9cGFyc2VGbG9hdCh5WydtYXJnaW4nK2ZdLDEwKSxFPXBhcnNlRmxvYXQoeVsnYm9yZGVyJytmKydXaWR0aCddLDEwKSx2PWItZS5vZmZzZXRzLnBvcHBlclttXS13LUU7cmV0dXJuIHY9SihRKHNbbF0tdSx2KSwwKSxlLmFycm93RWxlbWVudD1pLGUub2Zmc2V0cy5hcnJvdz0obj17fSxhZShuLG0sWih2KSksYWUobixoLCcnKSxuKSxlfSxlbGVtZW50OidbeC1hcnJvd10nfSxmbGlwOntvcmRlcjo2MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe2lmKFcoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2lubmVyJykpcmV0dXJuIGU7aWYoZS5mbGlwcGVkJiZlLnBsYWNlbWVudD09PWUub3JpZ2luYWxQbGFjZW1lbnQpcmV0dXJuIGU7dmFyIG89dihlLmluc3RhbmNlLnBvcHBlcixlLmluc3RhbmNlLnJlZmVyZW5jZSx0LnBhZGRpbmcsdC5ib3VuZGFyaWVzRWxlbWVudCxlLnBvc2l0aW9uRml4ZWQpLG49ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVQobikscj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzFdfHwnJyxwPVtdO3N3aXRjaCh0LmJlaGF2aW9yKXtjYXNlIGhlLkZMSVA6cD1bbixpXTticmVhaztjYXNlIGhlLkNMT0NLV0lTRTpwPVYobik7YnJlYWs7Y2FzZSBoZS5DT1VOVEVSQ0xPQ0tXSVNFOnA9VihuLCEwKTticmVhaztkZWZhdWx0OnA9dC5iZWhhdmlvcjt9cmV0dXJuIHAuZm9yRWFjaChmdW5jdGlvbihzLGQpe2lmKG4hPT1zfHxwLmxlbmd0aD09PWQrMSlyZXR1cm4gZTtuPWUucGxhY2VtZW50LnNwbGl0KCctJylbMF0saT1UKG4pO3ZhciBhPWUub2Zmc2V0cy5wb3BwZXIsbD1lLm9mZnNldHMucmVmZXJlbmNlLGY9JCxtPSdsZWZ0Jz09PW4mJmYoYS5yaWdodCk+ZihsLmxlZnQpfHwncmlnaHQnPT09biYmZihhLmxlZnQpPGYobC5yaWdodCl8fCd0b3AnPT09biYmZihhLmJvdHRvbSk+ZihsLnRvcCl8fCdib3R0b20nPT09biYmZihhLnRvcCk8ZihsLmJvdHRvbSksaD1mKGEubGVmdCk8ZihvLmxlZnQpLGM9ZihhLnJpZ2h0KT5mKG8ucmlnaHQpLGc9ZihhLnRvcCk8ZihvLnRvcCksdT1mKGEuYm90dG9tKT5mKG8uYm90dG9tKSxiPSdsZWZ0Jz09PW4mJmh8fCdyaWdodCc9PT1uJiZjfHwndG9wJz09PW4mJmd8fCdib3R0b20nPT09biYmdSx5PS0xIT09Wyd0b3AnLCdib3R0b20nXS5pbmRleE9mKG4pLHc9ISF0LmZsaXBWYXJpYXRpb25zJiYoeSYmJ3N0YXJ0Jz09PXImJmh8fHkmJidlbmQnPT09ciYmY3x8IXkmJidzdGFydCc9PT1yJiZnfHwheSYmJ2VuZCc9PT1yJiZ1KTsobXx8Ynx8dykmJihlLmZsaXBwZWQ9ITAsKG18fGIpJiYobj1wW2QrMV0pLHcmJihyPUcocikpLGUucGxhY2VtZW50PW4rKHI/Jy0nK3I6JycpLGUub2Zmc2V0cy5wb3BwZXI9bGUoe30sZS5vZmZzZXRzLnBvcHBlcixEKGUuaW5zdGFuY2UucG9wcGVyLGUub2Zmc2V0cy5yZWZlcmVuY2UsZS5wbGFjZW1lbnQpKSxlPVAoZS5pbnN0YW5jZS5tb2RpZmllcnMsZSwnZmxpcCcpKX0pLGV9LGJlaGF2aW9yOidmbGlwJyxwYWRkaW5nOjUsYm91bmRhcmllc0VsZW1lbnQ6J3ZpZXdwb3J0J30saW5uZXI6e29yZGVyOjcwMCxlbmFibGVkOiExLGZuOmZ1bmN0aW9uKGUpe3ZhciB0PWUucGxhY2VtZW50LG89dC5zcGxpdCgnLScpWzBdLG49ZS5vZmZzZXRzLGk9bi5wb3BwZXIscj1uLnJlZmVyZW5jZSxwPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKG8pLHM9LTE9PT1bJ3RvcCcsJ2xlZnQnXS5pbmRleE9mKG8pO3JldHVybiBpW3A/J2xlZnQnOid0b3AnXT1yW29dLShzP2lbcD8nd2lkdGgnOidoZWlnaHQnXTowKSxlLnBsYWNlbWVudD1UKHQpLGUub2Zmc2V0cy5wb3BwZXI9ZyhpKSxlfX0saGlkZTp7b3JkZXI6ODAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2hpZGUnLCdwcmV2ZW50T3ZlcmZsb3cnKSlyZXR1cm4gZTt2YXIgdD1lLm9mZnNldHMucmVmZXJlbmNlLG89QyhlLmluc3RhbmNlLm1vZGlmaWVycyxmdW5jdGlvbihlKXtyZXR1cm4ncHJldmVudE92ZXJmbG93Jz09PWUubmFtZX0pLmJvdW5kYXJpZXM7aWYodC5ib3R0b208by50b3B8fHQubGVmdD5vLnJpZ2h0fHx0LnRvcD5vLmJvdHRvbXx8dC5yaWdodDxvLmxlZnQpe2lmKCEwPT09ZS5oaWRlKXJldHVybiBlO2UuaGlkZT0hMCxlLmF0dHJpYnV0ZXNbJ3gtb3V0LW9mLWJvdW5kYXJpZXMnXT0nJ31lbHNle2lmKCExPT09ZS5oaWRlKXJldHVybiBlO2UuaGlkZT0hMSxlLmF0dHJpYnV0ZXNbJ3gtb3V0LW9mLWJvdW5kYXJpZXMnXT0hMX1yZXR1cm4gZX19LGNvbXB1dGVTdHlsZTp7b3JkZXI6ODUwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSx0KXt2YXIgbz10Lngsbj10LnksaT1lLm9mZnNldHMucG9wcGVyLHI9QyhlLmluc3RhbmNlLm1vZGlmaWVycyxmdW5jdGlvbihlKXtyZXR1cm4nYXBwbHlTdHlsZSc9PT1lLm5hbWV9KS5ncHVBY2NlbGVyYXRpb247dm9pZCAwIT09ciYmY29uc29sZS53YXJuKCdXQVJOSU5HOiBgZ3B1QWNjZWxlcmF0aW9uYCBvcHRpb24gbW92ZWQgdG8gYGNvbXB1dGVTdHlsZWAgbW9kaWZpZXIgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgUG9wcGVyLmpzIScpO3ZhciBzLGQsYT12b2lkIDA9PT1yP3QuZ3B1QWNjZWxlcmF0aW9uOnIsbD1wKGUuaW5zdGFuY2UucG9wcGVyKSxmPXUobCksbT17cG9zaXRpb246aS5wb3NpdGlvbn0saD17bGVmdDokKGkubGVmdCksdG9wOlooaS50b3ApLGJvdHRvbTpaKGkuYm90dG9tKSxyaWdodDokKGkucmlnaHQpfSxjPSdib3R0b20nPT09bz8ndG9wJzonYm90dG9tJyxnPSdyaWdodCc9PT1uPydsZWZ0JzoncmlnaHQnLGI9SCgndHJhbnNmb3JtJyk7aWYoZD0nYm90dG9tJz09Yz8nSFRNTCc9PT1sLm5vZGVOYW1lPy1sLmNsaWVudEhlaWdodCtoLmJvdHRvbTotZi5oZWlnaHQraC5ib3R0b206aC50b3Ascz0ncmlnaHQnPT1nPydIVE1MJz09PWwubm9kZU5hbWU/LWwuY2xpZW50V2lkdGgraC5yaWdodDotZi53aWR0aCtoLnJpZ2h0OmgubGVmdCxhJiZiKW1bYl09J3RyYW5zbGF0ZTNkKCcrcysncHgsICcrZCsncHgsIDApJyxtW2NdPTAsbVtnXT0wLG0ud2lsbENoYW5nZT0ndHJhbnNmb3JtJztlbHNle3ZhciB5PSdib3R0b20nPT1jPy0xOjEsdz0ncmlnaHQnPT1nPy0xOjE7bVtjXT1kKnksbVtnXT1zKncsbS53aWxsQ2hhbmdlPWMrJywgJytnfXZhciBFPXtcIngtcGxhY2VtZW50XCI6ZS5wbGFjZW1lbnR9O3JldHVybiBlLmF0dHJpYnV0ZXM9bGUoe30sRSxlLmF0dHJpYnV0ZXMpLGUuc3R5bGVzPWxlKHt9LG0sZS5zdHlsZXMpLGUuYXJyb3dTdHlsZXM9bGUoe30sZS5vZmZzZXRzLmFycm93LGUuYXJyb3dTdHlsZXMpLGV9LGdwdUFjY2VsZXJhdGlvbjohMCx4Oidib3R0b20nLHk6J3JpZ2h0J30sYXBwbHlTdHlsZTp7b3JkZXI6OTAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7cmV0dXJuIGooZS5pbnN0YW5jZS5wb3BwZXIsZS5zdHlsZXMpLEsoZS5pbnN0YW5jZS5wb3BwZXIsZS5hdHRyaWJ1dGVzKSxlLmFycm93RWxlbWVudCYmT2JqZWN0LmtleXMoZS5hcnJvd1N0eWxlcykubGVuZ3RoJiZqKGUuYXJyb3dFbGVtZW50LGUuYXJyb3dTdHlsZXMpLGV9LG9uTG9hZDpmdW5jdGlvbihlLHQsbyxuLGkpe3ZhciByPUwoaSx0LGUsby5wb3NpdGlvbkZpeGVkKSxwPU8oby5wbGFjZW1lbnQscix0LGUsby5tb2RpZmllcnMuZmxpcC5ib3VuZGFyaWVzRWxlbWVudCxvLm1vZGlmaWVycy5mbGlwLnBhZGRpbmcpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnLHApLGoodCx7cG9zaXRpb246by5wb3NpdGlvbkZpeGVkPydmaXhlZCc6J2Fic29sdXRlJ30pLG99LGdwdUFjY2VsZXJhdGlvbjp2b2lkIDB9fX0sY2V9KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9wcGVyLm1pbi5qcy5tYXAiLCIvKiFcbiAgKiBCb290c3RyYXAgdjQuMS4wIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICAqIENvcHlyaWdodCAyMDExLTIwMTggVGhlIEJvb3RzdHJhcCBBdXRob3JzIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvZ3JhcGhzL2NvbnRyaWJ1dG9ycylcbiAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICAqL1xuIWZ1bmN0aW9uKHQsZSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/ZShleHBvcnRzLHJlcXVpcmUoXCJqcXVlcnlcIikscmVxdWlyZShcInBvcHBlci5qc1wiKSk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCIsXCJqcXVlcnlcIixcInBvcHBlci5qc1wiXSxlKTplKHQuYm9vdHN0cmFwPXt9LHQualF1ZXJ5LHQuUG9wcGVyKX0odGhpcyxmdW5jdGlvbih0LGUsYyl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLmtleSxpKX19ZnVuY3Rpb24gbyh0LGUsbil7cmV0dXJuIGUmJmkodC5wcm90b3R5cGUsZSksbiYmaSh0LG4pLHR9ZnVuY3Rpb24gaChyKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcz1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LGU9T2JqZWN0LmtleXMocyk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKGU9ZS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocyx0KS5lbnVtZXJhYmxlfSkpKSxlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGUsbixpO2U9cixpPXNbbj10XSxuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09aX0pfXJldHVybiByfWU9ZSYmZS5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRcIik/ZS5kZWZhdWx0OmUsYz1jJiZjLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKT9jLmRlZmF1bHQ6Yzt2YXIgcixuLHMsYSxsLHUsZixkLF8sZyxtLHAsdixFLHksVCxDLEksQSxELGIsUyx3LE4sTyxrLFAsTCxqLFIsSCxXLE0seCxVLEssRixWLFEsQixZLEcscSx6LFgsSixaLCQsdHQsZXQsbnQsaXQscnQsc3Qsb3QsYXQsbHQsaHQsY3QsdXQsZnQsZHQsX3QsZ3QsbXQscHQsdnQsRXQseXQsVHQsQ3QsSXQsQXQsRHQsYnQsU3Qsd3QsTnQsT3Qsa3QsUHQsTHQsanQsUnQsSHQsV3QsTXQseHQsVXQsS3QsRnQsVnQsUXQsQnQsWXQsR3QscXQsenQsWHQsSnQsWnQsJHQsdGUsZWUsbmUsaWUscmUsc2Usb2UsYWUsbGUsaGUsY2UsdWUsZmUsZGUsX2UsZ2UsbWUscGUsdmUsRWUseWUsVGUsQ2UsSWUsQWUsRGUsYmUsU2Usd2UsTmUsT2Usa2UsUGUsTGUsamUsUmUsSGUsV2UsTWUseGUsVWUsS2UsRmUsVmUsUWUsQmUsWWUsR2UscWUsemUsWGUsSmUsWmUsJGUsdG4sZW4sbm4scm4sc24sb24sYW4sbG4saG4sY24sdW4sZm4sZG4sX24sZ24sbW4scG4sdm4sRW4seW4sVG4sQ249ZnVuY3Rpb24oaSl7dmFyIGU9XCJ0cmFuc2l0aW9uZW5kXCI7ZnVuY3Rpb24gdCh0KXt2YXIgZT10aGlzLG49ITE7cmV0dXJuIGkodGhpcykub25lKGwuVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXtuPSEwfSksc2V0VGltZW91dChmdW5jdGlvbigpe258fGwudHJpZ2dlclRyYW5zaXRpb25FbmQoZSl9LHQpLHRoaXN9dmFyIGw9e1RSQU5TSVRJT05fRU5EOlwiYnNUcmFuc2l0aW9uRW5kXCIsZ2V0VUlEOmZ1bmN0aW9uKHQpe2Zvcig7dCs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOyk7cmV0dXJuIHR9LGdldFNlbGVjdG9yRnJvbUVsZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRhcmdldFwiKTtlJiZcIiNcIiE9PWV8fChlPXQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKXx8XCJcIik7dHJ5e3JldHVybiAwPGkoZG9jdW1lbnQpLmZpbmQoZSkubGVuZ3RoP2U6bnVsbH1jYXRjaCh0KXtyZXR1cm4gbnVsbH19LGdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50OmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiAwO3ZhciBlPWkodCkuY3NzKFwidHJhbnNpdGlvbi1kdXJhdGlvblwiKTtyZXR1cm4gcGFyc2VGbG9hdChlKT8oZT1lLnNwbGl0KFwiLFwiKVswXSwxZTMqcGFyc2VGbG9hdChlKSk6MH0scmVmbG93OmZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZnNldEhlaWdodH0sdHJpZ2dlclRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24odCl7aSh0KS50cmlnZ2VyKGUpfSxzdXBwb3J0c1RyYW5zaXRpb25FbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihlKX0saXNFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybih0WzBdfHx0KS5ub2RlVHlwZX0sdHlwZUNoZWNrQ29uZmlnOmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkgaW4gbilpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixpKSl7dmFyIHI9bltpXSxzPWVbaV0sbz1zJiZsLmlzRWxlbWVudChzKT9cImVsZW1lbnRcIjooYT1zLHt9LnRvU3RyaW5nLmNhbGwoYSkubWF0Y2goL1xccyhbYS16XSspL2kpWzFdLnRvTG93ZXJDYXNlKCkpO2lmKCFuZXcgUmVnRXhwKHIpLnRlc3QobykpdGhyb3cgbmV3IEVycm9yKHQudG9VcHBlckNhc2UoKSsnOiBPcHRpb24gXCInK2krJ1wiIHByb3ZpZGVkIHR5cGUgXCInK28rJ1wiIGJ1dCBleHBlY3RlZCB0eXBlIFwiJytyKydcIi4nKX12YXIgYX19O3JldHVybiBpLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kPXQsaS5ldmVudC5zcGVjaWFsW2wuVFJBTlNJVElPTl9FTkRdPXtiaW5kVHlwZTplLGRlbGVnYXRlVHlwZTplLGhhbmRsZTpmdW5jdGlvbih0KXtpZihpKHQudGFyZ2V0KS5pcyh0aGlzKSlyZXR1cm4gdC5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxsfShlKSxJbj0obj1cImFsZXJ0XCIsYT1cIi5cIisocz1cImJzLmFsZXJ0XCIpLGw9KHI9ZSkuZm5bbl0sdT17Q0xPU0U6XCJjbG9zZVwiK2EsQ0xPU0VEOlwiY2xvc2VkXCIrYSxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrYStcIi5kYXRhLWFwaVwifSxmPVwiYWxlcnRcIixkPVwiZmFkZVwiLF89XCJzaG93XCIsZz1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCl7dGhpcy5fZWxlbWVudD10fXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LmNsb3NlPWZ1bmN0aW9uKHQpe3Q9dHx8dGhpcy5fZWxlbWVudDt2YXIgZT10aGlzLl9nZXRSb290RWxlbWVudCh0KTt0aGlzLl90cmlnZ2VyQ2xvc2VFdmVudChlKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8dGhpcy5fcmVtb3ZlRWxlbWVudChlKX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7ci5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQscyksdGhpcy5fZWxlbWVudD1udWxsfSx0Ll9nZXRSb290RWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpLG49ITE7cmV0dXJuIGUmJihuPXIoZSlbMF0pLG58fChuPXIodCkuY2xvc2VzdChcIi5cIitmKVswXSksbn0sdC5fdHJpZ2dlckNsb3NlRXZlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9ci5FdmVudCh1LkNMT1NFKTtyZXR1cm4gcih0KS50cmlnZ2VyKGUpLGV9LHQuX3JlbW92ZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZihyKGUpLnJlbW92ZUNsYXNzKF8pLHIoZSkuaGFzQ2xhc3MoZCkpe3ZhciB0PUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KGUpO3IoZSkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKHQpe3JldHVybiBuLl9kZXN0cm95RWxlbWVudChlLHQpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQodCl9ZWxzZSB0aGlzLl9kZXN0cm95RWxlbWVudChlKX0sdC5fZGVzdHJveUVsZW1lbnQ9ZnVuY3Rpb24odCl7cih0KS5kZXRhY2goKS50cmlnZ2VyKHUuQ0xPU0VEKS5yZW1vdmUoKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1yKHRoaXMpLGU9dC5kYXRhKHMpO2V8fChlPW5ldyBpKHRoaXMpLHQuZGF0YShzLGUpKSxcImNsb3NlXCI9PT1uJiZlW25dKHRoaXMpfSl9LGkuX2hhbmRsZURpc21pc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3QmJnQucHJldmVudERlZmF1bHQoKSxlLmNsb3NlKHRoaXMpfX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxpfSgpLHIoZG9jdW1lbnQpLm9uKHUuQ0xJQ0tfREFUQV9BUEksJ1tkYXRhLWRpc21pc3M9XCJhbGVydFwiXScsZy5faGFuZGxlRGlzbWlzcyhuZXcgZykpLHIuZm5bbl09Zy5falF1ZXJ5SW50ZXJmYWNlLHIuZm5bbl0uQ29uc3RydWN0b3I9ZyxyLmZuW25dLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gci5mbltuXT1sLGcuX2pRdWVyeUludGVyZmFjZX0sZyksQW49KHA9XCJidXR0b25cIixFPVwiLlwiKyh2PVwiYnMuYnV0dG9uXCIpLHk9XCIuZGF0YS1hcGlcIixUPShtPWUpLmZuW3BdLEM9XCJhY3RpdmVcIixJPVwiYnRuXCIsRD0nW2RhdGEtdG9nZ2xlXj1cImJ1dHRvblwiXScsYj0nW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXScsUz1cImlucHV0XCIsdz1cIi5hY3RpdmVcIixOPVwiLmJ0blwiLE89e0NMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitFK3ksRk9DVVNfQkxVUl9EQVRBX0FQSTooQT1cImZvY3VzXCIpK0UreStcIiBibHVyXCIrRSt5fSxrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIHQ9ITAsZT0hMCxuPW0odGhpcy5fZWxlbWVudCkuY2xvc2VzdChiKVswXTtpZihuKXt2YXIgaT1tKHRoaXMuX2VsZW1lbnQpLmZpbmQoUylbMF07aWYoaSl7aWYoXCJyYWRpb1wiPT09aS50eXBlKWlmKGkuY2hlY2tlZCYmbSh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhDKSl0PSExO2Vsc2V7dmFyIHI9bShuKS5maW5kKHcpWzBdO3ImJm0ocikucmVtb3ZlQ2xhc3MoQyl9aWYodCl7aWYoaS5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8bi5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8aS5jbGFzc0xpc3QuY29udGFpbnMoXCJkaXNhYmxlZFwiKXx8bi5jbGFzc0xpc3QuY29udGFpbnMoXCJkaXNhYmxlZFwiKSlyZXR1cm47aS5jaGVja2VkPSFtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpLG0oaSkudHJpZ2dlcihcImNoYW5nZVwiKX1pLmZvY3VzKCksZT0hMX19ZSYmdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXByZXNzZWRcIiwhbSh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhDKSksdCYmbSh0aGlzLl9lbGVtZW50KS50b2dnbGVDbGFzcyhDKX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7bS5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsdiksdGhpcy5fZWxlbWVudD1udWxsfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW0odGhpcykuZGF0YSh2KTt0fHwodD1uZXcgbih0aGlzKSxtKHRoaXMpLmRhdGEodix0KSksXCJ0b2dnbGVcIj09PWUmJnRbZV0oKX0pfSxvKG4sbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLG59KCksbShkb2N1bWVudCkub24oTy5DTElDS19EQVRBX0FQSSxELGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgZT10LnRhcmdldDttKGUpLmhhc0NsYXNzKEkpfHwoZT1tKGUpLmNsb3Nlc3QoTikpLGsuX2pRdWVyeUludGVyZmFjZS5jYWxsKG0oZSksXCJ0b2dnbGVcIil9KS5vbihPLkZPQ1VTX0JMVVJfREFUQV9BUEksRCxmdW5jdGlvbih0KXt2YXIgZT1tKHQudGFyZ2V0KS5jbG9zZXN0KE4pWzBdO20oZSkudG9nZ2xlQ2xhc3MoQSwvXmZvY3VzKGluKT8kLy50ZXN0KHQudHlwZSkpfSksbS5mbltwXT1rLl9qUXVlcnlJbnRlcmZhY2UsbS5mbltwXS5Db25zdHJ1Y3Rvcj1rLG0uZm5bcF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBtLmZuW3BdPVQsay5falF1ZXJ5SW50ZXJmYWNlfSxrKSxEbj0oTD1cImNhcm91c2VsXCIsUj1cIi5cIisoaj1cImJzLmNhcm91c2VsXCIpLEg9XCIuZGF0YS1hcGlcIixXPShQPWUpLmZuW0xdLE09e2ludGVydmFsOjVlMyxrZXlib2FyZDohMCxzbGlkZTohMSxwYXVzZTpcImhvdmVyXCIsd3JhcDohMH0seD17aW50ZXJ2YWw6XCIobnVtYmVyfGJvb2xlYW4pXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIsc2xpZGU6XCIoYm9vbGVhbnxzdHJpbmcpXCIscGF1c2U6XCIoc3RyaW5nfGJvb2xlYW4pXCIsd3JhcDpcImJvb2xlYW5cIn0sVT1cIm5leHRcIixLPVwicHJldlwiLEY9XCJsZWZ0XCIsVj1cInJpZ2h0XCIsUT17U0xJREU6XCJzbGlkZVwiK1IsU0xJRDpcInNsaWRcIitSLEtFWURPV046XCJrZXlkb3duXCIrUixNT1VTRUVOVEVSOlwibW91c2VlbnRlclwiK1IsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitSLFRPVUNIRU5EOlwidG91Y2hlbmRcIitSLExPQURfREFUQV9BUEk6XCJsb2FkXCIrUitILENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitSK0h9LEI9XCJjYXJvdXNlbFwiLFk9XCJhY3RpdmVcIixHPVwic2xpZGVcIixxPVwiY2Fyb3VzZWwtaXRlbS1yaWdodFwiLHo9XCJjYXJvdXNlbC1pdGVtLWxlZnRcIixYPVwiY2Fyb3VzZWwtaXRlbS1uZXh0XCIsSj1cImNhcm91c2VsLWl0ZW0tcHJldlwiLFo9e0FDVElWRTpcIi5hY3RpdmVcIixBQ1RJVkVfSVRFTTpcIi5hY3RpdmUuY2Fyb3VzZWwtaXRlbVwiLElURU06XCIuY2Fyb3VzZWwtaXRlbVwiLE5FWFRfUFJFVjpcIi5jYXJvdXNlbC1pdGVtLW5leHQsIC5jYXJvdXNlbC1pdGVtLXByZXZcIixJTkRJQ0FUT1JTOlwiLmNhcm91c2VsLWluZGljYXRvcnNcIixEQVRBX1NMSURFOlwiW2RhdGEtc2xpZGVdLCBbZGF0YS1zbGlkZS10b11cIixEQVRBX1JJREU6J1tkYXRhLXJpZGU9XCJjYXJvdXNlbFwiXSd9LCQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKHQsZSl7dGhpcy5faXRlbXM9bnVsbCx0aGlzLl9pbnRlcnZhbD1udWxsLHRoaXMuX2FjdGl2ZUVsZW1lbnQ9bnVsbCx0aGlzLl9pc1BhdXNlZD0hMSx0aGlzLl9pc1NsaWRpbmc9ITEsdGhpcy50b3VjaFRpbWVvdXQ9bnVsbCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX2VsZW1lbnQ9UCh0KVswXSx0aGlzLl9pbmRpY2F0b3JzRWxlbWVudD1QKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5JTkRJQ0FUT1JTKVswXSx0aGlzLl9hZGRFdmVudExpc3RlbmVycygpfXZhciB0PXMucHJvdG90eXBlO3JldHVybiB0Lm5leHQ9ZnVuY3Rpb24oKXt0aGlzLl9pc1NsaWRpbmd8fHRoaXMuX3NsaWRlKFUpfSx0Lm5leHRXaGVuVmlzaWJsZT1mdW5jdGlvbigpeyFkb2N1bWVudC5oaWRkZW4mJlAodGhpcy5fZWxlbWVudCkuaXMoXCI6dmlzaWJsZVwiKSYmXCJoaWRkZW5cIiE9PVAodGhpcy5fZWxlbWVudCkuY3NzKFwidmlzaWJpbGl0eVwiKSYmdGhpcy5uZXh0KCl9LHQucHJldj1mdW5jdGlvbigpe3RoaXMuX2lzU2xpZGluZ3x8dGhpcy5fc2xpZGUoSyl9LHQucGF1c2U9ZnVuY3Rpb24odCl7dHx8KHRoaXMuX2lzUGF1c2VkPSEwKSxQKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5ORVhUX1BSRVYpWzBdJiYoQ24udHJpZ2dlclRyYW5zaXRpb25FbmQodGhpcy5fZWxlbWVudCksdGhpcy5jeWNsZSghMCkpLGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpLHRoaXMuX2ludGVydmFsPW51bGx9LHQuY3ljbGU9ZnVuY3Rpb24odCl7dHx8KHRoaXMuX2lzUGF1c2VkPSExKSx0aGlzLl9pbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpLHRoaXMuX2ludGVydmFsPW51bGwpLHRoaXMuX2NvbmZpZy5pbnRlcnZhbCYmIXRoaXMuX2lzUGF1c2VkJiYodGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT90aGlzLm5leHRXaGVuVmlzaWJsZTp0aGlzLm5leHQpLmJpbmQodGhpcyksdGhpcy5fY29uZmlnLmludGVydmFsKSl9LHQudG89ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9hY3RpdmVFbGVtZW50PVAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXTt2YXIgbj10aGlzLl9nZXRJdGVtSW5kZXgodGhpcy5fYWN0aXZlRWxlbWVudCk7aWYoISh0PnRoaXMuX2l0ZW1zLmxlbmd0aC0xfHx0PDApKWlmKHRoaXMuX2lzU2xpZGluZylQKHRoaXMuX2VsZW1lbnQpLm9uZShRLlNMSUQsZnVuY3Rpb24oKXtyZXR1cm4gZS50byh0KX0pO2Vsc2V7aWYobj09PXQpcmV0dXJuIHRoaXMucGF1c2UoKSx2b2lkIHRoaXMuY3ljbGUoKTt2YXIgaT1uPHQ/VTpLO3RoaXMuX3NsaWRlKGksdGhpcy5faXRlbXNbdF0pfX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7UCh0aGlzLl9lbGVtZW50KS5vZmYoUiksUC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsaiksdGhpcy5faXRlbXM9bnVsbCx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5faW50ZXJ2YWw9bnVsbCx0aGlzLl9pc1BhdXNlZD1udWxsLHRoaXMuX2lzU2xpZGluZz1udWxsLHRoaXMuX2FjdGl2ZUVsZW1lbnQ9bnVsbCx0aGlzLl9pbmRpY2F0b3JzRWxlbWVudD1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSxNLHQpLENuLnR5cGVDaGVja0NvbmZpZyhMLHQseCksdH0sdC5fYWRkRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2NvbmZpZy5rZXlib2FyZCYmUCh0aGlzLl9lbGVtZW50KS5vbihRLktFWURPV04sZnVuY3Rpb24odCl7cmV0dXJuIGUuX2tleWRvd24odCl9KSxcImhvdmVyXCI9PT10aGlzLl9jb25maWcucGF1c2UmJihQKHRoaXMuX2VsZW1lbnQpLm9uKFEuTU9VU0VFTlRFUixmdW5jdGlvbih0KXtyZXR1cm4gZS5wYXVzZSh0KX0pLm9uKFEuTU9VU0VMRUFWRSxmdW5jdGlvbih0KXtyZXR1cm4gZS5jeWNsZSh0KX0pLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJlAodGhpcy5fZWxlbWVudCkub24oUS5UT1VDSEVORCxmdW5jdGlvbigpe2UucGF1c2UoKSxlLnRvdWNoVGltZW91dCYmY2xlYXJUaW1lb3V0KGUudG91Y2hUaW1lb3V0KSxlLnRvdWNoVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKHQpe3JldHVybiBlLmN5Y2xlKHQpfSw1MDArZS5fY29uZmlnLmludGVydmFsKX0pKX0sdC5fa2V5ZG93bj1mdW5jdGlvbih0KXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKSlzd2l0Y2godC53aGljaCl7Y2FzZSAzNzp0LnByZXZlbnREZWZhdWx0KCksdGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0LnByZXZlbnREZWZhdWx0KCksdGhpcy5uZXh0KCl9fSx0Ll9nZXRJdGVtSW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2l0ZW1zPVAubWFrZUFycmF5KFAodCkucGFyZW50KCkuZmluZChaLklURU0pKSx0aGlzLl9pdGVtcy5pbmRleE9mKHQpfSx0Ll9nZXRJdGVtQnlEaXJlY3Rpb249ZnVuY3Rpb24odCxlKXt2YXIgbj10PT09VSxpPXQ9PT1LLHI9dGhpcy5fZ2V0SXRlbUluZGV4KGUpLHM9dGhpcy5faXRlbXMubGVuZ3RoLTE7aWYoKGkmJjA9PT1yfHxuJiZyPT09cykmJiF0aGlzLl9jb25maWcud3JhcClyZXR1cm4gZTt2YXIgbz0ocisodD09PUs/LTE6MSkpJXRoaXMuX2l0ZW1zLmxlbmd0aDtyZXR1cm4tMT09PW8/dGhpcy5faXRlbXNbdGhpcy5faXRlbXMubGVuZ3RoLTFdOnRoaXMuX2l0ZW1zW29dfSx0Ll90cmlnZ2VyU2xpZGVFdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2dldEl0ZW1JbmRleCh0KSxpPXRoaXMuX2dldEl0ZW1JbmRleChQKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5BQ1RJVkVfSVRFTSlbMF0pLHI9UC5FdmVudChRLlNMSURFLHtyZWxhdGVkVGFyZ2V0OnQsZGlyZWN0aW9uOmUsZnJvbTppLHRvOm59KTtyZXR1cm4gUCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKHIpLHJ9LHQuX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQ9ZnVuY3Rpb24odCl7aWYodGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpe1AodGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpLmZpbmQoWi5BQ1RJVkUpLnJlbW92ZUNsYXNzKFkpO3ZhciBlPXRoaXMuX2luZGljYXRvcnNFbGVtZW50LmNoaWxkcmVuW3RoaXMuX2dldEl0ZW1JbmRleCh0KV07ZSYmUChlKS5hZGRDbGFzcyhZKX19LHQuX3NsaWRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHM9dGhpcyxvPVAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXSxhPXRoaXMuX2dldEl0ZW1JbmRleChvKSxsPWV8fG8mJnRoaXMuX2dldEl0ZW1CeURpcmVjdGlvbih0LG8pLGg9dGhpcy5fZ2V0SXRlbUluZGV4KGwpLGM9Qm9vbGVhbih0aGlzLl9pbnRlcnZhbCk7aWYodD09PVU/KG49eixpPVgscj1GKToobj1xLGk9SixyPVYpLGwmJlAobCkuaGFzQ2xhc3MoWSkpdGhpcy5faXNTbGlkaW5nPSExO2Vsc2UgaWYoIXRoaXMuX3RyaWdnZXJTbGlkZUV2ZW50KGwscikuaXNEZWZhdWx0UHJldmVudGVkKCkmJm8mJmwpe3RoaXMuX2lzU2xpZGluZz0hMCxjJiZ0aGlzLnBhdXNlKCksdGhpcy5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudChsKTt2YXIgdT1QLkV2ZW50KFEuU0xJRCx7cmVsYXRlZFRhcmdldDpsLGRpcmVjdGlvbjpyLGZyb206YSx0bzpofSk7aWYoUCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhHKSl7UChsKS5hZGRDbGFzcyhpKSxDbi5yZWZsb3cobCksUChvKS5hZGRDbGFzcyhuKSxQKGwpLmFkZENsYXNzKG4pO3ZhciBmPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KG8pO1Aobykub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7UChsKS5yZW1vdmVDbGFzcyhuK1wiIFwiK2kpLmFkZENsYXNzKFkpLFAobykucmVtb3ZlQ2xhc3MoWStcIiBcIitpK1wiIFwiK24pLHMuX2lzU2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIFAocy5fZWxlbWVudCkudHJpZ2dlcih1KX0sMCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChmKX1lbHNlIFAobykucmVtb3ZlQ2xhc3MoWSksUChsKS5hZGRDbGFzcyhZKSx0aGlzLl9pc1NsaWRpbmc9ITEsUCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKHUpO2MmJnRoaXMuY3ljbGUoKX19LHMuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9UCh0aGlzKS5kYXRhKGopLGU9aCh7fSxNLFAodGhpcykuZGF0YSgpKTtcIm9iamVjdFwiPT10eXBlb2YgaSYmKGU9aCh7fSxlLGkpKTt2YXIgbj1cInN0cmluZ1wiPT10eXBlb2YgaT9pOmUuc2xpZGU7aWYodHx8KHQ9bmV3IHModGhpcyxlKSxQKHRoaXMpLmRhdGEoaix0KSksXCJudW1iZXJcIj09dHlwZW9mIGkpdC50byhpKTtlbHNlIGlmKFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfWVsc2UgZS5pbnRlcnZhbCYmKHQucGF1c2UoKSx0LmN5Y2xlKCkpfSl9LHMuX2RhdGFBcGlDbGlja0hhbmRsZXI9ZnVuY3Rpb24odCl7dmFyIGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTtpZihlKXt2YXIgbj1QKGUpWzBdO2lmKG4mJlAobikuaGFzQ2xhc3MoQikpe3ZhciBpPWgoe30sUChuKS5kYXRhKCksUCh0aGlzKS5kYXRhKCkpLHI9dGhpcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXNsaWRlLXRvXCIpO3ImJihpLmludGVydmFsPSExKSxzLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChQKG4pLGkpLHImJlAobikuZGF0YShqKS50byhyKSx0LnByZXZlbnREZWZhdWx0KCl9fX0sbyhzLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTX19XSksc30oKSxQKGRvY3VtZW50KS5vbihRLkNMSUNLX0RBVEFfQVBJLFouREFUQV9TTElERSwkLl9kYXRhQXBpQ2xpY2tIYW5kbGVyKSxQKHdpbmRvdykub24oUS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7UChaLkRBVEFfUklERSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PVAodGhpcyk7JC5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodCx0LmRhdGEoKSl9KX0pLFAuZm5bTF09JC5falF1ZXJ5SW50ZXJmYWNlLFAuZm5bTF0uQ29uc3RydWN0b3I9JCxQLmZuW0xdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gUC5mbltMXT1XLCQuX2pRdWVyeUludGVyZmFjZX0sJCksYm49KGV0PVwiY29sbGFwc2VcIixpdD1cIi5cIisobnQ9XCJicy5jb2xsYXBzZVwiKSxydD0odHQ9ZSkuZm5bZXRdLHN0PXt0b2dnbGU6ITAscGFyZW50OlwiXCJ9LG90PXt0b2dnbGU6XCJib29sZWFuXCIscGFyZW50OlwiKHN0cmluZ3xlbGVtZW50KVwifSxhdD17U0hPVzpcInNob3dcIitpdCxTSE9XTjpcInNob3duXCIraXQsSElERTpcImhpZGVcIitpdCxISURERU46XCJoaWRkZW5cIitpdCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIraXQrXCIuZGF0YS1hcGlcIn0sbHQ9XCJzaG93XCIsaHQ9XCJjb2xsYXBzZVwiLGN0PVwiY29sbGFwc2luZ1wiLHV0PVwiY29sbGFwc2VkXCIsZnQ9XCJ3aWR0aFwiLGR0PVwiaGVpZ2h0XCIsX3Q9e0FDVElWRVM6XCIuc2hvdywgLmNvbGxhcHNpbmdcIixEQVRBX1RPR0dMRTonW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0nfSxndD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEodCxlKXt0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITEsdGhpcy5fZWxlbWVudD10LHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fdHJpZ2dlckFycmF5PXR0Lm1ha2VBcnJheSh0dCgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnK3QuaWQrJ1wiXSxbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXRhcmdldD1cIiMnK3QuaWQrJ1wiXScpKTtmb3IodmFyIG49dHQoX3QuREFUQV9UT0dHTEUpLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIHI9bltpXSxzPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQocik7bnVsbCE9PXMmJjA8dHQocykuZmlsdGVyKHQpLmxlbmd0aCYmKHRoaXMuX3NlbGVjdG9yPXMsdGhpcy5fdHJpZ2dlckFycmF5LnB1c2gocikpfXRoaXMuX3BhcmVudD10aGlzLl9jb25maWcucGFyZW50P3RoaXMuX2dldFBhcmVudCgpOm51bGwsdGhpcy5fY29uZmlnLnBhcmVudHx8dGhpcy5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuX2VsZW1lbnQsdGhpcy5fdHJpZ2dlckFycmF5KSx0aGlzLl9jb25maWcudG9nZ2xlJiZ0aGlzLnRvZ2dsZSgpfXZhciB0PWEucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbigpe3R0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KT90aGlzLmhpZGUoKTp0aGlzLnNob3coKX0sdC5zaG93PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPXRoaXM7aWYoIXRoaXMuX2lzVHJhbnNpdGlvbmluZyYmIXR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KSYmKHRoaXMuX3BhcmVudCYmMD09PSh0PXR0Lm1ha2VBcnJheSh0dCh0aGlzLl9wYXJlbnQpLmZpbmQoX3QuQUNUSVZFUykuZmlsdGVyKCdbZGF0YS1wYXJlbnQ9XCInK3RoaXMuX2NvbmZpZy5wYXJlbnQrJ1wiXScpKSkubGVuZ3RoJiYodD1udWxsKSwhKHQmJihlPXR0KHQpLm5vdCh0aGlzLl9zZWxlY3RvcikuZGF0YShudCkpJiZlLl9pc1RyYW5zaXRpb25pbmcpKSl7dmFyIGk9dHQuRXZlbnQoYXQuU0hPVyk7aWYodHQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dCYmKGEuX2pRdWVyeUludGVyZmFjZS5jYWxsKHR0KHQpLm5vdCh0aGlzLl9zZWxlY3RvciksXCJoaWRlXCIpLGV8fHR0KHQpLmRhdGEobnQsbnVsbCkpO3ZhciByPXRoaXMuX2dldERpbWVuc2lvbigpO3R0KHRoaXMuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGh0KS5hZGRDbGFzcyhjdCksKHRoaXMuX2VsZW1lbnQuc3R5bGVbcl09MCk8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aCYmdHQodGhpcy5fdHJpZ2dlckFycmF5KS5yZW1vdmVDbGFzcyh1dCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMCksdGhpcy5zZXRUcmFuc2l0aW9uaW5nKCEwKTt2YXIgcz1cInNjcm9sbFwiKyhyWzBdLnRvVXBwZXJDYXNlKCkrci5zbGljZSgxKSksbz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTt0dCh0aGlzLl9lbGVtZW50KS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXt0dChuLl9lbGVtZW50KS5yZW1vdmVDbGFzcyhjdCkuYWRkQ2xhc3MoaHQpLmFkZENsYXNzKGx0KSxuLl9lbGVtZW50LnN0eWxlW3JdPVwiXCIsbi5zZXRUcmFuc2l0aW9uaW5nKCExKSx0dChuLl9lbGVtZW50KS50cmlnZ2VyKGF0LlNIT1dOKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKG8pLHRoaXMuX2VsZW1lbnQuc3R5bGVbcl09dGhpcy5fZWxlbWVudFtzXStcInB4XCJ9fX0sdC5oaWRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiZ0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhsdCkpe3ZhciBlPXR0LkV2ZW50KGF0LkhJREUpO2lmKHR0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoZSksIWUuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBuPXRoaXMuX2dldERpbWVuc2lvbigpO2lmKHRoaXMuX2VsZW1lbnQuc3R5bGVbbl09dGhpcy5fZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtuXStcInB4XCIsQ24ucmVmbG93KHRoaXMuX2VsZW1lbnQpLHR0KHRoaXMuX2VsZW1lbnQpLmFkZENsYXNzKGN0KS5yZW1vdmVDbGFzcyhodCkucmVtb3ZlQ2xhc3MobHQpLDA8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aClmb3IodmFyIGk9MDtpPHRoaXMuX3RyaWdnZXJBcnJheS5sZW5ndGg7aSsrKXt2YXIgcj10aGlzLl90cmlnZ2VyQXJyYXlbaV0scz1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHIpO2lmKG51bGwhPT1zKXR0KHMpLmhhc0NsYXNzKGx0KXx8dHQocikuYWRkQ2xhc3ModXQpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITEpfXRoaXMuc2V0VHJhbnNpdGlvbmluZyghMCk7dGhpcy5fZWxlbWVudC5zdHlsZVtuXT1cIlwiO3ZhciBvPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3R0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe3Quc2V0VHJhbnNpdGlvbmluZyghMSksdHQodC5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoY3QpLmFkZENsYXNzKGh0KS50cmlnZ2VyKGF0LkhJRERFTil9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChvKX19fSx0LnNldFRyYW5zaXRpb25pbmc9ZnVuY3Rpb24odCl7dGhpcy5faXNUcmFuc2l0aW9uaW5nPXR9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3R0LnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxudCksdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fcGFyZW50PW51bGwsdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX3RyaWdnZXJBcnJheT1udWxsLHRoaXMuX2lzVHJhbnNpdGlvbmluZz1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9aCh7fSxzdCx0KSkudG9nZ2xlPUJvb2xlYW4odC50b2dnbGUpLENuLnR5cGVDaGVja0NvbmZpZyhldCx0LG90KSx0fSx0Ll9nZXREaW1lbnNpb249ZnVuY3Rpb24oKXtyZXR1cm4gdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoZnQpP2Z0OmR0fSx0Ll9nZXRQYXJlbnQ9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHQ9bnVsbDtDbi5pc0VsZW1lbnQodGhpcy5fY29uZmlnLnBhcmVudCk/KHQ9dGhpcy5fY29uZmlnLnBhcmVudCxcInVuZGVmaW5lZFwiIT10eXBlb2YgdGhpcy5fY29uZmlnLnBhcmVudC5qcXVlcnkmJih0PXRoaXMuX2NvbmZpZy5wYXJlbnRbMF0pKTp0PXR0KHRoaXMuX2NvbmZpZy5wYXJlbnQpWzBdO3ZhciBlPSdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXBhcmVudD1cIicrdGhpcy5fY29uZmlnLnBhcmVudCsnXCJdJztyZXR1cm4gdHQodCkuZmluZChlKS5lYWNoKGZ1bmN0aW9uKHQsZSl7bi5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGEuX2dldFRhcmdldEZyb21FbGVtZW50KGUpLFtlXSl9KSx0fSx0Ll9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3M9ZnVuY3Rpb24odCxlKXtpZih0KXt2YXIgbj10dCh0KS5oYXNDbGFzcyhsdCk7MDxlLmxlbmd0aCYmdHQoZSkudG9nZ2xlQ2xhc3ModXQsIW4pLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsbil9fSxhLl9nZXRUYXJnZXRGcm9tRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO3JldHVybiBlP3R0KGUpWzBdOm51bGx9LGEuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dHQodGhpcyksZT10LmRhdGEobnQpLG49aCh7fSxzdCx0LmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgaSYmaSk7aWYoIWUmJm4udG9nZ2xlJiYvc2hvd3xoaWRlLy50ZXN0KGkpJiYobi50b2dnbGU9ITEpLGV8fChlPW5ldyBhKHRoaXMsbiksdC5kYXRhKG50LGUpKSxcInN0cmluZ1wiPT10eXBlb2YgaSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGVbaV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytpKydcIicpO2VbaV0oKX19KX0sbyhhLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc3R9fV0pLGF9KCksdHQoZG9jdW1lbnQpLm9uKGF0LkNMSUNLX0RBVEFfQVBJLF90LkRBVEFfVE9HR0xFLGZ1bmN0aW9uKHQpe1wiQVwiPT09dC5jdXJyZW50VGFyZ2V0LnRhZ05hbWUmJnQucHJldmVudERlZmF1bHQoKTt2YXIgbj10dCh0aGlzKSxlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodGhpcyk7dHQoZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PXR0KHRoaXMpLGU9dC5kYXRhKG50KT9cInRvZ2dsZVwiOm4uZGF0YSgpO2d0Ll9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0LGUpfSl9KSx0dC5mbltldF09Z3QuX2pRdWVyeUludGVyZmFjZSx0dC5mbltldF0uQ29uc3RydWN0b3I9Z3QsdHQuZm5bZXRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdHQuZm5bZXRdPXJ0LGd0Ll9qUXVlcnlJbnRlcmZhY2V9LGd0KSxTbj0ocHQ9XCJkcm9wZG93blwiLEV0PVwiLlwiKyh2dD1cImJzLmRyb3Bkb3duXCIpLHl0PVwiLmRhdGEtYXBpXCIsVHQ9KG10PWUpLmZuW3B0XSxDdD1uZXcgUmVnRXhwKFwiMzh8NDB8MjdcIiksSXQ9e0hJREU6XCJoaWRlXCIrRXQsSElEREVOOlwiaGlkZGVuXCIrRXQsU0hPVzpcInNob3dcIitFdCxTSE9XTjpcInNob3duXCIrRXQsQ0xJQ0s6XCJjbGlja1wiK0V0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitFdCt5dCxLRVlET1dOX0RBVEFfQVBJOlwia2V5ZG93blwiK0V0K3l0LEtFWVVQX0RBVEFfQVBJOlwia2V5dXBcIitFdCt5dH0sQXQ9XCJkaXNhYmxlZFwiLER0PVwic2hvd1wiLGJ0PVwiZHJvcHVwXCIsU3Q9XCJkcm9wcmlnaHRcIix3dD1cImRyb3BsZWZ0XCIsTnQ9XCJkcm9wZG93bi1tZW51LXJpZ2h0XCIsT3Q9XCJwb3NpdGlvbi1zdGF0aWNcIixrdD0nW2RhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIl0nLFB0PVwiLmRyb3Bkb3duIGZvcm1cIixMdD1cIi5kcm9wZG93bi1tZW51XCIsanQ9XCIubmF2YmFyLW5hdlwiLFJ0PVwiLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06bm90KC5kaXNhYmxlZCk6bm90KDpkaXNhYmxlZClcIixIdD1cInRvcC1zdGFydFwiLFd0PVwidG9wLWVuZFwiLE10PVwiYm90dG9tLXN0YXJ0XCIseHQ9XCJib3R0b20tZW5kXCIsVXQ9XCJyaWdodC1zdGFydFwiLEt0PVwibGVmdC1zdGFydFwiLEZ0PXtvZmZzZXQ6MCxmbGlwOiEwLGJvdW5kYXJ5Olwic2Nyb2xsUGFyZW50XCIscmVmZXJlbmNlOlwidG9nZ2xlXCIsZGlzcGxheTpcImR5bmFtaWNcIn0sVnQ9e29mZnNldDpcIihudW1iZXJ8c3RyaW5nfGZ1bmN0aW9uKVwiLGZsaXA6XCJib29sZWFuXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCIscmVmZXJlbmNlOlwiKHN0cmluZ3xlbGVtZW50KVwiLGRpc3BsYXk6XCJzdHJpbmdcIn0sUXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsKHQsZSl7dGhpcy5fZWxlbWVudD10LHRoaXMuX3BvcHBlcj1udWxsLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fbWVudT10aGlzLl9nZXRNZW51RWxlbWVudCgpLHRoaXMuX2luTmF2YmFyPXRoaXMuX2RldGVjdE5hdmJhcigpLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCl9dmFyIHQ9bC5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2VsZW1lbnQuZGlzYWJsZWQmJiFtdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhBdCkpe3ZhciB0PWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpLGU9bXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoRHQpO2lmKGwuX2NsZWFyTWVudXMoKSwhZSl7dmFyIG49e3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0saT1tdC5FdmVudChJdC5TSE9XLG4pO2lmKG10KHQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKCF0aGlzLl9pbk5hdmJhcil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGMpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCBkcm9wZG93biByZXF1aXJlIFBvcHBlci5qcyAoaHR0cHM6Ly9wb3BwZXIuanMub3JnKVwiKTt2YXIgcj10aGlzLl9lbGVtZW50O1wicGFyZW50XCI9PT10aGlzLl9jb25maWcucmVmZXJlbmNlP3I9dDpDbi5pc0VsZW1lbnQodGhpcy5fY29uZmlnLnJlZmVyZW5jZSkmJihyPXRoaXMuX2NvbmZpZy5yZWZlcmVuY2UsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UuanF1ZXJ5JiYocj10aGlzLl9jb25maWcucmVmZXJlbmNlWzBdKSksXCJzY3JvbGxQYXJlbnRcIiE9PXRoaXMuX2NvbmZpZy5ib3VuZGFyeSYmbXQodCkuYWRkQ2xhc3MoT3QpLHRoaXMuX3BvcHBlcj1uZXcgYyhyLHRoaXMuX21lbnUsdGhpcy5fZ2V0UG9wcGVyQ29uZmlnKCkpfVwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJjA9PT1tdCh0KS5jbG9zZXN0KGp0KS5sZW5ndGgmJm10KGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub24oXCJtb3VzZW92ZXJcIixudWxsLG10Lm5vb3ApLHRoaXMuX2VsZW1lbnQuZm9jdXMoKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwhMCksbXQodGhpcy5fbWVudSkudG9nZ2xlQ2xhc3MoRHQpLG10KHQpLnRvZ2dsZUNsYXNzKER0KS50cmlnZ2VyKG10LkV2ZW50KEl0LlNIT1dOLG4pKX19fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7bXQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHZ0KSxtdCh0aGlzLl9lbGVtZW50KS5vZmYoRXQpLHRoaXMuX2VsZW1lbnQ9bnVsbCwodGhpcy5fbWVudT1udWxsKSE9PXRoaXMuX3BvcHBlciYmKHRoaXMuX3BvcHBlci5kZXN0cm95KCksdGhpcy5fcG9wcGVyPW51bGwpfSx0LnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2luTmF2YmFyPXRoaXMuX2RldGVjdE5hdmJhcigpLG51bGwhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5zY2hlZHVsZVVwZGF0ZSgpfSx0Ll9hZGRFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7bXQodGhpcy5fZWxlbWVudCkub24oSXQuQ0xJQ0ssZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksZS50b2dnbGUoKX0pfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsbXQodGhpcy5fZWxlbWVudCkuZGF0YSgpLHQpLENuLnR5cGVDaGVja0NvbmZpZyhwdCx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX2dldE1lbnVFbGVtZW50PWZ1bmN0aW9uKCl7aWYoIXRoaXMuX21lbnUpe3ZhciB0PWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3RoaXMuX21lbnU9bXQodCkuZmluZChMdClbMF19cmV0dXJuIHRoaXMuX21lbnV9LHQuX2dldFBsYWNlbWVudD1mdW5jdGlvbigpe3ZhciB0PW10KHRoaXMuX2VsZW1lbnQpLnBhcmVudCgpLGU9TXQ7cmV0dXJuIHQuaGFzQ2xhc3MoYnQpPyhlPUh0LG10KHRoaXMuX21lbnUpLmhhc0NsYXNzKE50KSYmKGU9V3QpKTp0Lmhhc0NsYXNzKFN0KT9lPVV0OnQuaGFzQ2xhc3Mod3QpP2U9S3Q6bXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoTnQpJiYoZT14dCksZX0sdC5fZGV0ZWN0TmF2YmFyPWZ1bmN0aW9uKCl7cmV0dXJuIDA8bXQodGhpcy5fZWxlbWVudCkuY2xvc2VzdChcIi5uYXZiYXJcIikubGVuZ3RofSx0Ll9nZXRQb3BwZXJDb25maWc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9e307XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5fY29uZmlnLm9mZnNldD90LmZuPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZnNldHM9aCh7fSx0Lm9mZnNldHMsZS5fY29uZmlnLm9mZnNldCh0Lm9mZnNldHMpfHx7fSksdH06dC5vZmZzZXQ9dGhpcy5fY29uZmlnLm9mZnNldDt2YXIgbj17cGxhY2VtZW50OnRoaXMuX2dldFBsYWNlbWVudCgpLG1vZGlmaWVyczp7b2Zmc2V0OnQsZmxpcDp7ZW5hYmxlZDp0aGlzLl9jb25maWcuZmxpcH0scHJldmVudE92ZXJmbG93Ontib3VuZGFyaWVzRWxlbWVudDp0aGlzLl9jb25maWcuYm91bmRhcnl9fX07cmV0dXJuXCJzdGF0aWNcIj09PXRoaXMuX2NvbmZpZy5kaXNwbGF5JiYobi5tb2RpZmllcnMuYXBwbHlTdHlsZT17ZW5hYmxlZDohMX0pLG59LGwuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bXQodGhpcykuZGF0YSh2dCk7aWYodHx8KHQ9bmV3IGwodGhpcyxcIm9iamVjdFwiPT10eXBlb2YgZT9lOm51bGwpLG10KHRoaXMpLmRhdGEodnQsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2UrJ1wiJyk7dFtlXSgpfX0pfSxsLl9jbGVhck1lbnVzPWZ1bmN0aW9uKHQpe2lmKCF0fHwzIT09dC53aGljaCYmKFwia2V5dXBcIiE9PXQudHlwZXx8OT09PXQud2hpY2gpKWZvcih2YXIgZT1tdC5tYWtlQXJyYXkobXQoa3QpKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWwuX2dldFBhcmVudEZyb21FbGVtZW50KGVbbl0pLHI9bXQoZVtuXSkuZGF0YSh2dCkscz17cmVsYXRlZFRhcmdldDplW25dfTtpZihyKXt2YXIgbz1yLl9tZW51O2lmKG10KGkpLmhhc0NsYXNzKER0KSYmISh0JiYoXCJjbGlja1wiPT09dC50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpfHxcImtleXVwXCI9PT10LnR5cGUmJjk9PT10LndoaWNoKSYmbXQuY29udGFpbnMoaSx0LnRhcmdldCkpKXt2YXIgYT1tdC5FdmVudChJdC5ISURFLHMpO210KGkpLnRyaWdnZXIoYSksYS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJm10KGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub2ZmKFwibW91c2VvdmVyXCIsbnVsbCxtdC5ub29wKSxlW25dLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIixcImZhbHNlXCIpLG10KG8pLnJlbW92ZUNsYXNzKER0KSxtdChpKS5yZW1vdmVDbGFzcyhEdCkudHJpZ2dlcihtdC5FdmVudChJdC5ISURERU4scykpKX19fX0sbC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGUsbj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO3JldHVybiBuJiYoZT1tdChuKVswXSksZXx8dC5wYXJlbnROb2RlfSxsLl9kYXRhQXBpS2V5ZG93bkhhbmRsZXI9ZnVuY3Rpb24odCl7aWYoKC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSk/ISgzMj09PXQud2hpY2h8fDI3IT09dC53aGljaCYmKDQwIT09dC53aGljaCYmMzghPT10LndoaWNofHxtdCh0LnRhcmdldCkuY2xvc2VzdChMdCkubGVuZ3RoKSk6Q3QudGVzdCh0LndoaWNoKSkmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCYmIW10KHRoaXMpLmhhc0NsYXNzKEF0KSkpe3ZhciBlPWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMpLG49bXQoZSkuaGFzQ2xhc3MoRHQpO2lmKChufHwyNz09PXQud2hpY2gmJjMyPT09dC53aGljaCkmJighbnx8MjchPT10LndoaWNoJiYzMiE9PXQud2hpY2gpKXt2YXIgaT1tdChlKS5maW5kKFJ0KS5nZXQoKTtpZigwIT09aS5sZW5ndGgpe3ZhciByPWkuaW5kZXhPZih0LnRhcmdldCk7Mzg9PT10LndoaWNoJiYwPHImJnItLSw0MD09PXQud2hpY2gmJnI8aS5sZW5ndGgtMSYmcisrLHI8MCYmKHI9MCksaVtyXS5mb2N1cygpfX1lbHNle2lmKDI3PT09dC53aGljaCl7dmFyIHM9bXQoZSkuZmluZChrdClbMF07bXQocykudHJpZ2dlcihcImZvY3VzXCIpfW10KHRoaXMpLnRyaWdnZXIoXCJjbGlja1wiKX19fSxvKGwsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBGdH19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBWdH19XSksbH0oKSxtdChkb2N1bWVudCkub24oSXQuS0VZRE9XTl9EQVRBX0FQSSxrdCxRdC5fZGF0YUFwaUtleWRvd25IYW5kbGVyKS5vbihJdC5LRVlET1dOX0RBVEFfQVBJLEx0LFF0Ll9kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLm9uKEl0LkNMSUNLX0RBVEFfQVBJK1wiIFwiK0l0LktFWVVQX0RBVEFfQVBJLFF0Ll9jbGVhck1lbnVzKS5vbihJdC5DTElDS19EQVRBX0FQSSxrdCxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxRdC5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobXQodGhpcyksXCJ0b2dnbGVcIil9KS5vbihJdC5DTElDS19EQVRBX0FQSSxQdCxmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfSksbXQuZm5bcHRdPVF0Ll9qUXVlcnlJbnRlcmZhY2UsbXQuZm5bcHRdLkNvbnN0cnVjdG9yPVF0LG10LmZuW3B0XS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG10LmZuW3B0XT1UdCxRdC5falF1ZXJ5SW50ZXJmYWNlfSxRdCksd249KFl0PVwibW9kYWxcIixxdD1cIi5cIisoR3Q9XCJicy5tb2RhbFwiKSx6dD0oQnQ9ZSkuZm5bWXRdLFh0PXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxmb2N1czohMCxzaG93OiEwfSxKdD17YmFja2Ryb3A6XCIoYm9vbGVhbnxzdHJpbmcpXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIsZm9jdXM6XCJib29sZWFuXCIsc2hvdzpcImJvb2xlYW5cIn0sWnQ9e0hJREU6XCJoaWRlXCIrcXQsSElEREVOOlwiaGlkZGVuXCIrcXQsU0hPVzpcInNob3dcIitxdCxTSE9XTjpcInNob3duXCIrcXQsRk9DVVNJTjpcImZvY3VzaW5cIitxdCxSRVNJWkU6XCJyZXNpemVcIitxdCxDTElDS19ESVNNSVNTOlwiY2xpY2suZGlzbWlzc1wiK3F0LEtFWURPV05fRElTTUlTUzpcImtleWRvd24uZGlzbWlzc1wiK3F0LE1PVVNFVVBfRElTTUlTUzpcIm1vdXNldXAuZGlzbWlzc1wiK3F0LE1PVVNFRE9XTl9ESVNNSVNTOlwibW91c2Vkb3duLmRpc21pc3NcIitxdCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrcXQrXCIuZGF0YS1hcGlcIn0sJHQ9XCJtb2RhbC1zY3JvbGxiYXItbWVhc3VyZVwiLHRlPVwibW9kYWwtYmFja2Ryb3BcIixlZT1cIm1vZGFsLW9wZW5cIixuZT1cImZhZGVcIixpZT1cInNob3dcIixyZT17RElBTE9HOlwiLm1vZGFsLWRpYWxvZ1wiLERBVEFfVE9HR0xFOidbZGF0YS10b2dnbGU9XCJtb2RhbFwiXScsREFUQV9ESVNNSVNTOidbZGF0YS1kaXNtaXNzPVwibW9kYWxcIl0nLEZJWEVEX0NPTlRFTlQ6XCIuZml4ZWQtdG9wLCAuZml4ZWQtYm90dG9tLCAuaXMtZml4ZWQsIC5zdGlja3ktdG9wXCIsU1RJQ0tZX0NPTlRFTlQ6XCIuc3RpY2t5LXRvcFwiLE5BVkJBUl9UT0dHTEVSOlwiLm5hdmJhci10b2dnbGVyXCJ9LHNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LGUpe3RoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fZWxlbWVudD10LHRoaXMuX2RpYWxvZz1CdCh0KS5maW5kKHJlLkRJQUxPRylbMF0sdGhpcy5fYmFja2Ryb3A9bnVsbCx0aGlzLl9pc1Nob3duPSExLHRoaXMuX2lzQm9keU92ZXJmbG93aW5nPSExLHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITEsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9MH12YXIgdD1yLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2lzU2hvd24/dGhpcy5oaWRlKCk6dGhpcy5zaG93KHQpfSx0LnNob3c9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYhdGhpcy5faXNTaG93bil7QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpJiYodGhpcy5faXNUcmFuc2l0aW9uaW5nPSEwKTt2YXIgbj1CdC5FdmVudChadC5TSE9XLHtyZWxhdGVkVGFyZ2V0OnR9KTtCdCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKG4pLHRoaXMuX2lzU2hvd258fG4uaXNEZWZhdWx0UHJldmVudGVkKCl8fCh0aGlzLl9pc1Nob3duPSEwLHRoaXMuX2NoZWNrU2Nyb2xsYmFyKCksdGhpcy5fc2V0U2Nyb2xsYmFyKCksdGhpcy5fYWRqdXN0RGlhbG9nKCksQnQoZG9jdW1lbnQuYm9keSkuYWRkQ2xhc3MoZWUpLHRoaXMuX3NldEVzY2FwZUV2ZW50KCksdGhpcy5fc2V0UmVzaXplRXZlbnQoKSxCdCh0aGlzLl9lbGVtZW50KS5vbihadC5DTElDS19ESVNNSVNTLHJlLkRBVEFfRElTTUlTUyxmdW5jdGlvbih0KXtyZXR1cm4gZS5oaWRlKHQpfSksQnQodGhpcy5fZGlhbG9nKS5vbihadC5NT1VTRURPV05fRElTTUlTUyxmdW5jdGlvbigpe0J0KGUuX2VsZW1lbnQpLm9uZShadC5NT1VTRVVQX0RJU01JU1MsZnVuY3Rpb24odCl7QnQodC50YXJnZXQpLmlzKGUuX2VsZW1lbnQpJiYoZS5faWdub3JlQmFja2Ryb3BDbGljaz0hMCl9KX0pLHRoaXMuX3Nob3dCYWNrZHJvcChmdW5jdGlvbigpe3JldHVybiBlLl9zaG93RWxlbWVudCh0KX0pKX19LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHQmJnQucHJldmVudERlZmF1bHQoKSwhdGhpcy5faXNUcmFuc2l0aW9uaW5nJiZ0aGlzLl9pc1Nob3duKXt2YXIgbj1CdC5FdmVudChadC5ISURFKTtpZihCdCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKG4pLHRoaXMuX2lzU2hvd24mJiFuLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt0aGlzLl9pc1Nob3duPSExO3ZhciBpPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKTtpZihpJiYodGhpcy5faXNUcmFuc2l0aW9uaW5nPSEwKSx0aGlzLl9zZXRFc2NhcGVFdmVudCgpLHRoaXMuX3NldFJlc2l6ZUV2ZW50KCksQnQoZG9jdW1lbnQpLm9mZihadC5GT0NVU0lOKSxCdCh0aGlzLl9lbGVtZW50KS5yZW1vdmVDbGFzcyhpZSksQnQodGhpcy5fZWxlbWVudCkub2ZmKFp0LkNMSUNLX0RJU01JU1MpLEJ0KHRoaXMuX2RpYWxvZykub2ZmKFp0Lk1PVVNFRE9XTl9ESVNNSVNTKSxpKXt2YXIgcj1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtCdCh0aGlzLl9lbGVtZW50KS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24odCl7cmV0dXJuIGUuX2hpZGVNb2RhbCh0KX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHIpfWVsc2UgdGhpcy5faGlkZU1vZGFsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7QnQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEd0KSxCdCh3aW5kb3csZG9jdW1lbnQsdGhpcy5fZWxlbWVudCx0aGlzLl9iYWNrZHJvcCkub2ZmKHF0KSx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fZGlhbG9nPW51bGwsdGhpcy5fYmFja2Ryb3A9bnVsbCx0aGlzLl9pc1Nob3duPW51bGwsdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9bnVsbCx0aGlzLl9pZ25vcmVCYWNrZHJvcENsaWNrPW51bGwsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9bnVsbH0sdC5oYW5kbGVVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl9hZGp1c3REaWFsb2coKX0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiB0PWgoe30sWHQsdCksQ24udHlwZUNoZWNrQ29uZmlnKFl0LHQsSnQpLHR9LHQuX3Nob3dFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk7dGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERXx8ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHRoaXMuX2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiksdGhpcy5fZWxlbWVudC5zY3JvbGxUb3A9MCxuJiZDbi5yZWZsb3codGhpcy5fZWxlbWVudCksQnQodGhpcy5fZWxlbWVudCkuYWRkQ2xhc3MoaWUpLHRoaXMuX2NvbmZpZy5mb2N1cyYmdGhpcy5fZW5mb3JjZUZvY3VzKCk7dmFyIGk9QnQuRXZlbnQoWnQuU0hPV04se3JlbGF0ZWRUYXJnZXQ6dH0pLHI9ZnVuY3Rpb24oKXtlLl9jb25maWcuZm9jdXMmJmUuX2VsZW1lbnQuZm9jdXMoKSxlLl9pc1RyYW5zaXRpb25pbmc9ITEsQnQoZS5fZWxlbWVudCkudHJpZ2dlcihpKX07aWYobil7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7QnQodGhpcy5fZGlhbG9nKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQscikuZW11bGF0ZVRyYW5zaXRpb25FbmQocyl9ZWxzZSByKCl9LHQuX2VuZm9yY2VGb2N1cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7QnQoZG9jdW1lbnQpLm9mZihadC5GT0NVU0lOKS5vbihadC5GT0NVU0lOLGZ1bmN0aW9uKHQpe2RvY3VtZW50IT09dC50YXJnZXQmJmUuX2VsZW1lbnQhPT10LnRhcmdldCYmMD09PUJ0KGUuX2VsZW1lbnQpLmhhcyh0LnRhcmdldCkubGVuZ3RoJiZlLl9lbGVtZW50LmZvY3VzKCl9KX0sdC5fc2V0RXNjYXBlRXZlbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2lzU2hvd24mJnRoaXMuX2NvbmZpZy5rZXlib2FyZD9CdCh0aGlzLl9lbGVtZW50KS5vbihadC5LRVlET1dOX0RJU01JU1MsZnVuY3Rpb24odCl7Mjc9PT10LndoaWNoJiYodC5wcmV2ZW50RGVmYXVsdCgpLGUuaGlkZSgpKX0pOnRoaXMuX2lzU2hvd258fEJ0KHRoaXMuX2VsZW1lbnQpLm9mZihadC5LRVlET1dOX0RJU01JU1MpfSx0Ll9zZXRSZXNpemVFdmVudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTaG93bj9CdCh3aW5kb3cpLm9uKFp0LlJFU0laRSxmdW5jdGlvbih0KXtyZXR1cm4gZS5oYW5kbGVVcGRhdGUodCl9KTpCdCh3aW5kb3cpLm9mZihadC5SRVNJWkUpfSx0Ll9oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT1cIm5vbmVcIix0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsITApLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9zaG93QmFja2Ryb3AoZnVuY3Rpb24oKXtCdChkb2N1bWVudC5ib2R5KS5yZW1vdmVDbGFzcyhlZSksdC5fcmVzZXRBZGp1c3RtZW50cygpLHQuX3Jlc2V0U2Nyb2xsYmFyKCksQnQodC5fZWxlbWVudCkudHJpZ2dlcihadC5ISURERU4pfSl9LHQuX3JlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy5fYmFja2Ryb3AmJihCdCh0aGlzLl9iYWNrZHJvcCkucmVtb3ZlKCksdGhpcy5fYmFja2Ryb3A9bnVsbCl9LHQuX3Nob3dCYWNrZHJvcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpP25lOlwiXCI7aWYodGhpcy5faXNTaG93biYmdGhpcy5fY29uZmlnLmJhY2tkcm9wKXtpZih0aGlzLl9iYWNrZHJvcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHRoaXMuX2JhY2tkcm9wLmNsYXNzTmFtZT10ZSxuJiZCdCh0aGlzLl9iYWNrZHJvcCkuYWRkQ2xhc3MobiksQnQodGhpcy5fYmFja2Ryb3ApLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLEJ0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LkNMSUNLX0RJU01JU1MsZnVuY3Rpb24odCl7ZS5faWdub3JlQmFja2Ryb3BDbGljaz9lLl9pZ25vcmVCYWNrZHJvcENsaWNrPSExOnQudGFyZ2V0PT09dC5jdXJyZW50VGFyZ2V0JiYoXCJzdGF0aWNcIj09PWUuX2NvbmZpZy5iYWNrZHJvcD9lLl9lbGVtZW50LmZvY3VzKCk6ZS5oaWRlKCkpfSksbiYmQ24ucmVmbG93KHRoaXMuX2JhY2tkcm9wKSxCdCh0aGlzLl9iYWNrZHJvcCkuYWRkQ2xhc3MoaWUpLCF0KXJldHVybjtpZighbilyZXR1cm4gdm9pZCB0KCk7dmFyIGk9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fYmFja2Ryb3ApO0J0KHRoaXMuX2JhY2tkcm9wKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsdCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoaSl9ZWxzZSBpZighdGhpcy5faXNTaG93biYmdGhpcy5fYmFja2Ryb3Ape0J0KHRoaXMuX2JhY2tkcm9wKS5yZW1vdmVDbGFzcyhpZSk7dmFyIHI9ZnVuY3Rpb24oKXtlLl9yZW1vdmVCYWNrZHJvcCgpLHQmJnQoKX07aWYoQnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9iYWNrZHJvcCk7QnQodGhpcy5fYmFja2Ryb3ApLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKX1lbHNlIHQmJnQoKX0sdC5fYWRqdXN0RGlhbG9nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZWxlbWVudC5zY3JvbGxIZWlnaHQ+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDshdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmcmJnQmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0PXRoaXMuX3Njcm9sbGJhcldpZHRoK1wicHhcIiksdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmcmJiF0JiYodGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQ9dGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX0sdC5fcmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9XCJcIix0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD1cIlwifSx0Ll9jaGVja1Njcm9sbGJhcj1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9dC5sZWZ0K3QucmlnaHQ8d2luZG93LmlubmVyV2lkdGgsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9dGhpcy5fZ2V0U2Nyb2xsYmFyV2lkdGgoKX0sdC5fc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztpZih0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyl7QnQocmUuRklYRURfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLnBhZGRpbmdSaWdodCxpPUJ0KGUpLmNzcyhcInBhZGRpbmctcmlnaHRcIik7QnQoZSkuZGF0YShcInBhZGRpbmctcmlnaHRcIixuKS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIscGFyc2VGbG9hdChpKStyLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSksQnQocmUuU1RJQ0tZX0NPTlRFTlQpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKVswXS5zdHlsZS5tYXJnaW5SaWdodCxpPUJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiKTtCdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIsbikuY3NzKFwibWFyZ2luLXJpZ2h0XCIscGFyc2VGbG9hdChpKS1yLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSksQnQocmUuTkFWQkFSX1RPR0dMRVIpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKVswXS5zdHlsZS5tYXJnaW5SaWdodCxpPUJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiKTtCdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIsbikuY3NzKFwibWFyZ2luLXJpZ2h0XCIscGFyc2VGbG9hdChpKStyLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSk7dmFyIHQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQsZT1CdChkb2N1bWVudC5ib2R5KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIpO0J0KGRvY3VtZW50LmJvZHkpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIsdCkuY3NzKFwicGFkZGluZy1yaWdodFwiLHBhcnNlRmxvYXQoZSkrdGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX19LHQuX3Jlc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7QnQocmUuRklYRURfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBuJiZCdChlKS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIsbikucmVtb3ZlRGF0YShcInBhZGRpbmctcmlnaHRcIil9KSxCdChyZS5TVElDS1lfQ09OVEVOVCtcIiwgXCIrcmUuTkFWQkFSX1RPR0dMRVIpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBuJiZCdChlKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixuKS5yZW1vdmVEYXRhKFwibWFyZ2luLXJpZ2h0XCIpfSk7dmFyIHQ9QnQoZG9jdW1lbnQuYm9keSkuZGF0YShcInBhZGRpbmctcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHQmJkJ0KGRvY3VtZW50LmJvZHkpLmNzcyhcInBhZGRpbmctcmlnaHRcIix0KS5yZW1vdmVEYXRhKFwicGFkZGluZy1yaWdodFwiKX0sdC5fZ2V0U2Nyb2xsYmFyV2lkdGg9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3QuY2xhc3NOYW1lPSR0LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aC10LmNsaWVudFdpZHRoO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpLGV9LHIuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuLGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1CdCh0aGlzKS5kYXRhKEd0KSxlPWgoe30sci5EZWZhdWx0LEJ0KHRoaXMpLmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgbiYmbik7aWYodHx8KHQ9bmV3IHIodGhpcyxlKSxCdCh0aGlzKS5kYXRhKEd0LHQpKSxcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oaSl9ZWxzZSBlLnNob3cmJnQuc2hvdyhpKX0pfSxvKHIsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBYdH19XSkscn0oKSxCdChkb2N1bWVudCkub24oWnQuQ0xJQ0tfREFUQV9BUEkscmUuREFUQV9UT0dHTEUsZnVuY3Rpb24odCl7dmFyIGUsbj10aGlzLGk9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTtpJiYoZT1CdChpKVswXSk7dmFyIHI9QnQoZSkuZGF0YShHdCk/XCJ0b2dnbGVcIjpoKHt9LEJ0KGUpLmRhdGEoKSxCdCh0aGlzKS5kYXRhKCkpO1wiQVwiIT09dGhpcy50YWdOYW1lJiZcIkFSRUFcIiE9PXRoaXMudGFnTmFtZXx8dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBzPUJ0KGUpLm9uZShadC5TSE9XLGZ1bmN0aW9uKHQpe3QuaXNEZWZhdWx0UHJldmVudGVkKCl8fHMub25lKFp0LkhJRERFTixmdW5jdGlvbigpe0J0KG4pLmlzKFwiOnZpc2libGVcIikmJm4uZm9jdXMoKX0pfSk7c2UuX2pRdWVyeUludGVyZmFjZS5jYWxsKEJ0KGUpLHIsdGhpcyl9KSxCdC5mbltZdF09c2UuX2pRdWVyeUludGVyZmFjZSxCdC5mbltZdF0uQ29uc3RydWN0b3I9c2UsQnQuZm5bWXRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gQnQuZm5bWXRdPXp0LHNlLl9qUXVlcnlJbnRlcmZhY2V9LHNlKSxObj0oYWU9XCJ0b29sdGlwXCIsaGU9XCIuXCIrKGxlPVwiYnMudG9vbHRpcFwiKSxjZT0ob2U9ZSkuZm5bYWVdLHVlPVwiYnMtdG9vbHRpcFwiLGZlPW5ldyBSZWdFeHAoXCIoXnxcXFxccylcIit1ZStcIlxcXFxTK1wiLFwiZ1wiKSxnZT17YW5pbWF0aW9uOiEwLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwidG9vbHRpcFwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj48L2Rpdj4nLHRyaWdnZXI6XCJob3ZlciBmb2N1c1wiLHRpdGxlOlwiXCIsZGVsYXk6MCxodG1sOiEoX2U9e0FVVE86XCJhdXRvXCIsVE9QOlwidG9wXCIsUklHSFQ6XCJyaWdodFwiLEJPVFRPTTpcImJvdHRvbVwiLExFRlQ6XCJsZWZ0XCJ9KSxzZWxlY3RvcjohKGRlPXthbmltYXRpb246XCJib29sZWFuXCIsdGVtcGxhdGU6XCJzdHJpbmdcIix0aXRsZTpcIihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbilcIix0cmlnZ2VyOlwic3RyaW5nXCIsZGVsYXk6XCIobnVtYmVyfG9iamVjdClcIixodG1sOlwiYm9vbGVhblwiLHNlbGVjdG9yOlwiKHN0cmluZ3xib29sZWFuKVwiLHBsYWNlbWVudDpcIihzdHJpbmd8ZnVuY3Rpb24pXCIsb2Zmc2V0OlwiKG51bWJlcnxzdHJpbmcpXCIsY29udGFpbmVyOlwiKHN0cmluZ3xlbGVtZW50fGJvb2xlYW4pXCIsZmFsbGJhY2tQbGFjZW1lbnQ6XCIoc3RyaW5nfGFycmF5KVwiLGJvdW5kYXJ5OlwiKHN0cmluZ3xlbGVtZW50KVwifSkscGxhY2VtZW50OlwidG9wXCIsb2Zmc2V0OjAsY29udGFpbmVyOiExLGZhbGxiYWNrUGxhY2VtZW50OlwiZmxpcFwiLGJvdW5kYXJ5Olwic2Nyb2xsUGFyZW50XCJ9LHBlPVwib3V0XCIsdmU9e0hJREU6XCJoaWRlXCIraGUsSElEREVOOlwiaGlkZGVuXCIraGUsU0hPVzoobWU9XCJzaG93XCIpK2hlLFNIT1dOOlwic2hvd25cIitoZSxJTlNFUlRFRDpcImluc2VydGVkXCIraGUsQ0xJQ0s6XCJjbGlja1wiK2hlLEZPQ1VTSU46XCJmb2N1c2luXCIraGUsRk9DVVNPVVQ6XCJmb2N1c291dFwiK2hlLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIraGUsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitoZX0sRWU9XCJmYWRlXCIseWU9XCJzaG93XCIsVGU9XCIudG9vbHRpcC1pbm5lclwiLENlPVwiLmFycm93XCIsSWU9XCJob3ZlclwiLEFlPVwiZm9jdXNcIixEZT1cImNsaWNrXCIsYmU9XCJtYW51YWxcIixTZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCxlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwIHRvb2x0aXBzIHJlcXVpcmUgUG9wcGVyLmpzIChodHRwczovL3BvcHBlci5qcy5vcmcpXCIpO3RoaXMuX2lzRW5hYmxlZD0hMCx0aGlzLl90aW1lb3V0PTAsdGhpcy5faG92ZXJTdGF0ZT1cIlwiLHRoaXMuX2FjdGl2ZVRyaWdnZXI9e30sdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5lbGVtZW50PXQsdGhpcy5jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMudGlwPW51bGwsdGhpcy5fc2V0TGlzdGVuZXJzKCl9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSEwfSx0LmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9ITF9LHQudG9nZ2xlRW5hYmxlZD1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hdGhpcy5faXNFbmFibGVkfSx0LnRvZ2dsZT1mdW5jdGlvbih0KXtpZih0aGlzLl9pc0VuYWJsZWQpaWYodCl7dmFyIGU9dGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSxuPW9lKHQuY3VycmVudFRhcmdldCkuZGF0YShlKTtufHwobj1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSksb2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKGUsbikpLG4uX2FjdGl2ZVRyaWdnZXIuY2xpY2s9IW4uX2FjdGl2ZVRyaWdnZXIuY2xpY2ssbi5faXNXaXRoQWN0aXZlVHJpZ2dlcigpP24uX2VudGVyKG51bGwsbik6bi5fbGVhdmUobnVsbCxuKX1lbHNle2lmKG9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5oYXNDbGFzcyh5ZSkpcmV0dXJuIHZvaWQgdGhpcy5fbGVhdmUobnVsbCx0aGlzKTt0aGlzLl9lbnRlcihudWxsLHRoaXMpfX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLG9lLnJlbW92ZURhdGEodGhpcy5lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVkpLG9lKHRoaXMuZWxlbWVudCkub2ZmKHRoaXMuY29uc3RydWN0b3IuRVZFTlRfS0VZKSxvZSh0aGlzLmVsZW1lbnQpLmNsb3Nlc3QoXCIubW9kYWxcIikub2ZmKFwiaGlkZS5icy5tb2RhbFwiKSx0aGlzLnRpcCYmb2UodGhpcy50aXApLnJlbW92ZSgpLHRoaXMuX2lzRW5hYmxlZD1udWxsLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9ob3ZlclN0YXRlPW51bGwsKHRoaXMuX2FjdGl2ZVRyaWdnZXI9bnVsbCkhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5kZXN0cm95KCksdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5lbGVtZW50PW51bGwsdGhpcy5jb25maWc9bnVsbCx0aGlzLnRpcD1udWxsfSx0LnNob3c9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKFwibm9uZVwiPT09b2UodGhpcy5lbGVtZW50KS5jc3MoXCJkaXNwbGF5XCIpKXRocm93IG5ldyBFcnJvcihcIlBsZWFzZSB1c2Ugc2hvdyBvbiB2aXNpYmxlIGVsZW1lbnRzXCIpO3ZhciB0PW9lLkV2ZW50KHRoaXMuY29uc3RydWN0b3IuRXZlbnQuU0hPVyk7aWYodGhpcy5pc1dpdGhDb250ZW50KCkmJnRoaXMuX2lzRW5hYmxlZCl7b2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKHQpO3ZhciBuPW9lLmNvbnRhaW5zKHRoaXMuZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLmVsZW1lbnQpO2lmKHQuaXNEZWZhdWx0UHJldmVudGVkKCl8fCFuKXJldHVybjt2YXIgaT10aGlzLmdldFRpcEVsZW1lbnQoKSxyPUNuLmdldFVJRCh0aGlzLmNvbnN0cnVjdG9yLk5BTUUpO2kuc2V0QXR0cmlidXRlKFwiaWRcIixyKSx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiLHIpLHRoaXMuc2V0Q29udGVudCgpLHRoaXMuY29uZmlnLmFuaW1hdGlvbiYmb2UoaSkuYWRkQ2xhc3MoRWUpO3ZhciBzPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29uZmlnLnBsYWNlbWVudD90aGlzLmNvbmZpZy5wbGFjZW1lbnQuY2FsbCh0aGlzLGksdGhpcy5lbGVtZW50KTp0aGlzLmNvbmZpZy5wbGFjZW1lbnQsbz10aGlzLl9nZXRBdHRhY2htZW50KHMpO3RoaXMuYWRkQXR0YWNobWVudENsYXNzKG8pO3ZhciBhPSExPT09dGhpcy5jb25maWcuY29udGFpbmVyP2RvY3VtZW50LmJvZHk6b2UodGhpcy5jb25maWcuY29udGFpbmVyKTtvZShpKS5kYXRhKHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksdGhpcyksb2UuY29udGFpbnModGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMudGlwKXx8b2UoaSkuYXBwZW5kVG8oYSksb2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKHRoaXMuY29uc3RydWN0b3IuRXZlbnQuSU5TRVJURUQpLHRoaXMuX3BvcHBlcj1uZXcgYyh0aGlzLmVsZW1lbnQsaSx7cGxhY2VtZW50Om8sbW9kaWZpZXJzOntvZmZzZXQ6e29mZnNldDp0aGlzLmNvbmZpZy5vZmZzZXR9LGZsaXA6e2JlaGF2aW9yOnRoaXMuY29uZmlnLmZhbGxiYWNrUGxhY2VtZW50fSxhcnJvdzp7ZWxlbWVudDpDZX0scHJldmVudE92ZXJmbG93Ontib3VuZGFyaWVzRWxlbWVudDp0aGlzLmNvbmZpZy5ib3VuZGFyeX19LG9uQ3JlYXRlOmZ1bmN0aW9uKHQpe3Qub3JpZ2luYWxQbGFjZW1lbnQhPT10LnBsYWNlbWVudCYmZS5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlKHQpfSxvblVwZGF0ZTpmdW5jdGlvbih0KXtlLl9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl9fSksb2UoaSkuYWRkQ2xhc3MoeWUpLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJm9lKGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub24oXCJtb3VzZW92ZXJcIixudWxsLG9lLm5vb3ApO3ZhciBsPWZ1bmN0aW9uKCl7ZS5jb25maWcuYW5pbWF0aW9uJiZlLl9maXhUcmFuc2l0aW9uKCk7dmFyIHQ9ZS5faG92ZXJTdGF0ZTtlLl9ob3ZlclN0YXRlPW51bGwsb2UoZS5lbGVtZW50KS50cmlnZ2VyKGUuY29uc3RydWN0b3IuRXZlbnQuU0hPV04pLHQ9PT1wZSYmZS5fbGVhdmUobnVsbCxlKX07aWYob2UodGhpcy50aXApLmhhc0NsYXNzKEVlKSl7dmFyIGg9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy50aXApO29lKHRoaXMudGlwKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsbCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoaCl9ZWxzZSBsKCl9fSx0LmhpZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuZ2V0VGlwRWxlbWVudCgpLGk9b2UuRXZlbnQodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5ISURFKSxyPWZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZSE9PW1lJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSxlLl9jbGVhblRpcENsYXNzKCksZS5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIiksb2UoZS5lbGVtZW50KS50cmlnZ2VyKGUuY29uc3RydWN0b3IuRXZlbnQuSElEREVOKSxudWxsIT09ZS5fcG9wcGVyJiZlLl9wb3BwZXIuZGVzdHJveSgpLHQmJnQoKX07aWYob2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZihvZShuKS5yZW1vdmVDbGFzcyh5ZSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmb2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vZmYoXCJtb3VzZW92ZXJcIixudWxsLG9lLm5vb3ApLHRoaXMuX2FjdGl2ZVRyaWdnZXJbRGVdPSExLHRoaXMuX2FjdGl2ZVRyaWdnZXJbQWVdPSExLHRoaXMuX2FjdGl2ZVRyaWdnZXJbSWVdPSExLG9lKHRoaXMudGlwKS5oYXNDbGFzcyhFZSkpe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KG4pO29lKG4pLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKTt0aGlzLl9ob3ZlclN0YXRlPVwiXCJ9fSx0LnVwZGF0ZT1mdW5jdGlvbigpe251bGwhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5zY2hlZHVsZVVwZGF0ZSgpfSx0LmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLmdldFRpdGxlKCkpfSx0LmFkZEF0dGFjaG1lbnRDbGFzcz1mdW5jdGlvbih0KXtvZSh0aGlzLmdldFRpcEVsZW1lbnQoKSkuYWRkQ2xhc3ModWUrXCItXCIrdCl9LHQuZ2V0VGlwRWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpcD10aGlzLnRpcHx8b2UodGhpcy5jb25maWcudGVtcGxhdGUpWzBdLHRoaXMudGlwfSx0LnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoVGUpLHRoaXMuZ2V0VGl0bGUoKSksdC5yZW1vdmVDbGFzcyhFZStcIiBcIit5ZSl9LHQuc2V0RWxlbWVudENvbnRlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbmZpZy5odG1sO1wib2JqZWN0XCI9PXR5cGVvZiBlJiYoZS5ub2RlVHlwZXx8ZS5qcXVlcnkpP24/b2UoZSkucGFyZW50KCkuaXModCl8fHQuZW1wdHkoKS5hcHBlbmQoZSk6dC50ZXh0KG9lKGUpLnRleHQoKSk6dFtuP1wiaHRtbFwiOlwidGV4dFwiXShlKX0sdC5nZXRUaXRsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpO3JldHVybiB0fHwodD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmNvbmZpZy50aXRsZT90aGlzLmNvbmZpZy50aXRsZS5jYWxsKHRoaXMuZWxlbWVudCk6dGhpcy5jb25maWcudGl0bGUpLHR9LHQuX2dldEF0dGFjaG1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIF9lW3QudG9VcHBlckNhc2UoKV19LHQuX3NldExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5jb25maWcudHJpZ2dlci5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbih0KXtpZihcImNsaWNrXCI9PT10KW9lKGkuZWxlbWVudCkub24oaS5jb25zdHJ1Y3Rvci5FdmVudC5DTElDSyxpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS50b2dnbGUodCl9KTtlbHNlIGlmKHQhPT1iZSl7dmFyIGU9dD09PUllP2kuY29uc3RydWN0b3IuRXZlbnQuTU9VU0VFTlRFUjppLmNvbnN0cnVjdG9yLkV2ZW50LkZPQ1VTSU4sbj10PT09SWU/aS5jb25zdHJ1Y3Rvci5FdmVudC5NT1VTRUxFQVZFOmkuY29uc3RydWN0b3IuRXZlbnQuRk9DVVNPVVQ7b2UoaS5lbGVtZW50KS5vbihlLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLl9lbnRlcih0KX0pLm9uKG4saS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkuX2xlYXZlKHQpfSl9b2UoaS5lbGVtZW50KS5jbG9zZXN0KFwiLm1vZGFsXCIpLm9uKFwiaGlkZS5icy5tb2RhbFwiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuaGlkZSgpfSl9KSx0aGlzLmNvbmZpZy5zZWxlY3Rvcj90aGlzLmNvbmZpZz1oKHt9LHRoaXMuY29uZmlnLHt0cmlnZ2VyOlwibWFudWFsXCIsc2VsZWN0b3I6XCJcIn0pOnRoaXMuX2ZpeFRpdGxlKCl9LHQuX2ZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dHlwZW9mIHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpOyh0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIil8fFwic3RyaW5nXCIhPT10KSYmKHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIsdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcInRpdGxlXCIpfHxcIlwiKSx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwidGl0bGVcIixcIlwiKSl9LHQuX2VudGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWTsoZT1lfHxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobikpfHwoZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSksb2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4sZSkpLHQmJihlLl9hY3RpdmVUcmlnZ2VyW1wiZm9jdXNpblwiPT09dC50eXBlP0FlOkllXT0hMCksb2UoZS5nZXRUaXBFbGVtZW50KCkpLmhhc0NsYXNzKHllKXx8ZS5faG92ZXJTdGF0ZT09PW1lP2UuX2hvdmVyU3RhdGU9bWU6KGNsZWFyVGltZW91dChlLl90aW1lb3V0KSxlLl9ob3ZlclN0YXRlPW1lLGUuY29uZmlnLmRlbGF5JiZlLmNvbmZpZy5kZWxheS5zaG93P2UuX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe2UuX2hvdmVyU3RhdGU9PT1tZSYmZS5zaG93KCl9LGUuY29uZmlnLmRlbGF5LnNob3cpOmUuc2hvdygpKX0sdC5fbGVhdmU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZOyhlPWV8fG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobixlKSksdCYmKGUuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c291dFwiPT09dC50eXBlP0FlOkllXT0hMSksZS5faXNXaXRoQWN0aXZlVHJpZ2dlcigpfHwoY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9cGUsZS5jb25maWcuZGVsYXkmJmUuY29uZmlnLmRlbGF5LmhpZGU/ZS5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZT09PXBlJiZlLmhpZGUoKX0sZS5jb25maWcuZGVsYXkuaGlkZSk6ZS5oaWRlKCkpfSx0Ll9pc1dpdGhBY3RpdmVUcmlnZ2VyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX2FjdGl2ZVRyaWdnZXIpaWYodGhpcy5fYWN0aXZlVHJpZ2dlclt0XSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZih0PWgoe30sdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0LG9lKHRoaXMuZWxlbWVudCkuZGF0YSgpLHQpKS5kZWxheSYmKHQuZGVsYXk9e3Nob3c6dC5kZWxheSxoaWRlOnQuZGVsYXl9KSxcIm51bWJlclwiPT10eXBlb2YgdC50aXRsZSYmKHQudGl0bGU9dC50aXRsZS50b1N0cmluZygpKSxcIm51bWJlclwiPT10eXBlb2YgdC5jb250ZW50JiYodC5jb250ZW50PXQuY29udGVudC50b1N0cmluZygpKSxDbi50eXBlQ2hlY2tDb25maWcoYWUsdCx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRUeXBlKSx0fSx0Ll9nZXREZWxlZ2F0ZUNvbmZpZz1mdW5jdGlvbigpe3ZhciB0PXt9O2lmKHRoaXMuY29uZmlnKWZvcih2YXIgZSBpbiB0aGlzLmNvbmZpZyl0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRbZV0hPT10aGlzLmNvbmZpZ1tlXSYmKHRbZV09dGhpcy5jb25maWdbZV0pO3JldHVybiB0fSx0Ll9jbGVhblRpcENsYXNzPWZ1bmN0aW9uKCl7dmFyIHQ9b2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKFwiY2xhc3NcIikubWF0Y2goZmUpO251bGwhPT1lJiYwPGUubGVuZ3RoJiZ0LnJlbW92ZUNsYXNzKGUuam9pbihcIlwiKSl9LHQuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9jbGVhblRpcENsYXNzKCksdGhpcy5hZGRBdHRhY2htZW50Q2xhc3ModGhpcy5fZ2V0QXR0YWNobWVudCh0LnBsYWNlbWVudCkpfSx0Ll9maXhUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRUaXBFbGVtZW50KCksZT10aGlzLmNvbmZpZy5hbmltYXRpb247bnVsbD09PXQuZ2V0QXR0cmlidXRlKFwieC1wbGFjZW1lbnRcIikmJihvZSh0KS5yZW1vdmVDbGFzcyhFZSksdGhpcy5jb25maWcuYW5pbWF0aW9uPSExLHRoaXMuaGlkZSgpLHRoaXMuc2hvdygpLHRoaXMuY29uZmlnLmFuaW1hdGlvbj1lKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzKS5kYXRhKGxlKSxlPVwib2JqZWN0XCI9PXR5cGVvZiBuJiZuO2lmKCh0fHwhL2Rpc3Bvc2V8aGlkZS8udGVzdChuKSkmJih0fHwodD1uZXcgaSh0aGlzLGUpLG9lKHRoaXMpLmRhdGEobGUsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V9fSx7a2V5OlwiTkFNRVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBhZX19LHtrZXk6XCJEQVRBX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBsZX19LHtrZXk6XCJFdmVudFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB2ZX19LHtrZXk6XCJFVkVOVF9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGV9fSx7a2V5OlwiRGVmYXVsdFR5cGVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGV9fV0pLGl9KCksb2UuZm5bYWVdPVNlLl9qUXVlcnlJbnRlcmZhY2Usb2UuZm5bYWVdLkNvbnN0cnVjdG9yPVNlLG9lLmZuW2FlXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG9lLmZuW2FlXT1jZSxTZS5falF1ZXJ5SW50ZXJmYWNlfSxTZSksT249KE5lPVwicG9wb3ZlclwiLGtlPVwiLlwiKyhPZT1cImJzLnBvcG92ZXJcIiksUGU9KHdlPWUpLmZuW05lXSxMZT1cImJzLXBvcG92ZXJcIixqZT1uZXcgUmVnRXhwKFwiKF58XFxcXHMpXCIrTGUrXCJcXFxcUytcIixcImdcIiksUmU9aCh7fSxObi5EZWZhdWx0LHtwbGFjZW1lbnQ6XCJyaWdodFwiLHRyaWdnZXI6XCJjbGlja1wiLGNvbnRlbnQ6XCJcIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz1cInBvcG92ZXJcIiByb2xlPVwidG9vbHRpcFwiPjxkaXYgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PjxoMyBjbGFzcz1cInBvcG92ZXItaGVhZGVyXCI+PC9oMz48ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+PC9kaXY+PC9kaXY+J30pLEhlPWgoe30sTm4uRGVmYXVsdFR5cGUse2NvbnRlbnQ6XCIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pXCJ9KSxXZT1cImZhZGVcIix4ZT1cIi5wb3BvdmVyLWhlYWRlclwiLFVlPVwiLnBvcG92ZXItYm9keVwiLEtlPXtISURFOlwiaGlkZVwiK2tlLEhJRERFTjpcImhpZGRlblwiK2tlLFNIT1c6KE1lPVwic2hvd1wiKStrZSxTSE9XTjpcInNob3duXCIra2UsSU5TRVJURUQ6XCJpbnNlcnRlZFwiK2tlLENMSUNLOlwiY2xpY2tcIitrZSxGT0NVU0lOOlwiZm9jdXNpblwiK2tlLEZPQ1VTT1VUOlwiZm9jdXNvdXRcIitrZSxNT1VTRUVOVEVSOlwibW91c2VlbnRlclwiK2tlLE1PVVNFTEVBVkU6XCJtb3VzZWxlYXZlXCIra2V9LEZlPWZ1bmN0aW9uKHQpe3ZhciBlLG47ZnVuY3Rpb24gaSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31uPXQsKGU9aSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLChlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lKS5fX3Byb3RvX189bjt2YXIgcj1pLnByb3RvdHlwZTtyZXR1cm4gci5pc1dpdGhDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKXx8dGhpcy5fZ2V0Q29udGVudCgpfSxyLmFkZEF0dGFjaG1lbnRDbGFzcz1mdW5jdGlvbih0KXt3ZSh0aGlzLmdldFRpcEVsZW1lbnQoKSkuYWRkQ2xhc3MoTGUrXCItXCIrdCl9LHIuZ2V0VGlwRWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpcD10aGlzLnRpcHx8d2UodGhpcy5jb25maWcudGVtcGxhdGUpWzBdLHRoaXMudGlwfSxyLnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD13ZSh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoeGUpLHRoaXMuZ2V0VGl0bGUoKSk7dmFyIGU9dGhpcy5fZ2V0Q29udGVudCgpO1wiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihlPWUuY2FsbCh0aGlzLmVsZW1lbnQpKSx0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZChVZSksZSksdC5yZW1vdmVDbGFzcyhXZStcIiBcIitNZSl9LHIuX2dldENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtY29udGVudFwiKXx8dGhpcy5jb25maWcuY29udGVudH0sci5fY2xlYW5UaXBDbGFzcz1mdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKSxlPXQuYXR0cihcImNsYXNzXCIpLm1hdGNoKGplKTtudWxsIT09ZSYmMDxlLmxlbmd0aCYmdC5yZW1vdmVDbGFzcyhlLmpvaW4oXCJcIikpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMpLmRhdGEoT2UpLGU9XCJvYmplY3RcIj09dHlwZW9mIG4/bjpudWxsO2lmKCh0fHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChuKSkmJih0fHwodD1uZXcgaSh0aGlzLGUpLHdlKHRoaXMpLmRhdGEoT2UsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUmV9fSx7a2V5OlwiTkFNRVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBOZX19LHtrZXk6XCJEQVRBX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBPZX19LHtrZXk6XCJFdmVudFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBLZX19LHtrZXk6XCJFVkVOVF9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga2V9fSx7a2V5OlwiRGVmYXVsdFR5cGVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGV9fV0pLGl9KE5uKSx3ZS5mbltOZV09RmUuX2pRdWVyeUludGVyZmFjZSx3ZS5mbltOZV0uQ29uc3RydWN0b3I9RmUsd2UuZm5bTmVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gd2UuZm5bTmVdPVBlLEZlLl9qUXVlcnlJbnRlcmZhY2V9LEZlKSxrbj0oUWU9XCJzY3JvbGxzcHlcIixZZT1cIi5cIisoQmU9XCJicy5zY3JvbGxzcHlcIiksR2U9KFZlPWUpLmZuW1FlXSxxZT17b2Zmc2V0OjEwLG1ldGhvZDpcImF1dG9cIix0YXJnZXQ6XCJcIn0semU9e29mZnNldDpcIm51bWJlclwiLG1ldGhvZDpcInN0cmluZ1wiLHRhcmdldDpcIihzdHJpbmd8ZWxlbWVudClcIn0sWGU9e0FDVElWQVRFOlwiYWN0aXZhdGVcIitZZSxTQ1JPTEw6XCJzY3JvbGxcIitZZSxMT0FEX0RBVEFfQVBJOlwibG9hZFwiK1llK1wiLmRhdGEtYXBpXCJ9LEplPVwiZHJvcGRvd24taXRlbVwiLFplPVwiYWN0aXZlXCIsJGU9e0RBVEFfU1BZOidbZGF0YS1zcHk9XCJzY3JvbGxcIl0nLEFDVElWRTpcIi5hY3RpdmVcIixOQVZfTElTVF9HUk9VUDpcIi5uYXYsIC5saXN0LWdyb3VwXCIsTkFWX0xJTktTOlwiLm5hdi1saW5rXCIsTkFWX0lURU1TOlwiLm5hdi1pdGVtXCIsTElTVF9JVEVNUzpcIi5saXN0LWdyb3VwLWl0ZW1cIixEUk9QRE9XTjpcIi5kcm9wZG93blwiLERST1BET1dOX0lURU1TOlwiLmRyb3Bkb3duLWl0ZW1cIixEUk9QRE9XTl9UT0dHTEU6XCIuZHJvcGRvd24tdG9nZ2xlXCJ9LHRuPVwib2Zmc2V0XCIsZW49XCJwb3NpdGlvblwiLG5uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fZWxlbWVudD10LHRoaXMuX3Njcm9sbEVsZW1lbnQ9XCJCT0RZXCI9PT10LnRhZ05hbWU/d2luZG93OnQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9zZWxlY3Rvcj10aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLk5BVl9MSU5LUytcIixcIit0aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLkxJU1RfSVRFTVMrXCIsXCIrdGhpcy5fY29uZmlnLnRhcmdldCtcIiBcIiskZS5EUk9QRE9XTl9JVEVNUyx0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PTAsVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkub24oWGUuU0NST0xMLGZ1bmN0aW9uKHQpe3JldHVybiBuLl9wcm9jZXNzKHQpfSksdGhpcy5yZWZyZXNoKCksdGhpcy5fcHJvY2VzcygpfXZhciB0PW4ucHJvdG90eXBlO3JldHVybiB0LnJlZnJlc2g9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5fc2Nyb2xsRWxlbWVudD09PXRoaXMuX3Njcm9sbEVsZW1lbnQud2luZG93P3RuOmVuLHI9XCJhdXRvXCI9PT10aGlzLl9jb25maWcubWV0aG9kP3Q6dGhpcy5fY29uZmlnLm1ldGhvZCxzPXI9PT1lbj90aGlzLl9nZXRTY3JvbGxUb3AoKTowO3RoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZ2V0U2Nyb2xsSGVpZ2h0KCksVmUubWFrZUFycmF5KFZlKHRoaXMuX3NlbGVjdG9yKSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlLG49Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0KTtpZihuJiYoZT1WZShuKVswXSksZSl7dmFyIGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihpLndpZHRofHxpLmhlaWdodClyZXR1cm5bVmUoZSlbcl0oKS50b3ArcyxuXX1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9vZmZzZXRzLnB1c2godFswXSksZS5fdGFyZ2V0cy5wdXNoKHRbMV0pfSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe1ZlLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxCZSksVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkub2ZmKFllKSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fc2Nyb2xsRWxlbWVudD1udWxsLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX3NlbGVjdG9yPW51bGwsdGhpcy5fb2Zmc2V0cz1udWxsLHRoaXMuX3RhcmdldHM9bnVsbCx0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9zY3JvbGxIZWlnaHQ9bnVsbH0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZih0PWgoe30scWUsdCkpLnRhcmdldCl7dmFyIGU9VmUodC50YXJnZXQpLmF0dHIoXCJpZFwiKTtlfHwoZT1Dbi5nZXRVSUQoUWUpLFZlKHQudGFyZ2V0KS5hdHRyKFwiaWRcIixlKSksdC50YXJnZXQ9XCIjXCIrZX1yZXR1cm4gQ24udHlwZUNoZWNrQ29uZmlnKFFlLHQsemUpLHR9LHQuX2dldFNjcm9sbFRvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3RoaXMuX3Njcm9sbEVsZW1lbnQucGFnZVlPZmZzZXQ6dGhpcy5fc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3B9LHQuX2dldFNjcm9sbEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodHx8TWF0aC5tYXgoZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCl9LHQuX2dldE9mZnNldEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3dpbmRvdy5pbm5lckhlaWdodDp0aGlzLl9zY3JvbGxFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH0sdC5fcHJvY2Vzcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFNjcm9sbFRvcCgpK3RoaXMuX2NvbmZpZy5vZmZzZXQsZT10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxuPXRoaXMuX2NvbmZpZy5vZmZzZXQrZS10aGlzLl9nZXRPZmZzZXRIZWlnaHQoKTtpZih0aGlzLl9zY3JvbGxIZWlnaHQhPT1lJiZ0aGlzLnJlZnJlc2goKSxuPD10KXt2YXIgaT10aGlzLl90YXJnZXRzW3RoaXMuX3RhcmdldHMubGVuZ3RoLTFdO3RoaXMuX2FjdGl2ZVRhcmdldCE9PWkmJnRoaXMuX2FjdGl2YXRlKGkpfWVsc2V7aWYodGhpcy5fYWN0aXZlVGFyZ2V0JiZ0PHRoaXMuX29mZnNldHNbMF0mJjA8dGhpcy5fb2Zmc2V0c1swXSlyZXR1cm4gdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdm9pZCB0aGlzLl9jbGVhcigpO2Zvcih2YXIgcj10aGlzLl9vZmZzZXRzLmxlbmd0aDtyLS07KXt0aGlzLl9hY3RpdmVUYXJnZXQhPT10aGlzLl90YXJnZXRzW3JdJiZ0Pj10aGlzLl9vZmZzZXRzW3JdJiYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRoaXMuX29mZnNldHNbcisxXXx8dDx0aGlzLl9vZmZzZXRzW3IrMV0pJiZ0aGlzLl9hY3RpdmF0ZSh0aGlzLl90YXJnZXRzW3JdKX19fSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbihlKXt0aGlzLl9hY3RpdmVUYXJnZXQ9ZSx0aGlzLl9jbGVhcigpO3ZhciB0PXRoaXMuX3NlbGVjdG9yLnNwbGl0KFwiLFwiKTt0PXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KydbZGF0YS10YXJnZXQ9XCInK2UrJ1wiXSwnK3QrJ1tocmVmPVwiJytlKydcIl0nfSk7dmFyIG49VmUodC5qb2luKFwiLFwiKSk7bi5oYXNDbGFzcyhKZSk/KG4uY2xvc2VzdCgkZS5EUk9QRE9XTikuZmluZCgkZS5EUk9QRE9XTl9UT0dHTEUpLmFkZENsYXNzKFplKSxuLmFkZENsYXNzKFplKSk6KG4uYWRkQ2xhc3MoWmUpLG4ucGFyZW50cygkZS5OQVZfTElTVF9HUk9VUCkucHJldigkZS5OQVZfTElOS1MrXCIsIFwiKyRlLkxJU1RfSVRFTVMpLmFkZENsYXNzKFplKSxuLnBhcmVudHMoJGUuTkFWX0xJU1RfR1JPVVApLnByZXYoJGUuTkFWX0lURU1TKS5jaGlsZHJlbigkZS5OQVZfTElOS1MpLmFkZENsYXNzKFplKSksVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkudHJpZ2dlcihYZS5BQ1RJVkFURSx7cmVsYXRlZFRhcmdldDplfSl9LHQuX2NsZWFyPWZ1bmN0aW9uKCl7VmUodGhpcy5fc2VsZWN0b3IpLmZpbHRlcigkZS5BQ1RJVkUpLnJlbW92ZUNsYXNzKFplKX0sbi5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WZSh0aGlzKS5kYXRhKEJlKTtpZih0fHwodD1uZXcgbih0aGlzLFwib2JqZWN0XCI9PXR5cGVvZiBlJiZlKSxWZSh0aGlzKS5kYXRhKEJlLHQpKSxcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytlKydcIicpO3RbZV0oKX19KX0sbyhuLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcWV9fV0pLG59KCksVmUod2luZG93KS5vbihYZS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVZlLm1ha2VBcnJheShWZSgkZS5EQVRBX1NQWSkpLGU9dC5sZW5ndGg7ZS0tOyl7dmFyIG49VmUodFtlXSk7bm4uX2pRdWVyeUludGVyZmFjZS5jYWxsKG4sbi5kYXRhKCkpfX0pLFZlLmZuW1FlXT1ubi5falF1ZXJ5SW50ZXJmYWNlLFZlLmZuW1FlXS5Db25zdHJ1Y3Rvcj1ubixWZS5mbltRZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBWZS5mbltRZV09R2Usbm4uX2pRdWVyeUludGVyZmFjZX0sbm4pLFBuPShvbj1cIi5cIisoc249XCJicy50YWJcIiksYW49KHJuPWUpLmZuLnRhYixsbj17SElERTpcImhpZGVcIitvbixISURERU46XCJoaWRkZW5cIitvbixTSE9XOlwic2hvd1wiK29uLFNIT1dOOlwic2hvd25cIitvbixDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrb24rXCIuZGF0YS1hcGlcIn0saG49XCJkcm9wZG93bi1tZW51XCIsY249XCJhY3RpdmVcIix1bj1cImRpc2FibGVkXCIsZm49XCJmYWRlXCIsZG49XCJzaG93XCIsX249XCIuZHJvcGRvd25cIixnbj1cIi5uYXYsIC5saXN0LWdyb3VwXCIsbW49XCIuYWN0aXZlXCIscG49XCI+IGxpID4gLmFjdGl2ZVwiLHZuPSdbZGF0YS10b2dnbGU9XCJ0YWJcIl0sIFtkYXRhLXRvZ2dsZT1cInBpbGxcIl0sIFtkYXRhLXRvZ2dsZT1cImxpc3RcIl0nLEVuPVwiLmRyb3Bkb3duLXRvZ2dsZVwiLHluPVwiPiAuZHJvcGRvd24tbWVudSAuYWN0aXZlXCIsVG49ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZighKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnJuKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGNuKXx8cm4odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3ModW4pKSl7dmFyIHQsaSxlPXJuKHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoZ24pWzBdLHI9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtpZihlKXt2YXIgcz1cIlVMXCI9PT1lLm5vZGVOYW1lP3BuOm1uO2k9KGk9cm4ubWFrZUFycmF5KHJuKGUpLmZpbmQocykpKVtpLmxlbmd0aC0xXX12YXIgbz1ybi5FdmVudChsbi5ISURFLHtyZWxhdGVkVGFyZ2V0OnRoaXMuX2VsZW1lbnR9KSxhPXJuLkV2ZW50KGxuLlNIT1cse3JlbGF0ZWRUYXJnZXQ6aX0pO2lmKGkmJnJuKGkpLnRyaWdnZXIobykscm4odGhpcy5fZWxlbWVudCkudHJpZ2dlcihhKSwhYS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIW8uaXNEZWZhdWx0UHJldmVudGVkKCkpe3ImJih0PXJuKHIpWzBdKSx0aGlzLl9hY3RpdmF0ZSh0aGlzLl9lbGVtZW50LGUpO3ZhciBsPWZ1bmN0aW9uKCl7dmFyIHQ9cm4uRXZlbnQobG4uSElEREVOLHtyZWxhdGVkVGFyZ2V0Om4uX2VsZW1lbnR9KSxlPXJuLkV2ZW50KGxuLlNIT1dOLHtyZWxhdGVkVGFyZ2V0Oml9KTtybihpKS50cmlnZ2VyKHQpLHJuKG4uX2VsZW1lbnQpLnRyaWdnZXIoZSl9O3Q/dGhpcy5fYWN0aXZhdGUodCx0LnBhcmVudE5vZGUsbCk6bCgpfX19LHQuZGlzcG9zZT1mdW5jdGlvbigpe3JuLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxzbiksdGhpcy5fZWxlbWVudD1udWxsfSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcyxyPShcIlVMXCI9PT1lLm5vZGVOYW1lP3JuKGUpLmZpbmQocG4pOnJuKGUpLmNoaWxkcmVuKG1uKSlbMF0scz1uJiZyJiZybihyKS5oYXNDbGFzcyhmbiksbz1mdW5jdGlvbigpe3JldHVybiBpLl90cmFuc2l0aW9uQ29tcGxldGUodCxyLG4pfTtpZihyJiZzKXt2YXIgYT1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChyKTtybihyKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsbykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYSl9ZWxzZSBvKCl9LHQuX3RyYW5zaXRpb25Db21wbGV0ZT1mdW5jdGlvbih0LGUsbil7aWYoZSl7cm4oZSkucmVtb3ZlQ2xhc3MoZG4rXCIgXCIrY24pO3ZhciBpPXJuKGUucGFyZW50Tm9kZSkuZmluZCh5bilbMF07aSYmcm4oaSkucmVtb3ZlQ2xhc3MoY24pLFwidGFiXCI9PT1lLmdldEF0dHJpYnV0ZShcInJvbGVcIikmJmUuc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCExKX1pZihybih0KS5hZGRDbGFzcyhjbiksXCJ0YWJcIj09PXQuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITApLENuLnJlZmxvdyh0KSxybih0KS5hZGRDbGFzcyhkbiksdC5wYXJlbnROb2RlJiZybih0LnBhcmVudE5vZGUpLmhhc0NsYXNzKGhuKSl7dmFyIHI9cm4odCkuY2xvc2VzdChfbilbMF07ciYmcm4ocikuZmluZChFbikuYWRkQ2xhc3MoY24pLHQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKX1uJiZuKCl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cm4odGhpcyksZT10LmRhdGEoc24pO2lmKGV8fChlPW5ldyBpKHRoaXMpLHQuZGF0YShzbixlKSksXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBlW25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTtlW25dKCl9fSl9LG8oaSxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksaX0oKSxybihkb2N1bWVudCkub24obG4uQ0xJQ0tfREFUQV9BUEksdm4sZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLFRuLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChybih0aGlzKSxcInNob3dcIil9KSxybi5mbi50YWI9VG4uX2pRdWVyeUludGVyZmFjZSxybi5mbi50YWIuQ29uc3RydWN0b3I9VG4scm4uZm4udGFiLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcm4uZm4udGFiPWFuLFRuLl9qUXVlcnlJbnRlcmZhY2V9LFRuKTshZnVuY3Rpb24odCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5LiBqUXVlcnkgbXVzdCBiZSBpbmNsdWRlZCBiZWZvcmUgQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdC5cIik7dmFyIGU9dC5mbi5qcXVlcnkuc3BsaXQoXCIgXCIpWzBdLnNwbGl0KFwiLlwiKTtpZihlWzBdPDImJmVbMV08OXx8MT09PWVbMF0mJjk9PT1lWzFdJiZlWzJdPDF8fDQ8PWVbMF0pdGhyb3cgbmV3IEVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBhdCBsZWFzdCBqUXVlcnkgdjEuOS4xIGJ1dCBsZXNzIHRoYW4gdjQuMC4wXCIpfShlKSx0LlV0aWw9Q24sdC5BbGVydD1Jbix0LkJ1dHRvbj1Bbix0LkNhcm91c2VsPURuLHQuQ29sbGFwc2U9Ym4sdC5Ecm9wZG93bj1Tbix0Lk1vZGFsPXduLHQuUG9wb3Zlcj1Pbix0LlNjcm9sbHNweT1rbix0LlRhYj1Qbix0LlRvb2x0aXA9Tm4sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvb3RzdHJhcC5taW4uanMubWFwIiwiLy8gaHR0cHM6Ly9kM2pzLm9yZyBWZXJzaW9uIDUuNS4wLiBDb3B5cmlnaHQgMjAxOCBNaWtlIEJvc3RvY2suXG4oZnVuY3Rpb24odCxuKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9uKGV4cG9ydHMpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxuKTpuKHQuZDM9dC5kM3x8e30pfSkodGhpcyxmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIHQ8bj8tMTp0Pm4/MTp0Pj1uPzA6TmFOfWZ1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG4odChlKSxyKX19KHQpKSx7bGVmdDpmdW5jdGlvbihuLGUscixpKXtmb3IobnVsbD09ciYmKHI9MCksbnVsbD09aSYmKGk9bi5sZW5ndGgpO3I8aTspe3ZhciBvPXIraT4+PjE7dChuW29dLGUpPDA/cj1vKzE6aT1vfXJldHVybiByfSxyaWdodDpmdW5jdGlvbihuLGUscixpKXtmb3IobnVsbD09ciYmKHI9MCksbnVsbD09aSYmKGk9bi5sZW5ndGgpO3I8aTspe3ZhciBvPXIraT4+PjE7dChuW29dLGUpPjA/aT1vOnI9bysxfXJldHVybiByfX19ZnVuY3Rpb24gcih0LG4pe3JldHVyblt0LG5dfWZ1bmN0aW9uIGkodCl7cmV0dXJuIG51bGw9PT10P05hTjordH1mdW5jdGlvbiBvKHQsbil7dmFyIGUscixvPXQubGVuZ3RoLGE9MCx1PS0xLGY9MCxjPTA7aWYobnVsbD09bilmb3IoOysrdTxvOylpc05hTihlPWkodFt1XSkpfHwoYys9KHI9ZS1mKSooZS0oZis9ci8rK2EpKSk7ZWxzZSBmb3IoOysrdTxvOylpc05hTihlPWkobih0W3VdLHUsdCkpKXx8KGMrPShyPWUtZikqKGUtKGYrPXIvKythKSkpO2lmKGE+MSlyZXR1cm4gYy8oYS0xKX1mdW5jdGlvbiBhKHQsbil7dmFyIGU9byh0LG4pO3JldHVybiBlP01hdGguc3FydChlKTplfWZ1bmN0aW9uIHUodCxuKXt2YXIgZSxyLGksbz10Lmxlbmd0aCxhPS0xO2lmKG51bGw9PW4pe2Zvcig7KythPG87KWlmKG51bGwhPShlPXRbYV0pJiZlPj1lKWZvcihyPWk9ZTsrK2E8bzspbnVsbCE9KGU9dFthXSkmJihyPmUmJihyPWUpLGk8ZSYmKGk9ZSkpfWVsc2UgZm9yKDsrK2E8bzspaWYobnVsbCE9KGU9bih0W2FdLGEsdCkpJiZlPj1lKWZvcihyPWk9ZTsrK2E8bzspbnVsbCE9KGU9bih0W2FdLGEsdCkpJiYocj5lJiYocj1lKSxpPGUmJihpPWUpKTtyZXR1cm5bcixpXX1mdW5jdGlvbiBmKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBjKHQpe3JldHVybiB0fWZ1bmN0aW9uIHModCxuLGUpe3Q9K3Qsbj0rbixlPShpPWFyZ3VtZW50cy5sZW5ndGgpPDI/KG49dCx0PTAsMSk6aTwzPzE6K2U7Zm9yKHZhciByPS0xLGk9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgobi10KS9lKSksbz1uZXcgQXJyYXkoaSk7KytyPGk7KW9bcl09dCtyKmU7cmV0dXJuIG99ZnVuY3Rpb24gbCh0LG4sZSl7dmFyIHIsaSxvLGEsdT0tMTtpZihuPStuLHQ9K3QsZT0rZSx0PT09biYmZT4wKXJldHVyblt0XTtpZigocj1uPHQpJiYoaT10LHQ9bixuPWkpLDA9PT0oYT1oKHQsbixlKSl8fCFpc0Zpbml0ZShhKSlyZXR1cm5bXTtpZihhPjApZm9yKHQ9TWF0aC5jZWlsKHQvYSksbj1NYXRoLmZsb29yKG4vYSksbz1uZXcgQXJyYXkoaT1NYXRoLmNlaWwobi10KzEpKTsrK3U8aTspb1t1XT0odCt1KSphO2Vsc2UgZm9yKHQ9TWF0aC5mbG9vcih0KmEpLG49TWF0aC5jZWlsKG4qYSksbz1uZXcgQXJyYXkoaT1NYXRoLmNlaWwodC1uKzEpKTsrK3U8aTspb1t1XT0odC11KS9hO3JldHVybiByJiZvLnJldmVyc2UoKSxvfWZ1bmN0aW9uIGgodCxuLGUpe3ZhciByPShuLXQpL01hdGgubWF4KDAsZSksaT1NYXRoLmZsb29yKE1hdGgubG9nKHIpL01hdGguTE4xMCksbz1yL01hdGgucG93KDEwLGkpO3JldHVybiBpPj0wPyhvPj1pcz8xMDpvPj1vcz81Om8+PWFzPzI6MSkqTWF0aC5wb3coMTAsaSk6LU1hdGgucG93KDEwLC1pKS8obz49aXM/MTA6bz49b3M/NTpvPj1hcz8yOjEpfWZ1bmN0aW9uIGQodCxuLGUpe3ZhciByPU1hdGguYWJzKG4tdCkvTWF0aC5tYXgoMCxlKSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKSksbz1yL2k7cmV0dXJuIG8+PWlzP2kqPTEwOm8+PW9zP2kqPTU6bz49YXMmJihpKj0yKSxuPHQ/LWk6aX1mdW5jdGlvbiBwKHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIHYodCxuLGUpe2lmKG51bGw9PWUmJihlPWkpLHI9dC5sZW5ndGgpe2lmKChuPStuKTw9MHx8cjwyKXJldHVybitlKHRbMF0sMCx0KTtpZihuPj0xKXJldHVybitlKHRbci0xXSxyLTEsdCk7dmFyIHIsbz0oci0xKSpuLGE9TWF0aC5mbG9vcihvKSx1PStlKHRbYV0sYSx0KTtyZXR1cm4gdSsoK2UodFthKzFdLGErMSx0KS11KSooby1hKX19ZnVuY3Rpb24gZyh0LG4pe3ZhciBlLHIsaT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PW4pe2Zvcig7KytvPGk7KWlmKG51bGwhPShlPXRbb10pJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPXRbb10pJiZlPnImJihyPWUpfWVsc2UgZm9yKDsrK288aTspaWYobnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPW4odFtvXSxvLHQpKSYmZT5yJiYocj1lKTtyZXR1cm4gcn1mdW5jdGlvbiB5KHQpe2Zvcih2YXIgbixlLHIsaT10Lmxlbmd0aCxvPS0xLGE9MDsrK288aTspYSs9dFtvXS5sZW5ndGg7Zm9yKGU9bmV3IEFycmF5KGEpOy0taT49MDspZm9yKG49KHI9dFtpXSkubGVuZ3RoOy0tbj49MDspZVstLWFdPXJbbl07cmV0dXJuIGV9ZnVuY3Rpb24gXyh0LG4pe3ZhciBlLHIsaT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PW4pe2Zvcig7KytvPGk7KWlmKG51bGwhPShlPXRbb10pJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPXRbb10pJiZyPmUmJihyPWUpfWVsc2UgZm9yKDsrK288aTspaWYobnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPW4odFtvXSxvLHQpKSYmcj5lJiYocj1lKTtyZXR1cm4gcn1mdW5jdGlvbiBiKHQpe2lmKCEoaT10Lmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciBuPS0xLGU9Xyh0LG0pLHI9bmV3IEFycmF5KGUpOysrbjxlOylmb3IodmFyIGksbz0tMSxhPXJbbl09bmV3IEFycmF5KGkpOysrbzxpOylhW29dPXRbb11bbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdC5sZW5ndGh9ZnVuY3Rpb24geCh0KXtyZXR1cm4gdH1mdW5jdGlvbiB3KHQpe3JldHVyblwidHJhbnNsYXRlKFwiKyh0Ky41KStcIiwwKVwifWZ1bmN0aW9uIE0odCl7cmV0dXJuXCJ0cmFuc2xhdGUoMCxcIisodCsuNSkrXCIpXCJ9ZnVuY3Rpb24gQSgpe3JldHVybiF0aGlzLl9fYXhpc31mdW5jdGlvbiBUKHQsbil7ZnVuY3Rpb24gZShlKXt2YXIgaD1udWxsPT1pP24udGlja3M/bi50aWNrcy5hcHBseShuLHIpOm4uZG9tYWluKCk6aSxkPW51bGw9PW8/bi50aWNrRm9ybWF0P24udGlja0Zvcm1hdC5hcHBseShuLHIpOng6byxwPU1hdGgubWF4KGEsMCkrZix2PW4ucmFuZ2UoKSxnPSt2WzBdKy41LHk9K3Zbdi5sZW5ndGgtMV0rLjUsXz0obi5iYW5kd2lkdGg/ZnVuY3Rpb24odCl7dmFyIG49TWF0aC5tYXgoMCx0LmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIHQucm91bmQoKSYmKG49TWF0aC5yb3VuZChuKSksZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSkrbn19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4rdChuKX19KShuLmNvcHkoKSksYj1lLnNlbGVjdGlvbj9lLnNlbGVjdGlvbigpOmUsbT1iLnNlbGVjdEFsbChcIi5kb21haW5cIikuZGF0YShbbnVsbF0pLHc9Yi5zZWxlY3RBbGwoXCIudGlja1wiKS5kYXRhKGgsbikub3JkZXIoKSxNPXcuZXhpdCgpLFQ9dy5lbnRlcigpLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsXCJ0aWNrXCIpLE49dy5zZWxlY3QoXCJsaW5lXCIpLFM9dy5zZWxlY3QoXCJ0ZXh0XCIpO209bS5tZXJnZShtLmVudGVyKCkuaW5zZXJ0KFwicGF0aFwiLFwiLnRpY2tcIikuYXR0cihcImNsYXNzXCIsXCJkb21haW5cIikuYXR0cihcInN0cm9rZVwiLFwiIzAwMFwiKSksdz13Lm1lcmdlKFQpLE49Ti5tZXJnZShULmFwcGVuZChcImxpbmVcIikuYXR0cihcInN0cm9rZVwiLFwiIzAwMFwiKS5hdHRyKHMrXCIyXCIsYyphKSksUz1TLm1lcmdlKFQuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwiZmlsbFwiLFwiIzAwMFwiKS5hdHRyKHMsYypwKS5hdHRyKFwiZHlcIix0PT09ZnM/XCIwZW1cIjp0PT09c3M/XCIwLjcxZW1cIjpcIjAuMzJlbVwiKSksZSE9PWImJihtPW0udHJhbnNpdGlvbihlKSx3PXcudHJhbnNpdGlvbihlKSxOPU4udHJhbnNpdGlvbihlKSxTPVMudHJhbnNpdGlvbihlKSxNPU0udHJhbnNpdGlvbihlKS5hdHRyKFwib3BhY2l0eVwiLGhzKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9Xyh0KSk/bCh0KTp0aGlzLmdldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiKX0pLFQuYXR0cihcIm9wYWNpdHlcIixocykuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIGwobiYmaXNGaW5pdGUobj1uKHQpKT9uOl8odCkpfSkpLE0ucmVtb3ZlKCksbS5hdHRyKFwiZFwiLHQ9PT1sc3x8dD09Y3M/XCJNXCIrYyp1K1wiLFwiK2crXCJIMC41VlwiK3krXCJIXCIrYyp1OlwiTVwiK2crXCIsXCIrYyp1K1wiVjAuNUhcIit5K1wiVlwiK2MqdSksdy5hdHRyKFwib3BhY2l0eVwiLDEpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXtyZXR1cm4gbChfKHQpKX0pLE4uYXR0cihzK1wiMlwiLGMqYSksUy5hdHRyKHMsYypwKS50ZXh0KGQpLGIuZmlsdGVyKEEpLmF0dHIoXCJmaWxsXCIsXCJub25lXCIpLmF0dHIoXCJmb250LXNpemVcIiwxMCkuYXR0cihcImZvbnQtZmFtaWx5XCIsXCJzYW5zLXNlcmlmXCIpLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLHQ9PT1jcz9cInN0YXJ0XCI6dD09PWxzP1wiZW5kXCI6XCJtaWRkbGVcIiksYi5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5fX2F4aXM9X30pfXZhciByPVtdLGk9bnVsbCxvPW51bGwsYT02LHU9NixmPTMsYz10PT09ZnN8fHQ9PT1scz8tMToxLHM9dD09PWxzfHx0PT09Y3M/XCJ4XCI6XCJ5XCIsbD10PT09ZnN8fHQ9PT1zcz93Ok07cmV0dXJuIGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlKTpufSxlLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHI9dXMuY2FsbChhcmd1bWVudHMpLGV9LGUudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT10P1tdOnVzLmNhbGwodCksZSk6ci5zbGljZSgpfSxlLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOnVzLmNhbGwodCksZSk6aSYmaS5zbGljZSgpfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxlKTpvfSxlLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXU9K3QsZSk6YX0sZS50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LGUpOmF9LGUudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxlKTp1fSxlLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSt0LGUpOmZ9LGV9ZnVuY3Rpb24gTigpe2Zvcih2YXIgdCxuPTAsZT1hcmd1bWVudHMubGVuZ3RoLHI9e307bjxlOysrbil7aWYoISh0PWFyZ3VtZW50c1tuXStcIlwiKXx8dCBpbiByKXRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgdHlwZTogXCIrdCk7clt0XT1bXX1yZXR1cm4gbmV3IFMocil9ZnVuY3Rpb24gUyh0KXt0aGlzLl89dH1mdW5jdGlvbiBFKHQsbixlKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTsrK3IpaWYodFtyXS5uYW1lPT09bil7dFtyXT1kcyx0PXQuc2xpY2UoMCxyKS5jb25jYXQodC5zbGljZShyKzEpKTticmVha31yZXR1cm4gbnVsbCE9ZSYmdC5wdXNoKHtuYW1lOm4sdmFsdWU6ZX0pLHR9ZnVuY3Rpb24gayh0KXt2YXIgbj10Kz1cIlwiLGU9bi5pbmRleE9mKFwiOlwiKTtyZXR1cm4gZT49MCYmXCJ4bWxuc1wiIT09KG49dC5zbGljZSgwLGUpKSYmKHQ9dC5zbGljZShlKzEpKSx2cy5oYXNPd25Qcm9wZXJ0eShuKT97c3BhY2U6dnNbbl0sbG9jYWw6dH06dH1mdW5jdGlvbiBDKHQpe3ZhciBuPWsodCk7cmV0dXJuKG4ubG9jYWw/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMub3duZXJEb2N1bWVudCxlPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBlPT09cHMmJm4uZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PXBzP24uY3JlYXRlRWxlbWVudCh0KTpuLmNyZWF0ZUVsZW1lbnROUyhlLHQpfX0pKG4pfWZ1bmN0aW9uIFAoKXt9ZnVuY3Rpb24geih0KXtyZXR1cm4gbnVsbD09dD9QOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcih0KX19ZnVuY3Rpb24gUigpe3JldHVybltdfWZ1bmN0aW9uIEwodCl7cmV0dXJuIG51bGw9PXQ/UjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fWZ1bmN0aW9uIEQodCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gVSh0LG4pe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189bn1mdW5jdGlvbiBxKHQsbixlLHIsaSxvKXtmb3IodmFyIGEsdT0wLGY9bi5sZW5ndGgsYz1vLmxlbmd0aDt1PGM7Kyt1KShhPW5bdV0pPyhhLl9fZGF0YV9fPW9bdV0sclt1XT1hKTplW3VdPW5ldyBVKHQsb1t1XSk7Zm9yKDt1PGY7Kyt1KShhPW5bdV0pJiYoaVt1XT1hKX1mdW5jdGlvbiBPKHQsbixlLHIsaSxvLGEpe3ZhciB1LGYsYyxzPXt9LGw9bi5sZW5ndGgsaD1vLmxlbmd0aCxkPW5ldyBBcnJheShsKTtmb3IodT0wO3U8bDsrK3UpKGY9blt1XSkmJihkW3VdPWM9bXMrYS5jYWxsKGYsZi5fX2RhdGFfXyx1LG4pLGMgaW4gcz9pW3VdPWY6c1tjXT1mKTtmb3IodT0wO3U8aDsrK3UpKGY9c1tjPW1zK2EuY2FsbCh0LG9bdV0sdSxvKV0pPyhyW3VdPWYsZi5fX2RhdGFfXz1vW3VdLHNbY109bnVsbCk6ZVt1XT1uZXcgVSh0LG9bdV0pO2Zvcih1PTA7dTxsOysrdSkoZj1uW3VdKSYmc1tkW3VdXT09PWYmJihpW3VdPWYpfWZ1bmN0aW9uIFkodCxuKXtyZXR1cm4gdDxuPy0xOnQ+bj8xOnQ+PW4/MDpOYU59ZnVuY3Rpb24gQih0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gRih0LG4pe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUobil8fEIodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUobil9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pfWZ1bmN0aW9uIGoodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgSCh0KX1mdW5jdGlvbiBIKHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1JKHQuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCIpfWZ1bmN0aW9uIFgodCxuKXtmb3IodmFyIGU9aih0KSxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KWUuYWRkKG5bcl0pfWZ1bmN0aW9uIEcodCxuKXtmb3IodmFyIGU9aih0KSxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KWUucmVtb3ZlKG5bcl0pfWZ1bmN0aW9uIFYoKXt0aGlzLnRleHRDb250ZW50PVwiXCJ9ZnVuY3Rpb24gJCgpe3RoaXMuaW5uZXJIVE1MPVwiXCJ9ZnVuY3Rpb24gVygpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBaKCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gUSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIEooKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBLKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jbG9uZU5vZGUoITEpLHRoaXMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIHR0KCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jbG9uZU5vZGUoITApLHRoaXMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIG50KHQsbixlKXtyZXR1cm4gdD1ldCh0LG4sZSksZnVuY3Rpb24obil7dmFyIGU9bi5yZWxhdGVkVGFyZ2V0O2UmJihlPT09dGhpc3x8OCZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsbil9fWZ1bmN0aW9uIGV0KG4sZSxyKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIG89dC5ldmVudDt0LmV2ZW50PWk7dHJ5e24uY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxyKX1maW5hbGx5e3QuZXZlbnQ9b319fWZ1bmN0aW9uIHJ0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMuX19vbjtpZihuKXtmb3IodmFyIGUscj0wLGk9LTEsbz1uLmxlbmd0aDtyPG87KytyKWU9bltyXSx0LnR5cGUmJmUudHlwZSE9PXQudHlwZXx8ZS5uYW1lIT09dC5uYW1lP25bKytpXT1lOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLnR5cGUsZS5saXN0ZW5lcixlLmNhcHR1cmUpOysraT9uLmxlbmd0aD1pOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBpdCh0LG4sZSl7dmFyIHI9eHMuaGFzT3duUHJvcGVydHkodC50eXBlKT9udDpldDtyZXR1cm4gZnVuY3Rpb24oaSxvLGEpe3ZhciB1LGY9dGhpcy5fX29uLGM9cihuLG8sYSk7aWYoZilmb3IodmFyIHM9MCxsPWYubGVuZ3RoO3M8bDsrK3MpaWYoKHU9ZltzXSkudHlwZT09PXQudHlwZSYmdS5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodS50eXBlLHUubGlzdGVuZXIsdS5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIodS50eXBlLHUubGlzdGVuZXI9Yyx1LmNhcHR1cmU9ZSksdm9pZCh1LnZhbHVlPW4pO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxlKSx1PXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTpuLGxpc3RlbmVyOmMsY2FwdHVyZTplfSxmP2YucHVzaCh1KTp0aGlzLl9fb249W3VdfX1mdW5jdGlvbiBvdChuLGUscixpKXt2YXIgbz10LmV2ZW50O24uc291cmNlRXZlbnQ9dC5ldmVudCx0LmV2ZW50PW47dHJ5e3JldHVybiBlLmFwcGx5KHIsaSl9ZmluYWxseXt0LmV2ZW50PW99fWZ1bmN0aW9uIGF0KHQsbixlKXt2YXIgcj1CKHQpLGk9ci5DdXN0b21FdmVudDtcImZ1bmN0aW9uXCI9PXR5cGVvZiBpP2k9bmV3IGkobixlKTooaT1yLmRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiRXZlbnRcIiksZT8oaS5pbml0RXZlbnQobixlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlKSxpLmRldGFpbD1lLmRldGFpbCk6aS5pbml0RXZlbnQobiwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChpKX1mdW5jdGlvbiB1dCh0LG4pe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9bn1mdW5jdGlvbiBmdCgpe3JldHVybiBuZXcgdXQoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSx3cyl9ZnVuY3Rpb24gY3QodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/bmV3IHV0KFtbZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgdXQoW1t0XV0sd3MpfWZ1bmN0aW9uIHN0KCl7cmV0dXJuIG5ldyBsdH1mdW5jdGlvbiBsdCgpe3RoaXMuXz1cIkBcIisoKytNcykudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIGh0KCl7Zm9yKHZhciBuLGU9dC5ldmVudDtuPWUuc291cmNlRXZlbnQ7KWU9bjtyZXR1cm4gZX1mdW5jdGlvbiBkdCh0LG4pe3ZhciBlPXQub3duZXJTVkdFbGVtZW50fHx0O2lmKGUuY3JlYXRlU1ZHUG9pbnQpe3ZhciByPWUuY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gci54PW4uY2xpZW50WCxyLnk9bi5jbGllbnRZLHI9ci5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpLFtyLngsci55XX12YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltuLmNsaWVudFgtaS5sZWZ0LXQuY2xpZW50TGVmdCxuLmNsaWVudFktaS50b3AtdC5jbGllbnRUb3BdfWZ1bmN0aW9uIHB0KHQpe3ZhciBuPWh0KCk7cmV0dXJuIG4uY2hhbmdlZFRvdWNoZXMmJihuPW4uY2hhbmdlZFRvdWNoZXNbMF0pLGR0KHQsbil9ZnVuY3Rpb24gdnQodCxuLGUpe2FyZ3VtZW50cy5sZW5ndGg8MyYmKGU9bixuPWh0KCkuY2hhbmdlZFRvdWNoZXMpO2Zvcih2YXIgcixpPTAsbz1uP24ubGVuZ3RoOjA7aTxvOysraSlpZigocj1uW2ldKS5pZGVudGlmaWVyPT09ZSlyZXR1cm4gZHQodCxyKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBndCgpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24geXQoKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBfdCh0KXt2YXIgbj10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxlPWN0KHQpLm9uKFwiZHJhZ3N0YXJ0LmRyYWdcIix5dCwhMCk7XCJvbnNlbGVjdHN0YXJ0XCJpbiBuP2Uub24oXCJzZWxlY3RzdGFydC5kcmFnXCIseXQsITApOihuLl9fbm9zZWxlY3Q9bi5zdHlsZS5Nb3pVc2VyU2VsZWN0LG4uc3R5bGUuTW96VXNlclNlbGVjdD1cIm5vbmVcIil9ZnVuY3Rpb24gYnQodCxuKXt2YXIgZT10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPWN0KHQpLm9uKFwiZHJhZ3N0YXJ0LmRyYWdcIixudWxsKTtuJiYoci5vbihcImNsaWNrLmRyYWdcIix5dCwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe3Iub24oXCJjbGljay5kcmFnXCIsbnVsbCl9LDApKSxcIm9uc2VsZWN0c3RhcnRcImluIGU/ci5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIixudWxsKTooZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PWUuX19ub3NlbGVjdCxkZWxldGUgZS5fX25vc2VsZWN0KX1mdW5jdGlvbiBtdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24geHQodCxuLGUscixpLG8sYSx1LGYsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnN1YmplY3Q9ZSx0aGlzLmlkZW50aWZpZXI9cix0aGlzLmFjdGl2ZT1pLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9dSx0aGlzLmR5PWYsdGhpcy5fPWN9ZnVuY3Rpb24gd3QoKXtyZXR1cm4hdC5ldmVudC5idXR0b259ZnVuY3Rpb24gTXQoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfWZ1bmN0aW9uIEF0KG4pe3JldHVybiBudWxsPT1uP3t4OnQuZXZlbnQueCx5OnQuZXZlbnQueX06bn1mdW5jdGlvbiBUdCgpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiB0aGlzfWZ1bmN0aW9uIE50KHQsbixlKXt0LnByb3RvdHlwZT1uLnByb3RvdHlwZT1lLGUuY29uc3RydWN0b3I9dH1mdW5jdGlvbiBTdCh0LG4pe3ZhciBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXTtyZXR1cm4gZX1mdW5jdGlvbiBFdCgpe31mdW5jdGlvbiBrdCh0KXt2YXIgbjtyZXR1cm4gdD0odCtcIlwiKS50cmltKCkudG9Mb3dlckNhc2UoKSwobj1Tcy5leGVjKHQpKT8obj1wYXJzZUludChuWzFdLDE2KSxuZXcgTHQobj4+OCYxNXxuPj40JjI0MCxuPj40JjE1fDI0MCZuLCgxNSZuKTw8NHwxNSZuLDEpKToobj1Fcy5leGVjKHQpKT9DdChwYXJzZUludChuWzFdLDE2KSk6KG49a3MuZXhlYyh0KSk/bmV3IEx0KG5bMV0sblsyXSxuWzNdLDEpOihuPUNzLmV4ZWModCkpP25ldyBMdCgyNTUqblsxXS8xMDAsMjU1Km5bMl0vMTAwLDI1NSpuWzNdLzEwMCwxKToobj1Qcy5leGVjKHQpKT9QdChuWzFdLG5bMl0sblszXSxuWzRdKToobj16cy5leGVjKHQpKT9QdCgyNTUqblsxXS8xMDAsMjU1Km5bMl0vMTAwLDI1NSpuWzNdLzEwMCxuWzRdKToobj1Scy5leGVjKHQpKT9VdChuWzFdLG5bMl0vMTAwLG5bM10vMTAwLDEpOihuPUxzLmV4ZWModCkpP1V0KG5bMV0sblsyXS8xMDAsblszXS8xMDAsbls0XSk6RHMuaGFzT3duUHJvcGVydHkodCk/Q3QoRHNbdF0pOlwidHJhbnNwYXJlbnRcIj09PXQ/bmV3IEx0KE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gQ3QodCl7cmV0dXJuIG5ldyBMdCh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gUHQodCxuLGUscil7cmV0dXJuIHI8PTAmJih0PW49ZT1OYU4pLG5ldyBMdCh0LG4sZSxyKX1mdW5jdGlvbiB6dCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEV0fHwodD1rdCh0KSksdD8odD10LnJnYigpLG5ldyBMdCh0LnIsdC5nLHQuYix0Lm9wYWNpdHkpKTpuZXcgTHR9ZnVuY3Rpb24gUnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3p0KHQpOm5ldyBMdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gTHQodCxuLGUscil7dGhpcy5yPSt0LHRoaXMuZz0rbix0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIER0KHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2P1wiMFwiOlwiXCIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFV0KHQsbixlLHIpe3JldHVybiByPD0wP3Q9bj1lPU5hTjplPD0wfHxlPj0xP3Q9bj1OYU46bjw9MCYmKHQ9TmFOKSxuZXcgT3QodCxuLGUscil9ZnVuY3Rpb24gcXQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBPdClyZXR1cm4gbmV3IE90KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEV0fHwodD1rdCh0KSksIXQpcmV0dXJuIG5ldyBPdDtpZih0IGluc3RhbmNlb2YgT3QpcmV0dXJuIHQ7dmFyIG49KHQ9dC5yZ2IoKSkuci8yNTUsZT10LmcvMjU1LHI9dC5iLzI1NSxpPU1hdGgubWluKG4sZSxyKSxvPU1hdGgubWF4KG4sZSxyKSxhPU5hTix1PW8taSxmPShvK2kpLzI7cmV0dXJuIHU/KGE9bj09PW8/KGUtcikvdSs2KihlPHIpOmU9PT1vPyhyLW4pL3UrMjoobi1lKS91KzQsdS89ZjwuNT9vK2k6Mi1vLWksYSo9NjApOnU9Zj4wJiZmPDE/MDphLG5ldyBPdChhLHUsZix0Lm9wYWNpdHkpfSh0KTpuZXcgT3QodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIE90KHQsbixlLHIpe3RoaXMuaD0rdCx0aGlzLnM9K24sdGhpcy5sPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBZdCh0LG4sZSl7cmV0dXJuIDI1NSoodDw2MD9uKyhlLW4pKnQvNjA6dDwxODA/ZTp0PDI0MD9uKyhlLW4pKigyNDAtdCkvNjA6bil9ZnVuY3Rpb24gQnQodCl7aWYodCBpbnN0YW5jZW9mIEl0KXJldHVybiBuZXcgSXQodC5sLHQuYSx0LmIsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgV3Qpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBJdCh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIG49dC5oKlVzO3JldHVybiBuZXcgSXQodC5sLE1hdGguY29zKG4pKnQuYyxNYXRoLnNpbihuKSp0LmMsdC5vcGFjaXR5KX10IGluc3RhbmNlb2YgTHR8fCh0PXp0KHQpKTt2YXIgZSxyLGk9R3QodC5yKSxvPUd0KHQuZyksYT1HdCh0LmIpLHU9anQoKC4yMjI1MDQ1KmkrLjcxNjg3ODYqbysuMDYwNjE2OSphKS9Zcyk7cmV0dXJuIGk9PT1vJiZvPT09YT9lPXI9dTooZT1qdCgoLjQzNjA3NDcqaSsuMzg1MDY0OSpvKy4xNDMwODA0KmEpL09zKSxyPWp0KCguMDEzOTMyMippKy4wOTcxMDQ1Km8rLjcxNDE3MzMqYSkvQnMpKSxuZXcgSXQoMTE2KnUtMTYsNTAwKihlLXUpLDIwMCoodS1yKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIEZ0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9CdCh0KTpuZXcgSXQodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIEl0KHQsbixlLHIpe3RoaXMubD0rdCx0aGlzLmE9K24sdGhpcy5iPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBqdCh0KXtyZXR1cm4gdD5Icz9NYXRoLnBvdyh0LDEvMyk6dC9qcytGc31mdW5jdGlvbiBIdCh0KXtyZXR1cm4gdD5Jcz90KnQqdDpqcyoodC1Gcyl9ZnVuY3Rpb24gWHQodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBHdCh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBWdCh0KXtpZih0IGluc3RhbmNlb2YgV3QpcmV0dXJuIG5ldyBXdCh0LmgsdC5jLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBJdHx8KHQ9QnQodCkpLDA9PT10LmEmJjA9PT10LmIpcmV0dXJuIG5ldyBXdChOYU4sMCx0LmwsdC5vcGFjaXR5KTt2YXIgbj1NYXRoLmF0YW4yKHQuYix0LmEpKnFzO3JldHVybiBuZXcgV3QobjwwP24rMzYwOm4sTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gJHQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1Z0KHQpOm5ldyBXdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gV3QodCxuLGUscil7dGhpcy5oPSt0LHRoaXMuYz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIFp0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgUXQpcmV0dXJuIG5ldyBRdCh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO3QgaW5zdGFuY2VvZiBMdHx8KHQ9enQodCkpO3ZhciBuPXQuci8yNTUsZT10LmcvMjU1LHI9dC5iLzI1NSxpPShacypyKyRzKm4tV3MqZSkvKFpzKyRzLVdzKSxvPXItaSxhPShWcyooZS1pKS1YcypvKS9Hcyx1PU1hdGguc3FydChhKmErbypvKS8oVnMqaSooMS1pKSksZj11P01hdGguYXRhbjIoYSxvKSpxcy0xMjA6TmFOO3JldHVybiBuZXcgUXQoZjwwP2YrMzYwOmYsdSxpLHQub3BhY2l0eSl9KHQpOm5ldyBRdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gUXQodCxuLGUscil7dGhpcy5oPSt0LHRoaXMucz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIEp0KHQsbixlLHIsaSl7dmFyIG89dCp0LGE9byp0O3JldHVybigoMS0zKnQrMypvLWEpKm4rKDQtNipvKzMqYSkqZSsoMSszKnQrMypvLTMqYSkqcithKmkpLzZ9ZnVuY3Rpb24gS3QodCl7dmFyIG49dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9ZTw9MD9lPTA6ZT49MT8oZT0xLG4tMSk6TWF0aC5mbG9vcihlKm4pLGk9dFtyXSxvPXRbcisxXSxhPXI+MD90W3ItMV06MippLW8sdT1yPG4tMT90W3IrMl06MipvLWk7cmV0dXJuIEp0KChlLXIvbikqbixhLGksbyx1KX19ZnVuY3Rpb24gdG4odCl7dmFyIG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPU1hdGguZmxvb3IoKChlJT0xKTwwPysrZTplKSpuKSxpPXRbKHIrbi0xKSVuXSxvPXRbciVuXSxhPXRbKHIrMSklbl0sdT10WyhyKzIpJW5dO3JldHVybiBKdCgoZS1yL24pKm4saSxvLGEsdSl9fWZ1bmN0aW9uIG5uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBlbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdCtlKm59fWZ1bmN0aW9uIHJuKHQsbil7dmFyIGU9bi10O3JldHVybiBlP2VuKHQsZT4xODB8fGU8LTE4MD9lLTM2MCpNYXRoLnJvdW5kKGUvMzYwKTplKTpubihpc05hTih0KT9uOnQpfWZ1bmN0aW9uIG9uKHQpe3JldHVybiAxPT0odD0rdCk/YW46ZnVuY3Rpb24obixlKXtyZXR1cm4gZS1uP2Z1bmN0aW9uKHQsbixlKXtyZXR1cm4gdD1NYXRoLnBvdyh0LGUpLG49TWF0aC5wb3cobixlKS10LGU9MS9lLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnBvdyh0K3IqbixlKX19KG4sZSx0KTpubihpc05hTihuKT9lOm4pfX1mdW5jdGlvbiBhbih0LG4pe3ZhciBlPW4tdDtyZXR1cm4gZT9lbih0LGUpOm5uKGlzTmFOKHQpP246dCl9ZnVuY3Rpb24gdW4odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlLHIsaT1uLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShpKSx1PW5ldyBBcnJheShpKTtmb3IoZT0wO2U8aTsrK2Upcj1SdChuW2VdKSxvW2VdPXIucnx8MCxhW2VdPXIuZ3x8MCx1W2VdPXIuYnx8MDtyZXR1cm4gbz10KG8pLGE9dChhKSx1PXQodSksci5vcGFjaXR5PTEsZnVuY3Rpb24odCl7cmV0dXJuIHIucj1vKHQpLHIuZz1hKHQpLHIuYj11KHQpLHIrXCJcIn19fWZ1bmN0aW9uIGZuKHQsbil7dmFyIGUscj1uP24ubGVuZ3RoOjAsaT10P01hdGgubWluKHIsdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkocik7Zm9yKGU9MDtlPGk7KytlKW9bZV09ZG4odFtlXSxuW2VdKTtmb3IoO2U8cjsrK2UpYVtlXT1uW2VdO3JldHVybiBmdW5jdGlvbih0KXtmb3IoZT0wO2U8aTsrK2UpYVtlXT1vW2VdKHQpO3JldHVybiBhfX1mdW5jdGlvbiBjbih0LG4pe3ZhciBlPW5ldyBEYXRlO3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24ocil7cmV0dXJuIGUuc2V0VGltZSh0K24qciksZX19ZnVuY3Rpb24gc24odCxuKXtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKGUpe3JldHVybiB0K24qZX19ZnVuY3Rpb24gbG4odCxuKXt2YXIgZSxyPXt9LGk9e307bnVsbCE9PXQmJlwib2JqZWN0XCI9PXR5cGVvZiB0fHwodD17fSksbnVsbCE9PW4mJlwib2JqZWN0XCI9PXR5cGVvZiBufHwobj17fSk7Zm9yKGUgaW4gbillIGluIHQ/cltlXT1kbih0W2VdLG5bZV0pOmlbZV09bltlXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKGUgaW4gcilpW2VdPXJbZV0odCk7cmV0dXJuIGl9fWZ1bmN0aW9uIGhuKHQsbil7dmFyIGUscixpLG89YWwubGFzdEluZGV4PXVsLmxhc3RJbmRleD0wLGE9LTEsdT1bXSxmPVtdO2Zvcih0Kz1cIlwiLG4rPVwiXCI7KGU9YWwuZXhlYyh0KSkmJihyPXVsLmV4ZWMobikpOykoaT1yLmluZGV4KT5vJiYoaT1uLnNsaWNlKG8saSksdVthXT91W2FdKz1pOnVbKythXT1pKSwoZT1lWzBdKT09PShyPXJbMF0pP3VbYV0/dVthXSs9cjp1WysrYV09cjoodVsrK2FdPW51bGwsZi5wdXNoKHtpOmEseDpzbihlLHIpfSkpLG89dWwubGFzdEluZGV4O3JldHVybiBvPG4ubGVuZ3RoJiYoaT1uLnNsaWNlKG8pLHVbYV0/dVthXSs9aTp1WysrYV09aSksdS5sZW5ndGg8Mj9mWzBdP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChuKStcIlwifX0oZlswXS54KTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KG4pOihuPWYubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTA7cjxuOysrcil1WyhlPWZbcl0pLmldPWUueCh0KTtyZXR1cm4gdS5qb2luKFwiXCIpfSl9ZnVuY3Rpb24gZG4odCxuKXt2YXIgZSxyPXR5cGVvZiBuO3JldHVybiBudWxsPT1ufHxcImJvb2xlYW5cIj09PXI/bm4obik6KFwibnVtYmVyXCI9PT1yP3NuOlwic3RyaW5nXCI9PT1yPyhlPWt0KG4pKT8obj1lLHJsKTpobjpuIGluc3RhbmNlb2Yga3Q/cmw6biBpbnN0YW5jZW9mIERhdGU/Y246QXJyYXkuaXNBcnJheShuKT9mbjpcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnZhbHVlT2YmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udG9TdHJpbmd8fGlzTmFOKG4pP2xuOnNuKSh0LG4pfWZ1bmN0aW9uIHBuKHQsbil7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZCh0K24qZSl9fWZ1bmN0aW9uIHZuKHQsbixlLHIsaSxvKXt2YXIgYSx1LGY7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtuKm4pKSYmKHQvPWEsbi89YSksKGY9dCplK24qcikmJihlLT10KmYsci09bipmKSwodT1NYXRoLnNxcnQoZSplK3IqcikpJiYoZS89dSxyLz11LGYvPXUpLHQqcjxuKmUmJih0PS10LG49LW4sZj0tZixhPS1hKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihuLHQpKmZsLHNrZXdYOk1hdGguYXRhbihmKSpmbCxzY2FsZVg6YSxzY2FsZVk6dX19ZnVuY3Rpb24gZ24odCxuLGUscil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKStcIiBcIjpcIlwifXJldHVybiBmdW5jdGlvbihvLGEpe3ZhciB1PVtdLGY9W107cmV0dXJuIG89dChvKSxhPXQoYSksZnVuY3Rpb24odCxyLGksbyxhLHUpe2lmKHQhPT1pfHxyIT09byl7dmFyIGY9YS5wdXNoKFwidHJhbnNsYXRlKFwiLG51bGwsbixudWxsLGUpO3UucHVzaCh7aTpmLTQseDpzbih0LGkpfSx7aTpmLTIseDpzbihyLG8pfSl9ZWxzZShpfHxvKSYmYS5wdXNoKFwidHJhbnNsYXRlKFwiK2krbitvK2UpfShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVksdSxmKSxmdW5jdGlvbih0LG4sZSxvKXt0IT09bj8odC1uPjE4MD9uKz0zNjA6bi10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOmUucHVzaChpKGUpK1wicm90YXRlKFwiLG51bGwsciktMix4OnNuKHQsbil9KSk6biYmZS5wdXNoKGkoZSkrXCJyb3RhdGUoXCIrbityKX0oby5yb3RhdGUsYS5yb3RhdGUsdSxmKSxmdW5jdGlvbih0LG4sZSxvKXt0IT09bj9vLnB1c2goe2k6ZS5wdXNoKGkoZSkrXCJza2V3WChcIixudWxsLHIpLTIseDpzbih0LG4pfSk6biYmZS5wdXNoKGkoZSkrXCJza2V3WChcIituK3IpfShvLnNrZXdYLGEuc2tld1gsdSxmKSxmdW5jdGlvbih0LG4sZSxyLG8sYSl7aWYodCE9PWV8fG4hPT1yKXt2YXIgdT1vLnB1c2goaShvKStcInNjYWxlKFwiLG51bGwsXCIsXCIsbnVsbCxcIilcIik7YS5wdXNoKHtpOnUtNCx4OnNuKHQsZSl9LHtpOnUtMix4OnNuKG4scil9KX1lbHNlIDE9PT1lJiYxPT09cnx8by5wdXNoKGkobykrXCJzY2FsZShcIitlK1wiLFwiK3IrXCIpXCIpfShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSx1LGYpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPS0xLHI9Zi5sZW5ndGg7KytlPHI7KXVbKG49ZltlXSkuaV09bi54KHQpO3JldHVybiB1LmpvaW4oXCJcIil9fX1mdW5jdGlvbiB5bih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBfbih0LG4pe3ZhciBlLHIsaT10WzBdLG89dFsxXSxhPXRbMl0sdT1uWzBdLGY9blsxXSxjPW5bMl0scz11LWksbD1mLW8saD1zKnMrbCpsO2lmKGg8dmwpcj1NYXRoLmxvZyhjL2EpL2hsLGU9ZnVuY3Rpb24odCl7cmV0dXJuW2krdCpzLG8rdCpsLGEqTWF0aC5leHAoaGwqdCpyKV19O2Vsc2V7dmFyIGQ9TWF0aC5zcXJ0KGgpLHA9KGMqYy1hKmErcGwqaCkvKDIqYSpkbCpkKSx2PShjKmMtYSphLXBsKmgpLygyKmMqZGwqZCksZz1NYXRoLmxvZyhNYXRoLnNxcnQocCpwKzEpLXApLHk9TWF0aC5sb2coTWF0aC5zcXJ0KHYqdisxKS12KTtyPSh5LWcpL2hsLGU9ZnVuY3Rpb24odCl7dmFyIG49dCpyLGU9eW4oZyksdT1hLyhkbCpkKSooZSpmdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KGhsKm4rZyktZnVuY3Rpb24odCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9KGcpKTtyZXR1cm5baSt1KnMsbyt1KmwsYSplL3luKGhsKm4rZyldfX1yZXR1cm4gZS5kdXJhdGlvbj0xZTMqcixlfWZ1bmN0aW9uIGJuKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQoKG49cXQobikpLmgsKGU9cXQoZSkpLmgpLGk9YW4obi5zLGUucyksbz1hbihuLmwsZS5sKSxhPWFuKG4ub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbi5oPXIodCksbi5zPWkodCksbi5sPW8odCksbi5vcGFjaXR5PWEodCksbitcIlwifX19ZnVuY3Rpb24gbW4odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dCgobj0kdChuKSkuaCwoZT0kdChlKSkuaCksaT1hbihuLmMsZS5jKSxvPWFuKG4ubCxlLmwpLGE9YW4obi5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9cih0KSxuLmM9aSh0KSxuLmw9byh0KSxuLm9wYWNpdHk9YSh0KSxuK1wiXCJ9fX1mdW5jdGlvbiB4bih0KXtyZXR1cm4gZnVuY3Rpb24gbihlKXtmdW5jdGlvbiByKG4scil7dmFyIGk9dCgobj1adChuKSkuaCwocj1adChyKSkuaCksbz1hbihuLnMsci5zKSxhPWFuKG4ubCxyLmwpLHU9YW4obi5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9aSh0KSxuLnM9byh0KSxuLmw9YShNYXRoLnBvdyh0LGUpKSxuLm9wYWNpdHk9dSh0KSxuK1wiXCJ9fXJldHVybiBlPStlLHIuZ2FtbWE9bixyfSgxKX1mdW5jdGlvbiB3bigpe3JldHVybiBTbHx8KENsKE1uKSxTbD1rbC5ub3coKStFbCl9ZnVuY3Rpb24gTW4oKXtTbD0wfWZ1bmN0aW9uIEFuKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBUbih0LG4sZSl7dmFyIHI9bmV3IEFuO3JldHVybiByLnJlc3RhcnQodCxuLGUpLHJ9ZnVuY3Rpb24gTm4oKXt3bigpLCsrd2w7Zm9yKHZhciB0LG49bmw7bjspKHQ9U2wtbi5fdGltZSk+PTAmJm4uX2NhbGwuY2FsbChudWxsLHQpLG49bi5fbmV4dDstLXdsfWZ1bmN0aW9uIFNuKCl7U2w9KE5sPWtsLm5vdygpKStFbCx3bD1NbD0wO3RyeXtObigpfWZpbmFsbHl7d2w9MCxmdW5jdGlvbigpe3ZhciB0LG4sZT1ubCxyPTEvMDtmb3IoO2U7KWUuX2NhbGw/KHI+ZS5fdGltZSYmKHI9ZS5fdGltZSksdD1lLGU9ZS5fbmV4dCk6KG49ZS5fbmV4dCxlLl9uZXh0PW51bGwsZT10P3QuX25leHQ9bjpubD1uKTtlbD10LGtuKHIpfSgpLFNsPTB9fWZ1bmN0aW9uIEVuKCl7dmFyIHQ9a2wubm93KCksbj10LU5sO24+VGwmJihFbC09bixObD10KX1mdW5jdGlvbiBrbih0KXtpZighd2wpe01sJiYoTWw9Y2xlYXJUaW1lb3V0KE1sKSk7dC1TbD4yND8odDwxLzAmJihNbD1zZXRUaW1lb3V0KFNuLHQta2wubm93KCktRWwpKSxBbCYmKEFsPWNsZWFySW50ZXJ2YWwoQWwpKSk6KEFsfHwoTmw9a2wubm93KCksQWw9c2V0SW50ZXJ2YWwoRW4sVGwpKSx3bD0xLENsKFNuKSl9fWZ1bmN0aW9uIENuKHQsbixlKXt2YXIgcj1uZXcgQW47cmV0dXJuIG49bnVsbD09bj8wOituLHIucmVzdGFydChmdW5jdGlvbihlKXtyLnN0b3AoKSx0KGUrbil9LG4sZSkscn1mdW5jdGlvbiBQbih0LG4sZSxyLGksbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYoZSBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyhmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcihmKXt2YXIgYyxzLGwsaDtpZihlLnN0YXRlIT09TGwpcmV0dXJuIG8oKTtmb3IoYyBpbiB1KWlmKChoPXVbY10pLm5hbWU9PT1lLm5hbWUpe2lmKGguc3RhdGU9PT1VbClyZXR1cm4gQ24ocik7aC5zdGF0ZT09PXFsPyhoLnN0YXRlPVlsLGgudGltZXIuc3RvcCgpLGgub24uY2FsbChcImludGVycnVwdFwiLHQsdC5fX2RhdGFfXyxoLmluZGV4LGguZ3JvdXApLGRlbGV0ZSB1W2NdKTorYzxuJiYoaC5zdGF0ZT1ZbCxoLnRpbWVyLnN0b3AoKSxkZWxldGUgdVtjXSl9aWYoQ24oZnVuY3Rpb24oKXtlLnN0YXRlPT09VWwmJihlLnN0YXRlPXFsLGUudGltZXIucmVzdGFydChpLGUuZGVsYXksZS50aW1lKSxpKGYpKX0pLGUuc3RhdGU9RGwsZS5vbi5jYWxsKFwic3RhcnRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxlLnN0YXRlPT09RGwpe2ZvcihlLnN0YXRlPVVsLGE9bmV3IEFycmF5KGw9ZS50d2Vlbi5sZW5ndGgpLGM9MCxzPS0xO2M8bDsrK2MpKGg9ZS50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApKSYmKGFbKytzXT1oKTthLmxlbmd0aD1zKzF9fWZ1bmN0aW9uIGkobil7Zm9yKHZhciByPW48ZS5kdXJhdGlvbj9lLmVhc2UuY2FsbChudWxsLG4vZS5kdXJhdGlvbik6KGUudGltZXIucmVzdGFydChvKSxlLnN0YXRlPU9sLDEpLGk9LTEsdT1hLmxlbmd0aDsrK2k8dTspYVtpXS5jYWxsKG51bGwscik7ZS5zdGF0ZT09PU9sJiYoZS5vbi5jYWxsKFwiZW5kXCIsdCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCksbygpKX1mdW5jdGlvbiBvKCl7ZS5zdGF0ZT1ZbCxlLnRpbWVyLnN0b3AoKSxkZWxldGUgdVtuXTtmb3IodmFyIHIgaW4gdSlyZXR1cm47ZGVsZXRlIHQuX190cmFuc2l0aW9ufXZhciBhLHU9dC5fX3RyYW5zaXRpb247dVtuXT1lLGUudGltZXI9VG4oZnVuY3Rpb24odCl7ZS5zdGF0ZT1MbCxlLnRpbWVyLnJlc3RhcnQocixlLmRlbGF5LGUudGltZSksZS5kZWxheTw9dCYmcih0LWUuZGVsYXkpfSwwLGUudGltZSl9KSh0LGUse25hbWU6bixpbmRleDpyLGdyb3VwOmksb246UGwsdHdlZW46emwsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6Umx9KX1mdW5jdGlvbiB6bih0LG4pe3ZhciBlPUxuKHQsbik7aWYoZS5zdGF0ZT5SbCl0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gUm4odCxuKXt2YXIgZT1Mbih0LG4pO2lmKGUuc3RhdGU+RGwpdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgc3RhcnRlZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBMbih0LG4pe3ZhciBlPXQuX190cmFuc2l0aW9uO2lmKCFlfHwhKGU9ZVtuXSkpdGhyb3cgbmV3IEVycm9yKFwidHJhbnNpdGlvbiBub3QgZm91bmRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gRG4odCxuKXt2YXIgZSxyLGksbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe249bnVsbD09bj9udWxsOm4rXCJcIjtmb3IoaSBpbiBvKShlPW9baV0pLm5hbWU9PT1uPyhyPWUuc3RhdGU+RGwmJmUuc3RhdGU8T2wsZS5zdGF0ZT1ZbCxlLnRpbWVyLnN0b3AoKSxyJiZlLm9uLmNhbGwoXCJpbnRlcnJ1cHRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxkZWxldGUgb1tpXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIFVuKHQsbixlKXt2YXIgcj10Ll9pZDtyZXR1cm4gdC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Um4odGhpcyxyKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtuXT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGZ1bmN0aW9uKHQpe3JldHVybiBMbih0LHIpLnZhbHVlW25dfX1mdW5jdGlvbiBxbih0LG4pe3ZhciBlO3JldHVybihcIm51bWJlclwiPT10eXBlb2Ygbj9zbjpuIGluc3RhbmNlb2Yga3Q/cmw6KGU9a3QobikpPyhuPWUscmwpOmhuKSh0LG4pfWZ1bmN0aW9uIE9uKHQsbixlLHIpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9bix0aGlzLl9uYW1lPWUsdGhpcy5faWQ9cn1mdW5jdGlvbiBZbih0KXtyZXR1cm4gZnQoKS50cmFuc2l0aW9uKHQpfWZ1bmN0aW9uIEJuKCl7cmV0dXJuKytGbH1mdW5jdGlvbiBGbih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdDotLXQqKDItdCkrMSkvMn1mdW5jdGlvbiBJbih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn1mdW5jdGlvbiBqbih0KXtyZXR1cm4oMS1NYXRoLmNvcyhHbCp0KSkvMn1mdW5jdGlvbiBIbih0KXtyZXR1cm4oKHQqPTIpPD0xP01hdGgucG93KDIsMTAqdC0xMCk6Mi1NYXRoLnBvdygyLDEwLTEwKnQpKS8yfWZ1bmN0aW9uIFhuKHQpe3JldHVybigodCo9Mik8PTE/MS1NYXRoLnNxcnQoMS10KnQpOk1hdGguc3FydCgxLSh0LT0yKSp0KSsxKS8yfWZ1bmN0aW9uIEduKHQpe3JldHVybih0PSt0KTwkbD9yaCp0KnQ6dDxabD9yaCoodC09V2wpKnQrUWw6dDxLbD9yaCoodC09SmwpKnQrdGg6cmgqKHQtPW5oKSp0K2VofWZ1bmN0aW9uIFZuKHQsbil7Zm9yKHZhciBlOyEoZT10Ll9fdHJhbnNpdGlvbil8fCEoZT1lW25dKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIGxoLnRpbWU9d24oKSxsaDtyZXR1cm4gZX1mdW5jdGlvbiAkbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gV24oKXt0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFpuKCl7dC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpLHQuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gUW4odCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gSm4oKXtyZXR1cm4hdC5ldmVudC5idXR0b259ZnVuY3Rpb24gS24oKXt2YXIgdD10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm5bWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gdGUodCl7Zm9yKDshdC5fX2JydXNoOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHQuX19icnVzaH1mdW5jdGlvbiBuZSh0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfWZ1bmN0aW9uIGVlKG4pe2Z1bmN0aW9uIGUodCl7dmFyIGU9dC5wcm9wZXJ0eShcIl9fYnJ1c2hcIix1KS5zZWxlY3RBbGwoXCIub3ZlcmxheVwiKS5kYXRhKFtRbihcIm92ZXJsYXlcIildKTtlLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixcIm92ZXJsYXlcIikuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJhbGxcIikuYXR0cihcImN1cnNvclwiLG1oLm92ZXJsYXkpLm1lcmdlKGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10ZSh0aGlzKS5leHRlbnQ7Y3QodGhpcykuYXR0cihcInhcIix0WzBdWzBdKS5hdHRyKFwieVwiLHRbMF1bMV0pLmF0dHIoXCJ3aWR0aFwiLHRbMV1bMF0tdFswXVswXSkuYXR0cihcImhlaWdodFwiLHRbMV1bMV0tdFswXVsxXSl9KSx0LnNlbGVjdEFsbChcIi5zZWxlY3Rpb25cIikuZGF0YShbUW4oXCJzZWxlY3Rpb25cIildKS5lbnRlcigpLmFwcGVuZChcInJlY3RcIikuYXR0cihcImNsYXNzXCIsXCJzZWxlY3Rpb25cIikuYXR0cihcImN1cnNvclwiLG1oLnNlbGVjdGlvbikuYXR0cihcImZpbGxcIixcIiM3NzdcIikuYXR0cihcImZpbGwtb3BhY2l0eVwiLC4zKS5hdHRyKFwic3Ryb2tlXCIsXCIjZmZmXCIpLmF0dHIoXCJzaGFwZS1yZW5kZXJpbmdcIixcImNyaXNwRWRnZXNcIik7dmFyIGk9dC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpLmRhdGEobi5oYW5kbGVzLGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KTtpLmV4aXQoKS5yZW1vdmUoKSxpLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixmdW5jdGlvbih0KXtyZXR1cm5cImhhbmRsZSBoYW5kbGUtLVwiK3QudHlwZX0pLmF0dHIoXCJjdXJzb3JcIixmdW5jdGlvbih0KXtyZXR1cm4gbWhbdC50eXBlXX0pLHQuZWFjaChyKS5hdHRyKFwiZmlsbFwiLFwibm9uZVwiKS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKS5vbihcIm1vdXNlZG93bi5icnVzaCB0b3VjaHN0YXJ0LmJydXNoXCIsYSl9ZnVuY3Rpb24gcigpe3ZhciB0PWN0KHRoaXMpLG49dGUodGhpcykuc2VsZWN0aW9uO24/KHQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKS5zdHlsZShcImRpc3BsYXlcIixudWxsKS5hdHRyKFwieFwiLG5bMF1bMF0pLmF0dHIoXCJ5XCIsblswXVsxXSkuYXR0cihcIndpZHRoXCIsblsxXVswXS1uWzBdWzBdKS5hdHRyKFwiaGVpZ2h0XCIsblsxXVsxXS1uWzBdWzFdKSx0LnNlbGVjdEFsbChcIi5oYW5kbGVcIikuc3R5bGUoXCJkaXNwbGF5XCIsbnVsbCkuYXR0cihcInhcIixmdW5jdGlvbih0KXtyZXR1cm5cImVcIj09PXQudHlwZVt0LnR5cGUubGVuZ3RoLTFdP25bMV1bMF0taC8yOm5bMF1bMF0taC8yfSkuYXR0cihcInlcIixmdW5jdGlvbih0KXtyZXR1cm5cInNcIj09PXQudHlwZVswXT9uWzFdWzFdLWgvMjpuWzBdWzFdLWgvMn0pLmF0dHIoXCJ3aWR0aFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiblwiPT09dC50eXBlfHxcInNcIj09PXQudHlwZT9uWzFdWzBdLW5bMF1bMF0raDpofSkuYXR0cihcImhlaWdodFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiZVwiPT09dC50eXBlfHxcIndcIj09PXQudHlwZT9uWzFdWzFdLW5bMF1bMV0raDpofSkpOnQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvbiwuaGFuZGxlXCIpLnN0eWxlKFwiZGlzcGxheVwiLFwibm9uZVwiKS5hdHRyKFwieFwiLG51bGwpLmF0dHIoXCJ5XCIsbnVsbCkuYXR0cihcIndpZHRoXCIsbnVsbCkuYXR0cihcImhlaWdodFwiLG51bGwpfWZ1bmN0aW9uIGkodCxuKXtyZXR1cm4gdC5fX2JydXNoLmVtaXR0ZXJ8fG5ldyBvKHQsbil9ZnVuY3Rpb24gbyh0LG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1uLHRoaXMuc3RhdGU9dC5fX2JydXNoLHRoaXMuYWN0aXZlPTB9ZnVuY3Rpb24gYSgpe2Z1bmN0aW9uIGUoKXt2YXIgdD1wdCh3KTshTHx8bXx8eHx8KE1hdGguYWJzKHRbMF0tVVswXSk+TWF0aC5hYnModFsxXS1VWzFdKT94PSEwOm09ITApLFU9dCxiPSEwLFpuKCksbygpfWZ1bmN0aW9uIG8oKXt2YXIgdDtzd2l0Y2goeT1VWzBdLURbMF0sXz1VWzFdLURbMV0sQSl7Y2FzZSBwaDpjYXNlIGRoOlQmJih5PU1hdGgubWF4KEMtdSxNYXRoLm1pbih6LWQseSkpLGM9dSt5LHA9ZCt5KSxOJiYoXz1NYXRoLm1heChQLWwsTWF0aC5taW4oUi12LF8pKSxoPWwrXyxnPXYrXyk7YnJlYWs7Y2FzZSB2aDpUPDA/KHk9TWF0aC5tYXgoQy11LE1hdGgubWluKHotdSx5KSksYz11K3kscD1kKTpUPjAmJih5PU1hdGgubWF4KEMtZCxNYXRoLm1pbih6LWQseSkpLGM9dSxwPWQreSksTjwwPyhfPU1hdGgubWF4KFAtbCxNYXRoLm1pbihSLWwsXykpLGg9bCtfLGc9dik6Tj4wJiYoXz1NYXRoLm1heChQLXYsTWF0aC5taW4oUi12LF8pKSxoPWwsZz12K18pO2JyZWFrO2Nhc2UgZ2g6VCYmKGM9TWF0aC5tYXgoQyxNYXRoLm1pbih6LHUteSpUKSkscD1NYXRoLm1heChDLE1hdGgubWluKHosZCt5KlQpKSksTiYmKGg9TWF0aC5tYXgoUCxNYXRoLm1pbihSLGwtXypOKSksZz1NYXRoLm1heChQLE1hdGgubWluKFIsditfKk4pKSl9cDxjJiYoVCo9LTEsdD11LHU9ZCxkPXQsdD1jLGM9cCxwPXQsTSBpbiB4aCYmWS5hdHRyKFwiY3Vyc29yXCIsbWhbTT14aFtNXV0pKSxnPGgmJihOKj0tMSx0PWwsbD12LHY9dCx0PWgsaD1nLGc9dCxNIGluIHdoJiZZLmF0dHIoXCJjdXJzb3JcIixtaFtNPXdoW01dXSkpLFMuc2VsZWN0aW9uJiYoaz1TLnNlbGVjdGlvbiksbSYmKGM9a1swXVswXSxwPWtbMV1bMF0pLHgmJihoPWtbMF1bMV0sZz1rWzFdWzFdKSxrWzBdWzBdPT09YyYma1swXVsxXT09PWgmJmtbMV1bMF09PT1wJiZrWzFdWzFdPT09Z3x8KFMuc2VsZWN0aW9uPVtbYyxoXSxbcCxnXV0sci5jYWxsKHcpLHEuYnJ1c2goKSl9ZnVuY3Rpb24gYSgpe2lmKFduKCksdC5ldmVudC50b3VjaGVzKXtpZih0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXJldHVybjtmJiZjbGVhclRpbWVvdXQoZiksZj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zj1udWxsfSw1MDApLE8ub24oXCJ0b3VjaG1vdmUuYnJ1c2ggdG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIixudWxsKX1lbHNlIGJ0KHQuZXZlbnQudmlldyxiKSxCLm9uKFwia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaFwiLG51bGwpO08uYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJhbGxcIiksWS5hdHRyKFwiY3Vyc29yXCIsbWgub3ZlcmxheSksUy5zZWxlY3Rpb24mJihrPVMuc2VsZWN0aW9uKSxuZShrKSYmKFMuc2VsZWN0aW9uPW51bGwsci5jYWxsKHcpKSxxLmVuZCgpfWlmKHQuZXZlbnQudG91Y2hlcyl7aWYodC5ldmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg8dC5ldmVudC50b3VjaGVzLmxlbmd0aClyZXR1cm4gWm4oKX1lbHNlIGlmKGYpcmV0dXJuO2lmKHMuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdSxjLGwsaCxkLHAsdixnLHksXyxiLG0seCx3PXRoaXMsTT10LmV2ZW50LnRhcmdldC5fX2RhdGFfXy50eXBlLEE9XCJzZWxlY3Rpb25cIj09PSh0LmV2ZW50Lm1ldGFLZXk/TT1cIm92ZXJsYXlcIjpNKT9kaDp0LmV2ZW50LmFsdEtleT9naDp2aCxUPW49PT1faD9udWxsOk1oW01dLE49bj09PXloP251bGw6QWhbTV0sUz10ZSh3KSxFPVMuZXh0ZW50LGs9Uy5zZWxlY3Rpb24sQz1FWzBdWzBdLFA9RVswXVsxXSx6PUVbMV1bMF0sUj1FWzFdWzFdLEw9VCYmTiYmdC5ldmVudC5zaGlmdEtleSxEPXB0KHcpLFU9RCxxPWkodyxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCk7XCJvdmVybGF5XCI9PT1NP1Muc2VsZWN0aW9uPWs9W1t1PW49PT1faD9DOkRbMF0sbD1uPT09eWg/UDpEWzFdXSxbZD1uPT09X2g/ejp1LHY9bj09PXloP1I6bF1dOih1PWtbMF1bMF0sbD1rWzBdWzFdLGQ9a1sxXVswXSx2PWtbMV1bMV0pLGM9dSxoPWwscD1kLGc9djt2YXIgTz1jdCh3KS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcIm5vbmVcIiksWT1PLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpLmF0dHIoXCJjdXJzb3JcIixtaFtNXSk7aWYodC5ldmVudC50b3VjaGVzKU8ub24oXCJ0b3VjaG1vdmUuYnJ1c2hcIixlLCEwKS5vbihcInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoXCIsYSwhMCk7ZWxzZXt2YXIgQj1jdCh0LmV2ZW50LnZpZXcpLm9uKFwia2V5ZG93bi5icnVzaFwiLGZ1bmN0aW9uKCl7c3dpdGNoKHQuZXZlbnQua2V5Q29kZSl7Y2FzZSAxNjpMPVQmJk47YnJlYWs7Y2FzZSAxODpBPT09dmgmJihUJiYoZD1wLXkqVCx1PWMreSpUKSxOJiYodj1nLV8qTixsPWgrXypOKSxBPWdoLG8oKSk7YnJlYWs7Y2FzZSAzMjpBIT09dmgmJkEhPT1naHx8KFQ8MD9kPXAteTpUPjAmJih1PWMteSksTjwwP3Y9Zy1fOk4+MCYmKGw9aC1fKSxBPXBoLFkuYXR0cihcImN1cnNvclwiLG1oLnNlbGVjdGlvbiksbygpKTticmVhaztkZWZhdWx0OnJldHVybn1abigpfSwhMCkub24oXCJrZXl1cC5icnVzaFwiLGZ1bmN0aW9uKCl7c3dpdGNoKHQuZXZlbnQua2V5Q29kZSl7Y2FzZSAxNjpMJiYobT14PUw9ITEsbygpKTticmVhaztjYXNlIDE4OkE9PT1naCYmKFQ8MD9kPXA6VD4wJiYodT1jKSxOPDA/dj1nOk4+MCYmKGw9aCksQT12aCxvKCkpO2JyZWFrO2Nhc2UgMzI6QT09PXBoJiYodC5ldmVudC5hbHRLZXk/KFQmJihkPXAteSpULHU9Yyt5KlQpLE4mJih2PWctXypOLGw9aCtfKk4pLEE9Z2gpOihUPDA/ZD1wOlQ+MCYmKHU9YyksTjwwP3Y9ZzpOPjAmJihsPWgpLEE9dmgpLFkuYXR0cihcImN1cnNvclwiLG1oW01dKSxvKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufVpuKCl9LCEwKS5vbihcIm1vdXNlbW92ZS5icnVzaFwiLGUsITApLm9uKFwibW91c2V1cC5icnVzaFwiLGEsITApO190KHQuZXZlbnQudmlldyl9V24oKSxEbih3KSxyLmNhbGwodykscS5zdGFydCgpfX1mdW5jdGlvbiB1KCl7dmFyIHQ9dGhpcy5fX2JydXNofHx7c2VsZWN0aW9uOm51bGx9O3JldHVybiB0LmV4dGVudD1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0LmRpbT1uLHR9dmFyIGYsYz1LbixzPUpuLGw9TihlLFwic3RhcnRcIixcImJydXNoXCIsXCJlbmRcIiksaD02O3JldHVybiBlLm1vdmU9ZnVuY3Rpb24odCxlKXt0LnNlbGVjdGlvbj90Lm9uKFwic3RhcnQuYnJ1c2hcIixmdW5jdGlvbigpe2kodGhpcyxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCkuc3RhcnQoKX0pLm9uKFwiaW50ZXJydXB0LmJydXNoIGVuZC5icnVzaFwiLGZ1bmN0aW9uKCl7aSh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbihcImJydXNoXCIsZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe2Euc2VsZWN0aW9uPTE9PT10JiZuZShjKT9udWxsOnModCksci5jYWxsKG8pLHUuYnJ1c2goKX12YXIgbz10aGlzLGE9by5fX2JydXNoLHU9aShvLGFyZ3VtZW50cyksZj1hLnNlbGVjdGlvbixjPW4uaW5wdXQoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLGEuZXh0ZW50KSxzPWRuKGYsYyk7cmV0dXJuIGYmJmM/dDp0KDEpfSk6dC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLG89dGhpcy5fX2JydXNoLGE9bi5pbnB1dChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyx0KTplLG8uZXh0ZW50KSx1PWkodGhpcyx0KS5iZWZvcmVzdGFydCgpO0RuKHRoaXMpLG8uc2VsZWN0aW9uPW51bGw9PWF8fG5lKGEpP251bGw6YSxyLmNhbGwodGhpcyksdS5zdGFydCgpLmJydXNoKCkuZW5kKCl9KX0sby5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nJiYodGhpcy5zdGFydGluZz0hMSx0aGlzLmVtaXQoXCJzdGFydFwiKSksdGhpc30sYnJ1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWl0KFwiYnJ1c2hcIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihkZWxldGUgdGhpcy5zdGF0ZS5lbWl0dGVyLHRoaXMuZW1pdChcImVuZFwiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtvdChuZXcgZnVuY3Rpb24odCxuLGUpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy5zZWxlY3Rpb249ZX0oZSx0LG4ub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSksbC5hcHBseSxsLFt0LHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LGUuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDokbihbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSksZSk6Y30sZS5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OiRuKCEhdCksZSk6c30sZS5oYW5kbGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSt0LGUpOmh9LGUub249ZnVuY3Rpb24oKXt2YXIgdD1sLm9uLmFwcGx5KGwsYXJndW1lbnRzKTtyZXR1cm4gdD09PWw/ZTp0fSxlfWZ1bmN0aW9uIHJlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBpZSgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPVwiXCJ9ZnVuY3Rpb24gb2UoKXtyZXR1cm4gbmV3IGllfWZ1bmN0aW9uIGFlKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiB1ZSh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gZmUodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIGNlKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gc2UodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gbGUoKXt9ZnVuY3Rpb24gaGUodCxuKXt2YXIgZT1uZXcgbGU7aWYodCBpbnN0YW5jZW9mIGxlKXQuZWFjaChmdW5jdGlvbih0LG4pe2Uuc2V0KG4sdCl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciByLGk9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1uKWZvcig7KytpPG87KWUuc2V0KGksdFtpXSk7ZWxzZSBmb3IoOysraTxvOyllLnNldChuKHI9dFtpXSxpLHQpLHIpfWVsc2UgaWYodClmb3IodmFyIGEgaW4gdCllLnNldChhLHRbYV0pO3JldHVybiBlfWZ1bmN0aW9uIGRlKCl7cmV0dXJue319ZnVuY3Rpb24gcGUodCxuLGUpe3Rbbl09ZX1mdW5jdGlvbiB2ZSgpe3JldHVybiBoZSgpfWZ1bmN0aW9uIGdlKHQsbixlKXt0LnNldChuLGUpfWZ1bmN0aW9uIHllKCl7fWZ1bmN0aW9uIF9lKHQsbil7dmFyIGU9bmV3IHllO2lmKHQgaW5zdGFuY2VvZiB5ZSl0LmVhY2goZnVuY3Rpb24odCl7ZS5hZGQodCl9KTtlbHNlIGlmKHQpe3ZhciByPS0xLGk9dC5sZW5ndGg7aWYobnVsbD09bilmb3IoOysrcjxpOyllLmFkZCh0W3JdKTtlbHNlIGZvcig7KytyPGk7KWUuYWRkKG4odFtyXSxyLHQpKX1yZXR1cm4gZX1mdW5jdGlvbiBiZSh0LG4pe3JldHVybiB0LW59ZnVuY3Rpb24gbWUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHhlKHQsbil7Zm9yKHZhciBlLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspaWYoZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uWzBdLHI9blsxXSxpPS0xLG89MCxhPXQubGVuZ3RoLHU9YS0xO288YTt1PW8rKyl7dmFyIGY9dFtvXSxjPWZbMF0scz1mWzFdLGw9dFt1XSxoPWxbMF0sZD1sWzFdO2lmKGZ1bmN0aW9uKHQsbixlKXt2YXIgcjtyZXR1cm4gZnVuY3Rpb24odCxuLGUpe3JldHVybihuWzBdLXRbMF0pKihlWzFdLXRbMV0pPT0oZVswXS10WzBdKSooblsxXS10WzFdKX0odCxuLGUpJiZmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHQ8PW4mJm48PWV8fGU8PW4mJm48PXR9KHRbcj0rKHRbMF09PT1uWzBdKV0sZVtyXSxuW3JdKX0oZixsLG4pKXJldHVybiAwO3M+ciE9ZD5yJiZlPChoLWMpKihyLXMpLyhkLXMpK2MmJihpPS1pKX1yZXR1cm4gaX0odCxuW3JdKSlyZXR1cm4gZTtyZXR1cm4gMH1mdW5jdGlvbiB3ZSgpe31mdW5jdGlvbiBNZSgpe2Z1bmN0aW9uIHQodCl7dmFyIGU9YSh0KTtpZihBcnJheS5pc0FycmF5KGUpKWU9ZS5zbGljZSgpLnNvcnQoYmUpO2Vsc2V7dmFyIHI9dSh0KSxpPXJbMF0sbz1yWzFdO2U9ZChpLG8sZSksZT1zKE1hdGguZmxvb3IoaS9lKSplLE1hdGguZmxvb3Ioby9lKSplLGUpfXJldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbih0LGUpfSl9ZnVuY3Rpb24gbih0LG4pe3ZhciByPVtdLGE9W107cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtmdW5jdGlvbiBhKHQpe3ZhciBuLGksbz1bdFswXVswXSt1LHRbMF1bMV0rZl0sYT1bdFsxXVswXSt1LHRbMV1bMV0rZl0sYz1lKG8pLHM9ZShhKTsobj1wW2NdKT8oaT1kW3NdKT8oZGVsZXRlIHBbbi5lbmRdLGRlbGV0ZSBkW2kuc3RhcnRdLG49PT1pPyhuLnJpbmcucHVzaChhKSxyKG4ucmluZykpOmRbbi5zdGFydF09cFtpLmVuZF09e3N0YXJ0Om4uc3RhcnQsZW5kOmkuZW5kLHJpbmc6bi5yaW5nLmNvbmNhdChpLnJpbmcpfSk6KGRlbGV0ZSBwW24uZW5kXSxuLnJpbmcucHVzaChhKSxwW24uZW5kPXNdPW4pOihuPWRbc10pPyhpPXBbY10pPyhkZWxldGUgZFtuLnN0YXJ0XSxkZWxldGUgcFtpLmVuZF0sbj09PWk/KG4ucmluZy5wdXNoKGEpLHIobi5yaW5nKSk6ZFtpLnN0YXJ0XT1wW24uZW5kXT17c3RhcnQ6aS5zdGFydCxlbmQ6bi5lbmQscmluZzppLnJpbmcuY29uY2F0KG4ucmluZyl9KTooZGVsZXRlIGRbbi5zdGFydF0sbi5yaW5nLnVuc2hpZnQobyksZFtuLnN0YXJ0PWNdPW4pOmRbY109cFtzXT17c3RhcnQ6YyxlbmQ6cyxyaW5nOltvLGFdfX12YXIgdSxmLGMscyxsLGgsZD1uZXcgQXJyYXkscD1uZXcgQXJyYXk7dT1mPS0xLHM9dFswXT49bixxaFtzPDwxXS5mb3JFYWNoKGEpO2Zvcig7Kyt1PGktMTspYz1zLHM9dFt1KzFdPj1uLHFoW2N8czw8MV0uZm9yRWFjaChhKTtxaFtzPDwwXS5mb3JFYWNoKGEpO2Zvcig7KytmPG8tMTspe2Zvcih1PS0xLHM9dFtmKmkraV0+PW4sbD10W2YqaV0+PW4scWhbczw8MXxsPDwyXS5mb3JFYWNoKGEpOysrdTxpLTE7KWM9cyxzPXRbZippK2krdSsxXT49bixoPWwsbD10W2YqaSt1KzFdPj1uLHFoW2N8czw8MXxsPDwyfGg8PDNdLmZvckVhY2goYSk7cWhbc3xsPDwzXS5mb3JFYWNoKGEpfXU9LTEsbD10W2YqaV0+PW4scWhbbDw8Ml0uZm9yRWFjaChhKTtmb3IoOysrdTxpLTE7KWg9bCxsPXRbZippK3UrMV0+PW4scWhbbDw8MnxoPDwzXS5mb3JFYWNoKGEpO3FoW2w8PDNdLmZvckVhY2goYSl9KHQsbixmdW5jdGlvbihlKXtmKGUsdCxuKSxmdW5jdGlvbih0KXtmb3IodmFyIG49MCxlPXQubGVuZ3RoLHI9dFtlLTFdWzFdKnRbMF1bMF0tdFtlLTFdWzBdKnRbMF1bMV07KytuPGU7KXIrPXRbbi0xXVsxXSp0W25dWzBdLXRbbi0xXVswXSp0W25dWzFdO3JldHVybiByfShlKT4wP3IucHVzaChbZV0pOmEucHVzaChlKX0pLGEuZm9yRWFjaChmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wLGk9ci5sZW5ndGg7ZTxpOysrZSlpZigtMSE9PXhlKChuPXJbZV0pWzBdLHQpKXJldHVybiB2b2lkIG4ucHVzaCh0KX0pLHt0eXBlOlwiTXVsdGlQb2x5Z29uXCIsdmFsdWU6bixjb29yZGluYXRlczpyfX1mdW5jdGlvbiBlKHQpe3JldHVybiAyKnRbMF0rdFsxXSooaSsxKSo0fWZ1bmN0aW9uIHIodCxuLGUpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixhPXRbMF0sdT10WzFdLGY9MHxhLGM9MHx1LHM9bltjKmkrZl07YT4wJiZhPGkmJmY9PT1hJiYocj1uW2MqaStmLTFdLHRbMF09YSsoZS1yKS8ocy1yKS0uNSksdT4wJiZ1PG8mJmM9PT11JiYocj1uWyhjLTEpKmkrZl0sdFsxXT11KyhlLXIpLyhzLXIpLS41KX0pfXZhciBpPTEsbz0xLGE9cCxmPXI7cmV0dXJuIHQuY29udG91cj1uLHQuc2l6ZT1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5baSxvXTt2YXIgZT1NYXRoLmNlaWwoblswXSkscj1NYXRoLmNlaWwoblsxXSk7aWYoIShlPjAmJnI+MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBzaXplXCIpO3JldHVybiBpPWUsbz1yLHR9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9tZShVaC5jYWxsKG4pKTptZShuKSx0KTphfSx0LnNtb290aD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uP3I6d2UsdCk6Zj09PXJ9LHR9ZnVuY3Rpb24gQWUodCxuLGUpe2Zvcih2YXIgcj10LndpZHRoLGk9dC5oZWlnaHQsbz0xKyhlPDwxKSxhPTA7YTxpOysrYSlmb3IodmFyIHU9MCxmPTA7dTxyK2U7Kyt1KXU8ciYmKGYrPXQuZGF0YVt1K2Eqcl0pLHU+PWUmJih1Pj1vJiYoZi09dC5kYXRhW3UtbythKnJdKSxuLmRhdGFbdS1lK2Eqcl09Zi9NYXRoLm1pbih1KzEsci0xK28tdSxvKSl9ZnVuY3Rpb24gVGUodCxuLGUpe2Zvcih2YXIgcj10LndpZHRoLGk9dC5oZWlnaHQsbz0xKyhlPDwxKSxhPTA7YTxyOysrYSlmb3IodmFyIHU9MCxmPTA7dTxpK2U7Kyt1KXU8aSYmKGYrPXQuZGF0YVthK3Uqcl0pLHU+PWUmJih1Pj1vJiYoZi09dC5kYXRhW2ErKHUtbykqcl0pLG4uZGF0YVthKyh1LWUpKnJdPWYvTWF0aC5taW4odSsxLGktMStvLXUsbykpfWZ1bmN0aW9uIE5lKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIFNlKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIEVlKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oXCJkXCIsXCJyZXR1cm4ge1wiK3QubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpK1wiOiBkW1wiK24rXCJdXCJ9KS5qb2luKFwiLFwiKStcIn1cIil9ZnVuY3Rpb24ga2UodCl7ZnVuY3Rpb24gbih0LG4pe2Z1bmN0aW9uIGUoKXtpZihjKXJldHVybiBZaDtpZihzKXJldHVybiBzPSExLE9oO3ZhciBuLGUscj11O2lmKHQuY2hhckNvZGVBdChyKT09PUJoKXtmb3IoO3UrKzxhJiZ0LmNoYXJDb2RlQXQodSkhPT1CaHx8dC5jaGFyQ29kZUF0KCsrdSk9PT1CaDspO3JldHVybihuPXUpPj1hP2M9ITA6KGU9dC5jaGFyQ29kZUF0KHUrKykpPT09Rmg/cz0hMDplPT09SWgmJihzPSEwLHQuY2hhckNvZGVBdCh1KT09PUZoJiYrK3UpLHQuc2xpY2UocisxLG4tMSkucmVwbGFjZSgvXCJcIi9nLCdcIicpfWZvcig7dTxhOyl7aWYoKGU9dC5jaGFyQ29kZUF0KG49dSsrKSk9PT1GaClzPSEwO2Vsc2UgaWYoZT09PUloKXM9ITAsdC5jaGFyQ29kZUF0KHUpPT09RmgmJisrdTtlbHNlIGlmKGUhPT1vKWNvbnRpbnVlO3JldHVybiB0LnNsaWNlKHIsbil9cmV0dXJuIGM9ITAsdC5zbGljZShyLGEpfXZhciByLGk9W10sYT10Lmxlbmd0aCx1PTAsZj0wLGM9YTw9MCxzPSExO2Zvcih0LmNoYXJDb2RlQXQoYS0xKT09PUZoJiYtLWEsdC5jaGFyQ29kZUF0KGEtMSk9PT1JaCYmLS1hOyhyPWUoKSkhPT1ZaDspe2Zvcih2YXIgbD1bXTtyIT09T2gmJnIhPT1ZaDspbC5wdXNoKHIpLHI9ZSgpO24mJm51bGw9PShsPW4obCxmKyspKXx8aS5wdXNoKGwpfXJldHVybiBpfWZ1bmN0aW9uIGUobil7cmV0dXJuIG4ubWFwKHIpLmpvaW4odCl9ZnVuY3Rpb24gcih0KXtyZXR1cm4gbnVsbD09dD9cIlwiOmkudGVzdCh0Kz1cIlwiKT8nXCInK3QucmVwbGFjZSgvXCIvZywnXCJcIicpKydcIic6dH12YXIgaT1uZXcgUmVnRXhwKCdbXCInK3QrXCJcXG5cXHJdXCIpLG89dC5jaGFyQ29kZUF0KDApO3JldHVybntwYXJzZTpmdW5jdGlvbih0LGUpe3ZhciByLGksbz1uKHQsZnVuY3Rpb24odCxuKXtpZihyKXJldHVybiByKHQsbi0xKTtpPXQscj1lP2Z1bmN0aW9uKHQsbil7dmFyIGU9RWUodCk7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7cmV0dXJuIG4oZShyKSxpLHQpfX0odCxlKTpFZSh0KX0pO3JldHVybiBvLmNvbHVtbnM9aXx8W10sb30scGFyc2VSb3dzOm4sZm9ybWF0OmZ1bmN0aW9uKG4sZSl7cmV0dXJuIG51bGw9PWUmJihlPWZ1bmN0aW9uKHQpe3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCksZT1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KXIgaW4gbnx8ZS5wdXNoKG5bcl09cil9KSxlfShuKSksW2UubWFwKHIpLmpvaW4odCldLmNvbmNhdChuLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHIoblt0XSl9KS5qb2luKHQpfSkpLmpvaW4oXCJcXG5cIil9LGZvcm1hdFJvd3M6ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGUpLmpvaW4oXCJcXG5cIil9fX1mdW5jdGlvbiBDZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5ibG9iKCl9ZnVuY3Rpb24gUGUodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQuYXJyYXlCdWZmZXIoKX1mdW5jdGlvbiB6ZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC50ZXh0KCl9ZnVuY3Rpb24gUmUodCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKHplKX1mdW5jdGlvbiBMZSh0KXtyZXR1cm4gZnVuY3Rpb24obixlLHIpe3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKHI9ZSxlPXZvaWQgMCksUmUobixlKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiB0KG4scil9KX19ZnVuY3Rpb24gRGUodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQuanNvbigpfWZ1bmN0aW9uIFVlKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3JldHVybiBSZShuLGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhuLHQpfSl9fWZ1bmN0aW9uIHFlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBPZSgpe3JldHVybiAxZS02KihNYXRoLnJhbmRvbSgpLS41KX1mdW5jdGlvbiBZZSh0LG4sZSxyKXtpZihpc05hTihuKXx8aXNOYU4oZSkpcmV0dXJuIHQ7dmFyIGksbyxhLHUsZixjLHMsbCxoLGQ9dC5fcm9vdCxwPXtkYXRhOnJ9LHY9dC5feDAsZz10Ll95MCx5PXQuX3gxLF89dC5feTE7aWYoIWQpcmV0dXJuIHQuX3Jvb3Q9cCx0O2Zvcig7ZC5sZW5ndGg7KWlmKChjPW4+PShvPSh2K3kpLzIpKT92PW86eT1vLChzPWU+PShhPShnK18pLzIpKT9nPWE6Xz1hLGk9ZCwhKGQ9ZFtsPXM8PDF8Y10pKXJldHVybiBpW2xdPXAsdDtpZih1PSt0Ll94LmNhbGwobnVsbCxkLmRhdGEpLGY9K3QuX3kuY2FsbChudWxsLGQuZGF0YSksbj09PXUmJmU9PT1mKXJldHVybiBwLm5leHQ9ZCxpP2lbbF09cDp0Ll9yb290PXAsdDtkb3tpPWk/aVtsXT1uZXcgQXJyYXkoNCk6dC5fcm9vdD1uZXcgQXJyYXkoNCksKGM9bj49KG89KHYreSkvMikpP3Y9bzp5PW8sKHM9ZT49KGE9KGcrXykvMikpP2c9YTpfPWF9d2hpbGUoKGw9czw8MXxjKT09KGg9KGY+PWEpPDwxfHU+PW8pKTtyZXR1cm4gaVtoXT1kLGlbbF09cCx0fWZ1bmN0aW9uIEJlKHQsbixlLHIsaSl7dGhpcy5ub2RlPXQsdGhpcy54MD1uLHRoaXMueTA9ZSx0aGlzLngxPXIsdGhpcy55MT1pfWZ1bmN0aW9uIEZlKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIEllKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIGplKHQsbixlKXt2YXIgcj1uZXcgSGUobnVsbD09bj9GZTpuLG51bGw9PWU/SWU6ZSxOYU4sTmFOLE5hTixOYU4pO3JldHVybiBudWxsPT10P3I6ci5hZGRBbGwodCl9ZnVuY3Rpb24gSGUodCxuLGUscixpLG8pe3RoaXMuX3g9dCx0aGlzLl95PW4sdGhpcy5feDA9ZSx0aGlzLl95MD1yLHRoaXMuX3gxPWksdGhpcy5feTE9byx0aGlzLl9yb290PXZvaWQgMH1mdW5jdGlvbiBYZSh0KXtmb3IodmFyIG49e2RhdGE6dC5kYXRhfSxlPW47dD10Lm5leHQ7KWU9ZS5uZXh0PXtkYXRhOnQuZGF0YX07cmV0dXJuIG59ZnVuY3Rpb24gR2UodCl7cmV0dXJuIHQueCt0LnZ4fWZ1bmN0aW9uIFZlKHQpe3JldHVybiB0LnkrdC52eX1mdW5jdGlvbiAkZSh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiBXZSh0LG4pe3ZhciBlPXQuZ2V0KG4pO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiK24pO3JldHVybiBlfWZ1bmN0aW9uIFplKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gUWUodCl7cmV0dXJuIHQueX1mdW5jdGlvbiBKZSh0LG4pe2lmKChlPSh0PW4/dC50b0V4cG9uZW50aWFsKG4tMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoXCJlXCIpKTwwKXJldHVybiBudWxsO3ZhciBlLHI9dC5zbGljZSgwLGUpO3JldHVybltyLmxlbmd0aD4xP3JbMF0rci5zbGljZSgyKTpyLCt0LnNsaWNlKGUrMSldfWZ1bmN0aW9uIEtlKHQpe3JldHVybih0PUplKE1hdGguYWJzKHQpKSk/dFsxXTpOYU59ZnVuY3Rpb24gdHIodCl7cmV0dXJuIG5ldyBucih0KX1mdW5jdGlvbiBucih0KXtpZighKG49dWQuZXhlYyh0KSkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBmb3JtYXQ6IFwiK3QpO3ZhciBuO3RoaXMuZmlsbD1uWzFdfHxcIiBcIix0aGlzLmFsaWduPW5bMl18fFwiPlwiLHRoaXMuc2lnbj1uWzNdfHxcIi1cIix0aGlzLnN5bWJvbD1uWzRdfHxcIlwiLHRoaXMuemVybz0hIW5bNV0sdGhpcy53aWR0aD1uWzZdJiYrbls2XSx0aGlzLmNvbW1hPSEhbls3XSx0aGlzLnByZWNpc2lvbj1uWzhdJiYrbls4XS5zbGljZSgxKSx0aGlzLnRyaW09ISFuWzldLHRoaXMudHlwZT1uWzEwXXx8XCJcIn1mdW5jdGlvbiBlcih0LG4pe3ZhciBlPUplKHQsbik7aWYoIWUpcmV0dXJuIHQrXCJcIjt2YXIgcj1lWzBdLGk9ZVsxXTtyZXR1cm4gaTwwP1wiMC5cIituZXcgQXJyYXkoLWkpLmpvaW4oXCIwXCIpK3I6ci5sZW5ndGg+aSsxP3Iuc2xpY2UoMCxpKzEpK1wiLlwiK3Iuc2xpY2UoaSsxKTpyK25ldyBBcnJheShpLXIubGVuZ3RoKzIpLmpvaW4oXCIwXCIpfWZ1bmN0aW9uIHJyKHQpe3JldHVybiB0fWZ1bmN0aW9uIGlyKHQpe2Z1bmN0aW9uIG4odCl7ZnVuY3Rpb24gbih0KXt2YXIgbixyLGEscz15LHg9XztpZihcImNcIj09PWcpeD1iKHQpK3gsdD1cIlwiO2Vsc2V7dmFyIHc9KHQ9K3QpPDA7aWYodD1iKE1hdGguYWJzKHQpLHApLHYmJih0PWZ1bmN0aW9uKHQpe3Q6Zm9yKHZhciBuLGU9dC5sZW5ndGgscj0xLGk9LTE7cjxlOysrcilzd2l0Y2godFtyXSl7Y2FzZVwiLlwiOmk9bj1yO2JyZWFrO2Nhc2VcIjBcIjowPT09aSYmKGk9ciksbj1yO2JyZWFrO2RlZmF1bHQ6aWYoaT4wKXtpZighK3Rbcl0pYnJlYWsgdDtpPTB9fXJldHVybiBpPjA/dC5zbGljZSgwLGkpK3Quc2xpY2UobisxKTp0fSh0KSksdyYmMD09K3QmJih3PSExKSxzPSh3P1wiKFwiPT09Yz9jOlwiLVwiOlwiLVwiPT09Y3x8XCIoXCI9PT1jP1wiXCI6Yykrcyx4PShcInNcIj09PWc/bGRbOCtmZC8zXTpcIlwiKSt4Kyh3JiZcIihcIj09PWM/XCIpXCI6XCJcIiksbSlmb3Iobj0tMSxyPXQubGVuZ3RoOysrbjxyOylpZig0OD4oYT10LmNoYXJDb2RlQXQobikpfHxhPjU3KXt4PSg0Nj09PWE/aSt0LnNsaWNlKG4rMSk6dC5zbGljZShuKSkreCx0PXQuc2xpY2UoMCxuKTticmVha319ZCYmIWwmJih0PWUodCwxLzApKTt2YXIgTT1zLmxlbmd0aCt0Lmxlbmd0aCt4Lmxlbmd0aCxBPU08aD9uZXcgQXJyYXkoaC1NKzEpLmpvaW4odSk6XCJcIjtzd2l0Y2goZCYmbCYmKHQ9ZShBK3QsQS5sZW5ndGg/aC14Lmxlbmd0aDoxLzApLEE9XCJcIiksZil7Y2FzZVwiPFwiOnQ9cyt0K3grQTticmVhaztjYXNlXCI9XCI6dD1zK0ErdCt4O2JyZWFrO2Nhc2VcIl5cIjp0PUEuc2xpY2UoMCxNPUEubGVuZ3RoPj4xKStzK3QreCtBLnNsaWNlKE0pO2JyZWFrO2RlZmF1bHQ6dD1BK3MrdCt4fXJldHVybiBvKHQpfXZhciB1PSh0PXRyKHQpKS5maWxsLGY9dC5hbGlnbixjPXQuc2lnbixzPXQuc3ltYm9sLGw9dC56ZXJvLGg9dC53aWR0aCxkPXQuY29tbWEscD10LnByZWNpc2lvbix2PXQudHJpbSxnPXQudHlwZTtcIm5cIj09PWc/KGQ9ITAsZz1cImdcIik6c2RbZ118fChudWxsPT1wJiYocD0xMiksdj0hMCxnPVwiZ1wiKSwobHx8XCIwXCI9PT11JiZcIj1cIj09PWYpJiYobD0hMCx1PVwiMFwiLGY9XCI9XCIpO3ZhciB5PVwiJFwiPT09cz9yWzBdOlwiI1wiPT09cyYmL1tib3hYXS8udGVzdChnKT9cIjBcIitnLnRvTG93ZXJDYXNlKCk6XCJcIixfPVwiJFwiPT09cz9yWzFdOi9bJXBdLy50ZXN0KGcpP2E6XCJcIixiPXNkW2ddLG09L1tkZWZncHJzJV0vLnRlc3QoZyk7cmV0dXJuIHA9bnVsbD09cD82Oi9bZ3Byc10vLnRlc3QoZyk/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxwKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxwKSksbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0K1wiXCJ9LG59dmFyIGU9dC5ncm91cGluZyYmdC50aG91c2FuZHM/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtmb3IodmFyIGk9ZS5sZW5ndGgsbz1bXSxhPTAsdT10WzBdLGY9MDtpPjAmJnU+MCYmKGYrdSsxPnImJih1PU1hdGgubWF4KDEsci1mKSksby5wdXNoKGUuc3Vic3RyaW5nKGktPXUsaSt1KSksISgoZis9dSsxKT5yKSk7KXU9dFthPShhKzEpJXQubGVuZ3RoXTtyZXR1cm4gby5yZXZlcnNlKCkuam9pbihuKX19KHQuZ3JvdXBpbmcsdC50aG91c2FuZHMpOnJyLHI9dC5jdXJyZW5jeSxpPXQuZGVjaW1hbCxvPXQubnVtZXJhbHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24obil7cmV0dXJuIHRbK25dfSl9fSh0Lm51bWVyYWxzKTpycixhPXQucGVyY2VudHx8XCIlXCI7cmV0dXJue2Zvcm1hdDpuLGZvcm1hdFByZWZpeDpmdW5jdGlvbih0LGUpe3ZhciByPW4oKHQ9dHIodCksdC50eXBlPVwiZlwiLHQpKSxpPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKEtlKGUpLzMpKSksbz1NYXRoLnBvdygxMCwtaSksYT1sZFs4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByKG8qdCkrYX19fX1mdW5jdGlvbiBvcihuKXtyZXR1cm4gY2Q9aXIobiksdC5mb3JtYXQ9Y2QuZm9ybWF0LHQuZm9ybWF0UHJlZml4PWNkLmZvcm1hdFByZWZpeCxjZH1mdW5jdGlvbiBhcih0KXtyZXR1cm4gTWF0aC5tYXgoMCwtS2UoTWF0aC5hYnModCkpKX1mdW5jdGlvbiB1cih0LG4pe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKEtlKG4pLzMpKSktS2UoTWF0aC5hYnModCkpKX1mdW5jdGlvbiBmcih0LG4pe3JldHVybiB0PU1hdGguYWJzKHQpLG49TWF0aC5hYnMobiktdCxNYXRoLm1heCgwLEtlKG4pLUtlKHQpKSsxfWZ1bmN0aW9uIGNyKCl7cmV0dXJuIG5ldyBzcn1mdW5jdGlvbiBzcigpe3RoaXMucmVzZXQoKX1mdW5jdGlvbiBscih0LG4sZSl7dmFyIHI9dC5zPW4rZSxpPXItbixvPXItaTt0LnQ9bi1vKyhlLWkpfWZ1bmN0aW9uIGhyKHQpe3JldHVybiB0PjE/MDp0PC0xP0dkOk1hdGguYWNvcyh0KX1mdW5jdGlvbiBkcih0KXtyZXR1cm4gdD4xP1ZkOnQ8LTE/LVZkOk1hdGguYXNpbih0KX1mdW5jdGlvbiBwcih0KXtyZXR1cm4odD1hcCh0LzIpKSp0fWZ1bmN0aW9uIHZyKCl7fWZ1bmN0aW9uIGdyKHQsbil7dCYmbHAuaGFzT3duUHJvcGVydHkodC50eXBlKSYmbHBbdC50eXBlXSh0LG4pfWZ1bmN0aW9uIHlyKHQsbixlKXt2YXIgcixpPS0xLG89dC5sZW5ndGgtZTtmb3Iobi5saW5lU3RhcnQoKTsrK2k8bzspcj10W2ldLG4ucG9pbnQoclswXSxyWzFdLHJbMl0pO24ubGluZUVuZCgpfWZ1bmN0aW9uIF9yKHQsbil7dmFyIGU9LTEscj10Lmxlbmd0aDtmb3Iobi5wb2x5Z29uU3RhcnQoKTsrK2U8cjspeXIodFtlXSxuLDEpO24ucG9seWdvbkVuZCgpfWZ1bmN0aW9uIGJyKHQsbil7dCYmc3AuaGFzT3duUHJvcGVydHkodC50eXBlKT9zcFt0LnR5cGVdKHQsbik6Z3IodCxuKX1mdW5jdGlvbiBtcigpe3BwLnBvaW50PXdyfWZ1bmN0aW9uIHhyKCl7TXIoaGQsZGQpfWZ1bmN0aW9uIHdyKHQsbil7cHAucG9pbnQ9TXIsaGQ9dCxkZD1uLHBkPXQqPVFkLHZkPW5wKG49KG4qPVFkKS8yKyRkKSxnZD1hcChuKX1mdW5jdGlvbiBNcih0LG4pe249KG4qPVFkKS8yKyRkO3ZhciBlPSh0Kj1RZCktcGQscj1lPj0wPzE6LTEsaT1yKmUsbz1ucChuKSxhPWFwKG4pLHU9Z2QqYSxmPXZkKm8rdSpucChpKSxjPXUqciphcChpKTtocC5hZGQodHAoYyxmKSkscGQ9dCx2ZD1vLGdkPWF9ZnVuY3Rpb24gQXIodCl7cmV0dXJuW3RwKHRbMV0sdFswXSksZHIodFsyXSldfWZ1bmN0aW9uIFRyKHQpe3ZhciBuPXRbMF0sZT10WzFdLHI9bnAoZSk7cmV0dXJuW3IqbnAobiksciphcChuKSxhcChlKV19ZnVuY3Rpb24gTnIodCxuKXtyZXR1cm4gdFswXSpuWzBdK3RbMV0qblsxXSt0WzJdKm5bMl19ZnVuY3Rpb24gU3IodCxuKXtyZXR1cm5bdFsxXSpuWzJdLXRbMl0qblsxXSx0WzJdKm5bMF0tdFswXSpuWzJdLHRbMF0qblsxXS10WzFdKm5bMF1dfWZ1bmN0aW9uIEVyKHQsbil7dFswXSs9blswXSx0WzFdKz1uWzFdLHRbMl0rPW5bMl19ZnVuY3Rpb24ga3IodCxuKXtyZXR1cm5bdFswXSpuLHRbMV0qbix0WzJdKm5dfWZ1bmN0aW9uIENyKHQpe3ZhciBuPWZwKHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1uLHRbMV0vPW4sdFsyXS89bn1mdW5jdGlvbiBQcih0LG4pe1RkLnB1c2goTmQ9W3lkPXQsYmQ9dF0pLG48X2QmJihfZD1uKSxuPm1kJiYobWQ9bil9ZnVuY3Rpb24genIodCxuKXt2YXIgZT1UcihbdCpRZCxuKlFkXSk7aWYoQWQpe3ZhciByPVNyKEFkLGUpLGk9U3IoW3JbMV0sLXJbMF0sMF0scik7Q3IoaSksaT1BcihpKTt2YXIgbyxhPXQteGQsdT1hPjA/MTotMSxmPWlbMF0qWmQqdSxjPUpkKGEpPjE4MDtjXih1KnhkPGYmJmY8dSp0KT8obz1pWzFdKlpkKT5tZCYmKG1kPW8pOihmPShmKzM2MCklMzYwLTE4MCxjXih1KnhkPGYmJmY8dSp0KT8obz0taVsxXSpaZCk8X2QmJihfZD1vKToobjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKSkpLGM/dDx4ZD9Pcih5ZCx0KT5Pcih5ZCxiZCkmJihiZD10KTpPcih0LGJkKT5Pcih5ZCxiZCkmJih5ZD10KTpiZD49eWQ/KHQ8eWQmJih5ZD10KSx0PmJkJiYoYmQ9dCkpOnQ+eGQ/T3IoeWQsdCk+T3IoeWQsYmQpJiYoYmQ9dCk6T3IodCxiZCk+T3IoeWQsYmQpJiYoeWQ9dCl9ZWxzZSBUZC5wdXNoKE5kPVt5ZD10LGJkPXRdKTtuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pLEFkPWUseGQ9dH1mdW5jdGlvbiBScigpe2dwLnBvaW50PXpyfWZ1bmN0aW9uIExyKCl7TmRbMF09eWQsTmRbMV09YmQsZ3AucG9pbnQ9UHIsQWQ9bnVsbH1mdW5jdGlvbiBEcih0LG4pe2lmKEFkKXt2YXIgZT10LXhkO3ZwLmFkZChKZChlKT4xODA/ZSsoZT4wPzM2MDotMzYwKTplKX1lbHNlIHdkPXQsTWQ9bjtwcC5wb2ludCh0LG4pLHpyKHQsbil9ZnVuY3Rpb24gVXIoKXtwcC5saW5lU3RhcnQoKX1mdW5jdGlvbiBxcigpe0RyKHdkLE1kKSxwcC5saW5lRW5kKCksSmQodnApPkhkJiYoeWQ9LShiZD0xODApKSxOZFswXT15ZCxOZFsxXT1iZCxBZD1udWxsfWZ1bmN0aW9uIE9yKHQsbil7cmV0dXJuKG4tPXQpPDA/biszNjA6bn1mdW5jdGlvbiBZcih0LG4pe3JldHVybiB0WzBdLW5bMF19ZnVuY3Rpb24gQnIodCxuKXtyZXR1cm4gdFswXTw9dFsxXT90WzBdPD1uJiZuPD10WzFdOm48dFswXXx8dFsxXTxufWZ1bmN0aW9uIEZyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpO0lyKGUqbnAodCksZSphcCh0KSxhcChuKSl9ZnVuY3Rpb24gSXIodCxuLGUpe2tkKz0odC1rZCkvKytTZCxDZCs9KG4tQ2QpL1NkLFBkKz0oZS1QZCkvU2R9ZnVuY3Rpb24ganIoKXt5cC5wb2ludD1Icn1mdW5jdGlvbiBIcih0LG4pe3QqPVFkO3ZhciBlPW5wKG4qPVFkKTtCZD1lKm5wKHQpLEZkPWUqYXAodCksSWQ9YXAobikseXAucG9pbnQ9WHIsSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIFhyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpLHI9ZSpucCh0KSxpPWUqYXAodCksbz1hcChuKSxhPXRwKGZwKChhPUZkKm8tSWQqaSkqYSsoYT1JZCpyLUJkKm8pKmErKGE9QmQqaS1GZCpyKSphKSxCZCpyK0ZkKmkrSWQqbyk7RWQrPWEsemQrPWEqKEJkKyhCZD1yKSksUmQrPWEqKEZkKyhGZD1pKSksTGQrPWEqKElkKyhJZD1vKSksSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIEdyKCl7eXAucG9pbnQ9RnJ9ZnVuY3Rpb24gVnIoKXt5cC5wb2ludD1Xcn1mdW5jdGlvbiAkcigpe1pyKE9kLFlkKSx5cC5wb2ludD1Gcn1mdW5jdGlvbiBXcih0LG4pe09kPXQsWWQ9bix0Kj1RZCxuKj1RZCx5cC5wb2ludD1acjt2YXIgZT1ucChuKTtCZD1lKm5wKHQpLEZkPWUqYXAodCksSWQ9YXAobiksSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIFpyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpLHI9ZSpucCh0KSxpPWUqYXAodCksbz1hcChuKSxhPUZkKm8tSWQqaSx1PUlkKnItQmQqbyxmPUJkKmktRmQqcixjPWZwKGEqYSt1KnUrZipmKSxzPWRyKGMpLGw9YyYmLXMvYztEZCs9bCphLFVkKz1sKnUscWQrPWwqZixFZCs9cyx6ZCs9cyooQmQrKEJkPXIpKSxSZCs9cyooRmQrKEZkPWkpKSxMZCs9cyooSWQrKElkPW8pKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gUXIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEpyKHQsbil7ZnVuY3Rpb24gZShlLHIpe3JldHVybiBlPXQoZSxyKSxuKGVbMF0sZVsxXSl9cmV0dXJuIHQuaW52ZXJ0JiZuLmludmVydCYmKGUuaW52ZXJ0PWZ1bmN0aW9uKGUscil7cmV0dXJuKGU9bi5pbnZlcnQoZSxyKSkmJnQuaW52ZXJ0KGVbMF0sZVsxXSl9KSxlfWZ1bmN0aW9uIEtyKHQsbil7cmV0dXJuW3Q+R2Q/dC1XZDp0PC1HZD90K1dkOnQsbl19ZnVuY3Rpb24gdGkodCxuLGUpe3JldHVybih0JT1XZCk/bnx8ZT9KcihlaSh0KSxyaShuLGUpKTplaSh0KTpufHxlP3JpKG4sZSk6S3J9ZnVuY3Rpb24gbmkodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIG4rPXQsW24+R2Q/bi1XZDpuPC1HZD9uK1dkOm4sZV19fWZ1bmN0aW9uIGVpKHQpe3ZhciBuPW5pKHQpO3JldHVybiBuLmludmVydD1uaSgtdCksbn1mdW5jdGlvbiByaSh0LG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1ucChuKSx1PW5wKHQpKmUsZj1hcCh0KSplLGM9YXAobikscz1jKnIrdSppO3JldHVyblt0cChmKm8tcyphLHUqci1jKmkpLGRyKHMqbytmKmEpXX12YXIgcj1ucCh0KSxpPWFwKHQpLG89bnAobiksYT1hcChuKTtyZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1ucChuKSx1PW5wKHQpKmUsZj1hcCh0KSplLGM9YXAobikscz1jKm8tZiphO3JldHVyblt0cChmKm8rYyphLHUqcitzKmkpLGRyKHMqci11KmkpXX0sZX1mdW5jdGlvbiBpaSh0KXtmdW5jdGlvbiBuKG4pe3JldHVybiBuPXQoblswXSpRZCxuWzFdKlFkKSxuWzBdKj1aZCxuWzFdKj1aZCxufXJldHVybiB0PXRpKHRbMF0qUWQsdFsxXSpRZCx0Lmxlbmd0aD4yP3RbMl0qUWQ6MCksbi5pbnZlcnQ9ZnVuY3Rpb24obil7cmV0dXJuIG49dC5pbnZlcnQoblswXSpRZCxuWzFdKlFkKSxuWzBdKj1aZCxuWzFdKj1aZCxufSxufWZ1bmN0aW9uIG9pKHQsbixlLHIsaSxvKXtpZihlKXt2YXIgYT1ucChuKSx1PWFwKG4pLGY9ciplO251bGw9PWk/KGk9bityKldkLG89bi1mLzIpOihpPWFpKGEsaSksbz1haShhLG8pLChyPjA/aTxvOmk+bykmJihpKz1yKldkKSk7Zm9yKHZhciBjLHM9aTtyPjA/cz5vOnM8bztzLT1mKWM9QXIoW2EsLXUqbnAocyksLXUqYXAocyldKSx0LnBvaW50KGNbMF0sY1sxXSl9fWZ1bmN0aW9uIGFpKHQsbil7KG49VHIobikpWzBdLT10LENyKG4pO3ZhciBlPWhyKC1uWzFdKTtyZXR1cm4oKC1uWzJdPDA/LWU6ZSkrV2QtSGQpJVdkfWZ1bmN0aW9uIHVpKCl7dmFyIHQsbj1bXTtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24obixlKXt0LnB1c2goW24sZV0pfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtuLnB1c2godD1bXSl9LGxpbmVFbmQ6dnIscmVqb2luOmZ1bmN0aW9uKCl7bi5sZW5ndGg+MSYmbi5wdXNoKG4ucG9wKCkuY29uY2F0KG4uc2hpZnQoKSkpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgZT1uO3JldHVybiBuPVtdLHQ9bnVsbCxlfX19ZnVuY3Rpb24gZmkodCxuKXtyZXR1cm4gSmQodFswXS1uWzBdKTxIZCYmSmQodFsxXS1uWzFdKTxIZH1mdW5jdGlvbiBjaSh0LG4sZSxyKXt0aGlzLng9dCx0aGlzLno9bix0aGlzLm89ZSx0aGlzLmU9cix0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIHNpKHQsbixlLHIsaSl7dmFyIG8sYSx1PVtdLGY9W107aWYodC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCEoKG49dC5sZW5ndGgtMSk8PTApKXt2YXIgbixlLHI9dFswXSxhPXRbbl07aWYoZmkocixhKSl7Zm9yKGkubGluZVN0YXJ0KCksbz0wO288bjsrK28paS5wb2ludCgocj10W29dKVswXSxyWzFdKTtpLmxpbmVFbmQoKX1lbHNlIHUucHVzaChlPW5ldyBjaShyLHQsbnVsbCwhMCkpLGYucHVzaChlLm89bmV3IGNpKHIsbnVsbCxlLCExKSksdS5wdXNoKGU9bmV3IGNpKGEsdCxudWxsLCExKSksZi5wdXNoKGUubz1uZXcgY2koYSxudWxsLGUsITApKX19KSx1Lmxlbmd0aCl7Zm9yKGYuc29ydChuKSxsaSh1KSxsaShmKSxvPTAsYT1mLmxlbmd0aDtvPGE7KytvKWZbb10uZT1lPSFlO2Zvcih2YXIgYyxzLGw9dVswXTs7KXtmb3IodmFyIGg9bCxkPSEwO2gudjspaWYoKGg9aC5uKT09PWwpcmV0dXJuO2M9aC56LGkubGluZVN0YXJ0KCk7ZG97aWYoaC52PWguby52PSEwLGguZSl7aWYoZClmb3Iobz0wLGE9Yy5sZW5ndGg7bzxhOysrbylpLnBvaW50KChzPWNbb10pWzBdLHNbMV0pO2Vsc2UgcihoLngsaC5uLngsMSxpKTtoPWgubn1lbHNle2lmKGQpZm9yKGM9aC5wLnosbz1jLmxlbmd0aC0xO28+PTA7LS1vKWkucG9pbnQoKHM9Y1tvXSlbMF0sc1sxXSk7ZWxzZSByKGgueCxoLnAueCwtMSxpKTtoPWgucH1jPShoPWgubykueixkPSFkfXdoaWxlKCFoLnYpO2kubGluZUVuZCgpfX19ZnVuY3Rpb24gbGkodCl7aWYobj10Lmxlbmd0aCl7Zm9yKHZhciBuLGUscj0wLGk9dFswXTsrK3I8bjspaS5uPWU9dFtyXSxlLnA9aSxpPWU7aS5uPWU9dFswXSxlLnA9aX19ZnVuY3Rpb24gaGkodCxuKXt2YXIgZT1uWzBdLHI9blsxXSxpPWFwKHIpLG89W2FwKGUpLC1ucChlKSwwXSxhPTAsdT0wO2twLnJlc2V0KCksMT09PWk/cj1WZCtIZDotMT09PWkmJihyPS1WZC1IZCk7Zm9yKHZhciBmPTAsYz10Lmxlbmd0aDtmPGM7KytmKWlmKGw9KHM9dFtmXSkubGVuZ3RoKWZvcih2YXIgcyxsLGg9c1tsLTFdLGQ9aFswXSxwPWhbMV0vMiskZCx2PWFwKHApLGc9bnAocCkseT0wO3k8bDsrK3ksZD1iLHY9eCxnPXcsaD1fKXt2YXIgXz1zW3ldLGI9X1swXSxtPV9bMV0vMiskZCx4PWFwKG0pLHc9bnAobSksTT1iLWQsQT1NPj0wPzE6LTEsVD1BKk0sTj1UPkdkLFM9dip4O2lmKGtwLmFkZCh0cChTKkEqYXAoVCksZyp3K1MqbnAoVCkpKSxhKz1OP00rQSpXZDpNLE5eZD49ZV5iPj1lKXt2YXIgRT1TcihUcihoKSxUcihfKSk7Q3IoRSk7dmFyIGs9U3IobyxFKTtDcihrKTt2YXIgQz0oTl5NPj0wPy0xOjEpKmRyKGtbMl0pOyhyPkN8fHI9PT1DJiYoRVswXXx8RVsxXSkpJiYodSs9Tl5NPj0wPzE6LTEpfX1yZXR1cm4oYTwtSGR8fGE8SGQmJmtwPC1IZCleMSZ1fWZ1bmN0aW9uIGRpKHQsbixlLHIpe3JldHVybiBmdW5jdGlvbihpKXtmdW5jdGlvbiBvKG4sZSl7dChuLGUpJiZpLnBvaW50KG4sZSl9ZnVuY3Rpb24gYSh0LG4pe3YucG9pbnQodCxuKX1mdW5jdGlvbiB1KCl7bS5wb2ludD1hLHYubGluZVN0YXJ0KCl9ZnVuY3Rpb24gZigpe20ucG9pbnQ9byx2LmxpbmVFbmQoKX1mdW5jdGlvbiBjKHQsbil7cC5wdXNoKFt0LG5dKSxfLnBvaW50KHQsbil9ZnVuY3Rpb24gcygpe18ubGluZVN0YXJ0KCkscD1bXX1mdW5jdGlvbiBsKCl7YyhwWzBdWzBdLHBbMF1bMV0pLF8ubGluZUVuZCgpO3ZhciB0LG4sZSxyLG89Xy5jbGVhbigpLGE9Zy5yZXN1bHQoKSx1PWEubGVuZ3RoO2lmKHAucG9wKCksaC5wdXNoKHApLHA9bnVsbCx1KWlmKDEmbyl7aWYoZT1hWzBdLChuPWUubGVuZ3RoLTEpPjApe2ZvcihifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxpLmxpbmVTdGFydCgpLHQ9MDt0PG47Kyt0KWkucG9pbnQoKHI9ZVt0XSlbMF0sclsxXSk7aS5saW5lRW5kKCl9fWVsc2UgdT4xJiYyJm8mJmEucHVzaChhLnBvcCgpLmNvbmNhdChhLnNoaWZ0KCkpKSxkLnB1c2goYS5maWx0ZXIocGkpKX12YXIgaCxkLHAsdj1uKGkpLGc9dWkoKSxfPW4oZyksYj0hMSxtPXtwb2ludDpvLGxpbmVTdGFydDp1LGxpbmVFbmQ6Zixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXttLnBvaW50PWMsbS5saW5lU3RhcnQ9cyxtLmxpbmVFbmQ9bCxkPVtdLGg9W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXttLnBvaW50PW8sbS5saW5lU3RhcnQ9dSxtLmxpbmVFbmQ9ZixkPXkoZCk7dmFyIHQ9aGkoaCxyKTtkLmxlbmd0aD8oYnx8KGkucG9seWdvblN0YXJ0KCksYj0hMCksc2koZCx2aSx0LGUsaSkpOnQmJihifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCkpLGImJihpLnBvbHlnb25FbmQoKSxiPSExKSxkPWg9bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7aS5wb2x5Z29uU3RhcnQoKSxpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCksaS5wb2x5Z29uRW5kKCl9fTtyZXR1cm4gbX19ZnVuY3Rpb24gcGkodCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gdmkodCxuKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tVmQtSGQ6VmQtdFsxXSktKChuPW4ueClbMF08MD9uWzFdLVZkLUhkOlZkLW5bMV0pfWZ1bmN0aW9uIGdpKHQpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gbnAodCkqbnAobik+aX1mdW5jdGlvbiBlKHQsbixlKXt2YXIgcj1bMSwwLDBdLG89U3IoVHIodCksVHIobikpLGE9TnIobyxvKSx1PW9bMF0sZj1hLXUqdTtpZighZilyZXR1cm4hZSYmdDt2YXIgYz1pKmEvZixzPS1pKnUvZixsPVNyKHIsbyksaD1rcihyLGMpO0VyKGgsa3IobyxzKSk7dmFyIGQ9bCxwPU5yKGgsZCksdj1OcihkLGQpLGc9cCpwLXYqKE5yKGgsaCktMSk7aWYoIShnPDApKXt2YXIgeT1mcChnKSxfPWtyKGQsKC1wLXkpL3YpO2lmKEVyKF8saCksXz1BcihfKSwhZSlyZXR1cm4gXzt2YXIgYixtPXRbMF0seD1uWzBdLHc9dFsxXSxNPW5bMV07eDxtJiYoYj1tLG09eCx4PWIpO3ZhciBBPXgtbSxUPUpkKEEtR2QpPEhkO2lmKCFUJiZNPHcmJihiPXcsdz1NLE09YiksVHx8QTxIZD9UP3crTT4wXl9bMV08KEpkKF9bMF0tbSk8SGQ/dzpNKTp3PD1fWzFdJiZfWzFdPD1NOkE+R2ReKG08PV9bMF0mJl9bMF08PXgpKXt2YXIgTj1rcihkLCgtcCt5KS92KTtyZXR1cm4gRXIoTixoKSxbXyxBcihOKV19fX1mdW5jdGlvbiByKG4sZSl7dmFyIHI9YT90OkdkLXQsaT0wO3JldHVybiBuPC1yP2l8PTE6bj5yJiYoaXw9MiksZTwtcj9pfD00OmU+ciYmKGl8PTgpLGl9dmFyIGk9bnAodCksbz02KlFkLGE9aT4wLHU9SmQoaSk+SGQ7cmV0dXJuIGRpKG4sZnVuY3Rpb24odCl7dmFyIGksbyxmLGMscztyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7Yz1mPSExLHM9MX0scG9pbnQ6ZnVuY3Rpb24obCxoKXt2YXIgZCxwPVtsLGhdLHY9bihsLGgpLGc9YT92PzA6cihsLGgpOnY/cihsKyhsPDA/R2Q6LUdkKSxoKTowO2lmKCFpJiYoYz1mPXYpJiZ0LmxpbmVTdGFydCgpLHYhPT1mJiYoIShkPWUoaSxwKSl8fGZpKGksZCl8fGZpKHAsZCkpJiYocFswXSs9SGQscFsxXSs9SGQsdj1uKHBbMF0scFsxXSkpLHYhPT1mKXM9MCx2Pyh0LmxpbmVTdGFydCgpLGQ9ZShwLGkpLHQucG9pbnQoZFswXSxkWzFdKSk6KGQ9ZShpLHApLHQucG9pbnQoZFswXSxkWzFdKSx0LmxpbmVFbmQoKSksaT1kO2Vsc2UgaWYodSYmaSYmYV52KXt2YXIgeTtnJm98fCEoeT1lKHAsaSwhMCkpfHwocz0wLGE/KHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0pLHQucG9pbnQoeVsxXVswXSx5WzFdWzFdKSx0LmxpbmVFbmQoKSk6KHQucG9pbnQoeVsxXVswXSx5WzFdWzFdKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQoeVswXVswXSx5WzBdWzFdKSkpfSF2fHxpJiZmaShpLHApfHx0LnBvaW50KHBbMF0scFsxXSksaT1wLGY9dixvPWd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmJiZ0LmxpbmVFbmQoKSxpPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIHN8KGMmJmYpPDwxfX19LGZ1bmN0aW9uKG4sZSxyLGkpe29pKGksdCxvLHIsbixlKX0sYT9bMCwtdF06Wy1HZCx0LUdkXSl9ZnVuY3Rpb24geWkodCxuLGUscil7ZnVuY3Rpb24gaShpLG8pe3JldHVybiB0PD1pJiZpPD1lJiZuPD1vJiZvPD1yfWZ1bmN0aW9uIG8oaSxvLHUsYyl7dmFyIHM9MCxsPTA7aWYobnVsbD09aXx8KHM9YShpLHUpKSE9PShsPWEobyx1KSl8fGYoaSxvKTwwXnU+MClkb3tjLnBvaW50KDA9PT1zfHwzPT09cz90OmUscz4xP3I6bil9d2hpbGUoKHM9KHMrdSs0KSU0KSE9PWwpO2Vsc2UgYy5wb2ludChvWzBdLG9bMV0pfWZ1bmN0aW9uIGEocixpKXtyZXR1cm4gSmQoclswXS10KTxIZD9pPjA/MDozOkpkKHJbMF0tZSk8SGQ/aT4wPzI6MTpKZChyWzFdLW4pPEhkP2k+MD8xOjA6aT4wPzM6Mn1mdW5jdGlvbiB1KHQsbil7cmV0dXJuIGYodC54LG4ueCl9ZnVuY3Rpb24gZih0LG4pe3ZhciBlPWEodCwxKSxyPWEobiwxKTtyZXR1cm4gZSE9PXI/ZS1yOjA9PT1lP25bMV0tdFsxXToxPT09ZT90WzBdLW5bMF06Mj09PWU/dFsxXS1uWzFdOm5bMF0tdFswXX1yZXR1cm4gZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZih0LG4pe2kodCxuKSYmdy5wb2ludCh0LG4pfWZ1bmN0aW9uIGMobyxhKXt2YXIgdT1pKG8sYSk7aWYobCYmaC5wdXNoKFtvLGFdKSxtKWQ9byxwPWEsdj11LG09ITEsdSYmKHcubGluZVN0YXJ0KCksdy5wb2ludChvLGEpKTtlbHNlIGlmKHUmJmIpdy5wb2ludChvLGEpO2Vsc2V7dmFyIGY9W2c9TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsZykpLF89TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsXykpXSxjPVtvPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLG8pKSxhPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLGEpKV07IWZ1bmN0aW9uKHQsbixlLHIsaSxvKXt2YXIgYSx1PXRbMF0sZj10WzFdLGM9MCxzPTEsbD1uWzBdLXUsaD1uWzFdLWY7aWYoYT1lLXUsbHx8IShhPjApKXtpZihhLz1sLGw8MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfWVsc2UgaWYobD4wKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9aWYoYT1pLXUsbHx8IShhPDApKXtpZihhLz1sLGw8MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWVsc2UgaWYobD4wKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9aWYoYT1yLWYsaHx8IShhPjApKXtpZihhLz1oLGg8MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfWVsc2UgaWYoaD4wKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9aWYoYT1vLWYsaHx8IShhPDApKXtpZihhLz1oLGg8MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWVsc2UgaWYoaD4wKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9cmV0dXJuIGM+MCYmKHRbMF09dStjKmwsdFsxXT1mK2MqaCksczwxJiYoblswXT11K3MqbCxuWzFdPWYrcypoKSwhMH19fX19KGYsYyx0LG4sZSxyKT91JiYody5saW5lU3RhcnQoKSx3LnBvaW50KG8sYSkseD0hMSk6KGJ8fCh3LmxpbmVTdGFydCgpLHcucG9pbnQoZlswXSxmWzFdKSksdy5wb2ludChjWzBdLGNbMV0pLHV8fHcubGluZUVuZCgpLHg9ITEpfWc9byxfPWEsYj11fXZhciBzLGwsaCxkLHAsdixnLF8sYixtLHgsdz1hLE09dWkoKSxBPXtwb2ludDpmLGxpbmVTdGFydDpmdW5jdGlvbigpe0EucG9pbnQ9YyxsJiZsLnB1c2goaD1bXSksbT0hMCxiPSExLGc9Xz1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzJiYoYyhkLHApLHYmJmImJk0ucmVqb2luKCkscy5wdXNoKE0ucmVzdWx0KCkpKSxBLnBvaW50PWYsYiYmdy5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3c9TSxzPVtdLGw9W10seD0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciBuPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsZT0wLGk9bC5sZW5ndGg7ZTxpOysrZSlmb3IodmFyIG8sYSx1PWxbZV0sZj0xLGM9dS5sZW5ndGgscz11WzBdLGg9c1swXSxkPXNbMV07ZjxjOysrZilvPWgsYT1kLGg9KHM9dVtmXSlbMF0sZD1zWzFdLGE8PXI/ZD5yJiYoaC1vKSooci1hKT4oZC1hKSoodC1vKSYmKytuOmQ8PXImJihoLW8pKihyLWEpPChkLWEpKih0LW8pJiYtLW47cmV0dXJuIG59KCksZT14JiZuLGk9KHM9eShzKSkubGVuZ3RoOyhlfHxpKSYmKGEucG9seWdvblN0YXJ0KCksZSYmKGEubGluZVN0YXJ0KCksbyhudWxsLG51bGwsMSxhKSxhLmxpbmVFbmQoKSksaSYmc2kocyx1LG4sbyxhKSxhLnBvbHlnb25FbmQoKSksdz1hLHM9bD1oPW51bGx9fTtyZXR1cm4gQX19ZnVuY3Rpb24gX2koKXtMcC5wb2ludD1McC5saW5lRW5kPXZyfWZ1bmN0aW9uIGJpKHQsbil7X3A9dCo9UWQsYnA9YXAobio9UWQpLG1wPW5wKG4pLExwLnBvaW50PW1pfWZ1bmN0aW9uIG1pKHQsbil7dCo9UWQ7dmFyIGU9YXAobio9UWQpLHI9bnAobiksaT1KZCh0LV9wKSxvPW5wKGkpLGE9ciphcChpKSx1PW1wKmUtYnAqcipvLGY9YnAqZSttcCpyKm87UnAuYWRkKHRwKGZwKGEqYSt1KnUpLGYpKSxfcD10LGJwPWUsbXA9cn1mdW5jdGlvbiB4aSh0KXtyZXR1cm4gUnAucmVzZXQoKSxicih0LExwKSwrUnB9ZnVuY3Rpb24gd2kodCxuKXtyZXR1cm4gRHBbMF09dCxEcFsxXT1uLHhpKFVwKX1mdW5jdGlvbiBNaSh0LG4pe3JldHVybiEoIXR8fCFPcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmT3BbdC50eXBlXSh0LG4pfWZ1bmN0aW9uIEFpKHQsbil7cmV0dXJuIDA9PT13aSh0LG4pfWZ1bmN0aW9uIFRpKHQsbil7dmFyIGU9d2kodFswXSx0WzFdKTtyZXR1cm4gd2kodFswXSxuKSt3aShuLHRbMV0pPD1lK0hkfWZ1bmN0aW9uIE5pKHQsbil7cmV0dXJuISFoaSh0Lm1hcChTaSksRWkobikpfWZ1bmN0aW9uIFNpKHQpe3JldHVybih0PXQubWFwKEVpKSkucG9wKCksdH1mdW5jdGlvbiBFaSh0KXtyZXR1cm5bdFswXSpRZCx0WzFdKlFkXX1mdW5jdGlvbiBraSh0LG4sZSl7dmFyIHI9cyh0LG4tSGQsZSkuY29uY2F0KG4pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obil7cmV0dXJuW3Qsbl19KX19ZnVuY3Rpb24gQ2kodCxuLGUpe3ZhciByPXModCxuLUhkLGUpLmNvbmNhdChuKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKG4pe3JldHVybltuLHRdfSl9fWZ1bmN0aW9uIFBpKCl7ZnVuY3Rpb24gdCgpe3JldHVybnt0eXBlOlwiTXVsdGlMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6bigpfX1mdW5jdGlvbiBuKCl7cmV0dXJuIHMoZXAoby95KSp5LGkseSkubWFwKGQpLmNvbmNhdChzKGVwKGMvXykqXyxmLF8pLm1hcChwKSkuY29uY2F0KHMoZXAoci92KSp2LGUsdikuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBKZCh0JXkpPkhkfSkubWFwKGwpKS5jb25jYXQocyhlcCh1L2cpKmcsYSxnKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIEpkKHQlXyk+SGR9KS5tYXAoaCkpfXZhciBlLHIsaSxvLGEsdSxmLGMsbCxoLGQscCx2PTEwLGc9dix5PTkwLF89MzYwLGI9Mi41O3JldHVybiB0LmxpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6XCJMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6dH19KX0sdC5vdXRsaW5lPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6XCJQb2x5Z29uXCIsY29vcmRpbmF0ZXM6W2QobykuY29uY2F0KHAoZikuc2xpY2UoMSksZChpKS5yZXZlcnNlKCkuc2xpY2UoMSkscChjKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LHQuZXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuZXh0ZW50TWFqb3IobikuZXh0ZW50TWlub3Iobik6dC5leHRlbnRNaW5vcigpfSx0LmV4dGVudE1ham9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPStuWzBdWzBdLGk9K25bMV1bMF0sYz0rblswXVsxXSxmPStuWzFdWzFdLG8+aSYmKG49byxvPWksaT1uKSxjPmYmJihuPWMsYz1mLGY9biksdC5wcmVjaXNpb24oYikpOltbbyxjXSxbaSxmXV19LHQuZXh0ZW50TWlub3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K25bMF1bMF0sZT0rblsxXVswXSx1PStuWzBdWzFdLGE9K25bMV1bMV0scj5lJiYobj1yLHI9ZSxlPW4pLHU+YSYmKG49dSx1PWEsYT1uKSx0LnByZWNpc2lvbihiKSk6W1tyLHVdLFtlLGFdXX0sdC5zdGVwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Quc3RlcE1ham9yKG4pLnN0ZXBNaW5vcihuKTp0LnN0ZXBNaW5vcigpfSx0LnN0ZXBNYWpvcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT0rblswXSxfPStuWzFdLHQpOlt5LF9dfSx0LnN0ZXBNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj0rblswXSxnPStuWzFdLHQpOlt2LGddfSx0LnByZWNpc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj0rbixsPWtpKHUsYSw5MCksaD1DaShyLGUsYiksZD1raShjLGYsOTApLHA9Q2kobyxpLGIpLHQpOmJ9LHQuZXh0ZW50TWFqb3IoW1stMTgwLC05MCtIZF0sWzE4MCw5MC1IZF1dKS5leHRlbnRNaW5vcihbWy0xODAsLTgwLUhkXSxbMTgwLDgwK0hkXV0pfWZ1bmN0aW9uIHppKHQpe3JldHVybiB0fWZ1bmN0aW9uIFJpKCl7RnAucG9pbnQ9TGl9ZnVuY3Rpb24gTGkodCxuKXtGcC5wb2ludD1EaSx4cD1NcD10LHdwPUFwPW59ZnVuY3Rpb24gRGkodCxuKXtCcC5hZGQoQXAqdC1NcCpuKSxNcD10LEFwPW59ZnVuY3Rpb24gVWkoKXtEaSh4cCx3cCl9ZnVuY3Rpb24gcWkodCxuKXtWcCs9dCwkcCs9biwrK1dwfWZ1bmN0aW9uIE9pKCl7ZXYucG9pbnQ9WWl9ZnVuY3Rpb24gWWkodCxuKXtldi5wb2ludD1CaSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEJpKHQsbil7dmFyIGU9dC1TcCxyPW4tRXAsaT1mcChlKmUrcipyKTtacCs9aSooU3ArdCkvMixRcCs9aSooRXArbikvMixKcCs9aSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEZpKCl7ZXYucG9pbnQ9cWl9ZnVuY3Rpb24gSWkoKXtldi5wb2ludD1IaX1mdW5jdGlvbiBqaSgpe1hpKFRwLE5wKX1mdW5jdGlvbiBIaSh0LG4pe2V2LnBvaW50PVhpLHFpKFRwPVNwPXQsTnA9RXA9bil9ZnVuY3Rpb24gWGkodCxuKXt2YXIgZT10LVNwLHI9bi1FcCxpPWZwKGUqZStyKnIpO1pwKz1pKihTcCt0KS8yLFFwKz1pKihFcCtuKS8yLEpwKz1pLEtwKz0oaT1FcCp0LVNwKm4pKihTcCt0KSx0dis9aSooRXArbiksbnYrPTMqaSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEdpKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBWaSh0LG4pe2N2LnBvaW50PSRpLGl2PWF2PXQsb3Y9dXY9bn1mdW5jdGlvbiAkaSh0LG4pe2F2LT10LHV2LT1uLGZ2LmFkZChmcChhdiphdit1dip1dikpLGF2PXQsdXY9bn1mdW5jdGlvbiBXaSgpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBaaSh0KXtyZXR1cm5cIm0wLFwiK3QrXCJhXCIrdCtcIixcIit0K1wiIDAgMSwxIDAsXCIrLTIqdCtcImFcIit0K1wiLFwiK3QrXCIgMCAxLDEgMCxcIisyKnQrXCJ6XCJ9ZnVuY3Rpb24gUWkodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPW5ldyBKaTtmb3IodmFyIHIgaW4gdCllW3JdPXRbcl07cmV0dXJuIGUuc3RyZWFtPW4sZX19ZnVuY3Rpb24gSmkoKXt9ZnVuY3Rpb24gS2kodCxuLGUpe3ZhciByPXQuY2xpcEV4dGVudCYmdC5jbGlwRXh0ZW50KCk7cmV0dXJuIHQuc2NhbGUoMTUwKS50cmFuc2xhdGUoWzAsMF0pLG51bGwhPXImJnQuY2xpcEV4dGVudChudWxsKSxicihlLHQuc3RyZWFtKEdwKSksbihHcC5yZXN1bHQoKSksbnVsbCE9ciYmdC5jbGlwRXh0ZW50KHIpLHR9ZnVuY3Rpb24gdG8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPW5bMV1bMF0tblswXVswXSxpPW5bMV1bMV0tblswXVsxXSxvPU1hdGgubWluKHIvKGVbMV1bMF0tZVswXVswXSksaS8oZVsxXVsxXS1lWzBdWzFdKSksYT0rblswXVswXSsoci1vKihlWzFdWzBdK2VbMF1bMF0pKS8yLHU9K25bMF1bMV0rKGktbyooZVsxXVsxXStlWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2EsdV0pfSxlKX1mdW5jdGlvbiBubyh0LG4sZSl7cmV0dXJuIHRvKHQsW1swLDBdLG5dLGUpfWZ1bmN0aW9uIGVvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj0rbixpPXIvKGVbMV1bMF0tZVswXVswXSksbz0oci1pKihlWzFdWzBdK2VbMF1bMF0pKS8yLGE9LWkqZVswXVsxXTt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW28sYV0pfSxlKX1mdW5jdGlvbiBybyh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9K24saT1yLyhlWzFdWzFdLWVbMF1bMV0pLG89LWkqZVswXVswXSxhPShyLWkqKGVbMV1bMV0rZVswXVsxXSkpLzI7dC5zY2FsZSgxNTAqaSkudHJhbnNsYXRlKFtvLGFdKX0sZSl9ZnVuY3Rpb24gaW8odCxuKXtyZXR1cm4rbj9mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUocixpLG8sYSx1LGYsYyxzLGwsaCxkLHAsdixnKXt2YXIgeT1jLXIsXz1zLWksYj15KnkrXypfO2lmKGI+NCpuJiZ2LS0pe3ZhciBtPWEraCx4PXUrZCx3PWYrcCxNPWZwKG0qbSt4Kngrdyp3KSxBPWRyKHcvPU0pLFQ9SmQoSmQodyktMSk8SGR8fEpkKG8tbCk8SGQ/KG8rbCkvMjp0cCh4LG0pLE49dChULEEpLFM9TlswXSxFPU5bMV0saz1TLXIsQz1FLWksUD1fKmsteSpDOyhQKlAvYj5ufHxKZCgoeSprK18qQykvYi0uNSk+LjN8fGEqaCt1KmQrZipwPGx2KSYmKGUocixpLG8sYSx1LGYsUyxFLFQsbS89TSx4Lz1NLHcsdixnKSxnLnBvaW50KFMsRSksZShTLEUsVCxtLHgsdyxjLHMsbCxoLGQscCx2LGcpKX19cmV0dXJuIGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIoZSxyKXtlPXQoZSxyKSxuLnBvaW50KGVbMF0sZVsxXSl9ZnVuY3Rpb24gaSgpe3k9TmFOLHcucG9pbnQ9byxuLmxpbmVTdGFydCgpfWZ1bmN0aW9uIG8ocixpKXt2YXIgbz1UcihbcixpXSksYT10KHIsaSk7ZSh5LF8sZyxiLG0seCx5PWFbMF0sXz1hWzFdLGc9cixiPW9bMF0sbT1vWzFdLHg9b1syXSxzdixuKSxuLnBvaW50KHksXyl9ZnVuY3Rpb24gYSgpe3cucG9pbnQ9cixuLmxpbmVFbmQoKX1mdW5jdGlvbiB1KCl7aSgpLHcucG9pbnQ9Zix3LmxpbmVFbmQ9Y31mdW5jdGlvbiBmKHQsbil7byhzPXQsbiksbD15LGg9XyxkPWIscD1tLHY9eCx3LnBvaW50PW99ZnVuY3Rpb24gYygpe2UoeSxfLGcsYixtLHgsbCxoLHMsZCxwLHYsc3Ysbiksdy5saW5lRW5kPWEsYSgpfXZhciBzLGwsaCxkLHAsdixnLHksXyxiLG0seCx3PXtwb2ludDpyLGxpbmVTdGFydDppLGxpbmVFbmQ6YSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25TdGFydCgpLHcubGluZVN0YXJ0PXV9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25FbmQoKSx3LmxpbmVTdGFydD1pfX07cmV0dXJuIHd9fSh0LG4pOmZ1bmN0aW9uKHQpe3JldHVybiBRaSh7cG9pbnQ6ZnVuY3Rpb24obixlKXtuPXQobixlKSx0aGlzLnN0cmVhbS5wb2ludChuWzBdLG5bMV0pfX0pfSh0KX1mdW5jdGlvbiBvbyh0LG4sZSxyKXtmdW5jdGlvbiBpKHQscil7cmV0dXJuW3UqdC1mKnIrbixlLWYqdC11KnJdfXZhciBvPW5wKHIpLGE9YXAociksdT1vKnQsZj1hKnQsYz1vL3Qscz1hL3QsbD0oYSplLW8qbikvdCxoPShhKm4rbyplKS90O3JldHVybiBpLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVybltjKnQtcypuK2wsaC1zKnQtYypuXX0saX1mdW5jdGlvbiBhbyh0KXtyZXR1cm4gdW8oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKCl9ZnVuY3Rpb24gdW8odCl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbCh0WzBdKlFkLHRbMV0qUWQpfWZ1bmN0aW9uIGUoKXt2YXIgdD1vbyhwLDAsMCx3KS5hcHBseShudWxsLGkoeSxfKSksbj0odz9vbzpmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybltuK3QqcixlLXQqaV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHIsaSl7cmV0dXJuWyhyLW4pL3QsKGUtaSkvdF19LHJ9KShwLHYtdFswXSxnLXRbMV0sdyk7cmV0dXJuIG89dGkoYixtLHgpLHM9SnIoaSxuKSxsPUpyKG8scyksYz1pbyhzLFMpLHIoKX1mdW5jdGlvbiByKCl7cmV0dXJuIGg9ZD1udWxsLG59dmFyIGksbyxhLHUsZixjLHMsbCxoLGQscD0xNTAsdj00ODAsZz0yNTAseT0wLF89MCxiPTAsbT0wLHg9MCx3PTAsTT1udWxsLEE9Q3AsVD1udWxsLE49emksUz0uNTtyZXR1cm4gbi5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGgmJmQ9PT10P2g6aD1odihmdW5jdGlvbih0KXtyZXR1cm4gUWkoe3BvaW50OmZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuLGUpO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChyWzBdLHJbMV0pfX0pfShvKShBKGMoTihkPXQpKSkpKX0sbi5wcmVjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPXQsTT12b2lkIDAscigpKTpBfSxuLnBvc3RjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhOPXQsVD1hPXU9Zj1udWxsLHIoKSk6Tn0sbi5jbGlwQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9K3Q/Z2koTT10KlFkKTooTT1udWxsLENwKSxyKCkpOk0qWmR9LG4uY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTj1udWxsPT10PyhUPWE9dT1mPW51bGwsemkpOnlpKFQ9K3RbMF1bMF0sYT0rdFswXVsxXSx1PSt0WzFdWzBdLGY9K3RbMV1bMV0pLHIoKSk6bnVsbD09VD9udWxsOltbVCxhXSxbdSxmXV19LG4uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9K3QsZSgpKTpwfSxuLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj0rdFswXSxnPSt0WzFdLGUoKSk6W3YsZ119LG4uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PXRbMF0lMzYwKlFkLF89dFsxXSUzNjAqUWQsZSgpKTpbeSpaZCxfKlpkXX0sbi5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9dFswXSUzNjAqUWQsbT10WzFdJTM2MCpRZCx4PXQubGVuZ3RoPjI/dFsyXSUzNjAqUWQ6MCxlKCkpOltiKlpkLG0qWmQseCpaZF19LG4uYW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9dCUzNjAqUWQsZSgpKTp3KlpkfSxuLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1pbyhzLFM9dCp0KSxyKCkpOmZwKFMpfSxuLmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiB0byhuLHQsZSl9LG4uZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBubyhuLHQsZSl9LG4uZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZW8obix0LGUpfSxuLmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBybyhuLHQsZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIGk9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbi5pbnZlcnQ9aS5pbnZlcnQmJmZ1bmN0aW9uKHQpe3JldHVybih0PWwuaW52ZXJ0KHRbMF0sdFsxXSkpJiZbdFswXSpaZCx0WzFdKlpkXX0sZSgpfX1mdW5jdGlvbiBmbyh0KXt2YXIgbj0wLGU9R2QvMyxyPXVvKHQpLGk9cihuLGUpO3JldHVybiBpLnBhcmFsbGVscz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKG49dFswXSpRZCxlPXRbMV0qUWQpOltuKlpkLGUqWmRdfSxpfWZ1bmN0aW9uIGNvKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPWZwKG8tMippKmFwKG4pKS9pO3JldHVybltlKmFwKHQqPWkpLGEtZSpucCh0KV19dmFyIHI9YXAodCksaT0ocithcChuKSkvMjtpZihKZChpKTxIZClyZXR1cm4gZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LG4pe3JldHVyblt0KmUsYXAobikvZV19dmFyIGU9bnAodCk7cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QvZSxkcihuKmUpXX0sbn0odCk7dmFyIG89MStyKigyKmktciksYT1mcChvKS9pO3JldHVybiBlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPWEtbjtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSxkcigoby0odCp0K2UqZSkqaSppKS8oMippKSldfSxlfWZ1bmN0aW9uIHNvKCl7cmV0dXJuIGZvKGNvKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIGxvKCl7cmV0dXJuIHNvKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gaG8odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9bnAobiksaT1ucChlKSxvPXQocippKTtyZXR1cm5bbyppKmFwKG4pLG8qYXAoZSldfX1mdW5jdGlvbiBwbyh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj1mcChuKm4rZSplKSxpPXQociksbz1hcChpKSxhPW5wKGkpO3JldHVyblt0cChuKm8sciphKSxkcihyJiZlKm8vcildfX1mdW5jdGlvbiB2byh0LG4pe3JldHVyblt0LGlwKGNwKChWZCtuKS8yKSldfWZ1bmN0aW9uIGdvKHQpe2Z1bmN0aW9uIG4oKXt2YXIgbj1HZCp1KCksYT1vKGlpKG8ucm90YXRlKCkpLmludmVydChbMCwwXSkpO3JldHVybiBjKG51bGw9PXM/W1thWzBdLW4sYVsxXS1uXSxbYVswXStuLGFbMV0rbl1dOnQ9PT12bz9bW01hdGgubWF4KGFbMF0tbixzKSxlXSxbTWF0aC5taW4oYVswXStuLHIpLGldXTpbW3MsTWF0aC5tYXgoYVsxXS1uLGUpXSxbcixNYXRoLm1pbihhWzFdK24saSldXSl9dmFyIGUscixpLG89YW8odCksYT1vLmNlbnRlcix1PW8uc2NhbGUsZj1vLnRyYW5zbGF0ZSxjPW8uY2xpcEV4dGVudCxzPW51bGw7cmV0dXJuIG8uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHUodCksbigpKTp1KCl9LG8udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmKHQpLG4oKSk6ZigpfSxvLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYSh0KSxuKCkpOmEoKX0sby5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P3M9ZT1yPWk9bnVsbDoocz0rdFswXVswXSxlPSt0WzBdWzFdLHI9K3RbMV1bMF0saT0rdFsxXVsxXSksbigpKTpudWxsPT1zP251bGw6W1tzLGVdLFtyLGldXX0sbigpfWZ1bmN0aW9uIHlvKHQpe3JldHVybiBjcCgoVmQrdCkvMil9ZnVuY3Rpb24gX28odCxuKXtmdW5jdGlvbiBlKHQsbil7bz4wP248LVZkK0hkJiYobj0tVmQrSGQpOm4+VmQtSGQmJihuPVZkLUhkKTt2YXIgZT1vL29wKHlvKG4pLGkpO3JldHVybltlKmFwKGkqdCksby1lKm5wKGkqdCldfXZhciByPW5wKHQpLGk9dD09PW4/YXAodCk6aXAoci9ucChuKSkvaXAoeW8obikveW8odCkpLG89cipvcCh5byh0KSxpKS9pO3JldHVybiBpPyhlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW8tbixyPXVwKGkpKmZwKHQqdCtlKmUpO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLDIqS2Qob3Aoby9yLDEvaSkpLVZkXX0sZSk6dm99ZnVuY3Rpb24gYm8odCxuKXtyZXR1cm5bdCxuXX1mdW5jdGlvbiBtbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1vLW4scj1pKnQ7cmV0dXJuW2UqYXAociksby1lKm5wKHIpXX12YXIgcj1ucCh0KSxpPXQ9PT1uP2FwKHQpOihyLW5wKG4pKS8obi10KSxvPXIvaSt0O3JldHVybiBKZChpKTxIZD9ibzooZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1vLW47cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksby11cChpKSpmcCh0KnQrZSplKV19LGUpfWZ1bmN0aW9uIHhvKHQsbil7dmFyIGU9bnAobikscj1ucCh0KSplO3JldHVybltlKmFwKHQpL3IsYXAobikvcl19ZnVuY3Rpb24gd28odCxuLGUscil7cmV0dXJuIDE9PT10JiYxPT09biYmMD09PWUmJjA9PT1yP3ppOlFpKHtwb2ludDpmdW5jdGlvbihpLG8pe3RoaXMuc3RyZWFtLnBvaW50KGkqdCtlLG8qbityKX19KX1mdW5jdGlvbiBNbyh0LG4pe3ZhciBlPW4qbixyPWUqZTtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSplK3IqKHIqKC4wMDM5NzEqZS0uMDAxNTI5KnIpLS4wMTM3OTEpKSxuKigxLjAwNzIyNitlKiguMDE1MDg1K3IqKC4wMjg4NzQqZS0uMDQ0NDc1LS4wMDU5MTYqcikpKV19ZnVuY3Rpb24gQW8odCxuKXtyZXR1cm5bbnAobikqYXAodCksYXAobildfWZ1bmN0aW9uIFRvKHQsbil7dmFyIGU9bnAobikscj0xK25wKHQpKmU7cmV0dXJuW2UqYXAodCkvcixhcChuKS9yXX1mdW5jdGlvbiBObyh0LG4pe3JldHVybltpcChjcCgoVmQrbikvMikpLC10XX1mdW5jdGlvbiBTbyh0LG4pe3JldHVybiB0LnBhcmVudD09PW4ucGFyZW50PzE6Mn1mdW5jdGlvbiBFbyh0LG4pe3JldHVybiB0K24ueH1mdW5jdGlvbiBrbyh0LG4pe3JldHVybiBNYXRoLm1heCh0LG4ueSl9ZnVuY3Rpb24gQ28odCl7dmFyIG49MCxlPXQuY2hpbGRyZW4scj1lJiZlLmxlbmd0aDtpZihyKWZvcig7LS1yPj0wOyluKz1lW3JdLnZhbHVlO2Vsc2Ugbj0xO3QudmFsdWU9bn1mdW5jdGlvbiBQbyh0LG4pe3ZhciBlLHIsaSxvLGEsdT1uZXcgRG8odCksZj0rdC52YWx1ZSYmKHUudmFsdWU9dC52YWx1ZSksYz1bdV07Zm9yKG51bGw9PW4mJihuPXpvKTtlPWMucG9wKCk7KWlmKGYmJihlLnZhbHVlPStlLmRhdGEudmFsdWUpLChpPW4oZS5kYXRhKSkmJihhPWkubGVuZ3RoKSlmb3IoZS5jaGlsZHJlbj1uZXcgQXJyYXkoYSksbz1hLTE7bz49MDstLW8pYy5wdXNoKHI9ZS5jaGlsZHJlbltvXT1uZXcgRG8oaVtvXSkpLHIucGFyZW50PWUsci5kZXB0aD1lLmRlcHRoKzE7cmV0dXJuIHUuZWFjaEJlZm9yZShMbyl9ZnVuY3Rpb24gem8odCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gUm8odCl7dC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIExvKHQpe3ZhciBuPTA7ZG97dC5oZWlnaHQ9bn13aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrbil9ZnVuY3Rpb24gRG8odCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9ZnVuY3Rpb24gVW8odCl7Zm9yKHZhciBuLGUscj0wLGk9KHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj10Lmxlbmd0aDtyOyllPU1hdGgucmFuZG9tKCkqci0tfDAsbj10W3JdLHRbcl09dFtlXSx0W2VdPW47cmV0dXJuIHR9KHZ2LmNhbGwodCkpKS5sZW5ndGgsbz1bXTtyPGk7KW49dFtyXSxlJiZPbyhlLG4pPysrcjooZT1mdW5jdGlvbih0KXtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX0odFswXSk7Y2FzZSAyOnJldHVybiBCbyh0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gRm8odFswXSx0WzFdLHRbMl0pfX0obz1mdW5jdGlvbih0LG4pe3ZhciBlLHI7aWYoWW8obix0KSlyZXR1cm5bbl07Zm9yKGU9MDtlPHQubGVuZ3RoOysrZSlpZihxbyhuLHRbZV0pJiZZbyhCbyh0W2VdLG4pLHQpKXJldHVyblt0W2VdLG5dO2ZvcihlPTA7ZTx0Lmxlbmd0aC0xOysrZSlmb3Iocj1lKzE7cjx0Lmxlbmd0aDsrK3IpaWYocW8oQm8odFtlXSx0W3JdKSxuKSYmcW8oQm8odFtlXSxuKSx0W3JdKSYmcW8oQm8odFtyXSxuKSx0W2VdKSYmWW8oRm8odFtlXSx0W3JdLG4pLHQpKXJldHVyblt0W2VdLHRbcl0sbl07dGhyb3cgbmV3IEVycm9yfShvLG4pKSxyPTApO3JldHVybiBlfWZ1bmN0aW9uIHFvKHQsbil7dmFyIGU9dC5yLW4ucixyPW4ueC10LngsaT1uLnktdC55O3JldHVybiBlPDB8fGUqZTxyKnIraSppfWZ1bmN0aW9uIE9vKHQsbil7dmFyIGU9dC5yLW4ucisxZS02LHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU+MCYmZSplPnIqcitpKml9ZnVuY3Rpb24gWW8odCxuKXtmb3IodmFyIGU9MDtlPG4ubGVuZ3RoOysrZSlpZighT28odCxuW2VdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCbyh0LG4pe3ZhciBlPXQueCxyPXQueSxpPXQucixvPW4ueCxhPW4ueSx1PW4ucixmPW8tZSxjPWEtcixzPXUtaSxsPU1hdGguc3FydChmKmYrYypjKTtyZXR1cm57eDooZStvK2YvbCpzKS8yLHk6KHIrYStjL2wqcykvMixyOihsK2krdSkvMn19ZnVuY3Rpb24gRm8odCxuLGUpe3ZhciByPXQueCxpPXQueSxvPXQucixhPW4ueCx1PW4ueSxmPW4ucixjPWUueCxzPWUueSxsPWUucixoPXItYSxkPXItYyxwPWktdSx2PWktcyxnPWYtbyx5PWwtbyxfPXIqcitpKmktbypvLGI9Xy1hKmEtdSp1K2YqZixtPV8tYypjLXMqcytsKmwseD1kKnAtaCp2LHc9KHAqbS12KmIpLygyKngpLXIsTT0odipnLXAqeSkveCxBPShkKmItaCptKS8oMip4KS1pLFQ9KGgqeS1kKmcpL3gsTj1NKk0rVCpULTEsUz0yKihvK3cqTStBKlQpLEU9dyp3K0EqQS1vKm8saz0tKE4/KFMrTWF0aC5zcXJ0KFMqUy00Kk4qRSkpLygyKk4pOkUvUyk7cmV0dXJue3g6cit3K00qayx5OmkrQStUKmsscjprfX1mdW5jdGlvbiBJbyh0LG4sZSl7dmFyIHIsaSxvLGEsdT10Lngtbi54LGY9dC55LW4ueSxjPXUqdStmKmY7Yz8oaT1uLnIrZS5yLGkqPWksYT10LnIrZS5yLGk+KGEqPWEpPyhyPShjK2EtaSkvKDIqYyksbz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxhL2MtcipyKSksZS54PXQueC1yKnUtbypmLGUueT10LnktcipmK28qdSk6KHI9KGMraS1hKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLGkvYy1yKnIpKSxlLng9bi54K3IqdS1vKmYsZS55PW4ueStyKmYrbyp1KSk6KGUueD1uLngrZS5yLGUueT1uLnkpfWZ1bmN0aW9uIGpvKHQsbil7dmFyIGU9dC5yK24uci0xZS02LHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU+MCYmZSplPnIqcitpKml9ZnVuY3Rpb24gSG8odCl7dmFyIG49dC5fLGU9dC5uZXh0Ll8scj1uLnIrZS5yLGk9KG4ueCplLnIrZS54Km4ucikvcixvPShuLnkqZS5yK2UueSpuLnIpL3I7cmV0dXJuIGkqaStvKm99ZnVuY3Rpb24gWG8odCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIEdvKHQpe2lmKCEoaT10Lmxlbmd0aCkpcmV0dXJuIDA7dmFyIG4sZSxyLGksbyxhLHUsZixjLHMsbDtpZihuPXRbMF0sbi54PTAsbi55PTAsIShpPjEpKXJldHVybiBuLnI7aWYoZT10WzFdLG4ueD0tZS5yLGUueD1uLnIsZS55PTAsIShpPjIpKXJldHVybiBuLnIrZS5yO0lvKGUsbixyPXRbMl0pLG49bmV3IFhvKG4pLGU9bmV3IFhvKGUpLHI9bmV3IFhvKHIpLG4ubmV4dD1yLnByZXZpb3VzPWUsZS5uZXh0PW4ucHJldmlvdXM9cixyLm5leHQ9ZS5wcmV2aW91cz1uO3Q6Zm9yKHU9Mzt1PGk7Kyt1KXtJbyhuLl8sZS5fLHI9dFt1XSkscj1uZXcgWG8ociksZj1lLm5leHQsYz1uLnByZXZpb3VzLHM9ZS5fLnIsbD1uLl8ucjtkb3tpZihzPD1sKXtpZihqbyhmLl8sci5fKSl7ZT1mLG4ubmV4dD1lLGUucHJldmlvdXM9biwtLXU7Y29udGludWUgdH1zKz1mLl8ucixmPWYubmV4dH1lbHNle2lmKGpvKGMuXyxyLl8pKXsobj1jKS5uZXh0PWUsZS5wcmV2aW91cz1uLC0tdTtjb250aW51ZSB0fWwrPWMuXy5yLGM9Yy5wcmV2aW91c319d2hpbGUoZiE9PWMubmV4dCk7Zm9yKHIucHJldmlvdXM9bixyLm5leHQ9ZSxuLm5leHQ9ZS5wcmV2aW91cz1lPXIsbz1IbyhuKTsocj1yLm5leHQpIT09ZTspKGE9SG8ocikpPG8mJihuPXIsbz1hKTtlPW4ubmV4dH1mb3Iobj1bZS5fXSxyPWU7KHI9ci5uZXh0KSE9PWU7KW4ucHVzaChyLl8pO2ZvcihyPVVvKG4pLHU9MDt1PGk7Kyt1KW49dFt1XSxuLngtPXIueCxuLnktPXIueTtyZXR1cm4gci5yfWZ1bmN0aW9uIFZvKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0fWZ1bmN0aW9uICRvKCl7cmV0dXJuIDB9ZnVuY3Rpb24gV28odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFpvKHQpe3JldHVybiBNYXRoLnNxcnQodC52YWx1ZSl9ZnVuY3Rpb24gUW8odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uY2hpbGRyZW58fChuLnI9TWF0aC5tYXgoMCwrdChuKXx8MCkpfX1mdW5jdGlvbiBKbyh0LG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihyPWUuY2hpbGRyZW4pe3ZhciByLGksbyxhPXIubGVuZ3RoLHU9dChlKSpufHwwO2lmKHUpZm9yKGk9MDtpPGE7KytpKXJbaV0ucis9dTtpZihvPUdvKHIpLHUpZm9yKGk9MDtpPGE7KytpKXJbaV0uci09dTtlLnI9byt1fX19ZnVuY3Rpb24gS28odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPW4ucGFyZW50O24ucio9dCxlJiYobi54PWUueCt0Km4ueCxuLnk9ZS55K3Qqbi55KX19ZnVuY3Rpb24gdGEodCl7dC54MD1NYXRoLnJvdW5kKHQueDApLHQueTA9TWF0aC5yb3VuZCh0LnkwKSx0LngxPU1hdGgucm91bmQodC54MSksdC55MT1NYXRoLnJvdW5kKHQueTEpfWZ1bmN0aW9uIG5hKHQsbixlLHIsaSl7Zm9yKHZhciBvLGE9dC5jaGlsZHJlbix1PS0xLGY9YS5sZW5ndGgsYz10LnZhbHVlJiYoci1uKS90LnZhbHVlOysrdTxmOykobz1hW3VdKS55MD1lLG8ueTE9aSxvLngwPW4sby54MT1uKz1vLnZhbHVlKmN9ZnVuY3Rpb24gZWEodCl7cmV0dXJuIHQuaWR9ZnVuY3Rpb24gcmEodCl7cmV0dXJuIHQucGFyZW50SWR9ZnVuY3Rpb24gaWEodCxuKXtyZXR1cm4gdC5wYXJlbnQ9PT1uLnBhcmVudD8xOjJ9ZnVuY3Rpb24gb2EodCl7dmFyIG49dC5jaGlsZHJlbjtyZXR1cm4gbj9uWzBdOnQudH1mdW5jdGlvbiBhYSh0KXt2YXIgbj10LmNoaWxkcmVuO3JldHVybiBuP25bbi5sZW5ndGgtMV06dC50fWZ1bmN0aW9uIHVhKHQsbixlKXt2YXIgcj1lLyhuLmktdC5pKTtuLmMtPXIsbi5zKz1lLHQuYys9cixuLnorPWUsbi5tKz1lfWZ1bmN0aW9uIGZhKHQsbixlKXtyZXR1cm4gdC5hLnBhcmVudD09PW4ucGFyZW50P3QuYTplfWZ1bmN0aW9uIGNhKHQsbil7dGhpcy5fPXQsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPW51bGwsdGhpcy5BPW51bGwsdGhpcy5hPXRoaXMsdGhpcy56PTAsdGhpcy5tPTAsdGhpcy5jPTAsdGhpcy5zPTAsdGhpcy50PW51bGwsdGhpcy5pPW59ZnVuY3Rpb24gc2EodCxuLGUscixpKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHU9LTEsZj1hLmxlbmd0aCxjPXQudmFsdWUmJihpLWUpL3QudmFsdWU7Kyt1PGY7KShvPWFbdV0pLngwPW4sby54MT1yLG8ueTA9ZSxvLnkxPWUrPW8udmFsdWUqY31mdW5jdGlvbiBsYSh0LG4sZSxyLGksbyl7Zm9yKHZhciBhLHUsZixjLHMsbCxoLGQscCx2LGcseT1bXSxfPW4uY2hpbGRyZW4sYj0wLG09MCx4PV8ubGVuZ3RoLHc9bi52YWx1ZTtiPHg7KXtmPWktZSxjPW8tcjtkb3tzPV9bbSsrXS52YWx1ZX13aGlsZSghcyYmbTx4KTtmb3IobD1oPXMsZz1zKnMqKHY9TWF0aC5tYXgoYy9mLGYvYykvKHcqdCkpLHA9TWF0aC5tYXgoaC9nLGcvbCk7bTx4OysrbSl7aWYocys9dT1fW21dLnZhbHVlLHU8bCYmKGw9dSksdT5oJiYoaD11KSxnPXMqcyp2LChkPU1hdGgubWF4KGgvZyxnL2wpKT5wKXtzLT11O2JyZWFrfXA9ZH15LnB1c2goYT17dmFsdWU6cyxkaWNlOmY8YyxjaGlsZHJlbjpfLnNsaWNlKGIsbSl9KSxhLmRpY2U/bmEoYSxlLHIsaSx3P3IrPWMqcy93Om8pOnNhKGEsZSxyLHc/ZSs9ZipzL3c6aSxvKSx3LT1zLGI9bX1yZXR1cm4geX1mdW5jdGlvbiBoYSh0LG4sZSl7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSktKG5bMV0tdFsxXSkqKGVbMF0tdFswXSl9ZnVuY3Rpb24gZGEodCxuKXtyZXR1cm4gdFswXS1uWzBdfHx0WzFdLW5bMV19ZnVuY3Rpb24gcGEodCl7Zm9yKHZhciBuPXQubGVuZ3RoLGU9WzAsMV0scj0yLGk9MjtpPG47KytpKXtmb3IoO3I+MSYmaGEodFtlW3ItMl1dLHRbZVtyLTFdXSx0W2ldKTw9MDspLS1yO2VbcisrXT1pfXJldHVybiBlLnNsaWNlKDAscil9ZnVuY3Rpb24gdmEoKXtyZXR1cm4gTWF0aC5yYW5kb20oKX1mdW5jdGlvbiBnYSh0KXtmdW5jdGlvbiBuKG4pe3ZhciBvPW4rXCJcIixhPWUuZ2V0KG8pO2lmKCFhKXtpZihpIT09UHYpcmV0dXJuIGk7ZS5zZXQobyxhPXIucHVzaChuKSl9cmV0dXJuIHRbKGEtMSkldC5sZW5ndGhdfXZhciBlPWhlKCkscj1bXSxpPVB2O3JldHVybiB0PW51bGw9PXQ/W106Q3YuY2FsbCh0KSxuLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gci5zbGljZSgpO3I9W10sZT1oZSgpO2Zvcih2YXIgaSxvLGE9LTEsdT10Lmxlbmd0aDsrK2E8dTspZS5oYXMobz0oaT10W2FdKStcIlwiKXx8ZS5zZXQobyxyLnB1c2goaSkpO3JldHVybiBufSxuLnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PUN2LmNhbGwoZSksbik6dC5zbGljZSgpfSxuLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxuKTppfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gZ2EoKS5kb21haW4ocikucmFuZ2UodCkudW5rbm93bihpKX0sbn1mdW5jdGlvbiB5YSgpe2Z1bmN0aW9uIHQoKXt2YXIgdD1pKCkubGVuZ3RoLHI9YVsxXTxhWzBdLGg9YVtyLTBdLGQ9YVsxLXJdO249KGQtaCkvTWF0aC5tYXgoMSx0LWYrMipjKSx1JiYobj1NYXRoLmZsb29yKG4pKSxoKz0oZC1oLW4qKHQtZikpKmwsZT1uKigxLWYpLHUmJihoPU1hdGgucm91bmQoaCksZT1NYXRoLnJvdW5kKGUpKTt2YXIgcD1zKHQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaCtuKnR9KTtyZXR1cm4gbyhyP3AucmV2ZXJzZSgpOnApfXZhciBuLGUscj1nYSgpLnVua25vd24odm9pZCAwKSxpPXIuZG9tYWluLG89ci5yYW5nZSxhPVswLDFdLHU9ITEsZj0wLGM9MCxsPS41O3JldHVybiBkZWxldGUgci51bmtub3duLHIuZG9tYWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKG4pLHQoKSk6aSgpfSxyLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVsrblswXSwrblsxXV0sdCgpKTphLnNsaWNlKCl9LHIucmFuZ2VSb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYT1bK25bMF0sK25bMV1dLHU9ITAsdCgpfSxyLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBlfSxyLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sci5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hIW4sdCgpKTp1fSxyLnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9Yz1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Zn0sci5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmZ9LHIucGFkZGluZ091dGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpjfSxyLmFsaWduPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpsfSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4geWEoKS5kb21haW4oaSgpKS5yYW5nZShhKS5yb3VuZCh1KS5wYWRkaW5nSW5uZXIoZikucGFkZGluZ091dGVyKGMpLmFsaWduKGwpfSx0KCl9ZnVuY3Rpb24gX2EodCl7dmFyIG49dC5jb3B5O3JldHVybiB0LnBhZGRpbmc9dC5wYWRkaW5nT3V0ZXIsZGVsZXRlIHQucGFkZGluZ0lubmVyLGRlbGV0ZSB0LnBhZGRpbmdPdXRlcix0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gX2EobigpKX0sdH1mdW5jdGlvbiBiYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbWEodCl7cmV0dXJuK3R9ZnVuY3Rpb24geGEodCxuKXtyZXR1cm4obi09dD0rdCk/ZnVuY3Rpb24oZSl7cmV0dXJuKGUtdCkvbn06YmEobil9ZnVuY3Rpb24gd2EodCxuLGUscil7dmFyIGk9dFswXSxvPXRbMV0sYT1uWzBdLHU9blsxXTtyZXR1cm4gbzxpPyhpPWUobyxpKSxhPXIodSxhKSk6KGk9ZShpLG8pLGE9cihhLHUpKSxmdW5jdGlvbih0KXtyZXR1cm4gYShpKHQpKX19ZnVuY3Rpb24gTWEodCxuLGUscil7dmFyIGk9TWF0aC5taW4odC5sZW5ndGgsbi5sZW5ndGgpLTEsbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSksdT0tMTtmb3IodFtpXTx0WzBdJiYodD10LnNsaWNlKCkucmV2ZXJzZSgpLG49bi5zbGljZSgpLnJldmVyc2UoKSk7Kyt1PGk7KW9bdV09ZSh0W3VdLHRbdSsxXSksYVt1XT1yKG5bdV0sblt1KzFdKTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9S2ModCxuLDEsaSktMTtyZXR1cm4gYVtlXShvW2VdKG4pKX19ZnVuY3Rpb24gQWEodCxuKXtyZXR1cm4gbi5kb21haW4odC5kb21haW4oKSkucmFuZ2UodC5yYW5nZSgpKS5pbnRlcnBvbGF0ZSh0LmludGVycG9sYXRlKCkpLmNsYW1wKHQuY2xhbXAoKSl9ZnVuY3Rpb24gVGEodCxuKXtmdW5jdGlvbiBlKCl7cmV0dXJuIGk9TWF0aC5taW4odS5sZW5ndGgsZi5sZW5ndGgpPjI/TWE6d2Esbz1hPW51bGwscn1mdW5jdGlvbiByKG4pe3JldHVybihvfHwobz1pKHUsZixzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQobj0rbixlPStlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PW4/MDp0Pj1lPzE6cih0KX19fSh0KTp0LGMpKSkoK24pfXZhciBpLG8sYSx1PXp2LGY9enYsYz1kbixzPSExO3JldHVybiByLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4oYXx8KGE9aShmLHUseGEscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KG49K24sZT0rZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0PD0wP246dD49MT9lOnIodCl9fX0obik6bikpKSgrdCl9LHIuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PWt2LmNhbGwodCxtYSksZSgpKTp1LnNsaWNlKCl9LHIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9Q3YuY2FsbCh0KSxlKCkpOmYuc2xpY2UoKX0sci5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBmPUN2LmNhbGwodCksYz1wbixlKCl9LHIuY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ISF0LGUoKSk6c30sci5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LGUoKSk6Y30sZSgpfWZ1bmN0aW9uIE5hKG4pe3ZhciBlPW4uZG9tYWluO3JldHVybiBuLnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBuPWUoKTtyZXR1cm4gbChuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sbi50aWNrRm9ybWF0PWZ1bmN0aW9uKG4scil7cmV0dXJuIGZ1bmN0aW9uKG4sZSxyKXt2YXIgaSxvPW5bMF0sYT1uW24ubGVuZ3RoLTFdLHU9ZChvLGEsbnVsbD09ZT8xMDplKTtzd2l0Y2goKHI9dHIobnVsbD09cj9cIixmXCI6cikpLnR5cGUpe2Nhc2VcInNcIjp2YXIgZj1NYXRoLm1heChNYXRoLmFicyhvKSxNYXRoLmFicyhhKSk7cmV0dXJuIG51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPXVyKHUsZikpfHwoci5wcmVjaXNpb249aSksdC5mb3JtYXRQcmVmaXgocixmKTtjYXNlXCJcIjpjYXNlXCJlXCI6Y2FzZVwiZ1wiOmNhc2VcInBcIjpjYXNlXCJyXCI6bnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9ZnIodSxNYXRoLm1heChNYXRoLmFicyhvKSxNYXRoLmFicyhhKSkpKXx8KHIucHJlY2lzaW9uPWktKFwiZVwiPT09ci50eXBlKSk7YnJlYWs7Y2FzZVwiZlwiOmNhc2VcIiVcIjpudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT1hcih1KSl8fChyLnByZWNpc2lvbj1pLTIqKFwiJVwiPT09ci50eXBlKSl9cmV0dXJuIHQuZm9ybWF0KHIpfShlKCksbixyKX0sbi5uaWNlPWZ1bmN0aW9uKHQpe251bGw9PXQmJih0PTEwKTt2YXIgcixpPWUoKSxvPTAsYT1pLmxlbmd0aC0xLHU9aVtvXSxmPWlbYV07cmV0dXJuIGY8dSYmKHI9dSx1PWYsZj1yLHI9byxvPWEsYT1yKSwocj1oKHUsZix0KSk+MD9yPWgodT1NYXRoLmZsb29yKHUvcikqcixmPU1hdGguY2VpbChmL3IpKnIsdCk6cjwwJiYocj1oKHU9TWF0aC5jZWlsKHUqcikvcixmPU1hdGguZmxvb3IoZipyKS9yLHQpKSxyPjA/KGlbb109TWF0aC5mbG9vcih1L3IpKnIsaVthXT1NYXRoLmNlaWwoZi9yKSpyLGUoaSkpOnI8MCYmKGlbb109TWF0aC5jZWlsKHUqcikvcixpW2FdPU1hdGguZmxvb3IoZipyKS9yLGUoaSkpLG59LG59ZnVuY3Rpb24gU2EoKXt2YXIgdD1UYSh4YSxzbik7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiBBYSh0LFNhKCkpfSxOYSh0KX1mdW5jdGlvbiBFYSgpe2Z1bmN0aW9uIHQodCl7cmV0dXJuK3R9dmFyIG49WzAsMV07cmV0dXJuIHQuaW52ZXJ0PXQsdC5kb21haW49dC5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1rdi5jYWxsKGUsbWEpLHQpOm4uc2xpY2UoKX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEVhKCkuZG9tYWluKG4pfSxOYSh0KX1mdW5jdGlvbiBrYSh0LG4pe3ZhciBlLHI9MCxpPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W3JdLGE9dFtpXTtyZXR1cm4gYTxvJiYoZT1yLHI9aSxpPWUsZT1vLG89YSxhPWUpLHRbcl09bi5mbG9vcihvKSx0W2ldPW4uY2VpbChhKSx0fWZ1bmN0aW9uIENhKHQsbil7cmV0dXJuKG49TWF0aC5sb2cobi90KSk/ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUvdCkvbn06YmEobil9ZnVuY3Rpb24gUGEodCxuKXtyZXR1cm4gdDwwP2Z1bmN0aW9uKGUpe3JldHVybi1NYXRoLnBvdygtbixlKSpNYXRoLnBvdygtdCwxLWUpfTpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3cobixlKSpNYXRoLnBvdyh0LDEtZSl9fWZ1bmN0aW9uIHphKHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKFwiMWVcIit0KTp0PDA/MDp0fWZ1bmN0aW9uIFJhKHQpe3JldHVybiAxMD09PXQ/emE6dD09PU1hdGguRT9NYXRoLmV4cDpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3codCxuKX19ZnVuY3Rpb24gTGEodCl7cmV0dXJuIHQ9PT1NYXRoLkU/TWF0aC5sb2c6MTA9PT10JiZNYXRoLmxvZzEwfHwyPT09dCYmTWF0aC5sb2cyfHwodD1NYXRoLmxvZyh0KSxmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5sb2cobikvdH0pfWZ1bmN0aW9uIERhKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4tdCgtbil9fWZ1bmN0aW9uIFVhKCl7ZnVuY3Rpb24gbigpe3JldHVybiBvPUxhKGkpLGE9UmEoaSkscigpWzBdPDAmJihvPURhKG8pLGE9RGEoYSkpLGV9dmFyIGU9VGEoQ2EsUGEpLmRvbWFpbihbMSwxMF0pLHI9ZS5kb21haW4saT0xMCxvPUxhKDEwKSxhPVJhKDEwKTtyZXR1cm4gZS5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LG4oKSk6aX0sZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHIodCksbigpKTpyKCl9LGUudGlja3M9ZnVuY3Rpb24odCl7dmFyIG4sZT1yKCksdT1lWzBdLGY9ZVtlLmxlbmd0aC0xXTsobj1mPHUpJiYoZD11LHU9ZixmPWQpO3ZhciBjLHMsaCxkPW8odSkscD1vKGYpLHY9bnVsbD09dD8xMDordCxnPVtdO2lmKCEoaSUxKSYmcC1kPHYpe2lmKGQ9TWF0aC5yb3VuZChkKS0xLHA9TWF0aC5yb3VuZChwKSsxLHU+MCl7Zm9yKDtkPHA7KytkKWZvcihzPTEsYz1hKGQpO3M8aTsrK3MpaWYoISgoaD1jKnMpPHUpKXtpZihoPmYpYnJlYWs7Zy5wdXNoKGgpfX1lbHNlIGZvcig7ZDxwOysrZClmb3Iocz1pLTEsYz1hKGQpO3M+PTE7LS1zKWlmKCEoKGg9YypzKTx1KSl7aWYoaD5mKWJyZWFrO2cucHVzaChoKX19ZWxzZSBnPWwoZCxwLE1hdGgubWluKHAtZCx2KSkubWFwKGEpO3JldHVybiBuP2cucmV2ZXJzZSgpOmd9LGUudGlja0Zvcm1hdD1mdW5jdGlvbihuLHIpe2lmKG51bGw9PXImJihyPTEwPT09aT9cIi4wZVwiOlwiLFwiKSxcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiYocj10LmZvcm1hdChyKSksbj09PTEvMClyZXR1cm4gcjtudWxsPT1uJiYobj0xMCk7dmFyIHU9TWF0aC5tYXgoMSxpKm4vZS50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQvYShNYXRoLnJvdW5kKG8odCkpKTtyZXR1cm4gbippPGktLjUmJihuKj1pKSxuPD11P3IodCk6XCJcIn19LGUubmljZT1mdW5jdGlvbigpe3JldHVybiByKGthKHIoKSx7Zmxvb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGEoTWF0aC5mbG9vcihvKHQpKSl9LGNlaWw6ZnVuY3Rpb24odCl7cmV0dXJuIGEoTWF0aC5jZWlsKG8odCkpKX19KSl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBBYShlLFVhKCkuYmFzZShpKSl9LGV9ZnVuY3Rpb24gcWEodCxuKXtyZXR1cm4gdDwwPy1NYXRoLnBvdygtdCxuKTpNYXRoLnBvdyh0LG4pfWZ1bmN0aW9uIE9hKCl7dmFyIHQ9MSxuPVRhKGZ1bmN0aW9uKG4sZSl7cmV0dXJuKGU9cWEoZSx0KS0obj1xYShuLHQpKSk/ZnVuY3Rpb24ocil7cmV0dXJuKHFhKHIsdCktbikvZX06YmEoZSl9LGZ1bmN0aW9uKG4sZSl7cmV0dXJuIGU9cWEoZSx0KS0obj1xYShuLHQpKSxmdW5jdGlvbihyKXtyZXR1cm4gcWEobitlKnIsMS90KX19KSxlPW4uZG9tYWluO3JldHVybiBuLmV4cG9uZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStuLGUoZSgpKSk6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKG4sT2EoKS5leHBvbmVudCh0KSl9LE5hKG4pfWZ1bmN0aW9uIFlhKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PTAsbj1NYXRoLm1heCgxLGkubGVuZ3RoKTtmb3Iobz1uZXcgQXJyYXkobi0xKTsrK3Q8bjspb1t0LTFdPXYocix0L24pO3JldHVybiBlfWZ1bmN0aW9uIGUodCl7aWYoIWlzTmFOKHQ9K3QpKXJldHVybiBpW0tjKG8sdCldfXZhciByPVtdLGk9W10sbz1bXTtyZXR1cm4gZS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG49aS5pbmRleE9mKHQpO3JldHVybiBuPDA/W05hTixOYU5dOltuPjA/b1tuLTFdOnJbMF0sbjxvLmxlbmd0aD9vW25dOnJbci5sZW5ndGgtMV1dfSxlLmRvbWFpbj1mdW5jdGlvbihlKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gci5zbGljZSgpO3I9W107Zm9yKHZhciBpLG89MCxhPWUubGVuZ3RoO288YTsrK28pbnVsbD09KGk9ZVtvXSl8fGlzTmFOKGk9K2kpfHxyLnB1c2goaSk7cmV0dXJuIHIuc29ydChuKSx0KCl9LGUucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Q3YuY2FsbChuKSx0KCkpOmkuc2xpY2UoKX0sZS5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gby5zbGljZSgpfSxlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gWWEoKS5kb21haW4ocikucmFuZ2UoaSl9LGV9ZnVuY3Rpb24gQmEoKXtmdW5jdGlvbiB0KHQpe2lmKHQ8PXQpcmV0dXJuIGFbS2Mobyx0LDAsaSldfWZ1bmN0aW9uIG4oKXt2YXIgbj0tMTtmb3Iobz1uZXcgQXJyYXkoaSk7KytuPGk7KW9bbl09KChuKzEpKnItKG4taSkqZSkvKGkrMSk7cmV0dXJuIHR9dmFyIGU9MCxyPTEsaT0xLG89Wy41XSxhPVswLDFdO3JldHVybiB0LmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLG4oKSk6W2Uscl19LHQucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9KGE9Q3YuY2FsbCh0KSkubGVuZ3RoLTEsbigpKTphLnNsaWNlKCl9LHQuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBuPWEuaW5kZXhPZih0KTtyZXR1cm4gbjwwP1tOYU4sTmFOXTpuPDE/W2Usb1swXV06bj49aT9bb1tpLTFdLHJdOltvW24tMV0sb1tuXV19LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBCYSgpLmRvbWFpbihbZSxyXSkucmFuZ2UoYSl9LE5hKHQpfWZ1bmN0aW9uIEZhKCl7ZnVuY3Rpb24gdCh0KXtpZih0PD10KXJldHVybiBlW0tjKG4sdCwwLHIpXX12YXIgbj1bLjVdLGU9WzAsMV0scj0xO3JldHVybiB0LmRvbWFpbj1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1Ddi5jYWxsKGkpLHI9TWF0aC5taW4obi5sZW5ndGgsZS5sZW5ndGgtMSksdCk6bi5zbGljZSgpfSx0LnJhbmdlPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUN2LmNhbGwoaSkscj1NYXRoLm1pbihuLmxlbmd0aCxlLmxlbmd0aC0xKSx0KTplLnNsaWNlKCl9LHQuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciByPWUuaW5kZXhPZih0KTtyZXR1cm5bbltyLTFdLG5bcl1dfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRmEoKS5kb21haW4obikucmFuZ2UoZSl9LHR9ZnVuY3Rpb24gSWEodCxuLGUscil7ZnVuY3Rpb24gaShuKXtyZXR1cm4gdChuPW5ldyBEYXRlKCtuKSksbn1yZXR1cm4gaS5mbG9vcj1pLGkuY2VpbD1mdW5jdGlvbihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKGUtMSkpLG4oZSwxKSx0KGUpLGV9LGkucm91bmQ9ZnVuY3Rpb24odCl7dmFyIG49aSh0KSxlPWkuY2VpbCh0KTtyZXR1cm4gdC1uPGUtdD9uOmV9LGkub2Zmc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odD1uZXcgRGF0ZSgrdCksbnVsbD09ZT8xOk1hdGguZmxvb3IoZSkpLHR9LGkucmFuZ2U9ZnVuY3Rpb24oZSxyLG8pe3ZhciBhLHU9W107aWYoZT1pLmNlaWwoZSksbz1udWxsPT1vPzE6TWF0aC5mbG9vcihvKSwhKGU8ciYmbz4wKSlyZXR1cm4gdTtkb3t1LnB1c2goYT1uZXcgRGF0ZSgrZSkpLG4oZSxvKSx0KGUpfXdoaWxlKGE8ZSYmZTxyKTtyZXR1cm4gdX0saS5maWx0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe2lmKG4+PW4pZm9yKDt0KG4pLCFlKG4pOyluLnNldFRpbWUobi0xKX0sZnVuY3Rpb24odCxyKXtpZih0Pj10KWlmKHI8MClmb3IoOysrcjw9MDspZm9yKDtuKHQsLTEpLCFlKHQpOyk7ZWxzZSBmb3IoOy0tcj49MDspZm9yKDtuKHQsMSksIWUodCk7KTt9KX0sZSYmKGkuY291bnQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gUnYuc2V0VGltZSgrbiksTHYuc2V0VGltZSgrciksdChSdiksdChMdiksTWF0aC5mbG9vcihlKFJ2LEx2KSl9LGkuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9pLmZpbHRlcihyP2Z1bmN0aW9uKG4pe3JldHVybiByKG4pJXQ9PTB9OmZ1bmN0aW9uKG4pe3JldHVybiBpLmNvdW50KDAsbikldD09MH0pOmk6bnVsbH0pLGl9ZnVuY3Rpb24gamEodCl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe24uc2V0RGF0ZShuLmdldERhdGUoKS0obi5nZXREYXkoKSs3LXQpJTcpLG4uc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdC0obi5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqcXYpL092fSl9ZnVuY3Rpb24gSGEodCl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe24uc2V0VVRDRGF0ZShuLmdldFVUQ0RhdGUoKS0obi5nZXRVVENEYXkoKSs3LXQpJTcpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvT3Z9KX1mdW5jdGlvbiBYYSh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBuPW5ldyBEYXRlKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKTtyZXR1cm4gbi5zZXRGdWxsWWVhcih0LnkpLG59cmV0dXJuIG5ldyBEYXRlKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCl9ZnVuY3Rpb24gR2EodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgbj1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBuLnNldFVUQ0Z1bGxZZWFyKHQueSksbn1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gVmEodCl7cmV0dXJue3k6dCxtOjAsZDoxLEg6MCxNOjAsUzowLEw6MH19ZnVuY3Rpb24gJGEodCl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcixpLG8sYT1bXSx1PS0xLGY9MCxjPXQubGVuZ3RoO2ZvcihlIGluc3RhbmNlb2YgRGF0ZXx8KGU9bmV3IERhdGUoK2UpKTsrK3U8YzspMzc9PT10LmNoYXJDb2RlQXQodSkmJihhLnB1c2godC5zbGljZShmLHUpKSxudWxsIT0oaT1VZ1tyPXQuY2hhckF0KCsrdSldKT9yPXQuY2hhckF0KCsrdSk6aT1cImVcIj09PXI/XCIgXCI6XCIwXCIsKG89bltyXSkmJihyPW8oZSxpKSksYS5wdXNoKHIpLGY9dSsxKTtyZXR1cm4gYS5wdXNoKHQuc2xpY2UoZix1KSksYS5qb2luKFwiXCIpfX1mdW5jdGlvbiBlKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpLG8sYT1WYSgxOTAwKTtpZihyKGEsdCxlKz1cIlwiLDApIT1lLmxlbmd0aClyZXR1cm4gbnVsbDtpZihcIlFcImluIGEpcmV0dXJuIG5ldyBEYXRlKGEuUSk7aWYoXCJwXCJpbiBhJiYoYS5IPWEuSCUxMisxMiphLnApLFwiVlwiaW4gYSl7aWYoYS5WPDF8fGEuVj41MylyZXR1cm4gbnVsbDtcIndcImluIGF8fChhLnc9MSksXCJaXCJpbiBhPyhpPShvPShpPUdhKFZhKGEueSkpKS5nZXRVVENEYXkoKSk+NHx8MD09PW8/X2cuY2VpbChpKTpfZyhpKSxpPXZnLm9mZnNldChpLDcqKGEuVi0xKSksYS55PWkuZ2V0VVRDRnVsbFllYXIoKSxhLm09aS5nZXRVVENNb250aCgpLGEuZD1pLmdldFVUQ0RhdGUoKSsoYS53KzYpJTcpOihpPShvPShpPW4oVmEoYS55KSkpLmdldERheSgpKT40fHwwPT09bz8kdi5jZWlsKGkpOiR2KGkpLGk9WHYub2Zmc2V0KGksNyooYS5WLTEpKSxhLnk9aS5nZXRGdWxsWWVhcigpLGEubT1pLmdldE1vbnRoKCksYS5kPWkuZ2V0RGF0ZSgpKyhhLncrNiklNyl9ZWxzZShcIldcImluIGF8fFwiVVwiaW4gYSkmJihcIndcImluIGF8fChhLnc9XCJ1XCJpbiBhP2EudSU3OlwiV1wiaW4gYT8xOjApLG89XCJaXCJpbiBhP0dhKFZhKGEueSkpLmdldFVUQ0RheSgpOm4oVmEoYS55KSkuZ2V0RGF5KCksYS5tPTAsYS5kPVwiV1wiaW4gYT8oYS53KzYpJTcrNyphLlctKG8rNSklNzphLncrNyphLlUtKG8rNiklNyk7cmV0dXJuXCJaXCJpbiBhPyhhLkgrPWEuWi8xMDB8MCxhLk0rPWEuWiUxMDAsR2EoYSkpOm4oYSl9fWZ1bmN0aW9uIHIodCxuLGUscil7Zm9yKHZhciBpLG8sYT0wLHU9bi5sZW5ndGgsZj1lLmxlbmd0aDthPHU7KXtpZihyPj1mKXJldHVybi0xO2lmKDM3PT09KGk9bi5jaGFyQ29kZUF0KGErKykpKXtpZihpPW4uY2hhckF0KGErKyksIShvPUFbaSBpbiBVZz9uLmNoYXJBdChhKyspOmldKXx8KHI9byh0LGUscikpPDApcmV0dXJuLTF9ZWxzZSBpZihpIT1lLmNoYXJDb2RlQXQocisrKSlyZXR1cm4tMX1yZXR1cm4gcn12YXIgaT10LmRhdGVUaW1lLG89dC5kYXRlLGE9dC50aW1lLHU9dC5wZXJpb2RzLGY9dC5kYXlzLGM9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsaD1RYSh1KSxkPUphKHUpLHA9UWEoZiksdj1KYShmKSxnPVFhKGMpLHk9SmEoYyksXz1RYShzKSxiPUphKHMpLG09UWEobCkseD1KYShsKSx3PXthOmZ1bmN0aW9uKHQpe3JldHVybiBjW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uKHQpe3JldHVybiBmW3QuZ2V0RGF5KCldfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBsW3QuZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6X3UsZTpfdSxmOk11LEg6YnUsSTptdSxqOnh1LEw6d3UsbTpBdSxNOlR1LHA6ZnVuY3Rpb24odCl7cmV0dXJuIHVbKyh0LmdldEhvdXJzKCk+PTEyKV19LFE6S3Usczp0ZixTOk51LHU6U3UsVTpFdSxWOmt1LHc6Q3UsVzpQdSx4Om51bGwsWDpudWxsLHk6enUsWTpSdSxaOkx1LFwiJVwiOkp1fSxNPXthOmZ1bmN0aW9uKHQpe3JldHVybiBjW3QuZ2V0VVRDRGF5KCldfSxBOmZ1bmN0aW9uKHQpe3JldHVybiBmW3QuZ2V0VVRDRGF5KCldfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdC5nZXRVVENNb250aCgpXX0sYzpudWxsLGQ6RHUsZTpEdSxmOkJ1LEg6VXUsSTpxdSxqOk91LEw6WXUsbTpGdSxNOkl1LHA6ZnVuY3Rpb24odCl7cmV0dXJuIHVbKyh0LmdldFVUQ0hvdXJzKCk+PTEyKV19LFE6S3Usczp0ZixTOmp1LHU6SHUsVTpYdSxWOkd1LHc6VnUsVzokdSx4Om51bGwsWDpudWxsLHk6V3UsWTpadSxaOlF1LFwiJVwiOkp1fSxBPXthOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1nLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQudz15W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24odCxuLGUpe3ZhciByPXAuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC53PXZbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9bS5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lm09eFtyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxCOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1fLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQubT1iW3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsaSxuLGUpfSxkOmZ1LGU6ZnUsZjpwdSxIOnN1LEk6c3UsajpjdSxMOmR1LG06dXUsTTpsdSxwOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1oLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQucD1kW3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LFE6Z3Usczp5dSxTOmh1LHU6dHUsVTpudSxWOmV1LHc6S2EsVzpydSx4OmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LG8sbixlKX0sWDpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxhLG4sZSl9LHk6b3UsWTppdSxaOmF1LFwiJVwiOnZ1fTtyZXR1cm4gdy54PW4obyx3KSx3Llg9bihhLHcpLHcuYz1uKGksdyksTS54PW4obyxNKSxNLlg9bihhLE0pLE0uYz1uKGksTSkse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1uKHQrPVwiXCIsdyk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIG49ZSh0Kz1cIlwiLFhhKTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxufSx1dGNGb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9bih0Kz1cIlwiLE0pO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBuPWUodCxHYSk7cmV0dXJuIG4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbn19fWZ1bmN0aW9uIFdhKHQsbixlKXt2YXIgcj10PDA/XCItXCI6XCJcIixpPShyPy10OnQpK1wiXCIsbz1pLmxlbmd0aDtyZXR1cm4gcisobzxlP25ldyBBcnJheShlLW8rMSkuam9pbihuKStpOmkpfWZ1bmN0aW9uIFphKHQpe3JldHVybiB0LnJlcGxhY2UoWWcsXCJcXFxcJCZcIil9ZnVuY3Rpb24gUWEodCl7cmV0dXJuIG5ldyBSZWdFeHAoXCJeKD86XCIrdC5tYXAoWmEpLmpvaW4oXCJ8XCIpK1wiKVwiLFwiaVwiKX1mdW5jdGlvbiBKYSh0KXtmb3IodmFyIG49e30sZT0tMSxyPXQubGVuZ3RoOysrZTxyOyluW3RbZV0udG9Mb3dlckNhc2UoKV09ZTtyZXR1cm4gbn1mdW5jdGlvbiBLYSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsxKSk7cmV0dXJuIHI/KHQudz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB0dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsxKSk7cmV0dXJuIHI/KHQudT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBudSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBldSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVj0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBydSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBpdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSs0KSk7cmV0dXJuIHI/KHQueT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBvdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQueT0rclswXSsoK3JbMF0+Njg/MTkwMDoyZTMpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGF1KHQsbixlKXt2YXIgcj0vXihaKXwoWystXVxcZFxcZCkoPzo6PyhcXGRcXGQpKT8vLmV4ZWMobi5zbGljZShlLGUrNikpO3JldHVybiByPyh0Llo9clsxXT8wOi0oclsyXSsoclszXXx8XCIwMFwiKSksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lm09clswXS0xLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGZ1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5kPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGN1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzMpKTtyZXR1cm4gcj8odC5tPTAsdC5kPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHN1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5IPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGx1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5NPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGh1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5TPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGR1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzMpKTtyZXR1cm4gcj8odC5MPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHB1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzYpKTtyZXR1cm4gcj8odC5MPU1hdGguZmxvb3IoclswXS8xZTMpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHZ1KHQsbixlKXt2YXIgcj1PZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj9lK3JbMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIGd1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0LlE9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQuUT0xZTMqK3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gX3UodCxuKXtyZXR1cm4gV2EodC5nZXREYXRlKCksbiwyKX1mdW5jdGlvbiBidSh0LG4pe3JldHVybiBXYSh0LmdldEhvdXJzKCksbiwyKX1mdW5jdGlvbiBtdSh0LG4pe3JldHVybiBXYSh0LmdldEhvdXJzKCklMTJ8fDEyLG4sMil9ZnVuY3Rpb24geHUodCxuKXtyZXR1cm4gV2EoMStYdi5jb3VudChjZyh0KSx0KSxuLDMpfWZ1bmN0aW9uIHd1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TWlsbGlzZWNvbmRzKCksbiwzKX1mdW5jdGlvbiBNdSh0LG4pe3JldHVybiB3dSh0LG4pK1wiMDAwXCJ9ZnVuY3Rpb24gQXUodCxuKXtyZXR1cm4gV2EodC5nZXRNb250aCgpKzEsbiwyKX1mdW5jdGlvbiBUdSh0LG4pe3JldHVybiBXYSh0LmdldE1pbnV0ZXMoKSxuLDIpfWZ1bmN0aW9uIE51KHQsbil7cmV0dXJuIFdhKHQuZ2V0U2Vjb25kcygpLG4sMil9ZnVuY3Rpb24gU3UodCl7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gMD09PW4/NzpufWZ1bmN0aW9uIEV1KHQsbil7cmV0dXJuIFdhKFZ2LmNvdW50KGNnKHQpLHQpLG4sMil9ZnVuY3Rpb24ga3UodCxuKXt2YXIgZT10LmdldERheSgpO3JldHVybiB0PWU+PTR8fDA9PT1lP1F2KHQpOlF2LmNlaWwodCksV2EoUXYuY291bnQoY2codCksdCkrKDQ9PT1jZyh0KS5nZXREYXkoKSksbiwyKX1mdW5jdGlvbiBDdSh0KXtyZXR1cm4gdC5nZXREYXkoKX1mdW5jdGlvbiBQdSh0LG4pe3JldHVybiBXYSgkdi5jb3VudChjZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIHp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0RnVsbFllYXIoKSUxMDAsbiwyKX1mdW5jdGlvbiBSdSh0LG4pe3JldHVybiBXYSh0LmdldEZ1bGxZZWFyKCklMWU0LG4sNCl9ZnVuY3Rpb24gTHUodCl7dmFyIG49dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihuPjA/XCItXCI6KG4qPS0xLFwiK1wiKSkrV2Eobi82MHwwLFwiMFwiLDIpK1dhKG4lNjAsXCIwXCIsMil9ZnVuY3Rpb24gRHUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENEYXRlKCksbiwyKX1mdW5jdGlvbiBVdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0hvdXJzKCksbiwyKX1mdW5jdGlvbiBxdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLG4sMil9ZnVuY3Rpb24gT3UodCxuKXtyZXR1cm4gV2EoMSt2Zy5jb3VudChSZyh0KSx0KSxuLDMpfWZ1bmN0aW9uIFl1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksbiwzKX1mdW5jdGlvbiBCdSh0LG4pe3JldHVybiBZdSh0LG4pK1wiMDAwXCJ9ZnVuY3Rpb24gRnUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNb250aCgpKzEsbiwyKX1mdW5jdGlvbiBJdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01pbnV0ZXMoKSxuLDIpfWZ1bmN0aW9uIGp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDU2Vjb25kcygpLG4sMil9ZnVuY3Rpb24gSHUodCl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gMD09PW4/NzpufWZ1bmN0aW9uIFh1KHQsbil7cmV0dXJuIFdhKHlnLmNvdW50KFJnKHQpLHQpLG4sMil9ZnVuY3Rpb24gR3UodCxuKXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiB0PWU+PTR8fDA9PT1lP3hnKHQpOnhnLmNlaWwodCksV2EoeGcuY291bnQoUmcodCksdCkrKDQ9PT1SZyh0KS5nZXRVVENEYXkoKSksbiwyKX1mdW5jdGlvbiBWdSh0KXtyZXR1cm4gdC5nZXRVVENEYXkoKX1mdW5jdGlvbiAkdSh0LG4pe3JldHVybiBXYShfZy5jb3VudChSZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIFd1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRnVsbFllYXIoKSUxMDAsbiwyKX1mdW5jdGlvbiBadSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LG4sNCl9ZnVuY3Rpb24gUXUoKXtyZXR1cm5cIiswMDAwXCJ9ZnVuY3Rpb24gSnUoKXtyZXR1cm5cIiVcIn1mdW5jdGlvbiBLdSh0KXtyZXR1cm4rdH1mdW5jdGlvbiB0Zih0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfWZ1bmN0aW9uIG5mKG4pe3JldHVybiBMZz0kYShuKSx0LnRpbWVGb3JtYXQ9TGcuZm9ybWF0LHQudGltZVBhcnNlPUxnLnBhcnNlLHQudXRjRm9ybWF0PUxnLnV0Y0Zvcm1hdCx0LnV0Y1BhcnNlPUxnLnV0Y1BhcnNlLExnfWZ1bmN0aW9uIGVmKHQpe3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiByZih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGU/K3Q6K25ldyBEYXRlKCt0KX1mdW5jdGlvbiBvZih0LG4scixpLG8sYSx1LGYsYyl7ZnVuY3Rpb24gcyhlKXtyZXR1cm4odShlKTxlP2c6YShlKTxlP3k6byhlKTxlP186aShlKTxlP2I6bihlKTxlP3IoZSk8ZT9tOng6dChlKTxlP3c6TSkoZSl9ZnVuY3Rpb24gbChuLHIsaSxvKXtpZihudWxsPT1uJiYobj0xMCksXCJudW1iZXJcIj09dHlwZW9mIG4pe3ZhciBhPU1hdGguYWJzKGktcikvbix1PWUoZnVuY3Rpb24odCl7cmV0dXJuIHRbMl19KS5yaWdodChBLGEpO3U9PT1BLmxlbmd0aD8obz1kKHIvV2csaS9XZyxuKSxuPXQpOnU/KG89KHU9QVthL0FbdS0xXVsyXTxBW3VdWzJdL2E/dS0xOnVdKVsxXSxuPXVbMF0pOihvPU1hdGgubWF4KGQocixpLG4pLDEpLG49Zil9cmV0dXJuIG51bGw9PW8/bjpuLmV2ZXJ5KG8pfXZhciBoPVRhKHhhLHNuKSxwPWguaW52ZXJ0LHY9aC5kb21haW4sZz1jKFwiLiVMXCIpLHk9YyhcIjolU1wiKSxfPWMoXCIlSTolTVwiKSxiPWMoXCIlSSAlcFwiKSxtPWMoXCIlYSAlZFwiKSx4PWMoXCIlYiAlZFwiKSx3PWMoXCIlQlwiKSxNPWMoXCIlWVwiKSxBPVtbdSwxLGpnXSxbdSw1LDUqamddLFt1LDE1LDE1KmpnXSxbdSwzMCwzMCpqZ10sW2EsMSxIZ10sW2EsNSw1KkhnXSxbYSwxNSwxNSpIZ10sW2EsMzAsMzAqSGddLFtvLDEsWGddLFtvLDMsMypYZ10sW28sNiw2KlhnXSxbbywxMiwxMipYZ10sW2ksMSxHZ10sW2ksMiwyKkdnXSxbciwxLFZnXSxbbiwxLCRnXSxbbiwzLDMqJGddLFt0LDEsV2ddXTtyZXR1cm4gaC5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRlKHAodCkpfSxoLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD92KGt2LmNhbGwodCxyZikpOnYoKS5tYXAoZWYpfSxoLnRpY2tzPWZ1bmN0aW9uKHQsbil7dmFyIGUscj12KCksaT1yWzBdLG89cltyLmxlbmd0aC0xXSxhPW88aTtyZXR1cm4gYSYmKGU9aSxpPW8sbz1lKSxlPWwodCxpLG8sbiksZT1lP2UucmFuZ2UoaSxvKzEpOltdLGE/ZS5yZXZlcnNlKCk6ZX0saC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIG51bGw9PW4/czpjKG4pfSxoLm5pY2U9ZnVuY3Rpb24odCxuKXt2YXIgZT12KCk7cmV0dXJuKHQ9bCh0LGVbMF0sZVtlLmxlbmd0aC0xXSxuKSk/dihrYShlLHQpKTpofSxoLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEoaCxvZih0LG4scixpLG8sYSx1LGYsYykpfSxofWZ1bmN0aW9uIGFmKHQpe2Z1bmN0aW9uIG4obil7dmFyIHI9KG4tZSkqaTtyZXR1cm4gdChvP01hdGgubWF4KDAsTWF0aC5taW4oMSxyKSk6cil9dmFyIGU9MCxyPTEsaT0xLG89ITE7cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saT1lPT09cj8wOjEvKHItZSksbik6W2Uscl19LG4uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ISF0LG4pOm99LG4uaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGFmKHQpLmRvbWFpbihbZSxyXSkuY2xhbXAobyl9LE5hKG4pfWZ1bmN0aW9uIHVmKHQpe2Z1bmN0aW9uIG4obil7dmFyIGU9LjUrKChuPStuKS1yKSoobjxyP286YSk7cmV0dXJuIHQodT9NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpOmUpfXZhciBlPTAscj0uNSxpPTEsbz0xLGE9MSx1PSExO3JldHVybiBuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLGk9K3RbMl0sbz1lPT09cj8wOi41LyhyLWUpLGE9cj09PWk/MDouNS8oaS1yKSxuKTpbZSxyLGldfSxuLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEhdCxuKTp1fSxuLmludGVycG9sYXRvcj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLG4pOnR9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiB1Zih0KS5kb21haW4oW2UscixpXSkuY2xhbXAodSl9LE5hKG4pfWZ1bmN0aW9uIGZmKHQpe2Zvcih2YXIgbj10Lmxlbmd0aC82fDAsZT1uZXcgQXJyYXkobikscj0wO3I8bjspZVtyXT1cIiNcIit0LnNsaWNlKDYqciw2Kisrcik7cmV0dXJuIGV9ZnVuY3Rpb24gY2YodCl7cmV0dXJuIGlsKHRbdC5sZW5ndGgtMV0pfWZ1bmN0aW9uIHNmKHQpe3ZhciBuPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKG4tMSxNYXRoLmZsb29yKGUqbikpKV19fWZ1bmN0aW9uIGxmKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBoZih0KXtyZXR1cm4gdD49MT9UXzp0PD0tMT8tVF86TWF0aC5hc2luKHQpfWZ1bmN0aW9uIGRmKHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIHBmKHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIHZmKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gZ2YodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24geWYodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gX2YodCxuLGUscixpLG8sYSl7dmFyIHU9dC1lLGY9bi1yLGM9KGE/bzotbykvd18odSp1K2YqZikscz1jKmYsbD0tYyp1LGg9dCtzLGQ9bitsLHA9ZStzLHY9citsLGc9KGgrcCkvMix5PShkK3YpLzIsXz1wLWgsYj12LWQsbT1fKl8rYipiLHg9aS1vLHc9aCp2LXAqZCxNPShiPDA/LTE6MSkqd18oYl8oMCx4KngqbS13KncpKSxBPSh3KmItXypNKS9tLFQ9KC13Kl8tYipNKS9tLE49KHcqYitfKk0pL20sUz0oLXcqXytiKk0pL20sRT1BLWcsaz1ULXksQz1OLWcsUD1TLXk7cmV0dXJuIEUqRStrKms+QypDK1AqUCYmKEE9TixUPVMpLHtjeDpBLGN5OlQseDAxOi1zLHkwMTotbCx4MTE6QSooaS94LTEpLHkxMTpUKihpL3gtMSl9fWZ1bmN0aW9uIGJmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBtZih0KXtyZXR1cm4gbmV3IGJmKHQpfWZ1bmN0aW9uIHhmKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHdmKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIE1mKCl7ZnVuY3Rpb24gdCh0KXt2YXIgdSxmLGMscz10Lmxlbmd0aCxsPSExO2ZvcihudWxsPT1pJiYoYT1vKGM9b2UoKSkpLHU9MDt1PD1zOysrdSkhKHU8cyYmcihmPXRbdV0sdSx0KSk9PT1sJiYoKGw9IWwpP2EubGluZVN0YXJ0KCk6YS5saW5lRW5kKCkpLGwmJmEucG9pbnQoK24oZix1LHQpLCtlKGYsdSx0KSk7aWYoYylyZXR1cm4gYT1udWxsLGMrXCJcInx8bnVsbH12YXIgbj14ZixlPXdmLHI9bGYoITApLGk9bnVsbCxvPW1mLGE9bnVsbDtyZXR1cm4gdC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5kZWZpbmVkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZighIW4pLHQpOnJ9LHQuY3VydmU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bixudWxsIT1pJiYoYT1vKGkpKSx0KTpvfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/aT1hPW51bGw6YT1vKGk9biksdCk6aX0sdH1mdW5jdGlvbiBBZigpe2Z1bmN0aW9uIHQodCl7dmFyIG4scyxsLGgsZCxwPXQubGVuZ3RoLHY9ITEsZz1uZXcgQXJyYXkocCkseT1uZXcgQXJyYXkocCk7Zm9yKG51bGw9PXUmJihjPWYoZD1vZSgpKSksbj0wO248PXA7KytuKXtpZighKG48cCYmYShoPXRbbl0sbix0KSk9PT12KWlmKHY9IXYpcz1uLGMuYXJlYVN0YXJ0KCksYy5saW5lU3RhcnQoKTtlbHNle2ZvcihjLmxpbmVFbmQoKSxjLmxpbmVTdGFydCgpLGw9bi0xO2w+PXM7LS1sKWMucG9pbnQoZ1tsXSx5W2xdKTtjLmxpbmVFbmQoKSxjLmFyZWFFbmQoKX12JiYoZ1tuXT0rZShoLG4sdCkseVtuXT0raShoLG4sdCksYy5wb2ludChyPytyKGgsbix0KTpnW25dLG8/K28oaCxuLHQpOnlbbl0pKX1pZihkKXJldHVybiBjPW51bGwsZCtcIlwifHxudWxsfWZ1bmN0aW9uIG4oKXtyZXR1cm4gTWYoKS5kZWZpbmVkKGEpLmN1cnZlKGYpLmNvbnRleHQodSl9dmFyIGU9eGYscj1udWxsLGk9bGYoMCksbz13ZixhPWxmKCEwKSx1PW51bGwsZj1tZixjPW51bGw7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHI9bnVsbCx0KTplfSx0LngwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC54MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpyfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSxvPW51bGwsdCk6aX0sdC55MD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQueTE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bnVsbD09bj9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5saW5lWDA9dC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngoZSkueShpKX0sdC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngoZSkueShvKX0sdC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngocikueShpKX0sdC5kZWZpbmVkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZighIW4pLHQpOmF9LHQuY3VydmU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bixudWxsIT11JiYoYz1mKHUpKSx0KTpmfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/dT1jPW51bGw6Yz1mKHU9biksdCk6dX0sdH1mdW5jdGlvbiBUZih0LG4pe3JldHVybiBuPHQ/LTE6bj50PzE6bj49dD8wOk5hTn1mdW5jdGlvbiBOZih0KXtyZXR1cm4gdH1mdW5jdGlvbiBTZih0KXt0aGlzLl9jdXJ2ZT10fWZ1bmN0aW9uIEVmKHQpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG5ldyBTZih0KG4pKX1yZXR1cm4gbi5fY3VydmU9dCxufWZ1bmN0aW9uIGtmKHQpe3ZhciBuPXQuY3VydmU7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKEVmKHQpKTpuKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIENmKCl7cmV0dXJuIGtmKE1mKCkuY3VydmUoU18pKX1mdW5jdGlvbiBQZigpe3ZhciB0PUFmKCkuY3VydmUoU18pLG49dC5jdXJ2ZSxlPXQubGluZVgwLHI9dC5saW5lWDEsaT10LmxpbmVZMCxvPXQubGluZVkxO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQuc3RhcnRBbmdsZT10LngwLGRlbGV0ZSB0LngwLHQuZW5kQW5nbGU9dC54MSxkZWxldGUgdC54MSx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmlubmVyUmFkaXVzPXQueTAsZGVsZXRlIHQueTAsdC5vdXRlclJhZGl1cz10LnkxLGRlbGV0ZSB0LnkxLHQubGluZVN0YXJ0QW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4ga2YoZSgpKX0sZGVsZXRlIHQubGluZVgwLHQubGluZUVuZEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKHIoKSl9LGRlbGV0ZSB0LmxpbmVYMSx0LmxpbmVJbm5lclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBrZihpKCkpfSxkZWxldGUgdC5saW5lWTAsdC5saW5lT3V0ZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4ga2YobygpKX0sZGVsZXRlIHQubGluZVkxLHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihFZih0KSk6bigpLl9jdXJ2ZX0sdH1mdW5jdGlvbiB6Zih0LG4pe3JldHVyblsobj0rbikqTWF0aC5jb3ModC09TWF0aC5QSS8yKSxuKk1hdGguc2luKHQpXX1mdW5jdGlvbiBSZih0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24gTGYodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIERmKHQpe2Z1bmN0aW9uIG4oKXt2YXIgbix1PUVfLmNhbGwoYXJndW1lbnRzKSxmPWUuYXBwbHkodGhpcyx1KSxjPXIuYXBwbHkodGhpcyx1KTtpZihhfHwoYT1uPW9lKCkpLHQoYSwraS5hcHBseSh0aGlzLCh1WzBdPWYsdSkpLCtvLmFwcGx5KHRoaXMsdSksK2kuYXBwbHkodGhpcywodVswXT1jLHUpKSwrby5hcHBseSh0aGlzLHUpKSxuKXJldHVybiBhPW51bGwsbitcIlwifHxudWxsfXZhciBlPVJmLHI9TGYsaT14ZixvPXdmLGE9bnVsbDtyZXR1cm4gbi5zb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG4ueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bGYoK3QpLG4pOml9LG4ueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bGYoK3QpLG4pOm99LG4uY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT10P251bGw6dCxuKTphfSxufWZ1bmN0aW9uIFVmKHQsbixlLHIsaSl7dC5tb3ZlVG8obixlKSx0LmJlemllckN1cnZlVG8obj0obityKS8yLGUsbixpLHIsaSl9ZnVuY3Rpb24gcWYodCxuLGUscixpKXt0Lm1vdmVUbyhuLGUpLHQuYmV6aWVyQ3VydmVUbyhuLGU9KGUraSkvMixyLGUscixpKX1mdW5jdGlvbiBPZih0LG4sZSxyLGkpe3ZhciBvPXpmKG4sZSksYT16ZihuLGU9KGUraSkvMiksdT16ZihyLGUpLGY9emYocixpKTt0Lm1vdmVUbyhvWzBdLG9bMV0pLHQuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sdVswXSx1WzFdLGZbMF0sZlsxXSl9ZnVuY3Rpb24gWWYoKXt9ZnVuY3Rpb24gQmYodCxuLGUpe3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbygoMip0Ll94MCt0Ll94MSkvMywoMip0Ll95MCt0Ll95MSkvMywodC5feDArMip0Ll94MSkvMywodC5feTArMip0Ll95MSkvMywodC5feDArNCp0Ll94MStuKS82LCh0Ll95MCs0KnQuX3kxK2UpLzYpfWZ1bmN0aW9uIEZmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBJZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gamYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEhmKHQsbil7dGhpcy5fYmFzaXM9bmV3IEZmKHQpLHRoaXMuX2JldGE9bn1mdW5jdGlvbiBYZih0LG4sZSl7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtbiksdC5feTIrdC5fayoodC5feTEtZSksdC5feDIsdC5feTIpfWZ1bmN0aW9uIEdmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiBWZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gJGYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uIFdmKHQsbixlKXt2YXIgcj10Ll94MSxpPXQuX3kxLG89dC5feDIsYT10Ll95MjtpZih0Ll9sMDFfYT5NXyl7dmFyIHU9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsZj0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7cj0ocip1LXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2YsaT0oaSp1LXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2Z9aWYodC5fbDIzX2E+TV8pe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLHM9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO289KG8qYyt0Ll94MSp0Ll9sMjNfMmEtbip0Ll9sMTJfMmEpL3MsYT0oYSpjK3QuX3kxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvc310Ll9jb250ZXh0LmJlemllckN1cnZlVG8ocixpLG8sYSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gWmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBRZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIEpmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gS2YodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHRjKHQpe3JldHVybiB0PDA/LTE6MX1mdW5jdGlvbiBuYyh0LG4sZSl7dmFyIHI9dC5feDEtdC5feDAsaT1uLXQuX3gxLG89KHQuX3kxLXQuX3kwKS8ocnx8aTwwJiYtMCksYT0oZS10Ll95MSkvKGl8fHI8MCYmLTApLHU9KG8qaSthKnIpLyhyK2kpO3JldHVybih0YyhvKSt0YyhhKSkqTWF0aC5taW4oTWF0aC5hYnMobyksTWF0aC5hYnMoYSksLjUqTWF0aC5hYnModSkpfHwwfWZ1bmN0aW9uIGVjKHQsbil7dmFyIGU9dC5feDEtdC5feDA7cmV0dXJuIGU/KDMqKHQuX3kxLXQuX3kwKS9lLW4pLzI6bn1mdW5jdGlvbiByYyh0LG4sZSl7dmFyIHI9dC5feDAsaT10Ll95MCxvPXQuX3gxLGE9dC5feTEsdT0oby1yKS8zO3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyK3UsaSt1Km4sby11LGEtdSplLG8sYSl9ZnVuY3Rpb24gaWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIG9jKHQpe3RoaXMuX2NvbnRleHQ9bmV3IGFjKHQpfWZ1bmN0aW9uIGFjKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB1Yyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gZmModCl7dmFyIG4sZSxyPXQubGVuZ3RoLTEsaT1uZXcgQXJyYXkociksbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocik7Zm9yKGlbMF09MCxvWzBdPTIsYVswXT10WzBdKzIqdFsxXSxuPTE7bjxyLTE7KytuKWlbbl09MSxvW25dPTQsYVtuXT00KnRbbl0rMip0W24rMV07Zm9yKGlbci0xXT0yLG9bci0xXT03LGFbci0xXT04KnRbci0xXSt0W3JdLG49MTtuPHI7KytuKWU9aVtuXS9vW24tMV0sb1tuXS09ZSxhW25dLT1lKmFbbi0xXTtmb3IoaVtyLTFdPWFbci0xXS9vW3ItMV0sbj1yLTI7bj49MDstLW4paVtuXT0oYVtuXS1pW24rMV0pL29bbl07Zm9yKG9bci0xXT0odFtyXStpW3ItMV0pLzIsbj0wO248ci0xOysrbilvW25dPTIqdFtuKzFdLWlbbisxXTtyZXR1cm5baSxvXX1mdW5jdGlvbiBjYyh0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl90PW59ZnVuY3Rpb24gc2ModCxuKXtpZigoaT10Lmxlbmd0aCk+MSlmb3IodmFyIGUscixpLG89MSxhPXRbblswXV0sdT1hLmxlbmd0aDtvPGk7KytvKWZvcihyPWEsYT10W25bb11dLGU9MDtlPHU7KytlKWFbZV1bMV0rPWFbZV1bMF09aXNOYU4ocltlXVsxXSk/cltlXVswXTpyW2VdWzFdfWZ1bmN0aW9uIGxjKHQpe2Zvcih2YXIgbj10Lmxlbmd0aCxlPW5ldyBBcnJheShuKTstLW4+PTA7KWVbbl09bjtyZXR1cm4gZX1mdW5jdGlvbiBoYyh0LG4pe3JldHVybiB0W25dfWZ1bmN0aW9uIGRjKHQpe3ZhciBuPXQubWFwKHBjKTtyZXR1cm4gbGModCkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBuW3RdLW5bZV19KX1mdW5jdGlvbiBwYyh0KXtmb3IodmFyIG4sZT0wLHI9LTEsaT10Lmxlbmd0aDsrK3I8aTspKG49K3Rbcl1bMV0pJiYoZSs9bik7cmV0dXJuIGV9ZnVuY3Rpb24gdmModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGdjKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHljKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIF9jKCl7dGhpcy5fPW51bGx9ZnVuY3Rpb24gYmModCl7dC5VPXQuQz10Lkw9dC5SPXQuUD10Lk49bnVsbH1mdW5jdGlvbiBtYyh0LG4pe3ZhciBlPW4scj1uLlIsaT1lLlU7aT9pLkw9PT1lP2kuTD1yOmkuUj1yOnQuXz1yLHIuVT1pLGUuVT1yLGUuUj1yLkwsZS5SJiYoZS5SLlU9ZSksci5MPWV9ZnVuY3Rpb24geGModCxuKXt2YXIgZT1uLHI9bi5MLGk9ZS5VO2k/aS5MPT09ZT9pLkw9cjppLlI9cjp0Ll89cixyLlU9aSxlLlU9cixlLkw9ci5SLGUuTCYmKGUuTC5VPWUpLHIuUj1lfWZ1bmN0aW9uIHdjKHQpe2Zvcig7dC5MOyl0PXQuTDtyZXR1cm4gdH1mdW5jdGlvbiBNYyh0LG4sZSxyKXt2YXIgaT1bbnVsbCxudWxsXSxvPXJiLnB1c2goaSktMTtyZXR1cm4gaS5sZWZ0PXQsaS5yaWdodD1uLGUmJlRjKGksdCxuLGUpLHImJlRjKGksbix0LHIpLG5iW3QuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLG5iW24uaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLGl9ZnVuY3Rpb24gQWModCxuLGUpe3ZhciByPVtuLGVdO3JldHVybiByLmxlZnQ9dCxyfWZ1bmN0aW9uIFRjKHQsbixlLHIpe3RbMF18fHRbMV0/dC5sZWZ0PT09ZT90WzFdPXI6dFswXT1yOih0WzBdPXIsdC5sZWZ0PW4sdC5yaWdodD1lKX1mdW5jdGlvbiBOYyh0LG4sZSxyLGkpe3ZhciBvLGE9dFswXSx1PXRbMV0sZj1hWzBdLGM9YVsxXSxzPTAsbD0xLGg9dVswXS1mLGQ9dVsxXS1jO2lmKG89bi1mLGh8fCEobz4wKSl7aWYoby89aCxoPDApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1lbHNlIGlmKGg+MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWlmKG89ci1mLGh8fCEobzwwKSl7aWYoby89aCxoPDApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1lbHNlIGlmKGg+MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWlmKG89ZS1jLGR8fCEobz4wKSl7aWYoby89ZCxkPDApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1lbHNlIGlmKGQ+MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWlmKG89aS1jLGR8fCEobzwwKSl7aWYoby89ZCxkPDApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1lbHNlIGlmKGQ+MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfXJldHVybiEocz4wfHxsPDEpfHwocz4wJiYodFswXT1bZitzKmgsYytzKmRdKSxsPDEmJih0WzFdPVtmK2wqaCxjK2wqZF0pLCEwKX19fX19ZnVuY3Rpb24gU2ModCxuLGUscixpKXt2YXIgbz10WzFdO2lmKG8pcmV0dXJuITA7dmFyIGEsdSxmPXRbMF0sYz10LmxlZnQscz10LnJpZ2h0LGw9Y1swXSxoPWNbMV0sZD1zWzBdLHA9c1sxXSx2PShsK2QpLzIsZz0oaCtwKS8yO2lmKHA9PT1oKXtpZih2PG58fHY+PXIpcmV0dXJuO2lmKGw+ZCl7aWYoZil7aWYoZlsxXT49aSlyZXR1cm59ZWxzZSBmPVt2LGVdO289W3YsaV19ZWxzZXtpZihmKXtpZihmWzFdPGUpcmV0dXJufWVsc2UgZj1bdixpXTtvPVt2LGVdfX1lbHNlIGlmKGE9KGwtZCkvKHAtaCksdT1nLWEqdixhPC0xfHxhPjEpaWYobD5kKXtpZihmKXtpZihmWzFdPj1pKXJldHVybn1lbHNlIGY9WyhlLXUpL2EsZV07bz1bKGktdSkvYSxpXX1lbHNle2lmKGYpe2lmKGZbMV08ZSlyZXR1cm59ZWxzZSBmPVsoaS11KS9hLGldO289WyhlLXUpL2EsZV19ZWxzZSBpZihoPHApe2lmKGYpe2lmKGZbMF0+PXIpcmV0dXJufWVsc2UgZj1bbixhKm4rdV07bz1bcixhKnIrdV19ZWxzZXtpZihmKXtpZihmWzBdPG4pcmV0dXJufWVsc2UgZj1bcixhKnIrdV07bz1bbixhKm4rdV19cmV0dXJuIHRbMF09Zix0WzFdPW8sITB9ZnVuY3Rpb24gRWModCxuKXt2YXIgZT10LnNpdGUscj1uLmxlZnQsaT1uLnJpZ2h0O3JldHVybiBlPT09aSYmKGk9cixyPWUpLGk/TWF0aC5hdGFuMihpWzFdLXJbMV0saVswXS1yWzBdKTooZT09PXI/KHI9blsxXSxpPW5bMF0pOihyPW5bMF0saT1uWzFdKSxNYXRoLmF0YW4yKHJbMF0taVswXSxpWzFdLXJbMV0pKX1mdW5jdGlvbiBrYyh0LG4pe3JldHVybiBuWysobi5sZWZ0IT09dC5zaXRlKV19ZnVuY3Rpb24gQ2ModCxuKXtyZXR1cm4gblsrKG4ubGVmdD09PXQuc2l0ZSldfWZ1bmN0aW9uIFBjKHQpe3ZhciBuPXQuUCxlPXQuTjtpZihuJiZlKXt2YXIgcj1uLnNpdGUsaT10LnNpdGUsbz1lLnNpdGU7aWYociE9PW8pe3ZhciBhPWlbMF0sdT1pWzFdLGY9clswXS1hLGM9clsxXS11LHM9b1swXS1hLGw9b1sxXS11LGg9MiooZipsLWMqcyk7aWYoIShoPj0tdWIpKXt2YXIgZD1mKmYrYypjLHA9cypzK2wqbCx2PShsKmQtYypwKS9oLGc9KGYqcC1zKmQpL2gseT1pYi5wb3AoKXx8bmV3IGZ1bmN0aW9uKCl7YmModGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfTt5LmFyYz10LHkuc2l0ZT1pLHkueD12K2EseS55PSh5LmN5PWcrdSkrTWF0aC5zcXJ0KHYqditnKmcpLHQuY2lyY2xlPXk7Zm9yKHZhciBfPW51bGwsYj1lYi5fO2I7KWlmKHkueTxiLnl8fHkueT09PWIueSYmeS54PD1iLngpe2lmKCFiLkwpe189Yi5QO2JyZWFrfWI9Yi5MfWVsc2V7aWYoIWIuUil7Xz1iO2JyZWFrfWI9Yi5SfWViLmluc2VydChfLHkpLF98fChLXz15KX19fX1mdW5jdGlvbiB6Yyh0KXt2YXIgbj10LmNpcmNsZTtuJiYobi5QfHwoS189bi5OKSxlYi5yZW1vdmUobiksaWIucHVzaChuKSxiYyhuKSx0LmNpcmNsZT1udWxsKX1mdW5jdGlvbiBSYyh0KXt2YXIgbj1vYi5wb3AoKXx8bmV3IGZ1bmN0aW9uKCl7YmModGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfTtyZXR1cm4gbi5zaXRlPXQsbn1mdW5jdGlvbiBMYyh0KXt6Yyh0KSx0Yi5yZW1vdmUodCksb2IucHVzaCh0KSxiYyh0KX1mdW5jdGlvbiBEYyh0KXt2YXIgbj10LmNpcmNsZSxlPW4ueCxyPW4uY3ksaT1bZSxyXSxvPXQuUCxhPXQuTix1PVt0XTtMYyh0KTtmb3IodmFyIGY9bztmLmNpcmNsZSYmTWF0aC5hYnMoZS1mLmNpcmNsZS54KTxhYiYmTWF0aC5hYnMoci1mLmNpcmNsZS5jeSk8YWI7KW89Zi5QLHUudW5zaGlmdChmKSxMYyhmKSxmPW87dS51bnNoaWZ0KGYpLHpjKGYpO2Zvcih2YXIgYz1hO2MuY2lyY2xlJiZNYXRoLmFicyhlLWMuY2lyY2xlLngpPGFiJiZNYXRoLmFicyhyLWMuY2lyY2xlLmN5KTxhYjspYT1jLk4sdS5wdXNoKGMpLExjKGMpLGM9YTt1LnB1c2goYyksemMoYyk7dmFyIHMsbD11Lmxlbmd0aDtmb3Iocz0xO3M8bDsrK3MpYz11W3NdLGY9dVtzLTFdLFRjKGMuZWRnZSxmLnNpdGUsYy5zaXRlLGkpO2Y9dVswXSwoYz11W2wtMV0pLmVkZ2U9TWMoZi5zaXRlLGMuc2l0ZSxudWxsLGkpLFBjKGYpLFBjKGMpfWZ1bmN0aW9uIFVjKHQpe2Zvcih2YXIgbixlLHIsaSxvPXRbMF0sYT10WzFdLHU9dGIuXzt1OylpZigocj1xYyh1LGEpLW8pPmFiKXU9dS5MO2Vsc2V7aWYoISgoaT1vLWZ1bmN0aW9uKHQsbil7dmFyIGU9dC5OO2lmKGUpcmV0dXJuIHFjKGUsbik7dmFyIHI9dC5zaXRlO3JldHVybiByWzFdPT09bj9yWzBdOjEvMH0odSxhKSk+YWIpKXtyPi1hYj8obj11LlAsZT11KTppPi1hYj8obj11LGU9dS5OKTpuPWU9dTticmVha31pZighdS5SKXtuPXU7YnJlYWt9dT11LlJ9KGZ1bmN0aW9uKHQpe25iW3QuaW5kZXhdPXtzaXRlOnQsaGFsZmVkZ2VzOltdfX0pKHQpO3ZhciBmPVJjKHQpO2lmKHRiLmluc2VydChuLGYpLG58fGUpe2lmKG49PT1lKXJldHVybiB6YyhuKSxlPVJjKG4uc2l0ZSksdGIuaW5zZXJ0KGYsZSksZi5lZGdlPWUuZWRnZT1NYyhuLnNpdGUsZi5zaXRlKSxQYyhuKSx2b2lkIFBjKGUpO2lmKGUpe3pjKG4pLHpjKGUpO3ZhciBjPW4uc2l0ZSxzPWNbMF0sbD1jWzFdLGg9dFswXS1zLGQ9dFsxXS1sLHA9ZS5zaXRlLHY9cFswXS1zLGc9cFsxXS1sLHk9MiooaCpnLWQqdiksXz1oKmgrZCpkLGI9dip2K2cqZyxtPVsoZypfLWQqYikveStzLChoKmItdipfKS95K2xdO1RjKGUuZWRnZSxjLHAsbSksZi5lZGdlPU1jKGMsdCxudWxsLG0pLGUuZWRnZT1NYyh0LHAsbnVsbCxtKSxQYyhuKSxQYyhlKX1lbHNlIGYuZWRnZT1NYyhuLnNpdGUsZi5zaXRlKX19ZnVuY3Rpb24gcWModCxuKXt2YXIgZT10LnNpdGUscj1lWzBdLGk9ZVsxXSxvPWktbjtpZighbylyZXR1cm4gcjt2YXIgYT10LlA7aWYoIWEpcmV0dXJuLTEvMDt2YXIgdT0oZT1hLnNpdGUpWzBdLGY9ZVsxXSxjPWYtbjtpZighYylyZXR1cm4gdTt2YXIgcz11LXIsbD0xL28tMS9jLGg9cy9jO3JldHVybiBsPygtaCtNYXRoLnNxcnQoaCpoLTIqbCoocypzLygtMipjKS1mK2MvMitpLW8vMikpKS9sK3I6KHIrdSkvMn1mdW5jdGlvbiBPYyh0LG4sZSl7cmV0dXJuKHRbMF0tZVswXSkqKG5bMV0tdFsxXSktKHRbMF0tblswXSkqKGVbMV0tdFsxXSl9ZnVuY3Rpb24gWWModCxuKXtyZXR1cm4gblsxXS10WzFdfHxuWzBdLXRbMF19ZnVuY3Rpb24gQmModCxuKXt2YXIgZSxyLGksbz10LnNvcnQoWWMpLnBvcCgpO2ZvcihyYj1bXSxuYj1uZXcgQXJyYXkodC5sZW5ndGgpLHRiPW5ldyBfYyxlYj1uZXcgX2M7OylpZihpPUtfLG8mJighaXx8b1sxXTxpLnl8fG9bMV09PT1pLnkmJm9bMF08aS54KSlvWzBdPT09ZSYmb1sxXT09PXJ8fChVYyhvKSxlPW9bMF0scj1vWzFdKSxvPXQucG9wKCk7ZWxzZXtpZighaSlicmVhaztEYyhpLmFyYyl9aWYoZnVuY3Rpb24oKXtmb3IodmFyIHQsbixlLHIsaT0wLG89bmIubGVuZ3RoO2k8bzsrK2kpaWYoKHQ9bmJbaV0pJiYocj0obj10LmhhbGZlZGdlcykubGVuZ3RoKSl7dmFyIGE9bmV3IEFycmF5KHIpLHU9bmV3IEFycmF5KHIpO2ZvcihlPTA7ZTxyOysrZSlhW2VdPWUsdVtlXT1FYyh0LHJiW25bZV1dKTtmb3IoYS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIHVbbl0tdVt0XX0pLGU9MDtlPHI7KytlKXVbZV09blthW2VdXTtmb3IoZT0wO2U8cjsrK2UpbltlXT11W2VdfX0oKSxuKXt2YXIgYT0rblswXVswXSx1PStuWzBdWzFdLGY9K25bMV1bMF0sYz0rblsxXVsxXTsoZnVuY3Rpb24odCxuLGUscil7Zm9yKHZhciBpLG89cmIubGVuZ3RoO28tLTspU2MoaT1yYltvXSx0LG4sZSxyKSYmTmMoaSx0LG4sZSxyKSYmKE1hdGguYWJzKGlbMF1bMF0taVsxXVswXSk+YWJ8fE1hdGguYWJzKGlbMF1bMV0taVsxXVsxXSk+YWIpfHxkZWxldGUgcmJbb119KShhLHUsZixjKSxmdW5jdGlvbih0LG4sZSxyKXt2YXIgaSxvLGEsdSxmLGMscyxsLGgsZCxwLHYsZz1uYi5sZW5ndGgseT0hMDtmb3IoaT0wO2k8ZzsrK2kpaWYobz1uYltpXSl7Zm9yKGE9by5zaXRlLHU9KGY9by5oYWxmZWRnZXMpLmxlbmd0aDt1LS07KXJiW2ZbdV1dfHxmLnNwbGljZSh1LDEpO2Zvcih1PTAsYz1mLmxlbmd0aDt1PGM7KXA9KGQ9Q2MobyxyYltmW3VdXSkpWzBdLHY9ZFsxXSxsPShzPWtjKG8scmJbZlsrK3UlY11dKSlbMF0saD1zWzFdLChNYXRoLmFicyhwLWwpPmFifHxNYXRoLmFicyh2LWgpPmFiKSYmKGYuc3BsaWNlKHUsMCxyYi5wdXNoKEFjKGEsZCxNYXRoLmFicyhwLXQpPGFiJiZyLXY+YWI/W3QsTWF0aC5hYnMobC10KTxhYj9oOnJdOk1hdGguYWJzKHYtcik8YWImJmUtcD5hYj9bTWF0aC5hYnMoaC1yKTxhYj9sOmUscl06TWF0aC5hYnMocC1lKTxhYiYmdi1uPmFiP1tlLE1hdGguYWJzKGwtZSk8YWI/aDpuXTpNYXRoLmFicyh2LW4pPGFiJiZwLXQ+YWI/W01hdGguYWJzKGgtbik8YWI/bDp0LG5dOm51bGwpKS0xKSwrK2MpO2MmJih5PSExKX1pZih5KXt2YXIgXyxiLG0seD0xLzA7Zm9yKGk9MCx5PW51bGw7aTxnOysraSkobz1uYltpXSkmJihtPShfPShhPW8uc2l0ZSlbMF0tdCkqXysoYj1hWzFdLW4pKmIpPHgmJih4PW0seT1vKTtpZih5KXt2YXIgdz1bdCxuXSxNPVt0LHJdLEE9W2Uscl0sVD1bZSxuXTt5LmhhbGZlZGdlcy5wdXNoKHJiLnB1c2goQWMoYT15LnNpdGUsdyxNKSktMSxyYi5wdXNoKEFjKGEsTSxBKSktMSxyYi5wdXNoKEFjKGEsQSxUKSktMSxyYi5wdXNoKEFjKGEsVCx3KSktMSl9fWZvcihpPTA7aTxnOysraSkobz1uYltpXSkmJihvLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBuYltpXSl9KGEsdSxmLGMpfXRoaXMuZWRnZXM9cmIsdGhpcy5jZWxscz1uYix0Yj1lYj1yYj1uYj1udWxsfWZ1bmN0aW9uIEZjKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBJYyh0LG4sZSl7dGhpcy5rPXQsdGhpcy54PW4sdGhpcy55PWV9ZnVuY3Rpb24gamModCl7cmV0dXJuIHQuX196b29tfHxmYn1mdW5jdGlvbiBIYygpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWGMoKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBHYygpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBWYygpe3ZhciB0LG4sZT10aGlzO3JldHVybiBlIGluc3RhbmNlb2YgU1ZHRWxlbWVudD8odD0oZT1lLm93bmVyU1ZHRWxlbWVudHx8ZSkud2lkdGguYmFzZVZhbC52YWx1ZSxuPWUuaGVpZ2h0LmJhc2VWYWwudmFsdWUpOih0PWUuY2xpZW50V2lkdGgsbj1lLmNsaWVudEhlaWdodCksW1swLDBdLFt0LG5dXX1mdW5jdGlvbiAkYygpe3JldHVybiB0aGlzLl9fem9vbXx8ZmJ9ZnVuY3Rpb24gV2MoKXtyZXR1cm4tdC5ldmVudC5kZWx0YVkqKHQuZXZlbnQuZGVsdGFNb2RlPzEyMDoxKS81MDB9ZnVuY3Rpb24gWmMoKXtyZXR1cm5cIm9udG91Y2hzdGFydFwiaW4gdGhpc31mdW5jdGlvbiBRYyh0LG4sZSl7dmFyIHI9dC5pbnZlcnRYKG5bMF1bMF0pLWVbMF1bMF0saT10LmludmVydFgoblsxXVswXSktZVsxXVswXSxvPXQuaW52ZXJ0WShuWzBdWzFdKS1lWzBdWzFdLGE9dC5pbnZlcnRZKG5bMV1bMV0pLWVbMV1bMV07cmV0dXJuIHQudHJhbnNsYXRlKGk+cj8ocitpKS8yOk1hdGgubWluKDAscil8fE1hdGgubWF4KDAsaSksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9dmFyIEpjPWUobiksS2M9SmMucmlnaHQsdHM9SmMubGVmdCxucz1BcnJheS5wcm90b3R5cGUsZXM9bnMuc2xpY2UscnM9bnMubWFwLGlzPU1hdGguc3FydCg1MCksb3M9TWF0aC5zcXJ0KDEwKSxhcz1NYXRoLnNxcnQoMiksdXM9QXJyYXkucHJvdG90eXBlLnNsaWNlLGZzPTEsY3M9Mixzcz0zLGxzPTQsaHM9MWUtNixkcz17dmFsdWU6ZnVuY3Rpb24oKXt9fTtTLnByb3RvdHlwZT1OLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UyxvbjpmdW5jdGlvbih0LG4pe3ZhciBlLHI9dGhpcy5fLGk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgZT1cIlwiLHI9dC5pbmRleE9mKFwiLlwiKTtpZihyPj0wJiYoZT10LnNsaWNlKHIrMSksdD10LnNsaWNlKDAscikpLHQmJiFuLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOmV9fSl9KHQrXCJcIixyKSxvPS0xLGE9aS5sZW5ndGg7e2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9biYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGNhbGxiYWNrOiBcIituKTtmb3IoOysrbzxhOylpZihlPSh0PWlbb10pLnR5cGUpcltlXT1FKHJbZV0sdC5uYW1lLG4pO2Vsc2UgaWYobnVsbD09bilmb3IoZSBpbiByKXJbZV09RShyW2VdLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigoZT0odD1pW29dKS50eXBlKSYmKGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGUscj0wLGk9dC5sZW5ndGg7cjxpOysrcilpZigoZT10W3JdKS5uYW1lPT09bilyZXR1cm4gZS52YWx1ZX0ocltlXSx0Lm5hbWUpKSlyZXR1cm4gZX19LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxuPXRoaXMuXztmb3IodmFyIGUgaW4gbil0W2VdPW5bZV0uc2xpY2UoKTtyZXR1cm4gbmV3IFModCl9LGNhbGw6ZnVuY3Rpb24odCxuKXtpZigoZT1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBlLHIsaT1uZXcgQXJyYXkoZSksbz0wO288ZTsrK28paVtvXT1hcmd1bWVudHNbbysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7Zm9yKG89MCxlPShyPXRoaXMuX1t0XSkubGVuZ3RoO288ZTsrK28pcltvXS52YWx1ZS5hcHBseShuLGkpfSxhcHBseTpmdW5jdGlvbih0LG4sZSl7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHR5cGU6IFwiK3QpO2Zvcih2YXIgcj10aGlzLl9bdF0saT0wLG89ci5sZW5ndGg7aTxvOysraSlyW2ldLnZhbHVlLmFwcGx5KG4sZSl9fTt2YXIgcHM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIsdnM9e3N2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIseGh0bWw6cHMseGxpbms6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIseG1sOlwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zL1wifSxncz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX07aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXt2YXIgeXM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKCF5cy5tYXRjaGVzKXt2YXIgX3M9eXMud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHx5cy5tc01hdGNoZXNTZWxlY3Rvcnx8eXMubW96TWF0Y2hlc1NlbGVjdG9yfHx5cy5vTWF0Y2hlc1NlbGVjdG9yO2dzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfcy5jYWxsKHRoaXMsdCl9fX19dmFyIGJzPWdzO1UucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpVLGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsbil9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O3ZhciBtcz1cIiRcIjtILnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKHQpe3RoaXMuX25hbWVzLmluZGV4T2YodCk8MCYmKHRoaXMuX25hbWVzLnB1c2godCksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLHRoaXMuX25hbWVzLmpvaW4oXCIgXCIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lcy5pbmRleE9mKHQpO24+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UobiwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsdGhpcy5fbmFtZXMuam9pbihcIiBcIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgeHM9e307aWYodC5ldmVudD1udWxsLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCl7XCJvbm1vdXNlZW50ZXJcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KHhzPXttb3VzZWVudGVyOlwibW91c2VvdmVyXCIsbW91c2VsZWF2ZTpcIm1vdXNlb3V0XCJ9KX12YXIgd3M9W251bGxdO3V0LnByb3RvdHlwZT1mdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnV0LHNlbGVjdDpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD16KHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGEsdT1uW2ldLGY9dS5sZW5ndGgsYz1yW2ldPW5ldyBBcnJheShmKSxzPTA7czxmOysrcykobz11W3NdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyxzLHUpKSYmKFwiX19kYXRhX19cImluIG8mJihhLl9fZGF0YV9fPW8uX19kYXRhX18pLGNbc109YSk7cmV0dXJuIG5ldyB1dChyLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9TCh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPW4ubGVuZ3RoLHI9W10saT1bXSxvPTA7bzxlOysrbylmb3IodmFyIGEsdT1uW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpKGE9dVtjXSkmJihyLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHUpKSxpLnB1c2goYSkpO3JldHVybiBuZXcgdXQocixpKX0sZmlsdGVyOmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWJzKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGE9bltpXSx1PWEubGVuZ3RoLGY9cltpXT1bXSxjPTA7Yzx1OysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZmLnB1c2gobyk7cmV0dXJuIG5ldyB1dChyLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uKHQsbil7aWYoIXQpcmV0dXJuIGQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxjPS0xLHRoaXMuZWFjaChmdW5jdGlvbih0KXtkWysrY109dH0pLGQ7dmFyIGU9bj9POnEscj10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0odCkpO2Zvcih2YXIgbz1pLmxlbmd0aCxhPW5ldyBBcnJheShvKSx1PW5ldyBBcnJheShvKSxmPW5ldyBBcnJheShvKSxjPTA7YzxvOysrYyl7dmFyIHM9cltjXSxsPWlbY10saD1sLmxlbmd0aCxkPXQuY2FsbChzLHMmJnMuX19kYXRhX18sYyxyKSxwPWQubGVuZ3RoLHY9dVtjXT1uZXcgQXJyYXkocCksZz1hW2NdPW5ldyBBcnJheShwKTtlKHMsbCx2LGcsZltjXT1uZXcgQXJyYXkoaCksZCxuKTtmb3IodmFyIHksXyxiPTAsbT0wO2I8cDsrK2IpaWYoeT12W2JdKXtmb3IoYj49bSYmKG09YisxKTshKF89Z1ttXSkmJisrbTxwOyk7eS5fbmV4dD1ffHxudWxsfX1yZXR1cm4gYT1uZXcgdXQoYSxyKSxhLl9lbnRlcj11LGEuX2V4aXQ9ZixhfSxlbnRlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgdXQodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoRCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHV0KHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoRCksdGhpcy5fcGFyZW50cyl9LG1lcmdlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT10Ll9ncm91cHMscj1uLmxlbmd0aCxpPWUubGVuZ3RoLG89TWF0aC5taW4ocixpKSxhPW5ldyBBcnJheShyKSx1PTA7dTxvOysrdSlmb3IodmFyIGYsYz1uW3VdLHM9ZVt1XSxsPWMubGVuZ3RoLGg9YVt1XT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGY9Y1tkXXx8c1tkXSkmJihoW2RdPWYpO2Zvcig7dTxyOysrdSlhW3VdPW5bdV07cmV0dXJuIG5ldyB1dChhLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsbj0tMSxlPXQubGVuZ3RoOysrbjxlOylmb3IodmFyIHIsaT10W25dLG89aS5sZW5ndGgtMSxhPWlbb107LS1vPj0wOykocj1pW29dKSYmKGEmJmEhPT1yLm5leHRTaWJsaW5nJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHIsYSksYT1yKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbih0KXtmdW5jdGlvbiBuKG4sZSl7cmV0dXJuIG4mJmU/dChuLl9fZGF0YV9fLGUuX19kYXRhX18pOiFuLSFlfXR8fCh0PVkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMscj1lLmxlbmd0aCxpPW5ldyBBcnJheShyKSxvPTA7bzxyOysrbyl7Zm9yKHZhciBhLHU9ZVtvXSxmPXUubGVuZ3RoLGM9aVtvXT1uZXcgQXJyYXkoZikscz0wO3M8ZjsrK3MpKGE9dVtzXSkmJihjW3NdPWEpO2Muc29ydChuKX1yZXR1cm4gbmV3IHV0KGksdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLG49LTE7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RbKytuXT10aGlzfSksdH0sbm9kZTpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsbj0wLGU9dC5sZW5ndGg7bjxlOysrbilmb3IodmFyIHI9dFtuXSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXt2YXIgYT1yW2ldO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsrK3R9KSx0fSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9MCxyPW4ubGVuZ3RoO2U8cjsrK2UpZm9yKHZhciBpLG89bltlXSxhPTAsdT1vLmxlbmd0aDthPHU7KythKShpPW9bYV0pJiZ0LmNhbGwoaSxpLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24odCxuKXt2YXIgZT1rKHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIHI9dGhpcy5ub2RlKCk7cmV0dXJuIGUubG9jYWw/ci5nZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnIuZ2V0QXR0cmlidXRlKGUpfXJldHVybiB0aGlzLmVhY2goKG51bGw9PW4/ZS5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZS5sb2NhbD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsZSl9fTplLmxvY2FsP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsbil9fSkoZSxuKSl9LHN0eWxlOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4sZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09cj90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxyLGUpfX06ZnVuY3Rpb24odCxuLGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxuLGUpfX0pKHQsbixudWxsPT1lP1wiXCI6ZSkpOkYodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PW4/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPWV9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09bn19KSh0LG4pKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbih0LG4pe3ZhciBlPUkodCtcIlwiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgcj1qKHRoaXMubm9kZSgpKSxpPS0xLG89ZS5sZW5ndGg7KytpPG87KWlmKCFyLmNvbnRhaW5zKGVbaV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXsobi5hcHBseSh0aGlzLGFyZ3VtZW50cyk/WDpHKSh0aGlzLHQpfX06bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtYKHRoaXMsdCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtHKHRoaXMsdCl9fSkoZSxuKSl9LHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/VjooXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PW4/XCJcIjpufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0pKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD8kOihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PW4/XCJcIjpufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19KSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goVyl9LGxvd2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChaKX0sYXBwZW5kOmZ1bmN0aW9uKHQpe3ZhciBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpDKHQpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfSxpbnNlcnQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6Qyh0KSxyPW51bGw9PW4/UTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246eihuKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksci5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goSil9LGNsb25lOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P3R0OkspfSxkYXR1bTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KFwiX19kYXRhX19cIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbz1mdW5jdGlvbih0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgbj1cIlwiLGU9dC5pbmRleE9mKFwiLlwiKTtyZXR1cm4gZT49MCYmKG49dC5zbGljZShlKzEpLHQ9dC5zbGljZSgwLGUpKSx7dHlwZTp0LG5hbWU6bn19KX0odCtcIlwiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHU9bj9pdDpydCxudWxsPT1lJiYoZT0hMSkscj0wO3I8YTsrK3IpdGhpcy5lYWNoKHUob1tyXSxuLGUpKTtyZXR1cm4gdGhpc312YXIgdT10aGlzLm5vZGUoKS5fX29uO2lmKHUpZm9yKHZhciBmLGM9MCxzPXUubGVuZ3RoO2M8czsrK2MpZm9yKHI9MCxmPXVbY107cjxhOysrcilpZigoaT1vW3JdKS50eXBlPT09Zi50eXBlJiZpLm5hbWU9PT1mLm5hbWUpcmV0dXJuIGYudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhdCh0aGlzLHQsbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYXQodGhpcyx0LG4pfX0pKHQsbikpfX07dmFyIE1zPTA7bHQucHJvdG90eXBlPXN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6bHQsZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl87IShuIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbbl19LHNldDpmdW5jdGlvbih0LG4pe3JldHVybiB0W3RoaXMuX109bn0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0seHQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fLm9uLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpO3JldHVybiB0PT09dGhpcy5fP3RoaXM6dH07dmFyIEFzPVwiXFxcXHMqKFsrLV0/XFxcXGQrKVxcXFxzKlwiLFRzPVwiXFxcXHMqKFsrLV0/XFxcXGQqXFxcXC4/XFxcXGQrKD86W2VFXVsrLV0/XFxcXGQrKT8pXFxcXHMqXCIsTnM9XCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPyklXFxcXHMqXCIsU3M9L14jKFswLTlhLWZdezN9KSQvLEVzPS9eIyhbMC05YS1mXXs2fSkkLyxrcz1uZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIrW0FzLEFzLEFzXStcIlxcXFwpJFwiKSxDcz1uZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIrW05zLE5zLE5zXStcIlxcXFwpJFwiKSxQcz1uZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiK1tBcyxBcyxBcyxUc10rXCJcXFxcKSRcIiksenM9bmV3IFJlZ0V4cChcIl5yZ2JhXFxcXChcIitbTnMsTnMsTnMsVHNdK1wiXFxcXCkkXCIpLFJzPW5ldyBSZWdFeHAoXCJeaHNsXFxcXChcIitbVHMsTnMsTnNdK1wiXFxcXCkkXCIpLExzPW5ldyBSZWdFeHAoXCJeaHNsYVxcXFwoXCIrW1RzLE5zLE5zLFRzXStcIlxcXFwpJFwiKSxEcz17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtOdChFdCxrdCx7ZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5oZXgoKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKStcIlwifX0pLE50KEx0LFJ0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgTHQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IEx0KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiAwPD10aGlzLnImJnRoaXMucjw9MjU1JiYwPD10aGlzLmcmJnRoaXMuZzw9MjU1JiYwPD10aGlzLmImJnRoaXMuYjw9MjU1JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OmZ1bmN0aW9uKCl7cmV0dXJuXCIjXCIrRHQodGhpcy5yKStEdCh0aGlzLmcpK0R0KHRoaXMuYil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT9cInJnYihcIjpcInJnYmEoXCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpK1wiLCBcIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKStcIiwgXCIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10P1wiKVwiOlwiLCBcIit0K1wiKVwiKX19KSksTnQoT3QscXQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBPdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBPdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksbj1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxlPXRoaXMubCxyPWUrKGU8LjU/ZToxLWUpKm4saT0yKmUtcjtyZXR1cm4gbmV3IEx0KFl0KHQ+PTI0MD90LTI0MDp0KzEyMCxpLHIpLFl0KHQsaSxyKSxZdCh0PDEyMD90KzI0MDp0LTEyMCxpLHIpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfX0pKTt2YXIgVXM9TWF0aC5QSS8xODAscXM9MTgwL01hdGguUEksT3M9Ljk2NDIyLFlzPTEsQnM9LjgyNTIxLEZzPTQvMjksSXM9Ni8yOSxqcz0zKklzKklzLEhzPUlzKklzKklzO050KEl0LEZ0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEl0KHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSXQodGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5sKzE2KS8xMTYsbj1pc05hTih0aGlzLmEpP3Q6dCt0aGlzLmEvNTAwLGU9aXNOYU4odGhpcy5iKT90OnQtdGhpcy5iLzIwMDtyZXR1cm4gbj1PcypIdChuKSx0PVlzKkh0KHQpLGU9QnMqSHQoZSksbmV3IEx0KFh0KDMuMTMzODU2MSpuLTEuNjE2ODY2Nyp0LS40OTA2MTQ2KmUpLFh0KC0uOTc4NzY4NCpuKzEuOTE2MTQxNSp0Ky4wMzM0NTQqZSksWHQoLjA3MTk0NTMqbi0uMjI4OTkxNCp0KzEuNDA1MjQyNyplKSx0aGlzLm9wYWNpdHkpfX0pKSxOdChXdCwkdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBXdCh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFd0KHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIEJ0KHRoaXMpLnJnYigpfX0pKTt2YXIgWHM9LS4yOTIyNyxHcz0tLjkwNjQ5LFZzPTEuOTcyOTQsJHM9VnMqR3MsV3M9MS43ODI3NypWcyxacz0xLjc4Mjc3KlhzLSAtLjE0ODYxKkdzO050KFF0LFp0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgUXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgUXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKlVzLG49K3RoaXMubCxlPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqbiooMS1uKSxyPU1hdGguY29zKHQpLGk9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyBMdCgyNTUqKG4rZSooLS4xNDg2MSpyKzEuNzgyNzcqaSkpLDI1NSoobitlKihYcypyK0dzKmkpKSwyNTUqKG4rZSooVnMqcikpLHRoaXMub3BhY2l0eSl9fSkpO3ZhciBRcyxKcyxLcyx0bCxubCxlbCxybD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1yKCh0PVJ0KHQpKS5yLChuPVJ0KG4pKS5yKSxpPXIodC5nLG4uZyksbz1yKHQuYixuLmIpLGE9YW4odC5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0LnI9ZShuKSx0Lmc9aShuKSx0LmI9byhuKSx0Lm9wYWNpdHk9YShuKSx0K1wiXCJ9fXZhciByPW9uKG4pO3JldHVybiBlLmdhbW1hPXQsZX0oMSksaWw9dW4oS3QpLG9sPXVuKHRuKSxhbD0vWy0rXT8oPzpcXGQrXFwuP1xcZCp8XFwuP1xcZCspKD86W2VFXVstK10/XFxkKyk/L2csdWw9bmV3IFJlZ0V4cChhbC5zb3VyY2UsXCJnXCIpLGZsPTE4MC9NYXRoLlBJLGNsPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9LHNsPWduKGZ1bmN0aW9uKHQpe3JldHVyblwibm9uZVwiPT09dD9jbDooUXN8fChRcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiRElWXCIpLEpzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxLcz1kb2N1bWVudC5kZWZhdWx0VmlldyksUXMuc3R5bGUudHJhbnNmb3JtPXQsdD1Lcy5nZXRDb21wdXRlZFN0eWxlKEpzLmFwcGVuZENoaWxkKFFzKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKFwidHJhbnNmb3JtXCIpLEpzLnJlbW92ZUNoaWxkKFFzKSx0PXQuc2xpY2UoNywtMSkuc3BsaXQoXCIsXCIpLHZuKCt0WzBdLCt0WzFdLCt0WzJdLCt0WzNdLCt0WzRdLCt0WzVdKSl9LFwicHgsIFwiLFwicHgpXCIsXCJkZWcpXCIpLGxsPWduKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P2NsOih0bHx8KHRsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJnXCIpKSx0bC5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIix0KSwodD10bC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT8odD10Lm1hdHJpeCx2bih0LmEsdC5iLHQuYyx0LmQsdC5lLHQuZikpOmNsKX0sXCIsIFwiLFwiKVwiLFwiKVwiKSxobD1NYXRoLlNRUlQyLGRsPTIscGw9NCx2bD0xZS0xMixnbD1ibihybikseWw9Ym4oYW4pLF9sPW1uKHJuKSxibD1tbihhbiksbWw9eG4ocm4pLHhsPXhuKGFuKSx3bD0wLE1sPTAsQWw9MCxUbD0xZTMsTmw9MCxTbD0wLEVsPTAsa2w9XCJvYmplY3RcIj09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxDbD1cIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O0FuLnByb3RvdHlwZT1Ubi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkFuLHJlc3RhcnQ6ZnVuY3Rpb24odCxuLGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uXCIpO2U9KG51bGw9PWU/d24oKTorZSkrKG51bGw9PW4/MDorbiksdGhpcy5fbmV4dHx8ZWw9PT10aGlzfHwoZWw/ZWwuX25leHQ9dGhpczpubD10aGlzLGVsPXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPWUsa24oKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsa24oKSl9fTt2YXIgUGw9TihcInN0YXJ0XCIsXCJlbmRcIixcImludGVycnVwdFwiKSx6bD1bXSxSbD0wLExsPTEsRGw9MixVbD0zLHFsPTQsT2w9NSxZbD02LEJsPWZ0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcixGbD0wLElsPWZ0LnByb3RvdHlwZTtPbi5wcm90b3R5cGU9WW4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpPbixzZWxlY3Q6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZSxlPXRoaXMuX2lkO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXoodCkpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPTA7YTxpOysrYSlmb3IodmFyIHUsZixjPXJbYV0scz1jLmxlbmd0aCxsPW9bYV09bmV3IEFycmF5KHMpLGg9MDtoPHM7KytoKSh1PWNbaF0pJiYoZj10LmNhbGwodSx1Ll9fZGF0YV9fLGgsYykpJiYoXCJfX2RhdGFfX1wiaW4gdSYmKGYuX19kYXRhX189dS5fX2RhdGFfXyksbFtoXT1mLFBuKGxbaF0sbixlLGgsbCxMbih1LGUpKSk7cmV0dXJuIG5ldyBPbihvLHRoaXMuX3BhcmVudHMsbixlKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWUsZT10aGlzLl9pZDtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1MKHQpKTtmb3IodmFyIHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz1bXSxhPVtdLHU9MDt1PGk7Kyt1KWZvcih2YXIgZixjPXJbdV0scz1jLmxlbmd0aCxsPTA7bDxzOysrbClpZihmPWNbbF0pe2Zvcih2YXIgaCxkPXQuY2FsbChmLGYuX19kYXRhX18sbCxjKSxwPUxuKGYsZSksdj0wLGc9ZC5sZW5ndGg7djxnOysrdikoaD1kW3ZdKSYmUG4oaCxuLGUsdixkLHApO28ucHVzaChkKSxhLnB1c2goZil9cmV0dXJuIG5ldyBPbihvLGEsbixlKX0sZmlsdGVyOmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWJzKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGE9bltpXSx1PWEubGVuZ3RoLGY9cltpXT1bXSxjPTA7Yzx1OysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZmLnB1c2gobyk7cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uKHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT10Ll9ncm91cHMscj1uLmxlbmd0aCxpPWUubGVuZ3RoLG89TWF0aC5taW4ocixpKSxhPW5ldyBBcnJheShyKSx1PTA7dTxvOysrdSlmb3IodmFyIGYsYz1uW3VdLHM9ZVt1XSxsPWMubGVuZ3RoLGg9YVt1XT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGY9Y1tkXXx8c1tkXSkmJihoW2RdPWYpO2Zvcig7dTxyOysrdSlhW3VdPW5bdV07cmV0dXJuIG5ldyBPbihhLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiBuZXcgQmwodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsbj10aGlzLl9pZCxlPUJuKCkscj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGEsdT1yW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpaWYoYT11W2NdKXt2YXIgcz1MbihhLG4pO1BuKGEsdCxlLGMsdSx7dGltZTpzLnRpbWUrcy5kZWxheStzLmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246cy5kdXJhdGlvbixlYXNlOnMuZWFzZX0pfXJldHVybiBuZXcgT24ocix0aGlzLl9wYXJlbnRzLHQsZSl9LGNhbGw6SWwuY2FsbCxub2RlczpJbC5ub2Rlcyxub2RlOklsLm5vZGUsc2l6ZTpJbC5zaXplLGVtcHR5OklsLmVtcHR5LGVhY2g6SWwuZWFjaCxvbjpmdW5jdGlvbih0LG4pe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/TG4odGhpcy5ub2RlKCksZSkub24ub24odCk6dGhpcy5lYWNoKGZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG89ZnVuY3Rpb24odCl7cmV0dXJuKHQrXCJcIikudHJpbSgpLnNwbGl0KC9efFxccysvKS5ldmVyeShmdW5jdGlvbih0KXt2YXIgbj10LmluZGV4T2YoXCIuXCIpO3JldHVybiBuPj0wJiYodD10LnNsaWNlKDAsbikpLCF0fHxcInN0YXJ0XCI9PT10fSl9KG4pP3puOlJuO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW8odGhpcyx0KSx1PWEub247dSE9PXImJihpPShyPXUpLmNvcHkoKSkub24obixlKSxhLm9uPWl9fShlLHQsbikpfSxhdHRyOmZ1bmN0aW9uKHQsbil7dmFyIGU9ayh0KSxyPVwidHJhbnNmb3JtXCI9PT1lP2xsOnFuO3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KGUubG9jYWw/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSx1PWUodGhpcyk7aWYobnVsbCE9dSlyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHU9ZSh0aGlzKTtpZihudWxsIT11KXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlKHQpKT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fSkoZSxyLFVuKHRoaXMsXCJhdHRyLlwiK3QsbikpOm51bGw9PW4/KGUubG9jYWw/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fSkoZSk6KGUubG9jYWw/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBvPT09ZT9udWxsOm89PT1yP2k6aT1uKHI9byxlKX19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3JldHVybiBvPT09ZT9udWxsOm89PT1yP2k6aT1uKHI9byxlKX19KShlLHIsbitcIlwiKSl9LGF0dHJUd2VlbjpmdW5jdGlvbih0LG4pe3ZhciBlPVwiYXR0ci5cIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oZT10aGlzLnR3ZWVuKGUpKSYmZS5fdmFsdWU7aWYobnVsbD09bilyZXR1cm4gdGhpcy50d2VlbihlLG51bGwpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3ZhciByPWsodCk7cmV0dXJuIHRoaXMudHdlZW4oZSwoci5sb2NhbD9mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzLHI9bi5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe2Uuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLHIobikpfX1yZXR1cm4gZS5fdmFsdWU9bixlfTpmdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzLHI9bi5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe2Uuc2V0QXR0cmlidXRlKHQscihuKSl9fXJldHVybiBlLl92YWx1ZT1uLGV9KShyLG4pKX0sc3R5bGU6ZnVuY3Rpb24odCxuLGUpe3ZhciByPVwidHJhbnNmb3JtXCI9PSh0Kz1cIlwiKT9zbDpxbjtyZXR1cm4gbnVsbD09bj90aGlzLnN0eWxlVHdlZW4odCxmdW5jdGlvbih0LG4pe3ZhciBlLHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1GKHRoaXMsdCksYT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxGKHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1lJiZhPT09cj9pOmk9bihlPW8scj1hKX19KHQscikpLm9uKFwiZW5kLnN0eWxlLlwiK3QsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19KHQpKTp0aGlzLnN0eWxlVHdlZW4odCxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9Rih0aGlzLHQpLHU9ZSh0aGlzKTtyZXR1cm4gbnVsbD09dSYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksdT1GKHRoaXMsdCkpLGE9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpfX0odCxyLFVuKHRoaXMsXCJzdHlsZS5cIit0LG4pKTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1GKHRoaXMsdCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX0odCxyLG4rXCJcIiksZSl9LHN0eWxlVHdlZW46ZnVuY3Rpb24odCxuLGUpe3ZhciByPVwic3R5bGUuXCIrKHQrPVwiXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4ocj10aGlzLnR3ZWVuKHIpKSYmci5fdmFsdWU7aWYobnVsbD09bilyZXR1cm4gdGhpcy50d2VlbihyLG51bGwpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKHIsZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIoKXt2YXIgcj10aGlzLGk9bi5hcHBseShyLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKG4pe3Iuc3R5bGUuc2V0UHJvcGVydHkodCxpKG4pLGUpfX1yZXR1cm4gci5fdmFsdWU9bixyfSh0LG4sbnVsbD09ZT9cIlwiOmUpKX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50d2VlbihcInRleHRcIixcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1uP1wiXCI6bn19KFVuKHRoaXMsXCJ0ZXh0XCIsdCkpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KG51bGw9PXQ/XCJcIjp0K1wiXCIpKX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub24oXCJlbmQucmVtb3ZlXCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgZSBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrZSE9PXQpcmV0dXJuO24mJm4ucmVtb3ZlQ2hpbGQodGhpcyl9fSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbih0LG4pe3ZhciBlPXRoaXMuX2lkO2lmKHQrPVwiXCIsYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIHIsaT1Mbih0aGlzLm5vZGUoKSxlKS50d2VlbixvPTAsYT1pLmxlbmd0aDtvPGE7KytvKWlmKChyPWlbb10pLm5hbWU9PT10KXJldHVybiByLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PW4/ZnVuY3Rpb24odCxuKXt2YXIgZSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPVJuKHRoaXMsdCksbz1pLnR3ZWVuO2lmKG8hPT1lKWZvcih2YXIgYT0wLHU9KHI9ZT1vKS5sZW5ndGg7YTx1OysrYSlpZihyW2FdLm5hbWU9PT1uKXsocj1yLnNsaWNlKCkpLnNwbGljZShhLDEpO2JyZWFrfWkudHdlZW49cn19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPVJuKHRoaXMsdCksYT1vLnR3ZWVuO2lmKGEhPT1yKXtpPShyPWEpLnNsaWNlKCk7Zm9yKHZhciB1PXtuYW1lOm4sdmFsdWU6ZX0sZj0wLGM9aS5sZW5ndGg7ZjxjOysrZilpZihpW2ZdLm5hbWU9PT1uKXtpW2ZdPXU7YnJlYWt9Zj09PWMmJmkucHVzaCh1KX1vLnR3ZWVuPWl9fSkoZSx0LG4pKX0sZGVsYXk6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7em4odGhpcyx0KS5kZWxheT0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBuPStuLGZ1bmN0aW9uKCl7em4odGhpcyx0KS5kZWxheT1ufX0pKG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtSbih0aGlzLHQpLmR1cmF0aW9uPStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIG49K24sZnVuY3Rpb24oKXtSbih0aGlzLHQpLmR1cmF0aW9uPW59fSkobix0KSk6TG4odGhpcy5ub2RlKCksbikuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7Um4odGhpcyx0KS5lYXNlPW59fShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5lYXNlfX07dmFyIGpsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gTWF0aC5wb3codCxuKX1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksSGw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxuKX1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksWGw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3codCxuKToyLU1hdGgucG93KDItdCxuKSkvMn1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksR2w9TWF0aC5QSSxWbD1HbC8yLCRsPTQvMTEsV2w9Ni8xMSxabD04LzExLFFsPS43NSxKbD05LzExLEtsPTEwLzExLHRoPS45Mzc1LG5oPTIxLzIyLGVoPTYzLzY0LHJoPTEvJGwvJGwsaWg9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiB0KnQqKChuKzEpKnQtbil9cmV0dXJuIG49K24sZS5vdmVyc2hvb3Q9dCxlfSgxLjcwMTU4KSxvaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuLS10KnQqKChuKzEpKnQrbikrMX1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLGFoPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4oKHQqPTIpPDE/dCp0KigobisxKSp0LW4pOih0LT0yKSp0KigobisxKSp0K24pKzIpLzJ9cmV0dXJuIG49K24sZS5vdmVyc2hvb3Q9dCxlfSgxLjcwMTU4KSx1aD0yKk1hdGguUEksZmg9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIG4qTWF0aC5wb3coMiwxMCotLXQpKk1hdGguc2luKChpLXQpL2UpfXZhciBpPU1hdGguYXNpbigxLyhuPU1hdGgubWF4KDEsbikpKSooZS89dWgpO3JldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihuKXtyZXR1cm4gdChuLGUqdWgpfSxyLnBlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gdChuLGUpfSxyfSgxLC4zKSxjaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMS1uKk1hdGgucG93KDIsLTEwKih0PSt0KSkqTWF0aC5zaW4oKHQraSkvZSl9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLHNoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybigodD0yKnQtMSk8MD9uKk1hdGgucG93KDIsMTAqdCkqTWF0aC5zaW4oKGktdCkvZSk6Mi1uKk1hdGgucG93KDIsLTEwKnQpKk1hdGguc2luKChpK3QpL2UpKS8yfXZhciBpPU1hdGguYXNpbigxLyhuPU1hdGgubWF4KDEsbikpKSooZS89dWgpO3JldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihuKXtyZXR1cm4gdChuLGUqdWgpfSxyLnBlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gdChuLGUpfSxyfSgxLC4zKSxsaD17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6SW59O2Z0LnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe0RuKHRoaXMsdCl9KX0sZnQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24odCl7dmFyIG4sZTt0IGluc3RhbmNlb2YgT24/KG49dC5faWQsdD10Ll9uYW1lKToobj1CbigpLChlPWxoKS50aW1lPXduKCksdD1udWxsPT10P251bGw6dCtcIlwiKTtmb3IodmFyIHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz0wO288aTsrK28pZm9yKHZhciBhLHU9cltvXSxmPXUubGVuZ3RoLGM9MDtjPGY7KytjKShhPXVbY10pJiZQbihhLHQsbixjLHUsZXx8Vm4oYSxuKSk7cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdCxuKX07dmFyIGhoPVtudWxsXSxkaD17bmFtZTpcImRyYWdcIn0scGg9e25hbWU6XCJzcGFjZVwifSx2aD17bmFtZTpcImhhbmRsZVwifSxnaD17bmFtZTpcImNlbnRlclwifSx5aD17bmFtZTpcInhcIixoYW5kbGVzOltcImVcIixcIndcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0LG4pe3JldHVybiB0JiZbW3RbMF0sblswXVsxXV0sW3RbMV0sblsxXVsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzBdLHRbMV1bMF1dfX0sX2g9e25hbWU6XCJ5XCIsaGFuZGxlczpbXCJuXCIsXCJzXCJdLm1hcChRbiksaW5wdXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdCYmW1tuWzBdWzBdLHRbMF1dLFtuWzFdWzBdLHRbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LGJoPXtuYW1lOlwieHlcIixoYW5kbGVzOltcIm5cIixcImVcIixcInNcIixcIndcIixcIm53XCIsXCJuZVwiLFwic2VcIixcInN3XCJdLm1hcChRbiksaW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH19LG1oPXtvdmVybGF5OlwiY3Jvc3NoYWlyXCIsc2VsZWN0aW9uOlwibW92ZVwiLG46XCJucy1yZXNpemVcIixlOlwiZXctcmVzaXplXCIsczpcIm5zLXJlc2l6ZVwiLHc6XCJldy1yZXNpemVcIixudzpcIm53c2UtcmVzaXplXCIsbmU6XCJuZXN3LXJlc2l6ZVwiLHNlOlwibndzZS1yZXNpemVcIixzdzpcIm5lc3ctcmVzaXplXCJ9LHhoPXtlOlwid1wiLHc6XCJlXCIsbnc6XCJuZVwiLG5lOlwibndcIixzZTpcInN3XCIsc3c6XCJzZVwifSx3aD17bjpcInNcIixzOlwiblwiLG53Olwic3dcIixuZTpcInNlXCIsc2U6XCJuZVwiLHN3OlwibndcIn0sTWg9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOm51bGwsZToxLHM6bnVsbCx3Oi0xLG53Oi0xLG5lOjEsc2U6MSxzdzotMX0sQWg9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOi0xLGU6bnVsbCxzOjEsdzpudWxsLG53Oi0xLG5lOi0xLHNlOjEsc3c6MX0sVGg9TWF0aC5jb3MsTmg9TWF0aC5zaW4sU2g9TWF0aC5QSSxFaD1TaC8yLGtoPTIqU2gsQ2g9TWF0aC5tYXgsUGg9QXJyYXkucHJvdG90eXBlLnNsaWNlLHpoPU1hdGguUEksUmg9Mip6aCxMaD1SaC0xZS02O2llLnByb3RvdHlwZT1vZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmllLG1vdmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuXys9XCJNXCIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KStcIixcIisodGhpcy5feTA9dGhpcy5feTE9K24pfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPVwiWlwiKX0sbGluZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fKz1cIkxcIisodGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MT0rbil9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24odCxuLGUscil7dGhpcy5fKz1cIlFcIisgK3QrXCIsXCIrICtuK1wiLFwiKyh0aGlzLl94MT0rZSkrXCIsXCIrKHRoaXMuX3kxPStyKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dGhpcy5fKz1cIkNcIisgK3QrXCIsXCIrICtuK1wiLFwiKyArZStcIixcIisgK3IrXCIsXCIrKHRoaXMuX3gxPStpKStcIixcIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbih0LG4sZSxyLGkpe3Q9K3Qsbj0rbixlPStlLHI9K3IsaT0raTt2YXIgbz10aGlzLl94MSxhPXRoaXMuX3kxLHU9ZS10LGY9ci1uLGM9by10LHM9YS1uLGw9YypjK3MqcztpZihpPDApdGhyb3cgbmV3IEVycm9yKFwibmVnYXRpdmUgcmFkaXVzOiBcIitpKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz1cIk1cIisodGhpcy5feDE9dCkrXCIsXCIrKHRoaXMuX3kxPW4pO2Vsc2UgaWYobD4xZS02KWlmKE1hdGguYWJzKHMqdS1mKmMpPjFlLTYmJmkpe3ZhciBoPWUtbyxkPXItYSxwPXUqdStmKmYsdj1oKmgrZCpkLGc9TWF0aC5zcXJ0KHApLHk9TWF0aC5zcXJ0KGwpLF89aSpNYXRoLnRhbigoemgtTWF0aC5hY29zKChwK2wtdikvKDIqZyp5KSkpLzIpLGI9Xy95LG09Xy9nO01hdGguYWJzKGItMSk+MWUtNiYmKHRoaXMuXys9XCJMXCIrKHQrYipjKStcIixcIisobitiKnMpKSx0aGlzLl8rPVwiQVwiK2krXCIsXCIraStcIiwwLDAsXCIrICsocypoPmMqZCkrXCIsXCIrKHRoaXMuX3gxPXQrbSp1KStcIixcIisodGhpcy5feTE9bittKmYpfWVsc2UgdGhpcy5fKz1cIkxcIisodGhpcy5feDE9dCkrXCIsXCIrKHRoaXMuX3kxPW4pO2Vsc2U7fSxhcmM6ZnVuY3Rpb24odCxuLGUscixpLG8pe3Q9K3Qsbj0rbjt2YXIgYT0oZT0rZSkqTWF0aC5jb3MociksdT1lKk1hdGguc2luKHIpLGY9dCthLGM9bit1LHM9MV5vLGw9bz9yLWk6aS1yO2lmKGU8MCl0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiK2UpO251bGw9PT10aGlzLl94MT90aGlzLl8rPVwiTVwiK2YrXCIsXCIrYzooTWF0aC5hYnModGhpcy5feDEtZik+MWUtNnx8TWF0aC5hYnModGhpcy5feTEtYyk+MWUtNikmJih0aGlzLl8rPVwiTFwiK2YrXCIsXCIrYyksZSYmKGw8MCYmKGw9bCVSaCtSaCksbD5MaD90aGlzLl8rPVwiQVwiK2UrXCIsXCIrZStcIiwwLDEsXCIrcytcIixcIisodC1hKStcIixcIisobi11KStcIkFcIitlK1wiLFwiK2UrXCIsMCwxLFwiK3MrXCIsXCIrKHRoaXMuX3gxPWYpK1wiLFwiKyh0aGlzLl95MT1jKTpsPjFlLTYmJih0aGlzLl8rPVwiQVwiK2UrXCIsXCIrZStcIiwwLFwiKyArKGw+PXpoKStcIixcIitzK1wiLFwiKyh0aGlzLl94MT10K2UqTWF0aC5jb3MoaSkpK1wiLFwiKyh0aGlzLl95MT1uK2UqTWF0aC5zaW4oaSkpKSl9LHJlY3Q6ZnVuY3Rpb24odCxuLGUscil7dGhpcy5fKz1cIk1cIisodGhpcy5feDA9dGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MD10aGlzLl95MT0rbikrXCJoXCIrICtlK1widlwiKyArcitcImhcIistZStcIlpcIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07bGUucHJvdG90eXBlPWhlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bGUsaGFzOmZ1bmN0aW9uKHQpe3JldHVyblwiJFwiK3QgaW4gdGhpc30sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW1wiJFwiK3RdfSxzZXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpc1tcIiRcIit0XT1uLHRoaXN9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgbj1cIiRcIit0O3JldHVybiBuIGluIHRoaXMmJmRlbGV0ZSB0aGlzW25dfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKVwiJFwiPT09dFswXSYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaChuLnNsaWNlKDEpKTtyZXR1cm4gdH0sdmFsdWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0LnB1c2godGhpc1tuXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaCh7a2V5Om4uc2xpY2UoMSksdmFsdWU6dGhpc1tuXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJisrdDtyZXR1cm4gdH0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcylpZihcIiRcIj09PXRbMF0pcmV0dXJuITE7cmV0dXJuITB9LGVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0KHRoaXNbbl0sbi5zbGljZSgxKSx0aGlzKX19O3ZhciBEaD1oZS5wcm90b3R5cGU7eWUucHJvdG90eXBlPV9lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6eWUsaGFzOkRoLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQrPVwiXCIsdGhpc1tcIiRcIit0XT10LHRoaXN9LHJlbW92ZTpEaC5yZW1vdmUsY2xlYXI6RGguY2xlYXIsdmFsdWVzOkRoLmtleXMsc2l6ZTpEaC5zaXplLGVtcHR5OkRoLmVtcHR5LGVhY2g6RGguZWFjaH07dmFyIFVoPUFycmF5LnByb3RvdHlwZS5zbGljZSxxaD1bW10sW1tbMSwxLjVdLFsuNSwxXV1dLFtbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsuNSwxXV1dLFtbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWy41LDFdXSxbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLC41XSxbMSwxLjVdXV0sW1tbMSwuNV0sWy41LDFdXV0sW1tbLjUsMV0sWzEsLjVdXV0sW1tbMSwxLjVdLFsxLC41XV1dLFtbWy41LDFdLFsxLC41XV0sW1sxLjUsMV0sWzEsMS41XV1dLFtbWzEuNSwxXSxbMSwuNV1dXSxbW1suNSwxXSxbMS41LDFdXV0sW1tbMSwxLjVdLFsxLjUsMV1dXSxbW1suNSwxXSxbMSwxLjVdXV0sW11dLE9oPXt9LFloPXt9LEJoPTM0LEZoPTEwLEloPTEzLGpoPWtlKFwiLFwiKSxIaD1qaC5wYXJzZSxYaD1qaC5wYXJzZVJvd3MsR2g9amguZm9ybWF0LFZoPWpoLmZvcm1hdFJvd3MsJGg9a2UoXCJcXHRcIiksV2g9JGgucGFyc2UsWmg9JGgucGFyc2VSb3dzLFFoPSRoLmZvcm1hdCxKaD0kaC5mb3JtYXRSb3dzLEtoPUxlKEhoKSx0ZD1MZShXaCksbmQ9VWUoXCJhcHBsaWNhdGlvbi94bWxcIiksZWQ9VWUoXCJ0ZXh0L2h0bWxcIikscmQ9VWUoXCJpbWFnZS9zdmcreG1sXCIpLGlkPWplLnByb3RvdHlwZT1IZS5wcm90b3R5cGU7aWQuY29weT1mdW5jdGlvbigpe3ZhciB0LG4sZT1uZXcgSGUodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxyPXRoaXMuX3Jvb3Q7aWYoIXIpcmV0dXJuIGU7aWYoIXIubGVuZ3RoKXJldHVybiBlLl9yb290PVhlKHIpLGU7Zm9yKHQ9W3tzb3VyY2U6cix0YXJnZXQ6ZS5fcm9vdD1uZXcgQXJyYXkoNCl9XTtyPXQucG9wKCk7KWZvcih2YXIgaT0wO2k8NDsrK2kpKG49ci5zb3VyY2VbaV0pJiYobi5sZW5ndGg/dC5wdXNoKHtzb3VyY2U6bix0YXJnZXQ6ci50YXJnZXRbaV09bmV3IEFycmF5KDQpfSk6ci50YXJnZXRbaV09WGUobikpO3JldHVybiBlfSxpZC5hZGQ9ZnVuY3Rpb24odCl7dmFyIG49K3RoaXMuX3guY2FsbChudWxsLHQpLGU9K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBZZSh0aGlzLmNvdmVyKG4sZSksbixlLHQpfSxpZC5hZGRBbGw9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbz10Lmxlbmd0aCxhPW5ldyBBcnJheShvKSx1PW5ldyBBcnJheShvKSxmPTEvMCxjPTEvMCxzPS0xLzAsbD0tMS8wO2ZvcihlPTA7ZTxvOysrZSlpc05hTihyPSt0aGlzLl94LmNhbGwobnVsbCxuPXRbZV0pKXx8aXNOYU4oaT0rdGhpcy5feS5jYWxsKG51bGwsbikpfHwoYVtlXT1yLHVbZV09aSxyPGYmJihmPXIpLHI+cyYmKHM9ciksaTxjJiYoYz1pKSxpPmwmJihsPWkpKTtmb3IoczxmJiYoZj10aGlzLl94MCxzPXRoaXMuX3gxKSxsPGMmJihjPXRoaXMuX3kwLGw9dGhpcy5feTEpLHRoaXMuY292ZXIoZixjKS5jb3ZlcihzLGwpLGU9MDtlPG87KytlKVllKHRoaXMsYVtlXSx1W2VdLHRbZV0pO3JldHVybiB0aGlzfSxpZC5jb3Zlcj1mdW5jdGlvbih0LG4pe2lmKGlzTmFOKHQ9K3QpfHxpc05hTihuPStuKSlyZXR1cm4gdGhpczt2YXIgZT10aGlzLl94MCxyPXRoaXMuX3kwLGk9dGhpcy5feDEsbz10aGlzLl95MTtpZihpc05hTihlKSlpPShlPU1hdGguZmxvb3IodCkpKzEsbz0ocj1NYXRoLmZsb29yKG4pKSsxO2Vsc2V7aWYoIShlPnR8fHQ+aXx8cj5ufHxuPm8pKXJldHVybiB0aGlzO3ZhciBhLHUsZj1pLWUsYz10aGlzLl9yb290O3N3aXRjaCh1PShuPChyK28pLzIpPDwxfHQ8KGUraSkvMil7Y2FzZSAwOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixpPWUrZixvPXIrZix0Pml8fG4+byk7YnJlYWs7Y2FzZSAxOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixlPWktZixvPXIrZixlPnR8fG4+byk7YnJlYWs7Y2FzZSAyOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixpPWUrZixyPW8tZix0Pml8fHI+bik7YnJlYWs7Y2FzZSAzOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixlPWktZixyPW8tZixlPnR8fHI+bil9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1lLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1vLHRoaXN9LGlkLmRhdGE9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdChmdW5jdGlvbihuKXtpZighbi5sZW5ndGgpZG97dC5wdXNoKG4uZGF0YSl9d2hpbGUobj1uLm5leHQpfSksdH0saWQuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuY292ZXIoK3RbMF1bMF0sK3RbMF1bMV0pLmNvdmVyKCt0WzFdWzBdLCt0WzFdWzFdKTppc05hTih0aGlzLl94MCk/dm9pZCAwOltbdGhpcy5feDAsdGhpcy5feTBdLFt0aGlzLl94MSx0aGlzLl95MV1dfSxpZC5maW5kPWZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG8sYSx1LGYsYyxzPXRoaXMuX3gwLGw9dGhpcy5feTAsaD10aGlzLl94MSxkPXRoaXMuX3kxLHA9W10sdj10aGlzLl9yb290O2Zvcih2JiZwLnB1c2gobmV3IEJlKHYscyxsLGgsZCkpLG51bGw9PWU/ZT0xLzA6KHM9dC1lLGw9bi1lLGg9dCtlLGQ9bitlLGUqPWUpO2Y9cC5wb3AoKTspaWYoISghKHY9Zi5ub2RlKXx8KGk9Zi54MCk+aHx8KG89Zi55MCk+ZHx8KGE9Zi54MSk8c3x8KHU9Zi55MSk8bCkpaWYodi5sZW5ndGgpe3ZhciBnPShpK2EpLzIseT0obyt1KS8yO3AucHVzaChuZXcgQmUodlszXSxnLHksYSx1KSxuZXcgQmUodlsyXSxpLHksZyx1KSxuZXcgQmUodlsxXSxnLG8sYSx5KSxuZXcgQmUodlswXSxpLG8sZyx5KSksKGM9KG4+PXkpPDwxfHQ+PWcpJiYoZj1wW3AubGVuZ3RoLTFdLHBbcC5sZW5ndGgtMV09cFtwLmxlbmd0aC0xLWNdLHBbcC5sZW5ndGgtMS1jXT1mKX1lbHNle3ZhciBfPXQtK3RoaXMuX3guY2FsbChudWxsLHYuZGF0YSksYj1uLSt0aGlzLl95LmNhbGwobnVsbCx2LmRhdGEpLG09XypfK2IqYjtpZihtPGUpe3ZhciB4PU1hdGguc3FydChlPW0pO3M9dC14LGw9bi14LGg9dCt4LGQ9bit4LHI9di5kYXRhfX1yZXR1cm4gcn0saWQucmVtb3ZlPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKG89K3RoaXMuX3guY2FsbChudWxsLHQpKXx8aXNOYU4oYT0rdGhpcy5feS5jYWxsKG51bGwsdCkpKXJldHVybiB0aGlzO3ZhciBuLGUscixpLG8sYSx1LGYsYyxzLGwsaCxkPXRoaXMuX3Jvb3QscD10aGlzLl94MCx2PXRoaXMuX3kwLGc9dGhpcy5feDEseT10aGlzLl95MTtpZighZClyZXR1cm4gdGhpcztpZihkLmxlbmd0aClmb3IoOzspe2lmKChjPW8+PSh1PShwK2cpLzIpKT9wPXU6Zz11LChzPWE+PShmPSh2K3kpLzIpKT92PWY6eT1mLG49ZCwhKGQ9ZFtsPXM8PDF8Y10pKXJldHVybiB0aGlzO2lmKCFkLmxlbmd0aClicmVhazsobltsKzEmM118fG5bbCsyJjNdfHxuW2wrMyYzXSkmJihlPW4saD1sKX1mb3IoO2QuZGF0YSE9PXQ7KWlmKHI9ZCwhKGQ9ZC5uZXh0KSlyZXR1cm4gdGhpcztyZXR1cm4oaT1kLm5leHQpJiZkZWxldGUgZC5uZXh0LHI/KGk/ci5uZXh0PWk6ZGVsZXRlIHIubmV4dCx0aGlzKTpuPyhpP25bbF09aTpkZWxldGUgbltsXSwoZD1uWzBdfHxuWzFdfHxuWzJdfHxuWzNdKSYmZD09PShuWzNdfHxuWzJdfHxuWzFdfHxuWzBdKSYmIWQubGVuZ3RoJiYoZT9lW2hdPWQ6dGhpcy5fcm9vdD1kKSx0aGlzKToodGhpcy5fcm9vdD1pLHRoaXMpfSxpZC5yZW1vdmVBbGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKXRoaXMucmVtb3ZlKHRbbl0pO3JldHVybiB0aGlzfSxpZC5yb290PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3R9LGlkLnNpemU9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClkb3srK3R9d2hpbGUobj1uLm5leHQpfSksdH0saWQudmlzaXQ9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbyxhLHU9W10sZj10aGlzLl9yb290O2ZvcihmJiZ1LnB1c2gobmV3IEJlKGYsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtuPXUucG9wKCk7KWlmKCF0KGY9bi5ub2RlLHI9bi54MCxpPW4ueTAsbz1uLngxLGE9bi55MSkmJmYubGVuZ3RoKXt2YXIgYz0ocitvKS8yLHM9KGkrYSkvMjsoZT1mWzNdKSYmdS5wdXNoKG5ldyBCZShlLGMscyxvLGEpKSwoZT1mWzJdKSYmdS5wdXNoKG5ldyBCZShlLHIscyxjLGEpKSwoZT1mWzFdKSYmdS5wdXNoKG5ldyBCZShlLGMsaSxvLHMpKSwoZT1mWzBdKSYmdS5wdXNoKG5ldyBCZShlLHIsaSxjLHMpKX1yZXR1cm4gdGhpc30saWQudmlzaXRBZnRlcj1mdW5jdGlvbih0KXt2YXIgbixlPVtdLHI9W107Zm9yKHRoaXMuX3Jvb3QmJmUucHVzaChuZXcgQmUodGhpcy5fcm9vdCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249ZS5wb3AoKTspe3ZhciBpPW4ubm9kZTtpZihpLmxlbmd0aCl7dmFyIG8sYT1uLngwLHU9bi55MCxmPW4ueDEsYz1uLnkxLHM9KGErZikvMixsPSh1K2MpLzI7KG89aVswXSkmJmUucHVzaChuZXcgQmUobyxhLHUscyxsKSksKG89aVsxXSkmJmUucHVzaChuZXcgQmUobyxzLHUsZixsKSksKG89aVsyXSkmJmUucHVzaChuZXcgQmUobyxhLGwscyxjKSksKG89aVszXSkmJmUucHVzaChuZXcgQmUobyxzLGwsZixjKSl9ci5wdXNoKG4pfWZvcig7bj1yLnBvcCgpOyl0KG4ubm9kZSxuLngwLG4ueTAsbi54MSxuLnkxKTtyZXR1cm4gdGhpc30saWQueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD10LHRoaXMpOnRoaXMuX3h9LGlkLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3k9dCx0aGlzKTp0aGlzLl95fTt2YXIgb2Q9MTAsYWQ9TWF0aC5QSSooMy1NYXRoLnNxcnQoNSkpLHVkPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcXC1cXCggXSk/KFskI10pPygwKT8oXFxkKyk/KCwpPyhcXC5cXGQrKT8ofik/KFthLXolXSk/JC9pO3RyLnByb3RvdHlwZT1uci5wcm90b3R5cGUsbnIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvP1wiMFwiOlwiXCIpKyhudWxsPT10aGlzLndpZHRoP1wiXCI6TWF0aC5tYXgoMSwwfHRoaXMud2lkdGgpKSsodGhpcy5jb21tYT9cIixcIjpcIlwiKSsobnVsbD09dGhpcy5wcmVjaXNpb24/XCJcIjpcIi5cIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltP1wiflwiOlwiXCIpK3RoaXMudHlwZX07dmFyIGZkLGNkLHNkPXtcIiVcIjpmdW5jdGlvbih0LG4pe3JldHVybigxMDAqdCkudG9GaXhlZChuKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCtcIlwifSxkOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvRXhwb25lbnRpYWwobil9LGY6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b0ZpeGVkKG4pfSxnOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9QcmVjaXNpb24obil9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZXIoMTAwKnQsbil9LHI6ZXIsczpmdW5jdGlvbih0LG4pe3ZhciBlPUplKHQsbik7aWYoIWUpcmV0dXJuIHQrXCJcIjt2YXIgcj1lWzBdLGk9ZVsxXSxvPWktKGZkPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKGkvMykpKSkrMSxhPXIubGVuZ3RoO3JldHVybiBvPT09YT9yOm8+YT9yK25ldyBBcnJheShvLWErMSkuam9pbihcIjBcIik6bz4wP3Iuc2xpY2UoMCxvKStcIi5cIityLnNsaWNlKG8pOlwiMC5cIituZXcgQXJyYXkoMS1vKS5qb2luKFwiMFwiKStKZSh0LE1hdGgubWF4KDAsbitvLTEpKVswXX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNil9fSxsZD1bXCJ5XCIsXCJ6XCIsXCJhXCIsXCJmXCIsXCJwXCIsXCJuXCIsXCLCtVwiLFwibVwiLFwiXCIsXCJrXCIsXCJNXCIsXCJHXCIsXCJUXCIsXCJQXCIsXCJFXCIsXCJaXCIsXCJZXCJdO29yKHtkZWNpbWFsOlwiLlwiLHRob3VzYW5kczpcIixcIixncm91cGluZzpbM10sY3VycmVuY3k6W1wiJFwiLFwiXCJdfSksc3IucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzcixyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sYWRkOmZ1bmN0aW9uKHQpe2xyKGpkLHQsdGhpcy50KSxscih0aGlzLGpkLnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1qZC50OnRoaXMucz1qZC50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBoZCxkZCxwZCx2ZCxnZCx5ZCxfZCxiZCxtZCx4ZCx3ZCxNZCxBZCxUZCxOZCxTZCxFZCxrZCxDZCxQZCx6ZCxSZCxMZCxEZCxVZCxxZCxPZCxZZCxCZCxGZCxJZCxqZD1uZXcgc3IsSGQ9MWUtNixYZD0xZS0xMixHZD1NYXRoLlBJLFZkPUdkLzIsJGQ9R2QvNCxXZD0yKkdkLFpkPTE4MC9HZCxRZD1HZC8xODAsSmQ9TWF0aC5hYnMsS2Q9TWF0aC5hdGFuLHRwPU1hdGguYXRhbjIsbnA9TWF0aC5jb3MsZXA9TWF0aC5jZWlsLHJwPU1hdGguZXhwLGlwPU1hdGgubG9nLG9wPU1hdGgucG93LGFwPU1hdGguc2luLHVwPU1hdGguc2lnbnx8ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfSxmcD1NYXRoLnNxcnQsY3A9TWF0aC50YW4sc3A9e0ZlYXR1cmU6ZnVuY3Rpb24odCxuKXtncih0Lmdlb21ldHJ5LG4pfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmZlYXR1cmVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspZ3IoZVtyXS5nZW9tZXRyeSxuKX19LGxwPXtTcGhlcmU6ZnVuY3Rpb24odCxuKXtuLnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbih0LG4pe3Q9dC5jb29yZGluYXRlcyxuLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspdD1lW3JdLG4ucG9pbnQodFswXSx0WzFdLHRbMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7eXIodC5jb29yZGluYXRlcyxuLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KXlyKGVbcl0sbiwwKX0sUG9seWdvbjpmdW5jdGlvbih0LG4pe19yKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspX3IoZVtyXSxuKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZ2VvbWV0cmllcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWdyKGVbcl0sbil9fSxocD1jcigpLGRwPWNyKCkscHA9e3BvaW50OnZyLGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2hwLnJlc2V0KCkscHAubGluZVN0YXJ0PW1yLHBwLmxpbmVFbmQ9eHJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgdD0raHA7ZHAuYWRkKHQ8MD9XZCt0OnQpLHRoaXMubGluZVN0YXJ0PXRoaXMubGluZUVuZD10aGlzLnBvaW50PXZyfSxzcGhlcmU6ZnVuY3Rpb24oKXtkcC5hZGQoV2QpfX0sdnA9Y3IoKSxncD17cG9pbnQ6UHIsbGluZVN0YXJ0OlJyLGxpbmVFbmQ6THIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Z3AucG9pbnQ9RHIsZ3AubGluZVN0YXJ0PVVyLGdwLmxpbmVFbmQ9cXIsdnAucmVzZXQoKSxwcC5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3BwLnBvbHlnb25FbmQoKSxncC5wb2ludD1QcixncC5saW5lU3RhcnQ9UnIsZ3AubGluZUVuZD1McixocDwwPyh5ZD0tKGJkPTE4MCksX2Q9LShtZD05MCkpOnZwPkhkP21kPTkwOnZwPC1IZCYmKF9kPS05MCksTmRbMF09eWQsTmRbMV09YmR9fSx5cD17c3BoZXJlOnZyLHBvaW50OkZyLGxpbmVTdGFydDpqcixsaW5lRW5kOkdyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3lwLmxpbmVTdGFydD1Wcix5cC5saW5lRW5kPSRyfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7eXAubGluZVN0YXJ0PWpyLHlwLmxpbmVFbmQ9R3J9fTtLci5pbnZlcnQ9S3I7dmFyIF9wLGJwLG1wLHhwLHdwLE1wLEFwLFRwLE5wLFNwLEVwLGtwPWNyKCksQ3A9ZGkoZnVuY3Rpb24oKXtyZXR1cm4hMH0sZnVuY3Rpb24odCl7dmFyIG4sZT1OYU4scj1OYU4saT1OYU47cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3QubGluZVN0YXJ0KCksbj0xfSxwb2ludDpmdW5jdGlvbihvLGEpe3ZhciB1PW8+MD9HZDotR2QsZj1KZChvLWUpO0pkKGYtR2QpPEhkPyh0LnBvaW50KGUscj0ocithKS8yPjA/VmQ6LVZkKSx0LnBvaW50KGksciksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsciksdC5wb2ludChvLHIpLG49MCk6aSE9PXUmJmY+PUdkJiYoSmQoZS1pKTxIZCYmKGUtPWkqSGQpLEpkKG8tdSk8SGQmJihvLT11KkhkKSxyPWZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpLG8sYT1hcCh0LWUpO3JldHVybiBKZChhKT5IZD9LZCgoYXAobikqKG89bnAocikpKmFwKGUpLWFwKHIpKihpPW5wKG4pKSphcCh0KSkvKGkqbyphKSk6KG4rcikvMn0oZSxyLG8sYSksdC5wb2ludChpLHIpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh1LHIpLG49MCksdC5wb2ludChlPW8scj1hKSxpPXV9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxlPXI9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLW59fX0sZnVuY3Rpb24odCxuLGUscil7dmFyIGk7aWYobnVsbD09dClpPWUqVmQsci5wb2ludCgtR2QsaSksci5wb2ludCgwLGkpLHIucG9pbnQoR2QsaSksci5wb2ludChHZCwwKSxyLnBvaW50KEdkLC1pKSxyLnBvaW50KDAsLWkpLHIucG9pbnQoLUdkLC1pKSxyLnBvaW50KC1HZCwwKSxyLnBvaW50KC1HZCxpKTtlbHNlIGlmKEpkKHRbMF0tblswXSk+SGQpe3ZhciBvPXRbMF08blswXT9HZDotR2Q7aT1lKm8vMixyLnBvaW50KC1vLGkpLHIucG9pbnQoMCxpKSxyLnBvaW50KG8saSl9ZWxzZSByLnBvaW50KG5bMF0sblsxXSl9LFstR2QsLVZkXSksUHA9MWU5LHpwPS1QcCxScD1jcigpLExwPXtzcGhlcmU6dnIscG9pbnQ6dnIsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7THAucG9pbnQ9YmksTHAubGluZUVuZD1faX0sbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6dnIscG9seWdvbkVuZDp2cn0sRHA9W251bGwsbnVsbF0sVXA9e3R5cGU6XCJMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6RHB9LHFwPXtGZWF0dXJlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIE1pKHQuZ2VvbWV0cnksbil9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZmVhdHVyZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihNaShlW3JdLmdlb21ldHJ5LG4pKXJldHVybiEwO3JldHVybiExfX0sT3A9e1NwaGVyZTpmdW5jdGlvbigpe3JldHVybiEwfSxQb2ludDpmdW5jdGlvbih0LG4pe3JldHVybiBBaSh0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihBaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7cmV0dXJuIFRpKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoVGkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sUG9seWdvbjpmdW5jdGlvbih0LG4pe3JldHVybiBOaSh0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE5pKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10Lmdlb21ldHJpZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihNaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfX0sWXA9Y3IoKSxCcD1jcigpLEZwPXtwb2ludDp2cixsaW5lU3RhcnQ6dnIsbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtGcC5saW5lU3RhcnQ9UmksRnAubGluZUVuZD1VaX0scG9seWdvbkVuZDpmdW5jdGlvbigpe0ZwLmxpbmVTdGFydD1GcC5saW5lRW5kPUZwLnBvaW50PXZyLFlwLmFkZChKZChCcCkpLEJwLnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVlwLzI7cmV0dXJuIFlwLnJlc2V0KCksdH19LElwPTEvMCxqcD1JcCxIcD0tSXAsWHA9SHAsR3A9e3BvaW50OmZ1bmN0aW9uKHQsbil7dDxJcCYmKElwPXQpLHQ+SHAmJihIcD10KSxuPGpwJiYoanA9biksbj5YcCYmKFhwPW4pfSxsaW5lU3RhcnQ6dnIsbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6dnIscG9seWdvbkVuZDp2cixyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1bW0lwLGpwXSxbSHAsWHBdXTtyZXR1cm4gSHA9WHA9LShqcD1JcD0xLzApLHR9fSxWcD0wLCRwPTAsV3A9MCxacD0wLFFwPTAsSnA9MCxLcD0wLHR2PTAsbnY9MCxldj17cG9pbnQ6cWksbGluZVN0YXJ0Ok9pLGxpbmVFbmQ6RmkscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7ZXYubGluZVN0YXJ0PUlpLGV2LmxpbmVFbmQ9aml9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtldi5wb2ludD1xaSxldi5saW5lU3RhcnQ9T2ksZXYubGluZUVuZD1GaX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9bnY/W0twL252LHR2L252XTpKcD9bWnAvSnAsUXAvSnBdOldwP1tWcC9XcCwkcC9XcF06W05hTixOYU5dO3JldHVybiBWcD0kcD1XcD1acD1RcD1KcD1LcD10dj1udj0wLHR9fTtHaS5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yYWRpdXM9dCx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA9PT10aGlzLl9saW5lJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX2NvbnRleHQubGluZVRvKHQsbik7YnJlYWs7ZGVmYXVsdDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0K3RoaXMuX3JhZGl1cyxuKSx0aGlzLl9jb250ZXh0LmFyYyh0LG4sdGhpcy5fcmFkaXVzLDAsV2QpfX0scmVzdWx0OnZyfTt2YXIgcnYsaXYsb3YsYXYsdXYsZnY9Y3IoKSxjdj17cG9pbnQ6dnIsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Y3YucG9pbnQ9Vml9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtydiYmJGkoaXYsb3YpLGN2LnBvaW50PXZyfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtydj0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3J2PW51bGx9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PStmdjtyZXR1cm4gZnYucmVzZXQoKSx0fX07V2kucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxfY2lyY2xlOlppKDQuNSkscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpIT09dGhpcy5fcmFkaXVzJiYodGhpcy5fcmFkaXVzPXQsdGhpcy5fY2lyY2xlPW51bGwpLHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX3N0cmluZy5wdXNoKFwiWlwiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goXCJNXCIsdCxcIixcIixuKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9zdHJpbmcucHVzaChcIkxcIix0LFwiLFwiLG4pO2JyZWFrO2RlZmF1bHQ6bnVsbD09dGhpcy5fY2lyY2xlJiYodGhpcy5fY2lyY2xlPVppKHRoaXMuX3JhZGl1cykpLHRoaXMuX3N0cmluZy5wdXNoKFwiTVwiLHQsXCIsXCIsbix0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oXCJcIik7cmV0dXJuIHRoaXMuX3N0cmluZz1bXSx0fXJldHVybiBudWxsfX0sSmkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpKaSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuc3RyZWFtLnBvaW50KHQsbil9LHNwaGVyZTpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uRW5kKCl9fTt2YXIgc3Y9MTYsbHY9bnAoMzAqUWQpLGh2PVFpKHtwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuc3RyZWFtLnBvaW50KHQqUWQsbipRZCl9fSksZHY9aG8oZnVuY3Rpb24odCl7cmV0dXJuIGZwKDIvKDErdCkpfSk7ZHYuaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiAyKmRyKHQvMil9KTt2YXIgcHY9aG8oZnVuY3Rpb24odCl7cmV0dXJuKHQ9aHIodCkpJiZ0L2FwKHQpfSk7cHYuaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiB0fSksdm8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QsMipLZChycChuKSktVmRdfSxiby5pbnZlcnQ9Ym8seG8uaW52ZXJ0PXBvKEtkKSxNby5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZSxyPW4saT0yNTtkb3t2YXIgbz1yKnIsYT1vKm87ci09ZT0ociooMS4wMDcyMjYrbyooLjAxNTA4NSthKiguMDI4ODc0Km8tLjA0NDQ3NS0uMDA1OTE2KmEpKSktbikvKDEuMDA3MjI2K28qKC4wNDUyNTUrYSooLjI1OTg2NipvLS4zMTEzMjUtLjAwNTkxNioxMSphKSkpfXdoaWxlKEpkKGUpPkhkJiYtLWk+MCk7cmV0dXJuW3QvKC44NzA3KyhvPXIqcikqKG8qKG8qbypvKiguMDAzOTcxLS4wMDE1MjkqbyktLjAxMzc5MSktLjEzMTk3OSkpLHJdfSxBby5pbnZlcnQ9cG8oZHIpLFRvLmludmVydD1wbyhmdW5jdGlvbih0KXtyZXR1cm4gMipLZCh0KX0pLE5vLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVyblstbiwyKktkKHJwKHQpKS1WZF19LERvLnByb3RvdHlwZT1Qby5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkRvLGNvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKENvKX0sZWFjaDpmdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvPXRoaXMsYT1bb107ZG97Zm9yKG49YS5yZXZlcnNlKCksYT1bXTtvPW4ucG9wKCk7KWlmKHQobyksZT1vLmNoaWxkcmVuKWZvcihyPTAsaT1lLmxlbmd0aDtyPGk7KytyKWEucHVzaChlW3JdKX13aGlsZShhLmxlbmd0aCk7cmV0dXJuIHRoaXN9LGVhY2hBZnRlcjpmdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyLGk9dGhpcyxvPVtpXSxhPVtdO2k9by5wb3AoKTspaWYoYS5wdXNoKGkpLG49aS5jaGlsZHJlbilmb3IoZT0wLHI9bi5sZW5ndGg7ZTxyOysrZSlvLnB1c2gobltlXSk7Zm9yKDtpPWEucG9wKCk7KXQoaSk7cmV0dXJuIHRoaXN9LGVhY2hCZWZvcmU6ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj10aGlzLGk9W3JdO3I9aS5wb3AoKTspaWYodChyKSxuPXIuY2hpbGRyZW4pZm9yKGU9bi5sZW5ndGgtMTtlPj0wOy0tZSlpLnB1c2gobltlXSk7cmV0dXJuIHRoaXN9LHN1bTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoZnVuY3Rpb24obil7Zm9yKHZhciBlPSt0KG4uZGF0YSl8fDAscj1uLmNoaWxkcmVuLGk9ciYmci5sZW5ndGg7LS1pPj0wOyllKz1yW2ldLnZhbHVlO24udmFsdWU9ZX0pfSxzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24obil7bi5jaGlsZHJlbiYmbi5jaGlsZHJlbi5zb3J0KHQpfSl9LHBhdGg6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMsZT1mdW5jdGlvbih0LG4pe2lmKHQ9PT1uKXJldHVybiB0O3ZhciBlPXQuYW5jZXN0b3JzKCkscj1uLmFuY2VzdG9ycygpLGk9bnVsbDtmb3IodD1lLnBvcCgpLG49ci5wb3AoKTt0PT09bjspaT10LHQ9ZS5wb3AoKSxuPXIucG9wKCk7cmV0dXJuIGl9KG4sdCkscj1bbl07biE9PWU7KW49bi5wYXJlbnQsci5wdXNoKG4pO2Zvcih2YXIgaT1yLmxlbmd0aDt0IT09ZTspci5zcGxpY2UoaSwwLHQpLHQ9dC5wYXJlbnQ7cmV0dXJuIHJ9LGFuY2VzdG9yczpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLG49W3RdO3Q9dC5wYXJlbnQ7KW4ucHVzaCh0KTtyZXR1cm4gbn0sZGVzY2VuZGFudHM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3QucHVzaChuKX0pLHR9LGxlYXZlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24obil7bi5jaGlsZHJlbnx8dC5wdXNoKG4pfSksdH0sbGlua3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49W107cmV0dXJuIHQuZWFjaChmdW5jdGlvbihlKXtlIT09dCYmbi5wdXNoKHtzb3VyY2U6ZS5wYXJlbnQsdGFyZ2V0OmV9KX0pLG59LGNvcHk6ZnVuY3Rpb24oKXtyZXR1cm4gUG8odGhpcykuZWFjaEJlZm9yZShSbyl9fTt2YXIgdnY9QXJyYXkucHJvdG90eXBlLnNsaWNlLGd2PVwiJFwiLHl2PXtkZXB0aDotMX0sX3Y9e307Y2EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRG8ucHJvdG90eXBlKTt2YXIgYnY9KDErTWF0aC5zcXJ0KDUpKS8yLG12PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUscixpLG8pe2xhKG4sdCxlLHIsaSxvKX1yZXR1cm4gZS5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gdCgobj0rbik+MT9uOjEpfSxlfShidikseHY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSxyLGksbyl7aWYoKGE9dC5fc3F1YXJpZnkpJiZhLnJhdGlvPT09bilmb3IodmFyIGEsdSxmLGMscyxsPS0xLGg9YS5sZW5ndGgsZD10LnZhbHVlOysrbDxoOyl7Zm9yKGY9KHU9YVtsXSkuY2hpbGRyZW4sYz11LnZhbHVlPTAscz1mLmxlbmd0aDtjPHM7KytjKXUudmFsdWUrPWZbY10udmFsdWU7dS5kaWNlP25hKHUsZSxyLGkscis9KG8tcikqdS52YWx1ZS9kKTpzYSh1LGUscixlKz0oaS1lKSp1LnZhbHVlL2QsbyksZC09dS52YWx1ZX1lbHNlIHQuX3NxdWFyaWZ5PWE9bGEobix0LGUscixpLG8pLGEucmF0aW89bn1yZXR1cm4gZS5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gdCgobj0rbik+MT9uOjEpfSxlfShidiksd3Y9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHQ9bnVsbD09dD8wOit0LGU9bnVsbD09ZT8xOitlLDE9PT1hcmd1bWVudHMubGVuZ3RoPyhlPXQsdD0wKTplLT10LGZ1bmN0aW9uKCl7cmV0dXJuIG4oKSplK3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxNdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlKXt2YXIgcixpO3JldHVybiB0PW51bGw9PXQ/MDordCxlPW51bGw9PWU/MTorZSxmdW5jdGlvbigpe3ZhciBvO2lmKG51bGwhPXIpbz1yLHI9bnVsbDtlbHNlIGRve3I9MipuKCktMSxvPTIqbigpLTEsaT1yKnIrbypvfXdoaWxlKCFpfHxpPjEpO3JldHVybiB0K2UqbypNYXRoLnNxcnQoLTIqTWF0aC5sb2coaSkvaSl9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxBdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUoKXt2YXIgdD1Ndi5zb3VyY2UobikuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksVHY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT0wLHI9MDtyPHQ7KytyKWUrPW4oKTtyZXR1cm4gZX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLE52PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXt2YXIgZT1Udi5zb3VyY2UobikodCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUoKS90fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksU3Y9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLW4oKSkvdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLEV2PUFycmF5LnByb3RvdHlwZSxrdj1Fdi5tYXAsQ3Y9RXYuc2xpY2UsUHY9e25hbWU6XCJpbXBsaWNpdFwifSx6dj1bMCwxXSxSdj1uZXcgRGF0ZSxMdj1uZXcgRGF0ZSxEdj1JYShmdW5jdGlvbigpe30sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4tdH0pO0R2LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/SWEoZnVuY3Rpb24obil7bi5zZXRUaW1lKE1hdGguZmxvb3Iobi90KSp0KX0sZnVuY3Rpb24obixlKXtuLnNldFRpbWUoK24rZSp0KX0sZnVuY3Rpb24obixlKXtyZXR1cm4oZS1uKS90fSk6RHY6bnVsbH07dmFyIFV2PUR2LnJhbmdlLHF2PTZlNCxPdj02MDQ4ZTUsWXY9SWEoZnVuY3Rpb24odCl7dC5zZXRUaW1lKDFlMypNYXRoLmZsb29yKHQvMWUzKSl9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzFlMypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8xZTN9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pLEJ2PVl2LnJhbmdlLEZ2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvcXYpKnF2KX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbipxdil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvcXZ9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pLEl2PUZ2LnJhbmdlLGp2PUlhKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSpxdiUzNmU1O248MCYmKG4rPTM2ZTUpLHQuc2V0VGltZSgzNmU1Kk1hdGguZmxvb3IoKCt0LW4pLzM2ZTUpK24pfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCszNmU1Km4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzM2ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSxIdj1qdi5yYW5nZSxYdj1JYShmdW5jdGlvbih0KXt0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0RGF0ZSh0LmdldERhdGUoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10LShuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpxdikvODY0ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKS0xfSksR3Y9WHYucmFuZ2UsVnY9amEoMCksJHY9amEoMSksV3Y9amEoMiksWnY9amEoMyksUXY9amEoNCksSnY9amEoNSksS3Y9amEoNiksdGc9VnYucmFuZ2Usbmc9JHYucmFuZ2UsZWc9V3YucmFuZ2Uscmc9WnYucmFuZ2UsaWc9UXYucmFuZ2Usb2c9SnYucmFuZ2UsYWc9S3YucmFuZ2UsdWc9SWEoZnVuY3Rpb24odCl7dC5zZXREYXRlKDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKG4uZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpfSksZmc9dWcucmFuZ2UsY2c9SWEoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KTtjZy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0lhKGZ1bmN0aW9uKG4pe24uc2V0RnVsbFllYXIoTWF0aC5mbG9vcihuLmdldEZ1bGxZZWFyKCkvdCkqdCksbi5zZXRNb250aCgwLDEpLG4uc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrZSp0KX0pOm51bGx9O3ZhciBzZz1jZy5yYW5nZSxsZz1JYShmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbipxdil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvcXZ9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pLGhnPWxnLnJhbmdlLGRnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTWludXRlcygwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzM2ZTUqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMzZlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDSG91cnMoKX0pLHBnPWRnLnJhbmdlLHZnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzg2NGU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pLGdnPXZnLnJhbmdlLHlnPUhhKDApLF9nPUhhKDEpLGJnPUhhKDIpLG1nPUhhKDMpLHhnPUhhKDQpLHdnPUhhKDUpLE1nPUhhKDYpLEFnPXlnLnJhbmdlLFRnPV9nLnJhbmdlLE5nPWJnLnJhbmdlLFNnPW1nLnJhbmdlLEVnPXhnLnJhbmdlLGtnPXdnLnJhbmdlLENnPU1nLnJhbmdlLFBnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSgxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDTW9udGgodC5nZXRVVENNb250aCgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldFVUQ01vbnRoKCktdC5nZXRVVENNb250aCgpKzEyKihuLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX0pLHpnPVBnLnJhbmdlLFJnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSk7UmcuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9JYShmdW5jdGlvbihuKXtuLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3Iobi5nZXRVVENGdWxsWWVhcigpL3QpKnQpLG4uc2V0VVRDTW9udGgoMCwxKSxuLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLGUpe24uc2V0VVRDRnVsbFllYXIobi5nZXRVVENGdWxsWWVhcigpK2UqdCl9KTpudWxsfTt2YXIgTGcsRGc9UmcucmFuZ2UsVWc9e1wiLVwiOlwiXCIsXzpcIiBcIiwwOlwiMFwifSxxZz0vXlxccypcXGQrLyxPZz0vXiUvLFlnPS9bXFxcXF4kKis/fFtcXF0oKS57fV0vZztuZih7ZGF0ZVRpbWU6XCIleCwgJVhcIixkYXRlOlwiJS1tLyUtZC8lWVwiLHRpbWU6XCIlLUk6JU06JVMgJXBcIixwZXJpb2RzOltcIkFNXCIsXCJQTVwiXSxkYXlzOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdLHNob3J0RGF5czpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbW9udGhzOltcIkphbnVhcnlcIixcIkZlYnJ1YXJ5XCIsXCJNYXJjaFwiLFwiQXByaWxcIixcIk1heVwiLFwiSnVuZVwiLFwiSnVseVwiLFwiQXVndXN0XCIsXCJTZXB0ZW1iZXJcIixcIk9jdG9iZXJcIixcIk5vdmVtYmVyXCIsXCJEZWNlbWJlclwiXSxzaG9ydE1vbnRoczpbXCJKYW5cIixcIkZlYlwiLFwiTWFyXCIsXCJBcHJcIixcIk1heVwiLFwiSnVuXCIsXCJKdWxcIixcIkF1Z1wiLFwiU2VwXCIsXCJPY3RcIixcIk5vdlwiLFwiRGVjXCJdfSk7dmFyIEJnPVwiJVktJW0tJWRUJUg6JU06JVMuJUxaXCIsRmc9RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc/ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX06dC51dGNGb3JtYXQoQmcpLElnPStuZXcgRGF0ZShcIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWlwiKT9mdW5jdGlvbih0KXt2YXIgbj1uZXcgRGF0ZSh0KTtyZXR1cm4gaXNOYU4obik/bnVsbDpufTp0LnV0Y1BhcnNlKEJnKSxqZz0xZTMsSGc9NjAqamcsWGc9NjAqSGcsR2c9MjQqWGcsVmc9NypHZywkZz0zMCpHZyxXZz0zNjUqR2csWmc9ZmYoXCIxZjc3YjRmZjdmMGUyY2EwMmNkNjI3Mjg5NDY3YmQ4YzU2NGJlMzc3YzI3ZjdmN2ZiY2JkMjIxN2JlY2ZcIiksUWc9ZmYoXCI3ZmM5N2ZiZWFlZDRmZGMwODZmZmZmOTkzODZjYjBmMDAyN2ZiZjViMTc2NjY2NjZcIiksSmc9ZmYoXCIxYjllNzdkOTVmMDI3NTcwYjNlNzI5OGE2NmE2MWVlNmFiMDJhNjc2MWQ2NjY2NjZcIiksS2c9ZmYoXCJhNmNlZTMxZjc4YjRiMmRmOGEzM2EwMmNmYjlhOTllMzFhMWNmZGJmNmZmZjdmMDBjYWIyZDY2YTNkOWFmZmZmOTliMTU5MjhcIiksdHk9ZmYoXCJmYmI0YWViM2NkZTNjY2ViYzVkZWNiZTRmZWQ5YTZmZmZmY2NlNWQ4YmRmZGRhZWNmMmYyZjJcIiksbnk9ZmYoXCJiM2UyY2RmZGNkYWNjYmQ1ZThmNGNhZTRlNmY1YzlmZmYyYWVmMWUyY2NjY2NjY2NcIiksZXk9ZmYoXCJlNDFhMWMzNzdlYjg0ZGFmNGE5ODRlYTNmZjdmMDBmZmZmMzNhNjU2MjhmNzgxYmY5OTk5OTlcIikscnk9ZmYoXCI2NmMyYTVmYzhkNjI4ZGEwY2JlNzhhYzNhNmQ4NTRmZmQ5MmZlNWM0OTRiM2IzYjNcIiksaXk9ZmYoXCI4ZGQzYzdmZmZmYjNiZWJhZGFmYjgwNzI4MGIxZDNmZGI0NjJiM2RlNjlmY2NkZTVkOWQ5ZDliYzgwYmRjY2ViYzVmZmVkNmZcIiksb3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImQ4YjM2NWY1ZjVmNTVhYjRhY1wiLFwiYTY2MTFhZGZjMjdkODBjZGMxMDE4NTcxXCIsXCJhNjYxMWFkZmMyN2RmNWY1ZjU4MGNkYzEwMTg1NzFcIixcIjhjNTEwYWQ4YjM2NWY2ZThjM2M3ZWFlNTVhYjRhYzAxNjY1ZVwiLFwiOGM1MTBhZDhiMzY1ZjZlOGMzZjVmNWY1YzdlYWU1NWFiNGFjMDE2NjVlXCIsXCI4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWVcIixcIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZVwiLFwiNTQzMDA1OGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzYzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlMDAzYzMwXCIsXCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNmNWY1ZjVjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzBcIikubWFwKGZmKSxheT1jZihveSksdXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImFmOGRjM2Y3ZjdmNzdmYmY3YlwiLFwiN2IzMjk0YzJhNWNmYTZkYmEwMDA4ODM3XCIsXCI3YjMyOTRjMmE1Y2ZmN2Y3ZjdhNmRiYTAwMDg4MzdcIixcIjc2MmE4M2FmOGRjM2U3ZDRlOGQ5ZjBkMzdmYmY3YjFiNzgzN1wiLFwiNzYyYTgzYWY4ZGMzZTdkNGU4ZjdmN2Y3ZDlmMGQzN2ZiZjdiMWI3ODM3XCIsXCI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzdcIixcIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzN1wiLFwiNDAwMDRiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3MDA0NDFiXCIsXCI0MDAwNGI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThmN2Y3ZjdkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzcwMDQ0MWJcIikubWFwKGZmKSxmeT1jZih1eSksY3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImU5YTNjOWY3ZjdmN2ExZDc2YVwiLFwiZDAxYzhiZjFiNmRhYjhlMTg2NGRhYzI2XCIsXCJkMDFjOGJmMWI2ZGFmN2Y3ZjdiOGUxODY0ZGFjMjZcIixcImM1MWI3ZGU5YTNjOWZkZTBlZmU2ZjVkMGExZDc2YTRkOTIyMVwiLFwiYzUxYjdkZTlhM2M5ZmRlMGVmZjdmN2Y3ZTZmNWQwYTFkNzZhNGQ5MjIxXCIsXCJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjFcIixcImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMVwiLFwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5XCIsXCI4ZTAxNTJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZmN2Y3ZjdlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjEyNzY0MTlcIikubWFwKGZmKSxzeT1jZihjeSksbHk9bmV3IEFycmF5KDMpLmNvbmNhdChcIjk5OGVjM2Y3ZjdmN2YxYTM0MFwiLFwiNWUzYzk5YjJhYmQyZmRiODYzZTY2MTAxXCIsXCI1ZTNjOTliMmFiZDJmN2Y3ZjdmZGI4NjNlNjYxMDFcIixcIjU0Mjc4ODk5OGVjM2Q4ZGFlYmZlZTBiNmYxYTM0MGIzNTgwNlwiLFwiNTQyNzg4OTk4ZWMzZDhkYWViZjdmN2Y3ZmVlMGI2ZjFhMzQwYjM1ODA2XCIsXCI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDZcIixcIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNlwiLFwiMmQwMDRiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2N2YzYjA4XCIsXCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmN2Y3ZjdmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDhcIikubWFwKGZmKSxoeT1jZihseSksZHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmOGE2MmY3ZjdmNzY3YTljZlwiLFwiY2EwMDIwZjRhNTgyOTJjNWRlMDU3MWIwXCIsXCJjYTAwMjBmNGE1ODJmN2Y3Zjc5MmM1ZGUwNTcxYjBcIixcImIyMTgyYmVmOGE2MmZkZGJjN2QxZTVmMDY3YTljZjIxNjZhY1wiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZjdmN2Y3ZDFlNWYwNjdhOWNmMjE2NmFjXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWNcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhY1wiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjMDUzMDYxXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmN2Y3ZjdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWMwNTMwNjFcIikubWFwKGZmKSxweT1jZihkeSksdnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmOGE2MmZmZmZmZjk5OTk5OVwiLFwiY2EwMDIwZjRhNTgyYmFiYWJhNDA0MDQwXCIsXCJjYTAwMjBmNGE1ODJmZmZmZmZiYWJhYmE0MDQwNDBcIixcImIyMTgyYmVmOGE2MmZkZGJjN2UwZTBlMDk5OTk5OTRkNGQ0ZFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZmZmZmZmZTBlMGUwOTk5OTk5NGQ0ZDRkXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGRcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZFwiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmZmZmZmZlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGQxYTFhMWFcIikubWFwKGZmKSxneT1jZih2eSkseXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjkxYmZkYlwiLFwiZDcxOTFjZmRhZTYxYWJkOWU5MmM3YmI2XCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhYmQ5ZTkyYzdiYjZcIixcImQ3MzAyN2ZjOGQ1OWZlZTA5MGUwZjNmODkxYmZkYjQ1NzViNFwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDkwZmZmZmJmZTBmM2Y4OTFiZmRiNDU3NWI0XCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjRcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNFwiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0MzEzNjk1XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBmZmZmYmZlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTVcIikubWFwKGZmKSxfeT1jZih5eSksYnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjkxY2Y2MFwiLFwiZDcxOTFjZmRhZTYxYTZkOTZhMWE5NjQxXCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhNmQ5NmExYTk2NDFcIixcImQ3MzAyN2ZjOGQ1OWZlZTA4YmQ5ZWY4YjkxY2Y2MDFhOTg1MFwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDhiZmZmZmJmZDllZjhiOTFjZjYwMWE5ODUwXCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTBcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MFwiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwMDA2ODM3XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTAwMDY4MzdcIikubWFwKGZmKSxteT1jZihieSkseHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjk5ZDU5NFwiLFwiZDcxOTFjZmRhZTYxYWJkZGE0MmI4M2JhXCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhYmRkYTQyYjgzYmFcIixcImQ1M2U0ZmZjOGQ1OWZlZTA4YmU2ZjU5ODk5ZDU5NDMyODhiZFwiLFwiZDUzZTRmZmM4ZDU5ZmVlMDhiZmZmZmJmZTZmNTk4OTlkNTk0MzI4OGJkXCIsXCJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmRcIixcImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZFwiLFwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyXCIsXCI5ZTAxNDJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmQ1ZTRmYTJcIikubWFwKGZmKSx3eT1jZih4eSksTXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImU1ZjVmOTk5ZDhjOTJjYTI1ZlwiLFwiZWRmOGZiYjJlMmUyNjZjMmE0MjM4YjQ1XCIsXCJlZGY4ZmJiMmUyZTI2NmMyYTQyY2EyNWYwMDZkMmNcIixcImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDJjYTI1ZjAwNmQyY1wiLFwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA1ODI0XCIsXCJmN2ZjZmRlNWY1ZjljY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjRcIixcImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNmQyYzAwNDQxYlwiKS5tYXAoZmYpLEF5PWNmKE15KSxUeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTBlY2Y0OWViY2RhODg1NmE3XCIsXCJlZGY4ZmJiM2NkZTM4Yzk2YzY4ODQxOWRcIixcImVkZjhmYmIzY2RlMzhjOTZjNjg4NTZhNzgxMGY3Y1wiLFwiZWRmOGZiYmZkM2U2OWViY2RhOGM5NmM2ODg1NmE3ODEwZjdjXCIsXCJlZGY4ZmJiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ2ZTAxNmJcIixcImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YlwiLFwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkODEwZjdjNGQwMDRiXCIpLm1hcChmZiksTnk9Y2YoVHkpLFN5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlMGYzZGJhOGRkYjU0M2EyY2FcIixcImYwZjllOGJhZTRiYzdiY2NjNDJiOGNiZVwiLFwiZjBmOWU4YmFlNGJjN2JjY2M0NDNhMmNhMDg2OGFjXCIsXCJmMGY5ZThjY2ViYzVhOGRkYjU3YmNjYzQ0M2EyY2EwODY4YWNcIixcImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZVwiLFwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllXCIsXCJmN2ZjZjBlMGYzZGJjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODY4YWMwODQwODFcIikubWFwKGZmKSxFeT1jZihTeSksa3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZThjOGZkYmI4NGUzNGEzM1wiLFwiZmVmMGQ5ZmRjYzhhZmM4ZDU5ZDczMDFmXCIsXCJmZWYwZDlmZGNjOGFmYzhkNTllMzRhMzNiMzAwMDBcIixcImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWUzNGEzM2IzMDAwMFwiLFwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmOTkwMDAwXCIsXCJmZmY3ZWNmZWU4YzhmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDBcIixcImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZmIzMDAwMDdmMDAwMFwiKS5tYXAoZmYpLEN5PWNmKGt5KSxQeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWNlMmYwYTZiZGRiMWM5MDk5XCIsXCJmNmVmZjdiZGM5ZTE2N2E5Y2YwMjgxOGFcIixcImY2ZWZmN2JkYzllMTY3YTljZjFjOTA5OTAxNmM1OVwiLFwiZjZlZmY3ZDBkMWU2YTZiZGRiNjdhOWNmMWM5MDk5MDE2YzU5XCIsXCJmNmVmZjdkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTY0NTBcIixcImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MFwiLFwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2YzU5MDE0NjM2XCIpLm1hcChmZiksenk9Y2YoUHkpLFJ5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlY2U3ZjJhNmJkZGIyYjhjYmVcIixcImYxZWVmNmJkYzllMTc0YTljZjA1NzBiMFwiLFwiZjFlZWY2YmRjOWUxNzRhOWNmMmI4Y2JlMDQ1YThkXCIsXCJmMWVlZjZkMGQxZTZhNmJkZGI3NGE5Y2YyYjhjYmUwNDVhOGRcIixcImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YlwiLFwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiXCIsXCJmZmY3ZmJlY2U3ZjJkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwNDVhOGQwMjM4NThcIikubWFwKGZmKSxMeT1jZihSeSksRHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImU3ZTFlZmM5OTRjN2RkMWM3N1wiLFwiZjFlZWY2ZDdiNWQ4ZGY2NWIwY2UxMjU2XCIsXCJmMWVlZjZkN2I1ZDhkZjY1YjBkZDFjNzc5ODAwNDNcIixcImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGRkMWM3Nzk4MDA0M1wiLFwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTEwMDNmXCIsXCJmN2Y0ZjllN2UxZWZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2ZcIixcImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1Njk4MDA0MzY3MDAxZlwiKS5tYXAoZmYpLFV5PWNmKER5KSxxeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmRlMGRkZmE5ZmI1YzUxYjhhXCIsXCJmZWViZTJmYmI0YjlmNzY4YTFhZTAxN2VcIixcImZlZWJlMmZiYjRiOWY3NjhhMWM1MWI4YTdhMDE3N1wiLFwiZmVlYmUyZmNjNWMwZmE5ZmI1Zjc2OGExYzUxYjhhN2EwMTc3XCIsXCJmZWViZTJmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzdcIixcImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3N1wiLFwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3NDkwMDZhXCIpLm1hcChmZiksT3k9Y2YocXkpLFl5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlZGY4YjE3ZmNkYmIyYzdmYjhcIixcImZmZmZjY2ExZGFiNDQxYjZjNDIyNWVhOFwiLFwiZmZmZmNjYTFkYWI0NDFiNmM0MmM3ZmI4MjUzNDk0XCIsXCJmZmZmY2NjN2U5YjQ3ZmNkYmI0MWI2YzQyYzdmYjgyNTM0OTRcIixcImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NFwiLFwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0XCIsXCJmZmZmZDllZGY4YjFjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgyNTM0OTQwODFkNThcIikubWFwKGZmKSxCeT1jZihZeSksRnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImY3ZmNiOWFkZGQ4ZTMxYTM1NFwiLFwiZmZmZmNjYzJlNjk5NzhjNjc5MjM4NDQzXCIsXCJmZmZmY2NjMmU2OTk3OGM2NzkzMWEzNTQwMDY4MzdcIixcImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTMxYTM1NDAwNjgzN1wiLFwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA1YTMyXCIsXCJmZmZmZTVmN2ZjYjlkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzJcIixcImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNjgzNzAwNDUyOVwiKS5tYXAoZmYpLEl5PWNmKEZ5KSxqeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmZmN2JjZmVjNDRmZDk1ZjBlXCIsXCJmZmZmZDRmZWQ5OGVmZTk5MjljYzRjMDJcIixcImZmZmZkNGZlZDk4ZWZlOTkyOWQ5NWYwZTk5MzQwNFwiLFwiZmZmZmQ0ZmVlMzkxZmVjNDRmZmU5OTI5ZDk1ZjBlOTkzNDA0XCIsXCJmZmZmZDRmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI4YzJkMDRcIixcImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNFwiLFwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOTkzNDA0NjYyNTA2XCIpLm1hcChmZiksSHk9Y2YoankpLFh5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZmVkYTBmZWIyNGNmMDNiMjBcIixcImZmZmZiMmZlY2M1Y2ZkOGQzY2UzMWExY1wiLFwiZmZmZmIyZmVjYzVjZmQ4ZDNjZjAzYjIwYmQwMDI2XCIsXCJmZmZmYjJmZWQ5NzZmZWIyNGNmZDhkM2NmMDNiMjBiZDAwMjZcIixcImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNlwiLFwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2XCIsXCJmZmZmY2NmZmVkYTBmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiZDAwMjY4MDAwMjZcIikubWFwKGZmKSxHeT1jZihYeSksVnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImRlZWJmNzllY2FlMTMxODJiZFwiLFwiZWZmM2ZmYmRkN2U3NmJhZWQ2MjE3MWI1XCIsXCJlZmYzZmZiZGQ3ZTc2YmFlZDYzMTgyYmQwODUxOWNcIixcImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5Y1wiLFwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0XCIsXCJmN2ZiZmZkZWViZjdjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTRcIixcImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YlwiKS5tYXAoZmYpLCR5PWNmKFZ5KSxXeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTVmNWUwYTFkOTliMzFhMzU0XCIsXCJlZGY4ZTliYWU0YjM3NGM0NzYyMzhiNDVcIixcImVkZjhlOWJhZTRiMzc0YzQ3NjMxYTM1NDAwNmQyY1wiLFwiZWRmOGU5YzdlOWMwYTFkOTliNzRjNDc2MzFhMzU0MDA2ZDJjXCIsXCJlZGY4ZTljN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDVhMzJcIixcImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMlwiLFwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA2ZDJjMDA0NDFiXCIpLm1hcChmZiksWnk9Y2YoV3kpLFF5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmMGYwZjBiZGJkYmQ2MzYzNjNcIixcImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MlwiLFwiZjdmN2Y3Y2NjY2NjOTY5Njk2NjM2MzYzMjUyNTI1XCIsXCJmN2Y3ZjdkOWQ5ZDliZGJkYmQ5Njk2OTY2MzYzNjMyNTI1MjVcIixcImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNVwiLFwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1XCIsXCJmZmZmZmZmMGYwZjBkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjUwMDAwMDBcIikubWFwKGZmKSxKeT1jZihReSksS3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmZWRmNWJjYmRkYzc1NmJiMVwiLFwiZjJmMGY3Y2JjOWUyOWU5YWM4NmE1MWEzXCIsXCJmMmYwZjdjYmM5ZTI5ZTlhYzg3NTZiYjE1NDI3OGZcIixcImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODc1NmJiMTU0Mjc4ZlwiLFwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNGExNDg2XCIsXCJmY2ZiZmRlZmVkZjVkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODZcIixcImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzU0Mjc4ZjNmMDA3ZFwiKS5tYXAoZmYpLHRfPWNmKEt5KSxuXz1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlMGQyZmM5MjcyZGUyZDI2XCIsXCJmZWU1ZDlmY2FlOTFmYjZhNGFjYjE4MWRcIixcImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNVwiLFwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZGUyZDI2YTUwZjE1XCIsXCJmZWU1ZDlmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWQ5OTAwMGRcIixcImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZFwiLFwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkYTUwZjE1NjcwMDBkXCIpLm1hcChmZiksZV89Y2Yobl8pLHJfPW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWU2Y2VmZGFlNmJlNjU1MGRcIixcImZlZWRkZWZkYmU4NWZkOGQzY2Q5NDcwMVwiLFwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZTY1NTBkYTYzNjAzXCIsXCJmZWVkZGVmZGQwYTJmZGFlNmJmZDhkM2NlNjU1MGRhNjM2MDNcIixcImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNFwiLFwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0XCIsXCJmZmY1ZWJmZWU2Y2VmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDFhNjM2MDM3ZjI3MDRcIikubWFwKGZmKSxpXz1jZihyXyksb189eGwoWnQoMzAwLC41LDApLFp0KC0yNDAsLjUsMSkpLGFfPXhsKFp0KC0xMDAsLjc1LC4zNSksWnQoODAsMS41LC44KSksdV89eGwoWnQoMjYwLC43NSwuMzUpLFp0KDgwLDEuNSwuOCkpLGZfPVp0KCksY189UnQoKSxzXz1NYXRoLlBJLzMsbF89MipNYXRoLlBJLzMsaF89c2YoZmYoXCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjVcIikpLGRfPXNmKGZmKFwiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTA5MDIwMjBiMDIwMjBkMDMwMzBmMDMwMzEyMDQwNDE0MDUwNDE2MDYwNTE4MDYwNTFhMDcwNjFjMDgwNzFlMDkwNzIwMGEwODIyMGIwOTI0MGMwOTI2MGQwYTI5MGUwYjJiMTAwYjJkMTEwYzJmMTIwZDMxMTMwZDM0MTQwZTM2MTUwZTM4MTYwZjNiMTgwZjNkMTkxMDNmMWExMDQyMWMxMDQ0MWQxMTQ3MWUxMTQ5MjAxMTRiMjExMTRlMjIxMTUwMjQxMjUzMjUxMjU1MjcxMjU4MjkxMTVhMmExMTVjMmMxMTVmMmQxMTYxMmYxMTYzMzExMTY1MzMxMDY3MzQxMDY5MzYxMDZiMzgxMDZjMzkwZjZlM2IwZjcwM2QwZjcxM2YwZjcyNDAwZjc0NDIwZjc1NDQwZjc2NDUxMDc3NDcxMDc4NDkxMDc4NGExMDc5NGMxMTdhNGUxMTdiNGYxMjdiNTExMjdjNTIxMzdjNTQxMzdkNTYxNDdkNTcxNTdlNTkxNTdlNWExNjdlNWMxNjdmNWQxNzdmNWYxODdmNjAxODgwNjIxOTgwNjQxYTgwNjUxYTgwNjcxYjgwNjgxYzgxNmExYzgxNmIxZDgxNmQxZDgxNmUxZTgxNzAxZjgxNzIxZjgxNzMyMDgxNzUyMTgxNzYyMTgxNzgyMjgxNzkyMjgyN2IyMzgyN2MyMzgyN2UyNDgyODAyNTgyODEyNTgxODMyNjgxODQyNjgxODYyNzgxODgyNzgxODkyODgxOGIyOTgxOGMyOTgxOGUyYTgxOTAyYTgxOTEyYjgxOTMyYjgwOTQyYzgwOTYyYzgwOTgyZDgwOTkyZDgwOWIyZTdmOWMyZTdmOWUyZjdmYTAyZjdmYTEzMDdlYTMzMDdlYTUzMTdlYTYzMTdkYTgzMjdkYWEzMzdkYWIzMzdjYWQzNDdjYWUzNDdiYjAzNTdiYjIzNTdiYjMzNjdhYjUzNjdhYjczNzc5YjgzNzc5YmEzODc4YmMzOTc4YmQzOTc3YmYzYTc3YzAzYTc2YzIzYjc1YzQzYzc1YzUzYzc0YzczZDczYzgzZTczY2EzZTcyY2MzZjcxY2Q0MDcxY2Y0MDcwZDA0MTZmZDI0MjZmZDM0MzZlZDU0NDZkZDY0NTZjZDg0NTZjZDk0NjZiZGI0NzZhZGM0ODY5ZGU0OTY4ZGY0YTY4ZTA0YzY3ZTI0ZDY2ZTM0ZTY1ZTQ0ZjY0ZTU1MDY0ZTc1MjYzZTg1MzYyZTk1NDYyZWE1NjYxZWI1NzYwZWM1ODYwZWQ1YTVmZWU1YjVlZWY1ZDVlZjA1ZjVlZjE2MDVkZjI2MjVkZjI2NDVjZjM2NTVjZjQ2NzVjZjQ2OTVjZjU2YjVjZjY2YzVjZjY2ZTVjZjc3MDVjZjc3MjVjZjg3NDVjZjg3NjVjZjk3ODVkZjk3OTVkZjk3YjVkZmE3ZDVlZmE3ZjVlZmE4MTVmZmI4MzVmZmI4NTYwZmI4NzYxZmM4OTYxZmM4YTYyZmM4YzYzZmM4ZTY0ZmM5MDY1ZmQ5MjY2ZmQ5NDY3ZmQ5NjY4ZmQ5ODY5ZmQ5YTZhZmQ5YjZiZmU5ZDZjZmU5ZjZkZmVhMTZlZmVhMzZmZmVhNTcxZmVhNzcyZmVhOTczZmVhYTc0ZmVhYzc2ZmVhZTc3ZmViMDc4ZmViMjdhZmViNDdiZmViNjdjZmViNzdlZmViOTdmZmViYjgxZmViZDgyZmViZjg0ZmVjMTg1ZmVjMjg3ZmVjNDg4ZmVjNjhhZmVjODhjZmVjYThkZmVjYzhmZmVjZDkwZmVjZjkyZmVkMTk0ZmVkMzk1ZmVkNTk3ZmVkNzk5ZmVkODlhZmRkYTljZmRkYzllZmRkZWEwZmRlMGExZmRlMmEzZmRlM2E1ZmRlNWE3ZmRlN2E5ZmRlOWFhZmRlYmFjZmNlY2FlZmNlZWIwZmNmMGIyZmNmMmI0ZmNmNGI2ZmNmNmI4ZmNmN2I5ZmNmOWJiZmNmYmJkZmNmZGJmXCIpKSxwXz1zZihmZihcIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwYTAyMDIwYzAyMDIwZTAzMDIxMDA0MDMxMjA0MDMxNDA1MDQxNzA2MDQxOTA3MDUxYjA4MDUxZDA5MDYxZjBhMDcyMjBiMDcyNDBjMDgyNjBkMDgyOTBlMDkyYjEwMDkyZDExMGEzMDEyMGEzMjE0MGIzNDE1MGIzNzE2MGIzOTE4MGMzYzE5MGMzZTFiMGM0MTFjMGM0MzFlMGM0NTFmMGM0ODIxMGM0YTIzMGM0YzI0MGM0ZjI2MGM1MTI4MGI1MzI5MGI1NTJiMGI1NzJkMGI1OTJmMGE1YjMxMGE1YzMyMGE1ZTM0MGE1ZjM2MDk2MTM4MDk2MjM5MDk2MzNiMDk2NDNkMDk2NTNlMDk2NjQwMGE2NzQyMGE2ODQ0MGE2ODQ1MGE2OTQ3MGI2YTQ5MGI2YTRhMGM2YjRjMGM2YjRkMGQ2YzRmMGQ2YzUxMGU2YzUyMGU2ZDU0MGY2ZDU1MGY2ZDU3MTA2ZTU5MTA2ZTVhMTE2ZTVjMTI2ZTVkMTI2ZTVmMTM2ZTYxMTM2ZTYyMTQ2ZTY0MTU2ZTY1MTU2ZTY3MTY2ZTY5MTY2ZTZhMTc2ZTZjMTg2ZTZkMTg2ZTZmMTk2ZTcxMTk2ZTcyMWE2ZTc0MWE2ZTc1MWI2ZTc3MWM2ZDc4MWM2ZDdhMWQ2ZDdjMWQ2ZDdkMWU2ZDdmMWU2YzgwMWY2YzgyMjA2Yzg0MjA2Yjg1MjE2Yjg3MjE2Yjg4MjI2YThhMjI2YThjMjM2OThkMjM2OThmMjQ2OTkwMjU2ODkyMjU2ODkzMjY2Nzk1MjY2Nzk3Mjc2Njk4Mjc2NjlhMjg2NTliMjk2NDlkMjk2NDlmMmE2M2EwMmE2M2EyMmI2MmEzMmM2MWE1MmM2MGE2MmQ2MGE4MmU1ZmE5MmU1ZWFiMmY1ZWFkMzA1ZGFlMzA1Y2IwMzE1YmIxMzI1YWIzMzI1YWI0MzM1OWI2MzQ1OGI3MzU1N2I5MzU1NmJhMzY1NWJjMzc1NGJkMzg1M2JmMzk1MmMwM2E1MWMxM2E1MGMzM2I0ZmM0M2M0ZWM2M2Q0ZGM3M2U0Y2M4M2Y0YmNhNDA0YWNiNDE0OWNjNDI0OGNlNDM0N2NmNDQ0NmQwNDU0NWQyNDY0NGQzNDc0M2Q0NDg0MmQ1NGE0MWQ3NGIzZmQ4NGMzZWQ5NGQzZGRhNGUzY2RiNTAzYmRkNTEzYWRlNTIzOGRmNTMzN2UwNTUzNmUxNTYzNWUyNTczNGUzNTkzM2U0NWEzMWU1NWMzMGU2NWQyZmU3NWUyZWU4NjAyZGU5NjEyYmVhNjMyYWViNjQyOWViNjYyOGVjNjcyNmVkNjkyNWVlNmEyNGVmNmMyM2VmNmUyMWYwNmYyMGYxNzExZmYxNzMxZGYyNzQxY2YzNzYxYmYzNzgxOWY0NzkxOGY1N2IxN2Y1N2QxNWY2N2UxNGY2ODAxM2Y3ODIxMmY3ODQxMGY4ODUwZmY4ODcwZWY4ODkwY2Y5OGIwYmY5OGMwYWY5OGUwOWZhOTAwOGZhOTIwN2ZhOTQwN2ZiOTYwNmZiOTcwNmZiOTkwNmZiOWIwNmZiOWQwN2ZjOWYwN2ZjYTEwOGZjYTMwOWZjYTUwYWZjYTYwY2ZjYTgwZGZjYWEwZmZjYWMxMWZjYWUxMmZjYjAxNGZjYjIxNmZjYjQxOGZiYjYxYWZiYjgxZGZiYmExZmZiYmMyMWZiYmUyM2ZhYzAyNmZhYzIyOGZhYzQyYWZhYzYyZGY5YzcyZmY5YzkzMmY5Y2IzNWY4Y2QzN2Y4Y2YzYWY3ZDEzZGY3ZDM0MGY2ZDU0M2Y2ZDc0NmY1ZDk0OWY1ZGI0Y2Y0ZGQ0ZmY0ZGY1M2Y0ZTE1NmYzZTM1YWYzZTU1ZGYyZTY2MWYyZTg2NWYyZWE2OWYxZWM2ZGYxZWQ3MWYxZWY3NWYxZjE3OWYyZjI3ZGYyZjQ4MmYzZjU4NmYzZjY4YWY0Zjg4ZWY1Zjk5MmY2ZmE5NmY4ZmI5YWY5ZmM5ZGZhZmRhMWZjZmZhNFwiKSksdl89c2YoZmYoXCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjFcIikpLGdfPU1hdGguYWJzLHlfPU1hdGguYXRhbjIsX189TWF0aC5jb3MsYl89TWF0aC5tYXgsbV89TWF0aC5taW4seF89TWF0aC5zaW4sd189TWF0aC5zcXJ0LE1fPTFlLTEyLEFfPU1hdGguUEksVF89QV8vMixOXz0yKkFfO2JmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pfX19O3ZhciBTXz1FZihtZik7U2YucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhU3RhcnQoKX0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFFbmQoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5fY3VydmUucG9pbnQobipNYXRoLnNpbih0KSxuKi1NYXRoLmNvcyh0KSl9fTt2YXIgRV89QXJyYXkucHJvdG90eXBlLnNsaWNlLGtfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vQV8pO3QubW92ZVRvKGUsMCksdC5hcmMoMCwwLGUsMCxOXyl9fSxDXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuLzUpLzI7dC5tb3ZlVG8oLTMqZSwtZSksdC5saW5lVG8oLWUsLWUpLHQubGluZVRvKC1lLC0zKmUpLHQubGluZVRvKGUsLTMqZSksdC5saW5lVG8oZSwtZSksdC5saW5lVG8oMyplLC1lKSx0LmxpbmVUbygzKmUsZSksdC5saW5lVG8oZSxlKSx0LmxpbmVUbyhlLDMqZSksdC5saW5lVG8oLWUsMyplKSx0LmxpbmVUbygtZSxlKSx0LmxpbmVUbygtMyplLGUpLHQuY2xvc2VQYXRoKCl9fSxQXz1NYXRoLnNxcnQoMS8zKSx6Xz0yKlBfLFJfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vel8pLHI9ZSpQXzt0Lm1vdmVUbygwLC1lKSx0LmxpbmVUbyhyLDApLHQubGluZVRvKDAsZSksdC5saW5lVG8oLXIsMCksdC5jbG9zZVBhdGgoKX19LExfPU1hdGguc2luKEFfLzEwKS9NYXRoLnNpbig3KkFfLzEwKSxEXz1NYXRoLnNpbihOXy8xMCkqTF8sVV89LU1hdGguY29zKE5fLzEwKSpMXyxxXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydCguODkwODEzMDkxNTI5Mjg1MipuKSxyPURfKmUsaT1VXyplO3QubW92ZVRvKDAsLWUpLHQubGluZVRvKHIsaSk7Zm9yKHZhciBvPTE7bzw1Oysrbyl7dmFyIGE9Tl8qby81LHU9TWF0aC5jb3MoYSksZj1NYXRoLnNpbihhKTt0LmxpbmVUbyhmKmUsLXUqZSksdC5saW5lVG8odSpyLWYqaSxmKnIrdSppKX10LmNsb3NlUGF0aCgpfX0sT189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobikscj0tZS8yO3QucmVjdChyLHIsZSxlKX19LFlfPU1hdGguc3FydCgzKSxCXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPS1NYXRoLnNxcnQobi8oMypZXykpO3QubW92ZVRvKDAsMiplKSx0LmxpbmVUbygtWV8qZSwtZSksdC5saW5lVG8oWV8qZSwtZSksdC5jbG9zZVBhdGgoKX19LEZfPU1hdGguc3FydCgzKS8yLElfPTEvTWF0aC5zcXJ0KDEyKSxqXz0zKihJXy8yKzEpLEhfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4val8pLHI9ZS8yLGk9ZSpJXyxvPXIsYT1lKklfK2UsdT0tbyxmPWE7dC5tb3ZlVG8ocixpKSx0LmxpbmVUbyhvLGEpLHQubGluZVRvKHUsZiksdC5saW5lVG8oLS41KnItRl8qaSxGXypyKy0uNSppKSx0LmxpbmVUbygtLjUqby1GXyphLEZfKm8rLS41KmEpLHQubGluZVRvKC0uNSp1LUZfKmYsRl8qdSstLjUqZiksdC5saW5lVG8oLS41KnIrRl8qaSwtLjUqaS1GXypyKSx0LmxpbmVUbygtLjUqbytGXyphLC0uNSphLUZfKm8pLHQubGluZVRvKC0uNSp1K0ZfKmYsLS41KmYtRl8qdSksdC5jbG9zZVBhdGgoKX19LFhfPVtrXyxDXyxSXyxPXyxxXyxCXyxIX107RmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMzpCZih0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKTtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9jb250ZXh0LmxpbmVUbygoNSp0aGlzLl94MCt0aGlzLl94MSkvNiwoNSp0aGlzLl95MCt0aGlzLl95MSkvNik7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0sSWYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDIrMip0aGlzLl94MykvMywodGhpcy5feTIrMip0aGlzLl95MykvMyksdGhpcy5fY29udGV4dC5saW5lVG8oKHRoaXMuX3gzKzIqdGhpcy5feDIpLzMsKHRoaXMuX3kzKzIqdGhpcy5feTIpLzMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpLHRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpfX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mj10LHRoaXMuX3kyPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDM9dCx0aGlzLl95Mz1uO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g0PXQsdGhpcy5feTQ9bix0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDArNCp0aGlzLl94MSt0KS82LCh0aGlzLl95MCs0KnRoaXMuX3kxK24pLzYpO2JyZWFrO2RlZmF1bHQ6QmYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bn19LGpmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO3ZhciBlPSh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYscj0odGhpcy5feTArNCp0aGlzLl95MStuKS82O3RoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZSxyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6QmYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bn19LEhmLnByb3RvdHlwZT17bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdLHRoaXMuX2Jhc2lzLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxuPXRoaXMuX3ksZT10Lmxlbmd0aC0xO2lmKGU+MClmb3IodmFyIHIsaT10WzBdLG89blswXSxhPXRbZV0taSx1PW5bZV0tbyxmPS0xOysrZjw9ZTspcj1mL2UsdGhpcy5fYmFzaXMucG9pbnQodGhpcy5fYmV0YSp0W2ZdKygxLXRoaXMuX2JldGEpKihpK3IqYSksdGhpcy5fYmV0YSpuW2ZdKygxLXRoaXMuX2JldGEpKihvK3IqdSkpO3RoaXMuX3g9dGhpcy5feT1udWxsLHRoaXMuX2Jhc2lzLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrbil9fTt2YXIgR189ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiAxPT09bj9uZXcgRmYodCk6bmV3IEhmKHQsbil9cmV0dXJuIGUuYmV0YT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC44NSk7R2YucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOlhmKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94MT10LHRoaXMuX3kxPW47YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDpYZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFZfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IEdmKHQsbil9cmV0dXJuIGUudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KDApO1ZmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1uKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PW47YnJlYWs7ZGVmYXVsdDpYZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyICRfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IFZmKHQsbil9cmV0dXJuIGUudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KDApOyRmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgV189ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgJGYodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7WmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDpXZih0aGlzLHQsbil9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBaXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG4/bmV3IFpmKHQsbik6bmV3IEdmKHQsMCl9cmV0dXJuIGUuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguNSk7UWYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1uKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PW47YnJlYWs7ZGVmYXVsdDpXZih0aGlzLHQsbil9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBRXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG4/bmV3IFFmKHQsbik6bmV3IFZmKHQsMCl9cmV0dXJuIGUuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguNSk7SmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIEpfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgSmYodCxuKTpuZXcgJGYodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtLZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0PSt0LG49K24sdGhpcy5fcG9pbnQ/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKToodGhpcy5fcG9pbnQ9MSx0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pKX19LGljLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3QwPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpO2JyZWFrO2Nhc2UgMzpyYyh0aGlzLHRoaXMuX3QwLGVjKHRoaXMsdGhpcy5fdDApKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7dmFyIGU9TmFOO2lmKHQ9K3Qsbj0rbix0IT09dGhpcy5feDF8fG4hPT10aGlzLl95MSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MyxyYyh0aGlzLGVjKHRoaXMsZT1uYyh0aGlzLHQsbikpLGUpO2JyZWFrO2RlZmF1bHQ6cmModGhpcyx0aGlzLl90MCxlPW5jKHRoaXMsdCxuKSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1uLHRoaXMuX3QwPWV9fX0sKG9jLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGljLnByb3RvdHlwZSkpLnBvaW50PWZ1bmN0aW9uKHQsbil7aWMucHJvdG90eXBlLnBvaW50LmNhbGwodGhpcyxuLHQpfSxhYy5wcm90b3R5cGU9e21vdmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuX2NvbnRleHQubW92ZVRvKG4sdCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LGxpbmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuX2NvbnRleHQubGluZVRvKG4sdCl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxuLGUscixpLG8pe3RoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhuLHQscixlLG8saSl9fSx1Yy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W119LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LG49dGhpcy5feSxlPXQubGVuZ3RoO2lmKGUpaWYodGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0WzBdLG5bMF0pOnRoaXMuX2NvbnRleHQubW92ZVRvKHRbMF0sblswXSksMj09PWUpdGhpcy5fY29udGV4dC5saW5lVG8odFsxXSxuWzFdKTtlbHNlIGZvcih2YXIgcj1mYyh0KSxpPWZjKG4pLG89MCxhPTE7YTxlOysrbywrK2EpdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHJbMF1bb10saVswXVtvXSxyWzFdW29dLGlbMV1bb10sdFthXSxuW2FdKTsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT1lKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSx0aGlzLl94PXRoaXMuX3k9bnVsbH0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrbil9fSxjYy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PXRoaXMuX3k9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPHRoaXMuX3QmJnRoaXMuX3Q8MSYmMj09PXRoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHRoaXMuX3kpLCh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPj0wJiYodGhpcy5fdD0xLXRoaXMuX3QsdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUpfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LG4pLHRoaXMuX2NvbnRleHQubGluZVRvKHQsbik7ZWxzZXt2YXIgZT10aGlzLl94KigxLXRoaXMuX3QpK3QqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhlLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKGUsbil9fXRoaXMuX3g9dCx0aGlzLl95PW59fSxfYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOl9jLGluc2VydDpmdW5jdGlvbih0LG4pe3ZhciBlLHIsaTtpZih0KXtpZihuLlA9dCxuLk49dC5OLHQuTiYmKHQuTi5QPW4pLHQuTj1uLHQuUil7Zm9yKHQ9dC5SO3QuTDspdD10Lkw7dC5MPW59ZWxzZSB0LlI9bjtlPXR9ZWxzZSB0aGlzLl8/KHQ9d2ModGhpcy5fKSxuLlA9bnVsbCxuLk49dCx0LlA9dC5MPW4sZT10KToobi5QPW4uTj1udWxsLHRoaXMuXz1uLGU9bnVsbCk7Zm9yKG4uTD1uLlI9bnVsbCxuLlU9ZSxuLkM9ITAsdD1uO2UmJmUuQzspZT09PShyPWUuVSkuTD8oaT1yLlIpJiZpLkM/KGUuQz1pLkM9ITEsci5DPSEwLHQ9cik6KHQ9PT1lLlImJihtYyh0aGlzLGUpLGU9KHQ9ZSkuVSksZS5DPSExLHIuQz0hMCx4Yyh0aGlzLHIpKTooaT1yLkwpJiZpLkM/KGUuQz1pLkM9ITEsci5DPSEwLHQ9cik6KHQ9PT1lLkwmJih4Yyh0aGlzLGUpLGU9KHQ9ZSkuVSksZS5DPSExLHIuQz0hMCxtYyh0aGlzLHIpKSxlPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIG4sZSxyLGk9dC5VLG89dC5MLGE9dC5SO2lmKGU9bz9hP3djKGEpOm86YSxpP2kuTD09PXQ/aS5MPWU6aS5SPWU6dGhpcy5fPWUsbyYmYT8ocj1lLkMsZS5DPXQuQyxlLkw9byxvLlU9ZSxlIT09YT8oaT1lLlUsZS5VPXQuVSx0PWUuUixpLkw9dCxlLlI9YSxhLlU9ZSk6KGUuVT1pLGk9ZSx0PWUuUikpOihyPXQuQyx0PWUpLHQmJih0LlU9aSksIXIpaWYodCYmdC5DKXQuQz0hMTtlbHNle2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PWkuTCl7aWYoKG49aS5SKS5DJiYobi5DPSExLGkuQz0hMCxtYyh0aGlzLGkpLG49aS5SKSxuLkwmJm4uTC5DfHxuLlImJm4uUi5DKXtuLlImJm4uUi5DfHwobi5MLkM9ITEsbi5DPSEwLHhjKHRoaXMsbiksbj1pLlIpLG4uQz1pLkMsaS5DPW4uUi5DPSExLG1jKHRoaXMsaSksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoKG49aS5MKS5DJiYobi5DPSExLGkuQz0hMCx4Yyh0aGlzLGkpLG49aS5MKSxuLkwmJm4uTC5DfHxuLlImJm4uUi5DKXtuLkwmJm4uTC5DfHwobi5SLkM9ITEsbi5DPSEwLG1jKHRoaXMsbiksbj1pLkwpLG4uQz1pLkMsaS5DPW4uTC5DPSExLHhjKHRoaXMsaSksdD10aGlzLl87YnJlYWt9bi5DPSEwLHQ9aSxpPWkuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fTt2YXIgS18sdGIsbmIsZWIscmIsaWI9W10sb2I9W10sYWI9MWUtNix1Yj0xZS0xMjtCYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkJjLHBvbHlnb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5tYXAoZnVuY3Rpb24obil7dmFyIGU9bi5oYWxmZWRnZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBrYyhuLHRbZV0pfSk7cmV0dXJuIGUuZGF0YT1uLnNpdGUuZGF0YSxlfSl9LHRyaWFuZ2xlczpmdW5jdGlvbigpe3ZhciB0PVtdLG49dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7aWYobz0oaT1lLmhhbGZlZGdlcykubGVuZ3RoKWZvcih2YXIgaSxvLGEsdT1lLnNpdGUsZj0tMSxjPW5baVtvLTFdXSxzPWMubGVmdD09PXU/Yy5yaWdodDpjLmxlZnQ7KytmPG87KWE9cyxzPShjPW5baVtmXV0pLmxlZnQ9PT11P2MucmlnaHQ6Yy5sZWZ0LGEmJnMmJnI8YS5pbmRleCYmcjxzLmluZGV4JiZPYyh1LGEscyk8MCYmdC5wdXNoKFt1LmRhdGEsYS5kYXRhLHMuZGF0YV0pfSksdH0sbGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQucmlnaHR9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3NvdXJjZTp0LmxlZnQuZGF0YSx0YXJnZXQ6dC5yaWdodC5kYXRhfX0pfSxmaW5kOmZ1bmN0aW9uKHQsbixlKXtmb3IodmFyIHIsaSxvPXRoaXMsYT1vLl9mb3VuZHx8MCx1PW8uY2VsbHMubGVuZ3RoOyEoaT1vLmNlbGxzW2FdKTspaWYoKythPj11KXJldHVybiBudWxsO3ZhciBmPXQtaS5zaXRlWzBdLGM9bi1pLnNpdGVbMV0scz1mKmYrYypjO2Rve2k9by5jZWxsc1tyPWFdLGE9bnVsbCxpLmhhbGZlZGdlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW8uZWRnZXNbZV0sdT1yLmxlZnQ7aWYodSE9PWkuc2l0ZSYmdXx8KHU9ci5yaWdodCkpe3ZhciBmPXQtdVswXSxjPW4tdVsxXSxsPWYqZitjKmM7bDxzJiYocz1sLGE9dS5pbmRleCl9fSl9d2hpbGUobnVsbCE9PWEpO3JldHVybiBvLl9mb3VuZD1yLG51bGw9PWV8fHM8PWUqZT9pLnNpdGU6bnVsbH19LEljLnByb3RvdHlwZT17Y29uc3RydWN0b3I6SWMsc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10P3RoaXM6bmV3IEljKHRoaXMuayp0LHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gMD09PXQmMD09PW4/dGhpczpuZXcgSWModGhpcy5rLHRoaXMueCt0aGlzLmsqdCx0aGlzLnkrdGhpcy5rKm4pfSxhcHBseTpmdW5jdGlvbih0KXtyZXR1cm5bdFswXSp0aGlzLmsrdGhpcy54LHRbMV0qdGhpcy5rK3RoaXMueV19LGFwcGx5WDpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy54fSxhcHBseVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueX0saW52ZXJ0OmZ1bmN0aW9uKHQpe3JldHVyblsodFswXS10aGlzLngpL3RoaXMuaywodFsxXS10aGlzLnkpL3RoaXMua119LGludmVydFg6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy54KS90aGlzLmt9LGludmVydFk6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy55KS90aGlzLmt9LHJlc2NhbGVYOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFgsdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0scmVzY2FsZVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVyblwidHJhbnNsYXRlKFwiK3RoaXMueCtcIixcIit0aGlzLnkrXCIpIHNjYWxlKFwiK3RoaXMuaytcIilcIn19O3ZhciBmYj1uZXcgSWMoMSwwLDApO2pjLnByb3RvdHlwZT1JYy5wcm90b3R5cGUsdC52ZXJzaW9uPVwiNS41LjBcIix0LmJpc2VjdD1LYyx0LmJpc2VjdFJpZ2h0PUtjLHQuYmlzZWN0TGVmdD10cyx0LmFzY2VuZGluZz1uLHQuYmlzZWN0b3I9ZSx0LmNyb3NzPWZ1bmN0aW9uKHQsbixlKXt2YXIgaSxvLGEsdSxmPXQubGVuZ3RoLGM9bi5sZW5ndGgscz1uZXcgQXJyYXkoZipjKTtmb3IobnVsbD09ZSYmKGU9ciksaT1hPTA7aTxmOysraSlmb3IodT10W2ldLG89MDtvPGM7KytvLCsrYSlzW2FdPWUodSxuW29dKTtyZXR1cm4gc30sdC5kZXNjZW5kaW5nPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfSx0LmRldmlhdGlvbj1hLHQuZXh0ZW50PXUsdC5oaXN0b2dyYW09ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBpLG8sYT10Lmxlbmd0aCx1PW5ldyBBcnJheShhKTtmb3IoaT0wO2k8YTsrK2kpdVtpXT1uKHRbaV0saSx0KTt2YXIgZj1lKHUpLGM9ZlswXSxsPWZbMV0saD1yKHUsYyxsKTtBcnJheS5pc0FycmF5KGgpfHwoaD1kKGMsbCxoKSxoPXMoTWF0aC5jZWlsKGMvaCkqaCxNYXRoLmZsb29yKGwvaCkqaCxoKSk7Zm9yKHZhciBwPWgubGVuZ3RoO2hbMF08PWM7KWguc2hpZnQoKSwtLXA7Zm9yKDtoW3AtMV0+bDspaC5wb3AoKSwtLXA7dmFyIHYsZz1uZXcgQXJyYXkocCsxKTtmb3IoaT0wO2k8PXA7KytpKSh2PWdbaV09W10pLngwPWk+MD9oW2ktMV06Yyx2LngxPWk8cD9oW2ldOmw7Zm9yKGk9MDtpPGE7KytpKWM8PShvPXVbaV0pJiZvPD1sJiZnW0tjKGgsbywwLHApXS5wdXNoKHRbaV0pO3JldHVybiBnfXZhciBuPWMsZT11LHI9cDtyZXR1cm4gdC52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6ZihlKSx0KTpufSx0LmRvbWFpbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246ZihbblswXSxuWzFdXSksdCk6ZX0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP2YoZXMuY2FsbChuKSk6ZihuKSx0KTpyfSx0fSx0LnRocmVzaG9sZEZyZWVkbWFuRGlhY29uaXM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PXJzLmNhbGwodCxpKS5zb3J0KG4pLE1hdGguY2VpbCgoci1lKS8oMioodih0LC43NSktdih0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU2NvdHQ9ZnVuY3Rpb24odCxuLGUpe3JldHVybiBNYXRoLmNlaWwoKGUtbikvKDMuNSphKHQpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU3R1cmdlcz1wLHQubWF4PWcsdC5tZWFuPWZ1bmN0aW9uKHQsbil7dmFyIGUscj10Lmxlbmd0aCxvPXIsYT0tMSx1PTA7aWYobnVsbD09bilmb3IoOysrYTxyOylpc05hTihlPWkodFthXSkpPy0tbzp1Kz1lO2Vsc2UgZm9yKDsrK2E8cjspaXNOYU4oZT1pKG4odFthXSxhLHQpKSk/LS1vOnUrPWU7aWYobylyZXR1cm4gdS9vfSx0Lm1lZGlhbj1mdW5jdGlvbih0LGUpe3ZhciByLG89dC5sZW5ndGgsYT0tMSx1PVtdO2lmKG51bGw9PWUpZm9yKDsrK2E8bzspaXNOYU4ocj1pKHRbYV0pKXx8dS5wdXNoKHIpO2Vsc2UgZm9yKDsrK2E8bzspaXNOYU4ocj1pKGUodFthXSxhLHQpKSl8fHUucHVzaChyKTtyZXR1cm4gdih1LnNvcnQobiksLjUpfSx0Lm1lcmdlPXksdC5taW49Xyx0LnBhaXJzPWZ1bmN0aW9uKHQsbil7bnVsbD09biYmKG49cik7Zm9yKHZhciBlPTAsaT10Lmxlbmd0aC0xLG89dFswXSxhPW5ldyBBcnJheShpPDA/MDppKTtlPGk7KWFbZV09bihvLG89dFsrK2VdKTtyZXR1cm4gYX0sdC5wZXJtdXRlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGUpO2UtLTspcltlXT10W25bZV1dO3JldHVybiByfSx0LnF1YW50aWxlPXYsdC5yYW5nZT1zLHQuc2Nhbj1mdW5jdGlvbih0LGUpe2lmKHI9dC5sZW5ndGgpe3ZhciByLGksbz0wLGE9MCx1PXRbYV07Zm9yKG51bGw9PWUmJihlPW4pOysrbzxyOykoZShpPXRbb10sdSk8MHx8MCE9PWUodSx1KSkmJih1PWksYT1vKTtyZXR1cm4gMD09PWUodSx1KT9hOnZvaWQgMH19LHQuc2h1ZmZsZT1mdW5jdGlvbih0LG4sZSl7Zm9yKHZhciByLGksbz0obnVsbD09ZT90Lmxlbmd0aDplKS0obj1udWxsPT1uPzA6K24pO287KWk9TWF0aC5yYW5kb20oKSpvLS18MCxyPXRbbytuXSx0W28rbl09dFtpK25dLHRbaStuXT1yO3JldHVybiB0fSx0LnN1bT1mdW5jdGlvbih0LG4pe3ZhciBlLHI9dC5sZW5ndGgsaT0tMSxvPTA7aWYobnVsbD09bilmb3IoOysraTxyOykoZT0rdFtpXSkmJihvKz1lKTtlbHNlIGZvcig7KytpPHI7KShlPStuKHRbaV0saSx0KSkmJihvKz1lKTtyZXR1cm4gb30sdC50aWNrcz1sLHQudGlja0luY3JlbWVudD1oLHQudGlja1N0ZXA9ZCx0LnRyYW5zcG9zZT1iLHQudmFyaWFuY2U9byx0LnppcD1mdW5jdGlvbigpe3JldHVybiBiKGFyZ3VtZW50cyl9LHQuYXhpc1RvcD1mdW5jdGlvbih0KXtyZXR1cm4gVChmcyx0KX0sdC5heGlzUmlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIFQoY3MsdCl9LHQuYXhpc0JvdHRvbT1mdW5jdGlvbih0KXtyZXR1cm4gVChzcyx0KX0sdC5heGlzTGVmdD1mdW5jdGlvbih0KXtyZXR1cm4gVChscyx0KX0sdC5icnVzaD1mdW5jdGlvbigpe3JldHVybiBlZShiaCl9LHQuYnJ1c2hYPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKHloKX0sdC5icnVzaFk9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoX2gpfSx0LmJydXNoU2VsZWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBuPXQuX19icnVzaDtyZXR1cm4gbj9uLmRpbS5vdXRwdXQobi5zZWxlY3Rpb24pOm51bGx9LHQuY2hvcmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGEsdSxmLGMsbCxoPXQubGVuZ3RoLGQ9W10scD1zKGgpLHY9W10sZz1bXSx5PWcuZ3JvdXBzPW5ldyBBcnJheShoKSxfPW5ldyBBcnJheShoKmgpO2ZvcihvPTAsYz0tMTsrK2M8aDspe2ZvcihhPTAsbD0tMTsrK2w8aDspYSs9dFtjXVtsXTtkLnB1c2goYSksdi5wdXNoKHMoaCkpLG8rPWF9Zm9yKGUmJnAuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBlKGRbdF0sZFtuXSl9KSxyJiZ2LmZvckVhY2goZnVuY3Rpb24obixlKXtuLnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4gcih0W2VdW25dLHRbZV1baV0pfSl9KSxmPShvPUNoKDAsa2gtbipoKS9vKT9uOmtoL2gsYT0wLGM9LTE7KytjPGg7KXtmb3IodT1hLGw9LTE7KytsPGg7KXt2YXIgYj1wW2NdLG09dltiXVtsXSx4PXRbYl1bbV0sdz1hLE09YSs9eCpvO19bbSpoK2JdPXtpbmRleDpiLHN1YmluZGV4Om0sc3RhcnRBbmdsZTp3LGVuZEFuZ2xlOk0sdmFsdWU6eH19eVtiXT17aW5kZXg6YixzdGFydEFuZ2xlOnUsZW5kQW5nbGU6YSx2YWx1ZTpkW2JdfSxhKz1mfWZvcihjPS0xOysrYzxoOylmb3IobD1jLTE7KytsPGg7KXt2YXIgQT1fW2wqaCtjXSxUPV9bYypoK2xdOyhBLnZhbHVlfHxULnZhbHVlKSYmZy5wdXNoKEEudmFsdWU8VC52YWx1ZT97c291cmNlOlQsdGFyZ2V0OkF9Ontzb3VyY2U6QSx0YXJnZXQ6VH0pfXJldHVybiBpP2cuc29ydChpKTpnfXZhciBuPTAsZT1udWxsLHI9bnVsbCxpPW51bGw7cmV0dXJuIHQucGFkQW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Q2goMCxlKSx0KTpufSx0LnNvcnRHcm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix0KTplfSx0LnNvcnRTdWJncm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bix0KTpyfSx0LnNvcnRDaG9yZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/aT1udWxsOihpPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3JldHVybiB0KG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlLGUuc291cmNlLnZhbHVlK2UudGFyZ2V0LnZhbHVlKX19KG4pKS5fPW4sdCk6aSYmaS5ffSx0fSx0LnJpYmJvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdCx1PVBoLmNhbGwoYXJndW1lbnRzKSxmPW4uYXBwbHkodGhpcyx1KSxjPWUuYXBwbHkodGhpcyx1KSxzPStyLmFwcGx5KHRoaXMsKHVbMF09Zix1KSksbD1pLmFwcGx5KHRoaXMsdSktRWgsaD1vLmFwcGx5KHRoaXMsdSktRWgsZD1zKlRoKGwpLHA9cypOaChsKSx2PStyLmFwcGx5KHRoaXMsKHVbMF09Yyx1KSksZz1pLmFwcGx5KHRoaXMsdSktRWgseT1vLmFwcGx5KHRoaXMsdSktRWg7aWYoYXx8KGE9dD1vZSgpKSxhLm1vdmVUbyhkLHApLGEuYXJjKDAsMCxzLGwsaCksbD09PWcmJmg9PT15fHwoYS5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCx2KlRoKGcpLHYqTmgoZykpLGEuYXJjKDAsMCx2LGcseSkpLGEucXVhZHJhdGljQ3VydmVUbygwLDAsZCxwKSxhLmNsb3NlUGF0aCgpLHQpcmV0dXJuIGE9bnVsbCx0K1wiXCJ8fG51bGx9dmFyIG49YWUsZT11ZSxyPWZlLGk9Y2Usbz1zZSxhPW51bGw7cmV0dXJuIHQucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6cn0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6aX0sdC5lbmRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cmUoK24pLHQpOm99LHQuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC50YXJnZXQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix0KTplfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09bj9udWxsOm4sdCk6YX0sdH0sdC5uZXN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChuLGksYSx1KXtpZihpPj1vLmxlbmd0aClyZXR1cm4gbnVsbCE9ZSYmbi5zb3J0KGUpLG51bGwhPXI/cihuKTpuO2Zvcih2YXIgZixjLHMsbD0tMSxoPW4ubGVuZ3RoLGQ9b1tpKytdLHA9aGUoKSx2PWEoKTsrK2w8aDspKHM9cC5nZXQoZj1kKGM9bltsXSkrXCJcIikpP3MucHVzaChjKTpwLnNldChmLFtjXSk7cmV0dXJuIHAuZWFjaChmdW5jdGlvbihuLGUpe3UodixlLHQobixpLGEsdSkpfSksdn1mdW5jdGlvbiBuKHQsZSl7aWYoKytlPm8ubGVuZ3RoKXJldHVybiB0O3ZhciBpLHU9YVtlLTFdO3JldHVybiBudWxsIT1yJiZlPj1vLmxlbmd0aD9pPXQuZW50cmllcygpOihpPVtdLHQuZWFjaChmdW5jdGlvbih0LHIpe2kucHVzaCh7a2V5OnIsdmFsdWVzOm4odCxlKX0pfSkpLG51bGwhPXU/aS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIHUodC5rZXksbi5rZXkpfSk6aX12YXIgZSxyLGksbz1bXSxhPVtdO3JldHVybiBpPXtvYmplY3Q6ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwLGRlLHBlKX0sbWFwOmZ1bmN0aW9uKG4pe3JldHVybiB0KG4sMCx2ZSxnZSl9LGVudHJpZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIG4odChlLDAsdmUsZ2UpLDApfSxrZXk6ZnVuY3Rpb24odCl7cmV0dXJuIG8ucHVzaCh0KSxpfSxzb3J0S2V5czpmdW5jdGlvbih0KXtyZXR1cm4gYVtvLmxlbmd0aC0xXT10LGl9LHNvcnRWYWx1ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGU9dCxpfSxyb2xsdXA6ZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxpfX19LHQuc2V0PV9lLHQubWFwPWhlLHQua2V5cz1mdW5jdGlvbih0KXt2YXIgbj1bXTtmb3IodmFyIGUgaW4gdCluLnB1c2goZSk7cmV0dXJuIG59LHQudmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaCh0W2VdKTtyZXR1cm4gbn0sdC5lbnRyaWVzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaCh7a2V5OmUsdmFsdWU6dFtlXX0pO3JldHVybiBufSx0LmNvbG9yPWt0LHQucmdiPVJ0LHQuaHNsPXF0LHQubGFiPUZ0LHQuaGNsPSR0LHQubGNoPWZ1bmN0aW9uKHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9WdCh0KTpuZXcgV3QoZSxuLHQsbnVsbD09cj8xOnIpfSx0LmdyYXk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IEl0KHQsMCwwLG51bGw9PW4/MTpuKX0sdC5jdWJlaGVsaXg9WnQsdC5jb250b3Vycz1NZSx0LmNvbnRvdXJEZW5zaXR5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KHYqeSkscj1uZXcgRmxvYXQzMkFycmF5KHYqeSk7dC5mb3JFYWNoKGZ1bmN0aW9uKHQsbixyKXt2YXIgaT1hKHQsbixyKStwPj5oLG89dSh0LG4scikrcD4+aDtpPj0wJiZpPHYmJm8+PTAmJm88eSYmKytlW2krbyp2XX0pLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpO3ZhciBpPV8oZSk7aWYoIUFycmF5LmlzQXJyYXkoaSkpe3ZhciBvPWcoZSk7aT1kKDAsbyxpKSwoaT1zKDAsTWF0aC5mbG9vcihvL2kpKmksaSkpLnNoaWZ0KCl9cmV0dXJuIE1lKCkudGhyZXNob2xkcyhpKS5zaXplKFt2LHldKShlKS5tYXAobil9ZnVuY3Rpb24gbih0KXtyZXR1cm4gdC52YWx1ZSo9TWF0aC5wb3coMiwtMipoKSx0LmNvb3JkaW5hdGVzLmZvckVhY2goZSksdH1mdW5jdGlvbiBlKHQpe3QuZm9yRWFjaChyKX1mdW5jdGlvbiByKHQpe3QuZm9yRWFjaChpKX1mdW5jdGlvbiBpKHQpe3RbMF09dFswXSpNYXRoLnBvdygyLGgpLXAsdFsxXT10WzFdKk1hdGgucG93KDIsaCktcH1mdW5jdGlvbiBvKCl7cmV0dXJuIHA9MypsLHY9ZisyKnA+PmgseT1jKzIqcD4+aCx0fXZhciBhPU5lLHU9U2UsZj05NjAsYz01MDAsbD0yMCxoPTIscD0zKmwsdj1mKzIqcD4+aCx5PWMrMipwPj5oLF89bWUoMjApO3JldHVybiB0Lng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOm1lKCtuKSx0KTphfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOm1lKCtuKSx0KTp1fSx0LnNpemU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW2YsY107dmFyIG49TWF0aC5jZWlsKHRbMF0pLGU9TWF0aC5jZWlsKHRbMV0pO2lmKCEobj49MHx8bj49MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBzaXplXCIpO3JldHVybiBmPW4sYz1lLG8oKX0sdC5jZWxsU2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gMTw8aDtpZighKCh0PSt0KT49MSkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBjZWxsIHNpemVcIik7cmV0dXJuIGg9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMiksbygpfSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/bWUoVWguY2FsbChuKSk6bWUobiksdCk6X30sdC5iYW5kd2lkdGg9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIE1hdGguc3FydChsKihsKzEpKTtpZighKCh0PSt0KT49MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBiYW5kd2lkdGhcIik7cmV0dXJuIGw9TWF0aC5yb3VuZCgoTWF0aC5zcXJ0KDQqdCp0KzEpLTEpLzIpLG8oKX0sdH0sdC5kaXNwYXRjaD1OLHQuZHJhZz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7dC5vbihcIm1vdXNlZG93bi5kcmFnXCIsZSkuZmlsdGVyKGcpLm9uKFwidG91Y2hzdGFydC5kcmFnXCIsbykub24oXCJ0b3VjaG1vdmUuZHJhZ1wiLGEpLm9uKFwidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnXCIsdSkuc3R5bGUoXCJ0b3VjaC1hY3Rpb25cIixcIm5vbmVcIikuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIixcInJnYmEoMCwwLDAsMClcIil9ZnVuY3Rpb24gZSgpe2lmKCFoJiZkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG49ZihcIm1vdXNlXCIscC5hcHBseSh0aGlzLGFyZ3VtZW50cykscHQsdGhpcyxhcmd1bWVudHMpO24mJihjdCh0LmV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLmRyYWdcIixyLCEwKS5vbihcIm1vdXNldXAuZHJhZ1wiLGksITApLF90KHQuZXZlbnQudmlldyksZ3QoKSxsPSExLGM9dC5ldmVudC5jbGllbnRYLHM9dC5ldmVudC5jbGllbnRZLG4oXCJzdGFydFwiKSl9fWZ1bmN0aW9uIHIoKXtpZih5dCgpLCFsKXt2YXIgbj10LmV2ZW50LmNsaWVudFgtYyxlPXQuZXZlbnQuY2xpZW50WS1zO2w9bipuK2UqZT5tfXkubW91c2UoXCJkcmFnXCIpfWZ1bmN0aW9uIGkoKXtjdCh0LmV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLmRyYWcgbW91c2V1cC5kcmFnXCIsbnVsbCksYnQodC5ldmVudC52aWV3LGwpLHl0KCkseS5tb3VzZShcImVuZFwiKX1mdW5jdGlvbiBvKCl7aWYoZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9cC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbz1yLmxlbmd0aDtmb3Iobj0wO248bzsrK24pKGU9ZihyW25dLmlkZW50aWZpZXIsaSx2dCx0aGlzLGFyZ3VtZW50cykpJiYoZ3QoKSxlKFwic3RhcnRcIikpfX1mdW5jdGlvbiBhKCl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1yLmxlbmd0aDtmb3Iobj0wO248aTsrK24pKGU9eVtyW25dLmlkZW50aWZpZXJdKSYmKHl0KCksZShcImRyYWdcIikpfWZ1bmN0aW9uIHUoKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXIubGVuZ3RoO2ZvcihoJiZjbGVhclRpbWVvdXQoaCksaD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aD1udWxsfSw1MDApLG49MDtuPGk7KytuKShlPXlbcltuXS5pZGVudGlmaWVyXSkmJihndCgpLGUoXCJlbmRcIikpfWZ1bmN0aW9uIGYoZSxyLGksbyxhKXt2YXIgdSxmLGMscz1pKHIsZSksbD1fLmNvcHkoKTtpZihvdChuZXcgeHQobixcImJlZm9yZXN0YXJ0XCIsdSxlLGIsc1swXSxzWzFdLDAsMCxsKSxmdW5jdGlvbigpe3JldHVybiBudWxsIT0odC5ldmVudC5zdWJqZWN0PXU9di5hcHBseShvLGEpKSYmKGY9dS54LXNbMF18fDAsYz11Lnktc1sxXXx8MCwhMCl9KSlyZXR1cm4gZnVuY3Rpb24gdChoKXt2YXIgZCxwPXM7c3dpdGNoKGgpe2Nhc2VcInN0YXJ0XCI6eVtlXT10LGQ9YisrO2JyZWFrO2Nhc2VcImVuZFwiOmRlbGV0ZSB5W2VdLC0tYjtjYXNlXCJkcmFnXCI6cz1pKHIsZSksZD1ifW90KG5ldyB4dChuLGgsdSxlLGQsc1swXStmLHNbMV0rYyxzWzBdLXBbMF0sc1sxXS1wWzFdLGwpLGwuYXBwbHksbCxbaCxvLGFdKX19dmFyIGMscyxsLGgsZD13dCxwPU10LHY9QXQsZz1UdCx5PXt9LF89TihcInN0YXJ0XCIsXCJkcmFnXCIsXCJlbmRcIiksYj0wLG09MDtyZXR1cm4gbi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KCEhdCksbik6ZH0sbi5jb250YWluZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KHQpLG4pOnB9LG4uc3ViamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQodCksbik6dn0sbi50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KCEhdCksbik6Z30sbi5vbj1mdW5jdGlvbigpe3ZhciB0PV8ub24uYXBwbHkoXyxhcmd1bWVudHMpO3JldHVybiB0PT09Xz9uOnR9LG4uY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT0odD0rdCkqdCxuKTpNYXRoLnNxcnQobSl9LG59LHQuZHJhZ0Rpc2FibGU9X3QsdC5kcmFnRW5hYmxlPWJ0LHQuZHN2Rm9ybWF0PWtlLHQuY3N2UGFyc2U9SGgsdC5jc3ZQYXJzZVJvd3M9WGgsdC5jc3ZGb3JtYXQ9R2gsdC5jc3ZGb3JtYXRSb3dzPVZoLHQudHN2UGFyc2U9V2gsdC50c3ZQYXJzZVJvd3M9WmgsdC50c3ZGb3JtYXQ9UWgsdC50c3ZGb3JtYXRSb3dzPUpoLHQuZWFzZUxpbmVhcj1mdW5jdGlvbih0KXtyZXR1cm4rdH0sdC5lYXNlUXVhZD1Gbix0LmVhc2VRdWFkSW49ZnVuY3Rpb24odCl7cmV0dXJuIHQqdH0sdC5lYXNlUXVhZE91dD1mdW5jdGlvbih0KXtyZXR1cm4gdCooMi10KX0sdC5lYXNlUXVhZEluT3V0PUZuLHQuZWFzZUN1YmljPUluLHQuZWFzZUN1YmljSW49ZnVuY3Rpb24odCl7cmV0dXJuIHQqdCp0fSx0LmVhc2VDdWJpY091dD1mdW5jdGlvbih0KXtyZXR1cm4tLXQqdCp0KzF9LHQuZWFzZUN1YmljSW5PdXQ9SW4sdC5lYXNlUG9seT1YbCx0LmVhc2VQb2x5SW49amwsdC5lYXNlUG9seU91dD1IbCx0LmVhc2VQb2x5SW5PdXQ9WGwsdC5lYXNlU2luPWpuLHQuZWFzZVNpbkluPWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguY29zKHQqVmwpfSx0LmVhc2VTaW5PdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc2luKHQqVmwpfSx0LmVhc2VTaW5Jbk91dD1qbix0LmVhc2VFeHA9SG4sdC5lYXNlRXhwSW49ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KDIsMTAqdC0xMCl9LHQuZWFzZUV4cE91dD1mdW5jdGlvbih0KXtyZXR1cm4gMS1NYXRoLnBvdygyLC0xMCp0KX0sdC5lYXNlRXhwSW5PdXQ9SG4sdC5lYXNlQ2lyY2xlPVhuLHQuZWFzZUNpcmNsZUluPWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguc3FydCgxLXQqdCl9LHQuZWFzZUNpcmNsZU91dD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KDEtIC0tdCp0KX0sdC5lYXNlQ2lyY2xlSW5PdXQ9WG4sdC5lYXNlQm91bmNlPUduLHQuZWFzZUJvdW5jZUluPWZ1bmN0aW9uKHQpe3JldHVybiAxLUduKDEtdCl9LHQuZWFzZUJvdW5jZU91dD1Hbix0LmVhc2VCb3VuY2VJbk91dD1mdW5jdGlvbih0KXtyZXR1cm4oKHQqPTIpPD0xPzEtR24oMS10KTpHbih0LTEpKzEpLzJ9LHQuZWFzZUJhY2s9YWgsdC5lYXNlQmFja0luPWloLHQuZWFzZUJhY2tPdXQ9b2gsdC5lYXNlQmFja0luT3V0PWFoLHQuZWFzZUVsYXN0aWM9Y2gsdC5lYXNlRWxhc3RpY0luPWZoLHQuZWFzZUVsYXN0aWNPdXQ9Y2gsdC5lYXNlRWxhc3RpY0luT3V0PXNoLHQuYmxvYj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oQ2UpfSx0LmJ1ZmZlcj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oUGUpfSx0LmRzdj1mdW5jdGlvbih0LG4sZSxyKXszPT09YXJndW1lbnRzLmxlbmd0aCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKHI9ZSxlPXZvaWQgMCk7dmFyIGk9a2UodCk7cmV0dXJuIFJlKG4sZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaS5wYXJzZSh0LHIpfSl9LHQuY3N2PUtoLHQudHN2PXRkLHQuaW1hZ2U9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxyKXt2YXIgaT1uZXcgSW1hZ2U7Zm9yKHZhciBvIGluIG4paVtvXT1uW29dO2kub25lcnJvcj1yLGkub25sb2FkPWZ1bmN0aW9uKCl7ZShpKX0saS5zcmM9dH0pfSx0Lmpzb249ZnVuY3Rpb24odCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKERlKX0sdC50ZXh0PVJlLHQueG1sPW5kLHQuaHRtbD1lZCx0LnN2Zz1yZCx0LmZvcmNlQ2VudGVyPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlLGksbz1yLmxlbmd0aCxhPTAsdT0wO2ZvcihlPTA7ZTxvOysrZSlhKz0oaT1yW2VdKS54LHUrPWkueTtmb3IoYT1hL28tdCx1PXUvby1uLGU9MDtlPG87KytlKShpPXJbZV0pLngtPWEsaS55LT11fXZhciByO3JldHVybiBudWxsPT10JiYodD0wKSxudWxsPT1uJiYobj0wKSxlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10fSxlLng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K24sZSk6dH0sZS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LGUpOm59LGV9LHQuZm9yY2VDb2xsaWRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtmb3IodmFyIHQsbixyLGYsYyxzLGwsaD1pLmxlbmd0aCxkPTA7ZDx1OysrZClmb3Iobj1qZShpLEdlLFZlKS52aXNpdEFmdGVyKGUpLHQ9MDt0PGg7Kyt0KXI9aVt0XSxzPW9bci5pbmRleF0sbD1zKnMsZj1yLngrci52eCxjPXIueStyLnZ5LG4udmlzaXQoZnVuY3Rpb24odCxuLGUsaSxvKXt2YXIgdT10LmRhdGEsaD10LnIsZD1zK2g7aWYoIXUpcmV0dXJuIG4+ZitkfHxpPGYtZHx8ZT5jK2R8fG88Yy1kO2lmKHUuaW5kZXg+ci5pbmRleCl7dmFyIHA9Zi11LngtdS52eCx2PWMtdS55LXUudnksZz1wKnArdip2O2c8ZCpkJiYoMD09PXAmJihwPU9lKCksZys9cCpwKSwwPT09diYmKHY9T2UoKSxnKz12KnYpLGc9KGQtKGc9TWF0aC5zcXJ0KGcpKSkvZyphLHIudngrPShwKj1nKSooZD0oaCo9aCkvKGwraCkpLHIudnkrPSh2Kj1nKSpkLHUudngtPXAqKGQ9MS1kKSx1LnZ5LT12KmQpfX0pfWZ1bmN0aW9uIGUodCl7aWYodC5kYXRhKXJldHVybiB0LnI9b1t0LmRhdGEuaW5kZXhdO2Zvcih2YXIgbj10LnI9MDtuPDQ7KytuKXRbbl0mJnRbbl0ucj50LnImJih0LnI9dFtuXS5yKX1mdW5jdGlvbiByKCl7aWYoaSl7dmFyIG4sZSxyPWkubGVuZ3RoO2ZvcihvPW5ldyBBcnJheShyKSxuPTA7bjxyOysrbillPWlbbl0sb1tlLmluZGV4XT0rdChlLG4saSl9fXZhciBpLG8sYT0xLHU9MTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzE6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LHIoKX0sbi5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LG4pOnV9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3Qsbik6YX0sbi5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOnFlKCtlKSxyKCksbik6dH0sbn0sdC5mb3JjZUxpbms9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihuKXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8ZDsrK2UpZm9yKHZhciBpLHUsZixzLGwsaCxwLHY9MDt2PHI7Kyt2KXU9KGk9dFt2XSkuc291cmNlLHM9KGY9aS50YXJnZXQpLngrZi52eC11LngtdS52eHx8T2UoKSxsPWYueStmLnZ5LXUueS11LnZ5fHxPZSgpLHMqPWg9KChoPU1hdGguc3FydChzKnMrbCpsKSktYVt2XSkvaCpuKm9bdl0sbCo9aCxmLnZ4LT1zKihwPWNbdl0pLGYudnktPWwqcCx1LnZ4Kz1zKihwPTEtcCksdS52eSs9bCpwfWZ1bmN0aW9uIGUoKXtpZih1KXt2YXIgbixlLGw9dS5sZW5ndGgsaD10Lmxlbmd0aCxkPWhlKHUscyk7Zm9yKG49MCxmPW5ldyBBcnJheShsKTtuPGg7KytuKShlPXRbbl0pLmluZGV4PW4sXCJvYmplY3RcIiE9dHlwZW9mIGUuc291cmNlJiYoZS5zb3VyY2U9V2UoZCxlLnNvdXJjZSkpLFwib2JqZWN0XCIhPXR5cGVvZiBlLnRhcmdldCYmKGUudGFyZ2V0PVdlKGQsZS50YXJnZXQpKSxmW2Uuc291cmNlLmluZGV4XT0oZltlLnNvdXJjZS5pbmRleF18fDApKzEsZltlLnRhcmdldC5pbmRleF09KGZbZS50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihuPTAsYz1uZXcgQXJyYXkoaCk7bjxoOysrbillPXRbbl0sY1tuXT1mW2Uuc291cmNlLmluZGV4XS8oZltlLnNvdXJjZS5pbmRleF0rZltlLnRhcmdldC5pbmRleF0pO289bmV3IEFycmF5KGgpLHIoKSxhPW5ldyBBcnJheShoKSxpKCl9fWZ1bmN0aW9uIHIoKXtpZih1KWZvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbilvW25dPStsKHRbbl0sbix0KX1mdW5jdGlvbiBpKCl7aWYodSlmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pYVtuXT0raCh0W25dLG4sdCl9dmFyIG8sYSx1LGYsYyxzPSRlLGw9ZnVuY3Rpb24odCl7cmV0dXJuIDEvTWF0aC5taW4oZlt0LnNvdXJjZS5pbmRleF0sZlt0LnRhcmdldC5pbmRleF0pfSxoPXFlKDMwKSxkPTE7cmV0dXJuIG51bGw9PXQmJih0PVtdKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7dT10LGUoKX0sbi5saW5rcz1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1yLGUoKSxuKTp0fSxuLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsbik6c30sbi5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0LG4pOmR9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxyKCksbik6bH0sbi5kaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGkoKSxuKTpofSxufSx0LmZvcmNlTWFueUJvZHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBuLHU9aS5sZW5ndGgsZj1qZShpLFplLFFlKS52aXNpdEFmdGVyKGUpO2ZvcihhPXQsbj0wO248dTsrK24pbz1pW25dLGYudmlzaXQocil9ZnVuY3Rpb24gbigpe2lmKGkpe3ZhciB0LG4sZT1pLmxlbmd0aDtmb3IodT1uZXcgQXJyYXkoZSksdD0wO3Q8ZTsrK3Qpbj1pW3RdLHVbbi5pbmRleF09K2Yobix0LGkpfX1mdW5jdGlvbiBlKHQpe3ZhciBuLGUscixpLG8sYT0wLGY9MDtpZih0Lmxlbmd0aCl7Zm9yKHI9aT1vPTA7bzw0Oysrbykobj10W29dKSYmKGU9TWF0aC5hYnMobi52YWx1ZSkpJiYoYSs9bi52YWx1ZSxmKz1lLHIrPWUqbi54LGkrPWUqbi55KTt0Lng9ci9mLHQueT1pL2Z9ZWxzZXsobj10KS54PW4uZGF0YS54LG4ueT1uLmRhdGEueTtkb3thKz11W24uZGF0YS5pbmRleF19d2hpbGUobj1uLm5leHQpfXQudmFsdWU9YX1mdW5jdGlvbiByKHQsbixlLHIpe2lmKCF0LnZhbHVlKXJldHVybiEwO3ZhciBpPXQueC1vLngsZj10Lnktby55LGg9ci1uLGQ9aSppK2YqZjtpZihoKmgvbDxkKXJldHVybiBkPHMmJigwPT09aSYmKGk9T2UoKSxkKz1pKmkpLDA9PT1mJiYoZj1PZSgpLGQrPWYqZiksZDxjJiYoZD1NYXRoLnNxcnQoYypkKSksby52eCs9aSp0LnZhbHVlKmEvZCxvLnZ5Kz1mKnQudmFsdWUqYS9kKSwhMDtpZighKHQubGVuZ3RofHxkPj1zKSl7KHQuZGF0YSE9PW98fHQubmV4dCkmJigwPT09aSYmKGk9T2UoKSxkKz1pKmkpLDA9PT1mJiYoZj1PZSgpLGQrPWYqZiksZDxjJiYoZD1NYXRoLnNxcnQoYypkKSkpO2Rve3QuZGF0YSE9PW8mJihoPXVbdC5kYXRhLmluZGV4XSphL2Qsby52eCs9aSpoLG8udnkrPWYqaCl9d2hpbGUodD10Lm5leHQpfX12YXIgaSxvLGEsdSxmPXFlKC0zMCksYz0xLHM9MS8wLGw9LjgxO3JldHVybiB0LmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LG4oKX0sdC5zdHJlbmd0aD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6cWUoK2UpLG4oKSx0KTpmfSx0LmRpc3RhbmNlTWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPW4qbix0KTpNYXRoLnNxcnQoYyl9LHQuZGlzdGFuY2VNYXg9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bipuLHQpOk1hdGguc3FydChzKX0sdC50aGV0YT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1uKm4sdCk6TWF0aC5zcXJ0KGwpfSx0fSx0LmZvcmNlUmFkaWFsPWZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQpe2Zvcih2YXIgcj0wLGk9by5sZW5ndGg7cjxpOysrcil7dmFyIGY9b1tyXSxjPWYueC1ufHwxZS02LHM9Zi55LWV8fDFlLTYsbD1NYXRoLnNxcnQoYypjK3MqcyksaD0odVtyXS1sKSphW3JdKnQvbDtmLnZ4Kz1jKmgsZi52eSs9cypofX1mdW5jdGlvbiBpKCl7aWYobyl7dmFyIG4sZT1vLmxlbmd0aDtmb3IoYT1uZXcgQXJyYXkoZSksdT1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pdVtuXT0rdChvW25dLG4sbyksYVtuXT1pc05hTih1W25dKT8wOitmKG9bbl0sbixvKX19dmFyIG8sYSx1LGY9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKCt0KSksbnVsbD09biYmKG49MCksbnVsbD09ZSYmKGU9MCksci5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe289dCxpKCl9LHIuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxpKCkscik6Zn0sci5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnFlKCtuKSxpKCkscik6dH0sci54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHIpOm59LHIueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdCxyKTplfSxyfSx0LmZvcmNlU2ltdWxhdGlvbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7ZSgpLGQuY2FsbChcInRpY2tcIixvKSxhPHUmJihoLnN0b3AoKSxkLmNhbGwoXCJlbmRcIixvKSl9ZnVuY3Rpb24gZSgpe3ZhciBuLGUscj10Lmxlbmd0aDtmb3IoYSs9KGMtYSkqZixsLmVhY2goZnVuY3Rpb24odCl7dChhKX0pLG49MDtuPHI7KytuKW51bGw9PShlPXRbbl0pLmZ4P2UueCs9ZS52eCo9czooZS54PWUuZngsZS52eD0wKSxudWxsPT1lLmZ5P2UueSs9ZS52eSo9czooZS55PWUuZnksZS52eT0wKX1mdW5jdGlvbiByKCl7Zm9yKHZhciBuLGU9MCxyPXQubGVuZ3RoO2U8cjsrK2Upe2lmKG49dFtlXSxuLmluZGV4PWUsaXNOYU4obi54KXx8aXNOYU4obi55KSl7dmFyIGk9b2QqTWF0aC5zcXJ0KGUpLG89ZSphZDtuLng9aSpNYXRoLmNvcyhvKSxuLnk9aSpNYXRoLnNpbihvKX0oaXNOYU4obi52eCl8fGlzTmFOKG4udnkpKSYmKG4udng9bi52eT0wKX19ZnVuY3Rpb24gaShuKXtyZXR1cm4gbi5pbml0aWFsaXplJiZuLmluaXRpYWxpemUodCksbn12YXIgbyxhPTEsdT0uMDAxLGY9MS1NYXRoLnBvdyh1LDEvMzAwKSxjPTAscz0uNixsPWhlKCksaD1UbihuKSxkPU4oXCJ0aWNrXCIsXCJlbmRcIik7cmV0dXJuIG51bGw9PXQmJih0PVtdKSxyKCksbz17dGljazplLHJlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZXN0YXJ0KG4pLG99LHN0b3A6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zdG9wKCksb30sbm9kZXM6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bixyKCksbC5lYWNoKGkpLG8pOnR9LGFscGhhOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LG8pOmF9LGFscGhhTWluOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LG8pOnV9LGFscGhhRGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3Qsbyk6K2Z9LGFscGhhVGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSt0LG8pOmN9LHZlbG9jaXR5RGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9MS10LG8pOjEtc30sZm9yY2U6ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhudWxsPT1uP2wucmVtb3ZlKHQpOmwuc2V0KHQsaShuKSksbyk6bC5nZXQodCl9LGZpbmQ6ZnVuY3Rpb24obixlLHIpe3ZhciBpLG8sYSx1LGYsYz0wLHM9dC5sZW5ndGg7Zm9yKG51bGw9PXI/cj0xLzA6cio9cixjPTA7YzxzOysrYykoYT0oaT1uLSh1PXRbY10pLngpKmkrKG89ZS11LnkpKm8pPHImJihmPXUscj1hKTtyZXR1cm4gZn0sb246ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhkLm9uKHQsbiksbyk6ZC5vbih0KX19fSx0LmZvcmNlWD1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgbixlPTAsYT1yLmxlbmd0aDtlPGE7KytlKShuPXJbZV0pLnZ4Kz0ob1tlXS1uLngpKmlbZV0qdH1mdW5jdGlvbiBlKCl7aWYocil7dmFyIG4sZT1yLmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24paVtuXT1pc05hTihvW25dPSt0KHJbbl0sbixyKSk/MDorYShyW25dLG4scil9fXZhciByLGksbyxhPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzA6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10LGUoKX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGUoKSxuKTphfSxuLng9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOnFlKCtyKSxlKCksbik6dH0sbn0sdC5mb3JjZVk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0KXtmb3IodmFyIG4sZT0wLGE9ci5sZW5ndGg7ZTxhOysrZSkobj1yW2VdKS52eSs9KG9bZV0tbi55KSppW2VdKnR9ZnVuY3Rpb24gZSgpe2lmKHIpe3ZhciBuLGU9ci5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KGUpLG89bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKWlbbl09aXNOYU4ob1tuXT0rdChyW25dLG4scikpPzA6K2EocltuXSxuLHIpfX12YXIgcixpLG8sYT1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUobnVsbD09dD8wOit0KSksbi5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3I9dCxlKCl9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxlKCksbik6YX0sbi55PWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHI/cjpxZSgrciksZSgpLG4pOnR9LG59LHQuZm9ybWF0RGVmYXVsdExvY2FsZT1vcix0LmZvcm1hdExvY2FsZT1pcix0LmZvcm1hdFNwZWNpZmllcj10cix0LnByZWNpc2lvbkZpeGVkPWFyLHQucHJlY2lzaW9uUHJlZml4PXVyLHQucHJlY2lzaW9uUm91bmQ9ZnIsdC5nZW9BcmVhPWZ1bmN0aW9uKHQpe3JldHVybiBkcC5yZXNldCgpLGJyKHQscHApLDIqZHB9LHQuZ2VvQm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG8sYSx1O2lmKG1kPWJkPS0oeWQ9X2Q9MS8wKSxUZD1bXSxicih0LGdwKSxlPVRkLmxlbmd0aCl7Zm9yKFRkLnNvcnQoWXIpLG49MSxvPVtyPVRkWzBdXTtuPGU7KytuKUJyKHIsKGk9VGRbbl0pWzBdKXx8QnIocixpWzFdKT8oT3IoclswXSxpWzFdKT5PcihyWzBdLHJbMV0pJiYoclsxXT1pWzFdKSxPcihpWzBdLHJbMV0pPk9yKHJbMF0sclsxXSkmJihyWzBdPWlbMF0pKTpvLnB1c2gocj1pKTtmb3IoYT0tMS8wLG49MCxyPW9bZT1vLmxlbmd0aC0xXTtuPD1lO3I9aSwrK24paT1vW25dLCh1PU9yKHJbMV0saVswXSkpPmEmJihhPXUseWQ9aVswXSxiZD1yWzFdKX1yZXR1cm4gVGQ9TmQ9bnVsbCx5ZD09PTEvMHx8X2Q9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbeWQsX2RdLFtiZCxtZF1dfSx0Lmdlb0NlbnRyb2lkPWZ1bmN0aW9uKHQpe1NkPUVkPWtkPUNkPVBkPXpkPVJkPUxkPURkPVVkPXFkPTAsYnIodCx5cCk7dmFyIG49RGQsZT1VZCxyPXFkLGk9bipuK2UqZStyKnI7cmV0dXJuIGk8WGQmJihuPXpkLGU9UmQscj1MZCxFZDxIZCYmKG49a2QsZT1DZCxyPVBkKSwoaT1uKm4rZSplK3Iqcik8WGQpP1tOYU4sTmFOXTpbdHAoZSxuKSpaZCxkcihyL2ZwKGkpKSpaZF19LHQuZ2VvQ2lyY2xlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHU9aS5hcHBseSh0aGlzLGFyZ3VtZW50cykqUWQsZj1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpRZDtyZXR1cm4gbj1bXSxlPXRpKC10WzBdKlFkLC10WzFdKlFkLDApLmludmVydCxvaShhLHUsZiwxKSx0PXt0eXBlOlwiUG9seWdvblwiLGNvb3JkaW5hdGVzOltuXX0sbj1lPW51bGwsdH12YXIgbixlLHI9UXIoWzAsMF0pLGk9UXIoOTApLG89UXIoNiksYT17cG9pbnQ6ZnVuY3Rpb24odCxyKXtuLnB1c2godD1lKHQscikpLHRbMF0qPVpkLHRbMV0qPVpkfX07cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcihbK25bMF0sK25bMV1dKSx0KTpyfSx0LnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246UXIoK24pLHQpOml9LHQucHJlY2lzaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcigrbiksdCk6b30sdH0sdC5nZW9DbGlwQW50aW1lcmlkaWFuPUNwLHQuZ2VvQ2xpcENpcmNsZT1naSx0Lmdlb0NsaXBFeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgdCxuLGUscj0wLGk9MCxvPTk2MCxhPTUwMDtyZXR1cm4gZT17c3RyZWFtOmZ1bmN0aW9uKGUpe3JldHVybiB0JiZuPT09ZT90OnQ9eWkocixpLG8sYSkobj1lKX0sZXh0ZW50OmZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt1WzBdWzBdLGk9K3VbMF1bMV0sbz0rdVsxXVswXSxhPSt1WzFdWzFdLHQ9bj1udWxsLGUpOltbcixpXSxbbyxhXV19fX0sdC5nZW9DbGlwUmVjdGFuZ2xlPXlpLHQuZ2VvQ29udGFpbnM9ZnVuY3Rpb24odCxuKXtyZXR1cm4odCYmcXAuaGFzT3duUHJvcGVydHkodC50eXBlKT9xcFt0LnR5cGVdOk1pKSh0LG4pfSx0Lmdlb0Rpc3RhbmNlPXdpLHQuZ2VvR3JhdGljdWxlPVBpLHQuZ2VvR3JhdGljdWxlMTA9ZnVuY3Rpb24oKXtyZXR1cm4gUGkoKSgpfSx0Lmdlb0ludGVycG9sYXRlPWZ1bmN0aW9uKHQsbil7dmFyIGU9dFswXSpRZCxyPXRbMV0qUWQsaT1uWzBdKlFkLG89blsxXSpRZCxhPW5wKHIpLHU9YXAociksZj1ucChvKSxjPWFwKG8pLHM9YSpucChlKSxsPWEqYXAoZSksaD1mKm5wKGkpLGQ9ZiphcChpKSxwPTIqZHIoZnAocHIoby1yKSthKmYqcHIoaS1lKSkpLHY9YXAocCksZz1wP2Z1bmN0aW9uKHQpe3ZhciBuPWFwKHQqPXApL3YsZT1hcChwLXQpL3Yscj1lKnMrbipoLGk9ZSpsK24qZCxvPWUqdStuKmM7cmV0dXJuW3RwKGkscikqWmQsdHAobyxmcChyKnIraSppKSkqWmRdfTpmdW5jdGlvbigpe3JldHVybltlKlpkLHIqWmRdfTtyZXR1cm4gZy5kaXN0YW5jZT1wLGd9LHQuZ2VvTGVuZ3RoPXhpLHQuZ2VvUGF0aD1mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiBvJiZpLnBvaW50UmFkaXVzKCtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYnIodCxyKGkpKSksaS5yZXN1bHQoKX12YXIgcixpLG89NC41O3JldHVybiBlLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihGcCkpLEZwLnJlc3VsdCgpfSxlLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihjdikpLGN2LnJlc3VsdCgpfSxlLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKEdwKSksR3AucmVzdWx0KCl9LGUuY2VudHJvaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihldikpLGV2LnJlc3VsdCgpfSxlLnByb2plY3Rpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj8odD1udWxsLHppKToodD1uKS5zdHJlYW0sZSk6dH0sZS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/KG49bnVsbCxuZXcgV2kpOm5ldyBHaShuPXQpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJmkucG9pbnRSYWRpdXMobyksZSk6bn0sZS5wb2ludFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6KGkucG9pbnRSYWRpdXMoK3QpLCt0KSxlKTpvfSxlLnByb2plY3Rpb24odCkuY29udGV4dChuKX0sdC5nZW9BbGJlcnM9bG8sdC5nZW9BbGJlcnNVc2E9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBuPXRbMF0sZT10WzFdO3JldHVybiB1PW51bGwsaS5wb2ludChuLGUpLHV8fChvLnBvaW50KG4sZSksdSl8fChhLnBvaW50KG4sZSksdSl9ZnVuY3Rpb24gbigpe3JldHVybiBlPXI9bnVsbCx0fXZhciBlLHIsaSxvLGEsdSxmPWxvKCksYz1zbygpLnJvdGF0ZShbMTU0LDBdKS5jZW50ZXIoWy0yLDU4LjVdKS5wYXJhbGxlbHMoWzU1LDY1XSkscz1zbygpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxsPXtwb2ludDpmdW5jdGlvbih0LG4pe3U9W3Qsbl19fTtyZXR1cm4gdC5pbnZlcnQ9ZnVuY3Rpb24odCl7dmFyIG49Zi5zY2FsZSgpLGU9Zi50cmFuc2xhdGUoKSxyPSh0WzBdLWVbMF0pL24saT0odFsxXS1lWzFdKS9uO3JldHVybihpPj0uMTImJmk8LjIzNCYmcj49LS40MjUmJnI8LS4yMTQ/YzppPj0uMTY2JiZpPC4yMzQmJnI+PS0uMjE0JiZyPC0uMTE1P3M6ZikuaW52ZXJ0KHQpfSx0LnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gZSYmcj09PXQ/ZTplPWZ1bmN0aW9uKHQpe3ZhciBuPXQubGVuZ3RoO3JldHVybntwb2ludDpmdW5jdGlvbihlLHIpe2Zvcih2YXIgaT0tMTsrK2k8bjspdFtpXS5wb2ludChlLHIpfSxzcGhlcmU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9LTE7KytlPG47KXRbZV0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5wb2x5Z29uRW5kKCl9fX0oW2Yuc3RyZWFtKHI9dCksYy5zdHJlYW0odCkscy5zdHJlYW0odCldKX0sdC5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYucHJlY2lzaW9uKHQpLGMucHJlY2lzaW9uKHQpLHMucHJlY2lzaW9uKHQpLG4oKSk6Zi5wcmVjaXNpb24oKX0sdC5zY2FsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZi5zY2FsZShuKSxjLnNjYWxlKC4zNSpuKSxzLnNjYWxlKG4pLHQudHJhbnNsYXRlKGYudHJhbnNsYXRlKCkpKTpmLnNjYWxlKCl9LHQudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBmLnRyYW5zbGF0ZSgpO3ZhciBlPWYuc2NhbGUoKSxyPSt0WzBdLHU9K3RbMV07cmV0dXJuIGk9Zi50cmFuc2xhdGUodCkuY2xpcEV4dGVudChbW3ItLjQ1NSplLHUtLjIzOCplXSxbcisuNDU1KmUsdSsuMjM4KmVdXSkuc3RyZWFtKGwpLG89Yy50cmFuc2xhdGUoW3ItLjMwNyplLHUrLjIwMSplXSkuY2xpcEV4dGVudChbW3ItLjQyNSplK0hkLHUrLjEyKmUrSGRdLFtyLS4yMTQqZS1IZCx1Ky4yMzQqZS1IZF1dKS5zdHJlYW0obCksYT1zLnRyYW5zbGF0ZShbci0uMjA1KmUsdSsuMjEyKmVdKS5jbGlwRXh0ZW50KFtbci0uMjE0KmUrSGQsdSsuMTY2KmUrSGRdLFtyLS4xMTUqZS1IZCx1Ky4yMzQqZS1IZF1dKS5zdHJlYW0obCksbigpfSx0LmZpdEV4dGVudD1mdW5jdGlvbihuLGUpe3JldHVybiB0byh0LG4sZSl9LHQuZml0U2l6ZT1mdW5jdGlvbihuLGUpe3JldHVybiBubyh0LG4sZSl9LHQuZml0V2lkdGg9ZnVuY3Rpb24obixlKXtyZXR1cm4gZW8odCxuLGUpfSx0LmZpdEhlaWdodD1mdW5jdGlvbihuLGUpe3JldHVybiBybyh0LG4sZSl9LHQuc2NhbGUoMTA3MCl9LHQuZ2VvQXppbXV0aGFsRXF1YWxBcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKGR2KS5zY2FsZSgxMjQuNzUpLmNsaXBBbmdsZSgxNzkuOTk5KX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWFSYXc9ZHYsdC5nZW9BemltdXRoYWxFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBhbyhwdikuc2NhbGUoNzkuNDE4OCkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3PXB2LHQuZ2VvQ29uaWNDb25mb3JtYWw9ZnVuY3Rpb24oKXtyZXR1cm4gZm8oX28pLnNjYWxlKDEwOS41KS5wYXJhbGxlbHMoWzMwLDMwXSl9LHQuZ2VvQ29uaWNDb25mb3JtYWxSYXc9X28sdC5nZW9Db25pY0VxdWFsQXJlYT1zbyx0Lmdlb0NvbmljRXF1YWxBcmVhUmF3PWNvLHQuZ2VvQ29uaWNFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBmbyhtbykuc2NhbGUoMTMxLjE1NCkuY2VudGVyKFswLDEzLjkzODldKX0sdC5nZW9Db25pY0VxdWlkaXN0YW50UmF3PW1vLHQuZ2VvRXF1aXJlY3Rhbmd1bGFyPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKGJvKS5zY2FsZSgxNTIuNjMpfSx0Lmdlb0VxdWlyZWN0YW5ndWxhclJhdz1ibyx0Lmdlb0dub21vbmljPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHhvKS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoNjApfSx0Lmdlb0dub21vbmljUmF3PXhvLHQuZ2VvSWRlbnRpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIGk9bz1udWxsLGF9dmFyIG4sZSxyLGksbyxhLHU9MSxmPTAsYz0wLHM9MSxsPTEsaD16aSxkPW51bGwscD16aTtyZXR1cm4gYT17c3RyZWFtOmZ1bmN0aW9uKHQpe3JldHVybiBpJiZvPT09dD9pOmk9aChwKG89dCkpfSxwb3N0Y2xpcDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1pLGQ9bj1lPXI9bnVsbCx0KCkpOnB9LGNsaXBFeHRlbnQ6ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9bnVsbD09aT8oZD1uPWU9cj1udWxsLHppKTp5aShkPStpWzBdWzBdLG49K2lbMF1bMV0sZT0raVsxXVswXSxyPStpWzFdWzFdKSx0KCkpOm51bGw9PWQ/bnVsbDpbW2Qsbl0sW2Uscl1dfSxzY2FsZTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13bygodT0rbikqcyx1KmwsZixjKSx0KCkpOnV9LHRyYW5zbGF0ZTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KnMsdSpsLGY9K25bMF0sYz0rblsxXSksdCgpKTpbZixjXX0scmVmbGVjdFg6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9d28odSoocz1uPy0xOjEpLHUqbCxmLGMpLHQoKSk6czwwfSxyZWZsZWN0WTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KnMsdSoobD1uPy0xOjEpLGYsYyksdCgpKTpsPDB9LGZpdEV4dGVudDpmdW5jdGlvbih0LG4pe3JldHVybiB0byhhLHQsbil9LGZpdFNpemU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbm8oYSx0LG4pfSxmaXRXaWR0aDpmdW5jdGlvbih0LG4pe3JldHVybiBlbyhhLHQsbil9LGZpdEhlaWdodDpmdW5jdGlvbih0LG4pe3JldHVybiBybyhhLHQsbil9fX0sdC5nZW9Qcm9qZWN0aW9uPWFvLHQuZ2VvUHJvamVjdGlvbk11dGF0b3I9dW8sdC5nZW9NZXJjYXRvcj1mdW5jdGlvbigpe3JldHVybiBnbyh2bykuc2NhbGUoOTYxL1dkKX0sdC5nZW9NZXJjYXRvclJhdz12byx0Lmdlb05hdHVyYWxFYXJ0aDE9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oTW8pLnNjYWxlKDE3NS4yOTUpfSx0Lmdlb05hdHVyYWxFYXJ0aDFSYXc9TW8sdC5nZW9PcnRob2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oQW8pLnNjYWxlKDI0OS41KS5jbGlwQW5nbGUoOTArSGQpfSx0Lmdlb09ydGhvZ3JhcGhpY1Jhdz1Bbyx0Lmdlb1N0ZXJlb2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oVG8pLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDE0Mil9LHQuZ2VvU3RlcmVvZ3JhcGhpY1Jhdz1Ubyx0Lmdlb1RyYW5zdmVyc2VNZXJjYXRvcj1mdW5jdGlvbigpe3ZhciB0PWdvKE5vKSxuPXQuY2VudGVyLGU9dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oWy10WzFdLHRbMF1dKToodD1uKCksW3RbMV0sLXRbMF1dKX0sdC5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShbdFswXSx0WzFdLHQubGVuZ3RoPjI/dFsyXSs5MDo5MF0pOih0PWUoKSxbdFswXSx0WzFdLHRbMl0tOTBdKX0sZShbMCwwLDkwXSkuc2NhbGUoMTU5LjE1NSl9LHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3PU5vLHQuZ2VvUm90YXRpb249aWksdC5nZW9TdHJlYW09YnIsdC5nZW9UcmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJue3N0cmVhbTpRaSh0KX19LHQuY2x1c3Rlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYT0wO3QuZWFjaEFmdGVyKGZ1bmN0aW9uKHQpe3ZhciBlPXQuY2hpbGRyZW47ZT8odC54PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZShFbywwKS90Lmxlbmd0aH0oZSksdC55PWZ1bmN0aW9uKHQpe3JldHVybiAxK3QucmVkdWNlKGtvLDApfShlKSk6KHQueD1vP2ErPW4odCxvKTowLHQueT0wLG89dCl9KTt2YXIgdT1mdW5jdGlvbih0KXtmb3IodmFyIG47bj10LmNoaWxkcmVuOyl0PW5bMF07cmV0dXJuIHR9KHQpLGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBuO249dC5jaGlsZHJlbjspdD1uW24ubGVuZ3RoLTFdO3JldHVybiB0fSh0KSxjPXUueC1uKHUsZikvMixzPWYueCtuKGYsdSkvMjtyZXR1cm4gdC5lYWNoQWZ0ZXIoaT9mdW5jdGlvbihuKXtuLng9KG4ueC10LngpKmUsbi55PSh0Lnktbi55KSpyfTpmdW5jdGlvbihuKXtuLng9KG4ueC1jKS8ocy1jKSplLG4ueT0oMS0odC55P24ueS90Lnk6MSkpKnJ9KX12YXIgbj1TbyxlPTEscj0xLGk9ITE7cmV0dXJuIHQuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1lLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPStuWzBdLHI9K25bMV0sdCk6aT9udWxsOltlLHJdfSx0Lm5vZGVTaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K25bMF0scj0rblsxXSx0KTppP1tlLHJdOm51bGx9LHR9LHQuaGllcmFyY2h5PVBvLHQucGFjaz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIHQueD1lLzIsdC55PXIvMixuP3QuZWFjaEJlZm9yZShRbyhuKSkuZWFjaEFmdGVyKEpvKGksLjUpKS5lYWNoQmVmb3JlKEtvKDEpKTp0LmVhY2hCZWZvcmUoUW8oWm8pKS5lYWNoQWZ0ZXIoSm8oJG8sMSkpLmVhY2hBZnRlcihKbyhpLHQuci9NYXRoLm1pbihlLHIpKSkuZWFjaEJlZm9yZShLbyhNYXRoLm1pbihlLHIpLygyKnQucikpKSx0fXZhciBuPW51bGwsZT0xLHI9MSxpPSRvO3JldHVybiB0LnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOlZvKHQpfShlKSx0KTpufSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K25bMF0scj0rblsxXSx0KTpbZSxyXX0sdC5wYWRkaW5nPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6aX0sdH0sdC5wYWNrU2libGluZ3M9ZnVuY3Rpb24odCl7cmV0dXJuIEdvKHQpLHR9LHQucGFja0VuY2xvc2U9VW8sdC5wYXJ0aXRpb249ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvPXQuaGVpZ2h0KzE7cmV0dXJuIHQueDA9dC55MD1yLHQueDE9bix0LnkxPWUvbyx0LmVhY2hCZWZvcmUoZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbiYmbmEoZSxlLngwLHQqKGUuZGVwdGgrMSkvbixlLngxLHQqKGUuZGVwdGgrMikvbik7dmFyIGk9ZS54MCxvPWUueTAsYT1lLngxLXIsdT1lLnkxLXI7YTxpJiYoaT1hPShpK2EpLzIpLHU8byYmKG89dT0obyt1KS8yKSxlLngwPWksZS55MD1vLGUueDE9YSxlLnkxPXV9fShlLG8pKSxpJiZ0LmVhY2hCZWZvcmUodGEpLHR9dmFyIG49MSxlPTEscj0wLGk9ITE7cmV0dXJuIHQucm91bmQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ISFuLHQpOml9LHQuc2l6ZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rclswXSxlPStyWzFdLHQpOltuLGVdfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K24sdCk6cn0sdH0sdC5zdHJhdGlmeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIHIsaSxvLGEsdSxmLGMscz10Lmxlbmd0aCxsPW5ldyBBcnJheShzKSxoPXt9O2ZvcihpPTA7aTxzOysraSlyPXRbaV0sdT1sW2ldPW5ldyBEbyhyKSxudWxsIT0oZj1uKHIsaSx0KSkmJihmKz1cIlwiKSYmKGhbYz1ndisodS5pZD1mKV09YyBpbiBoP192OnUpO2ZvcihpPTA7aTxzOysraSlpZih1PWxbaV0sbnVsbCE9KGY9ZSh0W2ldLGksdCkpJiYoZis9XCJcIikpe2lmKCEoYT1oW2d2K2ZdKSl0aHJvdyBuZXcgRXJyb3IoXCJtaXNzaW5nOiBcIitmKTtpZihhPT09X3YpdGhyb3cgbmV3IEVycm9yKFwiYW1iaWd1b3VzOiBcIitmKTthLmNoaWxkcmVuP2EuY2hpbGRyZW4ucHVzaCh1KTphLmNoaWxkcmVuPVt1XSx1LnBhcmVudD1hfWVsc2V7aWYobyl0aHJvdyBuZXcgRXJyb3IoXCJtdWx0aXBsZSByb290c1wiKTtvPXV9aWYoIW8pdGhyb3cgbmV3IEVycm9yKFwibm8gcm9vdFwiKTtpZihvLnBhcmVudD15dixvLmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC5kZXB0aD10LnBhcmVudC5kZXB0aCsxLC0tc30pLmVhY2hCZWZvcmUoTG8pLG8ucGFyZW50PW51bGwscz4wKXRocm93IG5ldyBFcnJvcihcImN5Y2xlXCIpO3JldHVybiBvfXZhciBuPWVhLGU9cmE7cmV0dXJuIHQuaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Vm8oZSksdCk6bn0sdC5wYXJlbnRJZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1WbyhuKSx0KTplfSx0fSx0LnRyZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBmPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHIsaSxvLGE9bmV3IGNhKHQsMCksdT1bYV07bj11LnBvcCgpOylpZihyPW4uXy5jaGlsZHJlbilmb3Iobi5jaGlsZHJlbj1uZXcgQXJyYXkobz1yLmxlbmd0aCksaT1vLTE7aT49MDstLWkpdS5wdXNoKGU9bi5jaGlsZHJlbltpXT1uZXcgY2EocltpXSxpKSksZS5wYXJlbnQ9bjtyZXR1cm4oYS5wYXJlbnQ9bmV3IGNhKG51bGwsMCkpLmNoaWxkcmVuPVthXSxhfSh0KTtpZihmLmVhY2hBZnRlcihuKSxmLnBhcmVudC5tPS1mLnosZi5lYWNoQmVmb3JlKGUpLHUpdC5lYWNoQmVmb3JlKHIpO2Vsc2V7dmFyIGM9dCxzPXQsbD10O3QuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng8Yy54JiYoYz10KSx0Lng+cy54JiYocz10KSx0LmRlcHRoPmwuZGVwdGgmJihsPXQpfSk7dmFyIGg9Yz09PXM/MTppKGMscykvMixkPWgtYy54LHA9by8ocy54K2grZCksdj1hLyhsLmRlcHRofHwxKTt0LmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC54PSh0LngrZCkqcCx0Lnk9dC5kZXB0aCp2fSl9cmV0dXJuIHR9ZnVuY3Rpb24gbih0KXt2YXIgbj10LmNoaWxkcmVuLGU9dC5wYXJlbnQuY2hpbGRyZW4scj10Lmk/ZVt0LmktMV06bnVsbDtpZihuKXsoZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9MCxyPTAsaT10LmNoaWxkcmVuLG89aS5sZW5ndGg7LS1vPj0wOykobj1pW29dKS56Kz1lLG4ubSs9ZSxlKz1uLnMrKHIrPW4uYyl9KSh0KTt2YXIgbz0oblswXS56K25bbi5sZW5ndGgtMV0ueikvMjtyPyh0Lno9ci56K2kodC5fLHIuXyksdC5tPXQuei1vKTp0Lno9b31lbHNlIHImJih0Lno9ci56K2kodC5fLHIuXykpO3QucGFyZW50LkE9ZnVuY3Rpb24odCxuLGUpe2lmKG4pe2Zvcih2YXIgcixvPXQsYT10LHU9bixmPW8ucGFyZW50LmNoaWxkcmVuWzBdLGM9by5tLHM9YS5tLGw9dS5tLGg9Zi5tO3U9YWEodSksbz1vYShvKSx1JiZvOylmPW9hKGYpLChhPWFhKGEpKS5hPXQsKHI9dS56K2wtby56LWMraSh1Ll8sby5fKSk+MCYmKHVhKGZhKHUsdCxlKSx0LHIpLGMrPXIscys9ciksbCs9dS5tLGMrPW8ubSxoKz1mLm0scys9YS5tO3UmJiFhYShhKSYmKGEudD11LGEubSs9bC1zKSxvJiYhb2EoZikmJihmLnQ9byxmLm0rPWMtaCxlPXQpfXJldHVybiBlfSh0LHIsdC5wYXJlbnQuQXx8ZVswXSl9ZnVuY3Rpb24gZSh0KXt0Ll8ueD10LnordC5wYXJlbnQubSx0Lm0rPXQucGFyZW50Lm19ZnVuY3Rpb24gcih0KXt0LngqPW8sdC55PXQuZGVwdGgqYX12YXIgaT1pYSxvPTEsYT0xLHU9bnVsbDtyZXR1cm4gdC5zZXBhcmF0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW4sdCk6aX0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSExLG89K25bMF0sYT0rblsxXSx0KTp1P251bGw6W28sYV19LHQubm9kZVNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ITAsbz0rblswXSxhPStuWzFdLHQpOnU/W28sYV06bnVsbH0sdH0sdC50cmVlbWFwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdC54MD10LnkwPTAsdC54MT1pLHQueTE9byx0LmVhY2hCZWZvcmUobiksYT1bMF0sciYmdC5lYWNoQmVmb3JlKHRhKSx0fWZ1bmN0aW9uIG4odCl7dmFyIG49YVt0LmRlcHRoXSxyPXQueDArbixpPXQueTArbixvPXQueDEtbixoPXQueTEtbjtvPHImJihyPW89KHIrbykvMiksaDxpJiYoaT1oPShpK2gpLzIpLHQueDA9cix0LnkwPWksdC54MT1vLHQueTE9aCx0LmNoaWxkcmVuJiYobj1hW3QuZGVwdGgrMV09dSh0KS8yLHIrPWwodCktbixpKz1mKHQpLW4sby09Yyh0KS1uLGgtPXModCktbixvPHImJihyPW89KHIrbykvMiksaDxpJiYoaT1oPShpK2gpLzIpLGUodCxyLGksbyxoKSl9dmFyIGU9bXYscj0hMSxpPTEsbz0xLGE9WzBdLHU9JG8sZj0kbyxjPSRvLHM9JG8sbD0kbztyZXR1cm4gdC5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIW4sdCk6cn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPStuWzBdLG89K25bMV0sdCk6W2ksb119LHQudGlsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1WbyhuKSx0KTplfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5wYWRkaW5nSW5uZXIobikucGFkZGluZ091dGVyKG4pOnQucGFkZGluZ0lubmVyKCl9LHQucGFkZGluZ0lubmVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6dX0sdC5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5wYWRkaW5nVG9wKG4pLnBhZGRpbmdSaWdodChuKS5wYWRkaW5nQm90dG9tKG4pLnBhZGRpbmdMZWZ0KG4pOnQucGFkZGluZ1RvcCgpfSx0LnBhZGRpbmdUb3A9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpmfSx0LnBhZGRpbmdSaWdodD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmN9LHQucGFkZGluZ0JvdHRvbT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOnN9LHQucGFkZGluZ0xlZnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpsfSx0fSx0LnRyZWVtYXBCaW5hcnk9ZnVuY3Rpb24odCxuLGUscixpKXtmdW5jdGlvbiBvKHQsbixlLHIsaSxhLHUpe2lmKHQ+PW4tMSl7dmFyIGM9Zlt0XTtyZXR1cm4gYy54MD1yLGMueTA9aSxjLngxPWEsdm9pZChjLnkxPXUpfWZvcih2YXIgbD1zW3RdLGg9ZS8yK2wsZD10KzEscD1uLTE7ZDxwOyl7dmFyIHY9ZCtwPj4+MTtzW3ZdPGg/ZD12KzE6cD12fWgtc1tkLTFdPHNbZF0taCYmdCsxPGQmJi0tZDt2YXIgZz1zW2RdLWwseT1lLWc7aWYoYS1yPnUtaSl7dmFyIF89KHIqeSthKmcpL2U7byh0LGQsZyxyLGksXyx1KSxvKGQsbix5LF8saSxhLHUpfWVsc2V7dmFyIGI9KGkqeSt1KmcpL2U7byh0LGQsZyxyLGksYSxiKSxvKGQsbix5LHIsYixhLHUpfX12YXIgYSx1LGY9dC5jaGlsZHJlbixjPWYubGVuZ3RoLHM9bmV3IEFycmF5KGMrMSk7Zm9yKHNbMF09dT1hPTA7YTxjOysrYSlzW2ErMV09dSs9ZlthXS52YWx1ZTtvKDAsYyx0LnZhbHVlLG4sZSxyLGkpfSx0LnRyZWVtYXBEaWNlPW5hLHQudHJlZW1hcFNsaWNlPXNhLHQudHJlZW1hcFNsaWNlRGljZT1mdW5jdGlvbih0LG4sZSxyLGkpeygxJnQuZGVwdGg/c2E6bmEpKHQsbixlLHIsaSl9LHQudHJlZW1hcFNxdWFyaWZ5PW12LHQudHJlZW1hcFJlc3F1YXJpZnk9eHYsdC5pbnRlcnBvbGF0ZT1kbix0LmludGVycG9sYXRlQXJyYXk9Zm4sdC5pbnRlcnBvbGF0ZUJhc2lzPUt0LHQuaW50ZXJwb2xhdGVCYXNpc0Nsb3NlZD10bix0LmludGVycG9sYXRlRGF0ZT1jbix0LmludGVycG9sYXRlTnVtYmVyPXNuLHQuaW50ZXJwb2xhdGVPYmplY3Q9bG4sdC5pbnRlcnBvbGF0ZVJvdW5kPXBuLHQuaW50ZXJwb2xhdGVTdHJpbmc9aG4sdC5pbnRlcnBvbGF0ZVRyYW5zZm9ybUNzcz1zbCx0LmludGVycG9sYXRlVHJhbnNmb3JtU3ZnPWxsLHQuaW50ZXJwb2xhdGVab29tPV9uLHQuaW50ZXJwb2xhdGVSZ2I9cmwsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzPWlsLHQuaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZD1vbCx0LmludGVycG9sYXRlSHNsPWdsLHQuaW50ZXJwb2xhdGVIc2xMb25nPXlsLHQuaW50ZXJwb2xhdGVMYWI9ZnVuY3Rpb24odCxuKXt2YXIgZT1hbigodD1GdCh0KSkubCwobj1GdChuKSkubCkscj1hbih0LmEsbi5hKSxpPWFuKHQuYixuLmIpLG89YW4odC5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0Lmw9ZShuKSx0LmE9cihuKSx0LmI9aShuKSx0Lm9wYWNpdHk9byhuKSx0K1wiXCJ9fSx0LmludGVycG9sYXRlSGNsPV9sLHQuaW50ZXJwb2xhdGVIY2xMb25nPWJsLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXg9bWwsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc9eGwsdC5waWVjZXdpc2U9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9MCxyPW4ubGVuZ3RoLTEsaT1uWzBdLG89bmV3IEFycmF5KHI8MD8wOnIpO2U8cjspb1tlXT10KGksaT1uWysrZV0pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj1NYXRoLm1heCgwLE1hdGgubWluKHItMSxNYXRoLmZsb29yKHQqPXIpKSk7cmV0dXJuIG9bbl0odC1uKX19LHQucXVhbnRpemU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWVbcl09dChyLyhuLTEpKTtyZXR1cm4gZX0sdC5wYXRoPW9lLHQucG9seWdvbkFyZWE9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9LTEscj10Lmxlbmd0aCxpPXRbci0xXSxvPTA7KytlPHI7KW49aSxpPXRbZV0sbys9blsxXSppWzBdLW5bMF0qaVsxXTtyZXR1cm4gby8yfSx0LnBvbHlnb25DZW50cm9pZD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPS0xLGk9dC5sZW5ndGgsbz0wLGE9MCx1PXRbaS0xXSxmPTA7KytyPGk7KW49dSx1PXRbcl0sZis9ZT1uWzBdKnVbMV0tdVswXSpuWzFdLG8rPShuWzBdK3VbMF0pKmUsYSs9KG5bMV0rdVsxXSkqZTtyZXR1cm4gZio9Myxbby9mLGEvZl19LHQucG9seWdvbkh1bGw9ZnVuY3Rpb24odCl7aWYoKGU9dC5sZW5ndGgpPDMpcmV0dXJuIG51bGw7dmFyIG4sZSxyPW5ldyBBcnJheShlKSxpPW5ldyBBcnJheShlKTtmb3Iobj0wO248ZTsrK24pcltuXT1bK3Rbbl1bMF0sK3Rbbl1bMV0sbl07Zm9yKHIuc29ydChkYSksbj0wO248ZTsrK24paVtuXT1bcltuXVswXSwtcltuXVsxXV07dmFyIG89cGEociksYT1wYShpKSx1PWFbMF09PT1vWzBdLGY9YVthLmxlbmd0aC0xXT09PW9bby5sZW5ndGgtMV0sYz1bXTtmb3Iobj1vLmxlbmd0aC0xO24+PTA7LS1uKWMucHVzaCh0W3Jbb1tuXV1bMl1dKTtmb3Iobj0rdTtuPGEubGVuZ3RoLWY7KytuKWMucHVzaCh0W3JbYVtuXV1bMl1dKTtyZXR1cm4gY30sdC5wb2x5Z29uQ29udGFpbnM9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGUscixpPXQubGVuZ3RoLG89dFtpLTFdLGE9blswXSx1PW5bMV0sZj1vWzBdLGM9b1sxXSxzPSExLGw9MDtsPGk7KytsKWU9KG89dFtsXSlbMF0sKHI9b1sxXSk+dSE9Yz51JiZhPChmLWUpKih1LXIpLyhjLXIpK2UmJihzPSFzKSxmPWUsYz1yO3JldHVybiBzfSx0LnBvbHlnb25MZW5ndGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj0tMSxpPXQubGVuZ3RoLG89dFtpLTFdLGE9b1swXSx1PW9bMV0sZj0wOysrcjxpOyluPWEsZT11LG4tPWE9KG89dFtyXSlbMF0sZS09dT1vWzFdLGYrPU1hdGguc3FydChuKm4rZSplKTtyZXR1cm4gZn0sdC5xdWFkdHJlZT1qZSx0LnJhbmRvbVVuaWZvcm09d3YsdC5yYW5kb21Ob3JtYWw9TXYsdC5yYW5kb21Mb2dOb3JtYWw9QXYsdC5yYW5kb21CYXRlcz1Odix0LnJhbmRvbUlyd2luSGFsbD1Udix0LnJhbmRvbUV4cG9uZW50aWFsPVN2LHQuc2NhbGVCYW5kPXlhLHQuc2NhbGVQb2ludD1mdW5jdGlvbigpe3JldHVybiBfYSh5YSgpLnBhZGRpbmdJbm5lcigxKSl9LHQuc2NhbGVJZGVudGl0eT1FYSx0LnNjYWxlTGluZWFyPVNhLHQuc2NhbGVMb2c9VWEsdC5zY2FsZU9yZGluYWw9Z2EsdC5zY2FsZUltcGxpY2l0PVB2LHQuc2NhbGVQb3c9T2EsdC5zY2FsZVNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2EoKS5leHBvbmVudCguNSl9LHQuc2NhbGVRdWFudGlsZT1ZYSx0LnNjYWxlUXVhbnRpemU9QmEsdC5zY2FsZVRocmVzaG9sZD1GYSx0LnNjYWxlVGltZT1mdW5jdGlvbigpe3JldHVybiBvZihjZyx1ZyxWdixYdixqdixGdixZdixEdix0LnRpbWVGb3JtYXQpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKX0sdC5zY2FsZVV0Yz1mdW5jdGlvbigpe3JldHVybiBvZihSZyxQZyx5Zyx2ZyxkZyxsZyxZdixEdix0LnV0Y0Zvcm1hdCkuZG9tYWluKFtEYXRlLlVUQygyZTMsMCwxKSxEYXRlLlVUQygyZTMsMCwyKV0pfSx0LnNjYWxlU2VxdWVudGlhbD1hZix0LnNjYWxlRGl2ZXJnaW5nPXVmLHQuc2NoZW1lQ2F0ZWdvcnkxMD1aZyx0LnNjaGVtZUFjY2VudD1RZyx0LnNjaGVtZURhcmsyPUpnLHQuc2NoZW1lUGFpcmVkPUtnLHQuc2NoZW1lUGFzdGVsMT10eSx0LnNjaGVtZVBhc3RlbDI9bnksdC5zY2hlbWVTZXQxPWV5LHQuc2NoZW1lU2V0Mj1yeSx0LnNjaGVtZVNldDM9aXksdC5pbnRlcnBvbGF0ZUJyQkc9YXksdC5zY2hlbWVCckJHPW95LHQuaW50ZXJwb2xhdGVQUkduPWZ5LHQuc2NoZW1lUFJHbj11eSx0LmludGVycG9sYXRlUGlZRz1zeSx0LnNjaGVtZVBpWUc9Y3ksdC5pbnRlcnBvbGF0ZVB1T3I9aHksdC5zY2hlbWVQdU9yPWx5LHQuaW50ZXJwb2xhdGVSZEJ1PXB5LHQuc2NoZW1lUmRCdT1keSx0LmludGVycG9sYXRlUmRHeT1neSx0LnNjaGVtZVJkR3k9dnksdC5pbnRlcnBvbGF0ZVJkWWxCdT1feSx0LnNjaGVtZVJkWWxCdT15eSx0LmludGVycG9sYXRlUmRZbEduPW15LHQuc2NoZW1lUmRZbEduPWJ5LHQuaW50ZXJwb2xhdGVTcGVjdHJhbD13eSx0LnNjaGVtZVNwZWN0cmFsPXh5LHQuaW50ZXJwb2xhdGVCdUduPUF5LHQuc2NoZW1lQnVHbj1NeSx0LmludGVycG9sYXRlQnVQdT1OeSx0LnNjaGVtZUJ1UHU9VHksdC5pbnRlcnBvbGF0ZUduQnU9RXksdC5zY2hlbWVHbkJ1PVN5LHQuaW50ZXJwb2xhdGVPclJkPUN5LHQuc2NoZW1lT3JSZD1reSx0LmludGVycG9sYXRlUHVCdUduPXp5LHQuc2NoZW1lUHVCdUduPVB5LHQuaW50ZXJwb2xhdGVQdUJ1PUx5LHQuc2NoZW1lUHVCdT1SeSx0LmludGVycG9sYXRlUHVSZD1VeSx0LnNjaGVtZVB1UmQ9RHksdC5pbnRlcnBvbGF0ZVJkUHU9T3ksdC5zY2hlbWVSZFB1PXF5LHQuaW50ZXJwb2xhdGVZbEduQnU9QnksdC5zY2hlbWVZbEduQnU9WXksdC5pbnRlcnBvbGF0ZVlsR249SXksdC5zY2hlbWVZbEduPUZ5LHQuaW50ZXJwb2xhdGVZbE9yQnI9SHksdC5zY2hlbWVZbE9yQnI9anksdC5pbnRlcnBvbGF0ZVlsT3JSZD1HeSx0LnNjaGVtZVlsT3JSZD1YeSx0LmludGVycG9sYXRlQmx1ZXM9JHksdC5zY2hlbWVCbHVlcz1WeSx0LmludGVycG9sYXRlR3JlZW5zPVp5LHQuc2NoZW1lR3JlZW5zPVd5LHQuaW50ZXJwb2xhdGVHcmV5cz1KeSx0LnNjaGVtZUdyZXlzPVF5LHQuaW50ZXJwb2xhdGVQdXJwbGVzPXRfLHQuc2NoZW1lUHVycGxlcz1LeSx0LmludGVycG9sYXRlUmVkcz1lXyx0LnNjaGVtZVJlZHM9bl8sdC5pbnRlcnBvbGF0ZU9yYW5nZXM9aV8sdC5zY2hlbWVPcmFuZ2VzPXJfLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXhEZWZhdWx0PW9fLHQuaW50ZXJwb2xhdGVSYWluYm93PWZ1bmN0aW9uKHQpeyh0PDB8fHQ+MSkmJih0LT1NYXRoLmZsb29yKHQpKTt2YXIgbj1NYXRoLmFicyh0LS41KTtyZXR1cm4gZl8uaD0zNjAqdC0xMDAsZl8ucz0xLjUtMS41Km4sZl8ubD0uOC0uOSpuLGZfK1wiXCJ9LHQuaW50ZXJwb2xhdGVXYXJtPWFfLHQuaW50ZXJwb2xhdGVDb29sPXVfLHQuaW50ZXJwb2xhdGVTaW5lYm93PWZ1bmN0aW9uKHQpe3ZhciBuO3JldHVybiB0PSguNS10KSpNYXRoLlBJLGNfLnI9MjU1KihuPU1hdGguc2luKHQpKSpuLGNfLmc9MjU1KihuPU1hdGguc2luKHQrc18pKSpuLGNfLmI9MjU1KihuPU1hdGguc2luKHQrbF8pKSpuLGNfK1wiXCJ9LHQuaW50ZXJwb2xhdGVWaXJpZGlzPWhfLHQuaW50ZXJwb2xhdGVNYWdtYT1kXyx0LmludGVycG9sYXRlSW5mZXJubz1wXyx0LmludGVycG9sYXRlUGxhc21hPXZfLHQuY3JlYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjdChDKHQpLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSl9LHQuY3JlYXRvcj1DLHQubG9jYWw9c3QsdC5tYXRjaGVyPWJzLHQubW91c2U9cHQsdC5uYW1lc3BhY2U9ayx0Lm5hbWVzcGFjZXM9dnMsdC5jbGllbnRQb2ludD1kdCx0LnNlbGVjdD1jdCx0LnNlbGVjdEFsbD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9uZXcgdXQoW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgdXQoW251bGw9PXQ/W106dF0sd3MpfSx0LnNlbGVjdGlvbj1mdCx0LnNlbGVjdG9yPXosdC5zZWxlY3RvckFsbD1MLHQuc3R5bGU9Rix0LnRvdWNoPXZ0LHQudG91Y2hlcz1mdW5jdGlvbih0LG4pe251bGw9PW4mJihuPWh0KCkudG91Y2hlcyk7Zm9yKHZhciBlPTAscj1uP24ubGVuZ3RoOjAsaT1uZXcgQXJyYXkocik7ZTxyOysrZSlpW2VdPWR0KHQsbltlXSk7cmV0dXJuIGl9LHQud2luZG93PUIsdC5jdXN0b21FdmVudD1vdCx0LmFyYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdCxjLHM9K24uYXBwbHkodGhpcyxhcmd1bWVudHMpLGw9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9by5hcHBseSh0aGlzLGFyZ3VtZW50cyktVF8sZD1hLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1UXyxwPWdfKGQtaCksdj1kPmg7aWYoZnx8KGY9dD1vZSgpKSxsPHMmJihjPWwsbD1zLHM9YyksbD5NXylpZihwPk5fLU1fKWYubW92ZVRvKGwqX18oaCksbCp4XyhoKSksZi5hcmMoMCwwLGwsaCxkLCF2KSxzPk1fJiYoZi5tb3ZlVG8ocypfXyhkKSxzKnhfKGQpKSxmLmFyYygwLDAscyxkLGgsdikpO2Vsc2V7dmFyIGcseSxfPWgsYj1kLG09aCx4PWQsdz1wLE09cCxBPXUuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsVD1BPk1fJiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6d18ocypzK2wqbCkpLE49bV8oZ18obC1zKS8yLCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksUz1OLEU9TjtpZihUPk1fKXt2YXIgaz1oZihUL3MqeF8oQSkpLEM9aGYoVC9sKnhfKEEpKTsody09MiprKT5NXz8oayo9dj8xOi0xLG0rPWsseC09ayk6KHc9MCxtPXg9KGgrZCkvMiksKE0tPTIqQyk+TV8/KEMqPXY/MTotMSxfKz1DLGItPUMpOihNPTAsXz1iPShoK2QpLzIpfXZhciBQPWwqX18oXyksej1sKnhfKF8pLFI9cypfXyh4KSxMPXMqeF8oeCk7aWYoTj5NXyl7dmFyIEQ9bCpfXyhiKSxVPWwqeF8oYikscT1zKl9fKG0pLE89cyp4XyhtKTtpZihwPEFfKXt2YXIgWT13Pk1fP2Z1bmN0aW9uKHQsbixlLHIsaSxvLGEsdSl7dmFyIGY9ZS10LGM9ci1uLHM9YS1pLGw9dS1vLGg9KHMqKG4tbyktbCoodC1pKSkvKGwqZi1zKmMpO3JldHVyblt0K2gqZixuK2gqY119KFAseixxLE8sRCxVLFIsTCk6W1IsTF0sQj1QLVlbMF0sRj16LVlbMV0sST1ELVlbMF0saj1VLVlbMV0sSD0xL3hfKGZ1bmN0aW9uKHQpe3JldHVybiB0PjE/MDp0PC0xP0FfOk1hdGguYWNvcyh0KX0oKEIqSStGKmopLyh3XyhCKkIrRipGKSp3XyhJKkkraipqKSkpLzIpLFg9d18oWVswXSpZWzBdK1lbMV0qWVsxXSk7Uz1tXyhOLChzLVgpLyhILTEpKSxFPW1fKE4sKGwtWCkvKEgrMSkpfX1NPk1fP0U+TV8/KGc9X2YocSxPLFAseixsLEUsdikseT1fZihELFUsUixMLGwsRSx2KSxmLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEU8Tj9mLmFyYyhnLmN4LGcuY3ksRSx5XyhnLnkwMSxnLngwMSkseV8oeS55MDEseS54MDEpLCF2KTooZi5hcmMoZy5jeCxnLmN5LEUseV8oZy55MDEsZy54MDEpLHlfKGcueTExLGcueDExKSwhdiksZi5hcmMoMCwwLGwseV8oZy5jeStnLnkxMSxnLmN4K2cueDExKSx5Xyh5LmN5K3kueTExLHkuY3greS54MTEpLCF2KSxmLmFyYyh5LmN4LHkuY3ksRSx5Xyh5LnkxMSx5LngxMSkseV8oeS55MDEseS54MDEpLCF2KSkpOihmLm1vdmVUbyhQLHopLGYuYXJjKDAsMCxsLF8sYiwhdikpOmYubW92ZVRvKFAseikscz5NXyYmdz5NXz9TPk1fPyhnPV9mKFIsTCxELFUscywtUyx2KSx5PV9mKFAseixxLE8scywtUyx2KSxmLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLFM8Tj9mLmFyYyhnLmN4LGcuY3ksUyx5XyhnLnkwMSxnLngwMSkseV8oeS55MDEseS54MDEpLCF2KTooZi5hcmMoZy5jeCxnLmN5LFMseV8oZy55MDEsZy54MDEpLHlfKGcueTExLGcueDExKSwhdiksZi5hcmMoMCwwLHMseV8oZy5jeStnLnkxMSxnLmN4K2cueDExKSx5Xyh5LmN5K3kueTExLHkuY3greS54MTEpLHYpLGYuYXJjKHkuY3gseS5jeSxTLHlfKHkueTExLHkueDExKSx5Xyh5LnkwMSx5LngwMSksIXYpKSk6Zi5hcmMoMCwwLHMseCxtLHYpOmYubGluZVRvKFIsTCl9ZWxzZSBmLm1vdmVUbygwLDApO2lmKGYuY2xvc2VQYXRoKCksdClyZXR1cm4gZj1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1kZixlPXBmLHI9bGYoMCksaT1udWxsLG89dmYsYT1nZix1PXlmLGY9bnVsbDtyZXR1cm4gdC5jZW50cm9pZD1mdW5jdGlvbigpe3ZhciB0PSgrbi5hcHBseSh0aGlzLGFyZ3VtZW50cykrICtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMixyPSgrby5hcHBseSh0aGlzLGFyZ3VtZW50cykrICthLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMi1BXy8yO3JldHVybltfXyhyKSp0LHhfKHIpKnRdfSx0LmlubmVyUmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC5vdXRlclJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6cn0sdC5wYWRSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09bj9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5lbmRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmF9LHQucGFkQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTp1fSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bnVsbD09bj9udWxsOm4sdCk6Zn0sdH0sdC5hcmVhPUFmLHQubGluZT1NZix0LnBpZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIHUsZixjLHMsbCxoPXQubGVuZ3RoLGQ9MCxwPW5ldyBBcnJheShoKSx2PW5ldyBBcnJheShoKSxnPStpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx5PU1hdGgubWluKE5fLE1hdGgubWF4KC1OXyxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1nKSksXz1NYXRoLm1pbihNYXRoLmFicyh5KS9oLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxiPV8qKHk8MD8tMToxKTtmb3IodT0wO3U8aDsrK3UpKGw9dltwW3VdPXVdPStuKHRbdV0sdSx0KSk+MCYmKGQrPWwpO2ZvcihudWxsIT1lP3Auc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBlKHZbdF0sdltuXSl9KTpudWxsIT1yJiZwLnNvcnQoZnVuY3Rpb24obixlKXtyZXR1cm4gcih0W25dLHRbZV0pfSksdT0wLGM9ZD8oeS1oKmIpL2Q6MDt1PGg7Kyt1LGc9cylmPXBbdV0scz1nKygobD12W2ZdKT4wP2wqYzowKStiLHZbZl09e2RhdGE6dFtmXSxpbmRleDp1LHZhbHVlOmwsc3RhcnRBbmdsZTpnLGVuZEFuZ2xlOnMscGFkQW5nbGU6X307cmV0dXJuIHZ9dmFyIG49TmYsZT1UZixyPW51bGwsaT1sZigwKSxvPWxmKE5fKSxhPWxmKDApO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC5zb3J0VmFsdWVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4scj1udWxsLHQpOmV9LHQuc29ydD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLGU9bnVsbCx0KTpyfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5wYWRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmF9LHR9LHQuYXJlYVJhZGlhbD1QZix0LnJhZGlhbEFyZWE9UGYsdC5saW5lUmFkaWFsPUNmLHQucmFkaWFsTGluZT1DZix0LnBvaW50UmFkaWFsPXpmLHQubGlua0hvcml6b250YWw9ZnVuY3Rpb24oKXtyZXR1cm4gRGYoVWYpfSx0LmxpbmtWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiBEZihxZil9LHQubGlua1JhZGlhbD1mdW5jdGlvbigpe3ZhciB0PURmKE9mKTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0fSx0LnN5bWJvbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdDtpZihyfHwocj10PW9lKCkpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLmRyYXcociwrZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLHQpcmV0dXJuIHI9bnVsbCx0K1wiXCJ8fG51bGx9dmFyIG49bGYoa18pLGU9bGYoNjQpLHI9bnVsbDtyZXR1cm4gdC50eXBlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZihlKSx0KTpufSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOm4sdCk6cn0sdH0sdC5zeW1ib2xzPVhfLHQuc3ltYm9sQ2lyY2xlPWtfLHQuc3ltYm9sQ3Jvc3M9Q18sdC5zeW1ib2xEaWFtb25kPVJfLHQuc3ltYm9sU3F1YXJlPU9fLHQuc3ltYm9sU3Rhcj1xXyx0LnN5bWJvbFRyaWFuZ2xlPUJfLHQuc3ltYm9sV3llPUhfLHQuY3VydmVCYXNpc0Nsb3NlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IElmKHQpfSx0LmN1cnZlQmFzaXNPcGVuPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgamYodCl9LHQuY3VydmVCYXNpcz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEZmKHQpfSx0LmN1cnZlQnVuZGxlPUdfLHQuY3VydmVDYXJkaW5hbENsb3NlZD0kXyx0LmN1cnZlQ2FyZGluYWxPcGVuPVdfLHQuY3VydmVDYXJkaW5hbD1WXyx0LmN1cnZlQ2F0bXVsbFJvbUNsb3NlZD1RXyx0LmN1cnZlQ2F0bXVsbFJvbU9wZW49Sl8sdC5jdXJ2ZUNhdG11bGxSb209Wl8sdC5jdXJ2ZUxpbmVhckNsb3NlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEtmKHQpfSx0LmN1cnZlTGluZWFyPW1mLHQuY3VydmVNb25vdG9uZVg9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpYyh0KX0sdC5jdXJ2ZU1vbm90b25lWT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG9jKHQpfSx0LmN1cnZlTmF0dXJhbD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHVjKHQpfSx0LmN1cnZlU3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsLjUpfSx0LmN1cnZlU3RlcEFmdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwxKX0sdC5jdXJ2ZVN0ZXBCZWZvcmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LDApfSx0LnN0YWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhLHU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksZj10Lmxlbmd0aCxjPXUubGVuZ3RoLHM9bmV3IEFycmF5KGMpO2ZvcihvPTA7bzxjOysrbyl7Zm9yKHZhciBsLGg9dVtvXSxkPXNbb109bmV3IEFycmF5KGYpLHA9MDtwPGY7KytwKWRbcF09bD1bMCwraSh0W3BdLGgscCx0KV0sbC5kYXRhPXRbcF07ZC5rZXk9aH1mb3Iobz0wLGE9ZShzKTtvPGM7KytvKXNbYVtvXV0uaW5kZXg9bztyZXR1cm4gcihzLGEpLHN9dmFyIG49bGYoW10pLGU9bGMscj1zYyxpPWhjO3JldHVybiB0LmtleXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKEVfLmNhbGwoZSkpLHQpOm59LHQudmFsdWU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0Lm9yZGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PW4/bGM6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKEVfLmNhbGwobikpLHQpOmV9LHQub2Zmc2V0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/c2M6bix0KTpyfSx0fSx0LnN0YWNrT2Zmc2V0RXhwYW5kPWZ1bmN0aW9uKHQsbil7aWYoKHI9dC5sZW5ndGgpPjApe2Zvcih2YXIgZSxyLGksbz0wLGE9dFswXS5sZW5ndGg7bzxhOysrbyl7Zm9yKGk9ZT0wO2U8cjsrK2UpaSs9dFtlXVtvXVsxXXx8MDtpZihpKWZvcihlPTA7ZTxyOysrZSl0W2VdW29dWzFdLz1pfXNjKHQsbil9fSx0LnN0YWNrT2Zmc2V0RGl2ZXJnaW5nPWZ1bmN0aW9uKHQsbil7aWYoKHU9dC5sZW5ndGgpPjEpZm9yKHZhciBlLHIsaSxvLGEsdSxmPTAsYz10W25bMF1dLmxlbmd0aDtmPGM7KytmKWZvcihvPWE9MCxlPTA7ZTx1OysrZSkoaT0ocj10W25bZV1dW2ZdKVsxXS1yWzBdKT49MD8oclswXT1vLHJbMV09bys9aSk6aTwwPyhyWzFdPWEsclswXT1hKz1pKTpyWzBdPW99LHQuc3RhY2tPZmZzZXROb25lPXNjLHQuc3RhY2tPZmZzZXRTaWxob3VldHRlPWZ1bmN0aW9uKHQsbil7aWYoKGU9dC5sZW5ndGgpPjApe2Zvcih2YXIgZSxyPTAsaT10W25bMF1dLG89aS5sZW5ndGg7cjxvOysrcil7Zm9yKHZhciBhPTAsdT0wO2E8ZTsrK2EpdSs9dFthXVtyXVsxXXx8MDtpW3JdWzFdKz1pW3JdWzBdPS11LzJ9c2ModCxuKX19LHQuc3RhY2tPZmZzZXRXaWdnbGU9ZnVuY3Rpb24odCxuKXtpZigoaT10Lmxlbmd0aCk+MCYmKHI9KGU9dFtuWzBdXSkubGVuZ3RoKT4wKXtmb3IodmFyIGUscixpLG89MCxhPTE7YTxyOysrYSl7Zm9yKHZhciB1PTAsZj0wLGM9MDt1PGk7Kyt1KXtmb3IodmFyIHM9dFtuW3VdXSxsPXNbYV1bMV18fDAsaD0obC0oc1thLTFdWzFdfHwwKSkvMixkPTA7ZDx1OysrZCl7dmFyIHA9dFtuW2RdXTtoKz0ocFthXVsxXXx8MCktKHBbYS0xXVsxXXx8MCl9Zis9bCxjKz1oKmx9ZVthLTFdWzFdKz1lW2EtMV1bMF09byxmJiYoby09Yy9mKX1lW2EtMV1bMV0rPWVbYS0xXVswXT1vLHNjKHQsbil9fSx0LnN0YWNrT3JkZXJBc2NlbmRpbmc9ZGMsdC5zdGFja09yZGVyRGVzY2VuZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gZGModCkucmV2ZXJzZSgpfSx0LnN0YWNrT3JkZXJJbnNpZGVPdXQ9ZnVuY3Rpb24odCl7dmFyIG4sZSxyPXQubGVuZ3RoLGk9dC5tYXAocGMpLG89bGModCkuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBpW25dLWlbdF19KSxhPTAsdT0wLGY9W10sYz1bXTtmb3Iobj0wO248cjsrK24pZT1vW25dLGE8dT8oYSs9aVtlXSxmLnB1c2goZSkpOih1Kz1pW2VdLGMucHVzaChlKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChmKX0sdC5zdGFja09yZGVyTm9uZT1sYyx0LnN0YWNrT3JkZXJSZXZlcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBsYyh0KS5yZXZlcnNlKCl9LHQudGltZUludGVydmFsPUlhLHQudGltZU1pbGxpc2Vjb25kPUR2LHQudGltZU1pbGxpc2Vjb25kcz1Vdix0LnV0Y01pbGxpc2Vjb25kPUR2LHQudXRjTWlsbGlzZWNvbmRzPVV2LHQudGltZVNlY29uZD1Zdix0LnRpbWVTZWNvbmRzPUJ2LHQudXRjU2Vjb25kPVl2LHQudXRjU2Vjb25kcz1Cdix0LnRpbWVNaW51dGU9RnYsdC50aW1lTWludXRlcz1Jdix0LnRpbWVIb3VyPWp2LHQudGltZUhvdXJzPUh2LHQudGltZURheT1Ydix0LnRpbWVEYXlzPUd2LHQudGltZVdlZWs9VnYsdC50aW1lV2Vla3M9dGcsdC50aW1lU3VuZGF5PVZ2LHQudGltZVN1bmRheXM9dGcsdC50aW1lTW9uZGF5PSR2LHQudGltZU1vbmRheXM9bmcsdC50aW1lVHVlc2RheT1Xdix0LnRpbWVUdWVzZGF5cz1lZyx0LnRpbWVXZWRuZXNkYXk9WnYsdC50aW1lV2VkbmVzZGF5cz1yZyx0LnRpbWVUaHVyc2RheT1Rdix0LnRpbWVUaHVyc2RheXM9aWcsdC50aW1lRnJpZGF5PUp2LHQudGltZUZyaWRheXM9b2csdC50aW1lU2F0dXJkYXk9S3YsdC50aW1lU2F0dXJkYXlzPWFnLHQudGltZU1vbnRoPXVnLHQudGltZU1vbnRocz1mZyx0LnRpbWVZZWFyPWNnLHQudGltZVllYXJzPXNnLHQudXRjTWludXRlPWxnLHQudXRjTWludXRlcz1oZyx0LnV0Y0hvdXI9ZGcsdC51dGNIb3Vycz1wZyx0LnV0Y0RheT12Zyx0LnV0Y0RheXM9Z2csdC51dGNXZWVrPXlnLHQudXRjV2Vla3M9QWcsdC51dGNTdW5kYXk9eWcsdC51dGNTdW5kYXlzPUFnLHQudXRjTW9uZGF5PV9nLHQudXRjTW9uZGF5cz1UZyx0LnV0Y1R1ZXNkYXk9YmcsdC51dGNUdWVzZGF5cz1OZyx0LnV0Y1dlZG5lc2RheT1tZyx0LnV0Y1dlZG5lc2RheXM9U2csdC51dGNUaHVyc2RheT14Zyx0LnV0Y1RodXJzZGF5cz1FZyx0LnV0Y0ZyaWRheT13Zyx0LnV0Y0ZyaWRheXM9a2csdC51dGNTYXR1cmRheT1NZyx0LnV0Y1NhdHVyZGF5cz1DZyx0LnV0Y01vbnRoPVBnLHQudXRjTW9udGhzPXpnLHQudXRjWWVhcj1SZyx0LnV0Y1llYXJzPURnLHQudGltZUZvcm1hdERlZmF1bHRMb2NhbGU9bmYsdC50aW1lRm9ybWF0TG9jYWxlPSRhLHQuaXNvRm9ybWF0PUZnLHQuaXNvUGFyc2U9SWcsdC5ub3c9d24sdC50aW1lcj1Ubix0LnRpbWVyRmx1c2g9Tm4sdC50aW1lb3V0PUNuLHQuaW50ZXJ2YWw9ZnVuY3Rpb24odCxuLGUpe3ZhciByPW5ldyBBbixpPW47cmV0dXJuIG51bGw9PW4/KHIucmVzdGFydCh0LG4sZSkscik6KG49K24sZT1udWxsPT1lP3duKCk6K2Usci5yZXN0YXJ0KGZ1bmN0aW9uIG8oYSl7YSs9aSxyLnJlc3RhcnQobyxpKz1uLGUpLHQoYSl9LG4sZSkscil9LHQudHJhbnNpdGlvbj1Zbix0LmFjdGl2ZT1mdW5jdGlvbih0LG4pe3ZhciBlLHIsaT10Ll9fdHJhbnNpdGlvbjtpZihpKXtuPW51bGw9PW4/bnVsbDpuK1wiXCI7Zm9yKHIgaW4gaSlpZigoZT1pW3JdKS5zdGF0ZT5MbCYmZS5uYW1lPT09bilyZXR1cm4gbmV3IE9uKFtbdF1dLGhoLG4sK3IpfXJldHVybiBudWxsfSx0LmludGVycnVwdD1Ebix0LnZvcm9ub2k9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiBuZXcgQmModC5tYXAoZnVuY3Rpb24ocixpKXt2YXIgbz1bTWF0aC5yb3VuZChuKHIsaSx0KS9hYikqYWIsTWF0aC5yb3VuZChlKHIsaSx0KS9hYikqYWJdO3JldHVybiBvLmluZGV4PWksby5kYXRhPXIsb30pLHIpfXZhciBuPWdjLGU9eWMscj1udWxsO3JldHVybiB0LnBvbHlnb25zPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4pLnBvbHlnb25zKCl9LHQubGlua3M9ZnVuY3Rpb24obil7cmV0dXJuIHQobikubGlua3MoKX0sdC50cmlhbmdsZXM9ZnVuY3Rpb24obil7cmV0dXJuIHQobikudHJpYW5nbGVzKCl9LHQueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6dmMoK2UpLHQpOm59LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246dmMoK24pLHQpOmV9LHQuZXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpbWytuWzBdWzBdLCtuWzBdWzFdXSxbK25bMV1bMF0sK25bMV1bMV1dXSx0KTpyJiZbW3JbMF1bMF0sclswXVsxXV0sW3JbMV1bMF0sclsxXVsxXV1dfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOltbMCwwXSxbK25bMF0sK25bMV1dXSx0KTpyJiZbclsxXVswXS1yWzBdWzBdLHJbMV1bMV0tclswXVsxXV19LHR9LHQuem9vbT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7dC5wcm9wZXJ0eShcIl9fem9vbVwiLCRjKS5vbihcIndoZWVsLnpvb21cIixmKS5vbihcIm1vdXNlZG93bi56b29tXCIsYykub24oXCJkYmxjbGljay56b29tXCIscykuZmlsdGVyKG0pLm9uKFwidG91Y2hzdGFydC56b29tXCIsbCkub24oXCJ0b3VjaG1vdmUuem9vbVwiLGgpLm9uKFwidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tXCIsZCkuc3R5bGUoXCJ0b3VjaC1hY3Rpb25cIixcIm5vbmVcIikuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIixcInJnYmEoMCwwLDAsMClcIil9ZnVuY3Rpb24gZSh0LG4pe3JldHVybihuPU1hdGgubWF4KHhbMF0sTWF0aC5taW4oeFsxXSxuKSkpPT09dC5rP3Q6bmV3IEljKG4sdC54LHQueSl9ZnVuY3Rpb24gcih0LG4sZSl7dmFyIHI9blswXS1lWzBdKnQuayxpPW5bMV0tZVsxXSp0Lms7cmV0dXJuIHI9PT10LngmJmk9PT10Lnk/dDpuZXcgSWModC5rLHIsaSl9ZnVuY3Rpb24gaSh0KXtyZXR1cm5bKCt0WzBdWzBdKyArdFsxXVswXSkvMiwoK3RbMF1bMV0rICt0WzFdWzFdKS8yXX1mdW5jdGlvbiBvKHQsbixlKXt0Lm9uKFwic3RhcnQuem9vbVwiLGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuc3RhcnQoKX0pLm9uKFwiaW50ZXJydXB0Lnpvb20gZW5kLnpvb21cIixmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkudHdlZW4oXCJ6b29tXCIsZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMscj1hKHRoaXMsdCksbz15LmFwcGx5KHRoaXMsdCksdT1lfHxpKG8pLGY9TWF0aC5tYXgob1sxXVswXS1vWzBdWzBdLG9bMV1bMV0tb1swXVsxXSksYz10aGlzLl9fem9vbSxzPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLHQpOm4sbD1BKGMuaW52ZXJ0KHUpLmNvbmNhdChmL2Muaykscy5pbnZlcnQodSkuY29uY2F0KGYvcy5rKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDE9PT10KXQ9cztlbHNle3ZhciBuPWwodCksZT1mL25bMl07dD1uZXcgSWMoZSx1WzBdLW5bMF0qZSx1WzFdLW5bMV0qZSl9ci56b29tKG51bGwsdCl9fSl9ZnVuY3Rpb24gYSh0LG4pe2Zvcih2YXIgZSxyPTAsaT1ULmxlbmd0aDtyPGk7KytyKWlmKChlPVRbcl0pLnRoYXQ9PT10KXJldHVybiBlO3JldHVybiBuZXcgdSh0LG4pfWZ1bmN0aW9uIHUodCxuKXt0aGlzLnRoYXQ9dCx0aGlzLmFyZ3M9bix0aGlzLmluZGV4PS0xLHRoaXMuYWN0aXZlPTAsdGhpcy5leHRlbnQ9eS5hcHBseSh0LG4pfWZ1bmN0aW9uIGYoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHQ9YSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxpPU1hdGgubWF4KHhbMF0sTWF0aC5taW4oeFsxXSxuLmsqTWF0aC5wb3coMixiLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpKSxvPXB0KHRoaXMpO2lmKHQud2hlZWwpdC5tb3VzZVswXVswXT09PW9bMF0mJnQubW91c2VbMF1bMV09PT1vWzFdfHwodC5tb3VzZVsxXT1uLmludmVydCh0Lm1vdXNlWzBdPW8pKSxjbGVhclRpbWVvdXQodC53aGVlbCk7ZWxzZXtpZihuLms9PT1pKXJldHVybjt0Lm1vdXNlPVtvLG4uaW52ZXJ0KG8pXSxEbih0aGlzKSx0LnN0YXJ0KCl9WGMoKSx0LndoZWVsPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LndoZWVsPW51bGwsdC5lbmQoKX0sayksdC56b29tKFwibW91c2VcIixfKHIoZShuLGkpLHQubW91c2VbMF0sdC5tb3VzZVsxXSksdC5leHRlbnQsdykpfX1mdW5jdGlvbiBjKCl7aWYoIXYmJmcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbj1hKHRoaXMsYXJndW1lbnRzKSxlPWN0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuem9vbVwiLGZ1bmN0aW9uKCl7aWYoWGMoKSwhbi5tb3ZlZCl7dmFyIGU9dC5ldmVudC5jbGllbnRYLW8saT10LmV2ZW50LmNsaWVudFktdTtuLm1vdmVkPWUqZStpKmk+Q31uLnpvb20oXCJtb3VzZVwiLF8ocihuLnRoYXQuX196b29tLG4ubW91c2VbMF09cHQobi50aGF0KSxuLm1vdXNlWzFdKSxuLmV4dGVudCx3KSl9LCEwKS5vbihcIm1vdXNldXAuem9vbVwiLGZ1bmN0aW9uKCl7ZS5vbihcIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbVwiLG51bGwpLGJ0KHQuZXZlbnQudmlldyxuLm1vdmVkKSxYYygpLG4uZW5kKCl9LCEwKSxpPXB0KHRoaXMpLG89dC5ldmVudC5jbGllbnRYLHU9dC5ldmVudC5jbGllbnRZO190KHQuZXZlbnQudmlldyksSGMoKSxuLm1vdXNlPVtpLHRoaXMuX196b29tLmludmVydChpKV0sRG4odGhpcyksbi5zdGFydCgpfX1mdW5jdGlvbiBzKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBpPXRoaXMuX196b29tLGE9cHQodGhpcyksdT1pLmludmVydChhKSxmPWkuayoodC5ldmVudC5zaGlmdEtleT8uNToyKSxjPV8ocihlKGksZiksYSx1KSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3KTtYYygpLE0+MD9jdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oTSkuY2FsbChvLGMsYSk6Y3QodGhpcykuY2FsbChuLnRyYW5zZm9ybSxjKX19ZnVuY3Rpb24gbCgpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixlLHIsaSxvPWEodGhpcyxhcmd1bWVudHMpLHU9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxmPXUubGVuZ3RoO2ZvcihIYygpLGU9MDtlPGY7KytlKWk9W2k9dnQodGhpcyx1LChyPXVbZV0pLmlkZW50aWZpZXIpLHRoaXMuX196b29tLmludmVydChpKSxyLmlkZW50aWZpZXJdLG8udG91Y2gwP28udG91Y2gxfHwoby50b3VjaDE9aSk6KG8udG91Y2gwPWksbj0hMCk7aWYocCYmKHA9Y2xlYXJUaW1lb3V0KHApLCFvLnRvdWNoMSkpcmV0dXJuIG8uZW5kKCksdm9pZCgoaT1jdCh0aGlzKS5vbihcImRibGNsaWNrLnpvb21cIikpJiZpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSk7biYmKHA9c2V0VGltZW91dChmdW5jdGlvbigpe3A9bnVsbH0sRSksRG4odGhpcyksby5zdGFydCgpKX19ZnVuY3Rpb24gaCgpe3ZhciBuLGksbyx1LGY9YSh0aGlzLGFyZ3VtZW50cyksYz10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLHM9Yy5sZW5ndGg7Zm9yKFhjKCkscCYmKHA9Y2xlYXJUaW1lb3V0KHApKSxuPTA7bjxzOysrbilvPXZ0KHRoaXMsYywoaT1jW25dKS5pZGVudGlmaWVyKSxmLnRvdWNoMCYmZi50b3VjaDBbMl09PT1pLmlkZW50aWZpZXI/Zi50b3VjaDBbMF09bzpmLnRvdWNoMSYmZi50b3VjaDFbMl09PT1pLmlkZW50aWZpZXImJihmLnRvdWNoMVswXT1vKTtpZihpPWYudGhhdC5fX3pvb20sZi50b3VjaDEpe3ZhciBsPWYudG91Y2gwWzBdLGg9Zi50b3VjaDBbMV0sZD1mLnRvdWNoMVswXSx2PWYudG91Y2gxWzFdLGc9KGc9ZFswXS1sWzBdKSpnKyhnPWRbMV0tbFsxXSkqZyx5PSh5PXZbMF0taFswXSkqeSsoeT12WzFdLWhbMV0pKnk7aT1lKGksTWF0aC5zcXJ0KGcveSkpLG89WyhsWzBdK2RbMF0pLzIsKGxbMV0rZFsxXSkvMl0sdT1bKGhbMF0rdlswXSkvMiwoaFsxXSt2WzFdKS8yXX1lbHNle2lmKCFmLnRvdWNoMClyZXR1cm47bz1mLnRvdWNoMFswXSx1PWYudG91Y2gwWzFdfWYuem9vbShcInRvdWNoXCIsXyhyKGksbyx1KSxmLmV4dGVudCx3KSl9ZnVuY3Rpb24gZCgpe3ZhciBuLGUscj1hKHRoaXMsYXJndW1lbnRzKSxpPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsbz1pLmxlbmd0aDtmb3IoSGMoKSx2JiZjbGVhclRpbWVvdXQodiksdj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dj1udWxsfSxFKSxuPTA7bjxvOysrbillPWlbbl0sci50b3VjaDAmJnIudG91Y2gwWzJdPT09ZS5pZGVudGlmaWVyP2RlbGV0ZSByLnRvdWNoMDpyLnRvdWNoMSYmci50b3VjaDFbMl09PT1lLmlkZW50aWZpZXImJmRlbGV0ZSByLnRvdWNoMTtyLnRvdWNoMSYmIXIudG91Y2gwJiYoci50b3VjaDA9ci50b3VjaDEsZGVsZXRlIHIudG91Y2gxKSxyLnRvdWNoMD9yLnRvdWNoMFsxXT10aGlzLl9fem9vbS5pbnZlcnQoci50b3VjaDBbMF0pOnIuZW5kKCl9dmFyIHAsdixnPUdjLHk9VmMsXz1RYyxiPVdjLG09WmMseD1bMCwxLzBdLHc9W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sTT0yNTAsQT1fbixUPVtdLFM9TihcInN0YXJ0XCIsXCJ6b29tXCIsXCJlbmRcIiksRT01MDAsaz0xNTAsQz0wO3JldHVybiBuLnRyYW5zZm9ybT1mdW5jdGlvbih0LG4pe3ZhciBlPXQuc2VsZWN0aW9uP3Quc2VsZWN0aW9uKCk6dDtlLnByb3BlcnR5KFwiX196b29tXCIsJGMpLHQhPT1lP28odCxuKTplLmludGVycnVwdCgpLmVhY2goZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4pLmVuZCgpfSl9LG4uc2NhbGVCeT1mdW5jdGlvbih0LGUpe24uc2NhbGVUbyh0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX196b29tLmsqKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSl9KX0sbi5zY2FsZVRvPWZ1bmN0aW9uKHQsbyl7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3ZhciB0PXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sYT1pKHQpLHU9bi5pbnZlcnQoYSksZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBvP28uYXBwbHkodGhpcyxhcmd1bWVudHMpOm87cmV0dXJuIF8ocihlKG4sZiksYSx1KSx0LHcpfSl9LG4udHJhbnNsYXRlQnk9ZnVuY3Rpb24odCxlLHIpe24udHJhbnNmb3JtKHQsZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl9fem9vbS50cmFuc2xhdGUoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLFwiZnVuY3Rpb25cIj09dHlwZW9mIHI/ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cikseS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdyl9KX0sbi50cmFuc2xhdGVUbz1mdW5jdGlvbih0LGUscil7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3ZhciB0PXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sbz1pKHQpO3JldHVybiBfKGZiLnRyYW5zbGF0ZShvWzBdLG9bMV0pLnNjYWxlKG4uaykudHJhbnNsYXRlKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/LWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1lLFwiZnVuY3Rpb25cIj09dHlwZW9mIHI/LXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1yKSx0LHcpfSl9LHUucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy5pbmRleD1ULnB1c2godGhpcyktMSx0aGlzLmVtaXQoXCJzdGFydFwiKSksdGhpc30sem9vbTpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLm1vdXNlJiZcIm1vdXNlXCIhPT10JiYodGhpcy5tb3VzZVsxXT1uLmludmVydCh0aGlzLm1vdXNlWzBdKSksdGhpcy50b3VjaDAmJlwidG91Y2hcIiE9PXQmJih0aGlzLnRvdWNoMFsxXT1uLmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiZcInRvdWNoXCIhPT10JiYodGhpcy50b3VjaDFbMV09bi5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPW4sdGhpcy5lbWl0KFwiem9vbVwiKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKFQuc3BsaWNlKHRoaXMuaW5kZXgsMSksdGhpcy5pbmRleD0tMSx0aGlzLmVtaXQoXCJlbmRcIikpLHRoaXN9LGVtaXQ6ZnVuY3Rpb24odCl7b3QobmV3IGZ1bmN0aW9uKHQsbixlKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMudHJhbnNmb3JtPWV9KG4sdCx0aGlzLnRoYXQuX196b29tKSxTLmFwcGx5LFMsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sbi53aGVlbERlbHRhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpGYygrdCksbik6Yn0sbi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCEhdCksbik6Z30sbi50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCEhdCksbik6bX0sbi5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxuKTp5fSxuLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh4WzBdPSt0WzBdLHhbMV09K3RbMV0sbik6W3hbMF0seFsxXV19LG4udHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3WzBdWzBdPSt0WzBdWzBdLHdbMV1bMF09K3RbMV1bMF0sd1swXVsxXT0rdFswXVsxXSx3WzFdWzFdPSt0WzFdWzFdLG4pOltbd1swXVswXSx3WzBdWzFdXSxbd1sxXVswXSx3WzFdWzFdXV19LG4uY29uc3RyYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfPXQsbik6X30sbi5kdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT0rdCxuKTpNfSxuLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPXQsbik6QX0sbi5vbj1mdW5jdGlvbigpe3ZhciB0PVMub24uYXBwbHkoUyxhcmd1bWVudHMpO3JldHVybiB0PT09Uz9uOnR9LG4uY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQz0odD0rdCkqdCxuKTpNYXRoLnNxcnQoQyl9LG59LHQuem9vbVRyYW5zZm9ybT1qYyx0Lnpvb21JZGVudGl0eT1mYixPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pOyIsIi8qIVxuICogTGlnaHRib3ggZm9yIEJvb3RzdHJhcCBieSBAYXNobGV5ZHdcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2hsZXlkdy9saWdodGJveFxuICpcbiAqIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc2hsZXlkdy9saWdodGJveC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbitmdW5jdGlvbiAoJCkge1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgTGlnaHRib3ggPSAoZnVuY3Rpb24gKCQpIHtcblxuXHR2YXIgTkFNRSA9ICdla2tvTGlnaHRib3gnO1xuXHR2YXIgSlFVRVJZX05PX0NPTkZMSUNUID0gJC5mbltOQU1FXTtcblxuXHR2YXIgRGVmYXVsdCA9IHtcblx0XHR0aXRsZTogJycsXG5cdFx0Zm9vdGVyOiAnJyxcblx0XHRtYXhXaWR0aDogOTk5OSxcblx0XHRtYXhIZWlnaHQ6IDk5OTksXG5cdFx0c2hvd0Fycm93czogdHJ1ZSwgLy9kaXNwbGF5IHRoZSBsZWZ0IC8gcmlnaHQgYXJyb3dzIG9yIG5vdFxuXHRcdHdyYXBwaW5nOiB0cnVlLCAvL2lmIHRydWUsIGdhbGxlcnkgbG9vcHMgaW5maW5pdGVseVxuXHRcdHR5cGU6IG51bGwsIC8vZm9yY2UgdGhlIGxpZ2h0Ym94IGludG8gaW1hZ2UgLyB5b3V0dWJlIG1vZGUuIGlmIG51bGwsIG9yIG5vdCBpbWFnZXx5b3V0dWJlfHZpbWVvOyBkZXRlY3QgaXRcblx0XHRhbHdheXNTaG93Q2xvc2U6IGZhbHNlLCAvL2Fsd2F5cyBzaG93IHRoZSBjbG9zZSBidXR0b24sIGV2ZW4gaWYgdGhlcmUgaXMgbm8gdGl0bGVcblx0XHRsb2FkaW5nTWVzc2FnZTogJzxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWxvYWRlclwiPjxkaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PicsIC8vIGh0dHA6Ly90b2JpYXNhaGxpbi5jb20vc3BpbmtpdC9cblx0XHRsZWZ0QXJyb3c6ICc8c3Bhbj4mIzEwMDk0Ozwvc3Bhbj4nLFxuXHRcdHJpZ2h0QXJyb3c6ICc8c3Bhbj4mIzEwMDk1Ozwvc3Bhbj4nLFxuXHRcdHN0cmluZ3M6IHtcblx0XHRcdGNsb3NlOiAnQ2xvc2UnLFxuXHRcdFx0ZmFpbDogJ0ZhaWxlZCB0byBsb2FkIGltYWdlOicsXG5cdFx0XHR0eXBlOiAnQ291bGQgbm90IGRldGVjdCByZW1vdGUgdGFyZ2V0IHR5cGUuIEZvcmNlIHRoZSB0eXBlIHVzaW5nIGRhdGEtdHlwZSdcblx0XHR9LFxuXHRcdGRvYzogZG9jdW1lbnQsIC8vIGlmIGluIGFuIGlmcmFtZSBjYW4gc3BlY2lmeSB0b3AuZG9jdW1lbnRcblx0XHRvblNob3c6IGZ1bmN0aW9uIG9uU2hvdygpIHt9LFxuXHRcdG9uU2hvd246IGZ1bmN0aW9uIG9uU2hvd24oKSB7fSxcblx0XHRvbkhpZGU6IGZ1bmN0aW9uIG9uSGlkZSgpIHt9LFxuXHRcdG9uSGlkZGVuOiBmdW5jdGlvbiBvbkhpZGRlbigpIHt9LFxuXHRcdG9uTmF2aWdhdGU6IGZ1bmN0aW9uIG9uTmF2aWdhdGUoKSB7fSxcblx0XHRvbkNvbnRlbnRMb2FkZWQ6IGZ1bmN0aW9uIG9uQ29udGVudExvYWRlZCgpIHt9XG5cdH07XG5cblx0dmFyIExpZ2h0Ym94ID0gKGZ1bmN0aW9uICgpIHtcblx0XHRfY3JlYXRlQ2xhc3MoTGlnaHRib3gsIG51bGwsIFt7XG5cdFx0XHRrZXk6ICdEZWZhdWx0JyxcblxuXHRcdFx0LyoqXG4gICAgICAgQ2xhc3MgcHJvcGVydGllczpcbiAgIFx0IF8kZWxlbWVudDogbnVsbCAtPiB0aGUgPGE+IGVsZW1lbnQgY3VycmVudGx5IGJlaW5nIGRpc3BsYXllZFxuICAgIF8kbW9kYWw6IFRoZSBib290c3RyYXAgbW9kYWwgZ2VuZXJhdGVkXG4gICAgICAgXyRtb2RhbERpYWxvZzogVGhlIC5tb2RhbC1kaWFsb2dcbiAgICAgICBfJG1vZGFsQ29udGVudDogVGhlIC5tb2RhbC1jb250ZW50XG4gICAgICAgXyRtb2RhbEJvZHk6IFRoZSAubW9kYWwtYm9keVxuICAgICAgIF8kbW9kYWxIZWFkZXI6IFRoZSAubW9kYWwtaGVhZGVyXG4gICAgICAgXyRtb2RhbEZvb3RlcjogVGhlIC5tb2RhbC1mb290ZXJcbiAgICBfJGxpZ2h0Ym94Q29udGFpbmVyT25lOiBDb250YWluZXIgb2YgdGhlIGZpcnN0IGxpZ2h0Ym94IGVsZW1lbnRcbiAgICBfJGxpZ2h0Ym94Q29udGFpbmVyVHdvOiBDb250YWluZXIgb2YgdGhlIHNlY29uZCBsaWdodGJveCBlbGVtZW50XG4gICAgXyRsaWdodGJveEJvZHk6IEZpcnN0IGVsZW1lbnQgaW4gdGhlIGNvbnRhaW5lclxuICAgIF8kbW9kYWxBcnJvd3M6IFRoZSBvdmVybGF5ZWQgYXJyb3dzIGNvbnRhaW5lclxuICAgXHQgXyRnYWxsZXJ5SXRlbXM6IE90aGVyIDxhPidzIGF2YWlsYWJsZSBmb3IgdGhpcyBnYWxsZXJ5XG4gICAgX2dhbGxlcnlOYW1lOiBOYW1lIG9mIHRoZSBjdXJyZW50IGRhdGEoJ2dhbGxlcnknKSBzaG93aW5nXG4gICAgX2dhbGxlcnlJbmRleDogVGhlIGN1cnJlbnQgaW5kZXggb2YgdGhlIF8kZ2FsbGVyeUl0ZW1zIGJlaW5nIHNob3duXG4gICBcdCBfY29uZmlnOiB7fSB0aGUgb3B0aW9ucyBmb3IgdGhlIG1vZGFsXG4gICAgX21vZGFsSWQ6IHVuaXF1ZSBpZCBmb3IgdGhlIGN1cnJlbnQgbGlnaHRib3hcbiAgICBfcGFkZGluZyAvIF9ib3JkZXI6IENTUyBwcm9wZXJ0aWVzIGZvciB0aGUgbW9kYWwgY29udGFpbmVyOyB0aGVzZSBhcmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGF2YWlsYWJsZSBzcGFjZSBmb3IgdGhlIGNvbnRlbnRcbiAgIFx0ICovXG5cblx0XHRcdGdldDogZnVuY3Rpb24gZ2V0KCkge1xuXHRcdFx0XHRyZXR1cm4gRGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XSk7XG5cblx0XHRmdW5jdGlvbiBMaWdodGJveCgkZWxlbWVudCwgY29uZmlnKSB7XG5cdFx0XHR2YXIgX3RoaXMgPSB0aGlzO1xuXG5cdFx0XHRfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlnaHRib3gpO1xuXG5cdFx0XHR0aGlzLl9jb25maWcgPSAkLmV4dGVuZCh7fSwgRGVmYXVsdCwgY29uZmlnKTtcblx0XHRcdHRoaXMuXyRtb2RhbEFycm93cyA9IG51bGw7XG5cdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXggPSAwO1xuXHRcdFx0dGhpcy5fZ2FsbGVyeU5hbWUgPSBudWxsO1xuXHRcdFx0dGhpcy5fcGFkZGluZyA9IG51bGw7XG5cdFx0XHR0aGlzLl9ib3JkZXIgPSBudWxsO1xuXHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gZmFsc2U7XG5cdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gZmFsc2U7XG5cdFx0XHR0aGlzLl93YW50ZWRXaWR0aCA9IDA7XG5cdFx0XHR0aGlzLl93YW50ZWRIZWlnaHQgPSAwO1xuXHRcdFx0dGhpcy5fdG91Y2hzdGFydFggPSAwO1xuXHRcdFx0dGhpcy5fdG91Y2hlbmRYID0gMDtcblxuXHRcdFx0dGhpcy5fbW9kYWxJZCA9ICdla2tvTGlnaHRib3gtJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAgKyAxKTtcblx0XHRcdHRoaXMuXyRlbGVtZW50ID0gJGVsZW1lbnQgaW5zdGFuY2VvZiBqUXVlcnkgPyAkZWxlbWVudCA6ICQoJGVsZW1lbnQpO1xuXG5cdFx0XHR0aGlzLl9pc0Jvb3RzdHJhcDMgPSAkLmZuLm1vZGFsLkNvbnN0cnVjdG9yLlZFUlNJT05bMF0gPT0gMztcblxuXHRcdFx0dmFyIGg0ID0gJzxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+JyArICh0aGlzLl9jb25maWcudGl0bGUgfHwgXCImbmJzcDtcIikgKyAnPC9oND4nO1xuXHRcdFx0dmFyIGJ0biA9ICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiJyArIHRoaXMuX2NvbmZpZy5zdHJpbmdzLmNsb3NlICsgJ1wiPjxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+PC9idXR0b24+JztcblxuXHRcdFx0dmFyIGhlYWRlciA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyJyArICh0aGlzLl9jb25maWcudGl0bGUgfHwgdGhpcy5fY29uZmlnLmFsd2F5c1Nob3dDbG9zZSA/ICcnIDogJyBoaWRlJykgKyAnXCI+JyArICh0aGlzLl9pc0Jvb3RzdHJhcDMgPyBidG4gKyBoNCA6IGg0ICsgYnRuKSArICc8L2Rpdj4nO1xuXHRcdFx0dmFyIGZvb3RlciA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyJyArICh0aGlzLl9jb25maWcuZm9vdGVyID8gJycgOiAnIGhpZGUnKSArICdcIj4nICsgKHRoaXMuX2NvbmZpZy5mb290ZXIgfHwgXCImbmJzcDtcIikgKyAnPC9kaXY+Jztcblx0XHRcdHZhciBib2R5ID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+PGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtY29udGFpbmVyXCI+PGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtaXRlbSBmYWRlIGluIHNob3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1pdGVtIGZhZGVcIj48L2Rpdj48L2Rpdj48L2Rpdj4nO1xuXHRcdFx0dmFyIGRpYWxvZyA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCIgcm9sZT1cImRvY3VtZW50XCI+PGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj4nICsgaGVhZGVyICsgYm9keSArIGZvb3RlciArICc8L2Rpdj48L2Rpdj4nO1xuXHRcdFx0JCh0aGlzLl9jb25maWcuZG9jLmJvZHkpLmFwcGVuZCgnPGRpdiBpZD1cIicgKyB0aGlzLl9tb2RhbElkICsgJ1wiIGNsYXNzPVwiZWtrby1saWdodGJveCBtb2RhbCBmYWRlXCIgdGFiaW5kZXg9XCItMVwiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+JyArIGRpYWxvZyArICc8L2Rpdj4nKTtcblxuXHRcdFx0dGhpcy5fJG1vZGFsID0gJCgnIycgKyB0aGlzLl9tb2RhbElkLCB0aGlzLl9jb25maWcuZG9jKTtcblx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZyA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtZGlhbG9nJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbENvbnRlbnQgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWNvbnRlbnQnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQm9keSA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtYm9keScpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxIZWFkZXIgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWhlYWRlcicpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxGb290ZXIgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWZvb3RlcicpLmZpcnN0KCk7XG5cblx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lciA9IHRoaXMuXyRtb2RhbEJvZHkuZmluZCgnLmVra28tbGlnaHRib3gtY29udGFpbmVyJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRsaWdodGJveEJvZHlPbmUgPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnPiBkaXY6Zmlyc3QtY2hpbGQnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Qm9keVR3byA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCc+IGRpdjpsYXN0LWNoaWxkJykuZmlyc3QoKTtcblxuXHRcdFx0dGhpcy5fYm9yZGVyID0gdGhpcy5fY2FsY3VsYXRlQm9yZGVycygpO1xuXHRcdFx0dGhpcy5fcGFkZGluZyA9IHRoaXMuX2NhbGN1bGF0ZVBhZGRpbmcoKTtcblxuXHRcdFx0dGhpcy5fZ2FsbGVyeU5hbWUgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdnYWxsZXJ5Jyk7XG5cdFx0XHRpZiAodGhpcy5fZ2FsbGVyeU5hbWUpIHtcblx0XHRcdFx0dGhpcy5fJGdhbGxlcnlJdGVtcyA9ICQoZG9jdW1lbnQuYm9keSkuZmluZCgnKltkYXRhLWdhbGxlcnk9XCInICsgdGhpcy5fZ2FsbGVyeU5hbWUgKyAnXCJdJyk7XG5cdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IHRoaXMuXyRnYWxsZXJ5SXRlbXMuaW5kZXgodGhpcy5fJGVsZW1lbnQpO1xuXHRcdFx0XHQkKGRvY3VtZW50KS5vbigna2V5ZG93bi5la2tvTGlnaHRib3gnLCB0aGlzLl9uYXZpZ2F0aW9uYWxCaW5kZXIuYmluZCh0aGlzKSk7XG5cblx0XHRcdFx0Ly8gYWRkIHRoZSBkaXJlY3Rpb25hbCBhcnJvd3MgdG8gdGhlIG1vZGFsXG5cdFx0XHRcdGlmICh0aGlzLl9jb25maWcuc2hvd0Fycm93cyAmJiB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIuYXBwZW5kKCc8ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1uYXYtb3ZlcmxheVwiPjxhIGhyZWY9XCIjXCI+JyArIHRoaXMuX2NvbmZpZy5sZWZ0QXJyb3cgKyAnPC9hPjxhIGhyZWY9XCIjXCI+JyArIHRoaXMuX2NvbmZpZy5yaWdodEFycm93ICsgJzwvYT48L2Rpdj4nKTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MgPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnZGl2LmVra28tbGlnaHRib3gtbmF2LW92ZXJsYXknKS5maXJzdCgpO1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbignY2xpY2snLCAnYTpmaXJzdC1jaGlsZCcsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ2NsaWNrJywgJ2E6bGFzdC1jaGlsZCcsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpcy5uYXZpZ2F0ZVJpZ2h0KCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVOYXZpZ2F0aW9uKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5fJG1vZGFsLm9uKCdzaG93LmJzLm1vZGFsJywgdGhpcy5fY29uZmlnLm9uU2hvdy5iaW5kKHRoaXMpKS5vbignc2hvd24uYnMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b2dnbGVMb2FkaW5nKHRydWUpO1xuXHRcdFx0XHRfdGhpcy5faGFuZGxlKCk7XG5cdFx0XHRcdHJldHVybiBfdGhpcy5fY29uZmlnLm9uU2hvd24uY2FsbChfdGhpcyk7XG5cdFx0XHR9KS5vbignaGlkZS5icy5tb2RhbCcsIHRoaXMuX2NvbmZpZy5vbkhpZGUuYmluZCh0aGlzKSkub24oJ2hpZGRlbi5icy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0aWYgKF90aGlzLl9nYWxsZXJ5TmFtZSkge1xuXHRcdFx0XHRcdCQoZG9jdW1lbnQpLm9mZigna2V5ZG93bi5la2tvTGlnaHRib3gnKTtcblx0XHRcdFx0XHQkKHdpbmRvdykub2ZmKCdyZXNpemUuZWtrb0xpZ2h0Ym94Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0X3RoaXMuXyRtb2RhbC5yZW1vdmUoKTtcblx0XHRcdFx0cmV0dXJuIF90aGlzLl9jb25maWcub25IaWRkZW4uY2FsbChfdGhpcyk7XG5cdFx0XHR9KS5tb2RhbCh0aGlzLl9jb25maWcpO1xuXG5cdFx0XHQkKHdpbmRvdykub24oJ3Jlc2l6ZS5la2tvTGlnaHRib3gnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl9yZXNpemUoX3RoaXMuX3dhbnRlZFdpZHRoLCBfdGhpcy5fd2FudGVkSGVpZ2h0KTtcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fdG91Y2hzdGFydFggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5YO1xuXHRcdFx0fSkub24oJ3RvdWNoZW5kJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fdG91Y2hlbmRYID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uc2NyZWVuWDtcblx0XHRcdFx0X3RoaXMuX3N3aXBlR2VzdXJlKCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRfY3JlYXRlQ2xhc3MoTGlnaHRib3gsIFt7XG5cdFx0XHRrZXk6ICdlbGVtZW50Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBlbGVtZW50KCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJGVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbW9kYWwnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG1vZGFsKCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJG1vZGFsO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlVG8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlVG8oaW5kZXgpIHtcblxuXHRcdFx0XHRpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSByZXR1cm4gdGhpcztcblxuXHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXggPSBpbmRleDtcblxuXHRcdFx0XHR0aGlzLnVwZGF0ZU5hdmlnYXRpb24oKTtcblxuXHRcdFx0XHR0aGlzLl8kZWxlbWVudCA9ICQodGhpcy5fJGdhbGxlcnlJdGVtcy5nZXQodGhpcy5fZ2FsbGVyeUluZGV4KSk7XG5cdFx0XHRcdHRoaXMuX2hhbmRsZSgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlTGVmdCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVMZWZ0KCkge1xuXG5cdFx0XHRcdGlmICghdGhpcy5fJGdhbGxlcnlJdGVtcykgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA9PT0gMSkgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IDApIHtcblx0XHRcdFx0XHRpZiAodGhpcy5fY29uZmlnLndyYXBwaW5nKSB0aGlzLl9nYWxsZXJ5SW5kZXggPSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDE7ZWxzZSByZXR1cm47XG5cdFx0XHRcdH0gZWxzZSAvL2NpcmN1bGFyXG5cdFx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4LS07XG5cblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uTmF2aWdhdGUuY2FsbCh0aGlzLCAnbGVmdCcsIHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlVG8odGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICduYXZpZ2F0ZVJpZ2h0Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZVJpZ2h0KCkge1xuXG5cdFx0XHRcdGlmICghdGhpcy5fJGdhbGxlcnlJdGVtcykgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA9PT0gMSkgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9jb25maWcud3JhcHBpbmcpIHRoaXMuX2dhbGxlcnlJbmRleCA9IDA7ZWxzZSByZXR1cm47XG5cdFx0XHRcdH0gZWxzZSAvL2NpcmN1bGFyXG5cdFx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4Kys7XG5cblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uTmF2aWdhdGUuY2FsbCh0aGlzLCAncmlnaHQnLCB0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZVRvKHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAndXBkYXRlTmF2aWdhdGlvbicsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gdXBkYXRlTmF2aWdhdGlvbigpIHtcblx0XHRcdFx0aWYgKCF0aGlzLl9jb25maWcud3JhcHBpbmcpIHtcblx0XHRcdFx0XHR2YXIgJG5hdiA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCdkaXYuZWtrby1saWdodGJveC1uYXYtb3ZlcmxheScpO1xuXHRcdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IDApICRuYXYuZmluZCgnYTpmaXJzdC1jaGlsZCcpLmFkZENsYXNzKCdkaXNhYmxlZCcpO2Vsc2UgJG5hdi5maW5kKCdhOmZpcnN0LWNoaWxkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5fZ2FsbGVyeUluZGV4ID09PSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpICRuYXYuZmluZCgnYTpsYXN0LWNoaWxkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7ZWxzZSAkbmF2LmZpbmQoJ2E6bGFzdC1jaGlsZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnY2xvc2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIGNsb3NlKCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJG1vZGFsLm1vZGFsKCdoaWRlJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGhlbHBlciBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfbmF2aWdhdGlvbmFsQmluZGVyJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfbmF2aWdhdGlvbmFsQmluZGVyKGV2ZW50KSB7XG5cdFx0XHRcdGV2ZW50ID0gZXZlbnQgfHwgd2luZG93LmV2ZW50O1xuXHRcdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzkpIHJldHVybiB0aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDM3KSByZXR1cm4gdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gdHlwZSBkZXRlY3Rpb24gcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2RldGVjdFJlbW90ZVR5cGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9kZXRlY3RSZW1vdGVUeXBlKHNyYywgdHlwZSkge1xuXG5cdFx0XHRcdHR5cGUgPSB0eXBlIHx8IGZhbHNlO1xuXG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9pc0ltYWdlKHNyYykpIHR5cGUgPSAnaW1hZ2UnO1xuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5fZ2V0WW91dHViZUlkKHNyYykpIHR5cGUgPSAneW91dHViZSc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRWaW1lb0lkKHNyYykpIHR5cGUgPSAndmltZW8nO1xuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5fZ2V0SW5zdGFncmFtSWQoc3JjKSkgdHlwZSA9ICdpbnN0YWdyYW0nO1xuXG5cdFx0XHRcdGlmICghdHlwZSB8fCBbJ2ltYWdlJywgJ3lvdXR1YmUnLCAndmltZW8nLCAnaW5zdGFncmFtJywgJ3ZpZGVvJywgJ3VybCddLmluZGV4T2YodHlwZSkgPCAwKSB0eXBlID0gJ3VybCc7XG5cblx0XHRcdFx0cmV0dXJuIHR5cGU7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2lzSW1hZ2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9pc0ltYWdlKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5tYXRjaCgvKF5kYXRhOmltYWdlXFwvLiosKXwoXFwuKGpwKGV8Z3xlZyl8Z2lmfHBuZ3xibXB8d2VicHxzdmcpKChcXD98IykuKik/JCkvaSk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2NvbnRhaW5lclRvVXNlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY29udGFpbmVyVG9Vc2UoKSB7XG5cdFx0XHRcdHZhciBfdGhpczIgPSB0aGlzO1xuXG5cdFx0XHRcdC8vIGlmIGN1cnJlbnRseSBzaG93aW5nIGFuIGltYWdlLCBmYWRlIGl0IG91dCBhbmQgcmVtb3ZlXG5cdFx0XHRcdHZhciAkdG9Vc2UgPSB0aGlzLl8kbGlnaHRib3hCb2R5VHdvO1xuXHRcdFx0XHR2YXIgJGN1cnJlbnQgPSB0aGlzLl8kbGlnaHRib3hCb2R5T25lO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kbGlnaHRib3hCb2R5VHdvLmhhc0NsYXNzKCdpbicpKSB7XG5cdFx0XHRcdFx0JHRvVXNlID0gdGhpcy5fJGxpZ2h0Ym94Qm9keU9uZTtcblx0XHRcdFx0XHQkY3VycmVudCA9IHRoaXMuXyRsaWdodGJveEJvZHlUd287XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQkY3VycmVudC5yZW1vdmVDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoIV90aGlzMi5fJGxpZ2h0Ym94Qm9keVR3by5oYXNDbGFzcygnaW4nKSkgX3RoaXMyLl8kbGlnaHRib3hCb2R5VHdvLmVtcHR5KCk7XG5cdFx0XHRcdFx0aWYgKCFfdGhpczIuXyRsaWdodGJveEJvZHlPbmUuaGFzQ2xhc3MoJ2luJykpIF90aGlzMi5fJGxpZ2h0Ym94Qm9keU9uZS5lbXB0eSgpO1xuXHRcdFx0XHR9LCA1MDApO1xuXG5cdFx0XHRcdCR0b1VzZS5hZGRDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRyZXR1cm4gJHRvVXNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19oYW5kbGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9oYW5kbGUoKSB7XG5cblx0XHRcdFx0dmFyICR0b1VzZSA9IHRoaXMuX2NvbnRhaW5lclRvVXNlKCk7XG5cdFx0XHRcdHRoaXMuX3VwZGF0ZVRpdGxlQW5kRm9vdGVyKCk7XG5cblx0XHRcdFx0dmFyIGN1cnJlbnRSZW1vdGUgPSB0aGlzLl8kZWxlbWVudC5hdHRyKCdkYXRhLXJlbW90ZScpIHx8IHRoaXMuXyRlbGVtZW50LmF0dHIoJ2hyZWYnKTtcblx0XHRcdFx0dmFyIGN1cnJlbnRUeXBlID0gdGhpcy5fZGV0ZWN0UmVtb3RlVHlwZShjdXJyZW50UmVtb3RlLCB0aGlzLl8kZWxlbWVudC5hdHRyKCdkYXRhLXR5cGUnKSB8fCBmYWxzZSk7XG5cblx0XHRcdFx0aWYgKFsnaW1hZ2UnLCAneW91dHViZScsICd2aW1lbycsICdpbnN0YWdyYW0nLCAndmlkZW8nLCAndXJsJ10uaW5kZXhPZihjdXJyZW50VHlwZSkgPCAwKSByZXR1cm4gdGhpcy5fZXJyb3IodGhpcy5fY29uZmlnLnN0cmluZ3MudHlwZSk7XG5cblx0XHRcdFx0c3dpdGNoIChjdXJyZW50VHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgJ2ltYWdlJzpcblx0XHRcdFx0XHRcdHRoaXMuX3ByZWxvYWRJbWFnZShjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0dGhpcy5fcHJlbG9hZEltYWdlQnlJbmRleCh0aGlzLl9nYWxsZXJ5SW5kZXgsIDMpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAneW91dHViZSc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93WW91dHViZVZpZGVvKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd2aW1lbyc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93VmltZW9WaWRlbyh0aGlzLl9nZXRWaW1lb0lkKGN1cnJlbnRSZW1vdGUpLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnaW5zdGFncmFtJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dJbnN0YWdyYW1WaWRlbyh0aGlzLl9nZXRJbnN0YWdyYW1JZChjdXJyZW50UmVtb3RlKSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3ZpZGVvJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dIdG1sNVZpZGVvKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0Ly8gdXJsXG5cdFx0XHRcdFx0XHR0aGlzLl9sb2FkUmVtb3RlQ29udGVudChjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0WW91dHViZUlkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0WW91dHViZUlkKHN0cmluZykge1xuXHRcdFx0XHRpZiAoIXN0cmluZykgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR2YXIgbWF0Y2hlcyA9IHN0cmluZy5tYXRjaCgvXi4qKHlvdXR1LmJlXFwvfHZcXC98dVxcL1xcd1xcL3xlbWJlZFxcL3x3YXRjaFxcP3Y9fFxcJnY9KShbXiNcXCZcXD9dKikuKi8pO1xuXHRcdFx0XHRyZXR1cm4gbWF0Y2hlcyAmJiBtYXRjaGVzWzJdLmxlbmd0aCA9PT0gMTEgPyBtYXRjaGVzWzJdIDogZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldFZpbWVvSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRWaW1lb0lkKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5pbmRleE9mKCd2aW1lbycpID4gMCA/IHN0cmluZyA6IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRJbnN0YWdyYW1JZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldEluc3RhZ3JhbUlkKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5pbmRleE9mKCdpbnN0YWdyYW0nKSA+IDAgPyBzdHJpbmcgOiBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gbGF5b3V0IHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ190b2dnbGVMb2FkaW5nJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfdG9nZ2xlTG9hZGluZyhzaG93KSB7XG5cdFx0XHRcdHNob3cgPSBzaG93IHx8IGZhbHNlO1xuXHRcdFx0XHRpZiAoc2hvdykge1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbC5yZW1vdmVDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRcdCQoJy5tb2RhbC1iYWNrZHJvcCcpLmFwcGVuZCh0aGlzLl9jb25maWcubG9hZGluZ01lc3NhZ2UpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWwuYWRkQ2xhc3MoJ2luIHNob3cnKTtcblx0XHRcdFx0XHQkKCcubW9kYWwtYmFja2Ryb3AnKS5maW5kKCcuZWtrby1saWdodGJveC1sb2FkZXInKS5yZW1vdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY2FsY3VsYXRlQm9yZGVycycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2NhbGN1bGF0ZUJvcmRlcnMoKSB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dG9wOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItdG9wLXdpZHRoJyksXG5cdFx0XHRcdFx0cmlnaHQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci1yaWdodC13aWR0aCcpLFxuXHRcdFx0XHRcdGJvdHRvbTogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpLFxuXHRcdFx0XHRcdGxlZnQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci1sZWZ0LXdpZHRoJylcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY2FsY3VsYXRlUGFkZGluZycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2NhbGN1bGF0ZVBhZGRpbmcoKSB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dG9wOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLXRvcCcpLFxuXHRcdFx0XHRcdHJpZ2h0OiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLXJpZ2h0JyksXG5cdFx0XHRcdFx0Ym90dG9tOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLWJvdHRvbScpLFxuXHRcdFx0XHRcdGxlZnQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctbGVmdCcpXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3RvdGFsQ3NzQnlBdHRyaWJ1dGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF90b3RhbENzc0J5QXR0cmlidXRlKGF0dHJpYnV0ZSkge1xuXHRcdFx0XHRyZXR1cm4gcGFyc2VJbnQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcyhhdHRyaWJ1dGUpLCAxMCkgKyBwYXJzZUludCh0aGlzLl8kbW9kYWxDb250ZW50LmNzcyhhdHRyaWJ1dGUpLCAxMCkgKyBwYXJzZUludCh0aGlzLl8kbW9kYWxCb2R5LmNzcyhhdHRyaWJ1dGUpLCAxMCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3VwZGF0ZVRpdGxlQW5kRm9vdGVyJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfdXBkYXRlVGl0bGVBbmRGb290ZXIoKSB7XG5cdFx0XHRcdHZhciB0aXRsZSA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3RpdGxlJykgfHwgXCJcIjtcblx0XHRcdFx0dmFyIGNhcHRpb24gPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdmb290ZXInKSB8fCBcIlwiO1xuXG5cdFx0XHRcdHRoaXMuX3RpdGxlSXNTaG93biA9IGZhbHNlO1xuXHRcdFx0XHRpZiAodGl0bGUgfHwgdGhpcy5fY29uZmlnLmFsd2F5c1Nob3dDbG9zZSkge1xuXHRcdFx0XHRcdHRoaXMuX3RpdGxlSXNTaG93biA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsSGVhZGVyLmNzcygnZGlzcGxheScsICcnKS5maW5kKCcubW9kYWwtdGl0bGUnKS5odG1sKHRpdGxlIHx8IFwiJm5ic3A7XCIpO1xuXHRcdFx0XHR9IGVsc2UgdGhpcy5fJG1vZGFsSGVhZGVyLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IGZhbHNlO1xuXHRcdFx0XHRpZiAoY2FwdGlvbikge1xuXHRcdFx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEZvb3Rlci5jc3MoJ2Rpc3BsYXknLCAnJykuaHRtbChjYXB0aW9uKTtcblx0XHRcdFx0fSBlbHNlIHRoaXMuXyRtb2RhbEZvb3Rlci5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93WW91dHViZVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd1lvdXR1YmVWaWRlbyhyZW1vdGUsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciBpZCA9IHRoaXMuX2dldFlvdXR1YmVJZChyZW1vdGUpO1xuXHRcdFx0XHR2YXIgcXVlcnkgPSByZW1vdGUuaW5kZXhPZignJicpID4gMCA/IHJlbW90ZS5zdWJzdHIocmVtb3RlLmluZGV4T2YoJyYnKSkgOiAnJztcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fc2hvd1ZpZGVvSWZyYW1lKCcvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICsgaWQgKyAnP2JhZGdlPTAmYXV0b3BsYXk9MSZodG1sNT0xJyArIHF1ZXJ5LCB3aWR0aCwgaGVpZ2h0LCAkY29udGFpbmVyRm9yRWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dWaW1lb1ZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd1ZpbWVvVmlkZW8oaWQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTAwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgd2lkdGggLyAoNTYwIC8gMzE1KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX3Nob3dWaWRlb0lmcmFtZShpZCArICc/YXV0b3BsYXk9MScsIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd0luc3RhZ3JhbVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd0luc3RhZ3JhbVZpZGVvKGlkLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBpbnN0YWdyYW0gbG9hZCB0aGVpciBjb250ZW50IGludG8gaWZyYW1lJ3Mgc28gdGhpcyBjYW4gYmUgcHV0IHN0cmFpZ2h0IGludG8gdGhlIGVsZW1lbnRcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA2MTI7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB3aWR0aCArIDgwO1xuXHRcdFx0XHRpZCA9IGlkLnN1YnN0cigtMSkgIT09ICcvJyA/IGlkICsgJy8nIDogaWQ7IC8vIGVuc3VyZSBpZCBoYXMgdHJhaWxpbmcgc2xhc2hcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGlmcmFtZSB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyBpZCArICdlbWJlZC9cIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93VmlkZW9JZnJhbWUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93VmlkZW9JZnJhbWUodXJsLCB3aWR0aCwgaGVpZ2h0LCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBzaG91bGQgYmUgdXNlZCBmb3IgdmlkZW9zIG9ubHkuIGZvciByZW1vdGUgY29udGVudCB1c2UgbG9hZFJlbW90ZUNvbnRlbnQgKGRhdGEtdHlwZT11cmwpXG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCB8fCB3aWR0aDsgLy8gZGVmYXVsdCB0byBzcXVhcmVcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGRpdiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUgZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OVwiPjxpZnJhbWUgd2lkdGg9XCInICsgd2lkdGggKyAnXCIgaGVpZ2h0PVwiJyArIGhlaWdodCArICdcIiBzcmM9XCInICsgdXJsICsgJ1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUtaXRlbVwiPjwvaWZyYW1lPjwvZGl2PicpO1xuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0aWYgKHRoaXMuXyRtb2RhbEFycm93cykgdGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7IC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dIdG1sNVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd0h0bWw1VmlkZW8odXJsLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBzaG91bGQgYmUgdXNlZCBmb3IgdmlkZW9zIG9ubHkuIGZvciByZW1vdGUgY29udGVudCB1c2UgbG9hZFJlbW90ZUNvbnRlbnQgKGRhdGEtdHlwZT11cmwpXG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTYwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgd2lkdGggLyAoNTYwIC8gMzE1KTtcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGRpdiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUgZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OVwiPjx2aWRlbyB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyB1cmwgKyAnXCIgcHJlbG9hZD1cImF1dG9cIiBhdXRvcGxheSBjb250cm9scyBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUtaXRlbVwiPjwvdmlkZW8+PC9kaXY+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSB0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfbG9hZFJlbW90ZUNvbnRlbnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9sb2FkUmVtb3RlQ29udGVudCh1cmwsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciBfdGhpczMgPSB0aGlzO1xuXG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTYwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgNTYwO1xuXG5cdFx0XHRcdHZhciBkaXNhYmxlRXh0ZXJuYWxDaGVjayA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2Rpc2FibGVFeHRlcm5hbENoZWNrJykgfHwgZmFsc2U7XG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXG5cdFx0XHRcdC8vIGV4dGVybmFsIHVybHMgYXJlIGxvYWRpbmcgaW50byBhbiBpZnJhbWVcblx0XHRcdFx0Ly8gbG9jYWwgYWpheCBjYW4gYmUgbG9hZGVkIGludG8gdGhlIGNvbnRhaW5lciBpdHNlbGZcblx0XHRcdFx0aWYgKCFkaXNhYmxlRXh0ZXJuYWxDaGVjayAmJiAhdGhpcy5faXNFeHRlcm5hbCh1cmwpKSB7XG5cdFx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQubG9hZCh1cmwsICQucHJveHkoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzMy5fJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLmJzLm1vZGFsJyk7bDtcblx0XHRcdFx0XHR9KSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGlmcmFtZSBzcmM9XCInICsgdXJsICsgJ1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKTtcblx0XHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHJlbW90ZSBjb250ZW50XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaXNFeHRlcm5hbCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2lzRXh0ZXJuYWwodXJsKSB7XG5cdFx0XHRcdHZhciBtYXRjaCA9IHVybC5tYXRjaCgvXihbXjpcXC8/I10rOik/KD86XFwvXFwvKFteXFwvPyNdKikpPyhbXj8jXSspPyhcXD9bXiNdKik/KCMuKik/Lyk7XG5cdFx0XHRcdGlmICh0eXBlb2YgbWF0Y2hbMV0gPT09IFwic3RyaW5nXCIgJiYgbWF0Y2hbMV0ubGVuZ3RoID4gMCAmJiBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpICE9PSBsb2NhdGlvbi5wcm90b2NvbCkgcmV0dXJuIHRydWU7XG5cblx0XHRcdFx0aWYgKHR5cGVvZiBtYXRjaFsyXSA9PT0gXCJzdHJpbmdcIiAmJiBtYXRjaFsyXS5sZW5ndGggPiAwICYmIG1hdGNoWzJdLnJlcGxhY2UobmV3IFJlZ0V4cCgnOignICsgKHtcblx0XHRcdFx0XHRcImh0dHA6XCI6IDgwLFxuXHRcdFx0XHRcdFwiaHR0cHM6XCI6IDQ0M1xuXHRcdFx0XHR9KVtsb2NhdGlvbi5wcm90b2NvbF0gKyAnKT8kJyksIFwiXCIpICE9PSBsb2NhdGlvbi5ob3N0KSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2Vycm9yJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZXJyb3IobWVzc2FnZSkge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuXHRcdFx0XHR0aGlzLl9jb250YWluZXJUb1VzZSgpLmh0bWwobWVzc2FnZSk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSgzMDAsIDMwMCk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19wcmVsb2FkSW1hZ2VCeUluZGV4Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfcHJlbG9hZEltYWdlQnlJbmRleChzdGFydEluZGV4LCBudW1iZXJPZlRpbWVzKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIG5leHQgPSAkKHRoaXMuXyRnYWxsZXJ5SXRlbXMuZ2V0KHN0YXJ0SW5kZXgpLCBmYWxzZSk7XG5cdFx0XHRcdGlmICh0eXBlb2YgbmV4dCA9PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG5cdFx0XHRcdHZhciBzcmMgPSBuZXh0LmF0dHIoJ2RhdGEtcmVtb3RlJykgfHwgbmV4dC5hdHRyKCdocmVmJyk7XG5cdFx0XHRcdGlmIChuZXh0LmF0dHIoJ2RhdGEtdHlwZScpID09PSAnaW1hZ2UnIHx8IHRoaXMuX2lzSW1hZ2Uoc3JjKSkgdGhpcy5fcHJlbG9hZEltYWdlKHNyYywgZmFsc2UpO1xuXG5cdFx0XHRcdGlmIChudW1iZXJPZlRpbWVzID4gMCkgcmV0dXJuIHRoaXMuX3ByZWxvYWRJbWFnZUJ5SW5kZXgoc3RhcnRJbmRleCArIDEsIG51bWJlck9mVGltZXMgLSAxKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfcHJlbG9hZEltYWdlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfcHJlbG9hZEltYWdlKHNyYywgJGNvbnRhaW5lckZvckltYWdlKSB7XG5cdFx0XHRcdHZhciBfdGhpczQgPSB0aGlzO1xuXG5cdFx0XHRcdCRjb250YWluZXJGb3JJbWFnZSA9ICRjb250YWluZXJGb3JJbWFnZSB8fCBmYWxzZTtcblxuXHRcdFx0XHR2YXIgaW1nID0gbmV3IEltYWdlKCk7XG5cdFx0XHRcdGlmICgkY29udGFpbmVyRm9ySW1hZ2UpIHtcblx0XHRcdFx0XHQoZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRcdFx0XHQvLyBpZiBsb2FkaW5nIHRha2VzID4gMjAwbXMgc2hvdyBhIGxvYWRlclxuXHRcdFx0XHRcdFx0dmFyIGxvYWRpbmdUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdCRjb250YWluZXJGb3JJbWFnZS5hcHBlbmQoX3RoaXM0Ll9jb25maWcubG9hZGluZ01lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0fSwgMjAwKTtcblxuXHRcdFx0XHRcdFx0aW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGxvYWRpbmdUaW1lb3V0KSBjbGVhclRpbWVvdXQobG9hZGluZ1RpbWVvdXQpO1xuXHRcdFx0XHRcdFx0XHRsb2FkaW5nVGltZW91dCA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHZhciBpbWFnZSA9ICQoJzxpbWcgLz4nKTtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYXR0cignc3JjJywgaW1nLnNyYyk7XG5cdFx0XHRcdFx0XHRcdGltYWdlLmFkZENsYXNzKCdpbWctZmx1aWQnKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBib290c3RyYXAgdjNcblx0XHRcdFx0XHRcdFx0aW1hZ2UuY3NzKCd3aWR0aCcsICcxMDAlJyk7XG5cblx0XHRcdFx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlLmh0bWwoaW1hZ2UpO1xuXHRcdFx0XHRcdFx0XHRpZiAoX3RoaXM0Ll8kbW9kYWxBcnJvd3MpIF90aGlzNC5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICcnKTsgLy8gcmVtb3ZlIGRpc3BsYXkgdG8gZGVmYXVsdCB0byBjc3MgcHJvcGVydHlcblxuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3Jlc2l6ZShpbWcud2lkdGgsIGltZy5oZWlnaHQpO1xuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXM0Ll9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwoX3RoaXM0KTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRpbWcub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0X3RoaXM0Ll90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzNC5fZXJyb3IoX3RoaXM0Ll9jb25maWcuc3RyaW5ncy5mYWlsICsgKCcgICcgKyBzcmMpKTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSkoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZy5zcmMgPSBzcmM7XG5cdFx0XHRcdHJldHVybiBpbWc7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3N3aXBlR2VzdXJlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc3dpcGVHZXN1cmUoKSB7XG5cdFx0XHRcdGlmICh0aGlzLl90b3VjaGVuZFggPCB0aGlzLl90b3VjaHN0YXJ0WCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5fdG91Y2hlbmRYID4gdGhpcy5fdG91Y2hzdGFydFgpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19yZXNpemUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9yZXNpemUod2lkdGgsIGhlaWdodCkge1xuXG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCB8fCB3aWR0aDtcblx0XHRcdFx0dGhpcy5fd2FudGVkV2lkdGggPSB3aWR0aDtcblx0XHRcdFx0dGhpcy5fd2FudGVkSGVpZ2h0ID0gaGVpZ2h0O1xuXG5cdFx0XHRcdHZhciBpbWFnZUFzcGVjUmF0aW8gPSB3aWR0aCAvIGhlaWdodDtcblxuXHRcdFx0XHQvLyBpZiB3aWR0aCA+IHRoZSBhdmFpbGFibGUgc3BhY2UsIHNjYWxlIGRvd24gdGhlIGV4cGVjdGVkIHdpZHRoIGFuZCBoZWlnaHRcblx0XHRcdFx0dmFyIHdpZHRoQm9yZGVyQW5kUGFkZGluZyA9IHRoaXMuX3BhZGRpbmcubGVmdCArIHRoaXMuX3BhZGRpbmcucmlnaHQgKyB0aGlzLl9ib3JkZXIubGVmdCArIHRoaXMuX2JvcmRlci5yaWdodDtcblxuXHRcdFx0XHQvLyBmb3JjZSAxMHB4IG1hcmdpbiBpZiB3aW5kb3cgc2l6ZSA+IDU3NXB4XG5cdFx0XHRcdHZhciBhZGRNYXJnaW4gPSB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggPiA1NzUgPyAyMCA6IDA7XG5cdFx0XHRcdHZhciBkaXNjb3VudE1hcmdpbiA9IHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCA+IDU3NSA/IDAgOiAyMDtcblxuXHRcdFx0XHR2YXIgbWF4V2lkdGggPSBNYXRoLm1pbih3aWR0aCArIHdpZHRoQm9yZGVyQW5kUGFkZGluZywgdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoIC0gYWRkTWFyZ2luLCB0aGlzLl9jb25maWcubWF4V2lkdGgpO1xuXG5cdFx0XHRcdGlmICh3aWR0aCArIHdpZHRoQm9yZGVyQW5kUGFkZGluZyA+IG1heFdpZHRoKSB7XG5cdFx0XHRcdFx0aGVpZ2h0ID0gKG1heFdpZHRoIC0gd2lkdGhCb3JkZXJBbmRQYWRkaW5nIC0gZGlzY291bnRNYXJnaW4pIC8gaW1hZ2VBc3BlY1JhdGlvO1xuXHRcdFx0XHRcdHdpZHRoID0gbWF4V2lkdGg7XG5cdFx0XHRcdH0gZWxzZSB3aWR0aCA9IHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nO1xuXG5cdFx0XHRcdHZhciBoZWFkZXJIZWlnaHQgPSAwLFxuXHRcdFx0XHQgICAgZm9vdGVySGVpZ2h0ID0gMDtcblxuXHRcdFx0XHQvLyBhcyB0aGUgcmVzaXplIGlzIHBlcmZvcm1lZCB0aGUgbW9kYWwgaXMgc2hvdywgdGhlIGNhbGN1bGF0ZSBtaWdodCBmYWlsXG5cdFx0XHRcdC8vIGlmIHNvLCBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IHNpemVzXG5cdFx0XHRcdGlmICh0aGlzLl9mb290ZXJJc1Nob3duKSBmb290ZXJIZWlnaHQgPSB0aGlzLl8kbW9kYWxGb290ZXIub3V0ZXJIZWlnaHQodHJ1ZSkgfHwgNTU7XG5cblx0XHRcdFx0aWYgKHRoaXMuX3RpdGxlSXNTaG93bikgaGVhZGVySGVpZ2h0ID0gdGhpcy5fJG1vZGFsSGVhZGVyLm91dGVySGVpZ2h0KHRydWUpIHx8IDY3O1xuXG5cdFx0XHRcdHZhciBib3JkZXJQYWRkaW5nID0gdGhpcy5fcGFkZGluZy50b3AgKyB0aGlzLl9wYWRkaW5nLmJvdHRvbSArIHRoaXMuX2JvcmRlci5ib3R0b20gKyB0aGlzLl9ib3JkZXIudG9wO1xuXG5cdFx0XHRcdC8vY2FsY3VsYXRlZCBlYWNoIHRpbWUgYXMgcmVzaXppbmcgdGhlIHdpbmRvdyBjYW4gY2F1c2UgdGhlbSB0byBjaGFuZ2UgZHVlIHRvIEJvb3RzdHJhcHMgZmx1aWQgbWFyZ2luc1xuXHRcdFx0XHR2YXIgbWFyZ2lucyA9IHBhcnNlRmxvYXQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnbWFyZ2luLXRvcCcpKSArIHBhcnNlRmxvYXQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnbWFyZ2luLWJvdHRvbScpKTtcblxuXHRcdFx0XHR2YXIgbWF4SGVpZ2h0ID0gTWF0aC5taW4oaGVpZ2h0LCAkKHdpbmRvdykuaGVpZ2h0KCkgLSBib3JkZXJQYWRkaW5nIC0gbWFyZ2lucyAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodCwgdGhpcy5fY29uZmlnLm1heEhlaWdodCAtIGJvcmRlclBhZGRpbmcgLSBoZWFkZXJIZWlnaHQgLSBmb290ZXJIZWlnaHQpO1xuXG5cdFx0XHRcdGlmIChoZWlnaHQgPiBtYXhIZWlnaHQpIHtcblx0XHRcdFx0XHQvLyBpZiBoZWlnaHQgPiB0aGUgYXZhaWxhYmxlIGhlaWdodCwgc2NhbGUgZG93biB0aGUgd2lkdGhcblx0XHRcdFx0XHR3aWR0aCA9IE1hdGguY2VpbChtYXhIZWlnaHQgKiBpbWFnZUFzcGVjUmF0aW8pICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmNzcygnaGVpZ2h0JywgbWF4SGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZmxleCcsIDEpLmNzcygnbWF4V2lkdGgnLCB3aWR0aCk7XG5cblx0XHRcdFx0dmFyIG1vZGFsID0gdGhpcy5fJG1vZGFsLmRhdGEoJ2JzLm1vZGFsJyk7XG5cdFx0XHRcdGlmIChtb2RhbCkge1xuXHRcdFx0XHRcdC8vIHY0IG1ldGhvZCBpcyBtaXN0YWtlbmx5IHByb3RlY3RlZFxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRtb2RhbC5faGFuZGxlVXBkYXRlKCk7XG5cdFx0XHRcdFx0fSBjYXRjaCAoRXhjZXB0aW9uKSB7XG5cdFx0XHRcdFx0XHRtb2RhbC5oYW5kbGVVcGRhdGUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fV0sIFt7XG5cdFx0XHRrZXk6ICdfalF1ZXJ5SW50ZXJmYWNlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfalF1ZXJ5SW50ZXJmYWNlKGNvbmZpZykge1xuXHRcdFx0XHR2YXIgX3RoaXM1ID0gdGhpcztcblxuXHRcdFx0XHRjb25maWcgPSBjb25maWcgfHwge307XG5cdFx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciAkdGhpcyA9ICQoX3RoaXM1KTtcblx0XHRcdFx0XHR2YXIgX2NvbmZpZyA9ICQuZXh0ZW5kKHt9LCBMaWdodGJveC5EZWZhdWx0LCAkdGhpcy5kYXRhKCksIHR5cGVvZiBjb25maWcgPT09ICdvYmplY3QnICYmIGNvbmZpZyk7XG5cblx0XHRcdFx0XHRuZXcgTGlnaHRib3goX3RoaXM1LCBfY29uZmlnKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fV0pO1xuXG5cdFx0cmV0dXJuIExpZ2h0Ym94O1xuXHR9KSgpO1xuXG5cdCQuZm5bTkFNRV0gPSBMaWdodGJveC5falF1ZXJ5SW50ZXJmYWNlO1xuXHQkLmZuW05BTUVdLkNvbnN0cnVjdG9yID0gTGlnaHRib3g7XG5cdCQuZm5bTkFNRV0ubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcblx0XHQkLmZuW05BTUVdID0gSlFVRVJZX05PX0NPTkZMSUNUO1xuXHRcdHJldHVybiBMaWdodGJveC5falF1ZXJ5SW50ZXJmYWNlO1xuXHR9O1xuXG5cdHJldHVybiBMaWdodGJveDtcbn0pKGpRdWVyeSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1la2tvLWxpZ2h0Ym94LmpzLm1hcFxuXG59KGpRdWVyeSk7XG4iLCIiLCJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xuXHR2YXIgcHJldmlvdXMgPSBcIiBcIjtcbiAgICAkKFwiI2ltYWdlX2dhbGxlcnlcIikuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgdmFyIGlkX25hbWUgPSBldmVudC50YXJnZXQuaWQ7XG4gICAgICAgIGlkX25hbWUgPSBpZF9uYW1lLnJlcGxhY2UoL1swLTldL2csICcnKTsgLy9yZWdleCBmb3IgYWxwaGFiZXRzLCBubyBudW1iZXJzXG4gICAgICAgIHZhciBpZF90b2dnbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZF9uYW1lKTsgLy9nZXQgSUQgb2YgbmFtZXMgdW5kZXIgY2xhc3MgXCJ0ZWFtLWJpb1wiXG4gICAgICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkX25hbWUpKXsgLy9pZiBJRCBleGlzdHNcblx0XHRcdGlmKChwcmV2aW91cyAhPSBpZF9uYW1lKSAmJiAocHJldmlvdXMgIT0gXCIgXCIpKXsgLy9pZiB5b3UgY2xpY2sgYSBkaWZmIGltYWdlXG5cdFx0XHRcdHZhciBpZF9wcmV2aW91cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpb3VzKTtcblx0XHRcdFx0JChpZF9wcmV2aW91cykudG9nZ2xlKFwiaGlkZGVuXCIpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhpZF9wcmV2aW91cyk7XG5cblx0XHRcdH1cblx0XHRcdGVsc2UgaWYocHJldmlvdXMgPT0gaWRfbmFtZSl7IC8vY2xpY2tpbmcgb24gdGhlIHNhbWUgaW1hZ2Vcblx0XHRcdFx0JChpZF90b2dnbGUpLnRvZ2dsZShcInVuaGlkZGVuXCIpO1xuXHRcdFx0fVxuXHRcdFx0JChpZF90b2dnbGUpLnRvZ2dsZShcInVuaGlkZGVuXCIpOyAvL3RvZ2dsZXMgdHh0Ym94IHRvIGFwcGVhclxuICAgICAgICBcdCBwcmV2aW91cyA9IGlkX25hbWU7Ly9jaGVja3MgdG8gc2VlIGlmIHlvdSBjbGlja2VkIGRpZmZlcmVudCBpbWFnZXNcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICBcdGFsZXJ0KFwiVGhpcyBwZXJzb24gZG9lcyBub3QgZXhpc3QuIFRyeSBhZ2Fpbi5cIik7XG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG59KTsiLCIoZnVuY3Rpb24oJCkge1xyXG5cclxuICAgICQuZm4udmlzaWJsZSA9IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgICAgICB2YXIgJHQgICAgICAgICAgICA9ICQodGhpcyksXHJcbiAgICAgICAgICAgICR3ICAgICAgICAgICAgPSAkKHdpbmRvdyksXHJcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAgPSB3aW5kb3cuaW5uZXJIZWlnaHQsXHJcbiAgICAgICAgICAgIHdpbmRvd1RvcCAgICAgPSAkdy5zY3JvbGxUb3AoKSxcclxuICAgICAgICAgICAgd2luZG93Qm90dG9tICA9IHdpbmRvd1RvcCArIHdpbmRvd0hlaWdodCxcclxuICAgICAgICAgICAgX2hlaWdodCAgICAgICA9ICR0Lm91dGVySGVpZ2h0KCksXHJcbiAgICAgICAgICAgIF90b3AgICAgICAgICAgPSAkdC5vZmZzZXQoKS50b3AsXHJcbiAgICAgICAgICAgIF9ib3R0b20gICAgICAgPSBfdG9wICsgX2hlaWdodDtcclxuXHJcbiAgICAgICAgcmV0dXJuICgoX2JvdHRvbSA+PSB3aW5kb3dUb3ApICYmIChfdG9wIDw9IHdpbmRvd0JvdHRvbSkpO1xyXG4gICAgfTtcclxuXHJcbn0pKGpRdWVyeSk7XHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgICAkKHdpbmRvdykub24oXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwICYmICEkKFwiLm5hdmJhclwiKS5oYXNDbGFzcyhcImZpeGVkXCIpKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmFkZENsYXNzKFwiZml4ZWRcIikuYWRkQ2xhc3MoXCJmaXhlZC10b3BcIikuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE1LFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMVxyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDw9IDUwKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmNzcyhcInRvcFwiLCBcIlwiKS5yZW1vdmVDbGFzcyhcImZpeGVkXCIpLnJlbW92ZUNsYXNzKFwiZml4ZWQtdG9wXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICAvL29uIG9yIHNjcm9sbCwgZGV0ZWN0IGVsZW1lbnRzIGluIHZpZXdcclxuICAgICQod2luZG93KS5vbignc2Nyb2xsIHJlc2l6ZScsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICQoJy5mbHktaW4nKS5lYWNoKGZ1bmN0aW9uIChpLCB2YWwpIHtcclxuICAgICAgICAgICAgaWYoJCh2YWwpLnZpc2libGUoKSl7XHJcbiAgICAgICAgICAgICAgICAkKHZhbCkuYWRkQ2xhc3MoXCJjb21lLWluXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgLy90cmlnZ2VyIG91ciBzY3JvbGwgZXZlbnQgb24gaW5pdGlhbCBsb2FkXHJcbiAgICAkKHdpbmRvdykudHJpZ2dlcignc2Nyb2xsJyk7XHJcblxyXG5cclxufSk7XHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcblxyXG5cclxuICAgIGxldCB3aWR0aFBvbCA9IDE5MjAsXHJcbiAgICAgICAgaGVpZ2h0UG9sID0gMTAwO1xyXG5cclxuICAgIGNvbnN0IGhlYWRlclBvbHkgPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoUG9sLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoUG9sLCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogNTB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGxldCB3aWR0aEltZ092ZXJsYXkgPSAxOTIwLFxyXG4gICAgICAgIGhlaWdodEltZ092ZXJsYXkgPSAxMDA7XHJcblxyXG5cclxuICAgIGNvbnN0IGltYWdlUG9seVRvcCA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogNTB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgIF07XHJcblxyXG4gICAgY29uc3QgaW1hZ2VQb2x5Qm90dG9tID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogNTB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuXHJcbiAgICBsZXQgaW1nSGVhZGVySG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3QoXCIjYm90dG9tLWxhbmRpbmctb3ZlcmxheVwiKS5zZWxlY3QoJyNsYW5kaW5nLXN2ZycpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aFBvbClcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRQb2wpO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKGQzLnNlbGVjdChcImJvZHlcIikpO1xyXG5cclxuICAgIGxldCBpbWdCb3R0b21Ib2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdEFsbChcIi5zdmctaW1hZ2Utb3ZlcmxheS1ib3R0b21cIilcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoSW1nT3ZlcmxheSlcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRJbWdPdmVybGF5KTtcclxuXHJcblxyXG4gICAgbGV0IGltZ1RvcEhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0QWxsKFwiLnN2Zy1pbWFnZS1vdmVybGF5LXRvcFwiKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhJbWdPdmVybGF5KVxyXG4gICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodEltZ092ZXJsYXkpO1xyXG5cclxuICAgIGNyZWF0ZVBvbHlnb24oaGVhZGVyUG9seSwgd2lkdGhQb2wsIGhlaWdodFBvbCwgaW1nSGVhZGVySG9sZGVyKTtcclxuICAgIGNyZWF0ZVBvbHlnb24oaW1hZ2VQb2x5Qm90dG9tLCB3aWR0aEltZ092ZXJsYXksIGhlaWdodEltZ092ZXJsYXksIGltZ0JvdHRvbUhvbGRlcik7XHJcbiAgICBjcmVhdGVQb2x5Z29uKGltYWdlUG9seVRvcCwgd2lkdGhJbWdPdmVybGF5LCBoZWlnaHRJbWdPdmVybGF5LCBpbWdUb3BIb2xkZXIpO1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBjcmVhdGVQb2x5Z29uKHBvbHlnb24sIHdpZHRoLCBoZWlnaHQsIHZpcykge1xyXG5cclxuICAgICAgICBsZXQgc3ZnID0gdmlzLnNlbGVjdEFsbChcInBhdGhcIikuZGF0YShbcG9seWdvbl0pO1xyXG5cclxuICAgICAgICBzdmcuZXhpdCgpLnJlbW92ZSgpO1xyXG5cclxuICAgICAgICBsZXQgbGluZUZ1bmN0aW9uID0gZDMubGluZSgpXHJcbiAgICAgICAgICAgIC54KGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZC54XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC55KGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZC55XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzdmcuZW50ZXIoKS5hcHBlbmQoXCJwYXRoXCIpXHJcbiAgICAgICAgICAgIC5hdHRyKFwiZFwiLCBsaW5lRnVuY3Rpb24ocG9seWdvbikpXHJcbiAgICAgICAgICAgIC5hdHRyKFwiZmlsbFwiLCBcIiNmZmZcIik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10b2dnbGU9XCJsaWdodGJveFwiXScsIGZ1bmN0aW9uKGV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAkKHRoaXMpLmVra29MaWdodGJveCh7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkKFwidGFibGVcIikuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoXCJ0YWJsZVwiKSl7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcInRhYmxlXCIpLmFkZENsYXNzKFwidGFibGUtZGFya1wiKTtcclxuICAgICAgICB9XHJcbiAgICB9KVxyXG4gICAgJChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJCgnW2RhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKVxyXG4gICAgfSlcclxuXHJcbn0pOyIsIiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcblxuICAgIGxldCBkdXJhdGlvbiA9IDc1MDtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcuc3Bpbm5lcicpLmVhY2goZnVuY3Rpb24gKGssdikge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJCh2KS5mYWRlSW4oZHVyYXRpb24pLmNzcyhcImRpc3BsYXlcIiwgXCJmbGV4XCIpO1xuICAgICAgICAgICAgICAgICQoe2RlZzogMH0pLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICBkZWc6IDM2MFxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgc3RlcDogZnVuY3Rpb24gKG5vdywgZngpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodikuY3NzKHtcInRyYW5zZm9ybVwiOiBcInJvdGF0ZVkoXCIgKyBub3cgKyBcImRlZylcIn0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIGVhc2luZzogJ2xpbmVhcicsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sICdsaW5lYXInKTtcbiAgICAgICAgICAgIH0sIGsgKiBkdXJhdGlvbioyLzMpO1xuICAgICAgICB9KVxuICAgIH0sIDIwMCk7XG5cbiAgICAkKFwiLm1haW4tYmFja2dyb3VuZFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLnNwaW5uZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuZmFkZUluKCkuY3NzKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG4gICAgICAgIH0pXG4gICAgfSlcblxufSk7IiwibGV0IG1vZGVsSW5pdERhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAsXG4gICAgICAgIHJvZmY6IDAsXG4gICAgICAgIHJvbjogMFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjUwMzMwOCxcbiAgICAgICAgcm9mZjogMC4wMDUxMTMsXG4gICAgICAgIHJvbjogMC40MjM5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuNjkwNTgxLFxuICAgICAgICByb2ZmOiAwLjAwNDkxMzYsXG4gICAgICAgIHJvbjogMC43OTI4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuNzY3NTg2LFxuICAgICAgICByb2ZmOiAwLjAwNDcxNjM3LFxuICAgICAgICByb246IDAuODg5MjA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjgwMzQzLFxuICAgICAgICByb2ZmOiAwLjAwNDUzNDg1LFxuICAgICAgICByb246IDAuODczMTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjgyMzUxNixcbiAgICAgICAgcm9mZjogMC4wMDQzNjQ4OCxcbiAgICAgICAgcm9uOiAwLjg0NzI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC44MzczMTMsXG4gICAgICAgIHJvZmY6IDAuMDA0MjA0NDksXG4gICAgICAgIHJvbjogMC44MjQ4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuODQ4MzYxLFxuICAgICAgICByb2ZmOiAwLjAwNDA1MjY2LFxuICAgICAgICByb246IDAuODA4MDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjg1OCxcbiAgICAgICAgcm9mZjogMC4wMDM5MDg1OSxcbiAgICAgICAgcm9uOiAwLjc5NjY0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC44NjY3NTYsXG4gICAgICAgIHJvZmY6IDAuMDAzNzcxNTcsXG4gICAgICAgIHJvbjogMC43ODk1NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuODc0ODUxLFxuICAgICAgICByb2ZmOiAwLjAwMzY0MTAyLFxuICAgICAgICByb246IDAuNzg1NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjg4MjM5MyxcbiAgICAgICAgcm9mZjogMC4wMDM1MTY0NyxcbiAgICAgICAgcm9uOiAwLjc4MzU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC44ODk0NDIsXG4gICAgICAgIHJvZmY6IDAuMDAzMzk3NTMsXG4gICAgICAgIHJvbjogMC43ODI5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuODk2MDM5LFxuICAgICAgICByb2ZmOiAwLjAwMzI4Mzg4LFxuICAgICAgICByb246IDAuNzgzMDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjkwMjIxNCxcbiAgICAgICAgcm9mZjogMC4wMDMxNzUyNSxcbiAgICAgICAgcm9uOiAwLjc4MzUzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC45MDc5OTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMDcxNCxcbiAgICAgICAgcm9uOiAwLjc4NDI3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC45MTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAyOTcyMTEsXG4gICAgICAgIHJvbjogMC43ODUxMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuOTE4NDY5LFxuICAgICAgICByb2ZmOiAwLjAwMjg3NzE3LFxuICAgICAgICByb246IDAuNzg1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuOTIzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMjc4NjM4LFxuICAgICAgICByb246IDAuNzg2Nzc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjkyNzYzMyxcbiAgICAgICAgcm9mZjogMC4wMDI2OTk1NyxcbiAgICAgICAgcm9uOiAwLjc4NzU3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuOTMxNzcyLFxuICAgICAgICByb2ZmOiAwLjAwMjYxNjU3LFxuICAgICAgICByb246IDAuNzg4MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC45MzU2NDEsXG4gICAgICAgIHJvZmY6IDAuMDAyNTM3MixcbiAgICAgICAgcm9uOiAwLjc4OTAxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuOTM5MjU2LFxuICAgICAgICByb2ZmOiAwLjAwMjQ2MTMxLFxuICAgICAgICByb246IDAuNzg5NjY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC45NDI2MzQsXG4gICAgICAgIHJvZmY6IDAuMDAyMzg4NzUsXG4gICAgICAgIHJvbjogMC43OTAyNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk0NTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDIzMTkzNyxcbiAgICAgICAgcm9uOiAwLjc5MDgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuOTQ4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwMjI1MzA0LFxuICAgICAgICByb246IDAuNzkxMzYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC45NTE0ODksXG4gICAgICAgIHJvZmY6IDAuMDAyMTg5NjIsXG4gICAgICAgIHJvbjogMC43OTE4NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk1NDA2MSxcbiAgICAgICAgcm9mZjogMC4wMDIxMjg5OCxcbiAgICAgICAgcm9uOiAwLjc5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk1NjQ2NCxcbiAgICAgICAgcm9mZjogMC4wMDIwNzEwMSxcbiAgICAgICAgcm9uOiAwLjc5MjcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuOTU4NzA5LFxuICAgICAgICByb2ZmOiAwLjAwMjAxNTU5LFxuICAgICAgICByb246IDAuNzkzMTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC45NjA4MDcsXG4gICAgICAgIHJvZmY6IDAuMDAxOTYyNixcbiAgICAgICAgcm9uOiAwLjc5MzQ3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuOTYyNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMTkxMTk0LFxuICAgICAgICByb246IDAuNzkzODE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC45NjQ2MDEsXG4gICAgICAgIHJvZmY6IDAuMDAxODYzNTEsXG4gICAgICAgIHJvbjogMC43OTQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuOTY2MzE0LFxuICAgICAgICByb2ZmOiAwLjAwMTgxNzIxLFxuICAgICAgICByb246IDAuNzk0NDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC45Njc5MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxNzcyOTUsXG4gICAgICAgIHJvbjogMC43OTQ2OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk2OTQxNixcbiAgICAgICAgcm9mZjogMC4wMDE3MzA2MyxcbiAgICAgICAgcm9uOiAwLjc5NDk1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuOTcwODE5LFxuICAgICAgICByb2ZmOiAwLjAwMTY5MDE4LFxuICAgICAgICByb246IDAuNzk1MTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC45NzIxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAxNjUxNTEsXG4gICAgICAgIHJvbjogMC43OTU0MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzM2MSxcbiAgICAgICAgcm9mZjogMC4wMDE2MTQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NTYyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuOTc0NTEyLFxuICAgICAgICByb2ZmOiAwLjAwMTU3OTIxLFxuICAgICAgICByb246IDAuNzk1ODE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC45NzU1OTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNTQ1NDIsXG4gICAgICAgIHJvbjogMC43OTU5OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjYwMixcbiAgICAgICAgcm9mZjogMC4wMDE1MTMxMyxcbiAgICAgICAgcm9uOiAwLjc5NjE2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuOTc3NTQ5LFxuICAgICAgICByb2ZmOiAwLjAwMTQ4MjI2LFxuICAgICAgICByb246IDAuNzk2MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC45Nzg0MzgsXG4gICAgICAgIHJvZmY6IDAuMDAxNDUyNzUsXG4gICAgICAgIHJvbjogMC43OTY0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTI3MixcbiAgICAgICAgcm9mZjogMC4wMDE0MjQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NjYxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuOTgwMDU1LFxuICAgICAgICByb2ZmOiAwLjAwMTM5NzU3LFxuICAgICAgICByb246IDAuNzk2NzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC45ODA3OSxcbiAgICAgICAgcm9mZjogMC4wMDEzNzE3OSxcbiAgICAgICAgcm9uOiAwLjc5Njg2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuOTgxNDgxLFxuICAgICAgICByb2ZmOiAwLjAwMTM0NzE1LFxuICAgICAgICByb246IDAuNzk2OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC45ODIxMyxcbiAgICAgICAgcm9mZjogMC4wMDEzMjM2LFxuICAgICAgICByb246IDAuNzk3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mjc0LFxuICAgICAgICByb2ZmOiAwLjAwMTMwMTA5LFxuICAgICAgICByb246IDAuNzk3MTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC45ODMzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjc5NTcsXG4gICAgICAgIHJvbjogMC43OTcyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mzg1MyxcbiAgICAgICAgcm9mZjogMC4wMDEyNTg5OSxcbiAgICAgICAgcm9uOiAwLjc5NzM3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuOTg0MzYyLFxuICAgICAgICByb2ZmOiAwLjAwMTIzOTMzLFxuICAgICAgICByb246IDAuNzk3NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NDg0LFxuICAgICAgICByb2ZmOiAwLjAwMTIyMDUzLFxuICAgICAgICByb246IDAuNzk3NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC45ODUyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMjAyNTcsXG4gICAgICAgIHJvbjogMC43OTc2MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTcxNSxcbiAgICAgICAgcm9mZjogMC4wMDExODUzOSxcbiAgICAgICAgcm9uOiAwLjc5NzY4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuOTg2MTE2LFxuICAgICAgICByb2ZmOiAwLjAwMTE2ODk4LFxuICAgICAgICByb246IDAuNzk3NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC45ODY0OTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTUzMjksXG4gICAgICAgIHJvbjogMC43OTc4MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk4Njg1LFxuICAgICAgICByb2ZmOiAwLjAwMTEzODI5LFxuICAgICAgICByb246IDAuNzk3ODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC45ODcxODYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTIzOTUsXG4gICAgICAgIHJvbjogMC43OTc5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzUwMyxcbiAgICAgICAgcm9mZjogMC4wMDExMTAyNSxcbiAgICAgICAgcm9uOiAwLjc5Nzk3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuOTg3ODAzLFxuICAgICAgICByb2ZmOiAwLjAwMTA5NzE1LFxuICAgICAgICByb246IDAuNzk4MDI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC45ODgwODcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDg0NjMsXG4gICAgICAgIHJvbjogMC43OTgwNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODM1NCxcbiAgICAgICAgcm9mZjogMC4wMDEwNzI2NyxcbiAgICAgICAgcm9uOiAwLjc5ODExNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuOTg4NjA4LFxuICAgICAgICByb2ZmOiAwLjAwMTA2MTIzLFxuICAgICAgICByb246IDAuNzk4MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC45ODg4NDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUwMyxcbiAgICAgICAgcm9uOiAwLjc5ODE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuOTg5MDc0LFxuICAgICAgICByb2ZmOiAwLjAwMTAzOTg1LFxuICAgICAgICByb246IDAuNzk4MjM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC45ODkyODksXG4gICAgICAgIHJvZmY6IDAuMDAxMDI5ODYsXG4gICAgICAgIHJvbjogMC43OTgyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTQ5MixcbiAgICAgICAgcm9mZjogMC4wMDEwMjAzMSxcbiAgICAgICAgcm9uOiAwLjc5ODMwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuOTg5Njg0LFxuICAgICAgICByb2ZmOiAwLjAwMTAxMTE5LFxuICAgICAgICByb246IDAuNzk4MzM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC45ODk4NjYsXG4gICAgICAgIHJvZmY6IDAuMDAxMDAyNDcsXG4gICAgICAgIHJvbjogMC43OTgzNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDAzOSxcbiAgICAgICAgcm9mZjogMC4wMDA5OTQxMyxcbiAgICAgICAgcm9uOiAwLjc5ODM5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuOTkwMjAzLFxuICAgICAgICByb2ZmOiAwLjAwMDk4NjE2MixcbiAgICAgICAgcm9uOiAwLjc5ODQxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuOTkwMzU4LFxuICAgICAgICByb2ZmOiAwLjAwMDk3ODU0NixcbiAgICAgICAgcm9uOiAwLjc5ODQ0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuOTkwNTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MTI2NixcbiAgICAgICAgcm9uOiAwLjc5ODQ2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuOTkwNjQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDk2NDMwOCxcbiAgICAgICAgcm9uOiAwLjc5ODQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuOTkwNzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDk1NzY1NyxcbiAgICAgICAgcm9uOiAwLjc5ODUxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuOTkwOTA0LFxuICAgICAgICByb2ZmOiAwLjAwMDk1MTMsXG4gICAgICAgIHJvbjogMC43OTg1MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTAyNCxcbiAgICAgICAgcm9mZjogMC4wMDA5NDUyMjQsXG4gICAgICAgIHJvbjogMC43OTg1NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA5Mzk0MTcsXG4gICAgICAgIHJvbjogMC43OTg1NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTI0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MzM4NjYsXG4gICAgICAgIHJvbjogMC43OTg1ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA5Mjg1NjEsXG4gICAgICAgIHJvbjogMC43OTg2MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTQ0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MjM0OSxcbiAgICAgICAgcm9uOiAwLjc5ODYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuOTkxNTM4LFxuICAgICAgICByb2ZmOiAwLjAwMDkxODY0MyxcbiAgICAgICAgcm9uOiAwLjc5ODYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuOTkxNjI2LFxuICAgICAgICByb2ZmOiAwLjAwMDkxNDAxMSxcbiAgICAgICAgcm9uOiAwLjc5ODY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC45OTE3MSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDk1ODMsXG4gICAgICAgIHJvbjogMC43OTg2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDUzNTEsXG4gICAgICAgIHJvbjogMC43OTg2NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg2NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDEzMDYsXG4gICAgICAgIHJvbjogMC43OTg2ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTkzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4OTc0NCxcbiAgICAgICAgcm9uOiAwLjc5ODcwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuOTkyMDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg5Mzc0NSxcbiAgICAgICAgcm9uOiAwLjc5ODcxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyMDcxLFxuICAgICAgICByb2ZmOiAwLjAwMDg5MDIxMyxcbiAgICAgICAgcm9uOiAwLjc5ODcyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuOTkyMTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg4NjgzNyxcbiAgICAgICAgcm9uOiAwLjc5ODczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyMTkzLFxuICAgICAgICByb2ZmOiAwLjAwMDg4MzYxLFxuICAgICAgICByb246IDAuNzk4NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC45OTIyNDksXG4gICAgICAgIHJvZmY6IDAuMDAwODgwNTI2LFxuICAgICAgICByb246IDAuNzk4NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC45OTIzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODc3NTc5LFxuICAgICAgICByb246IDAuNzk4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzQ3NjEsXG4gICAgICAgIHJvbjogMC43OTg3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4NzIwNjksXG4gICAgICAgIHJvbjogMC43OTg3NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4Njk0OTUsXG4gICAgICAgIHJvbjogMC43OTg3ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjcwMzUsXG4gICAgICAgIHJvbjogMC43OTg3OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjUzNixcbiAgICAgICAgcm9mZjogMC4wMDA4NjQ2ODQsXG4gICAgICAgIHJvbjogMC43OTg3OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjU3NixcbiAgICAgICAgcm9mZjogMC4wMDA4NjI0MzcsXG4gICAgICAgIHJvbjogMC43OTg4MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjYxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4NjAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODgxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuOTkyNjUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1ODIzNyxcbiAgICAgICAgcm9uOiAwLjc5ODgxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNjg2LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NjI3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzE5LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NDQsXG4gICAgICAgIHJvbjogMC43OTg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTI2MDcsXG4gICAgICAgIHJvbjogMC43OTg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc4MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTA4OTQsXG4gICAgICAgIHJvbjogMC43OTg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgxLFxuICAgICAgICByb2ZmOiAwLjAwMDg0OTI1NyxcbiAgICAgICAgcm9uOiAwLjc5ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuOTkyODM4LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NzY5MixcbiAgICAgICAgcm9uOiAwLjc5ODg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuOTkyODY0LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NjE5NixcbiAgICAgICAgcm9uOiAwLjc5ODg1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuOTkyODg5LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NDc2NixcbiAgICAgICAgcm9uOiAwLjc5ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuOTkyOTEzLFxuICAgICAgICByb2ZmOiAwLjAwMDg0MzM5OSxcbiAgICAgICAgcm9uOiAwLjc5ODg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuOTkyOTM2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MjA5MyxcbiAgICAgICAgcm9uOiAwLjc5ODg2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuOTkyOTU3LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MDg0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuOTkyOTc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTY1MixcbiAgICAgICAgcm9uOiAwLjc5ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC45OTI5OTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM4NTEyLFxuICAgICAgICByb246IDAuNzk4ODczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC45OTMwMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NDIyLFxuICAgICAgICByb246IDAuNzk4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC45OTMwMzUsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2MzgsXG4gICAgICAgIHJvbjogMC43OTg4NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA1MixcbiAgICAgICAgcm9mZjogMC4wMDA4MzUzODUsXG4gICAgICAgIHJvbjogMC43OTg4ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ0MzMsXG4gICAgICAgIHJvbjogMC43OTg4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM1MjQsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzI2NTQsXG4gICAgICAgIHJvbjogMC43OTg4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMTE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTgyNCxcbiAgICAgICAgcm9uOiAwLjc5ODg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTAzLFxuICAgICAgICByb246IDAuNzk4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC45OTMxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzAyNzEsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE1MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk1NDUsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjg4NTIsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC45OTMxNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4MTg5LFxuICAgICAgICByb246IDAuNzk4OTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC45OTMxODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3NTU1LFxuICAgICAgICByb246IDAuNzk4OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2OTUsXG4gICAgICAgIHJvbjogMC43OTg5MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjYzNzEsXG4gICAgICAgIHJvbjogMC43OTg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU4MTgsXG4gICAgICAgIHJvbjogMC43OTg5MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIyNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjUyODksXG4gICAgICAgIHJvbjogMC43OTg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMjM1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDMsXG4gICAgICAgIHJvbjogMC43OTg5MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM4MzksXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjMzOTgsXG4gICAgICAgIHJvbjogMC43OTg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjI5NzYsXG4gICAgICAgIHJvbjogMC43OTg5MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MjI1NzMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIxODgsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE4MixcbiAgICAgICAgcm9uOiAwLjc5ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC45OTMyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNDY4LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC45OTMyOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMTMyLFxuICAgICAgICByb246IDAuNzk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzMDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwODEsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1MDMsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjAyMDksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk5MjksXG4gICAgICAgIHJvbjogMC43OTg5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTk2NixcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzI2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTQwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MTU5LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC45OTMzMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4OTI1LFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NzAxLFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NDg3LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzNDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MjgyLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgwODcsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzUyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzksXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3MjIsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc1NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzIzMixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzA4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjk0MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2ODA0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2Njc0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzNzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NTUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0MzEsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYzMTgsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjIwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzgyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjEwNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjAwNixcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkxMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTgyMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NjUxLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTcyLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDk3LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDI1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzU2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyMjcsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxNjYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxMDksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDU0LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDAxLFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTUxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTAzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODU3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODEzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzcxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzMxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjkzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjU2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjIxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1ODcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU1NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTI1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0OTYsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ0MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDE1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzkxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzQ1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzI0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzA0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mjg0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjY2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxODQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTU3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA5NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwODcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDc3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDQyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTgyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dXG5sZXQgbW9kZWxPZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTtcbmxldCBtb2RlbE9mZk9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjM2OTgsXG4gICAgICAgIHJvZmY6IDAuNjk3NzAxLFxuICAgICAgICByb246IDAuODMyNjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuMDAwMjExMDc0LFxuICAgICAgICByb2ZmOiAwLjYxMjM2MyxcbiAgICAgICAgcm9uOiAwLjk0ODUyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAyNjc1MjYsXG4gICAgICAgIHJvZmY6IDAuNTUwNzc3LFxuICAgICAgICByb246IDAuOTE5NjI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMyOTY3NixcbiAgICAgICAgcm9mZjogMC41MDE1MTYsXG4gICAgICAgIHJvbjogMC44NzA4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMzk3NTg0LFxuICAgICAgICByb2ZmOiAwLjQ2MDMxOSxcbiAgICAgICAgcm9uOiAwLjgwOTk1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDA0NzIwMjgsXG4gICAgICAgIHJvZmY6IDAuNDI0OTQ1LFxuICAgICAgICByb246IDAuNzQ0NDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU1Mzk1LFxuICAgICAgICByb2ZmOiAwLjM5NDAxNSxcbiAgICAgICAgcm9uOiAwLjY4MDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDY0NDM0LFxuICAgICAgICByb2ZmOiAwLjM2NjYxLFxuICAgICAgICByb246IDAuNjIxMDIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDc0NDIyMixcbiAgICAgICAgcm9mZjogMC4zNDIwODIsXG4gICAgICAgIHJvbjogMC41Njc4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwODU0NjY0LFxuICAgICAgICByb2ZmOiAwLjMxOTk1OCxcbiAgICAgICAgcm9uOiAwLjUyMDc0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5NzY3ODcsXG4gICAgICAgIHJvZmY6IDAuMjk5ODc3LFxuICAgICAgICByb246IDAuNDc5MzI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExMTc4LFxuICAgICAgICByb2ZmOiAwLjI4MTU1NixcbiAgICAgICAgcm9uOiAwLjQ0MjgxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjA5MSxcbiAgICAgICAgcm9mZjogMC4yNjQ3NzEsXG4gICAgICAgIHJvbjogMC40MTA1MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDI1NTIsXG4gICAgICAgIHJvZmY6IDAuMjQ5MzM4LFxuICAgICAgICByb246IDAuMzgxNzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTYwNzA0LFxuICAgICAgICByb2ZmOiAwLjIzNTEwNixcbiAgICAgICAgcm9uOiAwLjM1NjAxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC4wMDE4MDcsXG4gICAgICAgIHJvZmY6IDAuMjIxOTQ4LFxuICAgICAgICByb246IDAuMzMyODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuMDAyMDI3MDEsXG4gICAgICAgIHJvZmY6IDAuMjA5NzU3LFxuICAgICAgICByb246IDAuMzExODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI2ODc0LFxuICAgICAgICByb2ZmOiAwLjE5ODQ0MixcbiAgICAgICAgcm9uOiAwLjI5MjgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MzM5NSxcbiAgICAgICAgcm9mZjogMC4xODc5MjUsXG4gICAgICAgIHJvbjogMC4yNzU0MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuMDAyODI0NDMsXG4gICAgICAgIHJvZmY6IDAuMTc4MTM3LFxuICAgICAgICByb246IDAuMjU5NTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC4wMDMxNDIwMyxcbiAgICAgICAgcm9mZjogMC4xNjkwMjEsXG4gICAgICAgIHJvbjogMC4yNDQ5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQ4ODU0LFxuICAgICAgICByb2ZmOiAwLjE2MDUyMyxcbiAgICAgICAgcm9uOiAwLjIzMTQ3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzODY1NzYsXG4gICAgICAgIHJvZmY6IDAuMTUyNixcbiAgICAgICAgcm9uOiAwLjIxOTA5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuMDA0Mjc1MzYsXG4gICAgICAgIHJvZmY6IDAuMTQ1MjEsXG4gICAgICAgIHJvbjogMC4yMDc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDcxODg2LFxuICAgICAgICByb2ZmOiAwLjEzODMxOSxcbiAgICAgICAgcm9uOiAwLjE5NzEwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA1MTk3NTYsXG4gICAgICAgIHJvZmY6IDAuMTMxODk1LFxuICAgICAgICByb246IDAuMTg3MzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDU3MTI0MixcbiAgICAgICAgcm9mZjogMC4xMjU5MDksXG4gICAgICAgIHJvbjogMC4xNzgzMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjI2NDAxLFxuICAgICAgICByb2ZmOiAwLjEyMDMzNixcbiAgICAgICAgcm9uOiAwLjE2OTk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2ODUyMzksXG4gICAgICAgIHJvZmY6IDAuMTE1MTU0LFxuICAgICAgICByb246IDAuMTYyMjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDc0NzcwNCxcbiAgICAgICAgcm9mZjogMC4xMTAzNDEsXG4gICAgICAgIHJvbjogMC4xNTUxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuMDA4MTM2NjgsXG4gICAgICAgIHJvZmY6IDAuMTA1ODc4LFxuICAgICAgICByb246IDAuMTQ4NjI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC4wMDg4MjkyOSxcbiAgICAgICAgcm9mZjogMC4xMDE3NDgsXG4gICAgICAgIHJvbjogMC4xNDI1OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTU1MTk4LFxuICAgICAgICByb2ZmOiAwLjA5NzkzMjYsXG4gICAgICAgIHJvbjogMC4xMzcwNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDMwMSxcbiAgICAgICAgcm9mZjogMC4wOTQ0MTc0LFxuICAgICAgICByb246IDAuMTMxOTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC4wMTEwNzE4LFxuICAgICAgICByb2ZmOiAwLjA5MTE4NjYsXG4gICAgICAgIHJvbjogMC4xMjczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTg1ODksXG4gICAgICAgIHJvZmY6IDAuMDg4MjI1MixcbiAgICAgICAgcm9uOiAwLjEyMzA3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuMDEyNjU2NCxcbiAgICAgICAgcm9mZjogMC4wODU1MTg4LFxuICAgICAgICByb246IDAuMTE5MjEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTM0NTc2LFxuICAgICAgICByb2ZmOiAwLjA4MzA1MjgsXG4gICAgICAgIHJvbjogMC4xMTU3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNDI1NTcsXG4gICAgICAgIHJvZmY6IDAuMDgwODEyNyxcbiAgICAgICAgcm9uOiAwLjExMjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC4wMTUwNDM5LFxuICAgICAgICByb2ZmOiAwLjA3ODc4NDIsXG4gICAgICAgIHJvbjogMC4xMDk3MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNTgxNTYsXG4gICAgICAgIHJvZmY6IDAuMDc2OTUzLFxuICAgICAgICByb246IDAuMTA3MTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC4wMTY1NjQ1LFxuICAgICAgICByb2ZmOiAwLjA3NTMwNDksXG4gICAgICAgIHJvbjogMC4xMDQ4NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNzI4NTMsXG4gICAgICAgIHJvZmY6IDAuMDczODI1NyxcbiAgICAgICAgcm9uOiAwLjEwMjgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC4wMTc5NzMzLFxuICAgICAgICByb2ZmOiAwLjA3MjUwMTgsXG4gICAgICAgIHJvbjogMC4xMDEwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxODYyNDgsXG4gICAgICAgIHJvZmY6IDAuMDcxMzE5NixcbiAgICAgICAgcm9uOiAwLjA5OTQxMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxOTIzNzMsXG4gICAgICAgIHJvZmY6IDAuMDcwMjY2MyxcbiAgICAgICAgcm9uOiAwLjA5ODAwNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAxOTgwOTEsXG4gICAgICAgIHJvZmY6IDAuMDY5MzI5NCxcbiAgICAgICAgcm9uOiAwLjA5Njc2ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDY4NDk3MixcbiAgICAgICAgcm9uOiAwLjA5NTY4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDIwODI5NixcbiAgICAgICAgcm9mZjogMC4wNjc3NTg3LFxuICAgICAgICByb246IDAuMDk0NzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC4wMjEyNzk0LFxuICAgICAgICByb2ZmOiAwLjA2NzEwMzYsXG4gICAgICAgIHJvbjogMC4wOTM5MzM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMjE2OTA5LFxuICAgICAgICByb2ZmOiAwLjA2NjUyMjUsXG4gICAgICAgIHJvbjogMC4wOTMyMzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMjIwNjYzLFxuICAgICAgICByb2ZmOiAwLjA2NjAwNjYsXG4gICAgICAgIHJvbjogMC4wOTI2Mjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMjI0MDc4LFxuICAgICAgICByb2ZmOiAwLjA2NTU0OCxcbiAgICAgICAgcm9uOiAwLjA5MjExNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMjcxODMsXG4gICAgICAgIHJvZmY6IDAuMDY1MTM5NSxcbiAgICAgICAgcm9uOiAwLjA5MTY4MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzAwMDMsXG4gICAgICAgIHJvZmY6IDAuMDY0Nzc0NixcbiAgICAgICAgcm9uOiAwLjA5MTMxNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzI1NjcsXG4gICAgICAgIHJvZmY6IDAuMDY0NDQ3NixcbiAgICAgICAgcm9uOiAwLjA5MTAxMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzQ5MDIsXG4gICAgICAgIHJvZmY6IDAuMDY0MTUzMyxcbiAgICAgICAgcm9uOiAwLjA5MDc2NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzcwMzMsXG4gICAgICAgIHJvZmY6IDAuMDYzODg3MSxcbiAgICAgICAgcm9uOiAwLjA5MDU2NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzg5ODYsXG4gICAgICAgIHJvZmY6IDAuMDYzNjQ0OCxcbiAgICAgICAgcm9uOiAwLjA5MDQxMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDA3ODMsXG4gICAgICAgIHJvZmY6IDAuMDYzNDIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDI5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDI0NDYsXG4gICAgICAgIHJvZmY6IDAuMDYzMjE4MixcbiAgICAgICAgcm9uOiAwLjA5MDIwODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDM5OTUsXG4gICAgICAgIHJvZmY6IDAuMDYzMDI3OSxcbiAgICAgICAgcm9uOiAwLjA5MDE1NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDU0NDcsXG4gICAgICAgIHJvZmY6IDAuMDYyODQ5NSxcbiAgICAgICAgcm9uOiAwLjA5MDEzMDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDY4MixcbiAgICAgICAgcm9mZjogMC4wNjI2ODA3LFxuICAgICAgICByb246IDAuMDkwMTI5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuMDI0ODEyNyxcbiAgICAgICAgcm9mZjogMC4wNjI1MTk4LFxuICAgICAgICByb246IDAuMDkwMTUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuMDI0OTM4MyxcbiAgICAgICAgcm9mZjogMC4wNjIzNjQ5LFxuICAgICAgICByb246IDAuMDkwMTkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDI1MDYsXG4gICAgICAgIHJvZmY6IDAuMDYyMjE0NyxcbiAgICAgICAgcm9uOiAwLjA5MDI1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTE3ODcsXG4gICAgICAgIHJvZmY6IDAuMDYyMDY3NyxcbiAgICAgICAgcm9uOiAwLjA5MDMzMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTI5NTcsXG4gICAgICAgIHJvZmY6IDAuMDYxOTIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDQyNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTQxMTYsXG4gICAgICAgIHJvZmY6IDAuMDYxNzc5MSxcbiAgICAgICAgcm9uOiAwLjA5MDUzNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTUyNzQsXG4gICAgICAgIHJvZmY6IDAuMDYxNjM1NCxcbiAgICAgICAgcm9uOiAwLjA5MDY1ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTY0MzgsXG4gICAgICAgIHJvZmY6IDAuMDYxNDkxMSxcbiAgICAgICAgcm9uOiAwLjA5MDc5NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTc2MTYsXG4gICAgICAgIHJvZmY6IDAuMDYxMzQ1MyxcbiAgICAgICAgcm9uOiAwLjA5MDk0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTg4MTIsXG4gICAgICAgIHJvZmY6IDAuMDYxMTk3MyxcbiAgICAgICAgcm9uOiAwLjA5MTExMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDI2MDAzNSxcbiAgICAgICAgcm9mZjogMC4wNjEwNDY3LFxuICAgICAgICByb246IDAuMDkxMjg5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuMDI2MTI4OCxcbiAgICAgICAgcm9mZjogMC4wNjA4OTI3LFxuICAgICAgICByb246IDAuMDkxNDc5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuMDI2MjU3OCxcbiAgICAgICAgcm9mZjogMC4wNjA3MzQ4LFxuICAgICAgICByb246IDAuMDkxNjgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuMDI2MzkwOSxcbiAgICAgICAgcm9mZjogMC4wNjA1NzI3LFxuICAgICAgICByb246IDAuMDkxODk5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuMDI2NTI4NyxcbiAgICAgICAgcm9mZjogMC4wNjA0MDU3LFxuICAgICAgICByb246IDAuMDkyMTI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuMDI2NjcxNyxcbiAgICAgICAgcm9mZjogMC4wNjAyMzM2LFxuICAgICAgICByb246IDAuMDkyMzcxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDI2ODIwMyxcbiAgICAgICAgcm9mZjogMC4wNjAwNTU5LFxuICAgICAgICByb246IDAuMDkyNjI3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuMDI2OTc1LFxuICAgICAgICByb2ZmOiAwLjA1OTg3MjEsXG4gICAgICAgIHJvbjogMC4wOTI4OTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMjcxMzYzLFxuICAgICAgICByb2ZmOiAwLjA1OTY4MTksXG4gICAgICAgIHJvbjogMC4wOTMxODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMjczMDQ3LFxuICAgICAgICByb2ZmOiAwLjA1OTQ4NSxcbiAgICAgICAgcm9uOiAwLjA5MzQ4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzQ4MDgsXG4gICAgICAgIHJvZmY6IDAuMDU5MjgxLFxuICAgICAgICByb246IDAuMDkzNzk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuMDI3NjY1LFxuICAgICAgICByb2ZmOiAwLjA1OTA2OTUsXG4gICAgICAgIHJvbjogMC4wOTQxMzExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC4wMjc4NTc4LFxuICAgICAgICByb2ZmOiAwLjA1ODg1MDMsXG4gICAgICAgIHJvbjogMC4wOTQ0Nzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC4wMjgwNTk5LFxuICAgICAgICByb2ZmOiAwLjA1ODYyMjksXG4gICAgICAgIHJvbjogMC4wOTQ4NDY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC4wMjgyNzE3LFxuICAgICAgICByb2ZmOiAwLjA1ODM4NyxcbiAgICAgICAgcm9uOiAwLjA5NTIzMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODQ5NCxcbiAgICAgICAgcm9mZjogMC4wNTgxNDIzLFxuICAgICAgICByb246IDAuMDk1NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC4wMjg3MjczLFxuICAgICAgICByb2ZmOiAwLjA1Nzg4ODUsXG4gICAgICAgIHJvbjogMC4wOTYwNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC4wMjg5NzI0LFxuICAgICAgICByb2ZmOiAwLjA1NzYyNTIsXG4gICAgICAgIHJvbjogMC4wOTY1MDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC4wMjkyMjk5LFxuICAgICAgICByb2ZmOiAwLjA1NzM1MjIsXG4gICAgICAgIHJvbjogMC4wOTY5NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC4wMjk1MDA1LFxuICAgICAgICByb2ZmOiAwLjA1NzA2ODksXG4gICAgICAgIHJvbjogMC4wOTc0NjcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC4wMjk3ODUyLFxuICAgICAgICByb2ZmOiAwLjA1Njc3NTMsXG4gICAgICAgIHJvbjogMC4wOTc5ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDA4NDcsXG4gICAgICAgIHJvZmY6IDAuMDU2NDcwOCxcbiAgICAgICAgcm9uOiAwLjA5ODUyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMDM5OTksXG4gICAgICAgIHJvZmY6IDAuMDU2MTU1MixcbiAgICAgICAgcm9uOiAwLjA5OTA5NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDczMTksXG4gICAgICAgIHJvZmY6IDAuMDU1ODI4MixcbiAgICAgICAgcm9uOiAwLjA5OTY5NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMTA4MTYsXG4gICAgICAgIHJvZmY6IDAuMDU1NDg5NCxcbiAgICAgICAgcm9uOiAwLjEwMDMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuMDMxNDUwMixcbiAgICAgICAgcm9mZjogMC4wNTUxMzg2LFxuICAgICAgICByb246IDAuMTAwOTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMzE4Mzg3LFxuICAgICAgICByb2ZmOiAwLjA1NDc3NTQsXG4gICAgICAgIHJvbjogMC4xMDE2ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMjI0ODYsXG4gICAgICAgIHJvZmY6IDAuMDU0Mzk5NSxcbiAgICAgICAgcm9uOiAwLjEwMjQxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuMDMyNjgxLFxuICAgICAgICByb2ZmOiAwLjA1NDAxMDUsXG4gICAgICAgIHJvbjogMC4xMDMxODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMzEzNzUsXG4gICAgICAgIHJvZmY6IDAuMDUzNjA4MyxcbiAgICAgICAgcm9uOiAwLjEwMzk5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuMDMzNjE5NyxcbiAgICAgICAgcm9mZjogMC4wNTMxOTI2LFxuICAgICAgICByb246IDAuMTA0ODUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC4wMzQxMjkxLFxuICAgICAgICByb2ZmOiAwLjA1Mjc2MyxcbiAgICAgICAgcm9uOiAwLjEwNTc1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuMDM0NjY3NyxcbiAgICAgICAgcm9mZjogMC4wNTIzMTkyLFxuICAgICAgICByb246IDAuMTA2Njk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC4wMzUyMzcyLFxuICAgICAgICByb2ZmOiAwLjA1MTg2MTIsXG4gICAgICAgIHJvbjogMC4xMDc2OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNTgzOTgsXG4gICAgICAgIHJvZmY6IDAuMDUxMzg4NixcbiAgICAgICAgcm9uOiAwLjEwODc0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuMDM2NDc3NyxcbiAgICAgICAgcm9mZjogMC4wNTA5MDEyLFxuICAgICAgICByb246IDAuMTA5ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC4wMzcxNTM0LFxuICAgICAgICByb2ZmOiAwLjA1MDM5ODksXG4gICAgICAgIHJvbjogMC4xMTEwMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNzg2OTMsXG4gICAgICAgIHJvZmY6IDAuMDQ5ODgxNCxcbiAgICAgICAgcm9uOiAwLjExMjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuMDM4NjI4NCxcbiAgICAgICAgcm9mZjogMC4wNDkzNDg3LFxuICAgICAgICByb246IDAuMTEzNTU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC4wMzk0MzM2LFxuICAgICAgICByb2ZmOiAwLjA0ODgwMDcsXG4gICAgICAgIHJvbjogMC4xMTQ5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MDI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDQ4MjM3MixcbiAgICAgICAgcm9uOiAwLjExNjM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC4wNDExOTU4LFxuICAgICAgICByb2ZmOiAwLjA0NzY1ODMsXG4gICAgICAgIHJvbjogMC4xMTc5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MjE2MDEsXG4gICAgICAgIHJvZmY6IDAuMDQ3MDY0LFxuICAgICAgICByb246IDAuMTE5NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wNDMxODUyLFxuICAgICAgICByb2ZmOiAwLjA0NjQ1NDIsXG4gICAgICAgIHJvbjogMC4xMjEyNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NDI3NTYsXG4gICAgICAgIHJvZmY6IDAuMDQ1ODI5MixcbiAgICAgICAgcm9uOiAwLjEyMzA2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuMDQ1NDM2MixcbiAgICAgICAgcm9mZjogMC4wNDUxODksXG4gICAgICAgIHJvbjogMC4xMjQ5ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NjY3MjEsXG4gICAgICAgIHJvZmY6IDAuMDQ0NTMzOCxcbiAgICAgICAgcm9uOiAwLjEyNzAxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDQ3OTg5LFxuICAgICAgICByb2ZmOiAwLjA0Mzg2MzksXG4gICAgICAgIHJvbjogMC4xMjkxNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjA0OTM5MjksXG4gICAgICAgIHJvZmY6IDAuMDQzMTc5NSxcbiAgICAgICAgcm9uOiAwLjEzMTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC4wNTA4OTA2LFxuICAgICAgICByb2ZmOiAwLjA0MjQ4MTEsXG4gICAgICAgIHJvbjogMC4xMzM4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjA1MjQ4OSxcbiAgICAgICAgcm9mZjogMC4wNDE3NjksXG4gICAgICAgIHJvbjogMC4xMzY0MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjA1NDE5NixcbiAgICAgICAgcm9mZjogMC4wNDEwNDM4LFxuICAgICAgICByb246IDAuMTM5MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC4wNTYwMTk4LFxuICAgICAgICByb2ZmOiAwLjA0MDMwNixcbiAgICAgICAgcm9uOiAwLjE0MjA0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDU3OTY5NSxcbiAgICAgICAgcm9mZjogMC4wMzk1NTYxLFxuICAgICAgICByb246IDAuMTQ1MTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wNjAwNTQ3LFxuICAgICAgICByb2ZmOiAwLjAzODc5NSxcbiAgICAgICAgcm9uOiAwLjE0ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC4wNjIyODYxLFxuICAgICAgICByb2ZmOiAwLjAzODAyMzIsXG4gICAgICAgIHJvbjogMC4xNTE4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjA2NDY3NDgsXG4gICAgICAgIHJvZmY6IDAuMDM3MjQxNyxcbiAgICAgICAgcm9uOiAwLjE1NTUzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuMDY3MjMzMSxcbiAgICAgICAgcm9mZjogMC4wMzY0NTE0LFxuICAgICAgICByb246IDAuMTU5NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjA2OTk3MzksXG4gICAgICAgIHJvZmY6IDAuMDM1NjUzLFxuICAgICAgICByb246IDAuMTYzNjE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC4wNzI5MTE0LFxuICAgICAgICByb2ZmOiAwLjAzNDg0NzgsXG4gICAgICAgIHJvbjogMC4xNjgwNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjA3NjA2MDUsXG4gICAgICAgIHJvZmY6IDAuMDM0MDM2NixcbiAgICAgICAgcm9uOiAwLjE3Mjc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuMDc5NDM3MixcbiAgICAgICAgcm9mZjogMC4wMzMyMjA3LFxuICAgICAgICByb246IDAuMTc3Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC4wODMwNTg2LFxuICAgICAgICByb2ZmOiAwLjAzMjQwMTIsXG4gICAgICAgIHJvbjogMC4xODMxNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjA4Njk0MyxcbiAgICAgICAgcm9mZjogMC4wMzE1NzkyLFxuICAgICAgICByb246IDAuMTg4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC4wOTExMDk1LFxuICAgICAgICByb2ZmOiAwLjAzMDc1NixcbiAgICAgICAgcm9uOiAwLjE5NDg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDk1NTc4NCxcbiAgICAgICAgcm9mZjogMC4wMjk5MzI5LFxuICAgICAgICByb246IDAuMjAxMzQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC4xMDAzNzEsXG4gICAgICAgIHJvZmY6IDAuMDI5MTExMSxcbiAgICAgICAgcm9uOiAwLjIwODIwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuMTA1NTEsXG4gICAgICAgIHJvZmY6IDAuMDI4MjkyLFxuICAgICAgICByb246IDAuMjE1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuMTExMDE5LFxuICAgICAgICByb2ZmOiAwLjAyNzQ3NjcsXG4gICAgICAgIHJvbjogMC4yMjMyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuMTE2OTIxLFxuICAgICAgICByb2ZmOiAwLjAyNjY2NjUsXG4gICAgICAgIHJvbjogMC4yMzE1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjEyMzI0MSxcbiAgICAgICAgcm9mZjogMC4wMjU4NjI4LFxuICAgICAgICByb246IDAuMjQwMjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC4xMzAwMDUsXG4gICAgICAgIHJvZmY6IDAuMDI1MDY2OCxcbiAgICAgICAgcm9uOiAwLjI0OTU1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuMTM3MjM4LFxuICAgICAgICByb2ZmOiAwLjAyNDI3OTUsXG4gICAgICAgIHJvbjogMC4yNTkzOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjE0NDk2NyxcbiAgICAgICAgcm9mZjogMC4wMjM1MDIyLFxuICAgICAgICByb246IDAuMjY5ODI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4xNTMyMTUsXG4gICAgICAgIHJvZmY6IDAuMDIyNzM1OSxcbiAgICAgICAgcm9uOiAwLjI4MDg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuMTYyMDA5LFxuICAgICAgICByb2ZmOiAwLjAyMTk4MTcsXG4gICAgICAgIHJvbjogMC4yOTI0ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjE3MTM3MSxcbiAgICAgICAgcm9mZjogMC4wMjEyNDA1LFxuICAgICAgICByb246IDAuMzA0NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC4xODEzMjUsXG4gICAgICAgIHJvZmY6IDAuMDIwNTEzMixcbiAgICAgICAgcm9uOiAwLjMxNzYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMTkxODg5LFxuICAgICAgICByb2ZmOiAwLjAxOTgwMDYsXG4gICAgICAgIHJvbjogMC4zMzExNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjIwMzA4MyxcbiAgICAgICAgcm9mZjogMC4wMTkxMDMzLFxuICAgICAgICByb246IDAuMzQ1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC4yMTQ5MjEsXG4gICAgICAgIHJvZmY6IDAuMDE4NDIyMSxcbiAgICAgICAgcm9uOiAwLjM2MDA4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuMjI3NDE0LFxuICAgICAgICByb2ZmOiAwLjAxNzc1NzQsXG4gICAgICAgIHJvbjogMC4zNzU0NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjI0MDU2OCxcbiAgICAgICAgcm9mZjogMC4wMTcxMDk3LFxuICAgICAgICByb246IDAuMzkxMzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC4yNTQzODcsXG4gICAgICAgIHJvZmY6IDAuMDE2NDc5MyxcbiAgICAgICAgcm9uOiAwLjQwNzc4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuMjY4ODY2LFxuICAgICAgICByb2ZmOiAwLjAxNTg2NjcsXG4gICAgICAgIHJvbjogMC40MjQ2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjI4Mzk5NyxcbiAgICAgICAgcm9mZjogMC4wMTUyNzE5LFxuICAgICAgICByb246IDAuNDQxOTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4yOTk3NjUsXG4gICAgICAgIHJvZmY6IDAuMDE0Njk1MSxcbiAgICAgICAgcm9uOiAwLjQ1OTQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuMzE2MTQ2LFxuICAgICAgICByb2ZmOiAwLjAxNDEzNjMsXG4gICAgICAgIHJvbjogMC40NzcyNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjMzMzExMyxcbiAgICAgICAgcm9mZjogMC4wMTM1OTU2LFxuICAgICAgICByb246IDAuNDk1MTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4zNTA2MyxcbiAgICAgICAgcm9mZjogMC4wMTMwNzI5LFxuICAgICAgICByb246IDAuNTEyOTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC4zNjg2NTQsXG4gICAgICAgIHJvZmY6IDAuMDEyNTY4LFxuICAgICAgICByb246IDAuNTMwNjMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC4zODcxMzYsXG4gICAgICAgIHJvZmY6IDAuMDEyMDgwOCxcbiAgICAgICAgcm9uOiAwLjU0ODAzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuNDA2MDIxLFxuICAgICAgICByb2ZmOiAwLjAxMTYxMTEsXG4gICAgICAgIHJvbjogMC41NjUwMzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjQyNTI0OCxcbiAgICAgICAgcm9mZjogMC4wMTExNTg1LFxuICAgICAgICByb246IDAuNTgxNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC40NDQ3NTIsXG4gICAgICAgIHJvZmY6IDAuMDEwNzIyOCxcbiAgICAgICAgcm9uOiAwLjU5NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC40NjQ0NjQsXG4gICAgICAgIHJvZmY6IDAuMDEwMzAzNixcbiAgICAgICAgcm9uOiAwLjYxMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC40ODQzMSxcbiAgICAgICAgcm9mZjogMC4wMDk5MDA1NCxcbiAgICAgICAgcm9uOiAwLjYyNjY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuNTA0MjE4LFxuICAgICAgICByb2ZmOiAwLjAwOTUxMzI2LFxuICAgICAgICByb246IDAuNjQwMTA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC41MjQxMTQsXG4gICAgICAgIHJvZmY6IDAuMDA5MTQxMzMsXG4gICAgICAgIHJvbjogMC42NTI2MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjU0MzkyMyxcbiAgICAgICAgcm9mZjogMC4wMDg3ODQzLFxuICAgICAgICByb246IDAuNjY0MjQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC41NjM1NzUsXG4gICAgICAgIHJvZmY6IDAuMDA4NDQxNzMsXG4gICAgICAgIHJvbjogMC42NzQ5NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjU4MzAwMSxcbiAgICAgICAgcm9mZjogMC4wMDgxMTMxNixcbiAgICAgICAgcm9uOiAwLjY4NDg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC42MDIxMzYsXG4gICAgICAgIHJvZmY6IDAuMDA3Nzk4MTIsXG4gICAgICAgIHJvbjogMC42OTM5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjYyMDkxOSxcbiAgICAgICAgcm9mZjogMC4wMDc0OTYxNSxcbiAgICAgICAgcm9uOiAwLjcwMjIyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuNjM5Mjk3LFxuICAgICAgICByb2ZmOiAwLjAwNzIwNjc5LFxuICAgICAgICByb246IDAuNzA5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC42NTcyMjEsXG4gICAgICAgIHJvZmY6IDAuMDA2OTI5NTcsXG4gICAgICAgIHJvbjogMC43MTY3ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjY3NDY0NyxcbiAgICAgICAgcm9mZjogMC4wMDY2NjQwMyxcbiAgICAgICAgcm9uOiAwLjcyMzE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuNjkxNTM5LFxuICAgICAgICByb2ZmOiAwLjAwNjQwOTczLFxuICAgICAgICByb246IDAuNzI5MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC43MDc4NjYsXG4gICAgICAgIHJvZmY6IDAuMDA2MTY2MjMsXG4gICAgICAgIHJvbjogMC43MzQzNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjcyMzYwNCxcbiAgICAgICAgcm9mZjogMC4wMDU5MzMxMSxcbiAgICAgICAgcm9uOiAwLjczOTI3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuNzM4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwNTcwOTk1LFxuICAgICAgICByb246IDAuNzQzNzg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC43NTMyNDksXG4gICAgICAgIHJvZmY6IDAuMDA1NDk2MzQsXG4gICAgICAgIHJvbjogMC43NDc5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjc2NzEzNSxcbiAgICAgICAgcm9mZjogMC4wMDUyOTE5MSxcbiAgICAgICAgcm9uOiAwLjc1MTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC43ODAzOTIsXG4gICAgICAgIHJvZmY6IDAuMDA1MDk2MjYsXG4gICAgICAgIHJvbjogMC43NTUyNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjc5MzAyMyxcbiAgICAgICAgcm9mZjogMC4wMDQ5MDkwNCxcbiAgICAgICAgcm9uOiAwLjc1ODQ5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuODA1MDM0LFxuICAgICAgICByb2ZmOiAwLjAwNDcyOTksXG4gICAgICAgIHJvbjogMC43NjE0NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjgxNjQzNCxcbiAgICAgICAgcm9mZjogMC4wMDQ1NTg1LFxuICAgICAgICByb246IDAuNzY0MjI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC44MjcyMzUsXG4gICAgICAgIHJvZmY6IDAuMDA0Mzk0NTIsXG4gICAgICAgIHJvbjogMC43NjY3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuODM3NDU0LFxuICAgICAgICByb2ZmOiAwLjAwNDIzNzY0LFxuICAgICAgICByb246IDAuNzY5MDk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC44NDcxMDgsXG4gICAgICAgIHJvZmY6IDAuMDA0MDg3NTYsXG4gICAgICAgIHJvbjogMC43NzEyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjg1NjIxNSxcbiAgICAgICAgcm9mZjogMC4wMDM5NDQsXG4gICAgICAgIHJvbjogMC43NzMyNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjg2NDc5NSxcbiAgICAgICAgcm9mZjogMC4wMDM4MDY2OCxcbiAgICAgICAgcm9uOiAwLjc3NTA4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuODcyODcxLFxuICAgICAgICByb2ZmOiAwLjAwMzY3NTM0LFxuICAgICAgICByb246IDAuNzc2NzgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC44ODA0NjIsXG4gICAgICAgIHJvZmY6IDAuMDAzNTQ5NzEsXG4gICAgICAgIHJvbjogMC43NzgzNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjg4NzU5MyxcbiAgICAgICAgcm9mZjogMC4wMDM0Mjk1NixcbiAgICAgICAgcm9uOiAwLjc3OTc5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuODk0Mjg1LFxuICAgICAgICByb2ZmOiAwLjAwMzMxNDY0LFxuICAgICAgICByb246IDAuNzgxMTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuOTAwNTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMjA0NzQsXG4gICAgICAgIHJvbjogMC43ODIzNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45MDY0NDEsXG4gICAgICAgIHJvZmY6IDAuMDAzMDk5NjQsXG4gICAgICAgIHJvbjogMC43ODM1MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45MTE5NDgsXG4gICAgICAgIHJvZmY6IDAuMDAyOTk5MTQsXG4gICAgICAgIHJvbjogMC43ODQ1ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45MTcxMDMsXG4gICAgICAgIHJvZmY6IDAuMDAyOTAzMDIsXG4gICAgICAgIHJvbjogMC43ODU1NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45MjE5MjYsXG4gICAgICAgIHJvZmY6IDAuMDAyODExMTEsXG4gICAgICAgIHJvbjogMC43ODY0NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45MjY0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAyNzIzMjMsXG4gICAgICAgIHJvbjogMC43ODczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45MzA2NTQsXG4gICAgICAgIHJvZmY6IDAuMDAyNjM5MTksXG4gICAgICAgIHJvbjogMC43ODgwOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC45MzQ1OTYsXG4gICAgICAgIHJvZmY6IDAuMDAyNTU4ODMsXG4gICAgICAgIHJvbjogMC43ODg4MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC45MzgyNzksXG4gICAgICAgIHJvZmY6IDAuMDAyNDgxOTksXG4gICAgICAgIHJvbjogMC43ODk0ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45NDE3MjEsXG4gICAgICAgIHJvZmY6IDAuMDAyNDA4NTIsXG4gICAgICAgIHJvbjogMC43OTAxMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC45NDQ5MzYsXG4gICAgICAgIHJvZmY6IDAuMDAyMzM4MjgsXG4gICAgICAgIHJvbjogMC43OTA2ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC45NDc5NCxcbiAgICAgICAgcm9mZjogMC4wMDIyNzExMixcbiAgICAgICAgcm9uOiAwLjc5MTIxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk1MDc0NSxcbiAgICAgICAgcm9mZjogMC4wMDIyMDY5LFxuICAgICAgICByb246IDAuNzkxNzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuOTUzMzY2LFxuICAgICAgICByb2ZmOiAwLjAwMjE0NTUxLFxuICAgICAgICByb246IDAuNzkyMTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTU1ODE1LFxuICAgICAgICByb2ZmOiAwLjAwMjA4NjgxLFxuICAgICAgICByb246IDAuNzkyNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuOTU4MTAzLFxuICAgICAgICByb2ZmOiAwLjAwMjAzMDY5LFxuICAgICAgICByb246IDAuNzkzMDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuOTYwMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxOTc3MDQsXG4gICAgICAgIHJvbjogMC43OTMzNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45NjIyMzgsXG4gICAgICAgIHJvZmY6IDAuMDAxOTI1NzUsXG4gICAgICAgIHJvbjogMC43OTM3MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC45NjQxMDUsXG4gICAgICAgIHJvZmY6IDAuMDAxODc2NzEsXG4gICAgICAgIHJvbjogMC43OTQwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC45NjU4NTEsXG4gICAgICAgIHJvZmY6IDAuMDAxODI5ODMsXG4gICAgICAgIHJvbjogMC43OTQzNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45Njc0ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxNzg1MDEsXG4gICAgICAgIHJvbjogMC43OTQ2MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC45NjkwMTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNzQyMTYsXG4gICAgICAgIHJvbjogMC43OTQ4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC45NzA0NCxcbiAgICAgICAgcm9mZjogMC4wMDE3MDEyMSxcbiAgICAgICAgcm9uOiAwLjc5NTEyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk3MTc3NyxcbiAgICAgICAgcm9mZjogMC4wMDE2NjIwNSxcbiAgICAgICAgcm9uOiAwLjc5NTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzAyOSxcbiAgICAgICAgcm9mZjogMC4wMDE2MjQ2MixcbiAgICAgICAgcm9uOiAwLjc5NTU2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NDIwMSxcbiAgICAgICAgcm9mZjogMC4wMDE1ODg4MyxcbiAgICAgICAgcm9uOiAwLjc5NTc2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NTI5OSxcbiAgICAgICAgcm9mZjogMC4wMDE1NTQ2MyxcbiAgICAgICAgcm9uOiAwLjc5NTk0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjMyOCxcbiAgICAgICAgcm9mZjogMC4wMDE1MjE5MyxcbiAgICAgICAgcm9uOiAwLjc5NjEyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NzI5MyxcbiAgICAgICAgcm9mZjogMC4wMDE0OTA2NyxcbiAgICAgICAgcm9uOiAwLjc5NjI4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk3ODE5OCxcbiAgICAgICAgcm9mZjogMC4wMDE0NjA3OCxcbiAgICAgICAgcm9uOiAwLjc5NjQzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTA0NyxcbiAgICAgICAgcm9mZjogMC4wMDE0MzIyMixcbiAgICAgICAgcm9uOiAwLjc5NjU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk3OTg0NCxcbiAgICAgICAgcm9mZjogMC4wMDE0MDQ5MixcbiAgICAgICAgcm9uOiAwLjc5NjcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuOTgwNTkyLFxuICAgICAgICByb2ZmOiAwLjAwMTM3ODgyLFxuICAgICAgICByb246IDAuNzk2ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuOTgxMjk0LFxuICAgICAgICByb2ZmOiAwLjAwMTM1Mzg3LFxuICAgICAgICByb246IDAuNzk2OTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTgxOTU0LFxuICAgICAgICByb2ZmOiAwLjAwMTMzMDAyLFxuICAgICAgICByb246IDAuNzk3MDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuOTgyNTc1LFxuICAgICAgICByb2ZmOiAwLjAwMTMwNzIyLFxuICAgICAgICByb246IDAuNzk3MTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuOTgzMTU4LFxuICAgICAgICByb2ZmOiAwLjAwMTI4NTQzLFxuICAgICAgICByb246IDAuNzk3MjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTgzNzA3LFxuICAgICAgICByb2ZmOiAwLjAwMTI2NDYsXG4gICAgICAgIHJvbjogMC43OTczNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC45ODQyMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjQ0NjksXG4gICAgICAgIHJvbjogMC43OTc0MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45ODQ3MSxcbiAgICAgICAgcm9mZjogMC4wMDEyMjU2NSxcbiAgICAgICAgcm9uOiAwLjc5NzUxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NTE2OCxcbiAgICAgICAgcm9mZjogMC4wMDEyMDc0NixcbiAgICAgICAgcm9uOiAwLjc5NzU5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTkwMDcsXG4gICAgICAgIHJvbjogMC43OTc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC45ODYwMDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMTczNDUsXG4gICAgICAgIHJvbjogMC43OTc3MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45ODYzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMTU3NTYsXG4gICAgICAgIHJvbjogMC43OTc3OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC45ODY3NTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTQyMzgsXG4gICAgICAgIHJvbjogMC43OTc4NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC45ODcwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTI3ODYsXG4gICAgICAgIHJvbjogMC43OTc5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDExMTM5OCxcbiAgICAgICAgcm9uOiAwLjc5Nzk2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzcyMixcbiAgICAgICAgcm9mZjogMC4wMDExMDA3MixcbiAgICAgICAgcm9uOiAwLjc5ODAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODAxLFxuICAgICAgICByb2ZmOiAwLjAwMTA4ODA0LFxuICAgICAgICByb246IDAuNzk4MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC45ODgyODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDc1OTMsXG4gICAgICAgIHJvbjogMC43OTgxMDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45ODg1MzksXG4gICAgICAgIHJvZmY6IDAuMDAxMDY0MzUsXG4gICAgICAgIHJvbjogMC43OTgxNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC45ODg3ODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUzMjgsXG4gICAgICAgIHJvbjogMC43OTgxODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC45ODkwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDQyNjksXG4gICAgICAgIHJvbjogMC43OTgyMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45ODkyMyxcbiAgICAgICAgcm9mZjogMC4wMDEwMzI1OCxcbiAgICAgICAgcm9uOiAwLjc5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTg5NDM3LFxuICAgICAgICByb2ZmOiAwLjAwMTAyMjkxLFxuICAgICAgICByb246IDAuNzk4MjkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTg5NjMyLFxuICAgICAgICByb2ZmOiAwLjAwMTAxMzY3LFxuICAgICAgICByb246IDAuNzk4MzI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuOTg5ODE3LFxuICAgICAgICByb2ZmOiAwLjAwMTAwNDg0LFxuICAgICAgICByb246IDAuNzk4MzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuOTg5OTkyLFxuICAgICAgICByb2ZmOiAwLjAwMDk5NjQwMSxcbiAgICAgICAgcm9uOiAwLjc5ODM4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDE1OCxcbiAgICAgICAgcm9mZjogMC4wMDA5ODgzMzMsXG4gICAgICAgIHJvbjogMC43OTg0MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC45OTAzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTgwNjIxLFxuICAgICAgICByb246IDAuNzk4NDM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuOTkwNDY2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MzI0OSxcbiAgICAgICAgcm9uOiAwLjc5ODQ2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDYwNyxcbiAgICAgICAgcm9mZjogMC4wMDA5NjYyMDMsXG4gICAgICAgIHJvbjogMC43OTg0ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC45OTA3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTU5NDY5LFxuICAgICAgICByb246IDAuNzk4NTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuOTkwODcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTUzMDMyLFxuICAgICAgICByb246IDAuNzk4NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkwOTkxLFxuICAgICAgICByb2ZmOiAwLjAwMDk0Njg3OSxcbiAgICAgICAgcm9uOiAwLjc5ODU0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEwNixcbiAgICAgICAgcm9mZjogMC4wMDA5NDA5OTksXG4gICAgICAgIHJvbjogMC43OTg1NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTEyMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTM1Mzc4LFxuICAgICAgICByb246IDAuNzk4NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTMwMDA2LFxuICAgICAgICByb246IDAuNzk4NjAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkxNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDkyNDg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODYxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTUxMyxcbiAgICAgICAgcm9mZjogMC4wMDA5MTk5NjQsXG4gICAgICAgIHJvbjogMC43OTg2MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTE2MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE1MjczLFxuICAgICAgICByb246IDAuNzk4NjQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkxNjg3LFxuICAgICAgICByb2ZmOiAwLjAwMDkxMDc4OSxcbiAgICAgICAgcm9uOiAwLjc5ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuOTkxNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDkwNjUwNCxcbiAgICAgICAgcm9uOiAwLjc5ODY3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDI0MDgsXG4gICAgICAgIHJvbjogMC43OTg2ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3MDAsXG4gICAgICAgIGdmcDogMC45OTE5MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODk4NDkzLFxuICAgICAgICByb246IDAuNzk4Njk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzUwLFxuICAgICAgICBnZnA6IDAuOTkxOTg3LFxuICAgICAgICByb2ZmOiAwLjAwMDg5NDc1MSxcbiAgICAgICAgcm9uOiAwLjc5ODcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjA1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4OTExNzQsXG4gICAgICAgIHJvbjogMC43OTg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjExNyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODc3NTYsXG4gICAgICAgIHJvbjogMC43OTg3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjE3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODQ0ODksXG4gICAgICAgIHJvbjogMC43OTg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjIzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4ODEzNjYsXG4gICAgICAgIHJvbjogMC43OTg3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMDAsXG4gICAgICAgIGdmcDogMC45OTIyODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODc4MzgxLFxuICAgICAgICByb246IDAuNzk4NzU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDUwLFxuICAgICAgICBnZnA6IDAuOTkyMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODc1NTI5LFxuICAgICAgICByb246IDAuNzk4NzY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuOTkyMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODcyODAyLFxuICAgICAgICByb246IDAuNzk4Nzc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNDM3LFxuICAgICAgICByb2ZmOiAwLjAwMDg3MDE5NixcbiAgICAgICAgcm9uOiAwLjc5ODc4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ4MixcbiAgICAgICAgcm9mZjogMC4wMDA4Njc3MDYsXG4gICAgICAgIHJvbjogMC43OTg3ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC45OTI1MjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODY1MzI1LFxuICAgICAgICByb246IDAuNzk4Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzAwLFxuICAgICAgICBnZnA6IDAuOTkyNTY1LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MzA1LFxuICAgICAgICByb246IDAuNzk4ODAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzUwLFxuICAgICAgICBnZnA6IDAuOTkyNjA0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MDg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTg3OTYsXG4gICAgICAgIHJvbjogMC43OTg4MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC45OTI2NzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODU2ODA5LFxuICAgICAgICByb246IDAuNzk4ODIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU0OTEsXG4gICAgICAgIHJvbjogMC43OTg4MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1NTAsXG4gICAgICAgIGdmcDogMC45OTI3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODUzMDk1LFxuICAgICAgICByb246IDAuNzk4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzczLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MTM2MSxcbiAgICAgICAgcm9uOiAwLjc5ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgwMixcbiAgICAgICAgcm9mZjogMC4wMDA4NDk3MDIsXG4gICAgICAgIHJvbjogMC43OTg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3MDAsXG4gICAgICAgIGdmcDogMC45OTI4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDgxMTgsXG4gICAgICAgIHJvbjogMC43OTg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC45OTI4NTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ2NjAzLFxuICAgICAgICByb246IDAuNzk4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4MDAsXG4gICAgICAgIGdmcDogMC45OTI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ1MTU1LFxuICAgICAgICByb246IDAuNzk4ODU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODUwLFxuICAgICAgICBnZnA6IDAuOTkyOTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0Mzc3MixcbiAgICAgICAgcm9uOiAwLjc5ODg1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkyOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDI0NDksXG4gICAgICAgIHJvbjogMC43OTg4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5NTAsXG4gICAgICAgIGdmcDogMC45OTI5NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODQxMTg1LFxuICAgICAgICByb246IDAuNzk4ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAwLFxuICAgICAgICBnZnA6IDAuOTkyOTcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzg4MjIsXG4gICAgICAgIHJvbjogMC43OTg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC45OTMwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NzE5LFxuICAgICAgICByb246IDAuNzk4ODc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2NjY0LFxuICAgICAgICByb246IDAuNzk4ODc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMDQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNTY1NixcbiAgICAgICAgcm9uOiAwLjc5ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ2OTIsXG4gICAgICAgIHJvbjogMC43OTg4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzMDAsXG4gICAgICAgIGdmcDogMC45OTMwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM3NzEsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC45OTMwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyODkxLFxuICAgICAgICByb246IDAuNzk4ODg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyMDQ5LFxuICAgICAgICByb246IDAuNzk4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzA0NzYsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC45OTMxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk3NDIsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC45OTMxNjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5MDQsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMTczLFxuICAgICAgICByb2ZmOiAwLjAwMDgyODM2OSxcbiAgICAgICAgcm9uOiAwLjc5ODkwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjc3MjcsXG4gICAgICAgIHJvbjogMC43OTg5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3MTE0LFxuICAgICAgICByb246IDAuNzk4OTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjUyOCxcbiAgICAgICAgcm9uOiAwLjc5ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU5NjgsXG4gICAgICAgIHJvbjogMC43OTg5MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5MDAsXG4gICAgICAgIGdmcDogMC45OTMyMjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1NDMzLFxuICAgICAgICByb246IDAuNzk4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5NTAsXG4gICAgICAgIGdmcDogMC45OTMyMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0OTIxLFxuICAgICAgICByb246IDAuNzk4OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDQzMixcbiAgICAgICAgcm9uOiAwLjc5ODkxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM5NjUsXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxMDAsXG4gICAgICAgIGdmcDogMC45OTMyNTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzNTE4LFxuICAgICAgICByb246IDAuNzk4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzA5MSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjY4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIyOTMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC45OTMyODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxOTIsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzNTAsXG4gICAgICAgIGdmcDogMC45OTMyODksXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNTY0LFxuICAgICAgICByb246IDAuNzk4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0MDAsXG4gICAgICAgIGdmcDogMC45OTMyOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMjI0LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1ODcsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMjksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC45OTMzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMDA2LFxuICAgICAgICByb246IDAuNzk4OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzIxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk0NzQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC45OTMzMjksXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MjI2LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzMzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODk4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg3NjMsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NTQ2LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODMzOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgxNDEsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc5NTIsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3NzEsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NTk4LFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NDMzLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzI3NixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcxMjUsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2OTgsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0MDAsXG4gICAgICAgIGdmcDogMC45OTMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY4NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NzExLFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjU4NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0NjUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYyNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTYxMzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC45OTMzODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MDM0LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkzOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU4NDcsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC45OTMzODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NzU5LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTY3NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1OTUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTE4LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQ0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzNzUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzA5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxODQsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTI1LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDE2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDk2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5MTcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODI2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzA0LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY2NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2MzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1OTcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1NjUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MzQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MDQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDQ5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0MjMsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzOTgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNzUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNTIsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjcxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjUzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTg5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEzNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMjMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDYyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDM3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTk2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXTtcbmxldCBtb2RlbE9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dO1xubGV0IG1vZGVsT25PZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjQwMDMyOSxcbiAgICAgICAgcm9mZjogMC40NjAyOTgsXG4gICAgICAgIHJvbjogMC42ODE2MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC4xNDc0OTksXG4gICAgICAgIHJvZmY6IDAuNTU4NjM4LFxuICAgICAgICByb246IDAuNjAxODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjA1NDQ2OTQsXG4gICAgICAgIHJvZmY6IDAuNTM5MTEzLFxuICAgICAgICByb246IDAuNTQyNTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDI3NDYsXG4gICAgICAgIHJvZmY6IDAuNDk4NTI1LFxuICAgICAgICByb246IDAuNDk0Njc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzczNjk0LFxuICAgICAgICByb2ZmOiAwLjQ1OTE0MixcbiAgICAgICAgcm9uOiAwLjQ1NDQ4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDMxNzMzNSxcbiAgICAgICAgcm9mZjogMC40MjQyMDYsXG4gICAgICAgIHJvbjogMC40MTk4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuMDAxNTQ4OSxcbiAgICAgICAgcm9mZjogMC4zOTM0NDIsXG4gICAgICAgIHJvbjogMC4zODk1MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuMDAxMDExNTQsXG4gICAgICAgIHJvZmY6IDAuMzY2MTU0LFxuICAgICAgICByb246IDAuMzYyNjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDg4MDQzMSxcbiAgICAgICAgcm9mZjogMC4zNDE3NDQsXG4gICAgICAgIHJvbjogMC4zMzg1MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwOTA1NzE3LFxuICAgICAgICByb2ZmOiAwLjMxOTc0OCxcbiAgICAgICAgcm9uOiAwLjMxNjc1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5OTYxNDQsXG4gICAgICAgIHJvZmY6IDAuMjk5ODA0LFxuICAgICAgICByb246IDAuMjk3MDIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExODg1LFxuICAgICAgICByb2ZmOiAwLjI4MTYzMyxcbiAgICAgICAgcm9uOiAwLjI3OTAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjI0NyxcbiAgICAgICAgcm9mZjogMC4yNjUwMDksXG4gICAgICAgIHJvbjogMC4yNjI1MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDIzNixcbiAgICAgICAgcm9mZjogMC4yNDk3NDgsXG4gICAgICAgIHJvbjogMC4yNDczNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuMDAxNjAxNzYsXG4gICAgICAgIHJvZmY6IDAuMjM1NzAxLFxuICAgICAgICByb246IDAuMjMzNDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTc5NzU5LFxuICAgICAgICByb2ZmOiAwLjIyMjc0MixcbiAgICAgICAgcm9uOiAwLjIyMDUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC4wMDIwMTIxLFxuICAgICAgICByb2ZmOiAwLjIxMDc2NCxcbiAgICAgICAgcm9uOiAwLjIwODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI0NjQ2LFxuICAgICAgICByb2ZmOiAwLjE5OTY3OSxcbiAgICAgICAgcm9uOiAwLjE5NzQ4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MDE4NCxcbiAgICAgICAgcm9mZjogMC4xODk0MDksXG4gICAgICAgIHJvbjogMC4xODcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC4wMDI3NzkzNCxcbiAgICAgICAgcm9mZjogMC4xNzk4ODksXG4gICAgICAgIHJvbjogMC4xNzc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuMDAzMDc5OTQsXG4gICAgICAgIHJvZmY6IDAuMTcxMDYsXG4gICAgICAgIHJvbjogMC4xNjg3ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQwNDQ0LFxuICAgICAgICByb2ZmOiAwLjE2Mjg3MixcbiAgICAgICAgcm9uOiAwLjE2MDUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzNzUzMzcsXG4gICAgICAgIHJvZmY6IDAuMTU1MjgzLFxuICAgICAgICByb246IDAuMTUyODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC4wMDQxMjY5NSxcbiAgICAgICAgcm9mZjogMC4xNDgyNTIsXG4gICAgICAgIHJvbjogMC4xNDU2OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDUyNDk4LFxuICAgICAgICByb2ZmOiAwLjE0MTc0NyxcbiAgICAgICAgcm9uOiAwLjEzOTA0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA0OTQ2NzYsXG4gICAgICAgIHJvZmY6IDAuMTM1NzM3LFxuICAgICAgICByb246IDAuMTMyODcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDUzOTEwMyxcbiAgICAgICAgcm9mZjogMC4xMzAxOTQsXG4gICAgICAgIHJvbjogMC4xMjcxMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTg1NTg3LFxuICAgICAgICByb2ZmOiAwLjEyNTA5MyxcbiAgICAgICAgcm9uOiAwLjEyMTgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2MzM4NjYsXG4gICAgICAgIHJvZmY6IDAuMTIwNDE0LFxuICAgICAgICByb246IDAuMTE2ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDY4MzYwNSxcbiAgICAgICAgcm9mZjogMC4xMTYxMzMsXG4gICAgICAgIHJvbjogMC4xMTIzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzM0Mzk3LFxuICAgICAgICByb2ZmOiAwLjExMjIzMyxcbiAgICAgICAgcm9uOiAwLjEwODA5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuMDA3ODU3NjUsXG4gICAgICAgIHJvZmY6IDAuMTA4Njk1LFxuICAgICAgICByb246IDAuMTA0MTk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC4wMDgzNzE3NCxcbiAgICAgICAgcm9mZjogMC4xMDU1MDEsXG4gICAgICAgIHJvbjogMC4xMDA2MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODg4MDQsXG4gICAgICAgIHJvZmY6IDAuMTAyNjM0LFxuICAgICAgICByb246IDAuMDk3Mjk4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuMDA5Mzc3NTQsXG4gICAgICAgIHJvZmY6IDAuMTAwMDc4LFxuICAgICAgICByb246IDAuMDk0MjU1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuMDA5ODU3LFxuICAgICAgICByb2ZmOiAwLjA5NzgxNjQsXG4gICAgICAgIHJvbjogMC4wOTE0NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC4wMTAzMTI3LFxuICAgICAgICByb2ZmOiAwLjA5NTgzMzQsXG4gICAgICAgIHJvbjogMC4wODg4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTA3MzkxLFxuICAgICAgICByb2ZmOiAwLjA5NDExMzUsXG4gICAgICAgIHJvbjogMC4wODY1MjY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC4wMTExMzEsXG4gICAgICAgIHJvZmY6IDAuMDkyNjQxMyxcbiAgICAgICAgcm9uOiAwLjA4NDM1NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTQ4NDEsXG4gICAgICAgIHJvZmY6IDAuMDkxNDAxOCxcbiAgICAgICAgcm9uOiAwLjA4MjM1NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTc5NTEsXG4gICAgICAgIHJvZmY6IDAuMDkwMzgwOSxcbiAgICAgICAgcm9uOiAwLjA4MDUxMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjA2MTMsXG4gICAgICAgIHJvZmY6IDAuMDg5NTY0NixcbiAgICAgICAgcm9uOiAwLjA3ODgwNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjI4MTMsXG4gICAgICAgIHJvZmY6IDAuMDg4OTQwMixcbiAgICAgICAgcm9uOiAwLjA3NzIyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjQ1NDQsXG4gICAgICAgIHJvZmY6IDAuMDg4NDk1MyxcbiAgICAgICAgcm9uOiAwLjA3NTc0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjU4MDcsXG4gICAgICAgIHJvZmY6IDAuMDg4MjE4OSxcbiAgICAgICAgcm9uOiAwLjA3NDM2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY2MTIsXG4gICAgICAgIHJvZmY6IDAuMDg4MTAwNSxcbiAgICAgICAgcm9uOiAwLjA3MzA2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuMDEyNjk3NSxcbiAgICAgICAgcm9mZjogMC4wODgxMzEyLFxuICAgICAgICByb246IDAuMDcxODM0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuMDEyNjkxNSxcbiAgICAgICAgcm9mZjogMC4wODgzMDI3LFxuICAgICAgICByb246IDAuMDcwNjYwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDEyNjQ1NixcbiAgICAgICAgcm9mZjogMC4wODg2MDgyLFxuICAgICAgICByb246IDAuMDY5NTMzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuMDEyNTYyMyxcbiAgICAgICAgcm9mZjogMC4wODkwNDE3LFxuICAgICAgICByb246IDAuMDY4NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMTI0NDQzLFxuICAgICAgICByb2ZmOiAwLjA4OTU5ODUsXG4gICAgICAgIHJvbjogMC4wNjczODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMTIyOTQ1LFxuICAgICAgICByb2ZmOiAwLjA5MDI3NDgsXG4gICAgICAgIHJvbjogMC4wNjYzNTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMTIxMTU1LFxuICAgICAgICByb2ZmOiAwLjA5MTA2ODEsXG4gICAgICAgIHJvbjogMC4wNjUzNDA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC4wMTE5MTAxLFxuICAgICAgICByb2ZmOiAwLjA5MTk3NjgsXG4gICAgICAgIHJvbjogMC4wNjQzMzc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC4wMTE2ODA3LFxuICAgICAgICByb2ZmOiAwLjA5MzAwMDMsXG4gICAgICAgIHJvbjogMC4wNjMzNDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC4wMTE0MyxcbiAgICAgICAgcm9mZjogMC4wOTQxMzg4LFxuICAgICAgICByb246IDAuMDYyMzUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuMDExMTYwMSxcbiAgICAgICAgcm9mZjogMC4wOTUzOTM3LFxuICAgICAgICByb246IDAuMDYxMzU4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuMDEwODczMyxcbiAgICAgICAgcm9mZjogMC4wOTY3NjczLFxuICAgICAgICByb246IDAuMDYwMzY0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuMDEwNTcxOCxcbiAgICAgICAgcm9mZjogMC4wOTgyNjI2LFxuICAgICAgICByb246IDAuMDU5MzY0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuMDEwMjU3MyxcbiAgICAgICAgcm9mZjogMC4wOTk4ODM5LFxuICAgICAgICByb246IDAuMDU4MzU3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuMDA5OTMxODQsXG4gICAgICAgIHJvZmY6IDAuMTAxNjM2LFxuICAgICAgICByb246IDAuMDU3MzQyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuMDA5NTk3MDcsXG4gICAgICAgIHJvZmY6IDAuMTAzNTI1LFxuICAgICAgICByb246IDAuMDU2MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC4wMDkyNTQ2NyxcbiAgICAgICAgcm9mZjogMC4xMDU1NTcsXG4gICAgICAgIHJvbjogMC4wNTUyODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC4wMDg5MDYyMSxcbiAgICAgICAgcm9mZjogMC4xMDc3NDIsXG4gICAgICAgIHJvbjogMC4wNTQyMzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC4wMDg1NTMxOCxcbiAgICAgICAgcm9mZjogMC4xMTAwODYsXG4gICAgICAgIHJvbjogMC4wNTMxNzYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC4wMDgxOTcwMyxcbiAgICAgICAgcm9mZjogMC4xMTI2LFxuICAgICAgICByb246IDAuMDUyMTA2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDA3ODM5MTMsXG4gICAgICAgIHJvZmY6IDAuMTE1Mjk2LFxuICAgICAgICByb246IDAuMDUxMDI2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuMDA3NDgwODQsXG4gICAgICAgIHJvZmY6IDAuMTE4MTg1LFxuICAgICAgICByb246IDAuMDQ5OTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuMDA3MTIzNDMsXG4gICAgICAgIHJvZmY6IDAuMTIxMjgsXG4gICAgICAgIHJvbjogMC4wNDg4MzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC4wMDY3NjgxNSxcbiAgICAgICAgcm9mZjogMC4xMjQ1OTYsXG4gICAgICAgIHJvbjogMC4wNDc3MjQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC4wMDY0MTYyLFxuICAgICAgICByb2ZmOiAwLjEyODE0OSxcbiAgICAgICAgcm9uOiAwLjA0NjYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuMDA2MDY4NzUsXG4gICAgICAgIHJvZmY6IDAuMTMxOTU1LFxuICAgICAgICByb246IDAuMDQ1NDgyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuMDA1NzI2ODgsXG4gICAgICAgIHJvZmY6IDAuMTM2MDMzLFxuICAgICAgICByb246IDAuMDQ0MzUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuMDA1MzkxNjYsXG4gICAgICAgIHJvZmY6IDAuMTQwNDA0LFxuICAgICAgICByb246IDAuMDQzMjE3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDA1MDY0MDcsXG4gICAgICAgIHJvZmY6IDAuMTQ1MDg4LFxuICAgICAgICByb246IDAuMDQyMDgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC4wMDQ3NDUwNSxcbiAgICAgICAgcm9mZjogMC4xNTAxMDksXG4gICAgICAgIHJvbjogMC4wNDA5NDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC4wMDQ0MzU0NixcbiAgICAgICAgcm9mZjogMC4xNTU0OSxcbiAgICAgICAgcm9uOiAwLjAzOTgwNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDEzNjA5LFxuICAgICAgICByb2ZmOiAwLjE2MTI1OSxcbiAgICAgICAgcm9uOiAwLjAzODY3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzg0NzYzLFxuICAgICAgICByb2ZmOiAwLjE2NzQ0NCxcbiAgICAgICAgcm9uOiAwLjAzNzU0MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzU3MDcsXG4gICAgICAgIHJvZmY6IDAuMTc0MDcyLFxuICAgICAgICByb246IDAuMDM2NDE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDAzMzA1OCxcbiAgICAgICAgcm9mZjogMC4xODExNzYsXG4gICAgICAgIHJvbjogMC4wMzUyOTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC4wMDMwNTMzNyxcbiAgICAgICAgcm9mZjogMC4xODg3ODcsXG4gICAgICAgIHJvbjogMC4wMzQxOTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMDI4MTM3MSxcbiAgICAgICAgcm9mZjogMC4xOTY5MzgsXG4gICAgICAgIHJvbjogMC4wMzMwOTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMDI1ODcwNCxcbiAgICAgICAgcm9mZjogMC4yMDU2NjQsXG4gICAgICAgIHJvbjogMC4wMzIwMTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC4wMDIzNzM0NixcbiAgICAgICAgcm9mZjogMC4yMTQ5OTgsXG4gICAgICAgIHJvbjogMC4wMzA5NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC4wMDIxNzMsXG4gICAgICAgIHJvZmY6IDAuMjI0OTc3LFxuICAgICAgICByb246IDAuMDI5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuMDAxOTg1NTUsXG4gICAgICAgIHJvZmY6IDAuMjM1NjMyLFxuICAgICAgICByb246IDAuMDI4ODU3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuMDAxODEwOTQsXG4gICAgICAgIHJvZmY6IDAuMjQ2OTk5LFxuICAgICAgICByb246IDAuMDI3ODQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuMDAxNjQ4ODksXG4gICAgICAgIHJvZmY6IDAuMjU5MTA4LFxuICAgICAgICByb246IDAuMDI2ODQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuMDAxNDk5MDcsXG4gICAgICAgIHJvZmY6IDAuMjcxOTg3LFxuICAgICAgICByb246IDAuMDI1ODcwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuMDAxMzYxMDYsXG4gICAgICAgIHJvZmY6IDAuMjg1NjYxLFxuICAgICAgICByb246IDAuMDI0OTE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuMDAxMjM0MzgsXG4gICAgICAgIHJvZmY6IDAuMzAwMTQ3LFxuICAgICAgICByb246IDAuMDIzOTg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuMDAxMTE4NTMsXG4gICAgICAgIHJvZmY6IDAuMzE1NDU4LFxuICAgICAgICByb246IDAuMDIzMDgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuMDAxMDEyOTMsXG4gICAgICAgIHJvZmY6IDAuMzMxNTk3LFxuICAgICAgICByb246IDAuMDIyMjAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuMDAwOTE3MDAxLFxuICAgICAgICByb2ZmOiAwLjM0ODU1NyxcbiAgICAgICAgcm9uOiAwLjAyMTM0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDgzMDE0OSxcbiAgICAgICAgcm9mZjogMC4zNjYzMTcsXG4gICAgICAgIHJvbjogMC4wMjA1MTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC4wMDA3NTE3NjIsXG4gICAgICAgIHJvZmY6IDAuMzg0ODQzLFxuICAgICAgICByb246IDAuMDE5NzA4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuMDAwNjgxMjM2LFxuICAgICAgICByb2ZmOiAwLjQwNDA4NCxcbiAgICAgICAgcm9uOiAwLjAxODkyNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDYxNzk3MixcbiAgICAgICAgcm9mZjogMC40MjM5NjksXG4gICAgICAgIHJvbjogMC4wMTgxNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU2MTM5MyxcbiAgICAgICAgcm9mZjogMC40NDQ0MDgsXG4gICAgICAgIHJvbjogMC4wMTc0NDM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMDA1MTA5NDEsXG4gICAgICAgIHJvZmY6IDAuNDY1Mjg5LFxuICAgICAgICByb246IDAuMDE2NzM5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuMDAwNDY2MDg0LFxuICAgICAgICByb2ZmOiAwLjQ4NjQ3OCxcbiAgICAgICAgcm9uOiAwLjAxNjA2MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQyNjMxOCxcbiAgICAgICAgcm9mZjogMC41MDc4MixcbiAgICAgICAgcm9uOiAwLjAxNTQwNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM5MTE2OCxcbiAgICAgICAgcm9mZjogMC41MjkxNDQsXG4gICAgICAgIHJvbjogMC4wMTQ3NzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC4wMDAzNjAxOTMsXG4gICAgICAgIHJvZmY6IDAuNTUwMjYxLFxuICAgICAgICByb246IDAuMDE0MTY5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMzMyOTgyLFxuICAgICAgICByb2ZmOiAwLjU3MDk3OCxcbiAgICAgICAgcm9uOiAwLjAxMzU4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMwOTE1MixcbiAgICAgICAgcm9mZjogMC41OTExMDEsXG4gICAgICAgIHJvbjogMC4wMTMwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI4ODM0OSxcbiAgICAgICAgcm9mZjogMC42MTA0NDYsXG4gICAgICAgIHJvbjogMC4wMTI0ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI3MDI0NixcbiAgICAgICAgcm9mZjogMC42Mjg4NTEsXG4gICAgICAgIHJvbjogMC4wMTE5NzE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAyNTQ1MzgsXG4gICAgICAgIHJvZmY6IDAuNjQ2MTg1LFxuICAgICAgICByb246IDAuMDExNDc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMjQwOTQzLFxuICAgICAgICByb2ZmOiAwLjY2MjM1NyxcbiAgICAgICAgcm9uOiAwLjAxMTAwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIyOTIwMSxcbiAgICAgICAgcm9mZjogMC42NzczMTcsXG4gICAgICAgIHJvbjogMC4wMTA1NDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMTkwNzIsXG4gICAgICAgIHJvZmY6IDAuNjkxMDU2LFxuICAgICAgICByb246IDAuMDEwMTEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMjEwMzM3LFxuICAgICAgICByb2ZmOiAwLjcwMzYwNSxcbiAgICAgICAgcm9uOiAwLjAwOTY5MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMDI3OTgsXG4gICAgICAgIHJvZmY6IDAuNzE1MDI0LFxuICAgICAgICByb246IDAuMDA5MjkzNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE5NjI3OCxcbiAgICAgICAgcm9mZjogMC43MjUzOTUsXG4gICAgICAgIHJvbjogMC4wMDg5MTA4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTkwNjIzLFxuICAgICAgICByb2ZmOiAwLjczNDgwNixcbiAgICAgICAgcm9uOiAwLjAwODU0NDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxODU2OTgsXG4gICAgICAgIHJvZmY6IDAuNzQzMzUxLFxuICAgICAgICByb246IDAuMDA4MTk0MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE4MTM5LFxuICAgICAgICByb2ZmOiAwLjc1MTExOCxcbiAgICAgICAgcm9uOiAwLjAwNzg1OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNzc2MDQsXG4gICAgICAgIHJvZmY6IDAuNzU4MTkxLFxuICAgICAgICByb246IDAuMDA3NTM4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3NDI2MSxcbiAgICAgICAgcm9mZjogMC43NjQ2NDIsXG4gICAgICAgIHJvbjogMC4wMDcyMzE1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTcxMjk1LFxuICAgICAgICByb2ZmOiAwLjc3MDUzNSxcbiAgICAgICAgcm9uOiAwLjAwNjkzODE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjg2NTMsXG4gICAgICAgIHJvZmY6IDAuNzc1OTI3LFxuICAgICAgICByb246IDAuMDA2NjU3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2NjI5LFxuICAgICAgICByb2ZmOiAwLjc4MDg2NixcbiAgICAgICAgcm9uOiAwLjAwNjM4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjQxNyxcbiAgICAgICAgcm9mZjogMC43ODUzOTQsXG4gICAgICAgIHJvbjogMC4wMDYxMzI1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTYyMjYzLFxuICAgICAgICByb2ZmOiAwLjc4OTU1LFxuICAgICAgICByb246IDAuMDA1ODg3MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MDU0MixcbiAgICAgICAgcm9mZjogMC43OTMzNjUsXG4gICAgICAgIHJvbjogMC4wMDU2NTI1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU4OTg3LFxuICAgICAgICByb2ZmOiAwLjc5Njg2OSxcbiAgICAgICAgcm9uOiAwLjAwNTQyODE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTc1NzksXG4gICAgICAgIHJvZmY6IDAuODAwMDg5LFxuICAgICAgICByb246IDAuMDA1MjEzNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NjMwMixcbiAgICAgICAgcm9mZjogMC44MDMwNDksXG4gICAgICAgIHJvbjogMC4wMDUwMDg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTU1MTQyLFxuICAgICAgICByb2ZmOiAwLjgwNTc3MSxcbiAgICAgICAgcm9uOiAwLjAwNDgxMjUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTQwODcsXG4gICAgICAgIHJvZmY6IDAuODA4MjczLFxuICAgICAgICByb246IDAuMDA0NjI1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MzEyNixcbiAgICAgICAgcm9mZjogMC44MTA1NzUsXG4gICAgICAgIHJvbjogMC4wMDQ0NDU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTUyMjUxLFxuICAgICAgICByb2ZmOiAwLjgxMjY5MyxcbiAgICAgICAgcm9uOiAwLjAwNDI3NDUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTE0NTIsXG4gICAgICAgIHJvZmY6IDAuODE0NjQxLFxuICAgICAgICByb246IDAuMDA0MTEwNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MDcyMyxcbiAgICAgICAgcm9mZjogMC44MTY0MzQsXG4gICAgICAgIHJvbjogMC4wMDM5NTQxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUwMDU2LFxuICAgICAgICByb2ZmOiAwLjgxODA4NSxcbiAgICAgICAgcm9uOiAwLjAwMzgwNDQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDk0NDcsXG4gICAgICAgIHJvZmY6IDAuODE5NjA0LFxuICAgICAgICByb246IDAuMDAzNjYxNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0ODg4OSxcbiAgICAgICAgcm9mZjogMC44MjEwMDMsXG4gICAgICAgIHJvbjogMC4wMDM1MjQ2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ4Mzc4LFxuICAgICAgICByb2ZmOiAwLjgyMjI5MixcbiAgICAgICAgcm9uOiAwLjAwMzM5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzkxLFxuICAgICAgICByb2ZmOiAwLjgyMzQ3OSxcbiAgICAgICAgcm9uOiAwLjAwMzI2ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDc0ODEsXG4gICAgICAgIHJvZmY6IDAuODI0NTcyLFxuICAgICAgICByb246IDAuMDAzMTQ5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzA4NyxcbiAgICAgICAgcm9mZjogMC44MjU1OCxcbiAgICAgICAgcm9uOiAwLjAwMzAzNTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDY3MjUsXG4gICAgICAgIHJvZmY6IDAuODI2NTA5LFxuICAgICAgICByb246IDAuMDAyOTI2MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjM5MyxcbiAgICAgICAgcm9mZjogMC44MjczNjUsXG4gICAgICAgIHJvbjogMC4wMDI4MjE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2MDg4LFxuICAgICAgICByb2ZmOiAwLjgyODE1NSxcbiAgICAgICAgcm9uOiAwLjAwMjcyMjExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDU4MDgsXG4gICAgICAgIHJvZmY6IDAuODI4ODg0LFxuICAgICAgICByb246IDAuMDAyNjI2NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTU1LFxuICAgICAgICByb2ZmOiAwLjgyOTU1NixcbiAgICAgICAgcm9uOiAwLjAwMjUzNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDUzMTIsXG4gICAgICAgIHJvZmY6IDAuODMwMTc3LFxuICAgICAgICByb246IDAuMDAyNDQ4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTA5MyxcbiAgICAgICAgcm9mZjogMC44MzA3NSxcbiAgICAgICAgcm9uOiAwLjAwMjM2NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ4OTIsXG4gICAgICAgIHJvZmY6IDAuODMxMjc5LFxuICAgICAgICByb246IDAuMDAyMjg1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDcwNixcbiAgICAgICAgcm9mZjogMC44MzE3NjksXG4gICAgICAgIHJvbjogMC4wMDIyMDk4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0NTM1LFxuICAgICAgICByb2ZmOiAwLjgzMjIyMSxcbiAgICAgICAgcm9uOiAwLjAwMjEzNzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQzNzcsXG4gICAgICAgIHJvZmY6IDAuODMyNjM4LFxuICAgICAgICByb246IDAuMDAyMDY3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDIzMSxcbiAgICAgICAgcm9mZjogMC44MzMwMjUsXG4gICAgICAgIHJvbjogMC4wMDIwMDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQwOTYsXG4gICAgICAgIHJvZmY6IDAuODMzMzgzLFxuICAgICAgICByb246IDAuMDAxOTM3ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzk3MixcbiAgICAgICAgcm9mZjogMC44MzM3MTQsXG4gICAgICAgIHJvbjogMC4wMDE4NzcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzODU3LFxuICAgICAgICByb2ZmOiAwLjgzNDAyLFxuICAgICAgICByb246IDAuMDAxODE5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzc1MSxcbiAgICAgICAgcm9mZjogMC44MzQzMDQsXG4gICAgICAgIHJvbjogMC4wMDE3NjM4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNjUyLFxuICAgICAgICByb2ZmOiAwLjgzNDU2NyxcbiAgICAgICAgcm9uOiAwLjAwMTcxMDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM1NjEsXG4gICAgICAgIHJvZmY6IDAuODM0ODExLFxuICAgICAgICByb246IDAuMDAxNjYwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzQ3NyxcbiAgICAgICAgcm9mZjogMC44MzUwMzcsXG4gICAgICAgIHJvbjogMC4wMDE2MTE5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMzk4LFxuICAgICAgICByb2ZmOiAwLjgzNTI0NyxcbiAgICAgICAgcm9uOiAwLjAwMTU2NTc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMzMjYsXG4gICAgICAgIHJvZmY6IDAuODM1NDQyLFxuICAgICAgICByb246IDAuMDAxNTIxNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzI1OSxcbiAgICAgICAgcm9mZjogMC44MzU2MjMsXG4gICAgICAgIHJvbjogMC4wMDE0NzkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMTk2LFxuICAgICAgICByb2ZmOiAwLjgzNTc5MSxcbiAgICAgICAgcm9uOiAwLjAwMTQzOTAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMxMzgsXG4gICAgICAgIHJvZmY6IDAuODM1OTQ4LFxuICAgICAgICByb246IDAuMDAxNDAwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzA4NCxcbiAgICAgICAgcm9mZjogMC44MzYwOTMsXG4gICAgICAgIHJvbjogMC4wMDEzNjM1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMDM0LFxuICAgICAgICByb2ZmOiAwLjgzNjIyOCxcbiAgICAgICAgcm9uOiAwLjAwMTMyODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5ODgsXG4gICAgICAgIHJvZmY6IDAuODM2MzU0LFxuICAgICAgICByb246IDAuMDAxMjk0NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjk0NCxcbiAgICAgICAgcm9mZjogMC44MzY0NzIsXG4gICAgICAgIHJvbjogMC4wMDEyNjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTA0LFxuICAgICAgICByb2ZmOiAwLjgzNjU4MSxcbiAgICAgICAgcm9uOiAwLjAwMTIzMTc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI4NjYsXG4gICAgICAgIHJvZmY6IDAuODM2NjgzLFxuICAgICAgICByb246IDAuMDAxMjAyNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjgzMSxcbiAgICAgICAgcm9mZjogMC44MzY3NzgsXG4gICAgICAgIHJvbjogMC4wMDExNzQzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzk5LFxuICAgICAgICByb2ZmOiAwLjgzNjg2NyxcbiAgICAgICAgcm9uOiAwLjAwMTE0NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3NjgsXG4gICAgICAgIHJvZmY6IDAuODM2OTUsXG4gICAgICAgIHJvbjogMC4wMDExMjE4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzQsXG4gICAgICAgIHJvZmY6IDAuODM3MDI3LFxuICAgICAgICByb246IDAuMDAxMDk3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjcxMyxcbiAgICAgICAgcm9mZjogMC44MzcwOTksXG4gICAgICAgIHJvbjogMC4wMDEwNzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2ODksXG4gICAgICAgIHJvZmY6IDAuODM3MTY3LFxuICAgICAgICByb246IDAuMDAxMDUxNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY2NSxcbiAgICAgICAgcm9mZjogMC44MzcyMyxcbiAgICAgICAgcm9uOiAwLjAwMTAzMDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2NDQsXG4gICAgICAgIHJvZmY6IDAuODM3MjksXG4gICAgICAgIHJvbjogMC4wMDEwMDk2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjIzLFxuICAgICAgICByb2ZmOiAwLjgzNzM0NSxcbiAgICAgICAgcm9uOiAwLjAwMDk5MDEyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjA0LFxuICAgICAgICByb2ZmOiAwLjgzNzM5NyxcbiAgICAgICAgcm9uOiAwLjAwMDk3MTQ0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTg3LFxuICAgICAgICByb2ZmOiAwLjgzNzQ0NixcbiAgICAgICAgcm9uOiAwLjAwMDk1MzU5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTcsXG4gICAgICAgIHJvZmY6IDAuODM3NDkyLFxuICAgICAgICByb246IDAuMDAwOTM2NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU1NCxcbiAgICAgICAgcm9mZjogMC44Mzc1MzUsXG4gICAgICAgIHJvbjogMC4wMDA5MjAyMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU0LFxuICAgICAgICByb2ZmOiAwLjgzNzU3NSxcbiAgICAgICAgcm9uOiAwLjAwMDkwNDY1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTI2LFxuICAgICAgICByb2ZmOiAwLjgzNzYxMyxcbiAgICAgICAgcm9uOiAwLjAwMDg4OTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MTMsXG4gICAgICAgIHJvZmY6IDAuODM3NjQ4LFxuICAgICAgICByb246IDAuMDAwODc1NTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MDEsXG4gICAgICAgIHJvZmY6IDAuODM3NjgyLFxuICAgICAgICByb246IDAuMDAwODYxOTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0ODksXG4gICAgICAgIHJvZmY6IDAuODM3NzEzLFxuICAgICAgICByb246IDAuMDAwODQ4OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NzksXG4gICAgICAgIHJvZmY6IDAuODM3NzQzLFxuICAgICAgICByb246IDAuMDAwODM2NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NjgsXG4gICAgICAgIHJvZmY6IDAuODM3NzcxLFxuICAgICAgICByb246IDAuMDAwODI0NjU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NTksXG4gICAgICAgIHJvZmY6IDAuODM3Nzk3LFxuICAgICAgICByb246IDAuMDAwODEzMzE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NSxcbiAgICAgICAgcm9mZjogMC44Mzc4MjIsXG4gICAgICAgIHJvbjogMC4wMDA4MDI0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ0MixcbiAgICAgICAgcm9mZjogMC44Mzc4NDUsXG4gICAgICAgIHJvbjogMC4wMDA3OTIxMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQzNCxcbiAgICAgICAgcm9mZjogMC44Mzc4NjcsXG4gICAgICAgIHJvbjogMC4wMDA3ODIyMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQyNixcbiAgICAgICAgcm9mZjogMC44Mzc4ODgsXG4gICAgICAgIHJvbjogMC4wMDA3NzI3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxOSxcbiAgICAgICAgcm9mZjogMC44Mzc5MDcsXG4gICAgICAgIHJvbjogMC4wMDA3NjM3MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxMixcbiAgICAgICAgcm9mZjogMC44Mzc5MjYsXG4gICAgICAgIHJvbjogMC4wMDA3NTUwNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MDYsXG4gICAgICAgIHJvZmY6IDAuODM3OTQzLFxuICAgICAgICByb246IDAuMDAwNzQ2ODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNCxcbiAgICAgICAgcm9mZjogMC44Mzc5NixcbiAgICAgICAgcm9uOiAwLjAwMDczODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM5NCxcbiAgICAgICAgcm9mZjogMC44Mzc5NzYsXG4gICAgICAgIHJvbjogMC4wMDA3MzEzNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODksXG4gICAgICAgIHJvZmY6IDAuODM3OTksXG4gICAgICAgIHJvbjogMC4wMDA3MjQxNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODQsXG4gICAgICAgIHJvZmY6IDAuODM4MDA0LFxuICAgICAgICByb246IDAuMDAwNzE3MjgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzc5LFxuICAgICAgICByb2ZmOiAwLjgzODAxOCxcbiAgICAgICAgcm9uOiAwLjAwMDcxMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNzUsXG4gICAgICAgIHJvZmY6IDAuODM4MDMsXG4gICAgICAgIHJvbjogMC4wMDA3MDQ0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3LFxuICAgICAgICByb2ZmOiAwLjgzODA0MixcbiAgICAgICAgcm9uOiAwLjAwMDY5ODM5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM2NixcbiAgICAgICAgcm9mZjogMC44MzgwNTMsXG4gICAgICAgIHJvbjogMC4wMDA2OTI2NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNjMsXG4gICAgICAgIHJvZmY6IDAuODM4MDY0LFxuICAgICAgICByb246IDAuMDAwNjg3MTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzU5LFxuICAgICAgICByb2ZmOiAwLjgzODA3NCxcbiAgICAgICAgcm9uOiAwLjAwMDY4MTkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1NSxcbiAgICAgICAgcm9mZjogMC44MzgwODQsXG4gICAgICAgIHJvbjogMC4wMDA2NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzUyLFxuICAgICAgICByb2ZmOiAwLjgzODA5MyxcbiAgICAgICAgcm9uOiAwLjAwMDY3MjEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0OSxcbiAgICAgICAgcm9mZjogMC44MzgxMDEsXG4gICAgICAgIHJvbjogMC4wMDA2Njc1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDYsXG4gICAgICAgIHJvZmY6IDAuODM4MTA5LFxuICAgICAgICByb246IDAuMDAwNjYzMTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQzLFxuICAgICAgICByb2ZmOiAwLjgzODExNyxcbiAgICAgICAgcm9uOiAwLjAwMDY1ODk2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0MSxcbiAgICAgICAgcm9mZjogMC44MzgxMjUsXG4gICAgICAgIHJvbjogMC4wMDA2NTQ5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzgsXG4gICAgICAgIHJvZmY6IDAuODM4MTMyLFxuICAgICAgICByb246IDAuMDAwNjUxMTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM2LFxuICAgICAgICByb2ZmOiAwLjgzODEzOCxcbiAgICAgICAgcm9uOiAwLjAwMDY0NzUwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzNCxcbiAgICAgICAgcm9mZjogMC44MzgxNDUsXG4gICAgICAgIHJvbjogMC4wMDA2NDQwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzEsXG4gICAgICAgIHJvZmY6IDAuODM4MTUxLFxuICAgICAgICByb246IDAuMDAwNjQwNjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI5LFxuICAgICAgICByb2ZmOiAwLjgzODE1NixcbiAgICAgICAgcm9uOiAwLjAwMDYzNzQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNyxcbiAgICAgICAgcm9mZjogMC44MzgxNjIsXG4gICAgICAgIHJvbjogMC4wMDA2MzQ0NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjYsXG4gICAgICAgIHJvZmY6IDAuODM4MTY3LFxuICAgICAgICByb246IDAuMDAwNjMxNTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI0LFxuICAgICAgICByb2ZmOiAwLjgzODE3MixcbiAgICAgICAgcm9uOiAwLjAwMDYyODc1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyMixcbiAgICAgICAgcm9mZjogMC44MzgxNzYsXG4gICAgICAgIHJvbjogMC4wMDA2MjYwOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjEsXG4gICAgICAgIHJvZmY6IDAuODM4MTgxLFxuICAgICAgICByb246IDAuMDAwNjIzNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTksXG4gICAgICAgIHJvZmY6IDAuODM4MTg1LFxuICAgICAgICByb246IDAuMDAwNjIxMTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE4LFxuICAgICAgICByb2ZmOiAwLjgzODE4OSxcbiAgICAgICAgcm9uOiAwLjAwMDYxODgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNixcbiAgICAgICAgcm9mZjogMC44MzgxOTMsXG4gICAgICAgIHJvbjogMC4wMDA2MTY1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTUsXG4gICAgICAgIHJvZmY6IDAuODM4MTk3LFxuICAgICAgICByb246IDAuMDAwNjE0NDc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE0LFxuICAgICAgICByb2ZmOiAwLjgzODIsXG4gICAgICAgIHJvbjogMC4wMDA2MTI0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjAzLFxuICAgICAgICByb246IDAuMDAwNjEwNTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzExLFxuICAgICAgICByb2ZmOiAwLjgzODIwNyxcbiAgICAgICAgcm9uOiAwLjAwMDYwODY3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxLFxuICAgICAgICByb2ZmOiAwLjgzODIxLFxuICAgICAgICByb246IDAuMDAwNjA2OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA5LFxuICAgICAgICByb2ZmOiAwLjgzODIxMixcbiAgICAgICAgcm9uOiAwLjAwMDYwNTIxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwOCxcbiAgICAgICAgcm9mZjogMC44MzgyMTUsXG4gICAgICAgIHJvbjogMC4wMDA2MDM2MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDcsXG4gICAgICAgIHJvZmY6IDAuODM4MjE4LFxuICAgICAgICByb246IDAuMDAwNjAyMDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIsXG4gICAgICAgIHJvbjogMC4wMDA2MDA1ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIzLFxuICAgICAgICByb246IDAuMDAwNTk5MTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA1LFxuICAgICAgICByb2ZmOiAwLjgzODIyNSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NzgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNCxcbiAgICAgICAgcm9mZjogMC44MzgyMjcsXG4gICAgICAgIHJvbjogMC4wMDA1OTY1NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDMsXG4gICAgICAgIHJvZmY6IDAuODM4MjI5LFxuICAgICAgICByb246IDAuMDAwNTk1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAzLFxuICAgICAgICByb2ZmOiAwLjgzODIzMSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NDE0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMixcbiAgICAgICAgcm9mZjogMC44MzgyMzMsXG4gICAgICAgIHJvbjogMC4wMDA1OTMwMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDEsXG4gICAgICAgIHJvZmY6IDAuODM4MjM1LFxuICAgICAgICByb246IDAuMDAwNTkxOTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAxLFxuICAgICAgICByb2ZmOiAwLjgzODIzNixcbiAgICAgICAgcm9uOiAwLjAwMDU5MDkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMsXG4gICAgICAgIHJvZmY6IDAuODM4MjM4LFxuICAgICAgICByb246IDAuMDAwNTg5OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMyxcbiAgICAgICAgcm9mZjogMC44MzgyNCxcbiAgICAgICAgcm9uOiAwLjAwMDU4OTAwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OSxcbiAgICAgICAgcm9mZjogMC44MzgyNDEsXG4gICAgICAgIHJvbjogMC4wMDA1ODgxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTksXG4gICAgICAgIHJvZmY6IDAuODM4MjQyLFxuICAgICAgICByb246IDAuMDAwNTg3MjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk4LFxuICAgICAgICByb2ZmOiAwLjgzODI0NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4NjQzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OCxcbiAgICAgICAgcm9mZjogMC44MzgyNDUsXG4gICAgICAgIHJvbjogMC4wMDA1ODU2NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTcsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ2LFxuICAgICAgICByb246IDAuMDAwNTg0OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk3LFxuICAgICAgICByb2ZmOiAwLjgzODI0NyxcbiAgICAgICAgcm9uOiAwLjAwMDU4NDE5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNDksXG4gICAgICAgIHJvbjogMC4wMDA1ODM1MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUsXG4gICAgICAgIHJvbjogMC4wMDA1ODI4NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUxLFxuICAgICAgICByb246IDAuMDAwNTgyMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MixcbiAgICAgICAgcm9uOiAwLjAwMDU4MTY0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTMsXG4gICAgICAgIHJvbjogMC4wMDA1ODEwNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUzLFxuICAgICAgICByb246IDAuMDAwNTgwNTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4MDAxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTUsXG4gICAgICAgIHJvbjogMC4wMDA1Nzk1MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU2LFxuICAgICAgICByb246IDAuMDAwNTc5MDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3ODU5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTcsXG4gICAgICAgIHJvbjogMC4wMDA1NzgxNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU4LFxuICAgICAgICByb246IDAuMDAwNTc3NzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NzM1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTksXG4gICAgICAgIHJvbjogMC4wMDA1NzY5NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzY2MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzYyNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYxLFxuICAgICAgICByb246IDAuMDAwNTc1OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NTYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYzLFxuICAgICAgICByb246IDAuMDAwNTc0NzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MyxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDQ5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzQyNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTc0MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3Mzc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzM1NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMzQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyOTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI0MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIyNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIxMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNjk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTQ0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzEzMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxMjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTExNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzEwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwOTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA3MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAyMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAxNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwMzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTYzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTM4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxNTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTEyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTsiLCJ2YXIgc2l0ZW1hcCA9IHtcclxuICAgICcnOiAnaG9tZScsXHJcbiAgICBcclxuICAgICdPdmVydmlld19Qcm9qZWN0JzogJ3F1b3J1cycsXHJcbiAgICAnRGVzY3JpcHRpb24nOiAncXVvcnVzJyxcclxuICAgICdEZXNpZ24nOiAncXVvcnVzJyxcclxuICAgICdFeHBlcmltZW50cyc6ICdxdW9ydXMnLFxyXG4gICAgJ05vdGVib29rJzogJ3F1b3J1cycsXHJcbiAgICAnSW50ZXJMYWInOiAncXVvcnVzJyxcclxuICAgICdNb2RlbCc6ICdxdW9ydXMnLFxyXG4gICAgJ1Jlc3VsdHMnOiAncXVvcnVzJyxcclxuICAgICdEZW1vbnN0cmF0ZSc6ICdxdW9ydXMnLFxyXG4gICAgJ0ltcHJvdmUnOiAncXVvcnVzJyxcclxuXHJcbiAgICAnUGFydHMnOiAncXVvcnVzJyxcclxuICAgICdCYXNpY19QYXJ0JzogJ3F1b3J1cycsXHJcbiAgICAnQ29tcG9zaXRlX1BhcnQnOiAncXVvcnVzJyxcclxuICAgICdQYXJ0X0NvbGxlY3Rpb24nOiAncXVvcnVzJyxcclxuXHJcbiAgICAnU2FmZXR5JzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ092ZXJ2aWV3X0hQJzogJ2hwJyxcclxuICAgICdIdW1hbl9QcmFjdGljZXMnOiAnaHAnLFxyXG4gICAgJ1B1YmxpY19FbmdhZ2VtZW50JzogJ2hwJyxcclxuXHJcbiAgICAnVGVhbSc6ICd0ZWFtJyxcclxuICAgICdDb2xsYWJvcmF0aW9ucyc6ICd0ZWFtJyxcclxuICAgICdBdHRyaWJ1dGlvbnMnOiAndGVhbScsXHJcblxyXG4gICAgJ0FwcGxpZWRfRGVzaWduJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdFbnRyZXByZW5ldXJzaGlwJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdIYXJkd2FyZSc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnTWVhc3VyZW1lbnQnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ01vZGVsJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdTb2Z0d2FyZSc6ICdjb21wZXRpdGlvbidcclxufVxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcclxuICAgIHZhciBjdXJuYXZpdGVtID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICBpZihjdXJuYXZpdGVtLm1hdGNoKC9pZ2VtXFwub3JnL2kpKSB7IC8vIFdlIGtub3cgd2UncmUgbGl2ZVxyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoLyhodHRwOlxcL1xcLyk/XFxkezR9XFwuaWdlbVxcLm9yZ1xcLlRlYW06XFx3K1xcLz8vaSwgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvKGh0dHA6XFwvXFwvKT9sb2NhbGhvc3Q6XFxkK1xcLz8vLCAnJyk7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvXFwuaHRtbC9pLCAnJyk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhjdXJuYXZpdGVtKTtcclxuICAgICQoJy4nICsgc2l0ZW1hcFtjdXJuYXZpdGVtXSkuYWRkQ2xhc3MoJ2N1cnJlbnQnKTtcclxufSkiLCIvLyBDb2RlIGNvdXJ0ZXN5IG9mIE1vaGFtZWQgSGFzYW5cclxuLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL01obWRoYXNhbi9wZW4vbUFkYVFFXHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgXHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG4gIFxyXG4gICB2YXIgYywgY3VycmVudFNjcm9sbFRvcCA9IDAsXHJcbiAgICAgICBuYXZiYXIgPSAkKCdoZWFkZXInKTtcclxuXHJcbiAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgYSA9ICQod2luZG93KS5zY3JvbGxUb3AoKTtcclxuICAgICAgdmFyIGIgPSBuYXZiYXIuaGVpZ2h0KCk7XHJcbiAgICAgXHJcbiAgICAgIGN1cnJlbnRTY3JvbGxUb3AgPSBhO1xyXG4gICAgIFxyXG4gICAgICBpZiAoYyA8IGN1cnJlbnRTY3JvbGxUb3AgJiYgYSA+IGIgKyBiKSB7XHJcbiAgICAgICAgbmF2YmFyLmFkZENsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyA+IGN1cnJlbnRTY3JvbGxUb3AgJiYgIShhIDw9IGIpKSB7XHJcbiAgICAgICAgbmF2YmFyLnJlbW92ZUNsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH1cclxuICAgICAgYyA9IGN1cnJlbnRTY3JvbGxUb3A7XHJcbiAgfSk7XHJcbiAgXHJcbn0pOyIsIi8vQ29kZSBjb3VydGVzeSBvZiBodHRwczovL2NvZGVwZW4uaW8va3J1eG9yL3Blbi9Dd3BGcVxuXG4kKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCkge1xuICAgIGlmICgkKHRoaXMpLnNjcm9sbFRvcCgpID4gNTAgKSB7XG4gICAgICAgICQoJy5zY3JvbGx0b3A6aGlkZGVuJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlSW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAkKCcuc2Nyb2xsdG9wJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlT3V0KCk7XG4gICAgfVxufSk7XG4kKGZ1bmN0aW9uKCl7JChcIi5zY3JvbGxcIikuY2xpY2soZnVuY3Rpb24oKXskKFwiaHRtbCxib2R5XCIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKFwiI3RvcFwiKS5vZmZzZXQoKS50b3B9LFwiMTAwMFwiKTtyZXR1cm4gZmFsc2V9KX0pOyJdfQ==

Revision as of 14:35, 17 October 2018

/**

* This page and wiki was built with the help of igem-wikibrick, a tool created by Virginia iGEM 2018
* @version v0.7.3
* @version v0.7.3
* @link https://github.com/Virginia-iGEM/igem-wikibrick
* @license MIT
*/

/*

Copyright (C) Federico Zivolo 2018
Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
*/(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return J(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&s&&(a.top=J(a.top,0),a.left=J(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=J(o.clientWidth,window.innerWidth||0),r=J(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function w(e){var n=e.nodeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(e.ownerDocument),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}i=i||0;var u='number'==typeof i;return s.left+=u?i:i.left||0,s.top+=u?i:i.top||0,s.right-=u?i:i.right||0,s.bottom-=u?i:i.bottom||0,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:)}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i={width:e.offsetWidth+n,height:e.offsetHeight+o};return i}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function D(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function C(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=C(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=D(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function H(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function B(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position=,this.popper.style.top=,this.popper.style.left=,this.popper.style.right=,this.popper.style.bottom=,this.popper.style.willChange=,this.popper.style[H('transform')]=),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function j(e,t){Object.keys(t).forEach(function(o){var n=;-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function K(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t,o){var n=C(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function G(e){return'end'===e?'start':'start'===e?'end':e}function V(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return t?n.reverse():n}function z(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?J(document.documentElement.clientHeight,window.innerHeight||0):J(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function _(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(C(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return z(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var Q=Math.min,Z=Math.round,$=Math.floor,J=Math.max,ee='undefined'!=typeof window&&'undefined'!=typeof document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var i=ee&&window.Promise,ie=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},fe=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=ie(this.update.bind(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return B.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ce.Utils=('undefined'==typeof window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=H('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top=,i.left=,i[n]=;var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=J(f[e],a[e])),ae({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=$,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return v=J(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Z(v)),ae(n,h,),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||,p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case he.CLOCKWISE:p=V(n);break;case he.COUNTERCLOCKWISE:p=V(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=$,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=G(r)),e.placement=n+(r?'-'+r:),e.offsets.popper=le({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=C(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:$(i.left),top:Z(i.top),bottom:Z(i.bottom),right:$(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),K(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ce});

//# sourceMappingURL=popper.min.js.map /*!

 * Bootstrap v4.1.0 (https://getbootstrap.com/)
 * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function h(r){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{},e=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=s[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}e=e&&e.hasOwnProperty("default")?e.default:e,c=c&&c.hasOwnProperty("default")?c.default:c;var r,n,s,a,l,u,f,d,_,g,m,p,v,E,y,T,C,I,A,D,b,S,w,N,O,k,P,L,j,R,H,W,M,x,U,K,F,V,Q,B,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,st,ot,at,lt,ht,ct,ut,ft,dt,_t,gt,mt,pt,vt,Et,yt,Tt,Ct,It,At,Dt,bt,St,wt,Nt,Ot,kt,Pt,Lt,jt,Rt,Ht,Wt,Mt,xt,Ut,Kt,Ft,Vt,Qt,Bt,Yt,Gt,qt,zt,Xt,Jt,Zt,$t,te,ee,ne,ie,re,se,oe,ae,le,he,ce,ue,fe,de,_e,ge,me,pe,ve,Ee,ye,Te,Ce,Ie,Ae,De,be,Se,we,Ne,Oe,ke,Pe,Le,je,Re,He,We,Me,xe,Ue,Ke,Fe,Ve,Qe,Be,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,sn,on,an,ln,hn,cn,un,fn,dn,_n,gn,mn,pn,vn,En,yn,Tn,Cn=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],s=e[i],o=s&&l.isElement(s)?"element":(a=s,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(o))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e),In=(n="alert",a="."+(s="bs.alert"),l=(r=e).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",_="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,s),this._element=null},t._getRootElement=function(t){var e=Cn.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(u.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(_),r(e).hasClass(d)){var t=Cn.getTransitionDurationFromElement(e);r(e).one(Cn.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(s);e||(e=new i(this),t.data(s,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),r.fn[n]=g._jQueryInterface,r.fn[n].Constructor=g,r.fn[n].noConflict=function(){return r.fn[n]=l,g._jQueryInterface},g),An=(p="button",E="."+(v="bs.button"),y=".data-api",T=(m=e).fn[p],C="active",I="btn",D='[data-toggle^="button"]',b='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+y,FOCUS_BLUR_DATA_API:(A="focus")+E+y+" blur"+E+y},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=m(this._element).closest(b)[0];if(n){var i=m(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&m(this._element).hasClass(C))t=!1;else{var r=m(n).find(w)[0];r&&m(r).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!m(this._element).hasClass(C),m(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!m(this._element).hasClass(C)),t&&m(this._element).toggleClass(C)},t.dispose=function(){m.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=m(this).data(v);t||(t=new n(this),m(this).data(v,t)),"toggle"===e&&t[e]()})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),n}(),m(document).on(O.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;m(e).hasClass(I)||(e=m(e).closest(N)),k._jQueryInterface.call(m(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,D,function(t){var e=m(t.target).closest(N)[0];m(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),m.fn[p]=k._jQueryInterface,m.fn[p].Constructor=k,m.fn[p].noConflict=function(){return m.fn[p]=T,k._jQueryInterface},k),Dn=(L="carousel",R="."+(j="bs.carousel"),H=".data-api",W=(P=e).fn[L],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},x={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},U="next",K="prev",F="left",V="right",Q={SLIDE:"slide"+R,SLID:"slid"+R,KEYDOWN:"keydown"+R,MOUSEENTER:"mouseenter"+R,MOUSELEAVE:"mouseleave"+R,TOUCHEND:"touchend"+R,LOAD_DATA_API:"load"+R+H,CLICK_DATA_API:"click"+R+H},B="carousel",Y="active",G="slide",q="carousel-item-right",z="carousel-item-left",X="carousel-item-next",J="carousel-item-prev",Z={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},$=function(){function s(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=P(t)[0],this._indicatorsElement=P(this._element).find(Z.INDICATORS)[0],this._addEventListeners()}var t=s.prototype;return t.next=function(){this._isSliding||this._slide(U)},t.nextWhenVisible=function(){!document.hidden&&P(this._element).is(":visible")&&"hidden"!==P(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(K)},t.pause=function(t){t||(this._isPaused=!0),P(this._element).find(Z.NEXT_PREV)[0]&&(Cn.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=P(this._element).find(Z.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?U:K;this._slide(i,this._items[t])}},t.dispose=function(){P(this._element).off(R),P.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=h({},M,t),Cn.typeCheckConfig(L,t,x),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&P(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(P(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&P(this._element).on(Q.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=P.makeArray(P(t).parent().find(Z.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===U,i=t===K,r=this._getItemIndex(e),s=this._items.length-1;if((i&&0===r||n&&r===s)&&!this._config.wrap)return e;var o=(r+(t===K?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(P(this._element).find(Z.ACTIVE_ITEM)[0]),r=P.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return P(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){P(this._indicatorsElement).find(Z.ACTIVE).removeClass(Y);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&P(e).addClass(Y)}},t._slide=function(t,e){var n,i,r,s=this,o=P(this._element).find(Z.ACTIVE_ITEM)[0],a=this._getItemIndex(o),l=e||o&&this._getItemByDirection(t,o),h=this._getItemIndex(l),c=Boolean(this._interval);if(t===U?(n=z,i=X,r=F):(n=q,i=J,r=V),l&&P(l).hasClass(Y))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&o&&l){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(l);var u=P.Event(Q.SLID,{relatedTarget:l,direction:r,from:a,to:h});if(P(this._element).hasClass(G)){P(l).addClass(i),Cn.reflow(l),P(o).addClass(n),P(l).addClass(n);var f=Cn.getTransitionDurationFromElement(o);P(o).one(Cn.TRANSITION_END,function(){P(l).removeClass(n+" "+i).addClass(Y),P(o).removeClass(Y+" "+i+" "+n),s._isSliding=!1,setTimeout(function(){return P(s._element).trigger(u)},0)}).emulateTransitionEnd(f)}else P(o).removeClass(Y),P(l).addClass(Y),this._isSliding=!1,P(this._element).trigger(u);c&&this.cycle()}},s._jQueryInterface=function(i){return this.each(function(){var t=P(this).data(j),e=h({},M,P(this).data());"object"==typeof i&&(e=h({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new s(this,e),P(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},s._dataApiClickHandler=function(t){var e=Cn.getSelectorFromElement(this);if(e){var n=P(e)[0];if(n&&P(n).hasClass(B)){var i=h({},P(n).data(),P(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),s._jQueryInterface.call(P(n),i),r&&P(n).data(j).to(r),t.preventDefault()}}},o(s,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return M}}]),s}(),P(document).on(Q.CLICK_DATA_API,Z.DATA_SLIDE,$._dataApiClickHandler),P(window).on(Q.LOAD_DATA_API,function(){P(Z.DATA_RIDE).each(function(){var t=P(this);$._jQueryInterface.call(t,t.data())})}),P.fn[L]=$._jQueryInterface,P.fn[L].Constructor=$,P.fn[L].noConflict=function(){return P.fn[L]=W,$._jQueryInterface},$),bn=(et="collapse",it="."+(nt="bs.collapse"),rt=(tt=e).fn[et],st={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},at={SHOW:"show"+it,SHOWN:"shown"+it,HIDE:"hide"+it,HIDDEN:"hidden"+it,CLICK_DATA_API:"click"+it+".data-api"},lt="show",ht="collapse",ct="collapsing",ut="collapsed",ft="width",dt="height",_t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},gt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=tt.makeArray(tt('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=tt(_t.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],s=Cn.getSelectorFromElement(r);null!==s&&0<tt(s).filter(t).length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){tt(this._element).hasClass(lt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!tt(this._element).hasClass(lt)&&(this._parent&&0===(t=tt.makeArray(tt(this._parent).find(_t.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=tt(t).not(this._selector).data(nt))&&e._isTransitioning))){var i=tt.Event(at.SHOW);if(tt(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(tt(t).not(this._selector),"hide"),e||tt(t).data(nt,null));var r=this._getDimension();tt(this._element).removeClass(ht).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&tt(this._triggerArray).removeClass(ut).attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(r[0].toUpperCase()+r.slice(1)),o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){tt(n._element).removeClass(ct).addClass(ht).addClass(lt),n._element.style[r]="",n.setTransitioning(!1),tt(n._element).trigger(at.SHOWN)}).emulateTransitionEnd(o),this._element.style[r]=this._element[s]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&tt(this._element).hasClass(lt)){var e=tt.Event(at.HIDE);if(tt(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",Cn.reflow(this._element),tt(this._element).addClass(ct).removeClass(ht).removeClass(lt),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],s=Cn.getSelectorFromElement(r);if(null!==s)tt(s).hasClass(lt)||tt(r).addClass(ut).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){t.setTransitioning(!1),tt(t._element).removeClass(ct).addClass(ht).trigger(at.HIDDEN)}).emulateTransitionEnd(o)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){tt.removeData(this._element,nt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=h({},st,t)).toggle=Boolean(t.toggle),Cn.typeCheckConfig(et,t,ot),t},t._getDimension=function(){return tt(this._element).hasClass(ft)?ft:dt},t._getParent=function(){var n=this,t=null;Cn.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=tt(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return tt(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=tt(t).hasClass(lt);0<e.length&&tt(e).toggleClass(ut,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=Cn.getSelectorFromElement(t);return e?tt(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=tt(this),e=t.data(nt),n=h({},st,t.data(),"object"==typeof i&&i);if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(nt,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},o(a,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return st}}]),a}(),tt(document).on(at.CLICK_DATA_API,_t.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=tt(this),e=Cn.getSelectorFromElement(this);tt(e).each(function(){var t=tt(this),e=t.data(nt)?"toggle":n.data();gt._jQueryInterface.call(t,e)})}),tt.fn[et]=gt._jQueryInterface,tt.fn[et].Constructor=gt,tt.fn[et].noConflict=function(){return tt.fn[et]=rt,gt._jQueryInterface},gt),Sn=(pt="dropdown",Et="."+(vt="bs.dropdown"),yt=".data-api",Tt=(mt=e).fn[pt],Ct=new RegExp("38|40|27"),It={HIDE:"hide"+Et,HIDDEN:"hidden"+Et,SHOW:"show"+Et,SHOWN:"shown"+Et,CLICK:"click"+Et,CLICK_DATA_API:"click"+Et+yt,KEYDOWN_DATA_API:"keydown"+Et+yt,KEYUP_DATA_API:"keyup"+Et+yt},At="disabled",Dt="show",bt="dropup",St="dropright",wt="dropleft",Nt="dropdown-menu-right",Ot="position-static",kt='[data-toggle="dropdown"]',Pt=".dropdown form",Lt=".dropdown-menu",jt=".navbar-nav",Rt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ht="top-start",Wt="top-end",Mt="bottom-start",xt="bottom-end",Ut="right-start",Kt="left-start",Ft={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Vt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Qt=function(){function l(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=l.prototype;return t.toggle=function(){if(!this._element.disabled&&!mt(this._element).hasClass(At)){var t=l._getParentFromElement(this._element),e=mt(this._menu).hasClass(Dt);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=mt.Event(It.SHOW,n);if(mt(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof c)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:Cn.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&mt(t).addClass(Ot),this._popper=new c(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===mt(t).closest(jt).length&&mt(document.body).children().on("mouseover",null,mt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),mt(this._menu).toggleClass(Dt),mt(t).toggleClass(Dt).trigger(mt.Event(It.SHOWN,n))}}}},t.dispose=function(){mt.removeData(this._element,vt),mt(this._element).off(Et),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;mt(this._element).on(It.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=h({},this.constructor.Default,mt(this._element).data(),t),Cn.typeCheckConfig(pt,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=mt(t).find(Lt)[0]}return this._menu},t._getPlacement=function(){var t=mt(this._element).parent(),e=Mt;return t.hasClass(bt)?(e=Ht,mt(this._menu).hasClass(Nt)&&(e=Wt)):t.hasClass(St)?e=Ut:t.hasClass(wt)?e=Kt:mt(this._menu).hasClass(Nt)&&(e=xt),e},t._detectNavbar=function(){return 0<mt(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=h({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},l._jQueryInterface=function(e){return this.each(function(){var t=mt(this).data(vt);if(t||(t=new l(this,"object"==typeof e?e:null),mt(this).data(vt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},l._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=mt.makeArray(mt(kt)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=mt(e[n]).data(vt),s={relatedTarget:e[n]};if(r){var o=r._menu;if(mt(i).hasClass(Dt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&mt.contains(i,t.target))){var a=mt.Event(It.HIDE,s);mt(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&mt(document.body).children().off("mouseover",null,mt.noop),e[n].setAttribute("aria-expanded","false"),mt(o).removeClass(Dt),mt(i).removeClass(Dt).trigger(mt.Event(It.HIDDEN,s)))}}}},l._getParentFromElement=function(t){var e,n=Cn.getSelectorFromElement(t);return n&&(e=mt(n)[0]),e||t.parentNode},l._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||mt(t.target).closest(Lt).length)):Ct.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!mt(this).hasClass(At))){var e=l._getParentFromElement(this),n=mt(e).hasClass(Dt);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=mt(e).find(Rt).get();if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var s=mt(e).find(kt)[0];mt(s).trigger("focus")}mt(this).trigger("click")}}},o(l,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Ft}},{key:"DefaultType",get:function(){return Vt}}]),l}(),mt(document).on(It.KEYDOWN_DATA_API,kt,Qt._dataApiKeydownHandler).on(It.KEYDOWN_DATA_API,Lt,Qt._dataApiKeydownHandler).on(It.CLICK_DATA_API+" "+It.KEYUP_DATA_API,Qt._clearMenus).on(It.CLICK_DATA_API,kt,function(t){t.preventDefault(),t.stopPropagation(),Qt._jQueryInterface.call(mt(this),"toggle")}).on(It.CLICK_DATA_API,Pt,function(t){t.stopPropagation()}),mt.fn[pt]=Qt._jQueryInterface,mt.fn[pt].Constructor=Qt,mt.fn[pt].noConflict=function(){return mt.fn[pt]=Tt,Qt._jQueryInterface},Qt),wn=(Yt="modal",qt="."+(Gt="bs.modal"),zt=(Bt=e).fn[Yt],Xt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Jt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Zt={HIDE:"hide"+qt,HIDDEN:"hidden"+qt,SHOW:"show"+qt,SHOWN:"shown"+qt,FOCUSIN:"focusin"+qt,RESIZE:"resize"+qt,CLICK_DISMISS:"click.dismiss"+qt,KEYDOWN_DISMISS:"keydown.dismiss"+qt,MOUSEUP_DISMISS:"mouseup.dismiss"+qt,MOUSEDOWN_DISMISS:"mousedown.dismiss"+qt,CLICK_DATA_API:"click"+qt+".data-api"},$t="modal-scrollbar-measure",te="modal-backdrop",ee="modal-open",ne="fade",ie="show",re={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},se=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Bt(t).find(re.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){Bt(this._element).hasClass(ne)&&(this._isTransitioning=!0);var n=Bt.Event(Zt.SHOW,{relatedTarget:t});Bt(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Bt(document.body).addClass(ee),this._setEscapeEvent(),this._setResizeEvent(),Bt(this._element).on(Zt.CLICK_DISMISS,re.DATA_DISMISS,function(t){return e.hide(t)}),Bt(this._dialog).on(Zt.MOUSEDOWN_DISMISS,function(){Bt(e._element).one(Zt.MOUSEUP_DISMISS,function(t){Bt(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=Bt.Event(Zt.HIDE);if(Bt(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Bt(this._element).hasClass(ne);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Bt(document).off(Zt.FOCUSIN),Bt(this._element).removeClass(ie),Bt(this._element).off(Zt.CLICK_DISMISS),Bt(this._dialog).off(Zt.MOUSEDOWN_DISMISS),i){var r=Cn.getTransitionDurationFromElement(this._element);Bt(this._element).one(Cn.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Bt.removeData(this._element,Gt),Bt(window,document,this._element,this._backdrop).off(qt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=h({},Xt,t),Cn.typeCheckConfig(Yt,t,Jt),t},t._showElement=function(t){var e=this,n=Bt(this._element).hasClass(ne);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Cn.reflow(this._element),Bt(this._element).addClass(ie),this._config.focus&&this._enforceFocus();var i=Bt.Event(Zt.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Bt(e._element).trigger(i)};if(n){var s=Cn.getTransitionDurationFromElement(this._element);Bt(this._dialog).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()},t._enforceFocus=function(){var e=this;Bt(document).off(Zt.FOCUSIN).on(Zt.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Bt(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Bt(this._element).on(Zt.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Bt(this._element).off(Zt.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Bt(window).on(Zt.RESIZE,function(t){return e.handleUpdate(t)}):Bt(window).off(Zt.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Bt(document.body).removeClass(ee),t._resetAdjustments(),t._resetScrollbar(),Bt(t._element).trigger(Zt.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Bt(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Bt(this._element).hasClass(ne)?ne:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=te,n&&Bt(this._backdrop).addClass(n),Bt(this._backdrop).appendTo(document.body),Bt(this._element).on(Zt.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&Cn.reflow(this._backdrop),Bt(this._backdrop).addClass(ie),!t)return;if(!n)return void t();var i=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Bt(this._backdrop).removeClass(ie);var r=function(){e._removeBackdrop(),t&&t()};if(Bt(this._element).hasClass(ne)){var s=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e)[0].style.paddingRight,i=Bt(e).css("padding-right");Bt(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Bt(re.STICKY_CONTENT).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Bt(re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Bt(document.body).css("padding-right");Bt(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e).data("padding-right");"undefined"!=typeof n&&Bt(e).css("padding-right",n).removeData("padding-right")}),Bt(re.STICKY_CONTENT+", "+re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e).data("margin-right");"undefined"!=typeof n&&Bt(e).css("margin-right",n).removeData("margin-right")});var t=Bt(document.body).data("padding-right");"undefined"!=typeof t&&Bt(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=$t,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=Bt(this).data(Gt),e=h({},r.Default,Bt(this).data(),"object"==typeof n&&n);if(t||(t=new r(this,e),Bt(this).data(Gt,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},o(r,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Xt}}]),r}(),Bt(document).on(Zt.CLICK_DATA_API,re.DATA_TOGGLE,function(t){var e,n=this,i=Cn.getSelectorFromElement(this);i&&(e=Bt(i)[0]);var r=Bt(e).data(Gt)?"toggle":h({},Bt(e).data(),Bt(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=Bt(e).one(Zt.SHOW,function(t){t.isDefaultPrevented()||s.one(Zt.HIDDEN,function(){Bt(n).is(":visible")&&n.focus()})});se._jQueryInterface.call(Bt(e),r,this)}),Bt.fn[Yt]=se._jQueryInterface,Bt.fn[Yt].Constructor=se,Bt.fn[Yt].noConflict=function(){return Bt.fn[Yt]=zt,se._jQueryInterface},se),Nn=(ae="tooltip",he="."+(le="bs.tooltip"),ce=(oe=e).fn[ae],ue="bs-tooltip",fe=new RegExp("(^|\\s)"+ue+"\\S+","g"),ge={animation:!0,template:'
',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),t)).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0<e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(oe(t).removeClass(Ee),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=oe(this).data(le),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),oe(this).data(le,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return ge}},{key:"NAME",get:function(){return ae}},{key:"DATA_KEY",get:function(){return le}},{key:"Event",get:function(){return ve}},{key:"EVENT_KEY",get:function(){return he}},{key:"DefaultType",get:function(){return de}}]),i}(),oe.fn[ae]=Se._jQueryInterface,oe.fn[ae].Constructor=Se,oe.fn[ae].noConflict=function(){return oe.fn[ae]=ce,Se._jQueryInterface},Se),On=(Ne="popover",ke="."+(Oe="bs.popover"),Pe=(we=e).fn[Ne],Le="bs-popover",je=new RegExp("(^|\\s)"+Le+"\\S+","g"),Re=h({},Nn.Default,{placement:"right",trigger:"click",content:"",template:'

'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=we(this).data(Oe),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),we(this).data(Oe,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Re}},{key:"NAME",get:function(){return Ne}},{key:"DATA_KEY",get:function(){return Oe}},{key:"Event",get:function(){return Ke}},{key:"EVENT_KEY",get:function(){return ke}},{key:"DefaultType",get:function(){return He}}]),i}(Nn),we.fn[Ne]=Fe._jQueryInterface,we.fn[Ne].Constructor=Fe,we.fn[Ne].noConflict=function(){return we.fn[Ne]=Pe,Fe._jQueryInterface},Fe),kn=(Qe="scrollspy",Ye="."+(Be="bs.scrollspy"),Ge=(Ve=e).fn[Qe],qe={offset:10,method:"auto",target:""},ze={offset:"number",method:"string",target:"(string|element)"},Xe={ACTIVATE:"activate"+Ye,SCROLL:"scroll"+Ye,LOAD_DATA_API:"load"+Ye+".data-api"},Je="dropdown-item",Ze="active",$e={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},tn="offset",en="position",nn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+$e.NAV_LINKS+","+this._config.target+" "+$e.LIST_ITEMS+","+this._config.target+" "+$e.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Ve(this._scrollElement).on(Xe.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?tn:en,r="auto"===this._config.method?t:this._config.method,s=r===en?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Ve.makeArray(Ve(this._selector)).map(function(t){var e,n=Cn.getSelectorFromElement(t);if(n&&(e=Ve(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Ve(e)[r]().top+s,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Ve.removeData(this._element,Be),Ve(this._scrollElement).off(Ye),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=h({},qe,t)).target){var e=Ve(t.target).attr("id");e||(e=Cn.getUID(Qe),Ve(t.target).attr("id",e)),t.target="#"+e}return Cn.typeCheckConfig(Qe,t,ze),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=Ve(t.join(","));n.hasClass(Je)?(n.closest($e.DROPDOWN).find($e.DROPDOWN_TOGGLE).addClass(Ze),n.addClass(Ze)):(n.addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_LINKS+", "+$e.LIST_ITEMS).addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_ITEMS).children($e.NAV_LINKS).addClass(Ze)),Ve(this._scrollElement).trigger(Xe.ACTIVATE,{relatedTarget:e})},t._clear=function(){Ve(this._selector).filter($e.ACTIVE).removeClass(Ze)},n._jQueryInterface=function(e){return this.each(function(){var t=Ve(this).data(Be);if(t||(t=new n(this,"object"==typeof e&&e),Ve(this).data(Be,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return qe}}]),n}(),Ve(window).on(Xe.LOAD_DATA_API,function(){for(var t=Ve.makeArray(Ve($e.DATA_SPY)),e=t.length;e--;){var n=Ve(t[e]);nn._jQueryInterface.call(n,n.data())}}),Ve.fn[Qe]=nn._jQueryInterface,Ve.fn[Qe].Constructor=nn,Ve.fn[Qe].noConflict=function(){return Ve.fn[Qe]=Ge,nn._jQueryInterface},nn),Pn=(on="."+(sn="bs.tab"),an=(rn=e).fn.tab,ln={HIDE:"hide"+on,HIDDEN:"hidden"+on,SHOW:"show"+on,SHOWN:"shown"+on,CLICK_DATA_API:"click"+on+".data-api"},hn="dropdown-menu",cn="active",un="disabled",fn="fade",dn="show",_n=".dropdown",gn=".nav, .list-group",mn=".active",pn="> li > .active",vn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',En=".dropdown-toggle",yn="> .dropdown-menu .active",Tn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&rn(this._element).hasClass(cn)||rn(this._element).hasClass(un))){var t,i,e=rn(this._element).closest(gn)[0],r=Cn.getSelectorFromElement(this._element);if(e){var s="UL"===e.nodeName?pn:mn;i=(i=rn.makeArray(rn(e).find(s)))[i.length-1]}var o=rn.Event(ln.HIDE,{relatedTarget:this._element}),a=rn.Event(ln.SHOW,{relatedTarget:i});if(i&&rn(i).trigger(o),rn(this._element).trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){r&&(t=rn(r)[0]),this._activate(this._element,e);var l=function(){var t=rn.Event(ln.HIDDEN,{relatedTarget:n._element}),e=rn.Event(ln.SHOWN,{relatedTarget:i});rn(i).trigger(t),rn(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){rn.removeData(this._element,sn),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?rn(e).find(pn):rn(e).children(mn))[0],s=n&&r&&rn(r).hasClass(fn),o=function(){return i._transitionComplete(t,r,n)};if(r&&s){var a=Cn.getTransitionDurationFromElement(r);rn(r).one(Cn.TRANSITION_END,o).emulateTransitionEnd(a)}else o()},t._transitionComplete=function(t,e,n){if(e){rn(e).removeClass(dn+" "+cn);var i=rn(e.parentNode).find(yn)[0];i&&rn(i).removeClass(cn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(rn(t).addClass(cn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Cn.reflow(t),rn(t).addClass(dn),t.parentNode&&rn(t.parentNode).hasClass(hn)){var r=rn(t).closest(_n)[0];r&&rn(r).find(En).addClass(cn),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=rn(this),e=t.data(sn);if(e||(e=new i(this),t.data(sn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),rn(document).on(ln.CLICK_DATA_API,vn,function(t){t.preventDefault(),Tn._jQueryInterface.call(rn(this),"show")}),rn.fn.tab=Tn._jQueryInterface,rn.fn.tab.Constructor=Tn,rn.fn.tab.noConflict=function(){return rn.fn.tab=an,Tn._jQueryInterface},Tn);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=Cn,t.Alert=In,t.Button=An,t.Carousel=Dn,t.Collapse=bn,t.Dropdown=Sn,t.Modal=wn,t.Popover=On,t.Scrollspy=kn,t.Tab=Pn,t.Tooltip=Nn,Object.defineProperty(t,"__esModule",{value:!0})});

//# sourceMappingURL=bootstrap.min.js.map // https://d3js.org Version 5.5.0. Copyright 2018 Mike Bostock. (function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function e(t){return 1===t.length&&(t=function(t){return function(e,r){return n(t(e),r)}}(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}}function r(t,n){return[t,n]}function i(t){return null===t?NaN:+t}function o(t,n){var e,r,o=t.length,a=0,u=-1,f=0,c=0;if(null==n)for(;++u<o;)isNaN(e=i(t[u]))||(c+=(r=e-f)*(e-(f+=r/++a)));else for(;++u<o;)isNaN(e=i(n(t[u],u,t)))||(c+=(r=e-f)*(e-(f+=r/++a)));if(a>1)return c/(a-1)}function a(t,n){var e=o(t,n);return e?Math.sqrt(e):e}function u(t,n){var e,r,i,o=t.length,a=-1;if(null==n){for(;++a<o;)if(null!=(e=t[a])&&e>=e)for(r=i=e;++a<o;)null!=(e=t[a])&&(r>e&&(r=e),i<e&&(i=e))}else for(;++a<o;)if(null!=(e=n(t[a],a,t))&&e>=e)for(r=i=e;++a<o;)null!=(e=n(t[a],a,t))&&(r>e&&(r=e),i<e&&(i=e));return[r,i]}function f(t){return function(){return t}}function c(t){return t}function s(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}function l(t,n,e){var r,i,o,a,u=-1;if(n=+n,t=+t,e=+e,t===n&&e>0)return[t];if((r=n<t)&&(i=t,t=n,n=i),0===(a=h(t,n,e))||!isFinite(a))return[];if(a>0)for(t=Math.ceil(t/a),n=Math.floor(n/a),o=new Array(i=Math.ceil(n-t+1));++u<i;)o[u]=(t+u)*a;else for(t=Math.floor(t*a),n=Math.ceil(n*a),o=new Array(i=Math.ceil(t-n+1));++u<i;)o[u]=(t-u)/a;return r&&o.reverse(),o}function h(t,n,e){var r=(n-t)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),o=r/Math.pow(10,i);return i>=0?(o>=is?10:o>=os?5:o>=as?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(o>=is?10:o>=os?5:o>=as?2:1)}function d(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=is?i*=10:o>=os?i*=5:o>=as&&(i*=2),n<t?-i:i}function p(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1}function v(t,n,e){if(null==e&&(e=i),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,o=(r-1)*n,a=Math.floor(o),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(o-a)}}function g(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&e>r&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&e>r&&(r=e);return r}function y(t){for(var n,e,r,i=t.length,o=-1,a=0;++o<i;)a+=t[o].length;for(e=new Array(a);--i>=0;)for(n=(r=t[i]).length;--n>=0;)e[--a]=r[n];return e}function _(t,n){var e,r,i=t.length,o=-1;if(null==n){for(;++o<i;)if(null!=(e=t[o])&&e>=e)for(r=e;++o<i;)null!=(e=t[o])&&r>e&&(r=e)}else for(;++o<i;)if(null!=(e=n(t[o],o,t))&&e>=e)for(r=e;++o<i;)null!=(e=n(t[o],o,t))&&r>e&&(r=e);return r}function b(t){if(!(i=t.length))return[];for(var n=-1,e=_(t,m),r=new Array(e);++n<e;)for(var i,o=-1,a=r[n]=new Array(i);++o<i;)a[o]=t[o][n];return r}function m(t){return t.length}function x(t){return t}function w(t){return"translate("+(t+.5)+",0)"}function M(t){return"translate(0,"+(t+.5)+")"}function A(){return!this.__axis}function T(t,n){function e(e){var h=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,d=null==o?n.tickFormat?n.tickFormat.apply(n,r):x:o,p=Math.max(a,0)+f,v=n.range(),g=+v[0]+.5,y=+v[v.length-1]+.5,_=(n.bandwidth?function(t){var n=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(n=Math.round(n)),function(e){return+t(e)+n}}:function(t){return function(n){return+t(n)}})(n.copy()),b=e.selection?e.selection():e,m=b.selectAll(".domain").data([null]),w=b.selectAll(".tick").data(h,n).order(),M=w.exit(),T=w.enter().append("g").attr("class","tick"),N=w.select("line"),S=w.select("text");m=m.merge(m.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),w=w.merge(T),N=N.merge(T.append("line").attr("stroke","#000").attr(s+"2",c*a)),S=S.merge(T.append("text").attr("fill","#000").attr(s,c*p).attr("dy",t===fs?"0em":t===ss?"0.71em":"0.32em")),e!==b&&(m=m.transition(e),w=w.transition(e),N=N.transition(e),S=S.transition(e),M=M.transition(e).attr("opacity",hs).attr("transform",function(t){return isFinite(t=_(t))?l(t):this.getAttribute("transform")}),T.attr("opacity",hs).attr("transform",function(t){var n=this.parentNode.__axis;return l(n&&isFinite(n=n(t))?n:_(t))})),M.remove(),m.attr("d",t===ls||t==cs?"M"+c*u+","+g+"H0.5V"+y+"H"+c*u:"M"+g+","+c*u+"V0.5H"+y+"V"+c*u),w.attr("opacity",1).attr("transform",function(t){return l(_(t))}),N.attr(s+"2",c*a),S.attr(s,c*p).text(d),b.filter(A).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===cs?"start":t===ls?"end":"middle"),b.each(function(){this.__axis=_})}var r=[],i=null,o=null,a=6,u=6,f=3,c=t===fs||t===ls?-1:1,s=t===ls||t===cs?"x":"y",l=t===fs||t===ss?w:M;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=us.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:us.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:us.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(a=u=+t,e):a},e.tickSizeInner=function(t){return arguments.length?(a=+t,e):a},e.tickSizeOuter=function(t){return arguments.length?(u=+t,e):u},e.tickPadding=function(t){return arguments.length?(f=+t,e):f},e}function N(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new S(r)}function S(t){this._=t}function E(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=ds,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function k(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),vs.hasOwnProperty(n)?{space:vs[n],local:t}:t}function C(t){var n=k(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===ps&&n.documentElement.namespaceURI===ps?n.createElement(t):n.createElementNS(e,t)}})(n)}function P(){}function z(t){return null==t?P:function(){return this.querySelector(t)}}function R(){return[]}function L(t){return null==t?R:function(){return this.querySelectorAll(t)}}function D(t){return new Array(t.length)}function U(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function q(t,n,e,r,i,o){for(var a,u=0,f=n.length,c=o.length;u<c;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new U(t,o[u]);for(;u<f;++u)(a=n[u])&&(i[u]=a)}function O(t,n,e,r,i,o,a){var u,f,c,s={},l=n.length,h=o.length,d=new Array(l);for(u=0;u<l;++u)(f=n[u])&&(d[u]=c=ms+a.call(f,f.__data__,u,n),c in s?i[u]=f:s[c]=f);for(u=0;u<h;++u)(f=s[c=ms+a.call(t,o[u],u,o)])?(r[u]=f,f.__data__=o[u],s[c]=null):e[u]=new U(t,o[u]);for(u=0;u<l;++u)(f=n[u])&&s[d[u]]===f&&(i[u]=f)}function Y(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function B(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function F(t,n){return t.style.getPropertyValue(n)||B(t).getComputedStyle(t,null).getPropertyValue(n)}function I(t){return t.trim().split(/^|\s+/)}function j(t){return t.classList||new H(t)}function H(t){this._node=t,this._names=I(t.getAttribute("class")||"")}function X(t,n){for(var e=j(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function G(t,n){for(var e=j(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function V(){this.textContent=""}function $(){this.innerHTML=""}function W(){this.nextSibling&&this.parentNode.appendChild(this)}function Z(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Q(){return null}function J(){var t=this.parentNode;t&&t.removeChild(this)}function K(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function tt(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}function nt(t,n,e){return t=et(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function et(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function rt(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function it(t,n,e){var r=xs.hasOwnProperty(t.type)?nt:et;return function(i,o,a){var u,f=this.__on,c=r(n,o,a);if(f)for(var s=0,l=f.length;s<l;++s)if((u=f[s]).type===t.type&&u.name===t.name)return this.removeEventListener(u.type,u.listener,u.capture),this.addEventListener(u.type,u.listener=c,u.capture=e),void(u.value=n);this.addEventListener(t.type,c,e),u={type:t.type,name:t.name,value:n,listener:c,capture:e},f?f.push(u):this.__on=[u]}}function ot(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function at(t,n,e){var r=B(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function ut(t,n){this._groups=t,this._parents=n}function ft(){return new ut(document.documentElement,ws)}function ct(t){return"string"==typeof t?new ut(document.querySelector(t),[document.documentElement]):new ut(t,ws)}function st(){return new lt}function lt(){this._="@"+(++Ms).toString(36)}function ht(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e}function dt(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]}function pt(t){var n=ht();return n.changedTouches&&(n=n.changedTouches[0]),dt(t,n)}function vt(t,n,e){arguments.length<3&&(e=n,n=ht().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return dt(t,r);return null}function gt(){t.event.stopImmediatePropagation()}function yt(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function _t(t){var n=t.document.documentElement,e=ct(t).on("dragstart.drag",yt,!0);"onselectstart"in n?e.on("selectstart.drag",yt,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function bt(t,n){var e=t.document.documentElement,r=ct(t).on("dragstart.drag",null);n&&(r.on("click.drag",yt,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function mt(t){return function(){return t}}function xt(t,n,e,r,i,o,a,u,f,c){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=a,this.dx=u,this.dy=f,this._=c}function wt(){return!t.event.button}function Mt(){return this.parentNode}function At(n){return null==n?{x:t.event.x,y:t.event.y}:n}function Tt(){return"ontouchstart"in this}function Nt(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function St(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Et(){}function kt(t){var n;return t=(t+"").trim().toLowerCase(),(n=Ss.exec(t))?(n=parseInt(n[1],16),new Lt(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Es.exec(t))?Ct(parseInt(n[1],16)):(n=ks.exec(t))?new Lt(n[1],n[2],n[3],1):(n=Cs.exec(t))?new Lt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ps.exec(t))?Pt(n[1],n[2],n[3],n[4]):(n=zs.exec(t))?Pt(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Rs.exec(t))?Ut(n[1],n[2]/100,n[3]/100,1):(n=Ls.exec(t))?Ut(n[1],n[2]/100,n[3]/100,n[4]):Ds.hasOwnProperty(t)?Ct(Ds[t]):"transparent"===t?new Lt(NaN,NaN,NaN,0):null}function Ct(t){return new Lt(t>>16&255,t>>8&255,255&t,1)}function Pt(t,n,e,r){return r<=0&&(t=n=e=NaN),new Lt(t,n,e,r)}function zt(t){return t instanceof Et||(t=kt(t)),t?(t=t.rgb(),new Lt(t.r,t.g,t.b,t.opacity)):new Lt}function Rt(t,n,e,r){return 1===arguments.length?zt(t):new Lt(t,n,e,null==r?1:r)}function Lt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Dt(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Ut(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Ot(t,n,e,r)}function qt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Ot)return new Ot(t.h,t.s,t.l,t.opacity);if(t instanceof Et||(t=kt(t)),!t)return new Ot;if(t instanceof Ot)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,f=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=f<.5?o+i:2-o-i,a*=60):u=f>0&&f<1?0:a,new Ot(a,u,f,t.opacity)}(t):new Ot(t,n,e,null==r?1:r)}function Ot(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Yt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Bt(t){if(t instanceof It)return new It(t.l,t.a,t.b,t.opacity);if(t instanceof Wt){if(isNaN(t.h))return new It(t.l,0,0,t.opacity);var n=t.h*Us;return new It(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Lt||(t=zt(t));var e,r,i=Gt(t.r),o=Gt(t.g),a=Gt(t.b),u=jt((.2225045*i+.7168786*o+.0606169*a)/Ys);return i===o&&o===a?e=r=u:(e=jt((.4360747*i+.3850649*o+.1430804*a)/Os),r=jt((.0139322*i+.0971045*o+.7141733*a)/Bs)),new It(116*u-16,500*(e-u),200*(u-r),t.opacity)}function Ft(t,n,e,r){return 1===arguments.length?Bt(t):new It(t,n,e,null==r?1:r)}function It(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function jt(t){return t>Hs?Math.pow(t,1/3):t/js+Fs}function Ht(t){return t>Is?t*t*t:js*(t-Fs)}function Xt(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Gt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Vt(t){if(t instanceof Wt)return new Wt(t.h,t.c,t.l,t.opacity);if(t instanceof It||(t=Bt(t)),0===t.a&&0===t.b)return new Wt(NaN,0,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*qs;return new Wt(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function $t(t,n,e,r){return 1===arguments.length?Vt(t):new Wt(t,n,e,null==r?1:r)}function Wt(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Zt(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Qt)return new Qt(t.h,t.s,t.l,t.opacity);t instanceof Lt||(t=zt(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Zs*r+$s*n-Ws*e)/(Zs+$s-Ws),o=r-i,a=(Vs*(e-i)-Xs*o)/Gs,u=Math.sqrt(a*a+o*o)/(Vs*i*(1-i)),f=u?Math.atan2(a,o)*qs-120:NaN;return new Qt(f<0?f+360:f,u,i,t.opacity)}(t):new Qt(t,n,e,null==r?1:r)}function Qt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Jt(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function Kt(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return Jt((e-r/n)*n,a,i,o,u)}}function tn(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return Jt((e-r/n)*n,i,o,a,u)}}function nn(t){return function(){return t}}function en(t,n){return function(e){return t+e*n}}function rn(t,n){var e=n-t;return e?en(t,e>180||e<-180?e-360*Math.round(e/360):e):nn(isNaN(t)?n:t)}function on(t){return 1==(t=+t)?an:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):nn(isNaN(n)?e:n)}}function an(t,n){var e=n-t;return e?en(t,e):nn(isNaN(t)?n:t)}function un(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=Rt(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}function fn(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=dn(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}function cn(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}}function sn(t,n){return t=+t,n-=t,function(e){return t+n*e}}function ln(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=dn(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}function hn(t,n){var e,r,i,o=al.lastIndex=ul.lastIndex=0,a=-1,u=[],f=[];for(t+="",n+="";(e=al.exec(t))&&(r=ul.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,f.push({i:a,x:sn(e,r)})),o=ul.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?f[0]?function(t){return function(n){return t(n)+""}}(f[0].x):function(t){return function(){return t}}(n):(n=f.length,function(t){for(var e,r=0;r<n;++r)u[(e=f[r]).i]=e.x(t);return u.join("")})}function dn(t,n){var e,r=typeof n;return null==n||"boolean"===r?nn(n):("number"===r?sn:"string"===r?(e=kt(n))?(n=e,rl):hn:n instanceof kt?rl:n instanceof Date?cn:Array.isArray(n)?fn:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?ln:sn)(t,n)}function pn(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}}function vn(t,n,e,r,i,o){var a,u,f;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(f=t*e+n*r)&&(e-=t*f,r-=n*f),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,f/=u),t*r<n*e&&(t=-t,n=-n,f=-f,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*fl,skewX:Math.atan(f)*fl,scaleX:a,scaleY:u}}function gn(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],f=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var f=a.push("translate(",null,n,null,e);u.push({i:f-4,x:sn(t,i)},{i:f-2,x:sn(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,f),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:sn(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,f),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:sn(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,f),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:sn(t,e)},{i:u-2,x:sn(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,f),o=a=null,function(t){for(var n,e=-1,r=f.length;++e<r;)u[(n=f[e]).i]=n.x(t);return u.join("")}}}function yn(t){return((t=Math.exp(t))+1/t)/2}function _n(t,n){var e,r,i=t[0],o=t[1],a=t[2],u=n[0],f=n[1],c=n[2],s=u-i,l=f-o,h=s*s+l*l;if(h<vl)r=Math.log(c/a)/hl,e=function(t){return[i+t*s,o+t*l,a*Math.exp(hl*t*r)]};else{var d=Math.sqrt(h),p=(c*c-a*a+pl*h)/(2*a*dl*d),v=(c*c-a*a-pl*h)/(2*c*dl*d),g=Math.log(Math.sqrt(p*p+1)-p),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-g)/hl,e=function(t){var n=t*r,e=yn(g),u=a/(dl*d)*(e*function(t){return((t=Math.exp(2*t))-1)/(t+1)}(hl*n+g)-function(t){return((t=Math.exp(t))-1/t)/2}(g));return[i+u*s,o+u*l,a*e/yn(hl*n+g)]}}return e.duration=1e3*r,e}function bn(t){return function(n,e){var r=t((n=qt(n)).h,(e=qt(e)).h),i=an(n.s,e.s),o=an(n.l,e.l),a=an(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=a(t),n+""}}}function mn(t){return function(n,e){var r=t((n=$t(n)).h,(e=$t(e)).h),i=an(n.c,e.c),o=an(n.l,e.l),a=an(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=a(t),n+""}}}function xn(t){return function n(e){function r(n,r){var i=t((n=Zt(n)).h,(r=Zt(r)).h),o=an(n.s,r.s),a=an(n.l,r.l),u=an(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=a(Math.pow(t,e)),n.opacity=u(t),n+""}}return e=+e,r.gamma=n,r}(1)}function wn(){return Sl||(Cl(Mn),Sl=kl.now()+El)}function Mn(){Sl=0}function An(){this._call=this._time=this._next=null}function Tn(t,n,e){var r=new An;return r.restart(t,n,e),r}function Nn(){wn(),++wl;for(var t,n=nl;n;)(t=Sl-n._time)>=0&&n._call.call(null,t),n=n._next;--wl}function Sn(){Sl=(Nl=kl.now())+El,wl=Ml=0;try{Nn()}finally{wl=0,function(){var t,n,e=nl,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:nl=n);el=t,kn(r)}(),Sl=0}}function En(){var t=kl.now(),n=t-Nl;n>Tl&&(El-=n,Nl=t)}function kn(t){if(!wl){Ml&&(Ml=clearTimeout(Ml));t-Sl>24?(t<1/0&&(Ml=setTimeout(Sn,t-kl.now()-El)),Al&&(Al=clearInterval(Al))):(Al||(Nl=kl.now(),Al=setInterval(En,Tl)),wl=1,Cl(Sn))}}function Cn(t,n,e){var r=new An;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r}function Pn(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};(function(t,n,e){function r(f){var c,s,l,h;if(e.state!==Ll)return o();for(c in u)if((h=u[c]).name===e.name){if(h.state===Ul)return Cn(r);h.state===ql?(h.state=Yl,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete u[c]):+c<n&&(h.state=Yl,h.timer.stop(),delete u[c])}if(Cn(function(){e.state===Ul&&(e.state=ql,e.timer.restart(i,e.delay,e.time),i(f))}),e.state=Dl,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Dl){for(e.state=Ul,a=new Array(l=e.tween.length),c=0,s=-1;c<l;++c)(h=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(a[++s]=h);a.length=s+1}}function i(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(o),e.state=Ol,1),i=-1,u=a.length;++i<u;)a[i].call(null,r);e.state===Ol&&(e.on.call("end",t,t.__data__,e.index,e.group),o())}function o(){e.state=Yl,e.timer.stop(),delete u[n];for(var r in u)return;delete t.__transition}var a,u=t.__transition;u[n]=e,e.timer=Tn(function(t){e.state=Ll,e.timer.restart(r,e.delay,e.time),e.delay<=t&&r(t-e.delay)},0,e.time)})(t,e,{name:n,index:r,group:i,on:Pl,tween:zl,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Rl})}function zn(t,n){var e=Ln(t,n);if(e.state>Rl)throw new Error("too late; already scheduled");return e}function Rn(t,n){var e=Ln(t,n);if(e.state>Dl)throw new Error("too late; already started");return e}function Ln(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Dn(t,n){var e,r,i,o=t.__transition,a=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>Dl&&e.state<Ol,e.state=Yl,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Un(t,n,e){var r=t._id;return t.each(function(){var t=Rn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return Ln(t,r).value[n]}}function qn(t,n){var e;return("number"==typeof n?sn:n instanceof kt?rl:(e=kt(n))?(n=e,rl):hn)(t,n)}function On(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Yn(t){return ft().transition(t)}function Bn(){return++Fl}function Fn(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function In(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function jn(t){return(1-Math.cos(Gl*t))/2}function Hn(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function Xn(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function Gn(t){return(t=+t)<$l?rh*t*t:t<Zl?rh*(t-=Wl)*t+Ql:t<Kl?rh*(t-=Jl)*t+th:rh*(t-=nh)*t+eh}function Vn(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return lh.time=wn(),lh;return e}function $n(t){return function(){return t}}function Wn(){t.event.stopImmediatePropagation()}function Zn(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function Qn(t){return{type:t}}function Jn(){return!t.event.button}function Kn(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function te(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function ne(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function ee(n){function e(t){var e=t.property("__brush",u).selectAll(".overlay").data([Qn("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",mh.overlay).merge(e).each(function(){var t=te(this).extent;ct(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([Qn("selection")]).enter().append("rect").attr("class","selection").attr("cursor",mh.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return mh[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",a)}function r(){var t=ct(this),n=te(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-h/2:n[0][0]-h/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-h/2:n[0][1]-h/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+h:h}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+h:h})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function a(){function e(){var t=pt(w);!L||m||x||(Math.abs(t[0]-U[0])>Math.abs(t[1]-U[1])?x=!0:m=!0),U=t,b=!0,Zn(),o()}function o(){var t;switch(y=U[0]-D[0],_=U[1]-D[1],A){case ph:case dh:T&&(y=Math.max(C-u,Math.min(z-d,y)),c=u+y,p=d+y),N&&(_=Math.max(P-l,Math.min(R-v,_)),h=l+_,g=v+_);break;case vh:T<0?(y=Math.max(C-u,Math.min(z-u,y)),c=u+y,p=d):T>0&&(y=Math.max(C-d,Math.min(z-d,y)),c=u,p=d+y),N<0?(_=Math.max(P-l,Math.min(R-l,_)),h=l+_,g=v):N>0&&(_=Math.max(P-v,Math.min(R-v,_)),h=l,g=v+_);break;case gh:T&&(c=Math.max(C,Math.min(z,u-y*T)),p=Math.max(C,Math.min(z,d+y*T))),N&&(h=Math.max(P,Math.min(R,l-_*N)),g=Math.max(P,Math.min(R,v+_*N)))}p<c&&(T*=-1,t=u,u=d,d=t,t=c,c=p,p=t,M in xh&&Y.attr("cursor",mh[M=xh[M]])),g<h&&(N*=-1,t=l,l=v,v=t,t=h,h=g,g=t,M in wh&&Y.attr("cursor",mh[M=wh[M]])),S.selection&&(k=S.selection),m&&(c=k[0][0],p=k[1][0]),x&&(h=k[0][1],g=k[1][1]),k[0][0]===c&&k[0][1]===h&&k[1][0]===p&&k[1][1]===g||(S.selection=[[c,h],[p,g]],r.call(w),q.brush())}function a(){if(Wn(),t.event.touches){if(t.event.touches.length)return;f&&clearTimeout(f),f=setTimeout(function(){f=null},500),O.on("touchmove.brush touchend.brush touchcancel.brush",null)}else bt(t.event.view,b),B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);O.attr("pointer-events","all"),Y.attr("cursor",mh.overlay),S.selection&&(k=S.selection),ne(k)&&(S.selection=null,r.call(w)),q.end()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return Zn()}else if(f)return;if(s.apply(this,arguments)){var u,c,l,h,d,p,v,g,y,_,b,m,x,w=this,M=t.event.target.__data__.type,A="selection"===(t.event.metaKey?M="overlay":M)?dh:t.event.altKey?gh:vh,T=n===_h?null:Mh[M],N=n===yh?null:Ah[M],S=te(w),E=S.extent,k=S.selection,C=E[0][0],P=E[0][1],z=E[1][0],R=E[1][1],L=T&&N&&t.event.shiftKey,D=pt(w),U=D,q=i(w,arguments).beforestart();"overlay"===M?S.selection=k=[[u=n===_h?C:D[0],l=n===yh?P:D[1]],[d=n===_h?z:u,v=n===yh?R:l]]:(u=k[0][0],l=k[0][1],d=k[1][0],v=k[1][1]),c=u,h=l,p=d,g=v;var O=ct(w).attr("pointer-events","none"),Y=O.selectAll(".overlay").attr("cursor",mh[M]);if(t.event.touches)O.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",a,!0);else{var B=ct(t.event.view).on("keydown.brush",function(){switch(t.event.keyCode){case 16:L=T&&N;break;case 18:A===vh&&(T&&(d=p-y*T,u=c+y*T),N&&(v=g-_*N,l=h+_*N),A=gh,o());break;case 32:A!==vh&&A!==gh||(T<0?d=p-y:T>0&&(u=c-y),N<0?v=g-_:N>0&&(l=h-_),A=ph,Y.attr("cursor",mh.selection),o());break;default:return}Zn()},!0).on("keyup.brush",function(){switch(t.event.keyCode){case 16:L&&(m=x=L=!1,o());break;case 18:A===gh&&(T<0?d=p:T>0&&(u=c),N<0?v=g:N>0&&(l=h),A=vh,o());break;case 32:A===ph&&(t.event.altKey?(T&&(d=p-y*T,u=c+y*T),N&&(v=g-_*N,l=h+_*N),A=gh):(T<0?d=p:T>0&&(u=c),N<0?v=g:N>0&&(l=h),A=vh),Y.attr("cursor",mh[M]),o());break;default:return}Zn()},!0).on("mousemove.brush",e,!0).on("mouseup.brush",a,!0);_t(t.event.view)}Wn(),Dn(w),r.call(w),q.start()}}function u(){var t=this.__brush||{selection:null};return t.extent=c.apply(this,arguments),t.dim=n,t}var f,c=Kn,s=Jn,l=N(e,"start","brush","end"),h=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){a.selection=1===t&&ne(c)?null:s(t),r.call(o),u.brush()}var o=this,a=o.__brush,u=i(o,arguments),f=a.selection,c=n.input("function"==typeof e?e.apply(this,arguments):e,a.extent),s=dn(f,c);return f&&c?t:t(1)}):t.each(function(){var t=arguments,o=this.__brush,a=n.input("function"==typeof e?e.apply(this,t):e,o.extent),u=i(this,t).beforestart();Dn(this),o.selection=null==a||ne(a)?null:a,r.call(this),u.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,this.emit("end")),this},emit:function(t){ot(new function(t,n,e){this.target=t,this.type=n,this.selection=e}(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(c="function"==typeof t?t:$n([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):c},e.filter=function(t){return arguments.length?(s="function"==typeof t?t:$n(!!t),e):s},e.handleSize=function(t){return arguments.length?(h=+t,e):h},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function re(t){return function(){return t}}function ie(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function oe(){return new ie}function ae(t){return t.source}function ue(t){return t.target}function fe(t){return t.radius}function ce(t){return t.startAngle}function se(t){return t.endAngle}function le(){}function he(t,n){var e=new le;if(t instanceof le)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var a in t)e.set(a,t[a]);return e}function de(){return{}}function pe(t,n,e){t[n]=e}function ve(){return he()}function ge(t,n,e){t.set(n,e)}function ye(){}function _e(t,n){var e=new ye;if(t instanceof ye)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function be(t,n){return t-n}function me(t){return function(){return t}}function xe(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=function(t,n){for(var e=n[0],r=n[1],i=-1,o=0,a=t.length,u=a-1;o<a;u=o++){var f=t[o],c=f[0],s=f[1],l=t[u],h=l[0],d=l[1];if(function(t,n,e){var r;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&function(t,n,e){return t<=n&&n<=e||e<=n&&n<=t}(t[r=+(t[0]===n[0])],e[r],n[r])}(f,l,n))return 0;s>r!=d>r&&e<(h-c)*(r-s)/(d-s)+c&&(i=-i)}return i}(t,n[r]))return e;return 0}function we(){}function Me(){function t(t){var e=a(t);if(Array.isArray(e))e=e.slice().sort(be);else{var r=u(t),i=r[0],o=r[1];e=d(i,o,e),e=s(Math.floor(i/e)*e,Math.floor(o/e)*e,e)}return e.map(function(e){return n(t,e)})}function n(t,n){var r=[],a=[];return function(t,n,r){function a(t){var n,i,o=[t[0][0]+u,t[0][1]+f],a=[t[1][0]+u,t[1][1]+f],c=e(o),s=e(a);(n=p[c])?(i=d[s])?(delete p[n.end],delete d[i.start],n===i?(n.ring.push(a),r(n.ring)):d[n.start]=p[i.end]={start:n.start,end:i.end,ring:n.ring.concat(i.ring)}):(delete p[n.end],n.ring.push(a),p[n.end=s]=n):(n=d[s])?(i=p[c])?(delete d[n.start],delete p[i.end],n===i?(n.ring.push(a),r(n.ring)):d[i.start]=p[n.end]={start:i.start,end:n.end,ring:i.ring.concat(n.ring)}):(delete d[n.start],n.ring.unshift(o),d[n.start=c]=n):d[c]=p[s]={start:c,end:s,ring:[o,a]}}var u,f,c,s,l,h,d=new Array,p=new Array;u=f=-1,s=t[0]>=n,qh[s<<1].forEach(a);for(;++u<i-1;)c=s,s=t[u+1]>=n,qh[c|s<<1].forEach(a);qh[s<<0].forEach(a);for(;++f<o-1;){for(u=-1,s=t[f*i+i]>=n,l=t[f*i]>=n,qh[s<<1|l<<2].forEach(a);++u<i-1;)c=s,s=t[f*i+i+u+1]>=n,h=l,l=t[f*i+u+1]>=n,qh[c|s<<1|l<<2|h<<3].forEach(a);qh[s|l<<3].forEach(a)}u=-1,l=t[f*i]>=n,qh[l<<2].forEach(a);for(;++u<i-1;)h=l,l=t[f*i+u+1]>=n,qh[l<<2|h<<3].forEach(a);qh[l<<3].forEach(a)}(t,n,function(e){f(e,t,n),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n<e;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return r}(e)>0?r.push([e]):a.push(e)}),a.forEach(function(t){for(var n,e=0,i=r.length;e<i;++e)if(-1!==xe((n=r[e])[0],t))return void n.push(t)}),{type:"MultiPolygon",value:n,coordinates:r}}function e(t){return 2*t[0]+t[1]*(i+1)*4}function r(t,n,e){t.forEach(function(t){var r,a=t[0],u=t[1],f=0|a,c=0|u,s=n[c*i+f];a>0&&a<i&&f===a&&(r=n[c*i+f-1],t[0]=a+(e-r)/(s-r)-.5),u>0&&u<o&&c===u&&(r=n[(c-1)*i+f],t[1]=u+(e-r)/(s-r)-.5)})}var i=1,o=1,a=p,f=r;return t.contour=n,t.size=function(n){if(!arguments.length)return[i,o];var e=Math.ceil(n[0]),r=Math.ceil(n[1]);if(!(e>0&&r>0))throw new Error("invalid size");return i=e,o=r,t},t.thresholds=function(n){return arguments.length?(a="function"==typeof n?n:Array.isArray(n)?me(Uh.call(n)):me(n),t):a},t.smooth=function(n){return arguments.length?(f=n?r:we,t):f===r},t}function Ae(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<i;++a)for(var u=0,f=0;u<r+e;++u)u<r&&(f+=t.data[u+a*r]),u>=e&&(u>=o&&(f-=t.data[u-o+a*r]),n.data[u-e+a*r]=f/Math.min(u+1,r-1+o-u,o))}function Te(t,n,e){for(var r=t.width,i=t.height,o=1+(e<<1),a=0;a<r;++a)for(var u=0,f=0;u<i+e;++u)u<i&&(f+=t.data[a+u*r]),u>=e&&(u>=o&&(f-=t.data[a+(u-o)*r]),n.data[a+(u-e)*r]=f/Math.min(u+1,i-1+o-u,o))}function Ne(t){return t[0]}function Se(t){return t[1]}function Ee(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function ke(t){function n(t,n){function e(){if(c)return Yh;if(s)return s=!1,Oh;var n,e,r=u;if(t.charCodeAt(r)===Bh){for(;u++<a&&t.charCodeAt(u)!==Bh||t.charCodeAt(++u)===Bh;);return(n=u)>=a?c=!0:(e=t.charCodeAt(u++))===Fh?s=!0:e===Ih&&(s=!0,t.charCodeAt(u)===Fh&&++u),t.slice(r+1,n-1).replace(/""/g,'"')}for(;u<a;){if((e=t.charCodeAt(n=u++))===Fh)s=!0;else if(e===Ih)s=!0,t.charCodeAt(u)===Fh&&++u;else if(e!==o)continue;return t.slice(r,n)}return c=!0,t.slice(r,a)}var r,i=[],a=t.length,u=0,f=0,c=a<=0,s=!1;for(t.charCodeAt(a-1)===Fh&&--a,t.charCodeAt(a-1)===Ih&&--a;(r=e())!==Yh;){for(var l=[];r!==Oh&&r!==Yh;)l.push(r),r=e();n&&null==(l=n(l,f++))||i.push(l)}return i}function e(n){return n.map(r).join(t)}function r(t){return null==t?"":i.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}var i=new RegExp('["'+t+"\n\r]"),o=t.charCodeAt(0);return{parse:function(t,e){var r,i,o=n(t,function(t,n){if(r)return r(t,n-1);i=t,r=e?function(t,n){var e=Ee(t);return function(r,i){return n(e(r),i,t)}}(t,e):Ee(t)});return o.columns=i||[],o},parseRows:n,format:function(n,e){return null==e&&(e=function(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}(n)),[e.map(r).join(t)].concat(n.map(function(n){return e.map(function(t){return r(n[t])}).join(t)})).join("\n")},formatRows:function(t){return t.map(e).join("\n")}}}function Ce(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function Pe(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function ze(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Re(t,n){return fetch(t,n).then(ze)}function Le(t){return function(n,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=void 0),Re(n,e).then(function(n){return t(n,r)})}}function De(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.json()}function Ue(t){return function(n,e){return Re(n,e).then(function(n){return(new DOMParser).parseFromString(n,t)})}}function qe(t){return function(){return t}}function Oe(){return 1e-6*(Math.random()-.5)}function Ye(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,f,c,s,l,h,d=t._root,p={data:r},v=t._x0,g=t._y0,y=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a,i=d,!(d=d[l=s<<1|c]))return i[l]=p,t;if(u=+t._x.call(null,d.data),f=+t._y.call(null,d.data),n===u&&e===f)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(c=n>=(o=(v+y)/2))?v=o:y=o,(s=e>=(a=(g+_)/2))?g=a:_=a}while((l=s<<1|c)==(h=(f>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Be(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Fe(t){return t[0]}function Ie(t){return t[1]}function je(t,n,e){var r=new He(null==n?Fe:n,null==e?Ie:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function He(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Xe(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function Ge(t){return t.x+t.vx}function Ve(t){return t.y+t.vy}function $e(t){return t.index}function We(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function Ze(t){return t.x}function Qe(t){return t.y}function Je(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Ke(t){return(t=Je(Math.abs(t)))?t[1]:NaN}function tr(t){return new nr(t)}function nr(t){if(!(n=ud.exec(t)))throw new Error("invalid format: "+t);var n;this.fill=n[1]||" ",this.align=n[2]||">",this.sign=n[3]||"-",this.symbol=n[4]||"",this.zero=!!n[5],this.width=n[6]&&+n[6],this.comma=!!n[7],this.precision=n[8]&&+n[8].slice(1),this.trim=!!n[9],this.type=n[10]||""}function er(t,n){var e=Je(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}function rr(t){return t}function ir(t){function n(t){function n(t){var n,r,a,s=y,x=_;if("c"===g)x=b(t)+x,t="";else{var w=(t=+t)<0;if(t=b(Math.abs(t),p),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(i>0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),w&&0==+t&&(w=!1),s=(w?"("===c?c:"-":"-"===c||"("===c?"":c)+s,x=("s"===g?ld[8+fd/3]:"")+x+(w&&"("===c?")":""),m)for(n=-1,r=t.length;++n<r;)if(48>(a=t.charCodeAt(n))||a>57){x=(46===a?i+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}d&&!l&&(t=e(t,1/0));var M=s.length+t.length+x.length,A=M<h?new Array(h-M+1).join(u):"";switch(d&&l&&(t=e(A+t,A.length?h-x.length:1/0),A=""),f){case"<":t=s+t+x+A;break;case"=":t=s+A+t+x;break;case"^":t=A.slice(0,M=A.length>>1)+s+t+x+A.slice(M);break;default:t=A+s+t+x}return o(t)}var u=(t=tr(t)).fill,f=t.align,c=t.sign,s=t.symbol,l=t.zero,h=t.width,d=t.comma,p=t.precision,v=t.trim,g=t.type;"n"===g?(d=!0,g="g"):sd[g]||(null==p&&(p=12),v=!0,g="g"),(l||"0"===u&&"="===f)&&(l=!0,u="0",f="=");var y="$"===s?r[0]:"#"===s&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",_="$"===s?r[1]:/[%p]/.test(g)?a:"",b=sd[g],m=/[defgprs%]/.test(g);return p=null==p?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),n.toString=function(){return t+""},n}var e=t.grouping&&t.thousands?function(t,n){return function(e,r){for(var i=e.length,o=[],a=0,u=t[0],f=0;i>0&&u>0&&(f+u+1>r&&(u=Math.max(1,r-f)),o.push(e.substring(i-=u,i+u)),!((f+=u+1)>r));)u=t[a=(a+1)%t.length];return o.reverse().join(n)}}(t.grouping,t.thousands):rr,r=t.currency,i=t.decimal,o=t.numerals?function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}}(t.numerals):rr,a=t.percent||"%";return{format:n,formatPrefix:function(t,e){var r=n((t=tr(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Ke(e)/3))),o=Math.pow(10,-i),a=ld[8+i/3];return function(t){return r(o*t)+a}}}}function or(n){return cd=ir(n),t.format=cd.format,t.formatPrefix=cd.formatPrefix,cd}function ar(t){return Math.max(0,-Ke(Math.abs(t)))}function ur(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ke(n)/3)))-Ke(Math.abs(t)))}function fr(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Ke(n)-Ke(t))+1}function cr(){return new sr}function sr(){this.reset()}function lr(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function hr(t){return t>1?0:t<-1?Gd:Math.acos(t)}function dr(t){return t>1?Vd:t<-1?-Vd:Math.asin(t)}function pr(t){return(t=ap(t/2))*t}function vr(){}function gr(t,n){t&&lp.hasOwnProperty(t.type)&&lp[t.type](t,n)}function yr(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function _r(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)yr(t[e],n,1);n.polygonEnd()}function br(t,n){t&&sp.hasOwnProperty(t.type)?sp[t.type](t,n):gr(t,n)}function mr(){pp.point=wr}function xr(){Mr(hd,dd)}function wr(t,n){pp.point=Mr,hd=t,dd=n,pd=t*=Qd,vd=np(n=(n*=Qd)/2+$d),gd=ap(n)}function Mr(t,n){n=(n*=Qd)/2+$d;var e=(t*=Qd)-pd,r=e>=0?1:-1,i=r*e,o=np(n),a=ap(n),u=gd*a,f=vd*o+u*np(i),c=u*r*ap(i);hp.add(tp(c,f)),pd=t,vd=o,gd=a}function Ar(t){return[tp(t[1],t[0]),dr(t[2])]}function Tr(t){var n=t[0],e=t[1],r=np(e);return[r*np(n),r*ap(n),ap(e)]}function Nr(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Sr(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Er(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function kr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Cr(t){var n=fp(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Pr(t,n){Td.push(Nd=[yd=t,bd=t]),n<_d&&(_d=n),n>md&&(md=n)}function zr(t,n){var e=Tr([t*Qd,n*Qd]);if(Ad){var r=Sr(Ad,e),i=Sr([r[1],-r[0],0],r);Cr(i),i=Ar(i);var o,a=t-xd,u=a>0?1:-1,f=i[0]*Zd*u,c=Jd(a)>180;c^(u*xd<f&&f<u*t)?(o=i[1]*Zd)>md&&(md=o):(f=(f+360)%360-180,c^(u*xd<f&&f<u*t)?(o=-i[1]*Zd)<_d&&(_d=o):(n<_d&&(_d=n),n>md&&(md=n))),c?t<xd?Or(yd,t)>Or(yd,bd)&&(bd=t):Or(t,bd)>Or(yd,bd)&&(yd=t):bd>=yd?(t<yd&&(yd=t),t>bd&&(bd=t)):t>xd?Or(yd,t)>Or(yd,bd)&&(bd=t):Or(t,bd)>Or(yd,bd)&&(yd=t)}else Td.push(Nd=[yd=t,bd=t]);n<_d&&(_d=n),n>md&&(md=n),Ad=e,xd=t}function Rr(){gp.point=zr}function Lr(){Nd[0]=yd,Nd[1]=bd,gp.point=Pr,Ad=null}function Dr(t,n){if(Ad){var e=t-xd;vp.add(Jd(e)>180?e+(e>0?360:-360):e)}else wd=t,Md=n;pp.point(t,n),zr(t,n)}function Ur(){pp.lineStart()}function qr(){Dr(wd,Md),pp.lineEnd(),Jd(vp)>Hd&&(yd=-(bd=180)),Nd[0]=yd,Nd[1]=bd,Ad=null}function Or(t,n){return(n-=t)<0?n+360:n}function Yr(t,n){return t[0]-n[0]}function Br(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Fr(t,n){t*=Qd;var e=np(n*=Qd);Ir(e*np(t),e*ap(t),ap(n))}function Ir(t,n,e){kd+=(t-kd)/++Sd,Cd+=(n-Cd)/Sd,Pd+=(e-Pd)/Sd}function jr(){yp.point=Hr}function Hr(t,n){t*=Qd;var e=np(n*=Qd);Bd=e*np(t),Fd=e*ap(t),Id=ap(n),yp.point=Xr,Ir(Bd,Fd,Id)}function Xr(t,n){t*=Qd;var e=np(n*=Qd),r=e*np(t),i=e*ap(t),o=ap(n),a=tp(fp((a=Fd*o-Id*i)*a+(a=Id*r-Bd*o)*a+(a=Bd*i-Fd*r)*a),Bd*r+Fd*i+Id*o);Ed+=a,zd+=a*(Bd+(Bd=r)),Rd+=a*(Fd+(Fd=i)),Ld+=a*(Id+(Id=o)),Ir(Bd,Fd,Id)}function Gr(){yp.point=Fr}function Vr(){yp.point=Wr}function $r(){Zr(Od,Yd),yp.point=Fr}function Wr(t,n){Od=t,Yd=n,t*=Qd,n*=Qd,yp.point=Zr;var e=np(n);Bd=e*np(t),Fd=e*ap(t),Id=ap(n),Ir(Bd,Fd,Id)}function Zr(t,n){t*=Qd;var e=np(n*=Qd),r=e*np(t),i=e*ap(t),o=ap(n),a=Fd*o-Id*i,u=Id*r-Bd*o,f=Bd*i-Fd*r,c=fp(a*a+u*u+f*f),s=dr(c),l=c&&-s/c;Dd+=l*a,Ud+=l*u,qd+=l*f,Ed+=s,zd+=s*(Bd+(Bd=r)),Rd+=s*(Fd+(Fd=i)),Ld+=s*(Id+(Id=o)),Ir(Bd,Fd,Id)}function Qr(t){return function(){return t}}function Jr(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e}function Kr(t,n){return[t>Gd?t-Wd:t<-Gd?t+Wd:t,n]}function ti(t,n,e){return(t%=Wd)?n||e?Jr(ei(t),ri(n,e)):ei(t):n||e?ri(n,e):Kr}function ni(t){return function(n,e){return n+=t,[n>Gd?n-Wd:n<-Gd?n+Wd:n,e]}}function ei(t){var n=ni(t);return n.invert=ni(-t),n}function ri(t,n){function e(t,n){var e=np(n),u=np(t)*e,f=ap(t)*e,c=ap(n),s=c*r+u*i;return[tp(f*o-s*a,u*r-c*i),dr(s*o+f*a)]}var r=np(t),i=ap(t),o=np(n),a=ap(n);return e.invert=function(t,n){var e=np(n),u=np(t)*e,f=ap(t)*e,c=ap(n),s=c*o-f*a;return[tp(f*o+c*a,u*r+s*i),dr(s*r-u*i)]},e}function ii(t){function n(n){return n=t(n[0]*Qd,n[1]*Qd),n[0]*=Zd,n[1]*=Zd,n}return t=ti(t[0]*Qd,t[1]*Qd,t.length>2?t[2]*Qd:0),n.invert=function(n){return n=t.invert(n[0]*Qd,n[1]*Qd),n[0]*=Zd,n[1]*=Zd,n},n}function oi(t,n,e,r,i,o){if(e){var a=np(n),u=ap(n),f=r*e;null==i?(i=n+r*Wd,o=n-f/2):(i=ai(a,i),o=ai(a,o),(r>0?i<o:i>o)&&(i+=r*Wd));for(var c,s=i;r>0?s>o:s<o;s-=f)c=Ar([a,-u*np(s),-u*ap(s)]),t.point(c[0],c[1])}}function ai(t,n){(n=Tr(n))[0]-=t,Cr(n);var e=hr(-n[1]);return((-n[2]<0?-e:e)+Wd-Hd)%Wd}function ui(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:vr,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function fi(t,n){return Jd(t[0]-n[0])<Hd&&Jd(t[1]-n[1])<Hd}function ci(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function si(t,n,e,r,i){var o,a,u=[],f=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],a=t[n];if(fi(r,a)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);i.lineEnd()}else u.push(e=new ci(r,t,null,!0)),f.push(e.o=new ci(r,null,e,!1)),u.push(e=new ci(a,t,null,!1)),f.push(e.o=new ci(a,null,e,!0))}}),u.length){for(f.sort(n),li(u),li(f),o=0,a=f.length;o<a;++o)f[o].e=e=!e;for(var c,s,l=u[0];;){for(var h=l,d=!0;h.v;)if((h=h.n)===l)return;c=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(o=0,a=c.length;o<a;++o)i.point((s=c[o])[0],s[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(c=h.p.z,o=c.length-1;o>=0;--o)i.point((s=c[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}c=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function li(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function hi(t,n){var e=n[0],r=n[1],i=ap(r),o=[ap(e),-np(e),0],a=0,u=0;kp.reset(),1===i?r=Vd+Hd:-1===i&&(r=-Vd-Hd);for(var f=0,c=t.length;f<c;++f)if(l=(s=t[f]).length)for(var s,l,h=s[l-1],d=h[0],p=h[1]/2+$d,v=ap(p),g=np(p),y=0;y<l;++y,d=b,v=x,g=w,h=_){var _=s[y],b=_[0],m=_[1]/2+$d,x=ap(m),w=np(m),M=b-d,A=M>=0?1:-1,T=A*M,N=T>Gd,S=v*x;if(kp.add(tp(S*A*ap(T),g*w+S*np(T))),a+=N?M+A*Wd:M,N^d>=e^b>=e){var E=Sr(Tr(h),Tr(_));Cr(E);var k=Sr(o,E);Cr(k);var C=(N^M>=0?-1:1)*dr(k[2]);(r>C||r===C&&(E[0]||E[1]))&&(u+=N^M>=0?1:-1)}}return(a<-Hd||a<Hd&&kp<-Hd)^1&u}function di(t,n,e,r){return function(i){function o(n,e){t(n,e)&&i.point(n,e)}function a(t,n){v.point(t,n)}function u(){m.point=a,v.lineStart()}function f(){m.point=o,v.lineEnd()}function c(t,n){p.push([t,n]),_.point(t,n)}function s(){_.lineStart(),p=[]}function l(){c(p[0][0],p[0][1]),_.lineEnd();var t,n,e,r,o=_.clean(),a=g.result(),u=a.length;if(p.pop(),h.push(p),p=null,u)if(1&o){if(e=a[0],(n=e.length-1)>0){for(b||(i.polygonStart(),b=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else u>1&&2&o&&a.push(a.pop().concat(a.shift())),d.push(a.filter(pi))}var h,d,p,v=n(i),g=ui(),_=n(g),b=!1,m={point:o,lineStart:u,lineEnd:f,polygonStart:function(){m.point=c,m.lineStart=s,m.lineEnd=l,d=[],h=[]},polygonEnd:function(){m.point=o,m.lineStart=u,m.lineEnd=f,d=y(d);var t=hi(h,r);d.length?(b||(i.polygonStart(),b=!0),si(d,vi,t,e,i)):t&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),d=h=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};return m}}function pi(t){return t.length>1}function vi(t,n){return((t=t.x)[0]<0?t[1]-Vd-Hd:Vd-t[1])-((n=n.x)[0]<0?n[1]-Vd-Hd:Vd-n[1])}function gi(t){function n(t,n){return np(t)*np(n)>i}function e(t,n,e){var r=[1,0,0],o=Sr(Tr(t),Tr(n)),a=Nr(o,o),u=o[0],f=a-u*u;if(!f)return!e&&t;var c=i*a/f,s=-i*u/f,l=Sr(r,o),h=kr(r,c);Er(h,kr(o,s));var d=l,p=Nr(h,d),v=Nr(d,d),g=p*p-v*(Nr(h,h)-1);if(!(g<0)){var y=fp(g),_=kr(d,(-p-y)/v);if(Er(_,h),_=Ar(_),!e)return _;var b,m=t[0],x=n[0],w=t[1],M=n[1];x<m&&(b=m,m=x,x=b);var A=x-m,T=Jd(A-Gd)<Hd;if(!T&&M<w&&(b=w,w=M,M=b),T||A<Hd?T?w+M>0^_[1]<(Jd(_[0]-m)<Hd?w:M):w<=_[1]&&_[1]<=M:A>Gd^(m<=_[0]&&_[0]<=x)){var N=kr(d,(-p+y)/v);return Er(N,h),[_,Ar(N)]}}}function r(n,e){var r=a?t:Gd-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var i=np(t),o=6*Qd,a=i>0,u=Jd(i)>Hd;return di(n,function(t){var i,o,f,c,s;return{lineStart:function(){c=f=!1,s=1},point:function(l,h){var d,p=[l,h],v=n(l,h),g=a?v?0:r(l,h):v?r(l+(l<0?Gd:-Gd),h):0;if(!i&&(c=f=v)&&t.lineStart(),v!==f&&(!(d=e(i,p))||fi(i,d)||fi(p,d))&&(p[0]+=Hd,p[1]+=Hd,v=n(p[0],p[1])),v!==f)s=0,v?(t.lineStart(),d=e(p,i),t.point(d[0],d[1])):(d=e(i,p),t.point(d[0],d[1]),t.lineEnd()),i=d;else if(u&&i&&a^v){var y;g&o||!(y=e(p,i,!0))||(s=0,a?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||i&&fi(i,p)||t.point(p[0],p[1]),i=p,f=v,o=g},lineEnd:function(){f&&t.lineEnd(),i=null},clean:function(){return s|(c&&f)<<1}}},function(n,e,r,i){oi(i,t,o,r,n,e)},a?[0,-t]:[-Gd,t-Gd])}function yi(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,c){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||f(i,o)<0^u>0)do{c.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else c.point(o[0],o[1])}function a(r,i){return Jd(r[0]-t)<Hd?i>0?0:3:Jd(r[0]-e)<Hd?i>0?2:1:Jd(r[1]-n)<Hd?i>0?1:0:i>0?3:2}function u(t,n){return f(t.x,n.x)}function f(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){function f(t,n){i(t,n)&&w.point(t,n)}function c(o,a){var u=i(o,a);if(l&&h.push([o,a]),m)d=o,p=a,v=u,m=!1,u&&(w.lineStart(),w.point(o,a));else if(u&&b)w.point(o,a);else{var f=[g=Math.max(zp,Math.min(Pp,g)),_=Math.max(zp,Math.min(Pp,_))],c=[o=Math.max(zp,Math.min(Pp,o)),a=Math.max(zp,Math.min(Pp,a))];!function(t,n,e,r,i,o){var a,u=t[0],f=t[1],c=0,s=1,l=n[0]-u,h=n[1]-f;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a<c)return;a<s&&(s=a)}else if(l>0){if(a>s)return;a>c&&(c=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>c&&(c=a)}else if(l>0){if(a<c)return;a<s&&(s=a)}if(a=r-f,h||!(a>0)){if(a/=h,h<0){if(a<c)return;a<s&&(s=a)}else if(h>0){if(a>s)return;a>c&&(c=a)}if(a=o-f,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>c&&(c=a)}else if(h>0){if(a<c)return;a<s&&(s=a)}return c>0&&(t[0]=u+c*l,t[1]=f+c*h),s<1&&(n[0]=u+s*l,n[1]=f+s*h),!0}}}}}(f,c,t,n,e,r)?u&&(w.lineStart(),w.point(o,a),x=!1):(b||(w.lineStart(),w.point(f[0],f[1])),w.point(c[0],c[1]),u||w.lineEnd(),x=!1)}g=o,_=a,b=u}var s,l,h,d,p,v,g,_,b,m,x,w=a,M=ui(),A={point:f,lineStart:function(){A.point=c,l&&l.push(h=[]),m=!0,b=!1,g=_=NaN},lineEnd:function(){s&&(c(d,p),v&&b&&M.rejoin(),s.push(M.result())),A.point=f,b&&w.lineEnd()},polygonStart:function(){w=M,s=[],l=[],x=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=l.length;e<i;++e)for(var o,a,u=l[e],f=1,c=u.length,s=u[0],h=s[0],d=s[1];f<c;++f)o=h,a=d,h=(s=u[f])[0],d=s[1],a<=r?d>r&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=x&&n,i=(s=y(s)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&si(s,u,n,o,a),a.polygonEnd()),w=a,s=l=h=null}};return A}}function _i(){Lp.point=Lp.lineEnd=vr}function bi(t,n){_p=t*=Qd,bp=ap(n*=Qd),mp=np(n),Lp.point=mi}function mi(t,n){t*=Qd;var e=ap(n*=Qd),r=np(n),i=Jd(t-_p),o=np(i),a=r*ap(i),u=mp*e-bp*r*o,f=bp*e+mp*r*o;Rp.add(tp(fp(a*a+u*u),f)),_p=t,bp=e,mp=r}function xi(t){return Rp.reset(),br(t,Lp),+Rp}function wi(t,n){return Dp[0]=t,Dp[1]=n,xi(Up)}function Mi(t,n){return!(!t||!Op.hasOwnProperty(t.type))&&Op[t.type](t,n)}function Ai(t,n){return 0===wi(t,n)}function Ti(t,n){var e=wi(t[0],t[1]);return wi(t[0],n)+wi(n,t[1])<=e+Hd}function Ni(t,n){return!!hi(t.map(Si),Ei(n))}function Si(t){return(t=t.map(Ei)).pop(),t}function Ei(t){return[t[0]*Qd,t[1]*Qd]}function ki(t,n,e){var r=s(t,n-Hd,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function Ci(t,n,e){var r=s(t,n-Hd,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Pi(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return s(ep(o/y)*y,i,y).map(d).concat(s(ep(c/_)*_,f,_).map(p)).concat(s(ep(r/v)*v,e,v).filter(function(t){return Jd(t%y)>Hd}).map(l)).concat(s(ep(u/g)*g,a,g).filter(function(t){return Jd(t%_)>Hd}).map(h))}var e,r,i,o,a,u,f,c,l,h,d,p,v=10,g=v,y=90,_=360,b=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[d(o).concat(p(f).slice(1),d(i).reverse().slice(1),p(c).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],c=+n[0][1],f=+n[1][1],o>i&&(n=o,o=i,i=n),c>f&&(n=c,c=f,f=n),t.precision(b)):[[o,c],[i,f]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],u=+n[0][1],a=+n[1][1],r>e&&(n=r,r=e,e=n),u>a&&(n=u,u=a,a=n),t.precision(b)):[[r,u],[e,a]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(y=+n[0],_=+n[1],t):[y,_]},t.stepMinor=function(n){return arguments.length?(v=+n[0],g=+n[1],t):[v,g]},t.precision=function(n){return arguments.length?(b=+n,l=ki(u,a,90),h=Ci(r,e,b),d=ki(c,f,90),p=Ci(o,i,b),t):b},t.extentMajor([[-180,-90+Hd],[180,90-Hd]]).extentMinor([[-180,-80-Hd],[180,80+Hd]])}function zi(t){return t}function Ri(){Fp.point=Li}function Li(t,n){Fp.point=Di,xp=Mp=t,wp=Ap=n}function Di(t,n){Bp.add(Ap*t-Mp*n),Mp=t,Ap=n}function Ui(){Di(xp,wp)}function qi(t,n){Vp+=t,$p+=n,++Wp}function Oi(){ev.point=Yi}function Yi(t,n){ev.point=Bi,qi(Sp=t,Ep=n)}function Bi(t,n){var e=t-Sp,r=n-Ep,i=fp(e*e+r*r);Zp+=i*(Sp+t)/2,Qp+=i*(Ep+n)/2,Jp+=i,qi(Sp=t,Ep=n)}function Fi(){ev.point=qi}function Ii(){ev.point=Hi}function ji(){Xi(Tp,Np)}function Hi(t,n){ev.point=Xi,qi(Tp=Sp=t,Np=Ep=n)}function Xi(t,n){var e=t-Sp,r=n-Ep,i=fp(e*e+r*r);Zp+=i*(Sp+t)/2,Qp+=i*(Ep+n)/2,Jp+=i,Kp+=(i=Ep*t-Sp*n)*(Sp+t),tv+=i*(Ep+n),nv+=3*i,qi(Sp=t,Ep=n)}function Gi(t){this._context=t}function Vi(t,n){cv.point=$i,iv=av=t,ov=uv=n}function $i(t,n){av-=t,uv-=n,fv.add(fp(av*av+uv*uv)),av=t,uv=n}function Wi(){this._string=[]}function Zi(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Qi(t){return function(n){var e=new Ji;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Ji(){}function Ki(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),br(e,t.stream(Gp)),n(Gp.result()),null!=r&&t.clipExtent(r),t}function to(t,n,e){return Ki(t,function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])},e)}function no(t,n,e){return to(t,[[0,0],n],e)}function eo(t,n,e){return Ki(t,function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])},e)}function ro(t,n,e){return Ki(t,function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])},e)}function io(t,n){return+n?function(t,n){function e(r,i,o,a,u,f,c,s,l,h,d,p,v,g){var y=c-r,_=s-i,b=y*y+_*_;if(b>4*n&&v--){var m=a+h,x=u+d,w=f+p,M=fp(m*m+x*x+w*w),A=dr(w/=M),T=Jd(Jd(w)-1)<Hd||Jd(o-l)<Hd?(o+l)/2:tp(x,m),N=t(T,A),S=N[0],E=N[1],k=S-r,C=E-i,P=_*k-y*C;(P*P/b>n||Jd((y*k+_*C)/b-.5)>.3||a*h+u*d+f*p<lv)&&(e(r,i,o,a,u,f,S,E,T,m/=M,x/=M,w,v,g),g.point(S,E),e(S,E,T,m,x,w,c,s,l,h,d,p,v,g))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){y=NaN,w.point=o,n.lineStart()}function o(r,i){var o=Tr([r,i]),a=t(r,i);e(y,_,g,b,m,x,y=a[0],_=a[1],g=r,b=o[0],m=o[1],x=o[2],sv,n),n.point(y,_)}function a(){w.point=r,n.lineEnd()}function u(){i(),w.point=f,w.lineEnd=c}function f(t,n){o(s=t,n),l=y,h=_,d=b,p=m,v=x,w.point=o}function c(){e(y,_,g,b,m,x,l,h,s,d,p,v,sv,n),w.lineEnd=a,a()}var s,l,h,d,p,v,g,y,_,b,m,x,w={point:r,lineStart:i,lineEnd:a,polygonStart:function(){n.polygonStart(),w.lineStart=u},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}(t,n):function(t){return Qi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)}function oo(t,n,e,r){function i(t,r){return[u*t-f*r+n,e-f*t-u*r]}var o=np(r),a=ap(r),u=o*t,f=a*t,c=o/t,s=a/t,l=(a*e-o*n)/t,h=(a*n+o*e)/t;return i.invert=function(t,n){return[c*t-s*n+l,h-s*t-c*n]},i}function ao(t){return uo(function(){return t})()}function uo(t){function n(t){return l(t[0]*Qd,t[1]*Qd)}function e(){var t=oo(p,0,0,w).apply(null,i(y,_)),n=(w?oo:function(t,n,e){function r(r,i){return[n+t*r,e-t*i]}return r.invert=function(r,i){return[(r-n)/t,(e-i)/t]},r})(p,v-t[0],g-t[1],w);return o=ti(b,m,x),s=Jr(i,n),l=Jr(o,s),c=io(s,S),r()}function r(){return h=d=null,n}var i,o,a,u,f,c,s,l,h,d,p=150,v=480,g=250,y=0,_=0,b=0,m=0,x=0,w=0,M=null,A=Cp,T=null,N=zi,S=.5;return n.stream=function(t){return h&&d===t?h:h=hv(function(t){return Qi({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(o)(A(c(N(d=t)))))},n.preclip=function(t){return arguments.length?(A=t,M=void 0,r()):A},n.postclip=function(t){return arguments.length?(N=t,T=a=u=f=null,r()):N},n.clipAngle=function(t){return arguments.length?(A=+t?gi(M=t*Qd):(M=null,Cp),r()):M*Zd},n.clipExtent=function(t){return arguments.length?(N=null==t?(T=a=u=f=null,zi):yi(T=+t[0][0],a=+t[0][1],u=+t[1][0],f=+t[1][1]),r()):null==T?null:[[T,a],[u,f]]},n.scale=function(t){return arguments.length?(p=+t,e()):p},n.translate=function(t){return arguments.length?(v=+t[0],g=+t[1],e()):[v,g]},n.center=function(t){return arguments.length?(y=t[0]%360*Qd,_=t[1]%360*Qd,e()):[y*Zd,_*Zd]},n.rotate=function(t){return arguments.length?(b=t[0]%360*Qd,m=t[1]%360*Qd,x=t.length>2?t[2]%360*Qd:0,e()):[b*Zd,m*Zd,x*Zd]},n.angle=function(t){return arguments.length?(w=t%360*Qd,e()):w*Zd},n.precision=function(t){return arguments.length?(c=io(s,S=t*t),r()):fp(S)},n.fitExtent=function(t,e){return to(n,t,e)},n.fitSize=function(t,e){return no(n,t,e)},n.fitWidth=function(t,e){return eo(n,t,e)},n.fitHeight=function(t,e){return ro(n,t,e)},function(){return i=t.apply(this,arguments),n.invert=i.invert&&function(t){return(t=l.invert(t[0],t[1]))&&[t[0]*Zd,t[1]*Zd]},e()}}function fo(t){var n=0,e=Gd/3,r=uo(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Qd,e=t[1]*Qd):[n*Zd,e*Zd]},i}function co(t,n){function e(t,n){var e=fp(o-2*i*ap(n))/i;return[e*ap(t*=i),a-e*np(t)]}var r=ap(t),i=(r+ap(n))/2;if(Jd(i)<Hd)return function(t){function n(t,n){return[t*e,ap(n)/e]}var e=np(t);return n.invert=function(t,n){return[t/e,dr(n*e)]},n}(t);var o=1+r*(2*i-r),a=fp(o)/i;return e.invert=function(t,n){var e=a-n;return[tp(t,Jd(e))/i*up(e),dr((o-(t*t+e*e)*i*i)/(2*i))]},e}function so(){return fo(co).scale(155.424).center([0,33.6442])}function lo(){return so().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function ho(t){return function(n,e){var r=np(n),i=np(e),o=t(r*i);return[o*i*ap(n),o*ap(e)]}}function po(t){return function(n,e){var r=fp(n*n+e*e),i=t(r),o=ap(i),a=np(i);return[tp(n*o,r*a),dr(r&&e*o/r)]}}function vo(t,n){return[t,ip(cp((Vd+n)/2))]}function go(t){function n(){var n=Gd*u(),a=o(ii(o.rotate()).invert([0,0]));return c(null==s?[[a[0]-n,a[1]-n],[a[0]+n,a[1]+n]]:t===vo?[[Math.max(a[0]-n,s),e],[Math.min(a[0]+n,r),i]]:[[s,Math.max(a[1]-n,e)],[r,Math.min(a[1]+n,i)]])}var e,r,i,o=ao(t),a=o.center,u=o.scale,f=o.translate,c=o.clipExtent,s=null;return o.scale=function(t){return arguments.length?(u(t),n()):u()},o.translate=function(t){return arguments.length?(f(t),n()):f()},o.center=function(t){return arguments.length?(a(t),n()):a()},o.clipExtent=function(t){return arguments.length?(null==t?s=e=r=i=null:(s=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==s?null:[[s,e],[r,i]]},n()}function yo(t){return cp((Vd+t)/2)}function _o(t,n){function e(t,n){o>0?n<-Vd+Hd&&(n=-Vd+Hd):n>Vd-Hd&&(n=Vd-Hd);var e=o/op(yo(n),i);return[e*ap(i*t),o-e*np(i*t)]}var r=np(t),i=t===n?ap(t):ip(r/np(n))/ip(yo(n)/yo(t)),o=r*op(yo(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=up(i)*fp(t*t+e*e);return[tp(t,Jd(e))/i*up(e),2*Kd(op(o/r,1/i))-Vd]},e):vo}function bo(t,n){return[t,n]}function mo(t,n){function e(t,n){var e=o-n,r=i*t;return[e*ap(r),o-e*np(r)]}var r=np(t),i=t===n?ap(t):(r-np(n))/(n-t),o=r/i+t;return Jd(i)<Hd?bo:(e.invert=function(t,n){var e=o-n;return[tp(t,Jd(e))/i*up(e),o-up(i)*fp(t*t+e*e)]},e)}function xo(t,n){var e=np(n),r=np(t)*e;return[e*ap(t)/r,ap(n)/r]}function wo(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?zi:Qi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function Mo(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function Ao(t,n){return[np(n)*ap(t),ap(n)]}function To(t,n){var e=np(n),r=1+np(t)*e;return[e*ap(t)/r,ap(n)/r]}function No(t,n){return[ip(cp((Vd+n)/2)),-t]}function So(t,n){return t.parent===n.parent?1:2}function Eo(t,n){return t+n.x}function ko(t,n){return Math.max(t,n.y)}function Co(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Po(t,n){var e,r,i,o,a,u=new Do(t),f=+t.value&&(u.value=t.value),c=[u];for(null==n&&(n=zo);e=c.pop();)if(f&&(e.value=+e.data.value),(i=n(e.data))&&(a=i.length))for(e.children=new Array(a),o=a-1;o>=0;--o)c.push(r=e.children[o]=new Do(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Lo)}function zo(t){return t.children}function Ro(t){t.data=t.data.data}function Lo(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Do(t){this.data=t,this.depth=this.height=0,this.parent=null}function Uo(t){for(var n,e,r=0,i=(t=function(t){for(var n,e,r=t.length;r;)e=Math.random()*r--|0,n=t[r],t[r]=t[e],t[e]=n;return t}(vv.call(t))).length,o=[];r<i;)n=t[r],e&&Oo(e,n)?++r:(e=function(t){switch(t.length){case 1:return function(t){return{x:t.x,y:t.y,r:t.r}}(t[0]);case 2:return Bo(t[0],t[1]);case 3:return Fo(t[0],t[1],t[2])}}(o=function(t,n){var e,r;if(Yo(n,t))return[n];for(e=0;e<t.length;++e)if(qo(n,t[e])&&Yo(Bo(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(qo(Bo(t[e],t[r]),n)&&qo(Bo(t[e],n),t[r])&&qo(Bo(t[r],n),t[e])&&Yo(Fo(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}(o,n)),r=0);return e}function qo(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function Oo(t,n){var e=t.r-n.r+1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Yo(t,n){for(var e=0;e<n.length;++e)if(!Oo(t,n[e]))return!1;return!0}function Bo(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,a=n.y,u=n.r,f=o-e,c=a-r,s=u-i,l=Math.sqrt(f*f+c*c);return{x:(e+o+f/l*s)/2,y:(r+a+c/l*s)/2,r:(l+i+u)/2}}function Fo(t,n,e){var r=t.x,i=t.y,o=t.r,a=n.x,u=n.y,f=n.r,c=e.x,s=e.y,l=e.r,h=r-a,d=r-c,p=i-u,v=i-s,g=f-o,y=l-o,_=r*r+i*i-o*o,b=_-a*a-u*u+f*f,m=_-c*c-s*s+l*l,x=d*p-h*v,w=(p*m-v*b)/(2*x)-r,M=(v*g-p*y)/x,A=(d*b-h*m)/(2*x)-i,T=(h*y-d*g)/x,N=M*M+T*T-1,S=2*(o+w*M+A*T),E=w*w+A*A-o*o,k=-(N?(S+Math.sqrt(S*S-4*N*E))/(2*N):E/S);return{x:r+w+M*k,y:i+A+T*k,r:k}}function Io(t,n,e){var r,i,o,a,u=t.x-n.x,f=t.y-n.y,c=u*u+f*f;c?(i=n.r+e.r,i*=i,a=t.r+e.r,i>(a*=a)?(r=(c+a-i)/(2*c),o=Math.sqrt(Math.max(0,a/c-r*r)),e.x=t.x-r*u-o*f,e.y=t.y-r*f+o*u):(r=(c+i-a)/(2*c),o=Math.sqrt(Math.max(0,i/c-r*r)),e.x=n.x+r*u-o*f,e.y=n.y+r*f+o*u)):(e.x=n.x+e.r,e.y=n.y)}function jo(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function Ho(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function Xo(t){this._=t,this.next=null,this.previous=null}function Go(t){if(!(i=t.length))return 0;var n,e,r,i,o,a,u,f,c,s,l;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Io(e,n,r=t[2]),n=new Xo(n),e=new Xo(e),r=new Xo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(u=3;u<i;++u){Io(n._,e._,r=t[u]),r=new Xo(r),f=e.next,c=n.previous,s=e._.r,l=n._.r;do{if(s<=l){if(jo(f._,r._)){e=f,n.next=e,e.previous=n,--u;continue t}s+=f._.r,f=f.next}else{if(jo(c._,r._)){(n=c).next=e,e.previous=n,--u;continue t}l+=c._.r,c=c.previous}}while(f!==c.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,o=Ho(n);(r=r.next)!==e;)(a=Ho(r))<o&&(n=r,o=a);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=Uo(n),u=0;u<i;++u)n=t[u],n.x-=r.x,n.y-=r.y;return r.r}function Vo(t){if("function"!=typeof t)throw new Error;return t}function $o(){return 0}function Wo(t){return function(){return t}}function Zo(t){return Math.sqrt(t.value)}function Qo(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Jo(t,n){return function(e){if(r=e.children){var r,i,o,a=r.length,u=t(e)*n||0;if(u)for(i=0;i<a;++i)r[i].r+=u;if(o=Go(r),u)for(i=0;i<a;++i)r[i].r-=u;e.r=o+u}}}function Ko(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function ta(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function na(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(r-n)/t.value;++u<f;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*c}function ea(t){return t.id}function ra(t){return t.parentId}function ia(t,n){return t.parent===n.parent?1:2}function oa(t){var n=t.children;return n?n[0]:t.t}function aa(t){var n=t.children;return n?n[n.length-1]:t.t}function ua(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function fa(t,n,e){return t.a.parent===n.parent?t.a:e}function ca(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function sa(t,n,e,r,i){for(var o,a=t.children,u=-1,f=a.length,c=t.value&&(i-e)/t.value;++u<f;)(o=a[u]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*c}function la(t,n,e,r,i,o){for(var a,u,f,c,s,l,h,d,p,v,g,y=[],_=n.children,b=0,m=0,x=_.length,w=n.value;b<x;){f=i-e,c=o-r;do{s=_[m++].value}while(!s&&m<x);for(l=h=s,g=s*s*(v=Math.max(c/f,f/c)/(w*t)),p=Math.max(h/g,g/l);m<x;++m){if(s+=u=_[m].value,u<l&&(l=u),u>h&&(h=u),g=s*s*v,(d=Math.max(h/g,g/l))>p){s-=u;break}p=d}y.push(a={value:s,dice:f<c,children:_.slice(b,m)}),a.dice?na(a,e,r,i,w?r+=c*s/w:o):sa(a,e,r,w?e+=f*s/w:i,o),w-=s,b=m}return y}function ha(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function da(t,n){return t[0]-n[0]||t[1]-n[1]}function pa(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&ha(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function va(){return Math.random()}function ga(t){function n(n){var o=n+"",a=e.get(o);if(!a){if(i!==Pv)return i;e.set(o,a=r.push(n))}return t[(a-1)%t.length]}var e=he(),r=[],i=Pv;return t=null==t?[]:Cv.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=he();for(var i,o,a=-1,u=t.length;++a<u;)e.has(o=(i=t[a])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=Cv.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return ga().domain(r).range(t).unknown(i)},n}function ya(){function t(){var t=i().length,r=a[1]<a[0],h=a[r-0],d=a[1-r];n=(d-h)/Math.max(1,t-f+2*c),u&&(n=Math.floor(n)),h+=(d-h-n*(t-f))*l,e=n*(1-f),u&&(h=Math.round(h),e=Math.round(e));var p=s(t).map(function(t){return h+n*t});return o(r?p.reverse():p)}var n,e,r=ga().unknown(void 0),i=r.domain,o=r.range,a=[0,1],u=!1,f=0,c=0,l=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(a=[+n[0],+n[1]],t()):a.slice()},r.rangeRound=function(n){return a=[+n[0],+n[1]],u=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(u=!!n,t()):u},r.padding=function(n){return arguments.length?(f=c=Math.max(0,Math.min(1,n)),t()):f},r.paddingInner=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.paddingOuter=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.align=function(n){return arguments.length?(l=Math.max(0,Math.min(1,n)),t()):l},r.copy=function(){return ya().domain(i()).range(a).round(u).paddingInner(f).paddingOuter(c).align(l)},t()}function _a(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return _a(n())},t}function ba(t){return function(){return t}}function ma(t){return+t}function xa(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:ba(n)}function wa(t,n,e,r){var i=t[0],o=t[1],a=n[0],u=n[1];return o<i?(i=e(o,i),a=r(u,a)):(i=e(i,o),a=r(a,u)),function(t){return a(i(t))}}function Ma(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),a=new Array(i),u=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++u<i;)o[u]=e(t[u],t[u+1]),a[u]=r(n[u],n[u+1]);return function(n){var e=Kc(t,n,1,i)-1;return a[e](o[e](n))}}function Aa(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function Ta(t,n){function e(){return i=Math.min(u.length,f.length)>2?Ma:wa,o=a=null,r}function r(n){return(o||(o=i(u,f,s?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}(t):t,c)))(+n)}var i,o,a,u=zv,f=zv,c=dn,s=!1;return r.invert=function(t){return(a||(a=i(f,u,xa,s?function(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}(n):n)))(+t)},r.domain=function(t){return arguments.length?(u=kv.call(t,ma),e()):u.slice()},r.range=function(t){return arguments.length?(f=Cv.call(t),e()):f.slice()},r.rangeRound=function(t){return f=Cv.call(t),c=pn,e()},r.clamp=function(t){return arguments.length?(s=!!t,e()):s},r.interpolate=function(t){return arguments.length?(c=t,e()):c},e()}function Na(n){var e=n.domain;return n.ticks=function(t){var n=e();return l(n[0],n[n.length-1],null==t?10:t)},n.tickFormat=function(n,r){return function(n,e,r){var i,o=n[0],a=n[n.length-1],u=d(o,a,null==e?10:e);switch((r=tr(null==r?",f":r)).type){case"s":var f=Math.max(Math.abs(o),Math.abs(a));return null!=r.precision||isNaN(i=ur(u,f))||(r.precision=i),t.formatPrefix(r,f);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=fr(u,Math.max(Math.abs(o),Math.abs(a))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=ar(u))||(r.precision=i-2*("%"===r.type))}return t.format(r)}(e(),n,r)},n.nice=function(t){null==t&&(t=10);var r,i=e(),o=0,a=i.length-1,u=i[o],f=i[a];return f<u&&(r=u,u=f,f=r,r=o,o=a,a=r),(r=h(u,f,t))>0?r=h(u=Math.floor(u/r)*r,f=Math.ceil(f/r)*r,t):r<0&&(r=h(u=Math.ceil(u*r)/r,f=Math.floor(f*r)/r,t)),r>0?(i[o]=Math.floor(u/r)*r,i[a]=Math.ceil(f/r)*r,e(i)):r<0&&(i[o]=Math.ceil(u*r)/r,i[a]=Math.floor(f*r)/r,e(i)),n},n}function Sa(){var t=Ta(xa,sn);return t.copy=function(){return Aa(t,Sa())},Na(t)}function Ea(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=kv.call(e,ma),t):n.slice()},t.copy=function(){return Ea().domain(n)},Na(t)}function ka(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a<o&&(e=r,r=i,i=e,e=o,o=a,a=e),t[r]=n.floor(o),t[i]=n.ceil(a),t}function Ca(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:ba(n)}function Pa(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function za(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Ra(t){return 10===t?za:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function La(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Da(t){return function(n){return-t(-n)}}function Ua(){function n(){return o=La(i),a=Ra(i),r()[0]<0&&(o=Da(o),a=Da(a)),e}var e=Ta(Ca,Pa).domain([1,10]),r=e.domain,i=10,o=La(10),a=Ra(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),u=e[0],f=e[e.length-1];(n=f<u)&&(d=u,u=f,f=d);var c,s,h,d=o(u),p=o(f),v=null==t?10:+t,g=[];if(!(i%1)&&p-d<v){if(d=Math.round(d)-1,p=Math.round(p)+1,u>0){for(;d<p;++d)for(s=1,c=a(d);s<i;++s)if(!((h=c*s)<u)){if(h>f)break;g.push(h)}}else for(;d<p;++d)for(s=i-1,c=a(d);s>=1;--s)if(!((h=c*s)<u)){if(h>f)break;g.push(h)}}else g=l(d,p,Math.min(p-d,v)).map(a);return n?g.reverse():g},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var u=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/a(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=u?r(t):""}},e.nice=function(){return r(ka(r(),{floor:function(t){return a(Math.floor(o(t)))},ceil:function(t){return a(Math.ceil(o(t)))}}))},e.copy=function(){return Aa(e,Ua().base(i))},e}function qa(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Oa(){var t=1,n=Ta(function(n,e){return(e=qa(e,t)-(n=qa(n,t)))?function(r){return(qa(r,t)-n)/e}:ba(e)},function(n,e){return e=qa(e,t)-(n=qa(n,t)),function(r){return qa(n+e*r,1/t)}}),e=n.domain;return n.exponent=function(n){return arguments.length?(t=+n,e(e())):t},n.copy=function(){return Aa(n,Oa().exponent(t))},Na(n)}function Ya(){function t(){var t=0,n=Math.max(1,i.length);for(o=new Array(n-1);++t<n;)o[t-1]=v(r,t/n);return e}function e(t){if(!isNaN(t=+t))return i[Kc(o,t)]}var r=[],i=[],o=[];return e.invertExtent=function(t){var n=i.indexOf(t);return n<0?[NaN,NaN]:[n>0?o[n-1]:r[0],n<o.length?o[n]:r[r.length-1]]},e.domain=function(e){if(!arguments.length)return r.slice();r=[];for(var i,o=0,a=e.length;o<a;++o)null==(i=e[o])||isNaN(i=+i)||r.push(i);return r.sort(n),t()},e.range=function(n){return arguments.length?(i=Cv.call(n),t()):i.slice()},e.quantiles=function(){return o.slice()},e.copy=function(){return Ya().domain(r).range(i)},e}function Ba(){function t(t){if(t<=t)return a[Kc(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],a=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(a=Cv.call(t)).length-1,n()):a.slice()},t.invertExtent=function(t){var n=a.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Ba().domain([e,r]).range(a)},Na(t)}function Fa(){function t(t){if(t<=t)return e[Kc(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Cv.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Cv.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Fa().domain(n).range(e)},t}function Ia(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var a,u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(a=new Date(+e)),n(e,o),t(e)}while(a<e&&e<r);return u},i.filter=function(e){return Ia(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Rv.setTime(+n),Lv.setTime(+r),t(Rv),t(Lv),Math.floor(e(Rv,Lv))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function ja(t){return Ia(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*qv)/Ov})}function Ha(t){return Ia(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Ov})}function Xa(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Ga(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Va(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function $a(t){function n(t,n){return function(e){var r,i,o,a=[],u=-1,f=0,c=t.length;for(e instanceof Date||(e=new Date(+e));++u<c;)37===t.charCodeAt(u)&&(a.push(t.slice(f,u)),null!=(i=Ug[r=t.charAt(++u)])?r=t.charAt(++u):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),a.push(r),f=u+1);return a.push(t.slice(f,u)),a.join("")}}function e(t,n){return function(e){var i,o,a=Va(1900);if(r(a,t,e+="",0)!=e.length)return null;if("Q"in a)return new Date(a.Q);if("p"in a&&(a.H=a.H%12+12*a.p),"V"in a){if(a.V<1||a.V>53)return null;"w"in a||(a.w=1),"Z"in a?(i=(o=(i=Ga(Va(a.y))).getUTCDay())>4||0===o?_g.ceil(i):_g(i),i=vg.offset(i,7*(a.V-1)),a.y=i.getUTCFullYear(),a.m=i.getUTCMonth(),a.d=i.getUTCDate()+(a.w+6)%7):(i=(o=(i=n(Va(a.y))).getDay())>4||0===o?$v.ceil(i):$v(i),i=Xv.offset(i,7*(a.V-1)),a.y=i.getFullYear(),a.m=i.getMonth(),a.d=i.getDate()+(a.w+6)%7)}else("W"in a||"U"in a)&&("w"in a||(a.w="u"in a?a.u%7:"W"in a?1:0),o="Z"in a?Ga(Va(a.y)).getUTCDay():n(Va(a.y)).getDay(),a.m=0,a.d="W"in a?(a.w+6)%7+7*a.W-(o+5)%7:a.w+7*a.U-(o+6)%7);return"Z"in a?(a.H+=a.Z/100|0,a.M+=a.Z%100,Ga(a)):n(a)}}function r(t,n,e,r){for(var i,o,a=0,u=n.length,f=e.length;a<u;){if(r>=f)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=A[i in Ug?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}var i=t.dateTime,o=t.date,a=t.time,u=t.periods,f=t.days,c=t.shortDays,s=t.months,l=t.shortMonths,h=Qa(u),d=Ja(u),p=Qa(f),v=Ja(f),g=Qa(c),y=Ja(c),_=Qa(s),b=Ja(s),m=Qa(l),x=Ja(l),w={a:function(t){return c[t.getDay()]},A:function(t){return f[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:_u,e:_u,f:Mu,H:bu,I:mu,j:xu,L:wu,m:Au,M:Tu,p:function(t){return u[+(t.getHours()>=12)]},Q:Ku,s:tf,S:Nu,u:Su,U:Eu,V:ku,w:Cu,W:Pu,x:null,X:null,y:zu,Y:Ru,Z:Lu,"%":Ju},M={a:function(t){return c[t.getUTCDay()]},A:function(t){return f[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:Du,e:Du,f:Bu,H:Uu,I:qu,j:Ou,L:Yu,m:Fu,M:Iu,p:function(t){return u[+(t.getUTCHours()>=12)]},Q:Ku,s:tf,S:ju,u:Hu,U:Xu,V:Gu,w:Vu,W:$u,x:null,X:null,y:Wu,Y:Zu,Z:Qu,"%":Ju},A={a:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.w=y[r[0].toLowerCase()],e+r[0].length):-1},A:function(t,n,e){var r=p.exec(n.slice(e));return r?(t.w=v[r[0].toLowerCase()],e+r[0].length):-1},b:function(t,n,e){var r=m.exec(n.slice(e));return r?(t.m=x[r[0].toLowerCase()],e+r[0].length):-1},B:function(t,n,e){var r=_.exec(n.slice(e));return r?(t.m=b[r[0].toLowerCase()],e+r[0].length):-1},c:function(t,n,e){return r(t,i,n,e)},d:fu,e:fu,f:pu,H:su,I:su,j:cu,L:du,m:uu,M:lu,p:function(t,n,e){var r=h.exec(n.slice(e));return r?(t.p=d[r[0].toLowerCase()],e+r[0].length):-1},Q:gu,s:yu,S:hu,u:tu,U:nu,V:eu,w:Ka,W:ru,x:function(t,n,e){return r(t,o,n,e)},X:function(t,n,e){return r(t,a,n,e)},y:ou,Y:iu,Z:au,"%":vu};return w.x=n(o,w),w.X=n(a,w),w.c=n(i,w),M.x=n(o,M),M.X=n(a,M),M.c=n(i,M),{format:function(t){var e=n(t+="",w);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",Xa);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",M);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,Ga);return n.toString=function(){return t},n}}}function Wa(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function Za(t){return t.replace(Yg,"\\$&")}function Qa(t){return new RegExp("^(?:"+t.map(Za).join("|")+")","i")}function Ja(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function Ka(t,n,e){var r=qg.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function tu(t,n,e){var r=qg.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function nu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function eu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function ru(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function iu(t,n,e){var r=qg.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function ou(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function au(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function uu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function fu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function cu(t,n,e){var r=qg.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function su(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function lu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function hu(t,n,e){var r=qg.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function du(t,n,e){var r=qg.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function pu(t,n,e){var r=qg.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function vu(t,n,e){var r=Og.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function gu(t,n,e){var r=qg.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function yu(t,n,e){var r=qg.exec(n.slice(e));return r?(t.Q=1e3*+r[0],e+r[0].length):-1}function _u(t,n){return Wa(t.getDate(),n,2)}function bu(t,n){return Wa(t.getHours(),n,2)}function mu(t,n){return Wa(t.getHours()%12||12,n,2)}function xu(t,n){return Wa(1+Xv.count(cg(t),t),n,3)}function wu(t,n){return Wa(t.getMilliseconds(),n,3)}function Mu(t,n){return wu(t,n)+"000"}function Au(t,n){return Wa(t.getMonth()+1,n,2)}function Tu(t,n){return Wa(t.getMinutes(),n,2)}function Nu(t,n){return Wa(t.getSeconds(),n,2)}function Su(t){var n=t.getDay();return 0===n?7:n}function Eu(t,n){return Wa(Vv.count(cg(t),t),n,2)}function ku(t,n){var e=t.getDay();return t=e>=4||0===e?Qv(t):Qv.ceil(t),Wa(Qv.count(cg(t),t)+(4===cg(t).getDay()),n,2)}function Cu(t){return t.getDay()}function Pu(t,n){return Wa($v.count(cg(t),t),n,2)}function zu(t,n){return Wa(t.getFullYear()%100,n,2)}function Ru(t,n){return Wa(t.getFullYear()%1e4,n,4)}function Lu(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+Wa(n/60|0,"0",2)+Wa(n%60,"0",2)}function Du(t,n){return Wa(t.getUTCDate(),n,2)}function Uu(t,n){return Wa(t.getUTCHours(),n,2)}function qu(t,n){return Wa(t.getUTCHours()%12||12,n,2)}function Ou(t,n){return Wa(1+vg.count(Rg(t),t),n,3)}function Yu(t,n){return Wa(t.getUTCMilliseconds(),n,3)}function Bu(t,n){return Yu(t,n)+"000"}function Fu(t,n){return Wa(t.getUTCMonth()+1,n,2)}function Iu(t,n){return Wa(t.getUTCMinutes(),n,2)}function ju(t,n){return Wa(t.getUTCSeconds(),n,2)}function Hu(t){var n=t.getUTCDay();return 0===n?7:n}function Xu(t,n){return Wa(yg.count(Rg(t),t),n,2)}function Gu(t,n){var e=t.getUTCDay();return t=e>=4||0===e?xg(t):xg.ceil(t),Wa(xg.count(Rg(t),t)+(4===Rg(t).getUTCDay()),n,2)}function Vu(t){return t.getUTCDay()}function $u(t,n){return Wa(_g.count(Rg(t),t),n,2)}function Wu(t,n){return Wa(t.getUTCFullYear()%100,n,2)}function Zu(t,n){return Wa(t.getUTCFullYear()%1e4,n,4)}function Qu(){return"+0000"}function Ju(){return"%"}function Ku(t){return+t}function tf(t){return Math.floor(+t/1e3)}function nf(n){return Lg=$a(n),t.timeFormat=Lg.format,t.timeParse=Lg.parse,t.utcFormat=Lg.utcFormat,t.utcParse=Lg.utcParse,Lg}function ef(t){return new Date(t)}function rf(t){return t instanceof Date?+t:+new Date(+t)}function of(t,n,r,i,o,a,u,f,c){function s(e){return(u(e)<e?g:a(e)<e?y:o(e)<e?_:i(e)<e?b:n(e)<e?r(e)<e?m:x:t(e)<e?w:M)(e)}function l(n,r,i,o){if(null==n&&(n=10),"number"==typeof n){var a=Math.abs(i-r)/n,u=e(function(t){return t[2]}).right(A,a);u===A.length?(o=d(r/Wg,i/Wg,n),n=t):u?(o=(u=A[a/A[u-1][2]<A[u][2]/a?u-1:u])[1],n=u[0]):(o=Math.max(d(r,i,n),1),n=f)}return null==o?n:n.every(o)}var h=Ta(xa,sn),p=h.invert,v=h.domain,g=c(".%L"),y=c(":%S"),_=c("%I:%M"),b=c("%I %p"),m=c("%a %d"),x=c("%b %d"),w=c("%B"),M=c("%Y"),A=[[u,1,jg],[u,5,5*jg],[u,15,15*jg],[u,30,30*jg],[a,1,Hg],[a,5,5*Hg],[a,15,15*Hg],[a,30,30*Hg],[o,1,Xg],[o,3,3*Xg],[o,6,6*Xg],[o,12,12*Xg],[i,1,Gg],[i,2,2*Gg],[r,1,Vg],[n,1,$g],[n,3,3*$g],[t,1,Wg]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?v(kv.call(t,rf)):v().map(ef)},h.ticks=function(t,n){var e,r=v(),i=r[0],o=r[r.length-1],a=o<i;return a&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],a?e.reverse():e},h.tickFormat=function(t,n){return null==n?s:c(n)},h.nice=function(t,n){var e=v();return(t=l(t,e[0],e[e.length-1],n))?v(ka(e,t)):h},h.copy=function(){return Aa(h,of(t,n,r,i,o,a,u,f,c))},h}function af(t){function n(n){var r=(n-e)*i;return t(o?Math.max(0,Math.min(1,r)):r)}var e=0,r=1,i=1,o=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=e===r?0:1/(r-e),n):[e,r]},n.clamp=function(t){return arguments.length?(o=!!t,n):o},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return af(t).domain([e,r]).clamp(o)},Na(n)}function uf(t){function n(n){var e=.5+((n=+n)-r)*(n<r?o:a);return t(u?Math.max(0,Math.min(1,e)):e)}var e=0,r=.5,i=1,o=1,a=1,u=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],i=+t[2],o=e===r?0:.5/(r-e),a=r===i?0:.5/(i-r),n):[e,r,i]},n.clamp=function(t){return arguments.length?(u=!!t,n):u},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return uf(t).domain([e,r,i]).clamp(u)},Na(n)}function ff(t){for(var n=t.length/6|0,e=new Array(n),r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}function cf(t){return il(t[t.length-1])}function sf(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function lf(t){return function(){return t}}function hf(t){return t>=1?T_:t<=-1?-T_:Math.asin(t)}function df(t){return t.innerRadius}function pf(t){return t.outerRadius}function vf(t){return t.startAngle}function gf(t){return t.endAngle}function yf(t){return t&&t.padAngle}function _f(t,n,e,r,i,o,a){var u=t-e,f=n-r,c=(a?o:-o)/w_(u*u+f*f),s=c*f,l=-c*u,h=t+s,d=n+l,p=e+s,v=r+l,g=(h+p)/2,y=(d+v)/2,_=p-h,b=v-d,m=_*_+b*b,x=i-o,w=h*v-p*d,M=(b<0?-1:1)*w_(b_(0,x*x*m-w*w)),A=(w*b-_*M)/m,T=(-w*_-b*M)/m,N=(w*b+_*M)/m,S=(-w*_+b*M)/m,E=A-g,k=T-y,C=N-g,P=S-y;return E*E+k*k>C*C+P*P&&(A=N,T=S),{cx:A,cy:T,x01:-s,y01:-l,x11:A*(i/x-1),y11:T*(i/x-1)}}function bf(t){this._context=t}function mf(t){return new bf(t)}function xf(t){return t[0]}function wf(t){return t[1]}function Mf(){function t(t){var u,f,c,s=t.length,l=!1;for(null==i&&(a=o(c=oe())),u=0;u<=s;++u)!(u<s&&r(f=t[u],u,t))===l&&((l=!l)?a.lineStart():a.lineEnd()),l&&a.point(+n(f,u,t),+e(f,u,t));if(c)return a=null,c+""||null}var n=xf,e=wf,r=lf(!0),i=null,o=mf,a=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:lf(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(a=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=a=null:a=o(i=n),t):i},t}function Af(){function t(t){var n,s,l,h,d,p=t.length,v=!1,g=new Array(p),y=new Array(p);for(null==u&&(c=f(d=oe())),n=0;n<=p;++n){if(!(n<p&&a(h=t[n],n,t))===v)if(v=!v)s=n,c.areaStart(),c.lineStart();else{for(c.lineEnd(),c.lineStart(),l=n-1;l>=s;--l)c.point(g[l],y[l]);c.lineEnd(),c.areaEnd()}v&&(g[n]=+e(h,n,t),y[n]=+i(h,n,t),c.point(r?+r(h,n,t):g[n],o?+o(h,n,t):y[n]))}if(d)return c=null,d+""||null}function n(){return Mf().defined(a).curve(f).context(u)}var e=xf,r=null,i=lf(0),o=wf,a=lf(!0),u=null,f=mf,c=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:lf(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:lf(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(a="function"==typeof n?n:lf(!!n),t):a},t.curve=function(n){return arguments.length?(f=n,null!=u&&(c=f(u)),t):f},t.context=function(n){return arguments.length?(null==n?u=c=null:c=f(u=n),t):u},t}function Tf(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function Nf(t){return t}function Sf(t){this._curve=t}function Ef(t){function n(n){return new Sf(t(n))}return n._curve=t,n}function kf(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Ef(t)):n()._curve},t}function Cf(){return kf(Mf().curve(S_))}function Pf(){var t=Af().curve(S_),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return kf(e())},delete t.lineX0,t.lineEndAngle=function(){return kf(r())},delete t.lineX1,t.lineInnerRadius=function(){return kf(i())},delete t.lineY0,t.lineOuterRadius=function(){return kf(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Ef(t)):n()._curve},t}function zf(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}function Rf(t){return t.source}function Lf(t){return t.target}function Df(t){function n(){var n,u=E_.call(arguments),f=e.apply(this,u),c=r.apply(this,u);if(a||(a=n=oe()),t(a,+i.apply(this,(u[0]=f,u)),+o.apply(this,u),+i.apply(this,(u[0]=c,u)),+o.apply(this,u)),n)return a=null,n+""||null}var e=Rf,r=Lf,i=xf,o=wf,a=null;return n.source=function(t){return arguments.length?(e=t,n):e},n.target=function(t){return arguments.length?(r=t,n):r},n.x=function(t){return arguments.length?(i="function"==typeof t?t:lf(+t),n):i},n.y=function(t){return arguments.length?(o="function"==typeof t?t:lf(+t),n):o},n.context=function(t){return arguments.length?(a=null==t?null:t,n):a},n}function Uf(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n=(n+r)/2,e,n,i,r,i)}function qf(t,n,e,r,i){t.moveTo(n,e),t.bezierCurveTo(n,e=(e+i)/2,r,e,r,i)}function Of(t,n,e,r,i){var o=zf(n,e),a=zf(n,e=(e+i)/2),u=zf(r,e),f=zf(r,i);t.moveTo(o[0],o[1]),t.bezierCurveTo(a[0],a[1],u[0],u[1],f[0],f[1])}function Yf(){}function Bf(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Ff(t){this._context=t}function If(t){this._context=t}function jf(t){this._context=t}function Hf(t,n){this._basis=new Ff(t),this._beta=n}function Xf(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Gf(t,n){this._context=t,this._k=(1-n)/6}function Vf(t,n){this._context=t,this._k=(1-n)/6}function $f(t,n){this._context=t,this._k=(1-n)/6}function Wf(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>M_){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>M_){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*c+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*c+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Zf(t,n){this._context=t,this._alpha=n}function Qf(t,n){this._context=t,this._alpha=n}function Jf(t,n){this._context=t,this._alpha=n}function Kf(t){this._context=t}function tc(t){return t<0?-1:1}function nc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(tc(o)+tc(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function ec(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function rc(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function ic(t){this._context=t}function oc(t){this._context=new ac(t)}function ac(t){this._context=t}function uc(t){this._context=t}function fc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,a[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,a[n]-=e*a[n-1];for(i[r-1]=a[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function cc(t,n){this._context=t,this._t=n}function sc(t,n){if((i=t.length)>1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o<i;++o)for(r=a,a=t[n[o]],e=0;e<u;++e)a[e][1]+=a[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]}function lc(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e}function hc(t,n){return t[n]}function dc(t){var n=t.map(pc);return lc(t).sort(function(t,e){return n[t]-n[e]})}function pc(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function vc(t){return function(){return t}}function gc(t){return t[0]}function yc(t){return t[1]}function _c(){this._=null}function bc(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function mc(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function xc(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function wc(t){for(;t.L;)t=t.L;return t}function Mc(t,n,e,r){var i=[null,null],o=rb.push(i)-1;return i.left=t,i.right=n,e&&Tc(i,t,n,e),r&&Tc(i,n,t,r),nb[t.index].halfedges.push(o),nb[n.index].halfedges.push(o),i}function Ac(t,n,e){var r=[n,e];return r.left=t,r}function Tc(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function Nc(t,n,e,r,i){var o,a=t[0],u=t[1],f=a[0],c=a[1],s=0,l=1,h=u[0]-f,d=u[1]-c;if(o=n-f,h||!(o>0)){if(o/=h,h<0){if(o<s)return;o<l&&(l=o)}else if(h>0){if(o>l)return;o>s&&(s=o)}if(o=r-f,h||!(o<0)){if(o/=h,h<0){if(o>l)return;o>s&&(s=o)}else if(h>0){if(o<s)return;o<l&&(l=o)}if(o=e-c,d||!(o>0)){if(o/=d,d<0){if(o<s)return;o<l&&(l=o)}else if(d>0){if(o>l)return;o>s&&(s=o)}if(o=i-c,d||!(o<0)){if(o/=d,d<0){if(o>l)return;o>s&&(s=o)}else if(d>0){if(o<s)return;o<l&&(l=o)}return!(s>0||l<1)||(s>0&&(t[0]=[f+s*h,c+s*d]),l<1&&(t[1]=[f+l*h,c+l*d]),!0)}}}}}function Sc(t,n,e,r,i){var o=t[1];if(o)return!0;var a,u,f=t[0],c=t.left,s=t.right,l=c[0],h=c[1],d=s[0],p=s[1],v=(l+d)/2,g=(h+p)/2;if(p===h){if(v<n||v>=r)return;if(l>d){if(f){if(f[1]>=i)return}else f=[v,e];o=[v,i]}else{if(f){if(f[1]<e)return}else f=[v,i];o=[v,e]}}else if(a=(l-d)/(p-h),u=g-a*v,a<-1||a>1)if(l>d){if(f){if(f[1]>=i)return}else f=[(e-u)/a,e];o=[(i-u)/a,i]}else{if(f){if(f[1]<e)return}else f=[(i-u)/a,i];o=[(e-u)/a,e]}else if(h<p){if(f){if(f[0]>=r)return}else f=[n,a*n+u];o=[r,a*r+u]}else{if(f){if(f[0]<n)return}else f=[r,a*r+u];o=[n,a*n+u]}return t[0]=f,t[1]=o,!0}function Ec(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function kc(t,n){return n[+(n.left!==t.site)]}function Cc(t,n){return n[+(n.left===t.site)]}function Pc(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var a=i[0],u=i[1],f=r[0]-a,c=r[1]-u,s=o[0]-a,l=o[1]-u,h=2*(f*l-c*s);if(!(h>=-ub)){var d=f*f+c*c,p=s*s+l*l,v=(l*d-c*p)/h,g=(f*p-s*d)/h,y=ib.pop()||new function(){bc(this),this.x=this.y=this.arc=this.site=this.cy=null};y.arc=t,y.site=i,y.x=v+a,y.y=(y.cy=g+u)+Math.sqrt(v*v+g*g),t.circle=y;for(var _=null,b=eb._;b;)if(y.y<b.y||y.y===b.y&&y.x<=b.x){if(!b.L){_=b.P;break}b=b.L}else{if(!b.R){_=b;break}b=b.R}eb.insert(_,y),_||(K_=y)}}}}function zc(t){var n=t.circle;n&&(n.P||(K_=n.N),eb.remove(n),ib.push(n),bc(n),t.circle=null)}function Rc(t){var n=ob.pop()||new function(){bc(this),this.edge=this.site=this.circle=null};return n.site=t,n}function Lc(t){zc(t),tb.remove(t),ob.push(t),bc(t)}function Dc(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,a=t.N,u=[t];Lc(t);for(var f=o;f.circle&&Math.abs(e-f.circle.x)<ab&&Math.abs(r-f.circle.cy)<ab;)o=f.P,u.unshift(f),Lc(f),f=o;u.unshift(f),zc(f);for(var c=a;c.circle&&Math.abs(e-c.circle.x)<ab&&Math.abs(r-c.circle.cy)<ab;)a=c.N,u.push(c),Lc(c),c=a;u.push(c),zc(c);var s,l=u.length;for(s=1;s<l;++s)c=u[s],f=u[s-1],Tc(c.edge,f.site,c.site,i);f=u[0],(c=u[l-1]).edge=Mc(f.site,c.site,null,i),Pc(f),Pc(c)}function Uc(t){for(var n,e,r,i,o=t[0],a=t[1],u=tb._;u;)if((r=qc(u,a)-o)>ab)u=u.L;else{if(!((i=o-function(t,n){var e=t.N;if(e)return qc(e,n);var r=t.site;return r[1]===n?r[0]:1/0}(u,a))>ab)){r>-ab?(n=u.P,e=u):i>-ab?(n=u,e=u.N):n=e=u;break}if(!u.R){n=u;break}u=u.R}(function(t){nb[t.index]={site:t,halfedges:[]}})(t);var f=Rc(t);if(tb.insert(n,f),n||e){if(n===e)return zc(n),e=Rc(n.site),tb.insert(f,e),f.edge=e.edge=Mc(n.site,f.site),Pc(n),void Pc(e);if(e){zc(n),zc(e);var c=n.site,s=c[0],l=c[1],h=t[0]-s,d=t[1]-l,p=e.site,v=p[0]-s,g=p[1]-l,y=2*(h*g-d*v),_=h*h+d*d,b=v*v+g*g,m=[(g*_-d*b)/y+s,(h*b-v*_)/y+l];Tc(e.edge,c,p,m),f.edge=Mc(c,t,null,m),e.edge=Mc(t,p,null,m),Pc(n),Pc(e)}else f.edge=Mc(n.site,f.site)}}function qc(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var a=t.P;if(!a)return-1/0;var u=(e=a.site)[0],f=e[1],c=f-n;if(!c)return u;var s=u-r,l=1/o-1/c,h=s/c;return l?(-h+Math.sqrt(h*h-2*l*(s*s/(-2*c)-f+c/2+i-o/2)))/l+r:(r+u)/2}function Oc(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function Yc(t,n){return n[1]-t[1]||n[0]-t[0]}function Bc(t,n){var e,r,i,o=t.sort(Yc).pop();for(rb=[],nb=new Array(t.length),tb=new _c,eb=new _c;;)if(i=K_,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(Uc(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;Dc(i.arc)}if(function(){for(var t,n,e,r,i=0,o=nb.length;i<o;++i)if((t=nb[i])&&(r=(n=t.halfedges).length)){var a=new Array(r),u=new Array(r);for(e=0;e<r;++e)a[e]=e,u[e]=Ec(t,rb[n[e]]);for(a.sort(function(t,n){return u[n]-u[t]}),e=0;e<r;++e)u[e]=n[a[e]];for(e=0;e<r;++e)n[e]=u[e]}}(),n){var a=+n[0][0],u=+n[0][1],f=+n[1][0],c=+n[1][1];(function(t,n,e,r){for(var i,o=rb.length;o--;)Sc(i=rb[o],t,n,e,r)&&Nc(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>ab||Math.abs(i[0][1]-i[1][1])>ab)||delete rb[o]})(a,u,f,c),function(t,n,e,r){var i,o,a,u,f,c,s,l,h,d,p,v,g=nb.length,y=!0;for(i=0;i<g;++i)if(o=nb[i]){for(a=o.site,u=(f=o.halfedges).length;u--;)rb[f[u]]||f.splice(u,1);for(u=0,c=f.length;u<c;)p=(d=Cc(o,rb[f[u]]))[0],v=d[1],l=(s=kc(o,rb[f[++u%c]]))[0],h=s[1],(Math.abs(p-l)>ab||Math.abs(v-h)>ab)&&(f.splice(u,0,rb.push(Ac(a,d,Math.abs(p-t)<ab&&r-v>ab?[t,Math.abs(l-t)<ab?h:r]:Math.abs(v-r)<ab&&e-p>ab?[Math.abs(h-r)<ab?l:e,r]:Math.abs(p-e)<ab&&v-n>ab?[e,Math.abs(l-e)<ab?h:n]:Math.abs(v-n)<ab&&p-t>ab?[Math.abs(h-n)<ab?l:t,n]:null))-1),++c);c&&(y=!1)}if(y){var _,b,m,x=1/0;for(i=0,y=null;i<g;++i)(o=nb[i])&&(m=(_=(a=o.site)[0]-t)*_+(b=a[1]-n)*b)<x&&(x=m,y=o);if(y){var w=[t,n],M=[t,r],A=[e,r],T=[e,n];y.halfedges.push(rb.push(Ac(a=y.site,w,M))-1,rb.push(Ac(a,M,A))-1,rb.push(Ac(a,A,T))-1,rb.push(Ac(a,T,w))-1)}}for(i=0;i<g;++i)(o=nb[i])&&(o.halfedges.length||delete nb[i])}(a,u,f,c)}this.edges=rb,this.cells=nb,tb=eb=rb=nb=null}function Fc(t){return function(){return t}}function Ic(t,n,e){this.k=t,this.x=n,this.y=e}function jc(t){return t.__zoom||fb}function Hc(){t.event.stopImmediatePropagation()}function Xc(){t.event.preventDefault(),t.event.stopImmediatePropagation()}function Gc(){return!t.event.button}function Vc(){var t,n,e=this;return e instanceof SVGElement?(t=(e=e.ownerSVGElement||e).width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function $c(){return this.__zoom||fb}function Wc(){return-t.event.deltaY*(t.event.deltaMode?120:1)/500}function Zc(){return"ontouchstart"in this}function Qc(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}var Jc=e(n),Kc=Jc.right,ts=Jc.left,ns=Array.prototype,es=ns.slice,rs=ns.map,is=Math.sqrt(50),os=Math.sqrt(10),as=Math.sqrt(2),us=Array.prototype.slice,fs=1,cs=2,ss=3,ls=4,hs=1e-6,ds={value:function(){}};S.prototype=N.prototype={constructor:S,on:function(t,n){var e,r=this._,i=function(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}(t+"",r),o=-1,a=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<a;)if(e=(t=i[o]).type)r[e]=E(r[e],t.name,n);else if(null==n)for(e in r)r[e]=E(r[e],t.name,null);return this}for(;++o<a;)if((e=(t=i[o]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new S(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var ps="http://www.w3.org/1999/xhtml",vs={svg:"http://www.w3.org/2000/svg",xhtml:ps,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},gs=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var ys=document.documentElement;if(!ys.matches){var _s=ys.webkitMatchesSelector||ys.msMatchesSelector||ys.mozMatchesSelector||ys.oMatchesSelector;gs=function(t){return function(){return _s.call(this,t)}}}}var bs=gs;U.prototype={constructor:U,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var ms="$";H.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var xs={};if(t.event=null,"undefined"!=typeof document){"onmouseenter"in document.documentElement||(xs={mouseenter:"mouseover",mouseleave:"mouseout"})}var ws=[null];ut.prototype=ft.prototype={constructor:ut,select:function(t){"function"!=typeof t&&(t=z(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],f=u.length,c=r[i]=new Array(f),s=0;s<f;++s)(o=u[s])&&(a=t.call(o,o.__data__,s,u))&&("__data__"in o&&(a.__data__=o.__data__),c[s]=a);return new ut(r,this._parents)},selectAll:function(t){"function"!=typeof t&&(t=L(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],f=u.length,c=0;c<f;++c)(a=u[c])&&(r.push(t.call(a,a.__data__,c,u)),i.push(a));return new ut(r,i)},filter:function(t){"function"!=typeof t&&(t=bs(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new ut(r,this._parents)},data:function(t,n){if(!t)return d=new Array(this.size()),c=-1,this.each(function(t){d[++c]=t}),d;var e=n?O:q,r=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var o=i.length,a=new Array(o),u=new Array(o),f=new Array(o),c=0;c<o;++c){var s=r[c],l=i[c],h=l.length,d=t.call(s,s&&s.__data__,c,r),p=d.length,v=u[c]=new Array(p),g=a[c]=new Array(p);e(s,l,v,g,f[c]=new Array(h),d,n);for(var y,_,b=0,m=0;b<p;++b)if(y=v[b]){for(b>=m&&(m=b+1);!(_=g[m])&&++m<p;);y._next=_||null}}return a=new ut(a,r),a._enter=u,a._exit=f,a},enter:function(){return new ut(this._enter||this._groups.map(D),this._parents)},exit:function(){return new ut(this._exit||this._groups.map(D),this._parents)},merge:function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new ut(a,this._parents)},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Y);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],f=u.length,c=i[o]=new Array(f),s=0;s<f;++s)(a=u[s])&&(c[s]=a);c.sort(n)}return new ut(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){var t=0;return this.each(function(){++t}),t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=k(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):F(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=I(t+"");if(arguments.length<2){for(var r=j(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?X:G)(this,t)}}:n?function(t){return function(){X(this,t)}}:function(t){return function(){G(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?V:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?$:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(W)},lower:function(){return this.each(Z)},append:function(t){var n="function"==typeof t?t:C(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:C(t),r=null==n?Q:"function"==typeof n?n:z(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(J)},clone:function(t){return this.select(t?tt:K)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=function(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?it:rt,null==e&&(e=!1),r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var f,c=0,s=u.length;c<s;++c)for(r=0,f=u[c];r<a;++r)if((i=o[r]).type===f.type&&i.name===f.name)return f.value},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return at(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return at(this,t,n)}})(t,n))}};var Ms=0;lt.prototype=st.prototype={constructor:lt,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}},xt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var As="\\s*([+-]?\\d+)\\s*",Ts="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ns="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ss=/^#([0-9a-f]{3})$/,Es=/^#([0-9a-f]{6})$/,ks=new RegExp("^rgb\\("+[As,As,As]+"\\)$"),Cs=new RegExp("^rgb\\("+[Ns,Ns,Ns]+"\\)$"),Ps=new RegExp("^rgba\\("+[As,As,As,Ts]+"\\)$"),zs=new RegExp("^rgba\\("+[Ns,Ns,Ns,Ts]+"\\)$"),Rs=new RegExp("^hsl\\("+[Ts,Ns,Ns]+"\\)$"),Ls=new RegExp("^hsla\\("+[Ts,Ns,Ns,Ts]+"\\)$"),Ds={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Nt(Et,kt,{displayable:function(){return this.rgb().displayable()},hex:function(){return this.rgb().hex()},toString:function(){return this.rgb()+""}}),Nt(Lt,Rt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Lt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},hex:function(){return"#"+Dt(this.r)+Dt(this.g)+Dt(this.b)},toString:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Nt(Ot,qt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Ot(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Ot(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Lt(Yt(t>=240?t-240:t+120,i,r),Yt(t,i,r),Yt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Us=Math.PI/180,qs=180/Math.PI,Os=.96422,Ys=1,Bs=.82521,Fs=4/29,Is=6/29,js=3*Is*Is,Hs=Is*Is*Is;Nt(It,Ft,St(Et,{brighter:function(t){return new It(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new It(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return n=Os*Ht(n),t=Ys*Ht(t),e=Bs*Ht(e),new Lt(Xt(3.1338561*n-1.6168667*t-.4906146*e),Xt(-.9787684*n+1.9161415*t+.033454*e),Xt(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),Nt(Wt,$t,St(Et,{brighter:function(t){return new Wt(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Wt(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return Bt(this).rgb()}}));var Xs=-.29227,Gs=-.90649,Vs=1.97294,$s=Vs*Gs,Ws=1.78277*Vs,Zs=1.78277*Xs- -.14861*Gs;Nt(Qt,Zt,St(Et,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Qt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Qt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Us,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Lt(255*(n+e*(-.14861*r+1.78277*i)),255*(n+e*(Xs*r+Gs*i)),255*(n+e*(Vs*r)),this.opacity)}}));var Qs,Js,Ks,tl,nl,el,rl=function t(n){function e(t,n){var e=r((t=Rt(t)).r,(n=Rt(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),a=an(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}var r=on(n);return e.gamma=t,e}(1),il=un(Kt),ol=un(tn),al=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ul=new RegExp(al.source,"g"),fl=180/Math.PI,cl={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},sl=gn(function(t){return"none"===t?cl:(Qs||(Qs=document.createElement("DIV"),Js=document.documentElement,Ks=document.defaultView),Qs.style.transform=t,t=Ks.getComputedStyle(Js.appendChild(Qs),null).getPropertyValue("transform"),Js.removeChild(Qs),t=t.slice(7,-1).split(","),vn(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))},"px, ","px)","deg)"),ll=gn(function(t){return null==t?cl:(tl||(tl=document.createElementNS("http://www.w3.org/2000/svg","g")),tl.setAttribute("transform",t),(t=tl.transform.baseVal.consolidate())?(t=t.matrix,vn(t.a,t.b,t.c,t.d,t.e,t.f)):cl)},", ",")",")"),hl=Math.SQRT2,dl=2,pl=4,vl=1e-12,gl=bn(rn),yl=bn(an),_l=mn(rn),bl=mn(an),ml=xn(rn),xl=xn(an),wl=0,Ml=0,Al=0,Tl=1e3,Nl=0,Sl=0,El=0,kl="object"==typeof performance&&performance.now?performance:Date,Cl="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};An.prototype=Tn.prototype={constructor:An,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?wn():+e)+(null==n?0:+n),this._next||el===this||(el?el._next=this:nl=this,el=this),this._call=t,this._time=e,kn()},stop:function(){this._call&&(this._call=null,this._time=1/0,kn())}};var Pl=N("start","end","interrupt"),zl=[],Rl=0,Ll=1,Dl=2,Ul=3,ql=4,Ol=5,Yl=6,Bl=ft.prototype.constructor,Fl=0,Il=ft.prototype;On.prototype=Yn.prototype={constructor:On,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=z(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,f,c=r[a],s=c.length,l=o[a]=new Array(s),h=0;h<s;++h)(u=c[h])&&(f=t.call(u,u.__data__,h,c))&&("__data__"in u&&(f.__data__=u.__data__),l[h]=f,Pn(l[h],n,e,h,l,Ln(u,e)));return new On(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=L(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var f,c=r[u],s=c.length,l=0;l<s;++l)if(f=c[l]){for(var h,d=t.call(f,f.__data__,l,c),p=Ln(f,e),v=0,g=d.length;v<g;++v)(h=d[v])&&Pn(h,n,e,v,d,p);o.push(d),a.push(f)}return new On(o,a,n,e)},filter:function(t){"function"!=typeof t&&(t=bs(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,f=r[i]=[],c=0;c<u;++c)(o=a[c])&&t.call(o,o.__data__,c,a)&&f.push(o);return new On(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var f,c=n[u],s=e[u],l=c.length,h=a[u]=new Array(l),d=0;d<l;++d)(f=c[d]||s[d])&&(h[d]=f);for(;u<r;++u)a[u]=n[u];return new On(a,this._parents,this._name,this._id)},selection:function(){return new Bl(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=Bn(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)if(a=u[c]){var s=Ln(a,n);Pn(a,t,e,c,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new On(r,this._parents,t,e)},call:Il.call,nodes:Il.nodes,node:Il.node,size:Il.size,empty:Il.empty,each:Il.each,on:function(t,n){var e=this._id;return arguments.length<2?Ln(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?zn:Rn;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=k(t),r="transform"===e?ll:qn;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttributeNS(t.space,t.local)}}:function(t,n,e){var r,i,o;return function(){var a,u=e(this);if(null!=u)return(a=this.getAttribute(t))===u?null:a===r&&u===i?o:o=n(r=a,i=u);this.removeAttribute(t)}})(e,r,Un(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}:function(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}})(e,r,n+""))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=k(t);return this.tween(e,(r.local?function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}:function(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e})(r,n))},style:function(t,n,e){var r="transform"==(t+="")?sl:qn;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=F(this,t),a=(this.style.removeProperty(t),F(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,function(t){return function(){this.style.removeProperty(t)}}(t)):this.styleTween(t,"function"==typeof n?function(t,n,e){var r,i,o;return function(){var a=F(this,t),u=e(this);return null==u&&(this.style.removeProperty(t),u=F(this,t)),a===u?null:a===r&&u===i?o:o=n(r=a,i=u)}}(t,r,Un(this,"style."+t,n)):function(t,n,e){var r,i;return function(){var o=F(this,t);return o===e?null:o===r?i:i=n(r=o,e)}}(t,r,n+""),e)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Un(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Ln(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=Rn(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Rn(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},f=0,c=i.length;f<c;++f)if(i[f].name===n){i[f]=u;break}f===c&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){zn(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){zn(this,t).delay=n}})(n,t)):Ln(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){Rn(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n=+n,function(){Rn(this,t).duration=n}})(n,t)):Ln(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){Rn(this,t).ease=n}}(n,t)):Ln(this.node(),n).ease}};var jl=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),Hl=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Xl=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Gl=Math.PI,Vl=Gl/2,$l=4/11,Wl=6/11,Zl=8/11,Ql=.75,Jl=9/11,Kl=10/11,th=.9375,nh=21/22,eh=63/64,rh=1/$l/$l,ih=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),oh=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),ah=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),uh=2*Math.PI,fh=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),ch=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),sh=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=uh);return r.amplitude=function(n){return t(n,e*uh)},r.period=function(e){return t(n,e)},r}(1,.3),lh={time:null,delay:0,duration:250,ease:In};ft.prototype.interrupt=function(t){return this.each(function(){Dn(this,t)})},ft.prototype.transition=function(t){var n,e;t instanceof On?(n=t._id,t=t._name):(n=Bn(),(e=lh).time=wn(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],f=u.length,c=0;c<f;++c)(a=u[c])&&Pn(a,t,n,c,u,e||Vn(a,n));return new On(r,this._parents,t,n)};var hh=[null],dh={name:"drag"},ph={name:"space"},vh={name:"handle"},gh={name:"center"},yh={name:"x",handles:["e","w"].map(Qn),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},_h={name:"y",handles:["n","s"].map(Qn),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},bh={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(Qn),input:function(t){return t},output:function(t){return t}},mh={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},xh={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},wh={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},Mh={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},Ah={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},Th=Math.cos,Nh=Math.sin,Sh=Math.PI,Eh=Sh/2,kh=2*Sh,Ch=Math.max,Ph=Array.prototype.slice,zh=Math.PI,Rh=2*zh,Lh=Rh-1e-6;ie.prototype=oe.prototype={constructor:ie,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,a=this._y1,u=e-t,f=r-n,c=o-t,s=a-n,l=c*c+s*s;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(s*u-f*c)>1e-6&&i){var h=e-o,d=r-a,p=u*u+f*f,v=h*h+d*d,g=Math.sqrt(p),y=Math.sqrt(l),_=i*Math.tan((zh-Math.acos((p+l-v)/(2*g*y)))/2),b=_/y,m=_/g;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*c)+","+(n+b*s)),this._+="A"+i+","+i+",0,0,"+ +(s*h>c*d)+","+(this._x1=t+m*u)+","+(this._y1=n+m*f)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n;var a=(e=+e)*Math.cos(r),u=e*Math.sin(r),f=t+a,c=n+u,s=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+f+","+c:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-c)>1e-6)&&(this._+="L"+f+","+c),e&&(l<0&&(l=l%Rh+Rh),l>Lh?this._+="A"+e+","+e+",0,1,"+s+","+(t-a)+","+(n-u)+"A"+e+","+e+",0,1,"+s+","+(this._x1=f)+","+(this._y1=c):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=zh)+","+s+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};le.prototype=he.prototype={constructor:le,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var Dh=he.prototype;ye.prototype=_e.prototype={constructor:ye,has:Dh.has,add:function(t){return t+="",this["$"+t]=t,this},remove:Dh.remove,clear:Dh.clear,values:Dh.keys,size:Dh.size,empty:Dh.empty,each:Dh.each};var Uh=Array.prototype.slice,qh=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]],Oh={},Yh={},Bh=34,Fh=10,Ih=13,jh=ke(","),Hh=jh.parse,Xh=jh.parseRows,Gh=jh.format,Vh=jh.formatRows,$h=ke("\t"),Wh=$h.parse,Zh=$h.parseRows,Qh=$h.format,Jh=$h.formatRows,Kh=Le(Hh),td=Le(Wh),nd=Ue("application/xml"),ed=Ue("text/html"),rd=Ue("image/svg+xml"),id=je.prototype=He.prototype;id.copy=function(){var t,n,e=new He(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Xe(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Xe(n));return e},id.add=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Ye(this.cover(n,e),n,e,t)},id.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),f=1/0,c=1/0,s=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(a[e]=r,u[e]=i,r<f&&(f=r),r>s&&(s=r),i<c&&(c=i),i>l&&(l=i));for(s<f&&(f=this._x0,s=this._x1),l<c&&(c=this._y0,l=this._y1),this.cover(f,c).cover(s,l),e=0;e<o;++e)Ye(this,a[e],u[e],t[e]);return this},id.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var a,u,f=i-e,c=this._root;switch(u=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{a=new Array(4),a[u]=c,c=a}while(f*=2,i=e+f,o=r+f,t>i||n>o);break;case 1:do{a=new Array(4),a[u]=c,c=a}while(f*=2,e=i-f,o=r+f,e>t||n>o);break;case 2:do{a=new Array(4),a[u]=c,c=a}while(f*=2,i=e+f,r=o-f,t>i||r>n);break;case 3:do{a=new Array(4),a[u]=c,c=a}while(f*=2,e=i-f,r=o-f,e>t||r>n)}this._root&&this._root.length&&(this._root=c)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},id.data=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},id.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},id.find=function(t,n,e){var r,i,o,a,u,f,c,s=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],v=this._root;for(v&&p.push(new Be(v,s,l,h,d)),null==e?e=1/0:(s=t-e,l=n-e,h=t+e,d=n+e,e*=e);f=p.pop();)if(!(!(v=f.node)||(i=f.x0)>h||(o=f.y0)>d||(a=f.x1)<s||(u=f.y1)<l))if(v.length){var g=(i+a)/2,y=(o+u)/2;p.push(new Be(v[3],g,y,a,u),new Be(v[2],i,y,g,u),new Be(v[1],g,o,a,y),new Be(v[0],i,o,g,y)),(c=(n>=y)<<1|t>=g)&&(f=p[p.length-1],p[p.length-1]=p[p.length-1-c],p[p.length-1-c]=f)}else{var _=t-+this._x.call(null,v.data),b=n-+this._y.call(null,v.data),m=_*_+b*b;if(m<e){var x=Math.sqrt(e=m);s=t-x,l=n-x,h=t+x,d=n+x,r=v.data}}return r},id.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var n,e,r,i,o,a,u,f,c,s,l,h,d=this._root,p=this._x0,v=this._y0,g=this._x1,y=this._y1;if(!d)return this;if(d.length)for(;;){if((c=o>=(u=(p+g)/2))?p=u:g=u,(s=a>=(f=(v+y)/2))?v=f:y=f,n=d,!(d=d[l=s<<1|c]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},id.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},id.root=function(){return this._root},id.size=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},id.visit=function(t){var n,e,r,i,o,a,u=[],f=this._root;for(f&&u.push(new Be(f,this._x0,this._y0,this._x1,this._y1));n=u.pop();)if(!t(f=n.node,r=n.x0,i=n.y0,o=n.x1,a=n.y1)&&f.length){var c=(r+o)/2,s=(i+a)/2;(e=f[3])&&u.push(new Be(e,c,s,o,a)),(e=f[2])&&u.push(new Be(e,r,s,c,a)),(e=f[1])&&u.push(new Be(e,c,i,o,s)),(e=f[0])&&u.push(new Be(e,r,i,c,s))}return this},id.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new Be(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,a=n.x0,u=n.y0,f=n.x1,c=n.y1,s=(a+f)/2,l=(u+c)/2;(o=i[0])&&e.push(new Be(o,a,u,s,l)),(o=i[1])&&e.push(new Be(o,s,u,f,l)),(o=i[2])&&e.push(new Be(o,a,l,s,c)),(o=i[3])&&e.push(new Be(o,s,l,f,c))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},id.x=function(t){return arguments.length?(this._x=t,this):this._x},id.y=function(t){return arguments.length?(this._y=t,this):this._y};var od=10,ad=Math.PI*(3-Math.sqrt(5)),ud=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;tr.prototype=nr.prototype,nr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var fd,cd,sd={"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return er(100*t,n)},r:er,s:function(t,n){var e=Je(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(fd=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Je(t,Math.max(0,n+o-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},ld=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];or({decimal:".",thousands:",",grouping:[3],currency:["$",""]}),sr.prototype={constructor:sr,reset:function(){this.s=this.t=0},add:function(t){lr(jd,t,this.t),lr(this,jd.s,this.s),this.s?this.t+=jd.t:this.s=jd.t},valueOf:function(){return this.s}};var hd,dd,pd,vd,gd,yd,_d,bd,md,xd,wd,Md,Ad,Td,Nd,Sd,Ed,kd,Cd,Pd,zd,Rd,Ld,Dd,Ud,qd,Od,Yd,Bd,Fd,Id,jd=new sr,Hd=1e-6,Xd=1e-12,Gd=Math.PI,Vd=Gd/2,$d=Gd/4,Wd=2*Gd,Zd=180/Gd,Qd=Gd/180,Jd=Math.abs,Kd=Math.atan,tp=Math.atan2,np=Math.cos,ep=Math.ceil,rp=Math.exp,ip=Math.log,op=Math.pow,ap=Math.sin,up=Math.sign||function(t){return t>0?1:t<0?-1:0},fp=Math.sqrt,cp=Math.tan,sp={Feature:function(t,n){gr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)gr(e[r].geometry,n)}},lp={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){yr(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)yr(e[r],n,0)},Polygon:function(t,n){_r(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)_r(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)gr(e[r],n)}},hp=cr(),dp=cr(),pp={point:vr,lineStart:vr,lineEnd:vr,polygonStart:function(){hp.reset(),pp.lineStart=mr,pp.lineEnd=xr},polygonEnd:function(){var t=+hp;dp.add(t<0?Wd+t:t),this.lineStart=this.lineEnd=this.point=vr},sphere:function(){dp.add(Wd)}},vp=cr(),gp={point:Pr,lineStart:Rr,lineEnd:Lr,polygonStart:function(){gp.point=Dr,gp.lineStart=Ur,gp.lineEnd=qr,vp.reset(),pp.polygonStart()},polygonEnd:function(){pp.polygonEnd(),gp.point=Pr,gp.lineStart=Rr,gp.lineEnd=Lr,hp<0?(yd=-(bd=180),_d=-(md=90)):vp>Hd?md=90:vp<-Hd&&(_d=-90),Nd[0]=yd,Nd[1]=bd}},yp={sphere:vr,point:Fr,lineStart:jr,lineEnd:Gr,polygonStart:function(){yp.lineStart=Vr,yp.lineEnd=$r},polygonEnd:function(){yp.lineStart=jr,yp.lineEnd=Gr}};Kr.invert=Kr;var _p,bp,mp,xp,wp,Mp,Ap,Tp,Np,Sp,Ep,kp=cr(),Cp=di(function(){return!0},function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?Gd:-Gd,f=Jd(o-e);Jd(f-Gd)<Hd?(t.point(e,r=(r+a)/2>0?Vd:-Vd),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&f>=Gd&&(Jd(e-i)<Hd&&(e-=i*Hd),Jd(o-u)<Hd&&(o-=u*Hd),r=function(t,n,e,r){var i,o,a=ap(t-e);return Jd(a)>Hd?Kd((ap(n)*(o=np(r))*ap(e)-ap(r)*(i=np(n))*ap(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}},function(t,n,e,r){var i;if(null==t)i=e*Vd,r.point(-Gd,i),r.point(0,i),r.point(Gd,i),r.point(Gd,0),r.point(Gd,-i),r.point(0,-i),r.point(-Gd,-i),r.point(-Gd,0),r.point(-Gd,i);else if(Jd(t[0]-n[0])>Hd){var o=t[0]<n[0]?Gd:-Gd;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])},[-Gd,-Vd]),Pp=1e9,zp=-Pp,Rp=cr(),Lp={sphere:vr,point:vr,lineStart:function(){Lp.point=bi,Lp.lineEnd=_i},lineEnd:vr,polygonStart:vr,polygonEnd:vr},Dp=[null,null],Up={type:"LineString",coordinates:Dp},qp={Feature:function(t,n){return Mi(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(Mi(e[r].geometry,n))return!0;return!1}},Op={Sphere:function(){return!0},Point:function(t,n){return Ai(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ai(e[r],n))return!0;return!1},LineString:function(t,n){return Ti(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ti(e[r],n))return!0;return!1},Polygon:function(t,n){return Ni(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Ni(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(Mi(e[r],n))return!0;return!1}},Yp=cr(),Bp=cr(),Fp={point:vr,lineStart:vr,lineEnd:vr,polygonStart:function(){Fp.lineStart=Ri,Fp.lineEnd=Ui},polygonEnd:function(){Fp.lineStart=Fp.lineEnd=Fp.point=vr,Yp.add(Jd(Bp)),Bp.reset()},result:function(){var t=Yp/2;return Yp.reset(),t}},Ip=1/0,jp=Ip,Hp=-Ip,Xp=Hp,Gp={point:function(t,n){t<Ip&&(Ip=t),t>Hp&&(Hp=t),n<jp&&(jp=n),n>Xp&&(Xp=n)},lineStart:vr,lineEnd:vr,polygonStart:vr,polygonEnd:vr,result:function(){var t=[[Ip,jp],[Hp,Xp]];return Hp=Xp=-(jp=Ip=1/0),t}},Vp=0,$p=0,Wp=0,Zp=0,Qp=0,Jp=0,Kp=0,tv=0,nv=0,ev={point:qi,lineStart:Oi,lineEnd:Fi,polygonStart:function(){ev.lineStart=Ii,ev.lineEnd=ji},polygonEnd:function(){ev.point=qi,ev.lineStart=Oi,ev.lineEnd=Fi},result:function(){var t=nv?[Kp/nv,tv/nv]:Jp?[Zp/Jp,Qp/Jp]:Wp?[Vp/Wp,$p/Wp]:[NaN,NaN];return Vp=$p=Wp=Zp=Qp=Jp=Kp=tv=nv=0,t}};Gi.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,Wd)}},result:vr};var rv,iv,ov,av,uv,fv=cr(),cv={point:vr,lineStart:function(){cv.point=Vi},lineEnd:function(){rv&&$i(iv,ov),cv.point=vr},polygonStart:function(){rv=!0},polygonEnd:function(){rv=null},result:function(){var t=+fv;return fv.reset(),t}};Wi.prototype={_radius:4.5,_circle:Zi(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:null==this._circle&&(this._circle=Zi(this._radius)),this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},Ji.prototype={constructor:Ji,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var sv=16,lv=np(30*Qd),hv=Qi({point:function(t,n){this.stream.point(t*Qd,n*Qd)}}),dv=ho(function(t){return fp(2/(1+t))});dv.invert=po(function(t){return 2*dr(t/2)});var pv=ho(function(t){return(t=hr(t))&&t/ap(t)});pv.invert=po(function(t){return t}),vo.invert=function(t,n){return[t,2*Kd(rp(n))-Vd]},bo.invert=bo,xo.invert=po(Kd),Mo.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,a=o*o;r-=e=(r*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-n)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(Jd(e)>Hd&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Ao.invert=po(dr),To.invert=po(function(t){return 2*Kd(t)}),No.invert=function(t,n){return[-n,2*Kd(rp(t))-Vd]},Do.prototype=Po.prototype={constructor:Do,count:function(){return this.eachAfter(Co)},each:function(t){var n,e,r,i,o=this,a=[o];do{for(n=a.reverse(),a=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r])}while(a.length);return this},eachAfter:function(t){for(var n,e,r,i=this,o=[i],a=[];i=o.pop();)if(a.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=a.pop();)t(i);return this},eachBefore:function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},sum:function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},sort:function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){var t=[];return this.each(function(n){t.push(n)}),t},leaves:function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},links:function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n},copy:function(){return Po(this).eachBefore(Ro)}};var vv=Array.prototype.slice,gv="$",yv={depth:-1},_v={};ca.prototype=Object.create(Do.prototype);var bv=(1+Math.sqrt(5))/2,mv=function t(n){function e(t,e,r,i,o){la(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(bv),xv=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,f,c,s,l=-1,h=a.length,d=t.value;++l<h;){for(f=(u=a[l]).children,c=u.value=0,s=f.length;c<s;++c)u.value+=f[c].value;u.dice?na(u,e,r,i,r+=(o-r)*u.value/d):sa(u,e,r,e+=(i-e)*u.value/d,o),d-=u.value}else t._squarify=a=la(n,t,e,r,i,o),a.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(bv),wv=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(va),Mv=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(va),Av=function t(n){function e(){var t=Mv.source(n).apply(this,arguments);return function(){return Math.exp(t())}}return e.source=t,e}(va),Tv=function t(n){function e(t){return function(){for(var e=0,r=0;r<t;++r)e+=n();return e}}return e.source=t,e}(va),Nv=function t(n){function e(t){var e=Tv.source(n)(t);return function(){return e()/t}}return e.source=t,e}(va),Sv=function t(n){function e(t){return function(){return-Math.log(1-n())/t}}return e.source=t,e}(va),Ev=Array.prototype,kv=Ev.map,Cv=Ev.slice,Pv={name:"implicit"},zv=[0,1],Rv=new Date,Lv=new Date,Dv=Ia(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Dv.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Ia(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Dv:null};var Uv=Dv.range,qv=6e4,Ov=6048e5,Yv=Ia(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Bv=Yv.range,Fv=Ia(function(t){t.setTime(Math.floor(t/qv)*qv)},function(t,n){t.setTime(+t+n*qv)},function(t,n){return(n-t)/qv},function(t){return t.getMinutes()}),Iv=Fv.range,jv=Ia(function(t){var n=t.getTimezoneOffset()*qv%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),Hv=jv.range,Xv=Ia(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*qv)/864e5},function(t){return t.getDate()-1}),Gv=Xv.range,Vv=ja(0),$v=ja(1),Wv=ja(2),Zv=ja(3),Qv=ja(4),Jv=ja(5),Kv=ja(6),tg=Vv.range,ng=$v.range,eg=Wv.range,rg=Zv.range,ig=Qv.range,og=Jv.range,ag=Kv.range,ug=Ia(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),fg=ug.range,cg=Ia(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});cg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ia(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var sg=cg.range,lg=Ia(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*qv)},function(t,n){return(n-t)/qv},function(t){return t.getUTCMinutes()}),hg=lg.range,dg=Ia(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),pg=dg.range,vg=Ia(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),gg=vg.range,yg=Ha(0),_g=Ha(1),bg=Ha(2),mg=Ha(3),xg=Ha(4),wg=Ha(5),Mg=Ha(6),Ag=yg.range,Tg=_g.range,Ng=bg.range,Sg=mg.range,Eg=xg.range,kg=wg.range,Cg=Mg.range,Pg=Ia(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),zg=Pg.range,Rg=Ia(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Rg.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ia(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Lg,Dg=Rg.range,Ug={"-":"",_:" ",0:"0"},qg=/^\s*\d+/,Og=/^%/,Yg=/[\\^$*+?|[\]().{}]/g;nf({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Bg="%Y-%m-%dT%H:%M:%S.%LZ",Fg=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat(Bg),Ig=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse(Bg),jg=1e3,Hg=60*jg,Xg=60*Hg,Gg=24*Xg,Vg=7*Gg,$g=30*Gg,Wg=365*Gg,Zg=ff("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Qg=ff("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),Jg=ff("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Kg=ff("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),ty=ff("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),ny=ff("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),ey=ff("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),ry=ff("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),iy=ff("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),oy=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(ff),ay=cf(oy),uy=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(ff),fy=cf(uy),cy=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(ff),sy=cf(cy),ly=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(ff),hy=cf(ly),dy=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(ff),py=cf(dy),vy=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(ff),gy=cf(vy),yy=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(ff),_y=cf(yy),by=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(ff),my=cf(by),xy=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(ff),wy=cf(xy),My=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(ff),Ay=cf(My),Ty=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(ff),Ny=cf(Ty),Sy=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(ff),Ey=cf(Sy),ky=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(ff),Cy=cf(ky),Py=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(ff),zy=cf(Py),Ry=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(ff),Ly=cf(Ry),Dy=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(ff),Uy=cf(Dy),qy=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(ff),Oy=cf(qy),Yy=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(ff),By=cf(Yy),Fy=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(ff),Iy=cf(Fy),jy=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(ff),Hy=cf(jy),Xy=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(ff),Gy=cf(Xy),Vy=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(ff),$y=cf(Vy),Wy=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(ff),Zy=cf(Wy),Qy=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(ff),Jy=cf(Qy),Ky=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(ff),t_=cf(Ky),n_=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(ff),e_=cf(n_),r_=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(ff),i_=cf(r_),o_=xl(Zt(300,.5,0),Zt(-240,.5,1)),a_=xl(Zt(-100,.75,.35),Zt(80,1.5,.8)),u_=xl(Zt(260,.75,.35),Zt(80,1.5,.8)),f_=Zt(),c_=Rt(),s_=Math.PI/3,l_=2*Math.PI/3,h_=sf(ff("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),d_=sf(ff("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),p_=sf(ff("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),v_=sf(ff("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),g_=Math.abs,y_=Math.atan2,__=Math.cos,b_=Math.max,m_=Math.min,x_=Math.sin,w_=Math.sqrt,M_=1e-12,A_=Math.PI,T_=A_/2,N_=2*A_;bf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var S_=Ef(mf);Sf.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var E_=Array.prototype.slice,k_={draw:function(t,n){var e=Math.sqrt(n/A_);t.moveTo(e,0),t.arc(0,0,e,0,N_)}},C_={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},P_=Math.sqrt(1/3),z_=2*P_,R_={draw:function(t,n){var e=Math.sqrt(n/z_),r=e*P_;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},L_=Math.sin(A_/10)/Math.sin(7*A_/10),D_=Math.sin(N_/10)*L_,U_=-Math.cos(N_/10)*L_,q_={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=D_*e,i=U_*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var a=N_*o/5,u=Math.cos(a),f=Math.sin(a);t.lineTo(f*e,-u*e),t.lineTo(u*r-f*i,f*r+u*i)}t.closePath()}},O_={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Y_=Math.sqrt(3),B_={draw:function(t,n){var e=-Math.sqrt(n/(3*Y_));t.moveTo(0,2*e),t.lineTo(-Y_*e,-e),t.lineTo(Y_*e,-e),t.closePath()}},F_=Math.sqrt(3)/2,I_=1/Math.sqrt(12),j_=3*(I_/2+1),H_={draw:function(t,n){var e=Math.sqrt(n/j_),r=e/2,i=e*I_,o=r,a=e*I_+e,u=-o,f=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,f),t.lineTo(-.5*r-F_*i,F_*r+-.5*i),t.lineTo(-.5*o-F_*a,F_*o+-.5*a),t.lineTo(-.5*u-F_*f,F_*u+-.5*f),t.lineTo(-.5*r+F_*i,-.5*i-F_*r),t.lineTo(-.5*o+F_*a,-.5*a-F_*o),t.lineTo(-.5*u+F_*f,-.5*f-F_*u),t.closePath()}},X_=[k_,C_,R_,O_,q_,B_,H_];Ff.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Bf(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},If.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},jf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Bf(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Hf.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,f=-1;++f<=e;)r=f/e,this._basis.point(this._beta*t[f]+(1-this._beta)*(i+r*a),this._beta*n[f]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var G_=function t(n){function e(t){return 1===n?new Ff(t):new Hf(t,n)}return e.beta=function(n){return t(+n)},e}(.85);Gf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Xf(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var V_=function t(n){function e(t){return new Gf(t,n)}return e.tension=function(n){return t(+n)},e}(0);Vf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var $_=function t(n){function e(t){return new Vf(t,n)}return e.tension=function(n){return t(+n)},e}(0);$f.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Xf(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var W_=function t(n){function e(t){return new $f(t,n)}return e.tension=function(n){return t(+n)},e}(0);Zf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Z_=function t(n){function e(t){return n?new Zf(t,n):new Gf(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Qf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Q_=function t(n){function e(t){return n?new Qf(t,n):new Vf(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Jf.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Wf(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var J_=function t(n){function e(t){return n?new Jf(t,n):new $f(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Kf.prototype={areaStart:Yf,areaEnd:Yf,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:rc(this,this._t0,ec(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,rc(this,ec(this,e=nc(this,t,n)),e);break;default:rc(this,this._t0,e=nc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(oc.prototype=Object.create(ic.prototype)).point=function(t,n){ic.prototype.point.call(this,n,t)},ac.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},uc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=fc(t),i=fc(n),o=0,a=1;a<e;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],n[a]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},cc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}},_c.prototype={constructor:_c,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=wc(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)e===(r=e.U).L?(i=r.R)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(mc(this,e),e=(t=e).U),e.C=!1,r.C=!0,xc(this,r)):(i=r.L)&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(xc(this,e),e=(t=e).U),e.C=!1,r.C=!0,mc(this,r)),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,a=t.R;if(e=o?a?wc(a):o:a,i?i.L===t?i.L=e:i.R=e:this._=e,o&&a?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==a?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=a,a.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r)if(t&&t.C)t.C=!1;else{do{if(t===this._)break;if(t===i.L){if((n=i.R).C&&(n.C=!1,i.C=!0,mc(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,xc(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,mc(this,i),t=this._;break}}else if((n=i.L).C&&(n.C=!1,i.C=!0,xc(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,mc(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,xc(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var K_,tb,nb,eb,rb,ib=[],ob=[],ab=1e-6,ub=1e-12;Bc.prototype={constructor:Bc,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return kc(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,a,u=e.site,f=-1,c=n[i[o-1]],s=c.left===u?c.right:c.left;++f<o;)a=s,s=(c=n[i[f]]).left===u?c.right:c.left,a&&s&&r<a.index&&r<s.index&&Oc(u,a,s)<0&&t.push([u.data,a.data,s.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,a=o._found||0,u=o.cells.length;!(i=o.cells[a]);)if(++a>=u)return null;var f=t-i.site[0],c=n-i.site[1],s=f*f+c*c;do{i=o.cells[r=a],a=null,i.halfedges.forEach(function(e){var r=o.edges[e],u=r.left;if(u!==i.site&&u||(u=r.right)){var f=t-u[0],c=n-u[1],l=f*f+c*c;l<s&&(s=l,a=u.index)}})}while(null!==a);return o._found=r,null==e||s<=e*e?i.site:null}},Ic.prototype={constructor:Ic,scale:function(t){return 1===t?this:new Ic(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Ic(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var fb=new Ic(1,0,0);jc.prototype=Ic.prototype,t.version="5.5.0",t.bisect=Kc,t.bisectRight=Kc,t.bisectLeft=ts,t.ascending=n,t.bisector=e,t.cross=function(t,n,e){var i,o,a,u,f=t.length,c=n.length,s=new Array(f*c);for(null==e&&(e=r),i=a=0;i<f;++i)for(u=t[i],o=0;o<c;++o,++a)s[a]=e(u,n[o]);return s},t.descending=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},t.deviation=a,t.extent=u,t.histogram=function(){function t(t){var i,o,a=t.length,u=new Array(a);for(i=0;i<a;++i)u[i]=n(t[i],i,t);var f=e(u),c=f[0],l=f[1],h=r(u,c,l);Array.isArray(h)||(h=d(c,l,h),h=s(Math.ceil(c/h)*h,Math.floor(l/h)*h,h));for(var p=h.length;h[0]<=c;)h.shift(),--p;for(;h[p-1]>l;)h.pop(),--p;var v,g=new Array(p+1);for(i=0;i<=p;++i)(v=g[i]=[]).x0=i>0?h[i-1]:c,v.x1=i<p?h[i]:l;for(i=0;i<a;++i)c<=(o=u[i])&&o<=l&&g[Kc(h,o,0,p)].push(t[i]);return g}var n=c,e=u,r=p;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:f(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:f([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r="function"==typeof n?n:Array.isArray(n)?f(es.call(n)):f(n),t):r},t},t.thresholdFreedmanDiaconis=function(t,e,r){return t=rs.call(t,i).sort(n),Math.ceil((r-e)/(2*(v(t,.75)-v(t,.25))*Math.pow(t.length,-1/3)))},t.thresholdScott=function(t,n,e){return Math.ceil((e-n)/(3.5*a(t)*Math.pow(t.length,-1/3)))},t.thresholdSturges=p,t.max=g,t.mean=function(t,n){var e,r=t.length,o=r,a=-1,u=0;if(null==n)for(;++a<r;)isNaN(e=i(t[a]))?--o:u+=e;else for(;++a<r;)isNaN(e=i(n(t[a],a,t)))?--o:u+=e;if(o)return u/o},t.median=function(t,e){var r,o=t.length,a=-1,u=[];if(null==e)for(;++a<o;)isNaN(r=i(t[a]))||u.push(r);else for(;++a<o;)isNaN(r=i(e(t[a],a,t)))||u.push(r);return v(u.sort(n),.5)},t.merge=y,t.min=_,t.pairs=function(t,n){null==n&&(n=r);for(var e=0,i=t.length-1,o=t[0],a=new Array(i<0?0:i);e<i;)a[e]=n(o,o=t[++e]);return a},t.permute=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},t.quantile=v,t.range=s,t.scan=function(t,e){if(r=t.length){var r,i,o=0,a=0,u=t[a];for(null==e&&(e=n);++o<r;)(e(i=t[o],u)<0||0!==e(u,u))&&(u=i,a=o);return 0===e(u,u)?a:void 0}},t.shuffle=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},t.sum=function(t,n){var e,r=t.length,i=-1,o=0;if(null==n)for(;++i<r;)(e=+t[i])&&(o+=e);else for(;++i<r;)(e=+n(t[i],i,t))&&(o+=e);return o},t.ticks=l,t.tickIncrement=h,t.tickStep=d,t.transpose=b,t.variance=o,t.zip=function(){return b(arguments)},t.axisTop=function(t){return T(fs,t)},t.axisRight=function(t){return T(cs,t)},t.axisBottom=function(t){return T(ss,t)},t.axisLeft=function(t){return T(ls,t)},t.brush=function(){return ee(bh)},t.brushX=function(){return ee(yh)},t.brushY=function(){return ee(_h)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.chord=function(){function t(t){var o,a,u,f,c,l,h=t.length,d=[],p=s(h),v=[],g=[],y=g.groups=new Array(h),_=new Array(h*h);for(o=0,c=-1;++c<h;){for(a=0,l=-1;++l<h;)a+=t[c][l];d.push(a),v.push(s(h)),o+=a}for(e&&p.sort(function(t,n){return e(d[t],d[n])}),r&&v.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),f=(o=Ch(0,kh-n*h)/o)?n:kh/h,a=0,c=-1;++c<h;){for(u=a,l=-1;++l<h;){var b=p[c],m=v[b][l],x=t[b][m],w=a,M=a+=x*o;_[m*h+b]={index:b,subindex:m,startAngle:w,endAngle:M,value:x}}y[b]={index:b,startAngle:u,endAngle:a,value:d[b]},a+=f}for(c=-1;++c<h;)for(l=c-1;++l<h;){var A=_[l*h+c],T=_[c*h+l];(A.value||T.value)&&g.push(A.value<T.value?{source:T,target:A}:{source:A,target:T})}return i?g.sort(i):g}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Ch(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=function(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}(n))._=n,t):i&&i._},t},t.ribbon=function(){function t(){var t,u=Ph.call(arguments),f=n.apply(this,u),c=e.apply(this,u),s=+r.apply(this,(u[0]=f,u)),l=i.apply(this,u)-Eh,h=o.apply(this,u)-Eh,d=s*Th(l),p=s*Nh(l),v=+r.apply(this,(u[0]=c,u)),g=i.apply(this,u)-Eh,y=o.apply(this,u)-Eh;if(a||(a=t=oe()),a.moveTo(d,p),a.arc(0,0,s,l,h),l===g&&h===y||(a.quadraticCurveTo(0,0,v*Th(g),v*Nh(g)),a.arc(0,0,v,g,y)),a.quadraticCurveTo(0,0,d,p),a.closePath(),t)return a=null,t+""||null}var n=ae,e=ue,r=fe,i=ce,o=se,a=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:re(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:re(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:re(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(a=null==n?null:n,t):a},t},t.nest=function(){function t(n,i,a,u){if(i>=o.length)return null!=e&&n.sort(e),null!=r?r(n):n;for(var f,c,s,l=-1,h=n.length,d=o[i++],p=he(),v=a();++l<h;)(s=p.get(f=d(c=n[l])+""))?s.push(c):p.set(f,[c]);return p.each(function(n,e){u(v,e,t(n,i,a,u))}),v}function n(t,e){if(++e>o.length)return t;var i,u=a[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=u?i.sort(function(t,n){return u(t.key,n.key)}):i}var e,r,i,o=[],a=[];return i={object:function(n){return t(n,0,de,pe)},map:function(n){return t(n,0,ve,ge)},entries:function(e){return n(t(e,0,ve,ge),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return a[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},t.set=_e,t.map=he,t.keys=function(t){var n=[];for(var e in t)n.push(e);return n},t.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},t.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},t.color=kt,t.rgb=Rt,t.hsl=qt,t.lab=Ft,t.hcl=$t,t.lch=function(t,n,e,r){return 1===arguments.length?Vt(t):new Wt(e,n,t,null==r?1:r)},t.gray=function(t,n){return new It(t,0,0,null==n?1:n)},t.cubehelix=Zt,t.contours=Me,t.contourDensity=function(){function t(t){var e=new Float32Array(v*y),r=new Float32Array(v*y);t.forEach(function(t,n,r){var i=a(t,n,r)+p>>h,o=u(t,n,r)+p>>h;i>=0&&i<v&&o>=0&&o<y&&++e[i+o*v]}),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h),Ae({width:v,height:y,data:e},{width:v,height:y,data:r},l>>h),Te({width:v,height:y,data:r},{width:v,height:y,data:e},l>>h);var i=_(e);if(!Array.isArray(i)){var o=g(e);i=d(0,o,i),(i=s(0,Math.floor(o/i)*i,i)).shift()}return Me().thresholds(i).size([v,y])(e).map(n)}function n(t){return t.value*=Math.pow(2,-2*h),t.coordinates.forEach(e),t}function e(t){t.forEach(r)}function r(t){t.forEach(i)}function i(t){t[0]=t[0]*Math.pow(2,h)-p,t[1]=t[1]*Math.pow(2,h)-p}function o(){return p=3*l,v=f+2*p>>h,y=c+2*p>>h,t}var a=Ne,u=Se,f=960,c=500,l=20,h=2,p=3*l,v=f+2*p>>h,y=c+2*p>>h,_=me(20);return t.x=function(n){return arguments.length?(a="function"==typeof n?n:me(+n),t):a},t.y=function(n){return arguments.length?(u="function"==typeof n?n:me(+n),t):u},t.size=function(t){if(!arguments.length)return[f,c];var n=Math.ceil(t[0]),e=Math.ceil(t[1]);if(!(n>=0||n>=0))throw new Error("invalid size");return f=n,c=e,o()},t.cellSize=function(t){if(!arguments.length)return 1<<h;if(!((t=+t)>=1))throw new Error("invalid cell size");return h=Math.floor(Math.log(t)/Math.LN2),o()},t.thresholds=function(n){return arguments.length?(_="function"==typeof n?n:Array.isArray(n)?me(Uh.call(n)):me(n),t):_},t.bandwidth=function(t){if(!arguments.length)return Math.sqrt(l*(l+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return l=Math.round((Math.sqrt(4*t*t+1)-1)/2),o()},t},t.dispatch=N,t.drag=function(){function n(t){t.on("mousedown.drag",e).filter(g).on("touchstart.drag",o).on("touchmove.drag",a).on("touchend.drag touchcancel.drag",u).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!h&&d.apply(this,arguments)){var n=f("mouse",p.apply(this,arguments),pt,this,arguments);n&&(ct(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),_t(t.event.view),gt(),l=!1,c=t.event.clientX,s=t.event.clientY,n("start"))}}function r(){if(yt(),!l){var n=t.event.clientX-c,e=t.event.clientY-s;l=n*n+e*e>m}y.mouse("drag")}function i(){ct(t.event.view).on("mousemove.drag mouseup.drag",null),bt(t.event.view,l),yt(),y.mouse("end")}function o(){if(d.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=p.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=f(r[n].identifier,i,vt,this,arguments))&&(gt(),e("start"))}}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=y[r[n].identifier])&&(yt(),e("drag"))}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(h&&clearTimeout(h),h=setTimeout(function(){h=null},500),n=0;n<i;++n)(e=y[r[n].identifier])&&(gt(),e("end"))}function f(e,r,i,o,a){var u,f,c,s=i(r,e),l=_.copy();if(ot(new xt(n,"beforestart",u,e,b,s[0],s[1],0,0,l),function(){return null!=(t.event.subject=u=v.apply(o,a))&&(f=u.x-s[0]||0,c=u.y-s[1]||0,!0)}))return function t(h){var d,p=s;switch(h){case"start":y[e]=t,d=b++;break;case"end":delete y[e],--b;case"drag":s=i(r,e),d=b}ot(new xt(n,h,u,e,d,s[0]+f,s[1]+c,s[0]-p[0],s[1]-p[1],l),l.apply,l,[h,o,a])}}var c,s,l,h,d=wt,p=Mt,v=At,g=Tt,y={},_=N("start","drag","end"),b=0,m=0;return n.filter=function(t){return arguments.length?(d="function"==typeof t?t:mt(!!t),n):d},n.container=function(t){return arguments.length?(p="function"==typeof t?t:mt(t),n):p},n.subject=function(t){return arguments.length?(v="function"==typeof t?t:mt(t),n):v},n.touchable=function(t){return arguments.length?(g="function"==typeof t?t:mt(!!t),n):g},n.on=function(){var t=_.on.apply(_,arguments);return t===_?n:t},n.clickDistance=function(t){return arguments.length?(m=(t=+t)*t,n):Math.sqrt(m)},n},t.dragDisable=_t,t.dragEnable=bt,t.dsvFormat=ke,t.csvParse=Hh,t.csvParseRows=Xh,t.csvFormat=Gh,t.csvFormatRows=Vh,t.tsvParse=Wh,t.tsvParseRows=Zh,t.tsvFormat=Qh,t.tsvFormatRows=Jh,t.easeLinear=function(t){return+t},t.easeQuad=Fn,t.easeQuadIn=function(t){return t*t},t.easeQuadOut=function(t){return t*(2-t)},t.easeQuadInOut=Fn,t.easeCubic=In,t.easeCubicIn=function(t){return t*t*t},t.easeCubicOut=function(t){return--t*t*t+1},t.easeCubicInOut=In,t.easePoly=Xl,t.easePolyIn=jl,t.easePolyOut=Hl,t.easePolyInOut=Xl,t.easeSin=jn,t.easeSinIn=function(t){return 1-Math.cos(t*Vl)},t.easeSinOut=function(t){return Math.sin(t*Vl)},t.easeSinInOut=jn,t.easeExp=Hn,t.easeExpIn=function(t){return Math.pow(2,10*t-10)},t.easeExpOut=function(t){return 1-Math.pow(2,-10*t)},t.easeExpInOut=Hn,t.easeCircle=Xn,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCircleInOut=Xn,t.easeBounce=Gn,t.easeBounceIn=function(t){return 1-Gn(1-t)},t.easeBounceOut=Gn,t.easeBounceInOut=function(t){return((t*=2)<=1?1-Gn(1-t):Gn(t-1)+1)/2},t.easeBack=ah,t.easeBackIn=ih,t.easeBackOut=oh,t.easeBackInOut=ah,t.easeElastic=ch,t.easeElasticIn=fh,t.easeElasticOut=ch,t.easeElasticInOut=sh,t.blob=function(t,n){return fetch(t,n).then(Ce)},t.buffer=function(t,n){return fetch(t,n).then(Pe)},t.dsv=function(t,n,e,r){3===arguments.length&&"function"==typeof e&&(r=e,e=void 0);var i=ke(t);return Re(n,e).then(function(t){return i.parse(t,r)})},t.csv=Kh,t.tsv=td,t.image=function(t,n){return new Promise(function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t})},t.json=function(t,n){return fetch(t,n).then(De)},t.text=Re,t.xml=nd,t.html=ed,t.svg=rd,t.forceCenter=function(t,n){function e(){var e,i,o=r.length,a=0,u=0;for(e=0;e<o;++e)a+=(i=r[e]).x,u+=i.y;for(a=a/o-t,u=u/o-n,e=0;e<o;++e)(i=r[e]).x-=a,i.y-=u}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},t.forceCollide=function(t){function n(){for(var t,n,r,f,c,s,l,h=i.length,d=0;d<u;++d)for(n=je(i,Ge,Ve).visitAfter(e),t=0;t<h;++t)r=i[t],s=o[r.index],l=s*s,f=r.x+r.vx,c=r.y+r.vy,n.visit(function(t,n,e,i,o){var u=t.data,h=t.r,d=s+h;if(!u)return n>f+d||i<f-d||e>c+d||o<c-d;if(u.index>r.index){var p=f-u.x-u.vx,v=c-u.y-u.vy,g=p*p+v*v;g<d*d&&(0===p&&(p=Oe(),g+=p*p),0===v&&(v=Oe(),g+=v*v),g=(d-(g=Math.sqrt(g)))/g*a,r.vx+=(p*=g)*(d=(h*=h)/(l+h)),r.vy+=(v*=g)*d,u.vx-=p*(d=1-d),u.vy-=v*d)}})}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,a=1,u=1;return"function"!=typeof t&&(t=qe(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(u=+t,n):u},n.strength=function(t){return arguments.length?(a=+t,n):a},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:qe(+e),r(),n):t},n},t.forceLink=function(t){function n(n){for(var e=0,r=t.length;e<d;++e)for(var i,u,f,s,l,h,p,v=0;v<r;++v)u=(i=t[v]).source,s=(f=i.target).x+f.vx-u.x-u.vx||Oe(),l=f.y+f.vy-u.y-u.vy||Oe(),s*=h=((h=Math.sqrt(s*s+l*l))-a[v])/h*n*o[v],l*=h,f.vx-=s*(p=c[v]),f.vy-=l*p,u.vx+=s*(p=1-p),u.vy+=l*p}function e(){if(u){var n,e,l=u.length,h=t.length,d=he(u,s);for(n=0,f=new Array(l);n<h;++n)(e=t[n]).index=n,"object"!=typeof e.source&&(e.source=We(d,e.source)),"object"!=typeof e.target&&(e.target=We(d,e.target)),f[e.source.index]=(f[e.source.index]||0)+1,f[e.target.index]=(f[e.target.index]||0)+1;for(n=0,c=new Array(h);n<h;++n)e=t[n],c[n]=f[e.source.index]/(f[e.source.index]+f[e.target.index]);o=new Array(h),r(),a=new Array(h),i()}}function r(){if(u)for(var n=0,e=t.length;n<e;++n)o[n]=+l(t[n],n,t)}function i(){if(u)for(var n=0,e=t.length;n<e;++n)a[n]=+h(t[n],n,t)}var o,a,u,f,c,s=$e,l=function(t){return 1/Math.min(f[t.source.index],f[t.target.index])},h=qe(30),d=1;return null==t&&(t=[]),n.initialize=function(t){u=t,e()},n.links=function(r){return arguments.length?(t=r,e(),n):t},n.id=function(t){return arguments.length?(s=t,n):s},n.iterations=function(t){return arguments.length?(d=+t,n):d},n.strength=function(t){return arguments.length?(l="function"==typeof t?t:qe(+t),r(),n):l},n.distance=function(t){return arguments.length?(h="function"==typeof t?t:qe(+t),i(),n):h},n},t.forceManyBody=function(){function t(t){var n,u=i.length,f=je(i,Ze,Qe).visitAfter(e);for(a=t,n=0;n<u;++n)o=i[n],f.visit(r)}function n(){if(i){var t,n,e=i.length;for(u=new Array(e),t=0;t<e;++t)n=i[t],u[n.index]=+f(n,t,i)}}function e(t){var n,e,r,i,o,a=0,f=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=Math.abs(n.value))&&(a+=n.value,f+=e,r+=e*n.x,i+=e*n.y);t.x=r/f,t.y=i/f}else{(n=t).x=n.data.x,n.y=n.data.y;do{a+=u[n.data.index]}while(n=n.next)}t.value=a}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,f=t.y-o.y,h=r-n,d=i*i+f*f;if(h*h/l<d)return d<s&&(0===i&&(i=Oe(),d+=i*i),0===f&&(f=Oe(),d+=f*f),d<c&&(d=Math.sqrt(c*d)),o.vx+=i*t.value*a/d,o.vy+=f*t.value*a/d),!0;if(!(t.length||d>=s)){(t.data!==o||t.next)&&(0===i&&(i=Oe(),d+=i*i),0===f&&(f=Oe(),d+=f*f),d<c&&(d=Math.sqrt(c*d)));do{t.data!==o&&(h=u[t.data.index]*a/d,o.vx+=i*h,o.vy+=f*h)}while(t=t.next)}}var i,o,a,u,f=qe(-30),c=1,s=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(f="function"==typeof e?e:qe(+e),n(),t):f},t.distanceMin=function(n){return arguments.length?(c=n*n,t):Math.sqrt(c)},t.distanceMax=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},t.forceRadial=function(t,n,e){function r(t){for(var r=0,i=o.length;r<i;++r){var f=o[r],c=f.x-n||1e-6,s=f.y-e||1e-6,l=Math.sqrt(c*c+s*s),h=(u[r]-l)*a[r]*t/l;f.vx+=c*h,f.vy+=s*h}}function i(){if(o){var n,e=o.length;for(a=new Array(e),u=new Array(e),n=0;n<e;++n)u[n]=+t(o[n],n,o),a[n]=isNaN(u[n])?0:+f(o[n],n,o)}}var o,a,u,f=qe(.1);return"function"!=typeof t&&(t=qe(+t)),null==n&&(n=0),null==e&&(e=0),r.initialize=function(t){o=t,i()},r.strength=function(t){return arguments.length?(f="function"==typeof t?t:qe(+t),i(),r):f},r.radius=function(n){return arguments.length?(t="function"==typeof n?n:qe(+n),i(),r):t},r.x=function(t){return arguments.length?(n=+t,r):n},r.y=function(t){return arguments.length?(e=+t,r):e},r},t.forceSimulation=function(t){function n(){e(),d.call("tick",o),a<u&&(h.stop(),d.call("end",o))}function e(){var n,e,r=t.length;for(a+=(c-a)*f,l.each(function(t){t(a)}),n=0;n<r;++n)null==(e=t[n]).fx?e.x+=e.vx*=s:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=s:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=od*Math.sqrt(e),o=e*ad;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,a=1,u=.001,f=1-Math.pow(u,1/300),c=0,s=.6,l=he(),h=Tn(n),d=N("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return h.restart(n),o},stop:function(){return h.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(a=+t,o):a},alphaMin:function(t){return arguments.length?(u=+t,o):u},alphaDecay:function(t){return arguments.length?(f=+t,o):+f},alphaTarget:function(t){return arguments.length?(c=+t,o):c},velocityDecay:function(t){return arguments.length?(s=1-t,o):1-s},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,a,u,f,c=0,s=t.length;for(null==r?r=1/0:r*=r,c=0;c<s;++c)(a=(i=n-(u=t[c]).x)*i+(o=e-u.y)*o)<r&&(f=u,r=a);return f},on:function(t,n){return arguments.length>1?(d.on(t,n),o):d.on(t)}}},t.forceX=function(t){function n(t){for(var n,e=0,a=r.length;e<a;++e)(n=r[e]).vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+a(r[n],n,r)}}var r,i,o,a=qe(.1);return"function"!=typeof t&&(t=qe(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(a="function"==typeof t?t:qe(+t),e(),n):a},n.x=function(r){return arguments.length?(t="function"==typeof r?r:qe(+r),e(),n):t},n},t.forceY=function(t){function n(t){for(var n,e=0,a=r.length;e<a;++e)(n=r[e]).vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+a(r[n],n,r)}}var r,i,o,a=qe(.1);return"function"!=typeof t&&(t=qe(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(a="function"==typeof t?t:qe(+t),e(),n):a},n.y=function(r){return arguments.length?(t="function"==typeof r?r:qe(+r),e(),n):t},n},t.formatDefaultLocale=or,t.formatLocale=ir,t.formatSpecifier=tr,t.precisionFixed=ar,t.precisionPrefix=ur,t.precisionRound=fr,t.geoArea=function(t){return dp.reset(),br(t,pp),2*dp},t.geoBounds=function(t){var n,e,r,i,o,a,u;if(md=bd=-(yd=_d=1/0),Td=[],br(t,gp),e=Td.length){for(Td.sort(Yr),n=1,o=[r=Td[0]];n<e;++n)Br(r,(i=Td[n])[0])||Br(r,i[1])?(Or(r[0],i[1])>Or(r[0],r[1])&&(r[1]=i[1]),Or(i[0],r[1])>Or(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Or(r[1],i[0]))>a&&(a=u,yd=i[0],bd=r[1])}return Td=Nd=null,yd===1/0||_d===1/0?[[NaN,NaN],[NaN,NaN]]:[[yd,_d],[bd,md]]},t.geoCentroid=function(t){Sd=Ed=kd=Cd=Pd=zd=Rd=Ld=Dd=Ud=qd=0,br(t,yp);var n=Dd,e=Ud,r=qd,i=n*n+e*e+r*r;return i<Xd&&(n=zd,e=Rd,r=Ld,Ed<Hd&&(n=kd,e=Cd,r=Pd),(i=n*n+e*e+r*r)<Xd)?[NaN,NaN]:[tp(e,n)*Zd,dr(r/fp(i))*Zd]},t.geoCircle=function(){function t(){var t=r.apply(this,arguments),u=i.apply(this,arguments)*Qd,f=o.apply(this,arguments)*Qd;return n=[],e=ti(-t[0]*Qd,-t[1]*Qd,0).invert,oi(a,u,f,1),t={type:"Polygon",coordinates:[n]},n=e=null,t}var n,e,r=Qr([0,0]),i=Qr(90),o=Qr(6),a={point:function(t,r){n.push(t=e(t,r)),t[0]*=Zd,t[1]*=Zd}};return t.center=function(n){return arguments.length?(r="function"==typeof n?n:Qr([+n[0],+n[1]]),t):r},t.radius=function(n){return arguments.length?(i="function"==typeof n?n:Qr(+n),t):i},t.precision=function(n){return arguments.length?(o="function"==typeof n?n:Qr(+n),t):o},t},t.geoClipAntimeridian=Cp,t.geoClipCircle=gi,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,a=500;return e={stream:function(e){return t&&n===e?t:t=yi(r,i,o,a)(n=e)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],o=+u[1][0],a=+u[1][1],t=n=null,e):[[r,i],[o,a]]}}},t.geoClipRectangle=yi,t.geoContains=function(t,n){return(t&&qp.hasOwnProperty(t.type)?qp[t.type]:Mi)(t,n)},t.geoDistance=wi,t.geoGraticule=Pi,t.geoGraticule10=function(){return Pi()()},t.geoInterpolate=function(t,n){var e=t[0]*Qd,r=t[1]*Qd,i=n[0]*Qd,o=n[1]*Qd,a=np(r),u=ap(r),f=np(o),c=ap(o),s=a*np(e),l=a*ap(e),h=f*np(i),d=f*ap(i),p=2*dr(fp(pr(o-r)+a*f*pr(i-e))),v=ap(p),g=p?function(t){var n=ap(t*=p)/v,e=ap(p-t)/v,r=e*s+n*h,i=e*l+n*d,o=e*u+n*c;return[tp(i,r)*Zd,tp(o,fp(r*r+i*i))*Zd]}:function(){return[e*Zd,r*Zd]};return g.distance=p,g},t.geoLength=xi,t.geoPath=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),br(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return br(t,r(Fp)),Fp.result()},e.measure=function(t){return br(t,r(cv)),cv.result()},e.bounds=function(t){return br(t,r(Gp)),Gp.result()},e.centroid=function(t){return br(t,r(ev)),ev.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,zi):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new Wi):new Gi(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},t.geoAlbers=lo,t.geoAlbersUsa=function(){function t(t){var n=t[0],e=t[1];return u=null,i.point(n,e),u||(o.point(n,e),u)||(a.point(n,e),u)}function n(){return e=r=null,t}var e,r,i,o,a,u,f=lo(),c=so().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=so().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){u=[t,n]}};return t.invert=function(t){var n=f.scale(),e=f.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?c:i>=.166&&i<.234&&r>=-.214&&r<-.115?s:f).invert(t)},t.stream=function(t){return e&&r===t?e:e=function(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}([f.stream(r=t),c.stream(t),s.stream(t)])},t.precision=function(t){return arguments.length?(f.precision(t),c.precision(t),s.precision(t),n()):f.precision()},t.scale=function(n){return arguments.length?(f.scale(n),c.scale(.35*n),s.scale(n),t.translate(f.translate())):f.scale()},t.translate=function(t){if(!arguments.length)return f.translate();var e=f.scale(),r=+t[0],u=+t[1];return i=f.translate(t).clipExtent([[r-.455*e,u-.238*e],[r+.455*e,u+.238*e]]).stream(l),o=c.translate([r-.307*e,u+.201*e]).clipExtent([[r-.425*e+Hd,u+.12*e+Hd],[r-.214*e-Hd,u+.234*e-Hd]]).stream(l),a=s.translate([r-.205*e,u+.212*e]).clipExtent([[r-.214*e+Hd,u+.166*e+Hd],[r-.115*e-Hd,u+.234*e-Hd]]).stream(l),n()},t.fitExtent=function(n,e){return to(t,n,e)},t.fitSize=function(n,e){return no(t,n,e)},t.fitWidth=function(n,e){return eo(t,n,e)},t.fitHeight=function(n,e){return ro(t,n,e)},t.scale(1070)},t.geoAzimuthalEqualArea=function(){return ao(dv).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=dv,t.geoAzimuthalEquidistant=function(){return ao(pv).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=pv,t.geoConicConformal=function(){return fo(_o).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=_o,t.geoConicEqualArea=so,t.geoConicEqualAreaRaw=co,t.geoConicEquidistant=function(){return fo(mo).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=mo,t.geoEquirectangular=function(){return ao(bo).scale(152.63)},t.geoEquirectangularRaw=bo,t.geoGnomonic=function(){return ao(xo).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=xo,t.geoIdentity=function(){function t(){return i=o=null,a}var n,e,r,i,o,a,u=1,f=0,c=0,s=1,l=1,h=zi,d=null,p=zi;return a={stream:function(t){return i&&o===t?i:i=h(p(o=t))},postclip:function(i){return arguments.length?(p=i,d=n=e=r=null,t()):p},clipExtent:function(i){return arguments.length?(p=null==i?(d=n=e=r=null,zi):yi(d=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==d?null:[[d,n],[e,r]]},scale:function(n){return arguments.length?(h=wo((u=+n)*s,u*l,f,c),t()):u},translate:function(n){return arguments.length?(h=wo(u*s,u*l,f=+n[0],c=+n[1]),t()):[f,c]},reflectX:function(n){return arguments.length?(h=wo(u*(s=n?-1:1),u*l,f,c),t()):s<0},reflectY:function(n){return arguments.length?(h=wo(u*s,u*(l=n?-1:1),f,c),t()):l<0},fitExtent:function(t,n){return to(a,t,n)},fitSize:function(t,n){return no(a,t,n)},fitWidth:function(t,n){return eo(a,t,n)},fitHeight:function(t,n){return ro(a,t,n)}}},t.geoProjection=ao,t.geoProjectionMutator=uo,t.geoMercator=function(){return go(vo).scale(961/Wd)},t.geoMercatorRaw=vo,t.geoNaturalEarth1=function(){return ao(Mo).scale(175.295)},t.geoNaturalEarth1Raw=Mo,t.geoOrthographic=function(){return ao(Ao).scale(249.5).clipAngle(90+Hd)},t.geoOrthographicRaw=Ao,t.geoStereographic=function(){return ao(To).scale(250).clipAngle(142)},t.geoStereographicRaw=To,t.geoTransverseMercator=function(){var t=go(No),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=No,t.geoRotation=ii,t.geoStream=br,t.geoTransform=function(t){return{stream:Qi(t)}},t.cluster=function(){function t(t){var o,a=0;t.eachAfter(function(t){var e=t.children;e?(t.x=function(t){return t.reduce(Eo,0)/t.length}(e),t.y=function(t){return 1+t.reduce(ko,0)}(e)):(t.x=o?a+=n(t,o):0,t.y=0,o=t)});var u=function(t){for(var n;n=t.children;)t=n[0];return t}(t),f=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(t),c=u.x-n(u,f)/2,s=f.x+n(f,u)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-c)/(s-c)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=So,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},t.hierarchy=Po,t.pack=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Qo(n)).eachAfter(Jo(i,.5)).eachBefore(Ko(1)):t.eachBefore(Qo(Zo)).eachAfter(Jo($o,1)).eachAfter(Jo(i,t.r/Math.min(e,r))).eachBefore(Ko(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=$o;return t.radius=function(e){return arguments.length?(n=function(t){return null==t?null:Vo(t)}(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:Wo(+n),t):i},t},t.packSiblings=function(t){return Go(t),t},t.packEnclose=Uo,t.partition=function(){function t(t){var o=t.height+1;return t.x0=t.y0=r,t.x1=n,t.y1=e/o,t.eachBefore(function(t,n){return function(e){e.children&&na(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var i=e.x0,o=e.y0,a=e.x1-r,u=e.y1-r;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),e.x0=i,e.y0=o,e.x1=a,e.y1=u}}(e,o)),i&&t.eachBefore(ta),t}var n=1,e=1,r=0,i=!1;return t.round=function(n){return arguments.length?(i=!!n,t):i},t.size=function(r){return arguments.length?(n=+r[0],e=+r[1],t):[n,e]},t.padding=function(n){return arguments.length?(r=+n,t):r},t},t.stratify=function(){function t(t){var r,i,o,a,u,f,c,s=t.length,l=new Array(s),h={};for(i=0;i<s;++i)r=t[i],u=l[i]=new Do(r),null!=(f=n(r,i,t))&&(f+="")&&(h[c=gv+(u.id=f)]=c in h?_v:u);for(i=0;i<s;++i)if(u=l[i],null!=(f=e(t[i],i,t))&&(f+="")){if(!(a=h[gv+f]))throw new Error("missing: "+f);if(a===_v)throw new Error("ambiguous: "+f);a.children?a.children.push(u):a.children=[u],u.parent=a}else{if(o)throw new Error("multiple roots");o=u}if(!o)throw new Error("no root");if(o.parent=yv,o.eachBefore(function(t){t.depth=t.parent.depth+1,--s}).eachBefore(Lo),o.parent=null,s>0)throw new Error("cycle");return o}var n=ea,e=ra;return t.id=function(e){return arguments.length?(n=Vo(e),t):n},t.parentId=function(n){return arguments.length?(e=Vo(n),t):e},t},t.tree=function(){function t(t){var f=function(t){for(var n,e,r,i,o,a=new ca(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new ca(r[i],i)),e.parent=n;return(a.parent=new ca(null,0)).children=[a],a}(t);if(f.eachAfter(n),f.parent.m=-f.z,f.eachBefore(e),u)t.eachBefore(r);else{var c=t,s=t,l=t;t.eachBefore(function(t){t.x<c.x&&(c=t),t.x>s.x&&(s=t),t.depth>l.depth&&(l=t)});var h=c===s?1:i(c,s)/2,d=h-c.x,p=o/(s.x+h+d),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+d)*p,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,r=t.i?e[t.i-1]:null;if(n){(function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)})(t);var o=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+i(t._,r._),t.m=t.z-o):t.z=o}else r&&(t.z=r.z+i(t._,r._));t.parent.A=function(t,n,e){if(n){for(var r,o=t,a=t,u=n,f=o.parent.children[0],c=o.m,s=a.m,l=u.m,h=f.m;u=aa(u),o=oa(o),u&&o;)f=oa(f),(a=aa(a)).a=t,(r=u.z+l-o.z-c+i(u._,o._))>0&&(ua(fa(u,t,e),t,r),c+=r,s+=r),l+=u.m,c+=o.m,h+=f.m,s+=a.m;u&&!aa(a)&&(a.t=u,a.m+=l-s),o&&!oa(f)&&(f.t=o,f.m+=c-h,e=t)}return e}(t,r,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t){t.x*=o,t.y=t.depth*a}var i=ia,o=1,a=1,u=null;return t.separation=function(n){return arguments.length?(i=n,t):i},t.size=function(n){return arguments.length?(u=!1,o=+n[0],a=+n[1],t):u?null:[o,a]},t.nodeSize=function(n){return arguments.length?(u=!0,o=+n[0],a=+n[1],t):u?[o,a]:null},t},t.treemap=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),a=[0],r&&t.eachBefore(ta),t}function n(t){var n=a[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=a[t.depth+1]=u(t)/2,r+=l(t)-n,i+=f(t)-n,o-=c(t)-n,h-=s(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=mv,r=!1,i=1,o=1,a=[0],u=$o,f=$o,c=$o,s=$o,l=$o;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=Vo(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(u="function"==typeof n?n:Wo(+n),t):u},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(f="function"==typeof n?n:Wo(+n),t):f},t.paddingRight=function(n){return arguments.length?(c="function"==typeof n?n:Wo(+n),t):c},t.paddingBottom=function(n){return arguments.length?(s="function"==typeof n?n:Wo(+n),t):s},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:Wo(+n),t):l},t},t.treemapBinary=function(t,n,e,r,i){function o(t,n,e,r,i,a,u){if(t>=n-1){var c=f[t];return c.x0=r,c.y0=i,c.x1=a,void(c.y1=u)}for(var l=s[t],h=e/2+l,d=t+1,p=n-1;d<p;){var v=d+p>>>1;s[v]<h?d=v+1:p=v}h-s[d-1]<s[d]-h&&t+1<d&&--d;var g=s[d]-l,y=e-g;if(a-r>u-i){var _=(r*y+a*g)/e;o(t,d,g,r,i,_,u),o(d,n,y,_,i,a,u)}else{var b=(i*y+u*g)/e;o(t,d,g,r,i,a,b),o(d,n,y,r,b,a,u)}}var a,u,f=t.children,c=f.length,s=new Array(c+1);for(s[0]=u=a=0;a<c;++a)s[a+1]=u+=f[a].value;o(0,c,t.value,n,e,r,i)},t.treemapDice=na,t.treemapSlice=sa,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?sa:na)(t,n,e,r,i)},t.treemapSquarify=mv,t.treemapResquarify=xv,t.interpolate=dn,t.interpolateArray=fn,t.interpolateBasis=Kt,t.interpolateBasisClosed=tn,t.interpolateDate=cn,t.interpolateNumber=sn,t.interpolateObject=ln,t.interpolateRound=pn,t.interpolateString=hn,t.interpolateTransformCss=sl,t.interpolateTransformSvg=ll,t.interpolateZoom=_n,t.interpolateRgb=rl,t.interpolateRgbBasis=il,t.interpolateRgbBasisClosed=ol,t.interpolateHsl=gl,t.interpolateHslLong=yl,t.interpolateLab=function(t,n){var e=an((t=Ft(t)).l,(n=Ft(n)).l),r=an(t.a,n.a),i=an(t.b,n.b),o=an(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateHcl=_l,t.interpolateHclLong=bl,t.interpolateCubehelix=ml,t.interpolateCubehelixLong=xl,t.piecewise=function(t,n){for(var e=0,r=n.length-1,i=n[0],o=new Array(r<0?0:r);e<r;)o[e]=t(i,i=n[++e]);return function(t){var n=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return o[n](t-n)}},t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.path=oe,t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,a=0,u=t[i-1],f=0;++r<i;)n=u,u=t[r],f+=e=n[0]*u[1]-u[0]*n[1],o+=(n[0]+u[0])*e,a+=(n[1]+u[1])*e;return f*=3,[o/f,a/f]},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(da),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=pa(r),a=pa(i),u=a[0]===o[0],f=a[a.length-1]===o[o.length-1],c=[];for(n=o.length-1;n>=0;--n)c.push(t[r[o[n]][2]]);for(n=+u;n<a.length-f;++n)c.push(t[r[a[n]][2]]);return c},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],a=n[0],u=n[1],f=o[0],c=o[1],s=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>u!=c>u&&a<(f-e)*(u-r)/(c-r)+e&&(s=!s),f=e,c=r;return s},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],f=0;++r<i;)n=a,e=u,n-=a=(o=t[r])[0],e-=u=o[1],f+=Math.sqrt(n*n+e*e);return f},t.quadtree=je,t.randomUniform=wv,t.randomNormal=Mv,t.randomLogNormal=Av,t.randomBates=Nv,t.randomIrwinHall=Tv,t.randomExponential=Sv,t.scaleBand=ya,t.scalePoint=function(){return _a(ya().paddingInner(1))},t.scaleIdentity=Ea,t.scaleLinear=Sa,t.scaleLog=Ua,t.scaleOrdinal=ga,t.scaleImplicit=Pv,t.scalePow=Oa,t.scaleSqrt=function(){return Oa().exponent(.5)},t.scaleQuantile=Ya,t.scaleQuantize=Ba,t.scaleThreshold=Fa,t.scaleTime=function(){return of(cg,ug,Vv,Xv,jv,Fv,Yv,Dv,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},t.scaleUtc=function(){return of(Rg,Pg,yg,vg,dg,lg,Yv,Dv,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},t.scaleSequential=af,t.scaleDiverging=uf,t.schemeCategory10=Zg,t.schemeAccent=Qg,t.schemeDark2=Jg,t.schemePaired=Kg,t.schemePastel1=ty,t.schemePastel2=ny,t.schemeSet1=ey,t.schemeSet2=ry,t.schemeSet3=iy,t.interpolateBrBG=ay,t.schemeBrBG=oy,t.interpolatePRGn=fy,t.schemePRGn=uy,t.interpolatePiYG=sy,t.schemePiYG=cy,t.interpolatePuOr=hy,t.schemePuOr=ly,t.interpolateRdBu=py,t.schemeRdBu=dy,t.interpolateRdGy=gy,t.schemeRdGy=vy,t.interpolateRdYlBu=_y,t.schemeRdYlBu=yy,t.interpolateRdYlGn=my,t.schemeRdYlGn=by,t.interpolateSpectral=wy,t.schemeSpectral=xy,t.interpolateBuGn=Ay,t.schemeBuGn=My,t.interpolateBuPu=Ny,t.schemeBuPu=Ty,t.interpolateGnBu=Ey,t.schemeGnBu=Sy,t.interpolateOrRd=Cy,t.schemeOrRd=ky,t.interpolatePuBuGn=zy,t.schemePuBuGn=Py,t.interpolatePuBu=Ly,t.schemePuBu=Ry,t.interpolatePuRd=Uy,t.schemePuRd=Dy,t.interpolateRdPu=Oy,t.schemeRdPu=qy,t.interpolateYlGnBu=By,t.schemeYlGnBu=Yy,t.interpolateYlGn=Iy,t.schemeYlGn=Fy,t.interpolateYlOrBr=Hy,t.schemeYlOrBr=jy,t.interpolateYlOrRd=Gy,t.schemeYlOrRd=Xy,t.interpolateBlues=$y,t.schemeBlues=Vy,t.interpolateGreens=Zy,t.schemeGreens=Wy,t.interpolateGreys=Jy,t.schemeGreys=Qy,t.interpolatePurples=t_,t.schemePurples=Ky,t.interpolateReds=e_,t.schemeReds=n_,t.interpolateOranges=i_,t.schemeOranges=r_,t.interpolateCubehelixDefault=o_,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return f_.h=360*t-100,f_.s=1.5-1.5*n,f_.l=.8-.9*n,f_+""},t.interpolateWarm=a_,t.interpolateCool=u_,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,c_.r=255*(n=Math.sin(t))*n,c_.g=255*(n=Math.sin(t+s_))*n,c_.b=255*(n=Math.sin(t+l_))*n,c_+""},t.interpolateViridis=h_,t.interpolateMagma=d_,t.interpolateInferno=p_,t.interpolatePlasma=v_,t.create=function(t){return ct(C(t).call(document.documentElement))},t.creator=C,t.local=st,t.matcher=bs,t.mouse=pt,t.namespace=k,t.namespaces=vs,t.clientPoint=dt,t.select=ct,t.selectAll=function(t){return"string"==typeof t?new ut([document.querySelectorAll(t)],[document.documentElement]):new ut([null==t?[]:t],ws)},t.selection=ft,t.selector=z,t.selectorAll=L,t.style=F,t.touch=vt,t.touches=function(t,n){null==n&&(n=ht().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=dt(t,n[e]);return i},t.window=B,t.customEvent=ot,t.arc=function(){function t(){var t,c,s=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-T_,d=a.apply(this,arguments)-T_,p=g_(d-h),v=d>h;if(f||(f=t=oe()),l<s&&(c=l,l=s,s=c),l>M_)if(p>N_-M_)f.moveTo(l*__(h),l*x_(h)),f.arc(0,0,l,h,d,!v),s>M_&&(f.moveTo(s*__(d),s*x_(d)),f.arc(0,0,s,d,h,v));else{var g,y,_=h,b=d,m=h,x=d,w=p,M=p,A=u.apply(this,arguments)/2,T=A>M_&&(i?+i.apply(this,arguments):w_(s*s+l*l)),N=m_(g_(l-s)/2,+r.apply(this,arguments)),S=N,E=N;if(T>M_){var k=hf(T/s*x_(A)),C=hf(T/l*x_(A));(w-=2*k)>M_?(k*=v?1:-1,m+=k,x-=k):(w=0,m=x=(h+d)/2),(M-=2*C)>M_?(C*=v?1:-1,_+=C,b-=C):(M=0,_=b=(h+d)/2)}var P=l*__(_),z=l*x_(_),R=s*__(x),L=s*x_(x);if(N>M_){var D=l*__(b),U=l*x_(b),q=s*__(m),O=s*x_(m);if(p<A_){var Y=w>M_?function(t,n,e,r,i,o,a,u){var f=e-t,c=r-n,s=a-i,l=u-o,h=(s*(n-o)-l*(t-i))/(l*f-s*c);return[t+h*f,n+h*c]}(P,z,q,O,D,U,R,L):[R,L],B=P-Y[0],F=z-Y[1],I=D-Y[0],j=U-Y[1],H=1/x_(function(t){return t>1?0:t<-1?A_:Math.acos(t)}((B*I+F*j)/(w_(B*B+F*F)*w_(I*I+j*j)))/2),X=w_(Y[0]*Y[0]+Y[1]*Y[1]);S=m_(N,(s-X)/(H-1)),E=m_(N,(l-X)/(H+1))}}M>M_?E>M_?(g=_f(q,O,P,z,l,E,v),y=_f(D,U,R,L,l,E,v),f.moveTo(g.cx+g.x01,g.cy+g.y01),E<N?f.arc(g.cx,g.cy,E,y_(g.y01,g.x01),y_(y.y01,y.x01),!v):(f.arc(g.cx,g.cy,E,y_(g.y01,g.x01),y_(g.y11,g.x11),!v),f.arc(0,0,l,y_(g.cy+g.y11,g.cx+g.x11),y_(y.cy+y.y11,y.cx+y.x11),!v),f.arc(y.cx,y.cy,E,y_(y.y11,y.x11),y_(y.y01,y.x01),!v))):(f.moveTo(P,z),f.arc(0,0,l,_,b,!v)):f.moveTo(P,z),s>M_&&w>M_?S>M_?(g=_f(R,L,D,U,s,-S,v),y=_f(P,z,q,O,s,-S,v),f.lineTo(g.cx+g.x01,g.cy+g.y01),S<N?f.arc(g.cx,g.cy,S,y_(g.y01,g.x01),y_(y.y01,y.x01),!v):(f.arc(g.cx,g.cy,S,y_(g.y01,g.x01),y_(g.y11,g.x11),!v),f.arc(0,0,s,y_(g.cy+g.y11,g.cx+g.x11),y_(y.cy+y.y11,y.cx+y.x11),v),f.arc(y.cx,y.cy,S,y_(y.y11,y.x11),y_(y.y01,y.x01),!v))):f.arc(0,0,s,x,m,v):f.lineTo(R,L)}else f.moveTo(0,0);if(f.closePath(),t)return f=null,t+""||null}var n=df,e=pf,r=lf(0),i=null,o=vf,a=gf,u=yf,f=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-A_/2;return[__(r)*t,x_(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:lf(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:lf(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:lf(+n),t):o},t.endAngle=function(n){return arguments.length?(a="function"==typeof n?n:lf(+n),t):a},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:lf(+n),t):u},t.context=function(n){return arguments.length?(f=null==n?null:n,t):f},t},t.area=Af,t.line=Mf,t.pie=function(){function t(t){var u,f,c,s,l,h=t.length,d=0,p=new Array(h),v=new Array(h),g=+i.apply(this,arguments),y=Math.min(N_,Math.max(-N_,o.apply(this,arguments)-g)),_=Math.min(Math.abs(y)/h,a.apply(this,arguments)),b=_*(y<0?-1:1);for(u=0;u<h;++u)(l=v[p[u]=u]=+n(t[u],u,t))>0&&(d+=l);for(null!=e?p.sort(function(t,n){return e(v[t],v[n])}):null!=r&&p.sort(function(n,e){return r(t[n],t[e])}),u=0,c=d?(y-h*b)/d:0;u<h;++u,g=s)f=p[u],s=g+((l=v[f])>0?l*c:0)+b,v[f]={data:t[f],index:u,value:l,startAngle:g,endAngle:s,padAngle:_};return v}var n=Nf,e=Tf,r=null,i=lf(0),o=lf(N_),a=lf(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:lf(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:lf(+n),t):o},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:lf(+n),t):a},t},t.areaRadial=Pf,t.radialArea=Pf,t.lineRadial=Cf,t.radialLine=Cf,t.pointRadial=zf,t.linkHorizontal=function(){return Df(Uf)},t.linkVertical=function(){return Df(qf)},t.linkRadial=function(){var t=Df(Of);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.symbol=function(){function t(){var t;if(r||(r=t=oe()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=lf(k_),e=lf(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:lf(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:lf(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},t.symbols=X_,t.symbolCircle=k_,t.symbolCross=C_,t.symbolDiamond=R_,t.symbolSquare=O_,t.symbolStar=q_,t.symbolTriangle=B_,t.symbolWye=H_,t.curveBasisClosed=function(t){return new If(t)},t.curveBasisOpen=function(t){return new jf(t)},t.curveBasis=function(t){return new Ff(t)},t.curveBundle=G_,t.curveCardinalClosed=$_,t.curveCardinalOpen=W_,t.curveCardinal=V_,t.curveCatmullRomClosed=Q_,t.curveCatmullRomOpen=J_,t.curveCatmullRom=Z_,t.curveLinearClosed=function(t){return new Kf(t)},t.curveLinear=mf,t.curveMonotoneX=function(t){return new ic(t)},t.curveMonotoneY=function(t){return new oc(t)},t.curveNatural=function(t){return new uc(t)},t.curveStep=function(t){return new cc(t,.5)},t.curveStepAfter=function(t){return new cc(t,1)},t.curveStepBefore=function(t){return new cc(t,0)},t.stack=function(){function t(t){var o,a,u=n.apply(this,arguments),f=t.length,c=u.length,s=new Array(c);for(o=0;o<c;++o){for(var l,h=u[o],d=s[o]=new Array(f),p=0;p<f;++p)d[p]=l=[0,+i(t[p],h,p,t)],l.data=t[p];d.key=h}for(o=0,a=e(s);o<c;++o)s[a[o]].index=o;return r(s,a),s}var n=lf([]),e=lc,r=sc,i=hc;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:lf(E_.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:lf(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?lc:"function"==typeof n?n:lf(E_.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?sc:n,t):r},t},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o<a;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}sc(t,n)}},t.stackOffsetDiverging=function(t,n){if((u=t.length)>1)for(var e,r,i,o,a,u,f=0,c=t[n[0]].length;f<c;++f)for(o=a=0,e=0;e<u;++e)(i=(r=t[n[e]][f])[1]-r[0])>=0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):r[0]=o},t.stackOffsetNone=sc,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var a=0,u=0;a<e;++a)u+=t[a][r][1]||0;i[r][1]+=i[r][0]=-u/2}sc(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a<r;++a){for(var u=0,f=0,c=0;u<i;++u){for(var s=t[n[u]],l=s[a][1]||0,h=(l-(s[a-1][1]||0))/2,d=0;d<u;++d){var p=t[n[d]];h+=(p[a][1]||0)-(p[a-1][1]||0)}f+=l,c+=h*l}e[a-1][1]+=e[a-1][0]=o,f&&(o-=c/f)}e[a-1][1]+=e[a-1][0]=o,sc(t,n)}},t.stackOrderAscending=dc,t.stackOrderDescending=function(t){return dc(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(pc),o=lc(t).sort(function(t,n){return i[n]-i[t]}),a=0,u=0,f=[],c=[];for(n=0;n<r;++n)e=o[n],a<u?(a+=i[e],f.push(e)):(u+=i[e],c.push(e));return c.reverse().concat(f)},t.stackOrderNone=lc,t.stackOrderReverse=function(t){return lc(t).reverse()},t.timeInterval=Ia,t.timeMillisecond=Dv,t.timeMilliseconds=Uv,t.utcMillisecond=Dv,t.utcMilliseconds=Uv,t.timeSecond=Yv,t.timeSeconds=Bv,t.utcSecond=Yv,t.utcSeconds=Bv,t.timeMinute=Fv,t.timeMinutes=Iv,t.timeHour=jv,t.timeHours=Hv,t.timeDay=Xv,t.timeDays=Gv,t.timeWeek=Vv,t.timeWeeks=tg,t.timeSunday=Vv,t.timeSundays=tg,t.timeMonday=$v,t.timeMondays=ng,t.timeTuesday=Wv,t.timeTuesdays=eg,t.timeWednesday=Zv,t.timeWednesdays=rg,t.timeThursday=Qv,t.timeThursdays=ig,t.timeFriday=Jv,t.timeFridays=og,t.timeSaturday=Kv,t.timeSaturdays=ag,t.timeMonth=ug,t.timeMonths=fg,t.timeYear=cg,t.timeYears=sg,t.utcMinute=lg,t.utcMinutes=hg,t.utcHour=dg,t.utcHours=pg,t.utcDay=vg,t.utcDays=gg,t.utcWeek=yg,t.utcWeeks=Ag,t.utcSunday=yg,t.utcSundays=Ag,t.utcMonday=_g,t.utcMondays=Tg,t.utcTuesday=bg,t.utcTuesdays=Ng,t.utcWednesday=mg,t.utcWednesdays=Sg,t.utcThursday=xg,t.utcThursdays=Eg,t.utcFriday=wg,t.utcFridays=kg,t.utcSaturday=Mg,t.utcSaturdays=Cg,t.utcMonth=Pg,t.utcMonths=zg,t.utcYear=Rg,t.utcYears=Dg,t.timeFormatDefaultLocale=nf,t.timeFormatLocale=$a,t.isoFormat=Fg,t.isoParse=Ig,t.now=wn,t.timer=Tn,t.timerFlush=Nn,t.timeout=Cn,t.interval=function(t,n,e){var r=new An,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?wn():+e,r.restart(function o(a){a+=i,r.restart(o,i+=n,e),t(a)},n,e),r)},t.transition=Yn,t.active=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>Ll&&e.name===n)return new On(t,hh,n,+r)}return null},t.interrupt=Dn,t.voronoi=function(){function t(t){return new Bc(t.map(function(r,i){var o=[Math.round(n(r,i,t)/ab)*ab,Math.round(e(r,i,t)/ab)*ab];return o.index=i,o.data=r,o}),r)}var n=gc,e=yc,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:vc(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:vc(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},t.zoom=function(){function n(t){t.property("__zoom",$c).on("wheel.zoom",f).on("mousedown.zoom",c).on("dblclick.zoom",s).filter(m).on("touchstart.zoom",l).on("touchmove.zoom",h).on("touchend.zoom touchcancel.zoom",d).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(t,n){return(n=Math.max(x[0],Math.min(x[1],n)))===t.k?t:new Ic(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Ic(t.k,r,i)}function i(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function o(t,n,e){t.on("start.zoom",function(){a(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){a(this,arguments).end()}).tween("zoom",function(){var t=arguments,r=a(this,t),o=y.apply(this,t),u=e||i(o),f=Math.max(o[1][0]-o[0][0],o[1][1]-o[0][1]),c=this.__zoom,s="function"==typeof n?n.apply(this,t):n,l=A(c.invert(u).concat(f/c.k),s.invert(u).concat(f/s.k));return function(t){if(1===t)t=s;else{var n=l(t),e=f/n[2];t=new Ic(e,u[0]-n[0]*e,u[1]-n[1]*e)}r.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=T.length;r<i;++r)if((e=T[r]).that===t)return e;return new u(t,n)}function u(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=y.apply(t,n)}function f(){if(g.apply(this,arguments)){var t=a(this,arguments),n=this.__zoom,i=Math.max(x[0],Math.min(x[1],n.k*Math.pow(2,b.apply(this,arguments)))),o=pt(this);if(t.wheel)t.mouse[0][0]===o[0]&&t.mouse[0][1]===o[1]||(t.mouse[1]=n.invert(t.mouse[0]=o)),clearTimeout(t.wheel);else{if(n.k===i)return;t.mouse=[o,n.invert(o)],Dn(this),t.start()}Xc(),t.wheel=setTimeout(function(){t.wheel=null,t.end()},k),t.zoom("mouse",_(r(e(n,i),t.mouse[0],t.mouse[1]),t.extent,w))}}function c(){if(!v&&g.apply(this,arguments)){var n=a(this,arguments),e=ct(t.event.view).on("mousemove.zoom",function(){if(Xc(),!n.moved){var e=t.event.clientX-o,i=t.event.clientY-u;n.moved=e*e+i*i>C}n.zoom("mouse",_(r(n.that.__zoom,n.mouse[0]=pt(n.that),n.mouse[1]),n.extent,w))},!0).on("mouseup.zoom",function(){e.on("mousemove.zoom mouseup.zoom",null),bt(t.event.view,n.moved),Xc(),n.end()},!0),i=pt(this),o=t.event.clientX,u=t.event.clientY;_t(t.event.view),Hc(),n.mouse=[i,this.__zoom.invert(i)],Dn(this),n.start()}}function s(){if(g.apply(this,arguments)){var i=this.__zoom,a=pt(this),u=i.invert(a),f=i.k*(t.event.shiftKey?.5:2),c=_(r(e(i,f),a,u),y.apply(this,arguments),w);Xc(),M>0?ct(this).transition().duration(M).call(o,c,a):ct(this).call(n.transform,c)}}function l(){if(g.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,f=u.length;for(Hc(),e=0;e<f;++e)i=[i=vt(this,u,(r=u[e]).identifier),this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(p&&(p=clearTimeout(p),!o.touch1))return o.end(),void((i=ct(this).on("dblclick.zoom"))&&i.apply(this,arguments));n&&(p=setTimeout(function(){p=null},E),Dn(this),o.start())}}function h(){var n,i,o,u,f=a(this,arguments),c=t.event.changedTouches,s=c.length;for(Xc(),p&&(p=clearTimeout(p)),n=0;n<s;++n)o=vt(this,c,(i=c[n]).identifier),f.touch0&&f.touch0[2]===i.identifier?f.touch0[0]=o:f.touch1&&f.touch1[2]===i.identifier&&(f.touch1[0]=o);if(i=f.that.__zoom,f.touch1){var l=f.touch0[0],h=f.touch0[1],d=f.touch1[0],v=f.touch1[1],g=(g=d[0]-l[0])*g+(g=d[1]-l[1])*g,y=(y=v[0]-h[0])*y+(y=v[1]-h[1])*y;i=e(i,Math.sqrt(g/y)),o=[(l[0]+d[0])/2,(l[1]+d[1])/2],u=[(h[0]+v[0])/2,(h[1]+v[1])/2]}else{if(!f.touch0)return;o=f.touch0[0],u=f.touch0[1]}f.zoom("touch",_(r(i,o,u),f.extent,w))}function d(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(Hc(),v&&clearTimeout(v),v=setTimeout(function(){v=null},E),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var p,v,g=Gc,y=Vc,_=Qc,b=Wc,m=Zc,x=[0,1/0],w=[[-1/0,-1/0],[1/0,1/0]],M=250,A=_n,T=[],S=N("start","zoom","end"),E=500,k=150,C=0;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",$c),t!==e?o(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,o){n.transform(t,function(){var t=y.apply(this,arguments),n=this.__zoom,a=i(t),u=n.invert(a),f="function"==typeof o?o.apply(this,arguments):o;return _(r(e(n,f),a,u),t,w)})},n.translateBy=function(t,e,r){n.transform(t,function(){return _(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),y.apply(this,arguments),w)})},n.translateTo=function(t,e,r){n.transform(t,function(){var t=y.apply(this,arguments),n=this.__zoom,o=i(t);return _(fb.translate(o[0],o[1]).scale(n.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof r?-r.apply(this,arguments):-r),t,w)})},u.prototype={start:function(){return 1==++this.active&&(this.index=T.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(T.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){ot(new function(t,n,e){this.target=t,this.type=n,this.transform=e}(n,t,this.that.__zoom),S.apply,S,[t,this.that,this.args])}},n.wheelDelta=function(t){return arguments.length?(b="function"==typeof t?t:Fc(+t),n):b},n.filter=function(t){return arguments.length?(g="function"==typeof t?t:Fc(!!t),n):g},n.touchable=function(t){return arguments.length?(m="function"==typeof t?t:Fc(!!t),n):m},n.extent=function(t){return arguments.length?(y="function"==typeof t?t:Fc([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):y},n.scaleExtent=function(t){return arguments.length?(x[0]=+t[0],x[1]=+t[1],n):[x[0],x[1]]},n.translateExtent=function(t){return arguments.length?(w[0][0]=+t[0][0],w[1][0]=+t[1][0],w[0][1]=+t[0][1],w[1][1]=+t[1][1],n):[[w[0][0],w[0][1]],[w[1][0],w[1][1]]]},n.constrain=function(t){return arguments.length?(_=t,n):_},n.duration=function(t){return arguments.length?(M=+t,n):M},n.interpolate=function(t){return arguments.length?(A=t,n):A},n.on=function(){var t=S.on.apply(S,arguments);return t===S?n:t},n.clickDistance=function(t){return arguments.length?(C=(t=+t)*t,n):Math.sqrt(C)},n},t.zoomTransform=jc,t.zoomIdentity=fb,Object.defineProperty(t,"__esModule",{value:!0})}); /*!

* Lightbox for Bootstrap by @ashleydw
* https://github.com/ashleydw/lightbox
*
* License: https://github.com/ashleydw/lightbox/blob/master/LICENSE
*/

+function ($) {

'use strict';

var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }

var Lightbox = (function ($) {

var NAME = 'ekkoLightbox'; var JQUERY_NO_CONFLICT = $.fn[NAME];

var Default = { title: , footer: , maxWidth: 9999, maxHeight: 9999, showArrows: true, //display the left / right arrows or not wrapping: true, //if true, gallery loops infinitely type: null, //force the lightbox into image / youtube mode. if null, or not image|youtube|vimeo; detect it alwaysShowClose: false, //always show the close button, even if there is no title

loadingMessage: '
', // http://tobiasahlin.com/spinkit/

leftArrow: '', rightArrow: '', strings: { close: 'Close', fail: 'Failed to load image:', type: 'Could not detect remote target type. Force the type using data-type' }, doc: document, // if in an iframe can specify top.document onShow: function onShow() {}, onShown: function onShown() {}, onHide: function onHide() {}, onHidden: function onHidden() {}, onNavigate: function onNavigate() {}, onContentLoaded: function onContentLoaded() {} };

var Lightbox = (function () { _createClass(Lightbox, null, [{ key: 'Default',

/**

      Class properties:
  	 _$element: null -> the <a> element currently being displayed
   _$modal: The bootstrap modal generated
      _$modalDialog: The .modal-dialog
      _$modalContent: The .modal-content
      _$modalBody: The .modal-body
      _$modalHeader: The .modal-header
      _$modalFooter: The .modal-footer
   _$lightboxContainerOne: Container of the first lightbox element
   _$lightboxContainerTwo: Container of the second lightbox element
   _$lightboxBody: First element in the container
   _$modalArrows: The overlayed arrows container
  	 _$galleryItems: Other <a>'s available for this gallery
   _galleryName: Name of the current data('gallery') showing
   _galleryIndex: The current index of the _$galleryItems being shown
  	 _config: {} the options for the modal
   _modalId: unique id for the current lightbox
   _padding / _border: CSS properties for the modal container; these are used to calculate the available space for the content
  	 */

get: function get() { return Default; } }]);

function Lightbox($element, config) { var _this = this;

_classCallCheck(this, Lightbox);

this._config = $.extend({}, Default, config); this._$modalArrows = null; this._galleryIndex = 0; this._galleryName = null; this._padding = null; this._border = null; this._titleIsShown = false; this._footerIsShown = false; this._wantedWidth = 0; this._wantedHeight = 0; this._touchstartX = 0; this._touchendX = 0;

this._modalId = 'ekkoLightbox-' + Math.floor(Math.random() * 1000 + 1); this._$element = $element instanceof jQuery ? $element : $($element);

this._isBootstrap3 = $.fn.modal.Constructor.VERSION[0] == 3;

var h4 = '';

var btn = '<button type="button" class="close" data-dismiss="modal" aria-label="' + this._config.strings.close + '">×</button>';

var header = ''; var footer = ''; var body = ''; var dialog = ''; $(this._config.doc.body).append('');

this._$modal = $('#' + this._modalId, this._config.doc); this._$modalDialog = this._$modal.find('.modal-dialog').first(); this._$modalContent = this._$modal.find('.modal-content').first(); this._$modalBody = this._$modal.find('.modal-body').first(); this._$modalHeader = this._$modal.find('.modal-header').first(); this._$modalFooter = this._$modal.find('.modal-footer').first();

this._$lightboxContainer = this._$modalBody.find('.ekko-lightbox-container').first(); this._$lightboxBodyOne = this._$lightboxContainer.find('> div:first-child').first(); this._$lightboxBodyTwo = this._$lightboxContainer.find('> div:last-child').first();

this._border = this._calculateBorders(); this._padding = this._calculatePadding();

this._galleryName = this._$element.data('gallery'); if (this._galleryName) { this._$galleryItems = $(document.body).find('*[data-gallery="' + this._galleryName + '"]'); this._galleryIndex = this._$galleryItems.index(this._$element); $(document).on('keydown.ekkoLightbox', this._navigationalBinder.bind(this));

// add the directional arrows to the modal if (this._config.showArrows && this._$galleryItems.length > 1) {

this._$lightboxContainer.append('
<a href="#">' + this._config.leftArrow + '</a><a href="#">' + this._config.rightArrow + '</a>
');

this._$modalArrows = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay').first(); this._$lightboxContainer.on('click', 'a:first-child', function (event) { event.preventDefault(); return _this.navigateLeft(); }); this._$lightboxContainer.on('click', 'a:last-child', function (event) { event.preventDefault(); return _this.navigateRight(); }); this.updateNavigation(); } }

this._$modal.on('show.bs.modal', this._config.onShow.bind(this)).on('shown.bs.modal', function () { _this._toggleLoading(true); _this._handle(); return _this._config.onShown.call(_this); }).on('hide.bs.modal', this._config.onHide.bind(this)).on('hidden.bs.modal', function () { if (_this._galleryName) { $(document).off('keydown.ekkoLightbox'); $(window).off('resize.ekkoLightbox'); } _this._$modal.remove(); return _this._config.onHidden.call(_this); }).modal(this._config);

$(window).on('resize.ekkoLightbox', function () { _this._resize(_this._wantedWidth, _this._wantedHeight); }); this._$lightboxContainer.on('touchstart', function () { _this._touchstartX = event.changedTouches[0].screenX; }).on('touchend', function () { _this._touchendX = event.changedTouches[0].screenX; _this._swipeGesure(); }); }

_createClass(Lightbox, [{ key: 'element', value: function element() { return this._$element; } }, { key: 'modal', value: function modal() { return this._$modal; } }, { key: 'navigateTo', value: function navigateTo(index) {

if (index < 0 || index > this._$galleryItems.length - 1) return this;

this._galleryIndex = index;

this.updateNavigation();

this._$element = $(this._$galleryItems.get(this._galleryIndex)); this._handle(); } }, { key: 'navigateLeft', value: function navigateLeft() {

if (!this._$galleryItems) return;

if (this._$galleryItems.length === 1) return;

if (this._galleryIndex === 0) { if (this._config.wrapping) this._galleryIndex = this._$galleryItems.length - 1;else return; } else //circular this._galleryIndex--;

this._config.onNavigate.call(this, 'left', this._galleryIndex); return this.navigateTo(this._galleryIndex); } }, { key: 'navigateRight', value: function navigateRight() {

if (!this._$galleryItems) return;

if (this._$galleryItems.length === 1) return;

if (this._galleryIndex === this._$galleryItems.length - 1) { if (this._config.wrapping) this._galleryIndex = 0;else return; } else //circular this._galleryIndex++;

this._config.onNavigate.call(this, 'right', this._galleryIndex); return this.navigateTo(this._galleryIndex); } }, { key: 'updateNavigation', value: function updateNavigation() { if (!this._config.wrapping) { var $nav = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay'); if (this._galleryIndex === 0) $nav.find('a:first-child').addClass('disabled');else $nav.find('a:first-child').removeClass('disabled');

if (this._galleryIndex === this._$galleryItems.length - 1) $nav.find('a:last-child').addClass('disabled');else $nav.find('a:last-child').removeClass('disabled'); } } }, { key: 'close', value: function close() { return this._$modal.modal('hide'); }

// helper private methods }, { key: '_navigationalBinder', value: function _navigationalBinder(event) { event = event || window.event; if (event.keyCode === 39) return this.navigateRight(); if (event.keyCode === 37) return this.navigateLeft(); }

// type detection private methods }, { key: '_detectRemoteType', value: function _detectRemoteType(src, type) {

type = type || false;

if (!type && this._isImage(src)) type = 'image'; if (!type && this._getYoutubeId(src)) type = 'youtube'; if (!type && this._getVimeoId(src)) type = 'vimeo'; if (!type && this._getInstagramId(src)) type = 'instagram';

if (!type || ['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(type) < 0) type = 'url';

return type; } }, { key: '_isImage', value: function _isImage(string) { return string && string.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); } }, { key: '_containerToUse', value: function _containerToUse() { var _this2 = this;

// if currently showing an image, fade it out and remove var $toUse = this._$lightboxBodyTwo; var $current = this._$lightboxBodyOne;

if (this._$lightboxBodyTwo.hasClass('in')) { $toUse = this._$lightboxBodyOne; $current = this._$lightboxBodyTwo; }

$current.removeClass('in show'); setTimeout(function () { if (!_this2._$lightboxBodyTwo.hasClass('in')) _this2._$lightboxBodyTwo.empty(); if (!_this2._$lightboxBodyOne.hasClass('in')) _this2._$lightboxBodyOne.empty(); }, 500);

$toUse.addClass('in show'); return $toUse; } }, { key: '_handle', value: function _handle() {

var $toUse = this._containerToUse(); this._updateTitleAndFooter();

var currentRemote = this._$element.attr('data-remote') || this._$element.attr('href'); var currentType = this._detectRemoteType(currentRemote, this._$element.attr('data-type') || false);

if (['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(currentType) < 0) return this._error(this._config.strings.type);

switch (currentType) { case 'image': this._preloadImage(currentRemote, $toUse); this._preloadImageByIndex(this._galleryIndex, 3); break; case 'youtube': this._showYoutubeVideo(currentRemote, $toUse); break; case 'vimeo': this._showVimeoVideo(this._getVimeoId(currentRemote), $toUse); break; case 'instagram': this._showInstagramVideo(this._getInstagramId(currentRemote), $toUse); break; case 'video': this._showHtml5Video(currentRemote, $toUse); break; default: // url this._loadRemoteContent(currentRemote, $toUse); break; }

return this; } }, { key: '_getYoutubeId', value: function _getYoutubeId(string) { if (!string) return false; var matches = string.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/); return matches && matches[2].length === 11 ? matches[2] : false; } }, { key: '_getVimeoId', value: function _getVimeoId(string) { return string && string.indexOf('vimeo') > 0 ? string : false; } }, { key: '_getInstagramId', value: function _getInstagramId(string) { return string && string.indexOf('instagram') > 0 ? string : false; }

// layout private methods }, { key: '_toggleLoading', value: function _toggleLoading(show) { show = show || false; if (show) { this._$modalDialog.css('display', 'none'); this._$modal.removeClass('in show'); $('.modal-backdrop').append(this._config.loadingMessage); } else { this._$modalDialog.css('display', 'block'); this._$modal.addClass('in show'); $('.modal-backdrop').find('.ekko-lightbox-loader').remove(); } return this; } }, { key: '_calculateBorders', value: function _calculateBorders() { return { top: this._totalCssByAttribute('border-top-width'), right: this._totalCssByAttribute('border-right-width'), bottom: this._totalCssByAttribute('border-bottom-width'), left: this._totalCssByAttribute('border-left-width') }; } }, { key: '_calculatePadding', value: function _calculatePadding() { return { top: this._totalCssByAttribute('padding-top'), right: this._totalCssByAttribute('padding-right'), bottom: this._totalCssByAttribute('padding-bottom'), left: this._totalCssByAttribute('padding-left') }; } }, { key: '_totalCssByAttribute', value: function _totalCssByAttribute(attribute) { return parseInt(this._$modalDialog.css(attribute), 10) + parseInt(this._$modalContent.css(attribute), 10) + parseInt(this._$modalBody.css(attribute), 10); } }, { key: '_updateTitleAndFooter', value: function _updateTitleAndFooter() { var title = this._$element.data('title') || ""; var caption = this._$element.data('footer') || "";

this._titleIsShown = false; if (title || this._config.alwaysShowClose) { this._titleIsShown = true; this._$modalHeader.css('display', ).find('.modal-title').html(title || " "); } else this._$modalHeader.css('display', 'none');

this._footerIsShown = false; if (caption) { this._footerIsShown = true; this._$modalFooter.css('display', ).html(caption); } else this._$modalFooter.css('display', 'none');

return this; } }, { key: '_showYoutubeVideo', value: function _showYoutubeVideo(remote, $containerForElement) { var id = this._getYoutubeId(remote); var query = remote.indexOf('&') > 0 ? remote.substr(remote.indexOf('&')) : ; var width = this._$element.data('width') || 560; var height = this._$element.data('height') || width / (560 / 315); return this._showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + query, width, height, $containerForElement); } }, { key: '_showVimeoVideo', value: function _showVimeoVideo(id, $containerForElement) { var width = this._$element.data('width') || 500; var height = this._$element.data('height') || width / (560 / 315); return this._showVideoIframe(id + '?autoplay=1', width, height, $containerForElement); } }, { key: '_showInstagramVideo', value: function _showInstagramVideo(id, $containerForElement) { // instagram load their content into iframe's so this can be put straight into the element var width = this._$element.data('width') || 612; var height = width + 80; id = id.substr(-1) !== '/' ? id + '/' : id; // ensure id has trailing slash $containerForElement.html('<iframe width="' + width + '" height="' + height + '" src="' + id + 'embed/" frameborder="0" allowfullscreen></iframe>'); this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) //hide the arrows when showing video this._$modalArrows.css('display', 'none'); this._toggleLoading(false); return this; } }, { key: '_showVideoIframe', value: function _showVideoIframe(url, width, height, $containerForElement) { // should be used for videos only. for remote content use loadRemoteContent (data-type=url) height = height || width; // default to square

$containerForElement.html('
<iframe width="' + width + '" height="' + height + '" src="' + url + '" frameborder="0" allowfullscreen class="embed-responsive-item"></iframe>
');

this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video this._toggleLoading(false); return this; } }, { key: '_showHtml5Video', value: function _showHtml5Video(url, $containerForElement) { // should be used for videos only. for remote content use loadRemoteContent (data-type=url) var width = this._$element.data('width') || 560; var height = this._$element.data('height') || width / (560 / 315);

$containerForElement.html('
<video width="' + width + '" height="' + height + '" src="' + url + '" preload="auto" autoplay controls class="embed-responsive-item"></video>
');

this._resize(width, height); this._config.onContentLoaded.call(this); if (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video this._toggleLoading(false); return this; } }, { key: '_loadRemoteContent', value: function _loadRemoteContent(url, $containerForElement) { var _this3 = this;

var width = this._$element.data('width') || 560; var height = this._$element.data('height') || 560;

var disableExternalCheck = this._$element.data('disableExternalCheck') || false; this._toggleLoading(false);

// external urls are loading into an iframe // local ajax can be loaded into the container itself if (!disableExternalCheck && !this._isExternal(url)) { $containerForElement.load(url, $.proxy(function () { return _this3._$element.trigger('loaded.bs.modal');l; })); } else { $containerForElement.html('<iframe src="' + url + '" frameborder="0" allowfullscreen></iframe>'); this._config.onContentLoaded.call(this); }

if (this._$modalArrows) //hide the arrows when remote content this._$modalArrows.css('display', 'none');

this._resize(width, height); return this; } }, { key: '_isExternal', value: function _isExternal(url) { var match = url.match(/^([^:\/?#]+:)?(?:\/\/([^\/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/); if (typeof match[1] === "string" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) return true;

if (typeof match[2] === "string" && match[2].length > 0 && match[2].replace(new RegExp(':(' + ({ "http:": 80, "https:": 443 })[location.protocol] + ')?$'), "") !== location.host) return true;

return false; } }, { key: '_error', value: function _error(message) { console.error(message); this._containerToUse().html(message); this._resize(300, 300); return this; } }, { key: '_preloadImageByIndex', value: function _preloadImageByIndex(startIndex, numberOfTimes) {

if (!this._$galleryItems) return;

var next = $(this._$galleryItems.get(startIndex), false); if (typeof next == 'undefined') return;

var src = next.attr('data-remote') || next.attr('href'); if (next.attr('data-type') === 'image' || this._isImage(src)) this._preloadImage(src, false);

if (numberOfTimes > 0) return this._preloadImageByIndex(startIndex + 1, numberOfTimes - 1); } }, { key: '_preloadImage', value: function _preloadImage(src, $containerForImage) { var _this4 = this;

$containerForImage = $containerForImage || false;

var img = new Image(); if ($containerForImage) { (function () {

// if loading takes > 200ms show a loader var loadingTimeout = setTimeout(function () { $containerForImage.append(_this4._config.loadingMessage); }, 200);

img.onload = function () { if (loadingTimeout) clearTimeout(loadingTimeout); loadingTimeout = null; var image = $('<img />'); image.attr('src', img.src); image.addClass('img-fluid');

// backward compatibility for bootstrap v3 image.css('width', '100%');

$containerForImage.html(image); if (_this4._$modalArrows) _this4._$modalArrows.css('display', ); // remove display to default to css property

_this4._resize(img.width, img.height); _this4._toggleLoading(false); return _this4._config.onContentLoaded.call(_this4); }; img.onerror = function () { _this4._toggleLoading(false); return _this4._error(_this4._config.strings.fail + (' ' + src)); }; })(); }

img.src = src; return img; } }, { key: '_swipeGesure', value: function _swipeGesure() { if (this._touchendX < this._touchstartX) { return this.navigateRight(); } if (this._touchendX > this._touchstartX) { return this.navigateLeft(); } } }, { key: '_resize', value: function _resize(width, height) {

height = height || width; this._wantedWidth = width; this._wantedHeight = height;

var imageAspecRatio = width / height;

// if width > the available space, scale down the expected width and height var widthBorderAndPadding = this._padding.left + this._padding.right + this._border.left + this._border.right;

// force 10px margin if window size > 575px var addMargin = this._config.doc.body.clientWidth > 575 ? 20 : 0; var discountMargin = this._config.doc.body.clientWidth > 575 ? 0 : 20;

var maxWidth = Math.min(width + widthBorderAndPadding, this._config.doc.body.clientWidth - addMargin, this._config.maxWidth);

if (width + widthBorderAndPadding > maxWidth) { height = (maxWidth - widthBorderAndPadding - discountMargin) / imageAspecRatio; width = maxWidth; } else width = width + widthBorderAndPadding;

var headerHeight = 0, footerHeight = 0;

// as the resize is performed the modal is show, the calculate might fail // if so, default to the default sizes if (this._footerIsShown) footerHeight = this._$modalFooter.outerHeight(true) || 55;

if (this._titleIsShown) headerHeight = this._$modalHeader.outerHeight(true) || 67;

var borderPadding = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top;

//calculated each time as resizing the window can cause them to change due to Bootstraps fluid margins var margins = parseFloat(this._$modalDialog.css('margin-top')) + parseFloat(this._$modalDialog.css('margin-bottom'));

var maxHeight = Math.min(height, $(window).height() - borderPadding - margins - headerHeight - footerHeight, this._config.maxHeight - borderPadding - headerHeight - footerHeight);

if (height > maxHeight) { // if height > the available height, scale down the width width = Math.ceil(maxHeight * imageAspecRatio) + widthBorderAndPadding; }

this._$lightboxContainer.css('height', maxHeight); this._$modalDialog.css('flex', 1).css('maxWidth', width);

var modal = this._$modal.data('bs.modal'); if (modal) { // v4 method is mistakenly protected try { modal._handleUpdate(); } catch (Exception) { modal.handleUpdate(); } } return this; } }], [{ key: '_jQueryInterface', value: function _jQueryInterface(config) { var _this5 = this;

config = config || {}; return this.each(function () { var $this = $(_this5); var _config = $.extend({}, Lightbox.Default, $this.data(), typeof config === 'object' && config);

new Lightbox(_this5, _config); }); } }]);

return Lightbox; })();

$.fn[NAME] = Lightbox._jQueryInterface; $.fn[NAME].Constructor = Lightbox; $.fn[NAME].noConflict = function () { $.fn[NAME] = JQUERY_NO_CONFLICT; return Lightbox._jQueryInterface; };

return Lightbox; })(jQuery); //# sourceMappingURL=ekko-lightbox.js.map

}(jQuery);


$(document).ready(function() { var previous = " ";

   $("#image_gallery").click(function(event) {
       var id_name = event.target.id;
       id_name = id_name.replace(/[0-9]/g, ); //regex for alphabets, no numbers
       var id_toggle = document.getElementById(id_name); //get ID of names under class "team-bio"
       if(document.getElementById(id_name)){ //if ID exists

if((previous != id_name) && (previous != " ")){ //if you click a diff image var id_previous = document.getElementById(previous); $(id_previous).toggle("hidden"); console.log(id_previous);

} else if(previous == id_name){ //clicking on the same image $(id_toggle).toggle("unhidden"); } $(id_toggle).toggle("unhidden"); //toggles txtbox to appear

       	 previous = id_name;//checks to see if you clicked different images
       }
       else{
       	alert("This person does not exist. Try again.");
       }
       }
   );

}); (function($) {

   $.fn.visible = function() {
       var $t            = $(this),
           $w            = $(window),
           windowHeight  = window.innerHeight,
           windowTop     = $w.scrollTop(),
           windowBottom  = windowTop + windowHeight,
           _height       = $t.outerHeight(),
           _top          = $t.offset().top,
           _bottom       = _top + _height;
       return ((_bottom >= windowTop) && (_top <= windowBottom));
   };

})(jQuery);

$(document).ready(function () {

   $(window).on("scroll", function () {
       if ($(window).scrollTop() >= 100 && !$(".navbar").hasClass("fixed")) {
           $(".navbar").addClass("fixed").addClass("fixed-top").animate({
               top: 15,
               opacity: 1
           }, 1000);


       } else if ($(window).scrollTop() <= 50) {
           $(".navbar").css("top", "").removeClass("fixed").removeClass("fixed-top");
       }
   });
   
   //on or scroll, detect elements in view
   $(window).on('scroll resize', function() {
       $('.fly-in').each(function (i, val) {
           if($(val).visible()){
               $(val).addClass("come-in");
           }
       })
   });
   //trigger our scroll event on initial load
   $(window).trigger('scroll');


});

$(document).ready(function () {


   let widthPol = 1920,
       heightPol = 100;
   const headerPoly = [
       {"x": 0, "y": 100},
       {"x": widthPol, "y": 100},
       {"x": widthPol, "y": 0},
       {"x": 0, "y": 50},
       {"x": 0, "y": 100},
   ];
   let widthImgOverlay = 1920,
       heightImgOverlay = 100;


   const imagePolyTop = [
       {"x": 0, "y": 100},
       {"x": widthImgOverlay, "y": 50},
       {"x": widthImgOverlay, "y": 0},
       {"x": 0, "y": 0},
       {"x": 0, "y": 100},
   ];
   const imagePolyBottom = [
       {"x": 0, "y": 100},
       {"x": widthImgOverlay, "y": 100},
       {"x": widthImgOverlay, "y": 0},
       {"x": 0, "y": 50},
       {"x": 0, "y": 100},
   ];


   let imgHeaderHolder = d3.select("body").select("#bottom-landing-overlay").select('#landing-svg')
       .attr("width", widthPol)
       .attr("height", heightPol);
   console.log(d3.select("body"));
   let imgBottomHolder = d3.select("body").selectAll(".svg-image-overlay-bottom")
       .attr("width", widthImgOverlay)
       .attr("height", heightImgOverlay);


   let imgTopHolder = d3.select("body").selectAll(".svg-image-overlay-top")
       .attr("width", widthImgOverlay)
       .attr("height", heightImgOverlay);
   createPolygon(headerPoly, widthPol, heightPol, imgHeaderHolder);
   createPolygon(imagePolyBottom, widthImgOverlay, heightImgOverlay, imgBottomHolder);
   createPolygon(imagePolyTop, widthImgOverlay, heightImgOverlay, imgTopHolder);


   function createPolygon(polygon, width, height, vis) {
       let svg = vis.selectAll("path").data([polygon]);
       svg.exit().remove();
       let lineFunction = d3.line()
           .x(function (d) {
               return d.x
           })
           .y(function (d) {
               return d.y
           });
       svg.enter().append("path")
           .attr("d", lineFunction(polygon))
           .attr("fill", "#fff");
   }


   $(document).on('click', '[data-toggle="lightbox"]', function(event) {
       event.preventDefault();
       $(this).ekkoLightbox({
       });
   });
   $("table").each(function () {
       if ($(this).hasClass("table")){
       } else {
           $(this).addClass("table").addClass("table-dark");
       }
   })
   $(function () {
       $('[data-toggle="tooltip"]').tooltip()
   })

}); $(document).ready(function () {

   let duration = 750;
   setTimeout(function () {
       $('.spinner').each(function (k,v) {
           setTimeout(function () {
               $(v).fadeIn(duration).css("display", "flex");
               $({deg: 0}).animate({
                   deg: 360
               }, {
                   step: function (now, fx) {
                       $(v).css({"transform": "rotateY(" + now + "deg)"});
                   },
                   duration: duration,
                   easing: 'linear',
                   queue: false,
                   complete: function () {
                   }
               }, 'linear');
           }, k * duration*2/3);
       })
   }, 200);
   $(".main-background").on("click", function () {
       $('.spinner').each(function () {
           $(this).fadeIn().css("display", "flex");
       })
   })

}); let modelInitData = [

   {
       time: 0,
       gfp: 0,
       roff: 0,
       ron: 0
   },
   {
       time: 50,
       gfp: 0.503308,
       roff: 0.005113,
       ron: 0.423903
   },
   {
       time: 100,
       gfp: 0.690581,
       roff: 0.0049136,
       ron: 0.792887
   },
   {
       time: 150,
       gfp: 0.767586,
       roff: 0.00471637,
       ron: 0.889209
   },
   {
       time: 200,
       gfp: 0.80343,
       roff: 0.00453485,
       ron: 0.873127
   },
   {
       time: 250,
       gfp: 0.823516,
       roff: 0.00436488,
       ron: 0.847286
   },
   {
       time: 300,
       gfp: 0.837313,
       roff: 0.00420449,
       ron: 0.824804
   },
   {
       time: 350,
       gfp: 0.848361,
       roff: 0.00405266,
       ron: 0.808024
   },
   {
       time: 400,
       gfp: 0.858,
       roff: 0.00390859,
       ron: 0.796644
   },
   {
       time: 450,
       gfp: 0.866756,
       roff: 0.00377157,
       ron: 0.789551
   },
   {
       time: 500,
       gfp: 0.874851,
       roff: 0.00364102,
       ron: 0.785535
   },
   {
       time: 550,
       gfp: 0.882393,
       roff: 0.00351647,
       ron: 0.783577
   },
   {
       time: 600,
       gfp: 0.889442,
       roff: 0.00339753,
       ron: 0.782911
   },
   {
       time: 650,
       gfp: 0.896039,
       roff: 0.00328388,
       ron: 0.783012
   },
   {
       time: 700,
       gfp: 0.902214,
       roff: 0.00317525,
       ron: 0.783537
   },
   {
       time: 750,
       gfp: 0.907996,
       roff: 0.0030714,
       ron: 0.784275
   },
   {
       time: 800,
       gfp: 0.913407,
       roff: 0.00297211,
       ron: 0.785103
   },
   {
       time: 850,
       gfp: 0.918469,
       roff: 0.00287717,
       ron: 0.78595
   },
   {
       time: 900,
       gfp: 0.923205,
       roff: 0.00278638,
       ron: 0.786779
   },
   {
       time: 950,
       gfp: 0.927633,
       roff: 0.00269957,
       ron: 0.787571
   },
   {
       time: 1000,
       gfp: 0.931772,
       roff: 0.00261657,
       ron: 0.788317
   },
   {
       time: 1050,
       gfp: 0.935641,
       roff: 0.0025372,
       ron: 0.789016
   },
   {
       time: 1100,
       gfp: 0.939256,
       roff: 0.00246131,
       ron: 0.789668
   },
   {
       time: 1150,
       gfp: 0.942634,
       roff: 0.00238875,
       ron: 0.790274
   },
   {
       time: 1200,
       gfp: 0.945789,
       roff: 0.00231937,
       ron: 0.790838
   },
   {
       time: 1250,
       gfp: 0.948736,
       roff: 0.00225304,
       ron: 0.791361
   },
   {
       time: 1300,
       gfp: 0.951489,
       roff: 0.00218962,
       ron: 0.791848
   },
   {
       time: 1350,
       gfp: 0.954061,
       roff: 0.00212898,
       ron: 0.7923
   },
   {
       time: 1400,
       gfp: 0.956464,
       roff: 0.00207101,
       ron: 0.792721
   },
   {
       time: 1450,
       gfp: 0.958709,
       roff: 0.00201559,
       ron: 0.793112
   },
   {
       time: 1500,
       gfp: 0.960807,
       roff: 0.0019626,
       ron: 0.793476
   },
   {
       time: 1550,
       gfp: 0.962768,
       roff: 0.00191194,
       ron: 0.793815
   },
   {
       time: 1600,
       gfp: 0.964601,
       roff: 0.00186351,
       ron: 0.79413
   },
   {
       time: 1650,
       gfp: 0.966314,
       roff: 0.00181721,
       ron: 0.794424
   },
   {
       time: 1700,
       gfp: 0.967917,
       roff: 0.00177295,
       ron: 0.794698
   },
   {
       time: 1750,
       gfp: 0.969416,
       roff: 0.00173063,
       ron: 0.794954
   },
   {
       time: 1800,
       gfp: 0.970819,
       roff: 0.00169018,
       ron: 0.795192
   },
   {
       time: 1850,
       gfp: 0.972132,
       roff: 0.00165151,
       ron: 0.795415
   },
   {
       time: 1900,
       gfp: 0.973361,
       roff: 0.00161454,
       ron: 0.795622
   },
   {
       time: 1950,
       gfp: 0.974512,
       roff: 0.00157921,
       ron: 0.795817
   },
   {
       time: 2000,
       gfp: 0.975591,
       roff: 0.00154542,
       ron: 0.795998
   },
   {
       time: 2050,
       gfp: 0.976602,
       roff: 0.00151313,
       ron: 0.796168
   },
   {
       time: 2100,
       gfp: 0.977549,
       roff: 0.00148226,
       ron: 0.796327
   },
   {
       time: 2150,
       gfp: 0.978438,
       roff: 0.00145275,
       ron: 0.796475
   },
   {
       time: 2200,
       gfp: 0.979272,
       roff: 0.00142454,
       ron: 0.796615
   },
   {
       time: 2250,
       gfp: 0.980055,
       roff: 0.00139757,
       ron: 0.796745
   },
   {
       time: 2300,
       gfp: 0.98079,
       roff: 0.00137179,
       ron: 0.796868
   },
   {
       time: 2350,
       gfp: 0.981481,
       roff: 0.00134715,
       ron: 0.796982
   },
   {
       time: 2400,
       gfp: 0.98213,
       roff: 0.0013236,
       ron: 0.79709
   },
   {
       time: 2450,
       gfp: 0.98274,
       roff: 0.00130109,
       ron: 0.797191
   },
   {
       time: 2500,
       gfp: 0.983314,
       roff: 0.00127957,
       ron: 0.797286
   },
   {
       time: 2550,
       gfp: 0.983853,
       roff: 0.00125899,
       ron: 0.797376
   },
   {
       time: 2600,
       gfp: 0.984362,
       roff: 0.00123933,
       ron: 0.79746
   },
   {
       time: 2650,
       gfp: 0.98484,
       roff: 0.00122053,
       ron: 0.797539
   },
   {
       time: 2700,
       gfp: 0.985291,
       roff: 0.00120257,
       ron: 0.797613
   },
   {
       time: 2750,
       gfp: 0.985715,
       roff: 0.00118539,
       ron: 0.797683
   },
   {
       time: 2800,
       gfp: 0.986116,
       roff: 0.00116898,
       ron: 0.797749
   },
   {
       time: 2850,
       gfp: 0.986493,
       roff: 0.00115329,
       ron: 0.797811
   },
   {
       time: 2900,
       gfp: 0.98685,
       roff: 0.00113829,
       ron: 0.797869
   },
   {
       time: 2950,
       gfp: 0.987186,
       roff: 0.00112395,
       ron: 0.797925
   },
   {
       time: 3000,
       gfp: 0.987503,
       roff: 0.00111025,
       ron: 0.797977
   },
   {
       time: 3050,
       gfp: 0.987803,
       roff: 0.00109715,
       ron: 0.798026
   },
   {
       time: 3100,
       gfp: 0.988087,
       roff: 0.00108463,
       ron: 0.798072
   },
   {
       time: 3150,
       gfp: 0.988354,
       roff: 0.00107267,
       ron: 0.798116
   },
   {
       time: 3200,
       gfp: 0.988608,
       roff: 0.00106123,
       ron: 0.798158
   },
   {
       time: 3250,
       gfp: 0.988847,
       roff: 0.0010503,
       ron: 0.798197
   },
   {
       time: 3300,
       gfp: 0.989074,
       roff: 0.00103985,
       ron: 0.798234
   },
   {
       time: 3350,
       gfp: 0.989289,
       roff: 0.00102986,
       ron: 0.798269
   },
   {
       time: 3400,
       gfp: 0.989492,
       roff: 0.00102031,
       ron: 0.798302
   },
   {
       time: 3450,
       gfp: 0.989684,
       roff: 0.00101119,
       ron: 0.798334
   },
   {
       time: 3500,
       gfp: 0.989866,
       roff: 0.00100247,
       ron: 0.798364
   },
   {
       time: 3550,
       gfp: 0.990039,
       roff: 0.00099413,
       ron: 0.798392
   },
   {
       time: 3600,
       gfp: 0.990203,
       roff: 0.000986162,
       ron: 0.798419
   },
   {
       time: 3650,
       gfp: 0.990358,
       roff: 0.000978546,
       ron: 0.798444
   },
   {
       time: 3700,
       gfp: 0.990506,
       roff: 0.000971266,
       ron: 0.798468
   },
   {
       time: 3750,
       gfp: 0.990645,
       roff: 0.000964308,
       ron: 0.798491
   },
   {
       time: 3800,
       gfp: 0.990778,
       roff: 0.000957657,
       ron: 0.798512
   },
   {
       time: 3850,
       gfp: 0.990904,
       roff: 0.0009513,
       ron: 0.798533
   },
   {
       time: 3900,
       gfp: 0.991024,
       roff: 0.000945224,
       ron: 0.798552
   },
   {
       time: 3950,
       gfp: 0.991137,
       roff: 0.000939417,
       ron: 0.798571
   },
   {
       time: 4000,
       gfp: 0.991245,
       roff: 0.000933866,
       ron: 0.798588
   },
   {
       time: 4050,
       gfp: 0.991348,
       roff: 0.000928561,
       ron: 0.798605
   },
   {
       time: 4100,
       gfp: 0.991445,
       roff: 0.00092349,
       ron: 0.798621
   },
   {
       time: 4150,
       gfp: 0.991538,
       roff: 0.000918643,
       ron: 0.798636
   },
   {
       time: 4200,
       gfp: 0.991626,
       roff: 0.000914011,
       ron: 0.79865
   },
   {
       time: 4250,
       gfp: 0.99171,
       roff: 0.000909583,
       ron: 0.798664
   },
   {
       time: 4300,
       gfp: 0.991789,
       roff: 0.000905351,
       ron: 0.798677
   },
   {
       time: 4350,
       gfp: 0.991865,
       roff: 0.000901306,
       ron: 0.798689
   },
   {
       time: 4400,
       gfp: 0.991937,
       roff: 0.00089744,
       ron: 0.798701
   },
   {
       time: 4450,
       gfp: 0.992006,
       roff: 0.000893745,
       ron: 0.798712
   },
   {
       time: 4500,
       gfp: 0.992071,
       roff: 0.000890213,
       ron: 0.798723
   },
   {
       time: 4550,
       gfp: 0.992134,
       roff: 0.000886837,
       ron: 0.798733
   },
   {
       time: 4600,
       gfp: 0.992193,
       roff: 0.00088361,
       ron: 0.798743
   },
   {
       time: 4650,
       gfp: 0.992249,
       roff: 0.000880526,
       ron: 0.798752
   },
   {
       time: 4700,
       gfp: 0.992303,
       roff: 0.000877579,
       ron: 0.79876
   },
   {
       time: 4750,
       gfp: 0.992354,
       roff: 0.000874761,
       ron: 0.798769
   },
   {
       time: 4800,
       gfp: 0.992403,
       roff: 0.000872069,
       ron: 0.798777
   },
   {
       time: 4850,
       gfp: 0.992449,
       roff: 0.000869495,
       ron: 0.798784
   },
   {
       time: 4900,
       gfp: 0.992494,
       roff: 0.000867035,
       ron: 0.798791
   },
   {
       time: 4950,
       gfp: 0.992536,
       roff: 0.000864684,
       ron: 0.798798
   },
   {
       time: 5000,
       gfp: 0.992576,
       roff: 0.000862437,
       ron: 0.798805
   },
   {
       time: 5050,
       gfp: 0.992615,
       roff: 0.00086029,
       ron: 0.798811
   },
   {
       time: 5100,
       gfp: 0.992651,
       roff: 0.000858237,
       ron: 0.798817
   },
   {
       time: 5150,
       gfp: 0.992686,
       roff: 0.000856275,
       ron: 0.798823
   },
   {
       time: 5200,
       gfp: 0.992719,
       roff: 0.0008544,
       ron: 0.798828
   },
   {
       time: 5250,
       gfp: 0.992751,
       roff: 0.000852607,
       ron: 0.798833
   },
   {
       time: 5300,
       gfp: 0.992781,
       roff: 0.000850894,
       ron: 0.798838
   },
   {
       time: 5350,
       gfp: 0.99281,
       roff: 0.000849257,
       ron: 0.798843
   },
   {
       time: 5400,
       gfp: 0.992838,
       roff: 0.000847692,
       ron: 0.798847
   },
   {
       time: 5450,
       gfp: 0.992864,
       roff: 0.000846196,
       ron: 0.798851
   },
   {
       time: 5500,
       gfp: 0.992889,
       roff: 0.000844766,
       ron: 0.798856
   },
   {
       time: 5550,
       gfp: 0.992913,
       roff: 0.000843399,
       ron: 0.798859
   },
   {
       time: 5600,
       gfp: 0.992936,
       roff: 0.000842093,
       ron: 0.798863
   },
   {
       time: 5650,
       gfp: 0.992957,
       roff: 0.000840845,
       ron: 0.798867
   },
   {
       time: 5700,
       gfp: 0.992978,
       roff: 0.000839652,
       ron: 0.79887
   },
   {
       time: 5750,
       gfp: 0.992998,
       roff: 0.000838512,
       ron: 0.798873
   },
   {
       time: 5800,
       gfp: 0.993017,
       roff: 0.000837422,
       ron: 0.798876
   },
   {
       time: 5850,
       gfp: 0.993035,
       roff: 0.00083638,
       ron: 0.798879
   },
   {
       time: 5900,
       gfp: 0.993052,
       roff: 0.000835385,
       ron: 0.798882
   },
   {
       time: 5950,
       gfp: 0.993069,
       roff: 0.000834433,
       ron: 0.798885
   },
   {
       time: 6000,
       gfp: 0.993084,
       roff: 0.000833524,
       ron: 0.798887
   },
   {
       time: 6050,
       gfp: 0.993099,
       roff: 0.000832654,
       ron: 0.79889
   },
   {
       time: 6100,
       gfp: 0.993114,
       roff: 0.000831824,
       ron: 0.798892
   },
   {
       time: 6150,
       gfp: 0.993127,
       roff: 0.00083103,
       ron: 0.798894
   },
   {
       time: 6200,
       gfp: 0.99314,
       roff: 0.000830271,
       ron: 0.798896
   },
   {
       time: 6250,
       gfp: 0.993153,
       roff: 0.000829545,
       ron: 0.798898
   },
   {
       time: 6300,
       gfp: 0.993165,
       roff: 0.000828852,
       ron: 0.7989
   },
   {
       time: 6350,
       gfp: 0.993176,
       roff: 0.000828189,
       ron: 0.798902
   },
   {
       time: 6400,
       gfp: 0.993187,
       roff: 0.000827555,
       ron: 0.798904
   },
   {
       time: 6450,
       gfp: 0.993197,
       roff: 0.00082695,
       ron: 0.798906
   },
   {
       time: 6500,
       gfp: 0.993207,
       roff: 0.000826371,
       ron: 0.798907
   },
   {
       time: 6550,
       gfp: 0.993217,
       roff: 0.000825818,
       ron: 0.798909
   },
   {
       time: 6600,
       gfp: 0.993226,
       roff: 0.000825289,
       ron: 0.79891
   },
   {
       time: 6650,
       gfp: 0.993235,
       roff: 0.000824783,
       ron: 0.798912
   },
   {
       time: 6700,
       gfp: 0.993243,
       roff: 0.0008243,
       ron: 0.798913
   },
   {
       time: 6750,
       gfp: 0.993251,
       roff: 0.000823839,
       ron: 0.798914
   },
   {
       time: 6800,
       gfp: 0.993258,
       roff: 0.000823398,
       ron: 0.798915
   },
   {
       time: 6850,
       gfp: 0.993265,
       roff: 0.000822976,
       ron: 0.798917
   },
   {
       time: 6900,
       gfp: 0.993272,
       roff: 0.000822573,
       ron: 0.798918
   },
   {
       time: 6950,
       gfp: 0.993279,
       roff: 0.000822188,
       ron: 0.798919
   },
   {
       time: 7000,
       gfp: 0.993285,
       roff: 0.00082182,
       ron: 0.79892
   },
   {
       time: 7050,
       gfp: 0.993291,
       roff: 0.000821468,
       ron: 0.798921
   },
   {
       time: 7100,
       gfp: 0.993297,
       roff: 0.000821132,
       ron: 0.798922
   },
   {
       time: 7150,
       gfp: 0.993302,
       roff: 0.00082081,
       ron: 0.798923
   },
   {
       time: 7200,
       gfp: 0.993307,
       roff: 0.000820503,
       ron: 0.798923
   },
   {
       time: 7250,
       gfp: 0.993312,
       roff: 0.000820209,
       ron: 0.798924
   },
   {
       time: 7300,
       gfp: 0.993317,
       roff: 0.000819929,
       ron: 0.798925
   },
   {
       time: 7350,
       gfp: 0.993322,
       roff: 0.00081966,
       ron: 0.798926
   },
   {
       time: 7400,
       gfp: 0.993326,
       roff: 0.000819404,
       ron: 0.798926
   },
   {
       time: 7450,
       gfp: 0.99333,
       roff: 0.000819159,
       ron: 0.798927
   },
   {
       time: 7500,
       gfp: 0.993334,
       roff: 0.000818925,
       ron: 0.798928
   },
   {
       time: 7550,
       gfp: 0.993338,
       roff: 0.000818701,
       ron: 0.798928
   },
   {
       time: 7600,
       gfp: 0.993342,
       roff: 0.000818487,
       ron: 0.798929
   },
   {
       time: 7650,
       gfp: 0.993345,
       roff: 0.000818282,
       ron: 0.79893
   },
   {
       time: 7700,
       gfp: 0.993348,
       roff: 0.000818087,
       ron: 0.79893
   },
   {
       time: 7750,
       gfp: 0.993352,
       roff: 0.0008179,
       ron: 0.798931
   },
   {
       time: 7800,
       gfp: 0.993355,
       roff: 0.000817722,
       ron: 0.798931
   },
   {
       time: 7850,
       gfp: 0.993358,
       roff: 0.000817551,
       ron: 0.798932
   },
   {
       time: 7900,
       gfp: 0.99336,
       roff: 0.000817388,
       ron: 0.798932
   },
   {
       time: 7950,
       gfp: 0.993363,
       roff: 0.000817232,
       ron: 0.798932
   },
   {
       time: 8000,
       gfp: 0.993365,
       roff: 0.000817083,
       ron: 0.798933
   },
   {
       time: 8050,
       gfp: 0.993368,
       roff: 0.000816941,
       ron: 0.798933
   },
   {
       time: 8100,
       gfp: 0.99337,
       roff: 0.000816804,
       ron: 0.798934
   },
   {
       time: 8150,
       gfp: 0.993372,
       roff: 0.000816674,
       ron: 0.798934
   },
   {
       time: 8200,
       gfp: 0.993374,
       roff: 0.00081655,
       ron: 0.798934
   },
   {
       time: 8250,
       gfp: 0.993376,
       roff: 0.000816431,
       ron: 0.798935
   },
   {
       time: 8300,
       gfp: 0.993378,
       roff: 0.000816318,
       ron: 0.798935
   },
   {
       time: 8350,
       gfp: 0.99338,
       roff: 0.000816209,
       ron: 0.798935
   },
   {
       time: 8400,
       gfp: 0.993382,
       roff: 0.000816105,
       ron: 0.798935
   },
   {
       time: 8450,
       gfp: 0.993384,
       roff: 0.000816006,
       ron: 0.798936
   },
   {
       time: 8500,
       gfp: 0.993385,
       roff: 0.000815911,
       ron: 0.798936
   },
   {
       time: 8550,
       gfp: 0.993387,
       roff: 0.000815821,
       ron: 0.798936
   },
   {
       time: 8600,
       gfp: 0.993388,
       roff: 0.000815734,
       ron: 0.798936
   },
   {
       time: 8650,
       gfp: 0.99339,
       roff: 0.000815651,
       ron: 0.798937
   },
   {
       time: 8700,
       gfp: 0.993391,
       roff: 0.000815572,
       ron: 0.798937
   },
   {
       time: 8750,
       gfp: 0.993392,
       roff: 0.000815497,
       ron: 0.798937
   },
   {
       time: 8800,
       gfp: 0.993394,
       roff: 0.000815425,
       ron: 0.798937
   },
   {
       time: 8850,
       gfp: 0.993395,
       roff: 0.000815356,
       ron: 0.798938
   },
   {
       time: 8900,
       gfp: 0.993396,
       roff: 0.00081529,
       ron: 0.798938
   },
   {
       time: 8950,
       gfp: 0.993397,
       roff: 0.000815227,
       ron: 0.798938
   },
   {
       time: 9000,
       gfp: 0.993398,
       roff: 0.000815166,
       ron: 0.798938
   },
   {
       time: 9050,
       gfp: 0.993399,
       roff: 0.000815109,
       ron: 0.798938
   },
   {
       time: 9100,
       gfp: 0.9934,
       roff: 0.000815054,
       ron: 0.798938
   },
   {
       time: 9150,
       gfp: 0.993401,
       roff: 0.000815001,
       ron: 0.798938
   },
   {
       time: 9200,
       gfp: 0.993402,
       roff: 0.000814951,
       ron: 0.798939
   },
   {
       time: 9250,
       gfp: 0.993402,
       roff: 0.000814903,
       ron: 0.798939
   },
   {
       time: 9300,
       gfp: 0.993403,
       roff: 0.000814857,
       ron: 0.798939
   },
   {
       time: 9350,
       gfp: 0.993404,
       roff: 0.000814813,
       ron: 0.798939
   },
   {
       time: 9400,
       gfp: 0.993405,
       roff: 0.000814771,
       ron: 0.798939
   },
   {
       time: 9450,
       gfp: 0.993405,
       roff: 0.000814731,
       ron: 0.798939
   },
   {
       time: 9500,
       gfp: 0.993406,
       roff: 0.000814693,
       ron: 0.798939
   },
   {
       time: 9550,
       gfp: 0.993406,
       roff: 0.000814656,
       ron: 0.798939
   },
   {
       time: 9600,
       gfp: 0.993407,
       roff: 0.000814621,
       ron: 0.79894
   },
   {
       time: 9650,
       gfp: 0.993408,
       roff: 0.000814587,
       ron: 0.79894
   },
   {
       time: 9700,
       gfp: 0.993408,
       roff: 0.000814555,
       ron: 0.79894
   },
   {
       time: 9750,
       gfp: 0.993409,
       roff: 0.000814525,
       ron: 0.79894
   },
   {
       time: 9800,
       gfp: 0.993409,
       roff: 0.000814496,
       ron: 0.79894
   },
   {
       time: 9850,
       gfp: 0.99341,
       roff: 0.000814468,
       ron: 0.79894
   },
   {
       time: 9900,
       gfp: 0.99341,
       roff: 0.000814441,
       ron: 0.79894
   },
   {
       time: 9950,
       gfp: 0.993411,
       roff: 0.000814415,
       ron: 0.79894
   },
   {
       time: 10000,
       gfp: 0.993411,
       roff: 0.000814391,
       ron: 0.79894
   },
   {
       time: 10050,
       gfp: 0.993411,
       roff: 0.000814368,
       ron: 0.79894
   },
   {
       time: 10100,
       gfp: 0.993412,
       roff: 0.000814345,
       ron: 0.79894
   },
   {
       time: 10150,
       gfp: 0.993412,
       roff: 0.000814324,
       ron: 0.79894
   },
   {
       time: 10200,
       gfp: 0.993412,
       roff: 0.000814304,
       ron: 0.79894
   },
   {
       time: 10250,
       gfp: 0.993413,
       roff: 0.000814284,
       ron: 0.79894
   },
   {
       time: 10300,
       gfp: 0.993413,
       roff: 0.000814266,
       ron: 0.798941
   },
   {
       time: 10350,
       gfp: 0.993413,
       roff: 0.000814248,
       ron: 0.798941
   },
   {
       time: 10400,
       gfp: 0.993414,
       roff: 0.000814231,
       ron: 0.798941
   },
   {
       time: 10450,
       gfp: 0.993414,
       roff: 0.000814215,
       ron: 0.798941
   },
   {
       time: 10500,
       gfp: 0.993414,
       roff: 0.000814199,
       ron: 0.798941
   },
   {
       time: 10550,
       gfp: 0.993414,
       roff: 0.000814184,
       ron: 0.798941
   },
   {
       time: 10600,
       gfp: 0.993415,
       roff: 0.00081417,
       ron: 0.798941
   },
   {
       time: 10650,
       gfp: 0.993415,
       roff: 0.000814157,
       ron: 0.798941
   },
   {
       time: 10700,
       gfp: 0.993415,
       roff: 0.000814144,
       ron: 0.798941
   },
   {
       time: 10750,
       gfp: 0.993415,
       roff: 0.000814131,
       ron: 0.798941
   },
   {
       time: 10800,
       gfp: 0.993416,
       roff: 0.00081412,
       ron: 0.798941
   },
   {
       time: 10850,
       gfp: 0.993416,
       roff: 0.000814108,
       ron: 0.798941
   },
   {
       time: 10900,
       gfp: 0.993416,
       roff: 0.000814097,
       ron: 0.798941
   },
   {
       time: 10950,
       gfp: 0.993416,
       roff: 0.000814087,
       ron: 0.798941
   },
   {
       time: 11000,
       gfp: 0.993416,
       roff: 0.000814077,
       ron: 0.798941
   },
   {
       time: 11050,
       gfp: 0.993416,
       roff: 0.000814068,
       ron: 0.798941
   },
   {
       time: 11100,
       gfp: 0.993417,
       roff: 0.000814059,
       ron: 0.798941
   },
   {
       time: 11150,
       gfp: 0.993417,
       roff: 0.00081405,
       ron: 0.798941
   },
   {
       time: 11200,
       gfp: 0.993417,
       roff: 0.000814042,
       ron: 0.798941
   },
   {
       time: 11250,
       gfp: 0.993417,
       roff: 0.000814034,
       ron: 0.798941
   },
   {
       time: 11300,
       gfp: 0.993417,
       roff: 0.000814027,
       ron: 0.798941
   },
   {
       time: 11350,
       gfp: 0.993417,
       roff: 0.000814019,
       ron: 0.798941
   },
   {
       time: 11400,
       gfp: 0.993417,
       roff: 0.000814012,
       ron: 0.798941
   },
   {
       time: 11450,
       gfp: 0.993417,
       roff: 0.000814006,
       ron: 0.798941
   },
   {
       time: 11500,
       gfp: 0.993418,
       roff: 0.000814,
       ron: 0.798941
   },
   {
       time: 11550,
       gfp: 0.993418,
       roff: 0.000813994,
       ron: 0.798941
   },
   {
       time: 11600,
       gfp: 0.993418,
       roff: 0.000813988,
       ron: 0.798941
   },
   {
       time: 11650,
       gfp: 0.993418,
       roff: 0.000813982,
       ron: 0.798941
   },
   {
       time: 11700,
       gfp: 0.993418,
       roff: 0.000813977,
       ron: 0.798941
   },
   {
       time: 11750,
       gfp: 0.993418,
       roff: 0.000813972,
       ron: 0.798941
   },
   {
       time: 11800,
       gfp: 0.993418,
       roff: 0.000813967,
       ron: 0.798941
   },
   {
       time: 11850,
       gfp: 0.993418,
       roff: 0.000813963,
       ron: 0.798941
   },
   {
       time: 11900,
       gfp: 0.993418,
       roff: 0.000813958,
       ron: 0.798941
   },
   {
       time: 11950,
       gfp: 0.993418,
       roff: 0.000813954,
       ron: 0.798941
   },
   {
       time: 12000,
       gfp: 0.993418,
       roff: 0.00081395,
       ron: 0.798941
   },
   {
       time: 12050,
       gfp: 0.993418,
       roff: 0.000813946,
       ron: 0.798941
   },
   {
       time: 12100,
       gfp: 0.993419,
       roff: 0.000813943,
       ron: 0.798941
   },
   {
       time: 12150,
       gfp: 0.993419,
       roff: 0.000813939,
       ron: 0.798941
   },
   {
       time: 12200,
       gfp: 0.993419,
       roff: 0.000813936,
       ron: 0.798941
   },
   {
       time: 12250,
       gfp: 0.993419,
       roff: 0.000813933,
       ron: 0.798941
   },
   {
       time: 12300,
       gfp: 0.993419,
       roff: 0.00081393,
       ron: 0.798941
   },
   {
       time: 12350,
       gfp: 0.993419,
       roff: 0.000813927,
       ron: 0.798941
   },
   {
       time: 12400,
       gfp: 0.993419,
       roff: 0.000813924,
       ron: 0.798941
   },
   {
       time: 12450,
       gfp: 0.993419,
       roff: 0.000813921,
       ron: 0.798941
   },
   {
       time: 12500,
       gfp: 0.993419,
       roff: 0.000813919,
       ron: 0.798941
   },
   {
       time: 12550,
       gfp: 0.993419,
       roff: 0.000813916,
       ron: 0.798941
   },
   {
       time: 12600,
       gfp: 0.993419,
       roff: 0.000813914,
       ron: 0.798941
   },
   {
       time: 12650,
       gfp: 0.993419,
       roff: 0.000813912,
       ron: 0.798941
   },
   {
       time: 12700,
       gfp: 0.993419,
       roff: 0.00081391,
       ron: 0.798941
   },
   {
       time: 12750,
       gfp: 0.993419,
       roff: 0.000813908,
       ron: 0.798941
   },
   {
       time: 12800,
       gfp: 0.993419,
       roff: 0.000813906,
       ron: 0.798941
   },
   {
       time: 12850,
       gfp: 0.993419,
       roff: 0.000813904,
       ron: 0.798941
   },
   {
       time: 12900,
       gfp: 0.993419,
       roff: 0.000813903,
       ron: 0.798941
   },
   {
       time: 12950,
       gfp: 0.993419,
       roff: 0.000813901,
       ron: 0.798942
   },
   {
       time: 13000,
       gfp: 0.993419,
       roff: 0.000813899,
       ron: 0.798942
   },
   {
       time: 13050,
       gfp: 0.993419,
       roff: 0.000813898,
       ron: 0.798942
   },
   {
       time: 13100,
       gfp: 0.993419,
       roff: 0.000813896,
       ron: 0.798942
   },
   {
       time: 13150,
       gfp: 0.993419,
       roff: 0.000813895,
       ron: 0.798942
   },
   {
       time: 13200,
       gfp: 0.993419,
       roff: 0.000813893,
       ron: 0.798942
   },
   {
       time: 13250,
       gfp: 0.993419,
       roff: 0.000813892,
       ron: 0.798942
   },
   {
       time: 13300,
       gfp: 0.993419,
       roff: 0.000813891,
       ron: 0.798942
   },
   {
       time: 13350,
       gfp: 0.993419,
       roff: 0.00081389,
       ron: 0.798942
   },
   {
       time: 13400,
       gfp: 0.993419,
       roff: 0.000813889,
       ron: 0.798942
   },
   {
       time: 13450,
       gfp: 0.993419,
       roff: 0.000813888,
       ron: 0.798942
   },
   {
       time: 13500,
       gfp: 0.993419,
       roff: 0.000813887,
       ron: 0.798942
   },
   {
       time: 13550,
       gfp: 0.993419,
       roff: 0.000813886,
       ron: 0.798942
   },
   {
       time: 13600,
       gfp: 0.993419,
       roff: 0.000813885,
       ron: 0.798942
   }

] let modelOffData = [

   {
       time: 0,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568828
   },
   {
       time: 13600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568828
   }

]; let modelOffOnData = [

   {
       time: 0,
       gfp: 0.000163698,
       roff: 0.697701,
       ron: 0.832674
   },
   {
       time: 50,
       gfp: 0.000211074,
       roff: 0.612363,
       ron: 0.948521
   },
   {
       time: 100,
       gfp: 0.000267526,
       roff: 0.550777,
       ron: 0.919628
   },
   {
       time: 150,
       gfp: 0.000329676,
       roff: 0.501516,
       ron: 0.870831
   },
   {
       time: 200,
       gfp: 0.000397584,
       roff: 0.460319,
       ron: 0.809957
   },
   {
       time: 250,
       gfp: 0.000472028,
       roff: 0.424945,
       ron: 0.744471
   },
   {
       time: 300,
       gfp: 0.00055395,
       roff: 0.394015,
       ron: 0.68035
   },
   {
       time: 350,
       gfp: 0.00064434,
       roff: 0.36661,
       ron: 0.621023
   },
   {
       time: 400,
       gfp: 0.000744222,
       roff: 0.342082,
       ron: 0.567804
   },
   {
       time: 450,
       gfp: 0.000854664,
       roff: 0.319958,
       ron: 0.520748
   },
   {
       time: 500,
       gfp: 0.000976787,
       roff: 0.299877,
       ron: 0.479326
   },
   {
       time: 550,
       gfp: 0.00111178,
       roff: 0.281556,
       ron: 0.442819
   },
   {
       time: 600,
       gfp: 0.00126091,
       roff: 0.264771,
       ron: 0.410508
   },
   {
       time: 650,
       gfp: 0.00142552,
       roff: 0.249338,
       ron: 0.381752
   },
   {
       time: 700,
       gfp: 0.00160704,
       roff: 0.235106,
       ron: 0.356011
   },
   {
       time: 750,
       gfp: 0.001807,
       roff: 0.221948,
       ron: 0.33284
   },
   {
       time: 800,
       gfp: 0.00202701,
       roff: 0.209757,
       ron: 0.311876
   },
   {
       time: 850,
       gfp: 0.00226874,
       roff: 0.198442,
       ron: 0.292823
   },
   {
       time: 900,
       gfp: 0.00253395,
       roff: 0.187925,
       ron: 0.275439
   },
   {
       time: 950,
       gfp: 0.00282443,
       roff: 0.178137,
       ron: 0.259525
   },
   {
       time: 1000,
       gfp: 0.00314203,
       roff: 0.169021,
       ron: 0.244918
   },
   {
       time: 1050,
       gfp: 0.00348854,
       roff: 0.160523,
       ron: 0.231479
   },
   {
       time: 1100,
       gfp: 0.00386576,
       roff: 0.1526,
       ron: 0.219094
   },
   {
       time: 1150,
       gfp: 0.00427536,
       roff: 0.14521,
       ron: 0.207664
   },
   {
       time: 1200,
       gfp: 0.00471886,
       roff: 0.138319,
       ron: 0.197106
   },
   {
       time: 1250,
       gfp: 0.00519756,
       roff: 0.131895,
       ron: 0.187348
   },
   {
       time: 1300,
       gfp: 0.00571242,
       roff: 0.125909,
       ron: 0.178328
   },
   {
       time: 1350,
       gfp: 0.00626401,
       roff: 0.120336,
       ron: 0.169991
   },
   {
       time: 1400,
       gfp: 0.00685239,
       roff: 0.115154,
       ron: 0.162289
   },
   {
       time: 1450,
       gfp: 0.00747704,
       roff: 0.110341,
       ron: 0.15518
   },
   {
       time: 1500,
       gfp: 0.00813668,
       roff: 0.105878,
       ron: 0.148626
   },
   {
       time: 1550,
       gfp: 0.00882929,
       roff: 0.101748,
       ron: 0.142592
   },
   {
       time: 1600,
       gfp: 0.00955198,
       roff: 0.0979326,
       ron: 0.137048
   },
   {
       time: 1650,
       gfp: 0.010301,
       roff: 0.0944174,
       ron: 0.131964
   },
   {
       time: 1700,
       gfp: 0.0110718,
       roff: 0.0911866,
       ron: 0.127314
   },
   {
       time: 1750,
       gfp: 0.0118589,
       roff: 0.0882252,
       ron: 0.123072
   },
   {
       time: 1800,
       gfp: 0.0126564,
       roff: 0.0855188,
       ron: 0.119213
   },
   {
       time: 1850,
       gfp: 0.0134576,
       roff: 0.0830528,
       ron: 0.115713
   },
   {
       time: 1900,
       gfp: 0.0142557,
       roff: 0.0808127,
       ron: 0.11255
   },
   {
       time: 1950,
       gfp: 0.0150439,
       roff: 0.0787842,
       ron: 0.109701
   },
   {
       time: 2000,
       gfp: 0.0158156,
       roff: 0.076953,
       ron: 0.107144
   },
   {
       time: 2050,
       gfp: 0.0165645,
       roff: 0.0753049,
       ron: 0.104857
   },
   {
       time: 2100,
       gfp: 0.0172853,
       roff: 0.0738257,
       ron: 0.10282
   },
   {
       time: 2150,
       gfp: 0.0179733,
       roff: 0.0725018,
       ron: 0.101012
   },
   {
       time: 2200,
       gfp: 0.0186248,
       roff: 0.0713196,
       ron: 0.0994126
   },
   {
       time: 2250,
       gfp: 0.0192373,
       roff: 0.0702663,
       ron: 0.0980041
   },
   {
       time: 2300,
       gfp: 0.0198091,
       roff: 0.0693294,
       ron: 0.0967681
   },
   {
       time: 2350,
       gfp: 0.0203398,
       roff: 0.0684972,
       ron: 0.095688
   },
   {
       time: 2400,
       gfp: 0.0208296,
       roff: 0.0677587,
       ron: 0.094748
   },
   {
       time: 2450,
       gfp: 0.0212794,
       roff: 0.0671036,
       ron: 0.0939335
   },
   {
       time: 2500,
       gfp: 0.0216909,
       roff: 0.0665225,
       ron: 0.0932313
   },
   {
       time: 2550,
       gfp: 0.0220663,
       roff: 0.0660066,
       ron: 0.0926289
   },
   {
       time: 2600,
       gfp: 0.0224078,
       roff: 0.065548,
       ron: 0.0921154
   },
   {
       time: 2650,
       gfp: 0.0227183,
       roff: 0.0651395,
       ron: 0.0916808
   },
   {
       time: 2700,
       gfp: 0.0230003,
       roff: 0.0647746,
       ron: 0.0913162
   },
   {
       time: 2750,
       gfp: 0.0232567,
       roff: 0.0644476,
       ron: 0.0910134
   },
   {
       time: 2800,
       gfp: 0.0234902,
       roff: 0.0641533,
       ron: 0.0907656
   },
   {
       time: 2850,
       gfp: 0.0237033,
       roff: 0.0638871,
       ron: 0.0905663
   },
   {
       time: 2900,
       gfp: 0.0238986,
       roff: 0.0636448,
       ron: 0.0904102
   },
   {
       time: 2950,
       gfp: 0.0240783,
       roff: 0.0634229,
       ron: 0.0902925
   },
   {
       time: 3000,
       gfp: 0.0242446,
       roff: 0.0632182,
       ron: 0.0902089
   },
   {
       time: 3050,
       gfp: 0.0243995,
       roff: 0.0630279,
       ron: 0.0901558
   },
   {
       time: 3100,
       gfp: 0.0245447,
       roff: 0.0628495,
       ron: 0.0901301
   },
   {
       time: 3150,
       gfp: 0.024682,
       roff: 0.0626807,
       ron: 0.0901291
   },
   {
       time: 3200,
       gfp: 0.0248127,
       roff: 0.0625198,
       ron: 0.0901504
   },
   {
       time: 3250,
       gfp: 0.0249383,
       roff: 0.0623649,
       ron: 0.0901922
   },
   {
       time: 3300,
       gfp: 0.02506,
       roff: 0.0622147,
       ron: 0.0902528
   },
   {
       time: 3350,
       gfp: 0.0251787,
       roff: 0.0620677,
       ron: 0.0903307
   },
   {
       time: 3400,
       gfp: 0.0252957,
       roff: 0.0619229,
       ron: 0.0904248
   },
   {
       time: 3450,
       gfp: 0.0254116,
       roff: 0.0617791,
       ron: 0.0905343
   },
   {
       time: 3500,
       gfp: 0.0255274,
       roff: 0.0616354,
       ron: 0.0906582
   },
   {
       time: 3550,
       gfp: 0.0256438,
       roff: 0.0614911,
       ron: 0.0907961
   },
   {
       time: 3600,
       gfp: 0.0257616,
       roff: 0.0613453,
       ron: 0.0909475
   },
   {
       time: 3650,
       gfp: 0.0258812,
       roff: 0.0611973,
       ron: 0.091112
   },
   {
       time: 3700,
       gfp: 0.0260035,
       roff: 0.0610467,
       ron: 0.0912895
   },
   {
       time: 3750,
       gfp: 0.0261288,
       roff: 0.0608927,
       ron: 0.0914798
   },
   {
       time: 3800,
       gfp: 0.0262578,
       roff: 0.0607348,
       ron: 0.0916831
   },
   {
       time: 3850,
       gfp: 0.0263909,
       roff: 0.0605727,
       ron: 0.0918993
   },
   {
       time: 3900,
       gfp: 0.0265287,
       roff: 0.0604057,
       ron: 0.0921286
   },
   {
       time: 3950,
       gfp: 0.0266717,
       roff: 0.0602336,
       ron: 0.0923714
   },
   {
       time: 4000,
       gfp: 0.0268203,
       roff: 0.0600559,
       ron: 0.0926278
   },
   {
       time: 4050,
       gfp: 0.026975,
       roff: 0.0598721,
       ron: 0.0928983
   },
   {
       time: 4100,
       gfp: 0.0271363,
       roff: 0.0596819,
       ron: 0.0931834
   },
   {
       time: 4150,
       gfp: 0.0273047,
       roff: 0.059485,
       ron: 0.0934834
   },
   {
       time: 4200,
       gfp: 0.0274808,
       roff: 0.059281,
       ron: 0.0937991
   },
   {
       time: 4250,
       gfp: 0.027665,
       roff: 0.0590695,
       ron: 0.0941311
   },
   {
       time: 4300,
       gfp: 0.0278578,
       roff: 0.0588503,
       ron: 0.0944799
   },
   {
       time: 4350,
       gfp: 0.0280599,
       roff: 0.0586229,
       ron: 0.0948465
   },
   {
       time: 4400,
       gfp: 0.0282717,
       roff: 0.058387,
       ron: 0.0952315
   },
   {
       time: 4450,
       gfp: 0.028494,
       roff: 0.0581423,
       ron: 0.095636
   },
   {
       time: 4500,
       gfp: 0.0287273,
       roff: 0.0578885,
       ron: 0.0960607
   },
   {
       time: 4550,
       gfp: 0.0289724,
       roff: 0.0576252,
       ron: 0.0965067
   },
   {
       time: 4600,
       gfp: 0.0292299,
       roff: 0.0573522,
       ron: 0.0969752
   },
   {
       time: 4650,
       gfp: 0.0295005,
       roff: 0.0570689,
       ron: 0.0974672
   },
   {
       time: 4700,
       gfp: 0.0297852,
       roff: 0.0567753,
       ron: 0.097984
   },
   {
       time: 4750,
       gfp: 0.0300847,
       roff: 0.0564708,
       ron: 0.0985269
   },
   {
       time: 4800,
       gfp: 0.0303999,
       roff: 0.0561552,
       ron: 0.0990972
   },
   {
       time: 4850,
       gfp: 0.0307319,
       roff: 0.0558282,
       ron: 0.0996966
   },
   {
       time: 4900,
       gfp: 0.0310816,
       roff: 0.0554894,
       ron: 0.100327
   },
   {
       time: 4950,
       gfp: 0.0314502,
       roff: 0.0551386,
       ron: 0.100989
   },
   {
       time: 5000,
       gfp: 0.0318387,
       roff: 0.0547754,
       ron: 0.101685
   },
   {
       time: 5050,
       gfp: 0.0322486,
       roff: 0.0543995,
       ron: 0.102418
   },
   {
       time: 5100,
       gfp: 0.032681,
       roff: 0.0540105,
       ron: 0.103188
   },
   {
       time: 5150,
       gfp: 0.0331375,
       roff: 0.0536083,
       ron: 0.103999
   },
   {
       time: 5200,
       gfp: 0.0336197,
       roff: 0.0531926,
       ron: 0.104852
   },
   {
       time: 5250,
       gfp: 0.0341291,
       roff: 0.052763,
       ron: 0.105751
   },
   {
       time: 5300,
       gfp: 0.0346677,
       roff: 0.0523192,
       ron: 0.106697
   },
   {
       time: 5350,
       gfp: 0.0352372,
       roff: 0.0518612,
       ron: 0.107694
   },
   {
       time: 5400,
       gfp: 0.0358398,
       roff: 0.0513886,
       ron: 0.108745
   },
   {
       time: 5450,
       gfp: 0.0364777,
       roff: 0.0509012,
       ron: 0.109853
   },
   {
       time: 5500,
       gfp: 0.0371534,
       roff: 0.0503989,
       ron: 0.111022
   },
   {
       time: 5550,
       gfp: 0.0378693,
       roff: 0.0498814,
       ron: 0.112254
   },
   {
       time: 5600,
       gfp: 0.0386284,
       roff: 0.0493487,
       ron: 0.113555
   },
   {
       time: 5650,
       gfp: 0.0394336,
       roff: 0.0488007,
       ron: 0.114929
   },
   {
       time: 5700,
       gfp: 0.0402882,
       roff: 0.0482372,
       ron: 0.11638
   },
   {
       time: 5750,
       gfp: 0.0411958,
       roff: 0.0476583,
       ron: 0.117914
   },
   {
       time: 5800,
       gfp: 0.0421601,
       roff: 0.047064,
       ron: 0.119535
   },
   {
       time: 5850,
       gfp: 0.0431852,
       roff: 0.0464542,
       ron: 0.121249
   },
   {
       time: 5900,
       gfp: 0.0442756,
       roff: 0.0458292,
       ron: 0.123062
   },
   {
       time: 5950,
       gfp: 0.0454362,
       roff: 0.045189,
       ron: 0.124982
   },
   {
       time: 6000,
       gfp: 0.0466721,
       roff: 0.0445338,
       ron: 0.127014
   },
   {
       time: 6050,
       gfp: 0.047989,
       roff: 0.0438639,
       ron: 0.129168
   },
   {
       time: 6100,
       gfp: 0.0493929,
       roff: 0.0431795,
       ron: 0.13145
   },
   {
       time: 6150,
       gfp: 0.0508906,
       roff: 0.0424811,
       ron: 0.133869
   },
   {
       time: 6200,
       gfp: 0.052489,
       roff: 0.041769,
       ron: 0.136435
   },
   {
       time: 6250,
       gfp: 0.054196,
       roff: 0.0410438,
       ron: 0.139158
   },
   {
       time: 6300,
       gfp: 0.0560198,
       roff: 0.040306,
       ron: 0.142049
   },
   {
       time: 6350,
       gfp: 0.0579695,
       roff: 0.0395561,
       ron: 0.145119
   },
   {
       time: 6400,
       gfp: 0.0600547,
       roff: 0.038795,
       ron: 0.14838
   },
   {
       time: 6450,
       gfp: 0.0622861,
       roff: 0.0380232,
       ron: 0.151846
   },
   {
       time: 6500,
       gfp: 0.0646748,
       roff: 0.0372417,
       ron: 0.155531
   },
   {
       time: 6550,
       gfp: 0.0672331,
       roff: 0.0364514,
       ron: 0.15945
   },
   {
       time: 6600,
       gfp: 0.0699739,
       roff: 0.035653,
       ron: 0.163618
   },
   {
       time: 6650,
       gfp: 0.0729114,
       roff: 0.0348478,
       ron: 0.168053
   },
   {
       time: 6700,
       gfp: 0.0760605,
       roff: 0.0340366,
       ron: 0.172773
   },
   {
       time: 6750,
       gfp: 0.0794372,
       roff: 0.0332207,
       ron: 0.177796
   },
   {
       time: 6800,
       gfp: 0.0830586,
       roff: 0.0324012,
       ron: 0.183143
   },
   {
       time: 6850,
       gfp: 0.086943,
       roff: 0.0315792,
       ron: 0.188835
   },
   {
       time: 6900,
       gfp: 0.0911095,
       roff: 0.030756,
       ron: 0.194894
   },
   {
       time: 6950,
       gfp: 0.0955784,
       roff: 0.0299329,
       ron: 0.201341
   },
   {
       time: 7000,
       gfp: 0.100371,
       roff: 0.0291111,
       ron: 0.208202
   },
   {
       time: 7050,
       gfp: 0.10551,
       roff: 0.028292,
       ron: 0.2155
   },
   {
       time: 7100,
       gfp: 0.111019,
       roff: 0.0274767,
       ron: 0.22326
   },
   {
       time: 7150,
       gfp: 0.116921,
       roff: 0.0266665,
       ron: 0.231505
   },
   {
       time: 7200,
       gfp: 0.123241,
       roff: 0.0258628,
       ron: 0.240261
   },
   {
       time: 7250,
       gfp: 0.130005,
       roff: 0.0250668,
       ron: 0.249551
   },
   {
       time: 7300,
       gfp: 0.137238,
       roff: 0.0242795,
       ron: 0.259399
   },
   {
       time: 7350,
       gfp: 0.144967,
       roff: 0.0235022,
       ron: 0.269824
   },
   {
       time: 7400,
       gfp: 0.153215,
       roff: 0.0227359,
       ron: 0.280847
   },
   {
       time: 7450,
       gfp: 0.162009,
       roff: 0.0219817,
       ron: 0.292483
   },
   {
       time: 7500,
       gfp: 0.171371,
       roff: 0.0212405,
       ron: 0.304743
   },
   {
       time: 7550,
       gfp: 0.181325,
       roff: 0.0205132,
       ron: 0.317636
   },
   {
       time: 7600,
       gfp: 0.191889,
       roff: 0.0198006,
       ron: 0.331162
   },
   {
       time: 7650,
       gfp: 0.203083,
       roff: 0.0191033,
       ron: 0.345316
   },
   {
       time: 7700,
       gfp: 0.214921,
       roff: 0.0184221,
       ron: 0.360084
   },
   {
       time: 7750,
       gfp: 0.227414,
       roff: 0.0177574,
       ron: 0.375442
   },
   {
       time: 7800,
       gfp: 0.240568,
       roff: 0.0171097,
       ron: 0.391357
   },
   {
       time: 7850,
       gfp: 0.254387,
       roff: 0.0164793,
       ron: 0.407784
   },
   {
       time: 7900,
       gfp: 0.268866,
       roff: 0.0158667,
       ron: 0.424664
   },
   {
       time: 7950,
       gfp: 0.283997,
       roff: 0.0152719,
       ron: 0.441928
   },
   {
       time: 8000,
       gfp: 0.299765,
       roff: 0.0146951,
       ron: 0.459491
   },
   {
       time: 8050,
       gfp: 0.316146,
       roff: 0.0141363,
       ron: 0.477256
   },
   {
       time: 8100,
       gfp: 0.333113,
       roff: 0.0135956,
       ron: 0.495114
   },
   {
       time: 8150,
       gfp: 0.35063,
       roff: 0.0130729,
       ron: 0.512949
   },
   {
       time: 8200,
       gfp: 0.368654,
       roff: 0.012568,
       ron: 0.530633
   },
   {
       time: 8250,
       gfp: 0.387136,
       roff: 0.0120808,
       ron: 0.548038
   },
   {
       time: 8300,
       gfp: 0.406021,
       roff: 0.0116111,
       ron: 0.565036
   },
   {
       time: 8350,
       gfp: 0.425248,
       roff: 0.0111585,
       ron: 0.581504
   },
   {
       time: 8400,
       gfp: 0.444752,
       roff: 0.0107228,
       ron: 0.59733
   },
   {
       time: 8450,
       gfp: 0.464464,
       roff: 0.0103036,
       ron: 0.61242
   },
   {
       time: 8500,
       gfp: 0.48431,
       roff: 0.00990054,
       ron: 0.626697
   },
   {
       time: 8550,
       gfp: 0.504218,
       roff: 0.00951326,
       ron: 0.640109
   },
   {
       time: 8600,
       gfp: 0.524114,
       roff: 0.00914133,
       ron: 0.652627
   },
   {
       time: 8650,
       gfp: 0.543923,
       roff: 0.0087843,
       ron: 0.664244
   },
   {
       time: 8700,
       gfp: 0.563575,
       roff: 0.00844173,
       ron: 0.674974
   },
   {
       time: 8750,
       gfp: 0.583001,
       roff: 0.00811316,
       ron: 0.68485
   },
   {
       time: 8800,
       gfp: 0.602136,
       roff: 0.00779812,
       ron: 0.693914
   },
   {
       time: 8850,
       gfp: 0.620919,
       roff: 0.00749615,
       ron: 0.702221
   },
   {
       time: 8900,
       gfp: 0.639297,
       roff: 0.00720679,
       ron: 0.709826
   },
   {
       time: 8950,
       gfp: 0.657221,
       roff: 0.00692957,
       ron: 0.716788
   },
   {
       time: 9000,
       gfp: 0.674647,
       roff: 0.00666403,
       ron: 0.723163
   },
   {
       time: 9050,
       gfp: 0.691539,
       roff: 0.00640973,
       ron: 0.729003
   },
   {
       time: 9100,
       gfp: 0.707866,
       roff: 0.00616623,
       ron: 0.734358
   },
   {
       time: 9150,
       gfp: 0.723604,
       roff: 0.00593311,
       ron: 0.739272
   },
   {
       time: 9200,
       gfp: 0.738736,
       roff: 0.00570995,
       ron: 0.743785
   },
   {
       time: 9250,
       gfp: 0.753249,
       roff: 0.00549634,
       ron: 0.747934
   },
   {
       time: 9300,
       gfp: 0.767135,
       roff: 0.00529191,
       ron: 0.75175
   },
   {
       time: 9350,
       gfp: 0.780392,
       roff: 0.00509626,
       ron: 0.755263
   },
   {
       time: 9400,
       gfp: 0.793023,
       roff: 0.00490904,
       ron: 0.758498
   },
   {
       time: 9450,
       gfp: 0.805034,
       roff: 0.0047299,
       ron: 0.761479
   },
   {
       time: 9500,
       gfp: 0.816434,
       roff: 0.0045585,
       ron: 0.764227
   },
   {
       time: 9550,
       gfp: 0.827235,
       roff: 0.00439452,
       ron: 0.76676
   },
   {
       time: 9600,
       gfp: 0.837454,
       roff: 0.00423764,
       ron: 0.769098
   },
   {
       time: 9650,
       gfp: 0.847108,
       roff: 0.00408756,
       ron: 0.771254
   },
   {
       time: 9700,
       gfp: 0.856215,
       roff: 0.003944,
       ron: 0.773245
   },
   {
       time: 9750,
       gfp: 0.864795,
       roff: 0.00380668,
       ron: 0.775083
   },
   {
       time: 9800,
       gfp: 0.872871,
       roff: 0.00367534,
       ron: 0.776781
   },
   {
       time: 9850,
       gfp: 0.880462,
       roff: 0.00354971,
       ron: 0.778349
   },
   {
       time: 9900,
       gfp: 0.887593,
       roff: 0.00342956,
       ron: 0.779799
   },
   {
       time: 9950,
       gfp: 0.894285,
       roff: 0.00331464,
       ron: 0.781138
   },
   {
       time: 10000,
       gfp: 0.90056,
       roff: 0.00320474,
       ron: 0.782377
   },
   {
       time: 10050,
       gfp: 0.906441,
       roff: 0.00309964,
       ron: 0.783523
   },
   {
       time: 10100,
       gfp: 0.911948,
       roff: 0.00299914,
       ron: 0.784583
   },
   {
       time: 10150,
       gfp: 0.917103,
       roff: 0.00290302,
       ron: 0.785564
   },
   {
       time: 10200,
       gfp: 0.921926,
       roff: 0.00281111,
       ron: 0.786473
   },
   {
       time: 10250,
       gfp: 0.926437,
       roff: 0.00272323,
       ron: 0.787314
   },
   {
       time: 10300,
       gfp: 0.930654,
       roff: 0.00263919,
       ron: 0.788094
   },
   {
       time: 10350,
       gfp: 0.934596,
       roff: 0.00255883,
       ron: 0.788816
   },
   {
       time: 10400,
       gfp: 0.938279,
       roff: 0.00248199,
       ron: 0.789486
   },
   {
       time: 10450,
       gfp: 0.941721,
       roff: 0.00240852,
       ron: 0.790108
   },
   {
       time: 10500,
       gfp: 0.944936,
       roff: 0.00233828,
       ron: 0.790684
   },
   {
       time: 10550,
       gfp: 0.94794,
       roff: 0.00227112,
       ron: 0.791219
   },
   {
       time: 10600,
       gfp: 0.950745,
       roff: 0.0022069,
       ron: 0.791716
   },
   {
       time: 10650,
       gfp: 0.953366,
       roff: 0.00214551,
       ron: 0.792178
   },
   {
       time: 10700,
       gfp: 0.955815,
       roff: 0.00208681,
       ron: 0.792607
   },
   {
       time: 10750,
       gfp: 0.958103,
       roff: 0.00203069,
       ron: 0.793007
   },
   {
       time: 10800,
       gfp: 0.96024,
       roff: 0.00197704,
       ron: 0.793378
   },
   {
       time: 10850,
       gfp: 0.962238,
       roff: 0.00192575,
       ron: 0.793723
   },
   {
       time: 10900,
       gfp: 0.964105,
       roff: 0.00187671,
       ron: 0.794045
   },
   {
       time: 10950,
       gfp: 0.965851,
       roff: 0.00182983,
       ron: 0.794345
   },
   {
       time: 11000,
       gfp: 0.967484,
       roff: 0.00178501,
       ron: 0.794624
   },
   {
       time: 11050,
       gfp: 0.969011,
       roff: 0.00174216,
       ron: 0.794885
   },
   {
       time: 11100,
       gfp: 0.97044,
       roff: 0.00170121,
       ron: 0.795128
   },
   {
       time: 11150,
       gfp: 0.971777,
       roff: 0.00166205,
       ron: 0.795355
   },
   {
       time: 11200,
       gfp: 0.973029,
       roff: 0.00162462,
       ron: 0.795566
   },
   {
       time: 11250,
       gfp: 0.974201,
       roff: 0.00158883,
       ron: 0.795764
   },
   {
       time: 11300,
       gfp: 0.975299,
       roff: 0.00155463,
       ron: 0.795949
   },
   {
       time: 11350,
       gfp: 0.976328,
       roff: 0.00152193,
       ron: 0.796122
   },
   {
       time: 11400,
       gfp: 0.977293,
       roff: 0.00149067,
       ron: 0.796284
   },
   {
       time: 11450,
       gfp: 0.978198,
       roff: 0.00146078,
       ron: 0.796435
   },
   {
       time: 11500,
       gfp: 0.979047,
       roff: 0.00143222,
       ron: 0.796577
   },
   {
       time: 11550,
       gfp: 0.979844,
       roff: 0.00140492,
       ron: 0.79671
   },
   {
       time: 11600,
       gfp: 0.980592,
       roff: 0.00137882,
       ron: 0.796835
   },
   {
       time: 11650,
       gfp: 0.981294,
       roff: 0.00135387,
       ron: 0.796951
   },
   {
       time: 11700,
       gfp: 0.981954,
       roff: 0.00133002,
       ron: 0.797061
   },
   {
       time: 11750,
       gfp: 0.982575,
       roff: 0.00130722,
       ron: 0.797164
   },
   {
       time: 11800,
       gfp: 0.983158,
       roff: 0.00128543,
       ron: 0.797261
   },
   {
       time: 11850,
       gfp: 0.983707,
       roff: 0.0012646,
       ron: 0.797351
   },
   {
       time: 11900,
       gfp: 0.984224,
       roff: 0.00124469,
       ron: 0.797437
   },
   {
       time: 11950,
       gfp: 0.98471,
       roff: 0.00122565,
       ron: 0.797517
   },
   {
       time: 12000,
       gfp: 0.985168,
       roff: 0.00120746,
       ron: 0.797593
   },
   {
       time: 12050,
       gfp: 0.9856,
       roff: 0.00119007,
       ron: 0.797664
   },
   {
       time: 12100,
       gfp: 0.986007,
       roff: 0.00117345,
       ron: 0.797731
   },
   {
       time: 12150,
       gfp: 0.986391,
       roff: 0.00115756,
       ron: 0.797794
   },
   {
       time: 12200,
       gfp: 0.986753,
       roff: 0.00114238,
       ron: 0.797854
   },
   {
       time: 12250,
       gfp: 0.987095,
       roff: 0.00112786,
       ron: 0.79791
   },
   {
       time: 12300,
       gfp: 0.987417,
       roff: 0.00111398,
       ron: 0.797963
   },
   {
       time: 12350,
       gfp: 0.987722,
       roff: 0.00110072,
       ron: 0.798013
   },
   {
       time: 12400,
       gfp: 0.98801,
       roff: 0.00108804,
       ron: 0.79806
   },
   {
       time: 12450,
       gfp: 0.988282,
       roff: 0.00107593,
       ron: 0.798104
   },
   {
       time: 12500,
       gfp: 0.988539,
       roff: 0.00106435,
       ron: 0.798147
   },
   {
       time: 12550,
       gfp: 0.988782,
       roff: 0.00105328,
       ron: 0.798186
   },
   {
       time: 12600,
       gfp: 0.989012,
       roff: 0.00104269,
       ron: 0.798224
   },
   {
       time: 12650,
       gfp: 0.98923,
       roff: 0.00103258,
       ron: 0.79826
   },
   {
       time: 12700,
       gfp: 0.989437,
       roff: 0.00102291,
       ron: 0.798293
   },
   {
       time: 12750,
       gfp: 0.989632,
       roff: 0.00101367,
       ron: 0.798325
   },
   {
       time: 12800,
       gfp: 0.989817,
       roff: 0.00100484,
       ron: 0.798356
   },
   {
       time: 12850,
       gfp: 0.989992,
       roff: 0.000996401,
       ron: 0.798384
   },
   {
       time: 12900,
       gfp: 0.990158,
       roff: 0.000988333,
       ron: 0.798411
   },
   {
       time: 12950,
       gfp: 0.990316,
       roff: 0.000980621,
       ron: 0.798437
   },
   {
       time: 13000,
       gfp: 0.990466,
       roff: 0.000973249,
       ron: 0.798461
   },
   {
       time: 13050,
       gfp: 0.990607,
       roff: 0.000966203,
       ron: 0.798485
   },
   {
       time: 13100,
       gfp: 0.990742,
       roff: 0.000959469,
       ron: 0.798507
   },
   {
       time: 13150,
       gfp: 0.99087,
       roff: 0.000953032,
       ron: 0.798527
   },
   {
       time: 13200,
       gfp: 0.990991,
       roff: 0.000946879,
       ron: 0.798547
   },
   {
       time: 13250,
       gfp: 0.991106,
       roff: 0.000940999,
       ron: 0.798566
   },
   {
       time: 13300,
       gfp: 0.991216,
       roff: 0.000935378,
       ron: 0.798584
   },
   {
       time: 13350,
       gfp: 0.99132,
       roff: 0.000930006,
       ron: 0.798601
   },
   {
       time: 13400,
       gfp: 0.991419,
       roff: 0.000924871,
       ron: 0.798617
   },
   {
       time: 13450,
       gfp: 0.991513,
       roff: 0.000919964,
       ron: 0.798632
   },
   {
       time: 13500,
       gfp: 0.991602,
       roff: 0.000915273,
       ron: 0.798647
   },
   {
       time: 13550,
       gfp: 0.991687,
       roff: 0.000910789,
       ron: 0.79866
   },
   {
       time: 13600,
       gfp: 0.991768,
       roff: 0.000906504,
       ron: 0.798673
   },
   {
       time: 13650,
       gfp: 0.991845,
       roff: 0.000902408,
       ron: 0.798686
   },
   {
       time: 13700,
       gfp: 0.991918,
       roff: 0.000898493,
       ron: 0.798698
   },
   {
       time: 13750,
       gfp: 0.991987,
       roff: 0.000894751,
       ron: 0.798709
   },
   {
       time: 13800,
       gfp: 0.992054,
       roff: 0.000891174,
       ron: 0.79872
   },
   {
       time: 13850,
       gfp: 0.992117,
       roff: 0.000887756,
       ron: 0.79873
   },
   {
       time: 13900,
       gfp: 0.992177,
       roff: 0.000884489,
       ron: 0.79874
   },
   {
       time: 13950,
       gfp: 0.992234,
       roff: 0.000881366,
       ron: 0.798749
   },
   {
       time: 14000,
       gfp: 0.992288,
       roff: 0.000878381,
       ron: 0.798758
   },
   {
       time: 14050,
       gfp: 0.99234,
       roff: 0.000875529,
       ron: 0.798767
   },
   {
       time: 14100,
       gfp: 0.99239,
       roff: 0.000872802,
       ron: 0.798775
   },
   {
       time: 14150,
       gfp: 0.992437,
       roff: 0.000870196,
       ron: 0.798782
   },
   {
       time: 14200,
       gfp: 0.992482,
       roff: 0.000867706,
       ron: 0.798789
   },
   {
       time: 14250,
       gfp: 0.992524,
       roff: 0.000865325,
       ron: 0.798796
   },
   {
       time: 14300,
       gfp: 0.992565,
       roff: 0.00086305,
       ron: 0.798803
   },
   {
       time: 14350,
       gfp: 0.992604,
       roff: 0.000860875,
       ron: 0.798809
   },
   {
       time: 14400,
       gfp: 0.992641,
       roff: 0.000858796,
       ron: 0.798815
   },
   {
       time: 14450,
       gfp: 0.992676,
       roff: 0.000856809,
       ron: 0.798821
   },
   {
       time: 14500,
       gfp: 0.99271,
       roff: 0.00085491,
       ron: 0.798827
   },
   {
       time: 14550,
       gfp: 0.992742,
       roff: 0.000853095,
       ron: 0.798832
   },
   {
       time: 14600,
       gfp: 0.992773,
       roff: 0.000851361,
       ron: 0.798837
   },
   {
       time: 14650,
       gfp: 0.992802,
       roff: 0.000849702,
       ron: 0.798841
   },
   {
       time: 14700,
       gfp: 0.99283,
       roff: 0.000848118,
       ron: 0.798846
   },
   {
       time: 14750,
       gfp: 0.992857,
       roff: 0.000846603,
       ron: 0.79885
   },
   {
       time: 14800,
       gfp: 0.992882,
       roff: 0.000845155,
       ron: 0.798854
   },
   {
       time: 14850,
       gfp: 0.992906,
       roff: 0.000843772,
       ron: 0.798858
   },
   {
       time: 14900,
       gfp: 0.992929,
       roff: 0.000842449,
       ron: 0.798862
   },
   {
       time: 14950,
       gfp: 0.992951,
       roff: 0.000841185,
       ron: 0.798866
   },
   {
       time: 15000,
       gfp: 0.992972,
       roff: 0.000839977,
       ron: 0.798869
   },
   {
       time: 15050,
       gfp: 0.992993,
       roff: 0.000838822,
       ron: 0.798872
   },
   {
       time: 15100,
       gfp: 0.993012,
       roff: 0.000837719,
       ron: 0.798875
   },
   {
       time: 15150,
       gfp: 0.99303,
       roff: 0.000836664,
       ron: 0.798878
   },
   {
       time: 15200,
       gfp: 0.993048,
       roff: 0.000835656,
       ron: 0.798881
   },
   {
       time: 15250,
       gfp: 0.993064,
       roff: 0.000834692,
       ron: 0.798884
   },
   {
       time: 15300,
       gfp: 0.99308,
       roff: 0.000833771,
       ron: 0.798887
   },
   {
       time: 15350,
       gfp: 0.993095,
       roff: 0.000832891,
       ron: 0.798889
   },
   {
       time: 15400,
       gfp: 0.99311,
       roff: 0.000832049,
       ron: 0.798891
   },
   {
       time: 15450,
       gfp: 0.993124,
       roff: 0.000831245,
       ron: 0.798894
   },
   {
       time: 15500,
       gfp: 0.993137,
       roff: 0.000830476,
       ron: 0.798896
   },
   {
       time: 15550,
       gfp: 0.99315,
       roff: 0.000829742,
       ron: 0.798898
   },
   {
       time: 15600,
       gfp: 0.993162,
       roff: 0.00082904,
       ron: 0.7989
   },
   {
       time: 15650,
       gfp: 0.993173,
       roff: 0.000828369,
       ron: 0.798902
   },
   {
       time: 15700,
       gfp: 0.993184,
       roff: 0.000827727,
       ron: 0.798903
   },
   {
       time: 15750,
       gfp: 0.993195,
       roff: 0.000827114,
       ron: 0.798905
   },
   {
       time: 15800,
       gfp: 0.993205,
       roff: 0.000826528,
       ron: 0.798907
   },
   {
       time: 15850,
       gfp: 0.993214,
       roff: 0.000825968,
       ron: 0.798908
   },
   {
       time: 15900,
       gfp: 0.993223,
       roff: 0.000825433,
       ron: 0.79891
   },
   {
       time: 15950,
       gfp: 0.993232,
       roff: 0.000824921,
       ron: 0.798911
   },
   {
       time: 16000,
       gfp: 0.993241,
       roff: 0.000824432,
       ron: 0.798913
   },
   {
       time: 16050,
       gfp: 0.993249,
       roff: 0.000823965,
       ron: 0.798914
   },
   {
       time: 16100,
       gfp: 0.993256,
       roff: 0.000823518,
       ron: 0.798915
   },
   {
       time: 16150,
       gfp: 0.993263,
       roff: 0.000823091,
       ron: 0.798916
   },
   {
       time: 16200,
       gfp: 0.99327,
       roff: 0.000822683,
       ron: 0.798917
   },
   {
       time: 16250,
       gfp: 0.993277,
       roff: 0.000822293,
       ron: 0.798918
   },
   {
       time: 16300,
       gfp: 0.993283,
       roff: 0.00082192,
       ron: 0.798919
   },
   {
       time: 16350,
       gfp: 0.993289,
       roff: 0.000821564,
       ron: 0.79892
   },
   {
       time: 16400,
       gfp: 0.993295,
       roff: 0.000821224,
       ron: 0.798921
   },
   {
       time: 16450,
       gfp: 0.993301,
       roff: 0.000820898,
       ron: 0.798922
   },
   {
       time: 16500,
       gfp: 0.993306,
       roff: 0.000820587,
       ron: 0.798923
   },
   {
       time: 16550,
       gfp: 0.993311,
       roff: 0.00082029,
       ron: 0.798924
   },
   {
       time: 16600,
       gfp: 0.993316,
       roff: 0.000820006,
       ron: 0.798925
   },
   {
       time: 16650,
       gfp: 0.993321,
       roff: 0.000819734,
       ron: 0.798926
   },
   {
       time: 16700,
       gfp: 0.993325,
       roff: 0.000819474,
       ron: 0.798926
   },
   {
       time: 16750,
       gfp: 0.993329,
       roff: 0.000819226,
       ron: 0.798927
   },
   {
       time: 16800,
       gfp: 0.993333,
       roff: 0.000818989,
       ron: 0.798928
   },
   {
       time: 16850,
       gfp: 0.993337,
       roff: 0.000818763,
       ron: 0.798928
   },
   {
       time: 16900,
       gfp: 0.993341,
       roff: 0.000818546,
       ron: 0.798929
   },
   {
       time: 16950,
       gfp: 0.993344,
       roff: 0.000818339,
       ron: 0.798929
   },
   {
       time: 17000,
       gfp: 0.993348,
       roff: 0.000818141,
       ron: 0.79893
   },
   {
       time: 17050,
       gfp: 0.993351,
       roff: 0.000817952,
       ron: 0.79893
   },
   {
       time: 17100,
       gfp: 0.993354,
       roff: 0.000817771,
       ron: 0.798931
   },
   {
       time: 17150,
       gfp: 0.993357,
       roff: 0.000817598,
       ron: 0.798931
   },
   {
       time: 17200,
       gfp: 0.99336,
       roff: 0.000817433,
       ron: 0.798932
   },
   {
       time: 17250,
       gfp: 0.993362,
       roff: 0.000817276,
       ron: 0.798932
   },
   {
       time: 17300,
       gfp: 0.993365,
       roff: 0.000817125,
       ron: 0.798933
   },
   {
       time: 17350,
       gfp: 0.993367,
       roff: 0.00081698,
       ron: 0.798933
   },
   {
       time: 17400,
       gfp: 0.99337,
       roff: 0.000816843,
       ron: 0.798933
   },
   {
       time: 17450,
       gfp: 0.993372,
       roff: 0.000816711,
       ron: 0.798934
   },
   {
       time: 17500,
       gfp: 0.993374,
       roff: 0.000816585,
       ron: 0.798934
   },
   {
       time: 17550,
       gfp: 0.993376,
       roff: 0.000816465,
       ron: 0.798934
   },
   {
       time: 17600,
       gfp: 0.993378,
       roff: 0.00081635,
       ron: 0.798935
   },
   {
       time: 17650,
       gfp: 0.99338,
       roff: 0.00081624,
       ron: 0.798935
   },
   {
       time: 17700,
       gfp: 0.993382,
       roff: 0.000816135,
       ron: 0.798935
   },
   {
       time: 17750,
       gfp: 0.993383,
       roff: 0.000816034,
       ron: 0.798936
   },
   {
       time: 17800,
       gfp: 0.993385,
       roff: 0.000815938,
       ron: 0.798936
   },
   {
       time: 17850,
       gfp: 0.993386,
       roff: 0.000815847,
       ron: 0.798936
   },
   {
       time: 17900,
       gfp: 0.993388,
       roff: 0.000815759,
       ron: 0.798936
   },
   {
       time: 17950,
       gfp: 0.993389,
       roff: 0.000815675,
       ron: 0.798937
   },
   {
       time: 18000,
       gfp: 0.993391,
       roff: 0.000815595,
       ron: 0.798937
   },
   {
       time: 18050,
       gfp: 0.993392,
       roff: 0.000815518,
       ron: 0.798937
   },
   {
       time: 18100,
       gfp: 0.993393,
       roff: 0.000815445,
       ron: 0.798937
   },
   {
       time: 18150,
       gfp: 0.993394,
       roff: 0.000815375,
       ron: 0.798937
   },
   {
       time: 18200,
       gfp: 0.993395,
       roff: 0.000815309,
       ron: 0.798938
   },
   {
       time: 18250,
       gfp: 0.993397,
       roff: 0.000815245,
       ron: 0.798938
   },
   {
       time: 18300,
       gfp: 0.993398,
       roff: 0.000815184,
       ron: 0.798938
   },
   {
       time: 18350,
       gfp: 0.993399,
       roff: 0.000815125,
       ron: 0.798938
   },
   {
       time: 18400,
       gfp: 0.9934,
       roff: 0.00081507,
       ron: 0.798938
   },
   {
       time: 18450,
       gfp: 0.9934,
       roff: 0.000815016,
       ron: 0.798938
   },
   {
       time: 18500,
       gfp: 0.993401,
       roff: 0.000814965,
       ron: 0.798939
   },
   {
       time: 18550,
       gfp: 0.993402,
       roff: 0.000814917,
       ron: 0.798939
   },
   {
       time: 18600,
       gfp: 0.993403,
       roff: 0.00081487,
       ron: 0.798939
   },
   {
       time: 18650,
       gfp: 0.993404,
       roff: 0.000814826,
       ron: 0.798939
   },
   {
       time: 18700,
       gfp: 0.993404,
       roff: 0.000814783,
       ron: 0.798939
   },
   {
       time: 18750,
       gfp: 0.993405,
       roff: 0.000814743,
       ron: 0.798939
   },
   {
       time: 18800,
       gfp: 0.993406,
       roff: 0.000814704,
       ron: 0.798939
   },
   {
       time: 18850,
       gfp: 0.993406,
       roff: 0.000814667,
       ron: 0.798939
   },
   {
       time: 18900,
       gfp: 0.993407,
       roff: 0.000814631,
       ron: 0.79894
   },
   {
       time: 18950,
       gfp: 0.993407,
       roff: 0.000814597,
       ron: 0.79894
   },
   {
       time: 19000,
       gfp: 0.993408,
       roff: 0.000814565,
       ron: 0.79894
   },
   {
       time: 19050,
       gfp: 0.993409,
       roff: 0.000814534,
       ron: 0.79894
   },
   {
       time: 19100,
       gfp: 0.993409,
       roff: 0.000814504,
       ron: 0.79894
   },
   {
       time: 19150,
       gfp: 0.99341,
       roff: 0.000814476,
       ron: 0.79894
   },
   {
       time: 19200,
       gfp: 0.99341,
       roff: 0.000814449,
       ron: 0.79894
   },
   {
       time: 19250,
       gfp: 0.99341,
       roff: 0.000814423,
       ron: 0.79894
   },
   {
       time: 19300,
       gfp: 0.993411,
       roff: 0.000814398,
       ron: 0.79894
   },
   {
       time: 19350,
       gfp: 0.993411,
       roff: 0.000814375,
       ron: 0.79894
   },
   {
       time: 19400,
       gfp: 0.993412,
       roff: 0.000814352,
       ron: 0.79894
   },
   {
       time: 19450,
       gfp: 0.993412,
       roff: 0.000814331,
       ron: 0.79894
   },
   {
       time: 19500,
       gfp: 0.993412,
       roff: 0.00081431,
       ron: 0.79894
   },
   {
       time: 19550,
       gfp: 0.993413,
       roff: 0.00081429,
       ron: 0.79894
   },
   {
       time: 19600,
       gfp: 0.993413,
       roff: 0.000814271,
       ron: 0.79894
   },
   {
       time: 19650,
       gfp: 0.993413,
       roff: 0.000814253,
       ron: 0.798941
   },
   {
       time: 19700,
       gfp: 0.993414,
       roff: 0.000814236,
       ron: 0.798941
   },
   {
       time: 19750,
       gfp: 0.993414,
       roff: 0.00081422,
       ron: 0.798941
   },
   {
       time: 19800,
       gfp: 0.993414,
       roff: 0.000814204,
       ron: 0.798941
   },
   {
       time: 19850,
       gfp: 0.993414,
       roff: 0.000814189,
       ron: 0.798941
   },
   {
       time: 19900,
       gfp: 0.993415,
       roff: 0.000814174,
       ron: 0.798941
   },
   {
       time: 19950,
       gfp: 0.993415,
       roff: 0.000814161,
       ron: 0.798941
   },
   {
       time: 20000,
       gfp: 0.993415,
       roff: 0.000814148,
       ron: 0.798941
   },
   {
       time: 20050,
       gfp: 0.993415,
       roff: 0.000814135,
       ron: 0.798941
   },
   {
       time: 20100,
       gfp: 0.993415,
       roff: 0.000814123,
       ron: 0.798941
   },
   {
       time: 20150,
       gfp: 0.993416,
       roff: 0.000814112,
       ron: 0.798941
   },
   {
       time: 20200,
       gfp: 0.993416,
       roff: 0.000814101,
       ron: 0.798941
   },
   {
       time: 20250,
       gfp: 0.993416,
       roff: 0.00081409,
       ron: 0.798941
   },
   {
       time: 20300,
       gfp: 0.993416,
       roff: 0.00081408,
       ron: 0.798941
   },
   {
       time: 20350,
       gfp: 0.993416,
       roff: 0.000814071,
       ron: 0.798941
   },
   {
       time: 20400,
       gfp: 0.993417,
       roff: 0.000814062,
       ron: 0.798941
   },
   {
       time: 20450,
       gfp: 0.993417,
       roff: 0.000814053,
       ron: 0.798941
   },
   {
       time: 20500,
       gfp: 0.993417,
       roff: 0.000814044,
       ron: 0.798941
   },
   {
       time: 20550,
       gfp: 0.993417,
       roff: 0.000814037,
       ron: 0.798941
   },
   {
       time: 20600,
       gfp: 0.993417,
       roff: 0.000814029,
       ron: 0.798941
   },
   {
       time: 20650,
       gfp: 0.993417,
       roff: 0.000814022,
       ron: 0.798941
   },
   {
       time: 20700,
       gfp: 0.993417,
       roff: 0.000814015,
       ron: 0.798941
   },
   {
       time: 20750,
       gfp: 0.993417,
       roff: 0.000814008,
       ron: 0.798941
   },
   {
       time: 20800,
       gfp: 0.993418,
       roff: 0.000814002,
       ron: 0.798941
   },
   {
       time: 20850,
       gfp: 0.993418,
       roff: 0.000813996,
       ron: 0.798941
   },
   {
       time: 20900,
       gfp: 0.993418,
       roff: 0.00081399,
       ron: 0.798941
   },
   {
       time: 20950,
       gfp: 0.993418,
       roff: 0.000813984,
       ron: 0.798941
   },
   {
       time: 21000,
       gfp: 0.993418,
       roff: 0.000813979,
       ron: 0.798941
   },
   {
       time: 21050,
       gfp: 0.993418,
       roff: 0.000813974,
       ron: 0.798941
   },
   {
       time: 21100,
       gfp: 0.993418,
       roff: 0.000813969,
       ron: 0.798941
   },
   {
       time: 21150,
       gfp: 0.993418,
       roff: 0.000813964,
       ron: 0.798941
   },
   {
       time: 21200,
       gfp: 0.993418,
       roff: 0.00081396,
       ron: 0.798941
   },
   {
       time: 21250,
       gfp: 0.993418,
       roff: 0.000813956,
       ron: 0.798941
   },
   {
       time: 21300,
       gfp: 0.993418,
       roff: 0.000813952,
       ron: 0.798941
   },
   {
       time: 21350,
       gfp: 0.993418,
       roff: 0.000813948,
       ron: 0.798941
   },
   {
       time: 21400,
       gfp: 0.993418,
       roff: 0.000813944,
       ron: 0.798941
   },
   {
       time: 21450,
       gfp: 0.993419,
       roff: 0.00081394,
       ron: 0.798941
   },
   {
       time: 21500,
       gfp: 0.993419,
       roff: 0.000813937,
       ron: 0.798941
   },
   {
       time: 21550,
       gfp: 0.993419,
       roff: 0.000813934,
       ron: 0.798941
   },
   {
       time: 21600,
       gfp: 0.993419,
       roff: 0.000813931,
       ron: 0.798941
   },
   {
       time: 21650,
       gfp: 0.993419,
       roff: 0.000813928,
       ron: 0.798941
   },
   {
       time: 21700,
       gfp: 0.993419,
       roff: 0.000813925,
       ron: 0.798941
   },
   {
       time: 21750,
       gfp: 0.993419,
       roff: 0.000813922,
       ron: 0.798941
   },
   {
       time: 21800,
       gfp: 0.993419,
       roff: 0.00081392,
       ron: 0.798941
   },
   {
       time: 21850,
       gfp: 0.993419,
       roff: 0.000813917,
       ron: 0.798941
   },
   {
       time: 21900,
       gfp: 0.993419,
       roff: 0.000813915,
       ron: 0.798941
   },
   {
       time: 21950,
       gfp: 0.993419,
       roff: 0.000813913,
       ron: 0.798941
   },
   {
       time: 22000,
       gfp: 0.993419,
       roff: 0.00081391,
       ron: 0.798941
   },
   {
       time: 22050,
       gfp: 0.993419,
       roff: 0.000813908,
       ron: 0.798941
   },
   {
       time: 22100,
       gfp: 0.993419,
       roff: 0.000813906,
       ron: 0.798941
   },
   {
       time: 22150,
       gfp: 0.993419,
       roff: 0.000813904,
       ron: 0.798941
   },
   {
       time: 22200,
       gfp: 0.993419,
       roff: 0.000813903,
       ron: 0.798941
   },
   {
       time: 22250,
       gfp: 0.993419,
       roff: 0.000813901,
       ron: 0.798942
   },
   {
       time: 22300,
       gfp: 0.993419,
       roff: 0.000813899,
       ron: 0.798942
   },
   {
       time: 22350,
       gfp: 0.993419,
       roff: 0.000813898,
       ron: 0.798942
   },
   {
       time: 22400,
       gfp: 0.993419,
       roff: 0.000813896,
       ron: 0.798942
   },
   {
       time: 22450,
       gfp: 0.993419,
       roff: 0.000813895,
       ron: 0.798942
   },
   {
       time: 22500,
       gfp: 0.993419,
       roff: 0.000813893,
       ron: 0.798942
   },
   {
       time: 22550,
       gfp: 0.993419,
       roff: 0.000813892,
       ron: 0.798942
   },
   {
       time: 22600,
       gfp: 0.993419,
       roff: 0.000813891,
       ron: 0.798942
   },
   {
       time: 22650,
       gfp: 0.993419,
       roff: 0.00081389,
       ron: 0.798942
   },
   {
       time: 22700,
       gfp: 0.993419,
       roff: 0.000813889,
       ron: 0.798942
   },
   {
       time: 22750,
       gfp: 0.993419,
       roff: 0.000813887,
       ron: 0.798942
   },
   {
       time: 22800,
       gfp: 0.993419,
       roff: 0.000813886,
       ron: 0.798942
   },
   {
       time: 22850,
       gfp: 0.993419,
       roff: 0.000813885,
       ron: 0.798942
   },
   {
       time: 22900,
       gfp: 0.993419,
       roff: 0.000813884,
       ron: 0.798942
   },
   {
       time: 22950,
       gfp: 0.99342,
       roff: 0.000813884,
       ron: 0.798942
   },
   {
       time: 23000,
       gfp: 0.99342,
       roff: 0.000813883,
       ron: 0.798942
   },
   {
       time: 23050,
       gfp: 0.99342,
       roff: 0.000813882,
       ron: 0.798942
   },
   {
       time: 23100,
       gfp: 0.99342,
       roff: 0.000813881,
       ron: 0.798942
   },
   {
       time: 23150,
       gfp: 0.99342,
       roff: 0.00081388,
       ron: 0.798942
   },
   {
       time: 23200,
       gfp: 0.99342,
       roff: 0.00081388,
       ron: 0.798942
   },
   {
       time: 23250,
       gfp: 0.99342,
       roff: 0.000813879,
       ron: 0.798942
   },
   {
       time: 23300,
       gfp: 0.99342,
       roff: 0.000813878,
       ron: 0.798942
   },
   {
       time: 23350,
       gfp: 0.99342,
       roff: 0.000813878,
       ron: 0.798942
   },
   {
       time: 23400,
       gfp: 0.99342,
       roff: 0.000813877,
       ron: 0.798942
   },
   {
       time: 23450,
       gfp: 0.99342,
       roff: 0.000813876,
       ron: 0.798942
   },
   {
       time: 23500,
       gfp: 0.99342,
       roff: 0.000813876,
       ron: 0.798942
   },
   {
       time: 23550,
       gfp: 0.99342,
       roff: 0.000813875,
       ron: 0.798942
   },
   {
       time: 23600,
       gfp: 0.99342,
       roff: 0.000813875,
       ron: 0.798942
   },
   {
       time: 23650,
       gfp: 0.99342,
       roff: 0.000813874,
       ron: 0.798942
   },
   {
       time: 23700,
       gfp: 0.99342,
       roff: 0.000813874,
       ron: 0.798942
   },
   {
       time: 23750,
       gfp: 0.99342,
       roff: 0.000813873,
       ron: 0.798942
   },
   {
       time: 23800,
       gfp: 0.99342,
       roff: 0.000813873,
       ron: 0.798942
   },
   {
       time: 23850,
       gfp: 0.99342,
       roff: 0.000813873,
       ron: 0.798942
   },
   {
       time: 23900,
       gfp: 0.99342,
       roff: 0.000813872,
       ron: 0.798942
   },
   {
       time: 23950,
       gfp: 0.99342,
       roff: 0.000813872,
       ron: 0.798942
   },
   {
       time: 24000,
       gfp: 0.99342,
       roff: 0.000813872,
       ron: 0.798942
   },
   {
       time: 24050,
       gfp: 0.99342,
       roff: 0.000813871,
       ron: 0.798942
   },
   {
       time: 24100,
       gfp: 0.99342,
       roff: 0.000813871,
       ron: 0.798942
   },
   {
       time: 24150,
       gfp: 0.99342,
       roff: 0.000813871,
       ron: 0.798942
   },
   {
       time: 24200,
       gfp: 0.99342,
       roff: 0.00081387,
       ron: 0.798942
   },
   {
       time: 24250,
       gfp: 0.99342,
       roff: 0.00081387,
       ron: 0.798942
   },
   {
       time: 24300,
       gfp: 0.99342,
       roff: 0.00081387,
       ron: 0.798942
   },
   {
       time: 24350,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24400,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24450,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24500,
       gfp: 0.99342,
       roff: 0.000813869,
       ron: 0.798942
   },
   {
       time: 24550,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24600,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24650,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24700,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24750,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24800,
       gfp: 0.99342,
       roff: 0.000813868,
       ron: 0.798942
   },
   {
       time: 24850,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 24900,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 24950,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25000,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25050,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25100,
       gfp: 0.99342,
       roff: 0.000813867,
       ron: 0.798942
   },
   {
       time: 25150,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25200,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25250,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25300,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25350,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25400,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25450,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25500,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25550,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25600,
       gfp: 0.99342,
       roff: 0.000813866,
       ron: 0.798942
   },
   {
       time: 25650,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25700,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25750,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25800,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25850,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25900,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 25950,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26000,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26050,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26100,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26150,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26200,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26250,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26300,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26350,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26400,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26450,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26500,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26550,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26600,
       gfp: 0.99342,
       roff: 0.000813865,
       ron: 0.798942
   },
   {
       time: 26650,
       gfp: 0.99342,
       roff: 0.000813864,
       ron: 0.798942
   }

]; let modelOnData = [

   {
       time: 0,
       gfp: 0.99342,
       roff: 0.000813884,
       ron: 0.798942
   }

]; let modelOnOffData = [

   {
       time: 0,
       gfp: 0.400329,
       roff: 0.460298,
       ron: 0.681631
   },
   {
       time: 50,
       gfp: 0.147499,
       roff: 0.558638,
       ron: 0.601859
   },
   {
       time: 100,
       gfp: 0.0544694,
       roff: 0.539113,
       ron: 0.542517
   },
   {
       time: 150,
       gfp: 0.0202746,
       roff: 0.498525,
       ron: 0.494678
   },
   {
       time: 200,
       gfp: 0.00773694,
       roff: 0.459142,
       ron: 0.454481
   },
   {
       time: 250,
       gfp: 0.00317335,
       roff: 0.424206,
       ron: 0.419853
   },
   {
       time: 300,
       gfp: 0.0015489,
       roff: 0.393442,
       ron: 0.389514
   },
   {
       time: 350,
       gfp: 0.00101154,
       roff: 0.366154,
       ron: 0.362602
   },
   {
       time: 400,
       gfp: 0.000880431,
       roff: 0.341744,
       ron: 0.338502
   },
   {
       time: 450,
       gfp: 0.000905717,
       roff: 0.319748,
       ron: 0.316759
   },
   {
       time: 500,
       gfp: 0.000996144,
       roff: 0.299804,
       ron: 0.297022
   },
   {
       time: 550,
       gfp: 0.00111885,
       roff: 0.281633,
       ron: 0.279018
   },
   {
       time: 600,
       gfp: 0.00126247,
       roff: 0.265009,
       ron: 0.262529
   },
   {
       time: 650,
       gfp: 0.0014236,
       roff: 0.249748,
       ron: 0.247374
   },
   {
       time: 700,
       gfp: 0.00160176,
       roff: 0.235701,
       ron: 0.233407
   },
   {
       time: 750,
       gfp: 0.00179759,
       roff: 0.222742,
       ron: 0.220504
   },
   {
       time: 800,
       gfp: 0.0020121,
       roff: 0.210764,
       ron: 0.20856
   },
   {
       time: 850,
       gfp: 0.00224646,
       roff: 0.199679,
       ron: 0.197488
   },
   {
       time: 900,
       gfp: 0.00250184,
       roff: 0.189409,
       ron: 0.18721
   },
   {
       time: 950,
       gfp: 0.00277934,
       roff: 0.179889,
       ron: 0.17766
   },
   {
       time: 1000,
       gfp: 0.00307994,
       roff: 0.17106,
       ron: 0.168781
   },
   {
       time: 1050,
       gfp: 0.00340444,
       roff: 0.162872,
       ron: 0.160522
   },
   {
       time: 1100,
       gfp: 0.00375337,
       roff: 0.155283,
       ron: 0.152839
   },
   {
       time: 1150,
       gfp: 0.00412695,
       roff: 0.148252,
       ron: 0.145693
   },
   {
       time: 1200,
       gfp: 0.00452498,
       roff: 0.141747,
       ron: 0.139047
   },
   {
       time: 1250,
       gfp: 0.00494676,
       roff: 0.135737,
       ron: 0.132871
   },
   {
       time: 1300,
       gfp: 0.00539103,
       roff: 0.130194,
       ron: 0.127135
   },
   {
       time: 1350,
       gfp: 0.00585587,
       roff: 0.125093,
       ron: 0.121813
   },
   {
       time: 1400,
       gfp: 0.00633866,
       roff: 0.120414,
       ron: 0.116881
   },
   {
       time: 1450,
       gfp: 0.00683605,
       roff: 0.116133,
       ron: 0.112316
   },
   {
       time: 1500,
       gfp: 0.00734397,
       roff: 0.112233,
       ron: 0.108095
   },
   {
       time: 1550,
       gfp: 0.00785765,
       roff: 0.108695,
       ron: 0.104199
   },
   {
       time: 1600,
       gfp: 0.00837174,
       roff: 0.105501,
       ron: 0.100606
   },
   {
       time: 1650,
       gfp: 0.0088804,
       roff: 0.102634,
       ron: 0.0972984
   },
   {
       time: 1700,
       gfp: 0.00937754,
       roff: 0.100078,
       ron: 0.0942554
   },
   {
       time: 1750,
       gfp: 0.009857,
       roff: 0.0978164,
       ron: 0.0914584
   },
   {
       time: 1800,
       gfp: 0.0103127,
       roff: 0.0958334,
       ron: 0.0888883
   },
   {
       time: 1850,
       gfp: 0.0107391,
       roff: 0.0941135,
       ron: 0.0865267
   },
   {
       time: 1900,
       gfp: 0.011131,
       roff: 0.0926413,
       ron: 0.0843553
   },
   {
       time: 1950,
       gfp: 0.0114841,
       roff: 0.0914018,
       ron: 0.0823563
   },
   {
       time: 2000,
       gfp: 0.0117951,
       roff: 0.0903809,
       ron: 0.0805124
   },
   {
       time: 2050,
       gfp: 0.0120613,
       roff: 0.0895646,
       ron: 0.0788069
   },
   {
       time: 2100,
       gfp: 0.0122813,
       roff: 0.0889402,
       ron: 0.0772242
   },
   {
       time: 2150,
       gfp: 0.0124544,
       roff: 0.0884953,
       ron: 0.0757492
   },
   {
       time: 2200,
       gfp: 0.0125807,
       roff: 0.0882189,
       ron: 0.0743678
   },
   {
       time: 2250,
       gfp: 0.0126612,
       roff: 0.0881005,
       ron: 0.073067
   },
   {
       time: 2300,
       gfp: 0.0126975,
       roff: 0.0881312,
       ron: 0.0718349
   },
   {
       time: 2350,
       gfp: 0.0126915,
       roff: 0.0883027,
       ron: 0.0706604
   },
   {
       time: 2400,
       gfp: 0.0126456,
       roff: 0.0886082,
       ron: 0.0695338
   },
   {
       time: 2450,
       gfp: 0.0125623,
       roff: 0.0890417,
       ron: 0.068446
   },
   {
       time: 2500,
       gfp: 0.0124443,
       roff: 0.0895985,
       ron: 0.0673892
   },
   {
       time: 2550,
       gfp: 0.0122945,
       roff: 0.0902748,
       ron: 0.0663562
   },
   {
       time: 2600,
       gfp: 0.0121155,
       roff: 0.0910681,
       ron: 0.0653409
   },
   {
       time: 2650,
       gfp: 0.0119101,
       roff: 0.0919768,
       ron: 0.0643378
   },
   {
       time: 2700,
       gfp: 0.0116807,
       roff: 0.0930003,
       ron: 0.0633424
   },
   {
       time: 2750,
       gfp: 0.01143,
       roff: 0.0941388,
       ron: 0.0623504
   },
   {
       time: 2800,
       gfp: 0.0111601,
       roff: 0.0953937,
       ron: 0.0613586
   },
   {
       time: 2850,
       gfp: 0.0108733,
       roff: 0.0967673,
       ron: 0.0603641
   },
   {
       time: 2900,
       gfp: 0.0105718,
       roff: 0.0982626,
       ron: 0.0593643
   },
   {
       time: 2950,
       gfp: 0.0102573,
       roff: 0.0998839,
       ron: 0.0583575
   },
   {
       time: 3000,
       gfp: 0.00993184,
       roff: 0.101636,
       ron: 0.0573421
   },
   {
       time: 3050,
       gfp: 0.00959707,
       roff: 0.103525,
       ron: 0.056317
   },
   {
       time: 3100,
       gfp: 0.00925467,
       roff: 0.105557,
       ron: 0.0552813
   },
   {
       time: 3150,
       gfp: 0.00890621,
       roff: 0.107742,
       ron: 0.0542345
   },
   {
       time: 3200,
       gfp: 0.00855318,
       roff: 0.110086,
       ron: 0.0531763
   },
   {
       time: 3250,
       gfp: 0.00819703,
       roff: 0.1126,
       ron: 0.0521069
   },
   {
       time: 3300,
       gfp: 0.00783913,
       roff: 0.115296,
       ron: 0.0510265
   },
   {
       time: 3350,
       gfp: 0.00748084,
       roff: 0.118185,
       ron: 0.0499355
   },
   {
       time: 3400,
       gfp: 0.00712343,
       roff: 0.12128,
       ron: 0.0488347
   },
   {
       time: 3450,
       gfp: 0.00676815,
       roff: 0.124596,
       ron: 0.0477249
   },
   {
       time: 3500,
       gfp: 0.0064162,
       roff: 0.128149,
       ron: 0.046607
   },
   {
       time: 3550,
       gfp: 0.00606875,
       roff: 0.131955,
       ron: 0.0454824
   },
   {
       time: 3600,
       gfp: 0.00572688,
       roff: 0.136033,
       ron: 0.0443522
   },
   {
       time: 3650,
       gfp: 0.00539166,
       roff: 0.140404,
       ron: 0.0432179
   },
   {
       time: 3700,
       gfp: 0.00506407,
       roff: 0.145088,
       ron: 0.042081
   },
   {
       time: 3750,
       gfp: 0.00474505,
       roff: 0.150109,
       ron: 0.0409432
   },
   {
       time: 3800,
       gfp: 0.00443546,
       roff: 0.15549,
       ron: 0.0398061
   },
   {
       time: 3850,
       gfp: 0.00413609,
       roff: 0.161259,
       ron: 0.0386713
   },
   {
       time: 3900,
       gfp: 0.00384763,
       roff: 0.167444,
       ron: 0.0375408
   },
   {
       time: 3950,
       gfp: 0.0035707,
       roff: 0.174072,
       ron: 0.0364163
   },
   {
       time: 4000,
       gfp: 0.0033058,
       roff: 0.181176,
       ron: 0.0352995
   },
   {
       time: 4050,
       gfp: 0.00305337,
       roff: 0.188787,
       ron: 0.0341922
   },
   {
       time: 4100,
       gfp: 0.00281371,
       roff: 0.196938,
       ron: 0.0330962
   },
   {
       time: 4150,
       gfp: 0.00258704,
       roff: 0.205664,
       ron: 0.0320132
   },
   {
       time: 4200,
       gfp: 0.00237346,
       roff: 0.214998,
       ron: 0.0309446
   },
   {
       time: 4250,
       gfp: 0.002173,
       roff: 0.224977,
       ron: 0.0298922
   },
   {
       time: 4300,
       gfp: 0.00198555,
       roff: 0.235632,
       ron: 0.0288573
   },
   {
       time: 4350,
       gfp: 0.00181094,
       roff: 0.246999,
       ron: 0.0278413
   },
   {
       time: 4400,
       gfp: 0.00164889,
       roff: 0.259108,
       ron: 0.0268454
   },
   {
       time: 4450,
       gfp: 0.00149907,
       roff: 0.271987,
       ron: 0.0258707
   },
   {
       time: 4500,
       gfp: 0.00136106,
       roff: 0.285661,
       ron: 0.0249182
   },
   {
       time: 4550,
       gfp: 0.00123438,
       roff: 0.300147,
       ron: 0.0239888
   },
   {
       time: 4600,
       gfp: 0.00111853,
       roff: 0.315458,
       ron: 0.0230831
   },
   {
       time: 4650,
       gfp: 0.00101293,
       roff: 0.331597,
       ron: 0.0222018
   },
   {
       time: 4700,
       gfp: 0.000917001,
       roff: 0.348557,
       ron: 0.0213454
   },
   {
       time: 4750,
       gfp: 0.000830149,
       roff: 0.366317,
       ron: 0.0205141
   },
   {
       time: 4800,
       gfp: 0.000751762,
       roff: 0.384843,
       ron: 0.0197082
   },
   {
       time: 4850,
       gfp: 0.000681236,
       roff: 0.404084,
       ron: 0.0189278
   },
   {
       time: 4900,
       gfp: 0.000617972,
       roff: 0.423969,
       ron: 0.018173
   },
   {
       time: 4950,
       gfp: 0.000561393,
       roff: 0.444408,
       ron: 0.0174436
   },
   {
       time: 5000,
       gfp: 0.000510941,
       roff: 0.465289,
       ron: 0.0167394
   },
   {
       time: 5050,
       gfp: 0.000466084,
       roff: 0.486478,
       ron: 0.0160603
   },
   {
       time: 5100,
       gfp: 0.000426318,
       roff: 0.50782,
       ron: 0.0154058
   },
   {
       time: 5150,
       gfp: 0.000391168,
       roff: 0.529144,
       ron: 0.0147756
   },
   {
       time: 5200,
       gfp: 0.000360193,
       roff: 0.550261,
       ron: 0.0141692
   },
   {
       time: 5250,
       gfp: 0.000332982,
       roff: 0.570978,
       ron: 0.0135862
   },
   {
       time: 5300,
       gfp: 0.000309152,
       roff: 0.591101,
       ron: 0.013026
   },
   {
       time: 5350,
       gfp: 0.000288349,
       roff: 0.610446,
       ron: 0.012488
   },
   {
       time: 5400,
       gfp: 0.000270246,
       roff: 0.628851,
       ron: 0.0119718
   },
   {
       time: 5450,
       gfp: 0.000254538,
       roff: 0.646185,
       ron: 0.0114766
   },
   {
       time: 5500,
       gfp: 0.000240943,
       roff: 0.662357,
       ron: 0.0110018
   },
   {
       time: 5550,
       gfp: 0.000229201,
       roff: 0.677317,
       ron: 0.0105467
   },
   {
       time: 5600,
       gfp: 0.000219072,
       roff: 0.691056,
       ron: 0.0101108
   },
   {
       time: 5650,
       gfp: 0.000210337,
       roff: 0.703605,
       ron: 0.00969327
   },
   {
       time: 5700,
       gfp: 0.000202798,
       roff: 0.715024,
       ron: 0.00929353
   },
   {
       time: 5750,
       gfp: 0.000196278,
       roff: 0.725395,
       ron: 0.00891089
   },
   {
       time: 5800,
       gfp: 0.000190623,
       roff: 0.734806,
       ron: 0.00854469
   },
   {
       time: 5850,
       gfp: 0.000185698,
       roff: 0.743351,
       ron: 0.00819429
   },
   {
       time: 5900,
       gfp: 0.00018139,
       roff: 0.751118,
       ron: 0.00785904
   },
   {
       time: 5950,
       gfp: 0.000177604,
       roff: 0.758191,
       ron: 0.00753833
   },
   {
       time: 6000,
       gfp: 0.000174261,
       roff: 0.764642,
       ron: 0.00723156
   },
   {
       time: 6050,
       gfp: 0.000171295,
       roff: 0.770535,
       ron: 0.00693816
   },
   {
       time: 6100,
       gfp: 0.000168653,
       roff: 0.775927,
       ron: 0.00665754
   },
   {
       time: 6150,
       gfp: 0.00016629,
       roff: 0.780866,
       ron: 0.00638919
   },
   {
       time: 6200,
       gfp: 0.00016417,
       roff: 0.785394,
       ron: 0.00613256
   },
   {
       time: 6250,
       gfp: 0.000162263,
       roff: 0.78955,
       ron: 0.00588717
   },
   {
       time: 6300,
       gfp: 0.000160542,
       roff: 0.793365,
       ron: 0.00565253
   },
   {
       time: 6350,
       gfp: 0.000158987,
       roff: 0.796869,
       ron: 0.00542818
   },
   {
       time: 6400,
       gfp: 0.000157579,
       roff: 0.800089,
       ron: 0.00521368
   },
   {
       time: 6450,
       gfp: 0.000156302,
       roff: 0.803049,
       ron: 0.00500859
   },
   {
       time: 6500,
       gfp: 0.000155142,
       roff: 0.805771,
       ron: 0.00481251
   },
   {
       time: 6550,
       gfp: 0.000154087,
       roff: 0.808273,
       ron: 0.00462505
   },
   {
       time: 6600,
       gfp: 0.000153126,
       roff: 0.810575,
       ron: 0.00444584
   },
   {
       time: 6650,
       gfp: 0.000152251,
       roff: 0.812693,
       ron: 0.00427451
   },
   {
       time: 6700,
       gfp: 0.000151452,
       roff: 0.814641,
       ron: 0.00411073
   },
   {
       time: 6750,
       gfp: 0.000150723,
       roff: 0.816434,
       ron: 0.00395416
   },
   {
       time: 6800,
       gfp: 0.000150056,
       roff: 0.818085,
       ron: 0.00380449
   },
   {
       time: 6850,
       gfp: 0.000149447,
       roff: 0.819604,
       ron: 0.00366141
   },
   {
       time: 6900,
       gfp: 0.000148889,
       roff: 0.821003,
       ron: 0.00352464
   },
   {
       time: 6950,
       gfp: 0.000148378,
       roff: 0.822292,
       ron: 0.0033939
   },
   {
       time: 7000,
       gfp: 0.00014791,
       roff: 0.823479,
       ron: 0.00326893
   },
   {
       time: 7050,
       gfp: 0.000147481,
       roff: 0.824572,
       ron: 0.00314947
   },
   {
       time: 7100,
       gfp: 0.000147087,
       roff: 0.82558,
       ron: 0.00303529
   },
   {
       time: 7150,
       gfp: 0.000146725,
       roff: 0.826509,
       ron: 0.00292615
   },
   {
       time: 7200,
       gfp: 0.000146393,
       roff: 0.827365,
       ron: 0.00282182
   },
   {
       time: 7250,
       gfp: 0.000146088,
       roff: 0.828155,
       ron: 0.00272211
   },
   {
       time: 7300,
       gfp: 0.000145808,
       roff: 0.828884,
       ron: 0.00262679
   },
   {
       time: 7350,
       gfp: 0.00014555,
       roff: 0.829556,
       ron: 0.00253569
   },
   {
       time: 7400,
       gfp: 0.000145312,
       roff: 0.830177,
       ron: 0.00244862
   },
   {
       time: 7450,
       gfp: 0.000145093,
       roff: 0.83075,
       ron: 0.00236539
   },
   {
       time: 7500,
       gfp: 0.000144892,
       roff: 0.831279,
       ron: 0.00228584
   },
   {
       time: 7550,
       gfp: 0.000144706,
       roff: 0.831769,
       ron: 0.00220981
   },
   {
       time: 7600,
       gfp: 0.000144535,
       roff: 0.832221,
       ron: 0.00213714
   },
   {
       time: 7650,
       gfp: 0.000144377,
       roff: 0.832638,
       ron: 0.00206769
   },
   {
       time: 7700,
       gfp: 0.000144231,
       roff: 0.833025,
       ron: 0.0020013
   },
   {
       time: 7750,
       gfp: 0.000144096,
       roff: 0.833383,
       ron: 0.00193786
   },
   {
       time: 7800,
       gfp: 0.000143972,
       roff: 0.833714,
       ron: 0.00187721
   },
   {
       time: 7850,
       gfp: 0.000143857,
       roff: 0.83402,
       ron: 0.00181926
   },
   {
       time: 7900,
       gfp: 0.000143751,
       roff: 0.834304,
       ron: 0.00176386
   },
   {
       time: 7950,
       gfp: 0.000143652,
       roff: 0.834567,
       ron: 0.00171092
   },
   {
       time: 8000,
       gfp: 0.000143561,
       roff: 0.834811,
       ron: 0.00166032
   },
   {
       time: 8050,
       gfp: 0.000143477,
       roff: 0.835037,
       ron: 0.00161196
   },
   {
       time: 8100,
       gfp: 0.000143398,
       roff: 0.835247,
       ron: 0.00156574
   },
   {
       time: 8150,
       gfp: 0.000143326,
       roff: 0.835442,
       ron: 0.00152157
   },
   {
       time: 8200,
       gfp: 0.000143259,
       roff: 0.835623,
       ron: 0.00147935
   },
   {
       time: 8250,
       gfp: 0.000143196,
       roff: 0.835791,
       ron: 0.00143901
   },
   {
       time: 8300,
       gfp: 0.000143138,
       roff: 0.835948,
       ron: 0.00140045
   },
   {
       time: 8350,
       gfp: 0.000143084,
       roff: 0.836093,
       ron: 0.00136359
   },
   {
       time: 8400,
       gfp: 0.000143034,
       roff: 0.836228,
       ron: 0.00132837
   },
   {
       time: 8450,
       gfp: 0.000142988,
       roff: 0.836354,
       ron: 0.00129471
   },
   {
       time: 8500,
       gfp: 0.000142944,
       roff: 0.836472,
       ron: 0.00126254
   },
   {
       time: 8550,
       gfp: 0.000142904,
       roff: 0.836581,
       ron: 0.00123179
   },
   {
       time: 8600,
       gfp: 0.000142866,
       roff: 0.836683,
       ron: 0.00120241
   },
   {
       time: 8650,
       gfp: 0.000142831,
       roff: 0.836778,
       ron: 0.00117433
   },
   {
       time: 8700,
       gfp: 0.000142799,
       roff: 0.836867,
       ron: 0.00114749
   },
   {
       time: 8750,
       gfp: 0.000142768,
       roff: 0.83695,
       ron: 0.00112184
   },
   {
       time: 8800,
       gfp: 0.00014274,
       roff: 0.837027,
       ron: 0.00109733
   },
   {
       time: 8850,
       gfp: 0.000142713,
       roff: 0.837099,
       ron: 0.0010739
   },
   {
       time: 8900,
       gfp: 0.000142689,
       roff: 0.837167,
       ron: 0.00105151
   },
   {
       time: 8950,
       gfp: 0.000142665,
       roff: 0.83723,
       ron: 0.00103011
   },
   {
       time: 9000,
       gfp: 0.000142644,
       roff: 0.83729,
       ron: 0.00100967
   },
   {
       time: 9050,
       gfp: 0.000142623,
       roff: 0.837345,
       ron: 0.000990123
   },
   {
       time: 9100,
       gfp: 0.000142604,
       roff: 0.837397,
       ron: 0.000971447
   },
   {
       time: 9150,
       gfp: 0.000142587,
       roff: 0.837446,
       ron: 0.000953598
   },
   {
       time: 9200,
       gfp: 0.00014257,
       roff: 0.837492,
       ron: 0.00093654
   },
   {
       time: 9250,
       gfp: 0.000142554,
       roff: 0.837535,
       ron: 0.000920238
   },
   {
       time: 9300,
       gfp: 0.00014254,
       roff: 0.837575,
       ron: 0.000904659
   },
   {
       time: 9350,
       gfp: 0.000142526,
       roff: 0.837613,
       ron: 0.00088977
   },
   {
       time: 9400,
       gfp: 0.000142513,
       roff: 0.837648,
       ron: 0.000875541
   },
   {
       time: 9450,
       gfp: 0.000142501,
       roff: 0.837682,
       ron: 0.000861942
   },
   {
       time: 9500,
       gfp: 0.000142489,
       roff: 0.837713,
       ron: 0.000848947
   },
   {
       time: 9550,
       gfp: 0.000142479,
       roff: 0.837743,
       ron: 0.000836527
   },
   {
       time: 9600,
       gfp: 0.000142468,
       roff: 0.837771,
       ron: 0.000824658
   },
   {
       time: 9650,
       gfp: 0.000142459,
       roff: 0.837797,
       ron: 0.000813315
   },
   {
       time: 9700,
       gfp: 0.00014245,
       roff: 0.837822,
       ron: 0.000802475
   },
   {
       time: 9750,
       gfp: 0.000142442,
       roff: 0.837845,
       ron: 0.000792116
   },
   {
       time: 9800,
       gfp: 0.000142434,
       roff: 0.837867,
       ron: 0.000782215
   },
   {
       time: 9850,
       gfp: 0.000142426,
       roff: 0.837888,
       ron: 0.000772754
   },
   {
       time: 9900,
       gfp: 0.000142419,
       roff: 0.837907,
       ron: 0.000763712
   },
   {
       time: 9950,
       gfp: 0.000142412,
       roff: 0.837926,
       ron: 0.000755071
   },
   {
       time: 10000,
       gfp: 0.000142406,
       roff: 0.837943,
       ron: 0.000746813
   },
   {
       time: 10050,
       gfp: 0.0001424,
       roff: 0.83796,
       ron: 0.000738921
   },
   {
       time: 10100,
       gfp: 0.000142394,
       roff: 0.837976,
       ron: 0.000731379
   },
   {
       time: 10150,
       gfp: 0.000142389,
       roff: 0.83799,
       ron: 0.000724171
   },
   {
       time: 10200,
       gfp: 0.000142384,
       roff: 0.838004,
       ron: 0.000717283
   },
   {
       time: 10250,
       gfp: 0.000142379,
       roff: 0.838018,
       ron: 0.0007107
   },
   {
       time: 10300,
       gfp: 0.000142375,
       roff: 0.83803,
       ron: 0.00070441
   },
   {
       time: 10350,
       gfp: 0.00014237,
       roff: 0.838042,
       ron: 0.000698398
   },
   {
       time: 10400,
       gfp: 0.000142366,
       roff: 0.838053,
       ron: 0.000692652
   },
   {
       time: 10450,
       gfp: 0.000142363,
       roff: 0.838064,
       ron: 0.000687162
   },
   {
       time: 10500,
       gfp: 0.000142359,
       roff: 0.838074,
       ron: 0.000681914
   },
   {
       time: 10550,
       gfp: 0.000142355,
       roff: 0.838084,
       ron: 0.0006769
   },
   {
       time: 10600,
       gfp: 0.000142352,
       roff: 0.838093,
       ron: 0.000672108
   },
   {
       time: 10650,
       gfp: 0.000142349,
       roff: 0.838101,
       ron: 0.000667528
   },
   {
       time: 10700,
       gfp: 0.000142346,
       roff: 0.838109,
       ron: 0.000663151
   },
   {
       time: 10750,
       gfp: 0.000142343,
       roff: 0.838117,
       ron: 0.000658969
   },
   {
       time: 10800,
       gfp: 0.000142341,
       roff: 0.838125,
       ron: 0.000654971
   },
   {
       time: 10850,
       gfp: 0.000142338,
       roff: 0.838132,
       ron: 0.000651152
   },
   {
       time: 10900,
       gfp: 0.000142336,
       roff: 0.838138,
       ron: 0.000647501
   },
   {
       time: 10950,
       gfp: 0.000142334,
       roff: 0.838145,
       ron: 0.000644012
   },
   {
       time: 11000,
       gfp: 0.000142331,
       roff: 0.838151,
       ron: 0.000640678
   },
   {
       time: 11050,
       gfp: 0.000142329,
       roff: 0.838156,
       ron: 0.000637492
   },
   {
       time: 11100,
       gfp: 0.000142327,
       roff: 0.838162,
       ron: 0.000634447
   },
   {
       time: 11150,
       gfp: 0.000142326,
       roff: 0.838167,
       ron: 0.000631538
   },
   {
       time: 11200,
       gfp: 0.000142324,
       roff: 0.838172,
       ron: 0.000628757
   },
   {
       time: 11250,
       gfp: 0.000142322,
       roff: 0.838176,
       ron: 0.000626099
   },
   {
       time: 11300,
       gfp: 0.000142321,
       roff: 0.838181,
       ron: 0.00062356
   },
   {
       time: 11350,
       gfp: 0.000142319,
       roff: 0.838185,
       ron: 0.000621133
   },
   {
       time: 11400,
       gfp: 0.000142318,
       roff: 0.838189,
       ron: 0.000618813
   },
   {
       time: 11450,
       gfp: 0.000142316,
       roff: 0.838193,
       ron: 0.000616597
   },
   {
       time: 11500,
       gfp: 0.000142315,
       roff: 0.838197,
       ron: 0.000614478
   },
   {
       time: 11550,
       gfp: 0.000142314,
       roff: 0.8382,
       ron: 0.000612454
   },
   {
       time: 11600,
       gfp: 0.000142312,
       roff: 0.838203,
       ron: 0.000610519
   },
   {
       time: 11650,
       gfp: 0.000142311,
       roff: 0.838207,
       ron: 0.000608671
   },
   {
       time: 11700,
       gfp: 0.00014231,
       roff: 0.83821,
       ron: 0.000606904
   },
   {
       time: 11750,
       gfp: 0.000142309,
       roff: 0.838212,
       ron: 0.000605215
   },
   {
       time: 11800,
       gfp: 0.000142308,
       roff: 0.838215,
       ron: 0.000603602
   },
   {
       time: 11850,
       gfp: 0.000142307,
       roff: 0.838218,
       ron: 0.00060206
   },
   {
       time: 11900,
       gfp: 0.000142306,
       roff: 0.83822,
       ron: 0.000600586
   },
   {
       time: 11950,
       gfp: 0.000142306,
       roff: 0.838223,
       ron: 0.000599178
   },
   {
       time: 12000,
       gfp: 0.000142305,
       roff: 0.838225,
       ron: 0.000597832
   },
   {
       time: 12050,
       gfp: 0.000142304,
       roff: 0.838227,
       ron: 0.000596546
   },
   {
       time: 12100,
       gfp: 0.000142303,
       roff: 0.838229,
       ron: 0.000595316
   },
   {
       time: 12150,
       gfp: 0.000142303,
       roff: 0.838231,
       ron: 0.000594142
   },
   {
       time: 12200,
       gfp: 0.000142302,
       roff: 0.838233,
       ron: 0.000593019
   },
   {
       time: 12250,
       gfp: 0.000142301,
       roff: 0.838235,
       ron: 0.000591947
   },
   {
       time: 12300,
       gfp: 0.000142301,
       roff: 0.838236,
       ron: 0.000590921
   },
   {
       time: 12350,
       gfp: 0.0001423,
       roff: 0.838238,
       ron: 0.000589942
   },
   {
       time: 12400,
       gfp: 0.0001423,
       roff: 0.83824,
       ron: 0.000589005
   },
   {
       time: 12450,
       gfp: 0.000142299,
       roff: 0.838241,
       ron: 0.000588111
   },
   {
       time: 12500,
       gfp: 0.000142299,
       roff: 0.838242,
       ron: 0.000587255
   },
   {
       time: 12550,
       gfp: 0.000142298,
       roff: 0.838244,
       ron: 0.000586438
   },
   {
       time: 12600,
       gfp: 0.000142298,
       roff: 0.838245,
       ron: 0.000585657
   },
   {
       time: 12650,
       gfp: 0.000142297,
       roff: 0.838246,
       ron: 0.000584911
   },
   {
       time: 12700,
       gfp: 0.000142297,
       roff: 0.838247,
       ron: 0.000584198
   },
   {
       time: 12750,
       gfp: 0.000142296,
       roff: 0.838249,
       ron: 0.000583516
   },
   {
       time: 12800,
       gfp: 0.000142296,
       roff: 0.83825,
       ron: 0.000582865
   },
   {
       time: 12850,
       gfp: 0.000142296,
       roff: 0.838251,
       ron: 0.000582242
   },
   {
       time: 12900,
       gfp: 0.000142295,
       roff: 0.838252,
       ron: 0.000581648
   },
   {
       time: 12950,
       gfp: 0.000142295,
       roff: 0.838253,
       ron: 0.000581079
   },
   {
       time: 13000,
       gfp: 0.000142295,
       roff: 0.838253,
       ron: 0.000580536
   },
   {
       time: 13050,
       gfp: 0.000142294,
       roff: 0.838254,
       ron: 0.000580017
   },
   {
       time: 13100,
       gfp: 0.000142294,
       roff: 0.838255,
       ron: 0.000579521
   },
   {
       time: 13150,
       gfp: 0.000142294,
       roff: 0.838256,
       ron: 0.000579047
   },
   {
       time: 13200,
       gfp: 0.000142294,
       roff: 0.838257,
       ron: 0.000578594
   },
   {
       time: 13250,
       gfp: 0.000142293,
       roff: 0.838257,
       ron: 0.000578161
   },
   {
       time: 13300,
       gfp: 0.000142293,
       roff: 0.838258,
       ron: 0.000577747
   },
   {
       time: 13350,
       gfp: 0.000142293,
       roff: 0.838259,
       ron: 0.000577351
   },
   {
       time: 13400,
       gfp: 0.000142293,
       roff: 0.838259,
       ron: 0.000576973
   },
   {
       time: 13450,
       gfp: 0.000142292,
       roff: 0.83826,
       ron: 0.000576612
   },
   {
       time: 13500,
       gfp: 0.000142292,
       roff: 0.83826,
       ron: 0.000576267
   },
   {
       time: 13550,
       gfp: 0.000142292,
       roff: 0.838261,
       ron: 0.000575937
   },
   {
       time: 13600,
       gfp: 0.000142292,
       roff: 0.838261,
       ron: 0.000575621
   },
   {
       time: 13650,
       gfp: 0.000142292,
       roff: 0.838262,
       ron: 0.00057532
   },
   {
       time: 13700,
       gfp: 0.000142291,
       roff: 0.838262,
       ron: 0.000575032
   },
   {
       time: 13750,
       gfp: 0.000142291,
       roff: 0.838263,
       ron: 0.000574757
   },
   {
       time: 13800,
       gfp: 0.000142291,
       roff: 0.838263,
       ron: 0.000574494
   },
   {
       time: 13850,
       gfp: 0.000142291,
       roff: 0.838264,
       ron: 0.000574243
   },
   {
       time: 13900,
       gfp: 0.000142291,
       roff: 0.838264,
       ron: 0.000574003
   },
   {
       time: 13950,
       gfp: 0.000142291,
       roff: 0.838264,
       ron: 0.000573773
   },
   {
       time: 14000,
       gfp: 0.000142291,
       roff: 0.838265,
       ron: 0.000573554
   },
   {
       time: 14050,
       gfp: 0.000142291,
       roff: 0.838265,
       ron: 0.000573344
   },
   {
       time: 14100,
       gfp: 0.00014229,
       roff: 0.838265,
       ron: 0.000573144
   },
   {
       time: 14150,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.000572952
   },
   {
       time: 14200,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.00057277
   },
   {
       time: 14250,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.000572595
   },
   {
       time: 14300,
       gfp: 0.00014229,
       roff: 0.838266,
       ron: 0.000572428
   },
   {
       time: 14350,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.000572268
   },
   {
       time: 14400,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.000572115
   },
   {
       time: 14450,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.00057197
   },
   {
       time: 14500,
       gfp: 0.00014229,
       roff: 0.838267,
       ron: 0.00057183
   },
   {
       time: 14550,
       gfp: 0.00014229,
       roff: 0.838268,
       ron: 0.000571697
   },
   {
       time: 14600,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.00057157
   },
   {
       time: 14650,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.000571448
   },
   {
       time: 14700,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.000571332
   },
   {
       time: 14750,
       gfp: 0.000142289,
       roff: 0.838268,
       ron: 0.000571221
   },
   {
       time: 14800,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000571114
   },
   {
       time: 14850,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000571013
   },
   {
       time: 14900,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570916
   },
   {
       time: 14950,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570823
   },
   {
       time: 15000,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570735
   },
   {
       time: 15050,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.00057065
   },
   {
       time: 15100,
       gfp: 0.000142289,
       roff: 0.838269,
       ron: 0.000570569
   },
   {
       time: 15150,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570492
   },
   {
       time: 15200,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570418
   },
   {
       time: 15250,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570348
   },
   {
       time: 15300,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.00057028
   },
   {
       time: 15350,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570216
   },
   {
       time: 15400,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570154
   },
   {
       time: 15450,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570095
   },
   {
       time: 15500,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000570039
   },
   {
       time: 15550,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000569985
   },
   {
       time: 15600,
       gfp: 0.000142289,
       roff: 0.83827,
       ron: 0.000569934
   },
   {
       time: 15650,
       gfp: 0.000142289,
       roff: 0.838271,
       ron: 0.000569885
   },
   {
       time: 15700,
       gfp: 0.000142289,
       roff: 0.838271,
       ron: 0.000569838
   },
   {
       time: 15750,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569793
   },
   {
       time: 15800,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056975
   },
   {
       time: 15850,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569709
   },
   {
       time: 15900,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056967
   },
   {
       time: 15950,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569633
   },
   {
       time: 16000,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569597
   },
   {
       time: 16050,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569563
   },
   {
       time: 16100,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056953
   },
   {
       time: 16150,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569499
   },
   {
       time: 16200,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.00056947
   },
   {
       time: 16250,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569441
   },
   {
       time: 16300,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569414
   },
   {
       time: 16350,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569388
   },
   {
       time: 16400,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569363
   },
   {
       time: 16450,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569339
   },
   {
       time: 16500,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569316
   },
   {
       time: 16550,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569295
   },
   {
       time: 16600,
       gfp: 0.000142288,
       roff: 0.838271,
       ron: 0.000569274
   },
   {
       time: 16650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569254
   },
   {
       time: 16700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569235
   },
   {
       time: 16750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569217
   },
   {
       time: 16800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.0005692
   },
   {
       time: 16850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569183
   },
   {
       time: 16900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569167
   },
   {
       time: 16950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569152
   },
   {
       time: 17000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569138
   },
   {
       time: 17050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569124
   },
   {
       time: 17100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569111
   },
   {
       time: 17150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569099
   },
   {
       time: 17200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569087
   },
   {
       time: 17250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569075
   },
   {
       time: 17300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569064
   },
   {
       time: 17350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569054
   },
   {
       time: 17400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569044
   },
   {
       time: 17450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569034
   },
   {
       time: 17500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569025
   },
   {
       time: 17550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569016
   },
   {
       time: 17600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569008
   },
   {
       time: 17650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000569
   },
   {
       time: 17700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568992
   },
   {
       time: 17750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568985
   },
   {
       time: 17800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568978
   },
   {
       time: 17850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568971
   },
   {
       time: 17900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568965
   },
   {
       time: 17950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568959
   },
   {
       time: 18000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568953
   },
   {
       time: 18050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568948
   },
   {
       time: 18100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568942
   },
   {
       time: 18150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568937
   },
   {
       time: 18200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568932
   },
   {
       time: 18250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568928
   },
   {
       time: 18300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568923
   },
   {
       time: 18350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568919
   },
   {
       time: 18400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568915
   },
   {
       time: 18450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568911
   },
   {
       time: 18500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568907
   },
   {
       time: 18550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568904
   },
   {
       time: 18600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.0005689
   },
   {
       time: 18650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568897
   },
   {
       time: 18700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568894
   },
   {
       time: 18750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568891
   },
   {
       time: 18800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568888
   },
   {
       time: 18850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568886
   },
   {
       time: 18900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568883
   },
   {
       time: 18950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568881
   },
   {
       time: 19000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568878
   },
   {
       time: 19050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568876
   },
   {
       time: 19100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568874
   },
   {
       time: 19150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568872
   },
   {
       time: 19200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056887
   },
   {
       time: 19250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568868
   },
   {
       time: 19300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568866
   },
   {
       time: 19350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568864
   },
   {
       time: 19400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568863
   },
   {
       time: 19450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568861
   },
   {
       time: 19500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056886
   },
   {
       time: 19550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568858
   },
   {
       time: 19600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568857
   },
   {
       time: 19650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568856
   },
   {
       time: 19700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568855
   },
   {
       time: 19750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568853
   },
   {
       time: 19800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568852
   },
   {
       time: 19850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568851
   },
   {
       time: 19900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056885
   },
   {
       time: 19950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568849
   },
   {
       time: 20000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568848
   },
   {
       time: 20050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568847
   },
   {
       time: 20100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568846
   },
   {
       time: 20150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568846
   },
   {
       time: 20200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568845
   },
   {
       time: 20250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568844
   },
   {
       time: 20300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568843
   },
   {
       time: 20350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568843
   },
   {
       time: 20400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568842
   },
   {
       time: 20450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568841
   },
   {
       time: 20500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568841
   },
   {
       time: 20550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056884
   },
   {
       time: 20600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056884
   },
   {
       time: 20650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568839
   },
   {
       time: 20700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568839
   },
   {
       time: 20750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568838
   },
   {
       time: 20800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568838
   },
   {
       time: 20850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568837
   },
   {
       time: 20900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568837
   },
   {
       time: 20950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568836
   },
   {
       time: 21000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568836
   },
   {
       time: 21050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568836
   },
   {
       time: 21100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568835
   },
   {
       time: 21150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568835
   },
   {
       time: 21200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568835
   },
   {
       time: 21250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568834
   },
   {
       time: 21450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568833
   },
   {
       time: 21650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568832
   },
   {
       time: 21900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 21950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568831
   },
   {
       time: 22250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.00056883
   },
   {
       time: 22800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 22850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 22900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 22950,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23000,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23050,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23100,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23150,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23200,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23250,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23300,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23350,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23400,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23450,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23500,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23550,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23600,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23650,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23700,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23750,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23800,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23850,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568829
   },
   {
       time: 23900,
       gfp: 0.000142288,
       roff: 0.838272,
       ron: 0.000568828
   }

]; var sitemap = {

   : 'home',
   
   'Overview_Project': 'quorus',
   'Description': 'quorus',
   'Design': 'quorus',
   'Experiments': 'quorus',
   'Notebook': 'quorus',
   'InterLab': 'quorus',
   'Model': 'quorus',
   'Results': 'quorus',
   'Demonstrate': 'quorus',
   'Improve': 'quorus',
   'Parts': 'quorus',
   'Basic_Part': 'quorus',
   'Composite_Part': 'quorus',
   'Part_Collection': 'quorus',
   'Safety': 'quorus',
   'Overview_HP': 'hp',
   'Human_Practices': 'hp',
   'Public_Engagement': 'hp',
   'Team': 'team',
   'Collaborations': 'team',
   'Attributions': 'team',
   'Applied_Design': 'competition',
   'Entrepreneurship': 'competition',
   'Hardware': 'competition',
   'Measurement': 'competition',
   'Model': 'competition',
   'Software': 'competition'

} $(document).ready(function() {

   var curnavitem = window.location.href;
   if(curnavitem.match(/igem\.org/i)) { // We know we're live
       curnavitem = curnavitem.replace(/(http:\/\/)?\d{4}\.igem\.org\.Team:\w+\/?/i, );
   }
   else {
       curnavitem = curnavitem.replace(/(http:\/\/)?localhost:\d+\/?/, );
       curnavitem = curnavitem.replace(/\.html/i, );
   }
   console.log(curnavitem);
   $('.' + sitemap[curnavitem]).addClass('current');

}) // Code courtesy of Mohamed Hasan // https://codepen.io/Mhmdhasan/pen/mAdaQE

$(document).ready(function () {

 'use strict';
 
  var c, currentScrollTop = 0,
      navbar = $('header');
  $(window).scroll(function () {
     var a = $(window).scrollTop();
     var b = navbar.height();
    
     currentScrollTop = a;
    
     if (c < currentScrollTop && a > b + b) {
       navbar.addClass("scrollUp");
     } else if (c > currentScrollTop && !(a <= b)) {
       navbar.removeClass("scrollUp");
     }
     c = currentScrollTop;
 });
 

}); //Code courtesy of https://codepen.io/kruxor/pen/CwpFq

$(window).scroll(function() {

   if ($(this).scrollTop() > 50 ) {
       $('.scrolltop:hidden').stop(true, true).fadeIn();
   } else {
       $('.scrolltop').stop(true, true).fadeOut();
   }

}); $(function(){$(".scroll").click(function(){$("html,body").animate({scrollTop:$("#top").offset().top},"1000");return false})}); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwb3BwZXIubWluLmpzIiwiYm9vdHN0cmFwLm1pbi5qcyIsImQzLm1pbi5qcyIsImVra28tbGlnaHRib3guanMiLCJmb290ZXItaGVhZGVyLXRlbXBsYXRlLmpzIiwiaW1hZ2UtZ2FsbGVyeS5qcyIsImluZGV4LmpzIiwibGFuZGluZy5qcyIsIm1vZGVsLmpzIiwibmF2bGluZS5qcyIsInNjcm9sbHNlbnNpdGl2ZS5qcyIsInNtb290aHNjcm9sbGJhci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNOQTtBQUNBO0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNXBCQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDeklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDL2pQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoid2lraS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiBDb3B5cmlnaHQgKEMpIEZlZGVyaWNvIFppdm9sbyAyMDE4XHJcbiBEaXN0cmlidXRlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UgKGxpY2Vuc2UgdGVybXMgYXJlIGF0IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpLlxyXG4gKi8oZnVuY3Rpb24oZSx0KXsnb2JqZWN0Jz09dHlwZW9mIGV4cG9ydHMmJid1bmRlZmluZWQnIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTonZnVuY3Rpb24nPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTplLlBvcHBlcj10KCl9KSh0aGlzLGZ1bmN0aW9uKCl7J3VzZSBzdHJpY3QnO2Z1bmN0aW9uIGUoZSl7cmV0dXJuIGUmJidbb2JqZWN0IEZ1bmN0aW9uXSc9PT17fS50b1N0cmluZy5jYWxsKGUpfWZ1bmN0aW9uIHQoZSx0KXtpZigxIT09ZS5ub2RlVHlwZSlyZXR1cm5bXTt2YXIgbz1nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCk7cmV0dXJuIHQ/b1t0XTpvfWZ1bmN0aW9uIG8oZSl7cmV0dXJuJ0hUTUwnPT09ZS5ub2RlTmFtZT9lOmUucGFyZW50Tm9kZXx8ZS5ob3N0fWZ1bmN0aW9uIG4oZSl7aWYoIWUpcmV0dXJuIGRvY3VtZW50LmJvZHk7c3dpdGNoKGUubm9kZU5hbWUpe2Nhc2UnSFRNTCc6Y2FzZSdCT0RZJzpyZXR1cm4gZS5vd25lckRvY3VtZW50LmJvZHk7Y2FzZScjZG9jdW1lbnQnOnJldHVybiBlLmJvZHk7fXZhciBpPXQoZSkscj1pLm92ZXJmbG93LHA9aS5vdmVyZmxvd1gscz1pLm92ZXJmbG93WTtyZXR1cm4gLyhhdXRvfHNjcm9sbHxvdmVybGF5KS8udGVzdChyK3MrcCk/ZTpuKG8oZSkpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDExPT09ZT9yZToxMD09PWU/cGU6cmV8fHBlfWZ1bmN0aW9uIHAoZSl7aWYoIWUpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmb3IodmFyIG89cigxMCk/ZG9jdW1lbnQuYm9keTpudWxsLG49ZS5vZmZzZXRQYXJlbnQ7bj09PW8mJmUubmV4dEVsZW1lbnRTaWJsaW5nOyluPShlPWUubmV4dEVsZW1lbnRTaWJsaW5nKS5vZmZzZXRQYXJlbnQ7dmFyIGk9biYmbi5ub2RlTmFtZTtyZXR1cm4gaSYmJ0JPRFknIT09aSYmJ0hUTUwnIT09aT8tMSE9PVsnVEQnLCdUQUJMRSddLmluZGV4T2Yobi5ub2RlTmFtZSkmJidzdGF0aWMnPT09dChuLCdwb3NpdGlvbicpP3Aobik6bjplP2Uub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIHMoZSl7dmFyIHQ9ZS5ub2RlTmFtZTtyZXR1cm4nQk9EWSchPT10JiYoJ0hUTUwnPT09dHx8cChlLmZpcnN0RWxlbWVudENoaWxkKT09PWUpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIG51bGw9PT1lLnBhcmVudE5vZGU/ZTpkKGUucGFyZW50Tm9kZSl9ZnVuY3Rpb24gYShlLHQpe2lmKCFlfHwhZS5ub2RlVHlwZXx8IXR8fCF0Lm5vZGVUeXBlKXJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dmFyIG89ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyxuPW8/ZTp0LGk9bz90OmUscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2V0U3RhcnQobiwwKSxyLnNldEVuZChpLDApO3ZhciBsPXIuY29tbW9uQW5jZXN0b3JDb250YWluZXI7aWYoZSE9PWwmJnQhPT1sfHxuLmNvbnRhaW5zKGkpKXJldHVybiBzKGwpP2w6cChsKTt2YXIgZj1kKGUpO3JldHVybiBmLmhvc3Q/YShmLmhvc3QsdCk6YShlLGQodCkuaG9zdCl9ZnVuY3Rpb24gbChlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06J3RvcCcsbz0ndG9wJz09PXQ/J3Njcm9sbFRvcCc6J3Njcm9sbExlZnQnLG49ZS5ub2RlTmFtZTtpZignQk9EWSc9PT1ufHwnSFRNTCc9PT1uKXt2YXIgaT1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9ZS5vd25lckRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnR8fGk7cmV0dXJuIHJbb119cmV0dXJuIGVbb119ZnVuY3Rpb24gZihlLHQpe3ZhciBvPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sbj1sKHQsJ3RvcCcpLGk9bCh0LCdsZWZ0Jykscj1vPy0xOjE7cmV0dXJuIGUudG9wKz1uKnIsZS5ib3R0b20rPW4qcixlLmxlZnQrPWkqcixlLnJpZ2h0Kz1pKnIsZX1mdW5jdGlvbiBtKGUsdCl7dmFyIG89J3gnPT09dD8nTGVmdCc6J1RvcCcsbj0nTGVmdCc9PW8/J1JpZ2h0JzonQm90dG9tJztyZXR1cm4gcGFyc2VGbG9hdChlWydib3JkZXInK28rJ1dpZHRoJ10sMTApK3BhcnNlRmxvYXQoZVsnYm9yZGVyJytuKydXaWR0aCddLDEwKX1mdW5jdGlvbiBoKGUsdCxvLG4pe3JldHVybiBKKHRbJ29mZnNldCcrZV0sdFsnc2Nyb2xsJytlXSxvWydjbGllbnQnK2VdLG9bJ29mZnNldCcrZV0sb1snc2Nyb2xsJytlXSxyKDEwKT9wYXJzZUludChvWydvZmZzZXQnK2VdKStwYXJzZUludChuWydtYXJnaW4nKygnSGVpZ2h0Jz09PWU/J1RvcCc6J0xlZnQnKV0pK3BhcnNlSW50KG5bJ21hcmdpbicrKCdIZWlnaHQnPT09ZT8nQm90dG9tJzonUmlnaHQnKV0pOjApfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9ZS5ib2R5LG89ZS5kb2N1bWVudEVsZW1lbnQsbj1yKDEwKSYmZ2V0Q29tcHV0ZWRTdHlsZShvKTtyZXR1cm57aGVpZ2h0OmgoJ0hlaWdodCcsdCxvLG4pLHdpZHRoOmgoJ1dpZHRoJyx0LG8sbil9fWZ1bmN0aW9uIGcoZSl7cmV0dXJuIGxlKHt9LGUse3JpZ2h0OmUubGVmdCtlLndpZHRoLGJvdHRvbTplLnRvcCtlLmhlaWdodH0pfWZ1bmN0aW9uIHUoZSl7dmFyIG89e307dHJ5e2lmKHIoMTApKXtvPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIG49bChlLCd0b3AnKSxpPWwoZSwnbGVmdCcpO28udG9wKz1uLG8ubGVmdCs9aSxvLmJvdHRvbSs9bixvLnJpZ2h0Kz1pfWVsc2Ugbz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKHQpe312YXIgcD17bGVmdDpvLmxlZnQsdG9wOm8udG9wLHdpZHRoOm8ucmlnaHQtby5sZWZ0LGhlaWdodDpvLmJvdHRvbS1vLnRvcH0scz0nSFRNTCc9PT1lLm5vZGVOYW1lP2MoZS5vd25lckRvY3VtZW50KTp7fSxkPXMud2lkdGh8fGUuY2xpZW50V2lkdGh8fHAucmlnaHQtcC5sZWZ0LGE9cy5oZWlnaHR8fGUuY2xpZW50SGVpZ2h0fHxwLmJvdHRvbS1wLnRvcCxmPWUub2Zmc2V0V2lkdGgtZCxoPWUub2Zmc2V0SGVpZ2h0LWE7aWYoZnx8aCl7dmFyIHU9dChlKTtmLT1tKHUsJ3gnKSxoLT1tKHUsJ3knKSxwLndpZHRoLT1mLHAuaGVpZ2h0LT1ofXJldHVybiBnKHApfWZ1bmN0aW9uIGIoZSxvKXt2YXIgaT0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHA9cigxMCkscz0nSFRNTCc9PT1vLm5vZGVOYW1lLGQ9dShlKSxhPXUobyksbD1uKGUpLG09dChvKSxoPXBhcnNlRmxvYXQobS5ib3JkZXJUb3BXaWR0aCwxMCksYz1wYXJzZUZsb2F0KG0uYm9yZGVyTGVmdFdpZHRoLDEwKTtpJiZzJiYoYS50b3A9SihhLnRvcCwwKSxhLmxlZnQ9SihhLmxlZnQsMCkpO3ZhciBiPWcoe3RvcDpkLnRvcC1hLnRvcC1oLGxlZnQ6ZC5sZWZ0LWEubGVmdC1jLHdpZHRoOmQud2lkdGgsaGVpZ2h0OmQuaGVpZ2h0fSk7aWYoYi5tYXJnaW5Ub3A9MCxiLm1hcmdpbkxlZnQ9MCwhcCYmcyl7dmFyIHk9cGFyc2VGbG9hdChtLm1hcmdpblRvcCwxMCksdz1wYXJzZUZsb2F0KG0ubWFyZ2luTGVmdCwxMCk7Yi50b3AtPWgteSxiLmJvdHRvbS09aC15LGIubGVmdC09Yy13LGIucmlnaHQtPWMtdyxiLm1hcmdpblRvcD15LGIubWFyZ2luTGVmdD13fXJldHVybihwJiYhaT9vLmNvbnRhaW5zKGwpOm89PT1sJiYnQk9EWSchPT1sLm5vZGVOYW1lKSYmKGI9ZihiLG8pKSxifWZ1bmN0aW9uIHkoZSl7dmFyIHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxvPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbj1iKGUsbyksaT1KKG8uY2xpZW50V2lkdGgsd2luZG93LmlubmVyV2lkdGh8fDApLHI9SihvLmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fDApLHA9dD8wOmwobykscz10PzA6bChvLCdsZWZ0JyksZD17dG9wOnAtbi50b3Arbi5tYXJnaW5Ub3AsbGVmdDpzLW4ubGVmdCtuLm1hcmdpbkxlZnQsd2lkdGg6aSxoZWlnaHQ6cn07cmV0dXJuIGcoZCl9ZnVuY3Rpb24gdyhlKXt2YXIgbj1lLm5vZGVOYW1lO3JldHVybidCT0RZJz09PW58fCdIVE1MJz09PW4/ITE6J2ZpeGVkJz09PXQoZSwncG9zaXRpb24nKXx8dyhvKGUpKX1mdW5jdGlvbiBFKGUpe2lmKCFlfHwhZS5wYXJlbnRFbGVtZW50fHxyKCkpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmb3IodmFyIG89ZS5wYXJlbnRFbGVtZW50O28mJidub25lJz09PXQobywndHJhbnNmb3JtJyk7KW89by5wYXJlbnRFbGVtZW50O3JldHVybiBvfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gdihlLHQsaSxyKXt2YXIgcD00PGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdLHM9e3RvcDowLGxlZnQ6MH0sZD1wP0UoZSk6YShlLHQpO2lmKCd2aWV3cG9ydCc9PT1yKXM9eShkLHApO2Vsc2V7dmFyIGw7J3Njcm9sbFBhcmVudCc9PT1yPyhsPW4obyh0KSksJ0JPRFknPT09bC5ub2RlTmFtZSYmKGw9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpOid3aW5kb3cnPT09cj9sPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6bD1yO3ZhciBmPWIobCxkLHApO2lmKCdIVE1MJz09PWwubm9kZU5hbWUmJiF3KGQpKXt2YXIgbT1jKGUub3duZXJEb2N1bWVudCksaD1tLmhlaWdodCxnPW0ud2lkdGg7cy50b3ArPWYudG9wLWYubWFyZ2luVG9wLHMuYm90dG9tPWgrZi50b3Ascy5sZWZ0Kz1mLmxlZnQtZi5tYXJnaW5MZWZ0LHMucmlnaHQ9ZytmLmxlZnR9ZWxzZSBzPWZ9aT1pfHwwO3ZhciB1PSdudW1iZXInPT10eXBlb2YgaTtyZXR1cm4gcy5sZWZ0Kz11P2k6aS5sZWZ0fHwwLHMudG9wKz11P2k6aS50b3B8fDAscy5yaWdodC09dT9pOmkucmlnaHR8fDAscy5ib3R0b20tPXU/aTppLmJvdHRvbXx8MCxzfWZ1bmN0aW9uIHgoZSl7dmFyIHQ9ZS53aWR0aCxvPWUuaGVpZ2h0O3JldHVybiB0Km99ZnVuY3Rpb24gTyhlLHQsbyxuLGkpe3ZhciByPTU8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTowO2lmKC0xPT09ZS5pbmRleE9mKCdhdXRvJykpcmV0dXJuIGU7dmFyIHA9dihvLG4scixpKSxzPXt0b3A6e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnQudG9wLXAudG9wfSxyaWdodDp7d2lkdGg6cC5yaWdodC10LnJpZ2h0LGhlaWdodDpwLmhlaWdodH0sYm90dG9tOnt3aWR0aDpwLndpZHRoLGhlaWdodDpwLmJvdHRvbS10LmJvdHRvbX0sbGVmdDp7d2lkdGg6dC5sZWZ0LXAubGVmdCxoZWlnaHQ6cC5oZWlnaHR9fSxkPU9iamVjdC5rZXlzKHMpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbGUoe2tleTplfSxzW2VdLHthcmVhOngoc1tlXSl9KX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC5hcmVhLWUuYXJlYX0pLGE9ZC5maWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ9ZS53aWR0aCxuPWUuaGVpZ2h0O3JldHVybiB0Pj1vLmNsaWVudFdpZHRoJiZuPj1vLmNsaWVudEhlaWdodH0pLGw9MDxhLmxlbmd0aD9hWzBdLmtleTpkWzBdLmtleSxmPWUuc3BsaXQoJy0nKVsxXTtyZXR1cm4gbCsoZj8nLScrZjonJyl9ZnVuY3Rpb24gTChlLHQsbyl7dmFyIG49Mzxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOm51bGwsaT1uP0UodCk6YSh0LG8pO3JldHVybiBiKG8saSxuKX1mdW5jdGlvbiBTKGUpe3ZhciB0PWdldENvbXB1dGVkU3R5bGUoZSksbz1wYXJzZUZsb2F0KHQubWFyZ2luVG9wKStwYXJzZUZsb2F0KHQubWFyZ2luQm90dG9tKSxuPXBhcnNlRmxvYXQodC5tYXJnaW5MZWZ0KStwYXJzZUZsb2F0KHQubWFyZ2luUmlnaHQpLGk9e3dpZHRoOmUub2Zmc2V0V2lkdGgrbixoZWlnaHQ6ZS5vZmZzZXRIZWlnaHQrb307cmV0dXJuIGl9ZnVuY3Rpb24gVChlKXt2YXIgdD17bGVmdDoncmlnaHQnLHJpZ2h0OidsZWZ0Jyxib3R0b206J3RvcCcsdG9wOidib3R0b20nfTtyZXR1cm4gZS5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZyxmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfWZ1bmN0aW9uIEQoZSx0LG8pe289by5zcGxpdCgnLScpWzBdO3ZhciBuPVMoZSksaT17d2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHR9LHI9LTEhPT1bJ3JpZ2h0JywnbGVmdCddLmluZGV4T2YobykscD1yPyd0b3AnOidsZWZ0JyxzPXI/J2xlZnQnOid0b3AnLGQ9cj8naGVpZ2h0Jzond2lkdGgnLGE9cj8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBpW3BdPXRbcF0rdFtkXS8yLW5bZF0vMixpW3NdPW89PT1zP3Rbc10tblthXTp0W1QocyldLGl9ZnVuY3Rpb24gQyhlLHQpe3JldHVybiBBcnJheS5wcm90b3R5cGUuZmluZD9lLmZpbmQodCk6ZS5maWx0ZXIodClbMF19ZnVuY3Rpb24gTihlLHQsbyl7aWYoQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleClyZXR1cm4gZS5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7dmFyIG49QyhlLGZ1bmN0aW9uKGUpe3JldHVybiBlW3RdPT09b30pO3JldHVybiBlLmluZGV4T2Yobil9ZnVuY3Rpb24gUCh0LG8sbil7dmFyIGk9dm9pZCAwPT09bj90OnQuc2xpY2UoMCxOKHQsJ25hbWUnLG4pKTtyZXR1cm4gaS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RbJ2Z1bmN0aW9uJ10mJmNvbnNvbGUud2FybignYG1vZGlmaWVyLmZ1bmN0aW9uYCBpcyBkZXByZWNhdGVkLCB1c2UgYG1vZGlmaWVyLmZuYCEnKTt2YXIgbj10WydmdW5jdGlvbiddfHx0LmZuO3QuZW5hYmxlZCYmZShuKSYmKG8ub2Zmc2V0cy5wb3BwZXI9ZyhvLm9mZnNldHMucG9wcGVyKSxvLm9mZnNldHMucmVmZXJlbmNlPWcoby5vZmZzZXRzLnJlZmVyZW5jZSksbz1uKG8sdCkpfSksb31mdW5jdGlvbiBrKCl7aWYoIXRoaXMuc3RhdGUuaXNEZXN0cm95ZWQpe3ZhciBlPXtpbnN0YW5jZTp0aGlzLHN0eWxlczp7fSxhcnJvd1N0eWxlczp7fSxhdHRyaWJ1dGVzOnt9LGZsaXBwZWQ6ITEsb2Zmc2V0czp7fX07ZS5vZmZzZXRzLnJlZmVyZW5jZT1MKHRoaXMuc3RhdGUsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQpLGUucGxhY2VtZW50PU8odGhpcy5vcHRpb25zLnBsYWNlbWVudCxlLm9mZnNldHMucmVmZXJlbmNlLHRoaXMucG9wcGVyLHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5ib3VuZGFyaWVzRWxlbWVudCx0aGlzLm9wdGlvbnMubW9kaWZpZXJzLmZsaXAucGFkZGluZyksZS5vcmlnaW5hbFBsYWNlbWVudD1lLnBsYWNlbWVudCxlLnBvc2l0aW9uRml4ZWQ9dGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQsZS5vZmZzZXRzLnBvcHBlcj1EKHRoaXMucG9wcGVyLGUub2Zmc2V0cy5yZWZlcmVuY2UsZS5wbGFjZW1lbnQpLGUub2Zmc2V0cy5wb3BwZXIucG9zaXRpb249dGhpcy5vcHRpb25zLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnLGU9UCh0aGlzLm1vZGlmaWVycyxlKSx0aGlzLnN0YXRlLmlzQ3JlYXRlZD90aGlzLm9wdGlvbnMub25VcGRhdGUoZSk6KHRoaXMuc3RhdGUuaXNDcmVhdGVkPSEwLHRoaXMub3B0aW9ucy5vbkNyZWF0ZShlKSl9fWZ1bmN0aW9uIFcoZSx0KXtyZXR1cm4gZS5zb21lKGZ1bmN0aW9uKGUpe3ZhciBvPWUubmFtZSxuPWUuZW5hYmxlZDtyZXR1cm4gbiYmbz09PXR9KX1mdW5jdGlvbiBIKGUpe2Zvcih2YXIgdD1bITEsJ21zJywnV2Via2l0JywnTW96JywnTyddLG89ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxyPWk/JycraStvOmU7aWYoJ3VuZGVmaW5lZCchPXR5cGVvZiBkb2N1bWVudC5ib2R5LnN0eWxlW3JdKXJldHVybiByfXJldHVybiBudWxsfWZ1bmN0aW9uIEIoKXtyZXR1cm4gdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZD0hMCxXKHRoaXMubW9kaWZpZXJzLCdhcHBseVN0eWxlJykmJih0aGlzLnBvcHBlci5yZW1vdmVBdHRyaWJ1dGUoJ3gtcGxhY2VtZW50JyksdGhpcy5wb3BwZXIuc3R5bGUucG9zaXRpb249JycsdGhpcy5wb3BwZXIuc3R5bGUudG9wPScnLHRoaXMucG9wcGVyLnN0eWxlLmxlZnQ9JycsdGhpcy5wb3BwZXIuc3R5bGUucmlnaHQ9JycsdGhpcy5wb3BwZXIuc3R5bGUuYm90dG9tPScnLHRoaXMucG9wcGVyLnN0eWxlLndpbGxDaGFuZ2U9JycsdGhpcy5wb3BwZXIuc3R5bGVbSCgndHJhbnNmb3JtJyldPScnKSx0aGlzLmRpc2FibGVFdmVudExpc3RlbmVycygpLHRoaXMub3B0aW9ucy5yZW1vdmVPbkRlc3Ryb3kmJnRoaXMucG9wcGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5wb3BwZXIpLHRoaXN9ZnVuY3Rpb24gQShlKXt2YXIgdD1lLm93bmVyRG9jdW1lbnQ7cmV0dXJuIHQ/dC5kZWZhdWx0Vmlldzp3aW5kb3d9ZnVuY3Rpb24gTShlLHQsbyxpKXt2YXIgcj0nQk9EWSc9PT1lLm5vZGVOYW1lLHA9cj9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6ZTtwLmFkZEV2ZW50TGlzdGVuZXIodCxvLHtwYXNzaXZlOiEwfSkscnx8TShuKHAucGFyZW50Tm9kZSksdCxvLGkpLGkucHVzaChwKX1mdW5jdGlvbiBGKGUsdCxvLGkpe28udXBkYXRlQm91bmQ9aSxBKGUpLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsby51cGRhdGVCb3VuZCx7cGFzc2l2ZTohMH0pO3ZhciByPW4oZSk7cmV0dXJuIE0ociwnc2Nyb2xsJyxvLnVwZGF0ZUJvdW5kLG8uc2Nyb2xsUGFyZW50cyksby5zY3JvbGxFbGVtZW50PXIsby5ldmVudHNFbmFibGVkPSEwLG99ZnVuY3Rpb24gSSgpe3RoaXMuc3RhdGUuZXZlbnRzRW5hYmxlZHx8KHRoaXMuc3RhdGU9Rih0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMsdGhpcy5zdGF0ZSx0aGlzLnNjaGVkdWxlVXBkYXRlKSl9ZnVuY3Rpb24gUihlLHQpe3JldHVybiBBKGUpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsdC51cGRhdGVCb3VuZCksdC5zY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLHQudXBkYXRlQm91bmQpfSksdC51cGRhdGVCb3VuZD1udWxsLHQuc2Nyb2xsUGFyZW50cz1bXSx0LnNjcm9sbEVsZW1lbnQ9bnVsbCx0LmV2ZW50c0VuYWJsZWQ9ITEsdH1mdW5jdGlvbiBVKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkJiYoY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5zY2hlZHVsZVVwZGF0ZSksdGhpcy5zdGF0ZT1SKHRoaXMucmVmZXJlbmNlLHRoaXMuc3RhdGUpKX1mdW5jdGlvbiBZKGUpe3JldHVybicnIT09ZSYmIWlzTmFOKHBhcnNlRmxvYXQoZSkpJiZpc0Zpbml0ZShlKX1mdW5jdGlvbiBqKGUsdCl7T2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgbj0nJzstMSE9PVsnd2lkdGgnLCdoZWlnaHQnLCd0b3AnLCdyaWdodCcsJ2JvdHRvbScsJ2xlZnQnXS5pbmRleE9mKG8pJiZZKHRbb10pJiYobj0ncHgnKSxlLnN0eWxlW29dPXRbb10rbn0pfWZ1bmN0aW9uIEsoZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPXRbb107ITE9PT1uP2UucmVtb3ZlQXR0cmlidXRlKG8pOmUuc2V0QXR0cmlidXRlKG8sdFtvXSl9KX1mdW5jdGlvbiBxKGUsdCxvKXt2YXIgbj1DKGUsZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lO3JldHVybiBvPT09dH0pLGk9ISFuJiZlLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PW8mJmUuZW5hYmxlZCYmZS5vcmRlcjxuLm9yZGVyfSk7aWYoIWkpe3ZhciByPSdgJyt0KydgJztjb25zb2xlLndhcm4oJ2AnK28rJ2AnKycgbW9kaWZpZXIgaXMgcmVxdWlyZWQgYnkgJytyKycgbW9kaWZpZXIgaW4gb3JkZXIgdG8gd29yaywgYmUgc3VyZSB0byBpbmNsdWRlIGl0IGJlZm9yZSAnK3IrJyEnKX1yZXR1cm4gaX1mdW5jdGlvbiBHKGUpe3JldHVybidlbmQnPT09ZT8nc3RhcnQnOidzdGFydCc9PT1lPydlbmQnOmV9ZnVuY3Rpb24gVihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89bWUuaW5kZXhPZihlKSxuPW1lLnNsaWNlKG8rMSkuY29uY2F0KG1lLnNsaWNlKDAsbykpO3JldHVybiB0P24ucmV2ZXJzZSgpOm59ZnVuY3Rpb24geihlLHQsbyxuKXt2YXIgaT1lLm1hdGNoKC8oKD86XFwtfFxcKyk/XFxkKlxcLj9cXGQqKSguKikvKSxyPStpWzFdLHA9aVsyXTtpZighcilyZXR1cm4gZTtpZigwPT09cC5pbmRleE9mKCclJykpe3ZhciBzO3N3aXRjaChwKXtjYXNlJyVwJzpzPW87YnJlYWs7Y2FzZSclJzpjYXNlJyVyJzpkZWZhdWx0OnM9bjt9dmFyIGQ9ZyhzKTtyZXR1cm4gZFt0XS8xMDAqcn1pZigndmgnPT09cHx8J3Z3Jz09PXApe3ZhciBhO3JldHVybiBhPSd2aCc9PT1wP0ooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fDApOkooZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHdpbmRvdy5pbm5lcldpZHRofHwwKSxhLzEwMCpyfXJldHVybiByfWZ1bmN0aW9uIF8oZSx0LG8sbil7dmFyIGk9WzAsMF0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihuKSxwPWUuc3BsaXQoLyhcXCt8XFwtKS8pLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltKCl9KSxzPXAuaW5kZXhPZihDKHAsZnVuY3Rpb24oZSl7cmV0dXJuLTEhPT1lLnNlYXJjaCgvLHxcXHMvKX0pKTtwW3NdJiYtMT09PXBbc10uaW5kZXhPZignLCcpJiZjb25zb2xlLndhcm4oJ09mZnNldHMgc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlKHMpIGFyZSBkZXByZWNhdGVkLCB1c2UgYSBjb21tYSAoLCkgaW5zdGVhZC4nKTt2YXIgZD0vXFxzKixcXHMqfFxccysvLGE9LTE9PT1zP1twXTpbcC5zbGljZSgwLHMpLmNvbmNhdChbcFtzXS5zcGxpdChkKVswXV0pLFtwW3NdLnNwbGl0KGQpWzFdXS5jb25jYXQocC5zbGljZShzKzEpKV07cmV0dXJuIGE9YS5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgaT0oMT09PW4/IXI6cik/J2hlaWdodCc6J3dpZHRoJyxwPSExO3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybicnPT09ZVtlLmxlbmd0aC0xXSYmLTEhPT1bJysnLCctJ10uaW5kZXhPZih0KT8oZVtlLmxlbmd0aC0xXT10LHA9ITAsZSk6cD8oZVtlLmxlbmd0aC0xXSs9dCxwPSExLGUpOmUuY29uY2F0KHQpfSxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB6KGUsaSx0LG8pfSl9KSxhLmZvckVhY2goZnVuY3Rpb24oZSx0KXtlLmZvckVhY2goZnVuY3Rpb24obyxuKXtZKG8pJiYoaVt0XSs9byooJy0nPT09ZVtuLTFdPy0xOjEpKX0pfSksaX1mdW5jdGlvbiBYKGUsdCl7dmFyIG8sbj10Lm9mZnNldCxpPWUucGxhY2VtZW50LHI9ZS5vZmZzZXRzLHA9ci5wb3BwZXIscz1yLnJlZmVyZW5jZSxkPWkuc3BsaXQoJy0nKVswXTtyZXR1cm4gbz1ZKCtuKT9bK24sMF06XyhuLHAscyxkKSwnbGVmdCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQtPW9bMV0pOidyaWdodCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQrPW9bMV0pOid0b3AnPT09ZD8ocC5sZWZ0Kz1vWzBdLHAudG9wLT1vWzFdKTonYm90dG9tJz09PWQmJihwLmxlZnQrPW9bMF0scC50b3ArPW9bMV0pLGUucG9wcGVyPXAsZX1mb3IodmFyIFE9TWF0aC5taW4sWj1NYXRoLnJvdW5kLCQ9TWF0aC5mbG9vcixKPU1hdGgubWF4LGVlPSd1bmRlZmluZWQnIT10eXBlb2Ygd2luZG93JiYndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LHRlPVsnRWRnZScsJ1RyaWRlbnQnLCdGaXJlZm94J10sb2U9MCxuZT0wO25lPHRlLmxlbmd0aDtuZSs9MSlpZihlZSYmMDw9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKHRlW25lXSkpe29lPTE7YnJlYWt9dmFyIGk9ZWUmJndpbmRvdy5Qcm9taXNlLGllPWk/ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsd2luZG93LlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZnVuY3Rpb24oKXt0PSExLGUoKX0pKX19OmZ1bmN0aW9uKGUpe3ZhciB0PSExO3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0PSExLGUoKX0sb2UpKX19LHJlPWVlJiYhISh3aW5kb3cuTVNJbnB1dE1ldGhvZENvbnRleHQmJmRvY3VtZW50LmRvY3VtZW50TW9kZSkscGU9ZWUmJi9NU0lFIDEwLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHNlPWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyl9LGRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgbyxuPTA7bjx0Lmxlbmd0aDtuKyspbz10W25dLG8uZW51bWVyYWJsZT1vLmVudW1lcmFibGV8fCExLG8uY29uZmlndXJhYmxlPSEwLCd2YWx1ZSdpbiBvJiYoby53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsby5rZXksbyl9cmV0dXJuIGZ1bmN0aW9uKHQsbyxuKXtyZXR1cm4gbyYmZSh0LnByb3RvdHlwZSxvKSxuJiZlKHQsbiksdH19KCksYWU9ZnVuY3Rpb24oZSx0LG8pe3JldHVybiB0IGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6byxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbdF09byxlfSxsZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihlKXtmb3IodmFyIHQsbz0xO288YXJndW1lbnRzLmxlbmd0aDtvKyspZm9yKHZhciBuIGluIHQ9YXJndW1lbnRzW29dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pO3JldHVybiBlfSxmZT1bJ2F1dG8tc3RhcnQnLCdhdXRvJywnYXV0by1lbmQnLCd0b3Atc3RhcnQnLCd0b3AnLCd0b3AtZW5kJywncmlnaHQtc3RhcnQnLCdyaWdodCcsJ3JpZ2h0LWVuZCcsJ2JvdHRvbS1lbmQnLCdib3R0b20nLCdib3R0b20tc3RhcnQnLCdsZWZ0LWVuZCcsJ2xlZnQnLCdsZWZ0LXN0YXJ0J10sbWU9ZmUuc2xpY2UoMyksaGU9e0ZMSVA6J2ZsaXAnLENMT0NLV0lTRTonY2xvY2t3aXNlJyxDT1VOVEVSQ0xPQ0tXSVNFOidjb3VudGVyY2xvY2t3aXNlJ30sY2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KG8sbil7dmFyIGk9dGhpcyxyPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtzZSh0aGlzLHQpLHRoaXMuc2NoZWR1bGVVcGRhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGkudXBkYXRlKX0sdGhpcy51cGRhdGU9aWUodGhpcy51cGRhdGUuYmluZCh0aGlzKSksdGhpcy5vcHRpb25zPWxlKHt9LHQuRGVmYXVsdHMsciksdGhpcy5zdGF0ZT17aXNEZXN0cm95ZWQ6ITEsaXNDcmVhdGVkOiExLHNjcm9sbFBhcmVudHM6W119LHRoaXMucmVmZXJlbmNlPW8mJm8uanF1ZXJ5P29bMF06byx0aGlzLnBvcHBlcj1uJiZuLmpxdWVyeT9uWzBdOm4sdGhpcy5vcHRpb25zLm1vZGlmaWVycz17fSxPYmplY3Qua2V5cyhsZSh7fSx0LkRlZmF1bHRzLm1vZGlmaWVycyxyLm1vZGlmaWVycykpLmZvckVhY2goZnVuY3Rpb24oZSl7aS5vcHRpb25zLm1vZGlmaWVyc1tlXT1sZSh7fSx0LkRlZmF1bHRzLm1vZGlmaWVyc1tlXXx8e30sci5tb2RpZmllcnM/ci5tb2RpZmllcnNbZV06e30pfSksdGhpcy5tb2RpZmllcnM9T2JqZWN0LmtleXModGhpcy5vcHRpb25zLm1vZGlmaWVycykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBsZSh7bmFtZTplfSxpLm9wdGlvbnMubW9kaWZpZXJzW2VdKX0pLnNvcnQoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5vcmRlci10Lm9yZGVyfSksdGhpcy5tb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmVuYWJsZWQmJmUodC5vbkxvYWQpJiZ0Lm9uTG9hZChpLnJlZmVyZW5jZSxpLnBvcHBlcixpLm9wdGlvbnMsdCxpLnN0YXRlKX0pLHRoaXMudXBkYXRlKCk7dmFyIHA9dGhpcy5vcHRpb25zLmV2ZW50c0VuYWJsZWQ7cCYmdGhpcy5lbmFibGVFdmVudExpc3RlbmVycygpLHRoaXMuc3RhdGUuZXZlbnRzRW5hYmxlZD1wfXJldHVybiBkZSh0LFt7a2V5Oid1cGRhdGUnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGsuY2FsbCh0aGlzKX19LHtrZXk6J2Rlc3Ryb3knLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEIuY2FsbCh0aGlzKX19LHtrZXk6J2VuYWJsZUV2ZW50TGlzdGVuZXJzJyx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBJLmNhbGwodGhpcyl9fSx7a2V5OidkaXNhYmxlRXZlbnRMaXN0ZW5lcnMnLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFUuY2FsbCh0aGlzKX19XSksdH0oKTtyZXR1cm4gY2UuVXRpbHM9KCd1bmRlZmluZWQnPT10eXBlb2Ygd2luZG93P2dsb2JhbDp3aW5kb3cpLlBvcHBlclV0aWxzLGNlLnBsYWNlbWVudHM9ZmUsY2UuRGVmYXVsdHM9e3BsYWNlbWVudDonYm90dG9tJyxwb3NpdGlvbkZpeGVkOiExLGV2ZW50c0VuYWJsZWQ6ITAscmVtb3ZlT25EZXN0cm95OiExLG9uQ3JlYXRlOmZ1bmN0aW9uKCl7fSxvblVwZGF0ZTpmdW5jdGlvbigpe30sbW9kaWZpZXJzOntzaGlmdDp7b3JkZXI6MTAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj10LnNwbGl0KCctJylbMV07aWYobil7dmFyIGk9ZS5vZmZzZXRzLHI9aS5yZWZlcmVuY2UscD1pLnBvcHBlcixzPS0xIT09Wydib3R0b20nLCd0b3AnXS5pbmRleE9mKG8pLGQ9cz8nbGVmdCc6J3RvcCcsYT1zPyd3aWR0aCc6J2hlaWdodCcsbD17c3RhcnQ6YWUoe30sZCxyW2RdKSxlbmQ6YWUoe30sZCxyW2RdK3JbYV0tcFthXSl9O2Uub2Zmc2V0cy5wb3BwZXI9bGUoe30scCxsW25dKX1yZXR1cm4gZX19LG9mZnNldDp7b3JkZXI6MjAwLGVuYWJsZWQ6ITAsZm46WCxvZmZzZXQ6MH0scHJldmVudE92ZXJmbG93OntvcmRlcjozMDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQuYm91bmRhcmllc0VsZW1lbnR8fHAoZS5pbnN0YW5jZS5wb3BwZXIpO2UuaW5zdGFuY2UucmVmZXJlbmNlPT09byYmKG89cChvKSk7dmFyIG49SCgndHJhbnNmb3JtJyksaT1lLmluc3RhbmNlLnBvcHBlci5zdHlsZSxyPWkudG9wLHM9aS5sZWZ0LGQ9aVtuXTtpLnRvcD0nJyxpLmxlZnQ9JycsaVtuXT0nJzt2YXIgYT12KGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyxvLGUucG9zaXRpb25GaXhlZCk7aS50b3A9cixpLmxlZnQ9cyxpW25dPWQsdC5ib3VuZGFyaWVzPWE7dmFyIGw9dC5wcmlvcml0eSxmPWUub2Zmc2V0cy5wb3BwZXIsbT17cHJpbWFyeTpmdW5jdGlvbihlKXt2YXIgbz1mW2VdO3JldHVybiBmW2VdPGFbZV0mJiF0LmVzY2FwZVdpdGhSZWZlcmVuY2UmJihvPUooZltlXSxhW2VdKSksYWUoe30sZSxvKX0sc2Vjb25kYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPSdyaWdodCc9PT1lPydsZWZ0JzondG9wJyxuPWZbb107cmV0dXJuIGZbZV0+YVtlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG49UShmW29dLGFbZV0tKCdyaWdodCc9PT1lP2Yud2lkdGg6Zi5oZWlnaHQpKSksYWUoe30sbyxuKX19O3JldHVybiBsLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9LTE9PT1bJ2xlZnQnLCd0b3AnXS5pbmRleE9mKGUpPydzZWNvbmRhcnknOidwcmltYXJ5JztmPWxlKHt9LGYsbVt0XShlKSl9KSxlLm9mZnNldHMucG9wcGVyPWYsZX0scHJpb3JpdHk6WydsZWZ0JywncmlnaHQnLCd0b3AnLCdib3R0b20nXSxwYWRkaW5nOjUsYm91bmRhcmllc0VsZW1lbnQ6J3Njcm9sbFBhcmVudCd9LGtlZXBUb2dldGhlcjp7b3JkZXI6NDAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vZmZzZXRzLG89dC5wb3BwZXIsbj10LnJlZmVyZW5jZSxpPWUucGxhY2VtZW50LnNwbGl0KCctJylbMF0scj0kLHA9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2YoaSkscz1wPydyaWdodCc6J2JvdHRvbScsZD1wPydsZWZ0JzondG9wJyxhPXA/J3dpZHRoJzonaGVpZ2h0JztyZXR1cm4gb1tzXTxyKG5bZF0pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bZF0pLW9bYV0pLG9bZF0+cihuW3NdKSYmKGUub2Zmc2V0cy5wb3BwZXJbZF09cihuW3NdKSksZX19LGFycm93OntvcmRlcjo1MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLG8pe3ZhciBuO2lmKCFxKGUuaW5zdGFuY2UubW9kaWZpZXJzLCdhcnJvdycsJ2tlZXBUb2dldGhlcicpKXJldHVybiBlO3ZhciBpPW8uZWxlbWVudDtpZignc3RyaW5nJz09dHlwZW9mIGkpe2lmKGk9ZS5pbnN0YW5jZS5wb3BwZXIucXVlcnlTZWxlY3RvcihpKSwhaSlyZXR1cm4gZTt9ZWxzZSBpZighZS5pbnN0YW5jZS5wb3BwZXIuY29udGFpbnMoaSkpcmV0dXJuIGNvbnNvbGUud2FybignV0FSTklORzogYGFycm93LmVsZW1lbnRgIG11c3QgYmUgY2hpbGQgb2YgaXRzIHBvcHBlciBlbGVtZW50IScpLGU7dmFyIHI9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxwPWUub2Zmc2V0cyxzPXAucG9wcGVyLGQ9cC5yZWZlcmVuY2UsYT0tMSE9PVsnbGVmdCcsJ3JpZ2h0J10uaW5kZXhPZihyKSxsPWE/J2hlaWdodCc6J3dpZHRoJyxmPWE/J1RvcCc6J0xlZnQnLG09Zi50b0xvd2VyQ2FzZSgpLGg9YT8nbGVmdCc6J3RvcCcsYz1hPydib3R0b20nOidyaWdodCcsdT1TKGkpW2xdO2RbY10tdTxzW21dJiYoZS5vZmZzZXRzLnBvcHBlclttXS09c1ttXS0oZFtjXS11KSksZFttXSt1PnNbY10mJihlLm9mZnNldHMucG9wcGVyW21dKz1kW21dK3Utc1tjXSksZS5vZmZzZXRzLnBvcHBlcj1nKGUub2Zmc2V0cy5wb3BwZXIpO3ZhciBiPWRbbV0rZFtsXS8yLXUvMix5PXQoZS5pbnN0YW5jZS5wb3BwZXIpLHc9cGFyc2VGbG9hdCh5WydtYXJnaW4nK2ZdLDEwKSxFPXBhcnNlRmxvYXQoeVsnYm9yZGVyJytmKydXaWR0aCddLDEwKSx2PWItZS5vZmZzZXRzLnBvcHBlclttXS13LUU7cmV0dXJuIHY9SihRKHNbbF0tdSx2KSwwKSxlLmFycm93RWxlbWVudD1pLGUub2Zmc2V0cy5hcnJvdz0obj17fSxhZShuLG0sWih2KSksYWUobixoLCcnKSxuKSxlfSxlbGVtZW50OidbeC1hcnJvd10nfSxmbGlwOntvcmRlcjo2MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe2lmKFcoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2lubmVyJykpcmV0dXJuIGU7aWYoZS5mbGlwcGVkJiZlLnBsYWNlbWVudD09PWUub3JpZ2luYWxQbGFjZW1lbnQpcmV0dXJuIGU7dmFyIG89dihlLmluc3RhbmNlLnBvcHBlcixlLmluc3RhbmNlLnJlZmVyZW5jZSx0LnBhZGRpbmcsdC5ib3VuZGFyaWVzRWxlbWVudCxlLnBvc2l0aW9uRml4ZWQpLG49ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVQobikscj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzFdfHwnJyxwPVtdO3N3aXRjaCh0LmJlaGF2aW9yKXtjYXNlIGhlLkZMSVA6cD1bbixpXTticmVhaztjYXNlIGhlLkNMT0NLV0lTRTpwPVYobik7YnJlYWs7Y2FzZSBoZS5DT1VOVEVSQ0xPQ0tXSVNFOnA9VihuLCEwKTticmVhaztkZWZhdWx0OnA9dC5iZWhhdmlvcjt9cmV0dXJuIHAuZm9yRWFjaChmdW5jdGlvbihzLGQpe2lmKG4hPT1zfHxwLmxlbmd0aD09PWQrMSlyZXR1cm4gZTtuPWUucGxhY2VtZW50LnNwbGl0KCctJylbMF0saT1UKG4pO3ZhciBhPWUub2Zmc2V0cy5wb3BwZXIsbD1lLm9mZnNldHMucmVmZXJlbmNlLGY9JCxtPSdsZWZ0Jz09PW4mJmYoYS5yaWdodCk+ZihsLmxlZnQpfHwncmlnaHQnPT09biYmZihhLmxlZnQpPGYobC5yaWdodCl8fCd0b3AnPT09biYmZihhLmJvdHRvbSk+ZihsLnRvcCl8fCdib3R0b20nPT09biYmZihhLnRvcCk8ZihsLmJvdHRvbSksaD1mKGEubGVmdCk8ZihvLmxlZnQpLGM9ZihhLnJpZ2h0KT5mKG8ucmlnaHQpLGc9ZihhLnRvcCk8ZihvLnRvcCksdT1mKGEuYm90dG9tKT5mKG8uYm90dG9tKSxiPSdsZWZ0Jz09PW4mJmh8fCdyaWdodCc9PT1uJiZjfHwndG9wJz09PW4mJmd8fCdib3R0b20nPT09biYmdSx5PS0xIT09Wyd0b3AnLCdib3R0b20nXS5pbmRleE9mKG4pLHc9ISF0LmZsaXBWYXJpYXRpb25zJiYoeSYmJ3N0YXJ0Jz09PXImJmh8fHkmJidlbmQnPT09ciYmY3x8IXkmJidzdGFydCc9PT1yJiZnfHwheSYmJ2VuZCc9PT1yJiZ1KTsobXx8Ynx8dykmJihlLmZsaXBwZWQ9ITAsKG18fGIpJiYobj1wW2QrMV0pLHcmJihyPUcocikpLGUucGxhY2VtZW50PW4rKHI/Jy0nK3I6JycpLGUub2Zmc2V0cy5wb3BwZXI9bGUoe30sZS5vZmZzZXRzLnBvcHBlcixEKGUuaW5zdGFuY2UucG9wcGVyLGUub2Zmc2V0cy5yZWZlcmVuY2UsZS5wbGFjZW1lbnQpKSxlPVAoZS5pbnN0YW5jZS5tb2RpZmllcnMsZSwnZmxpcCcpKX0pLGV9LGJlaGF2aW9yOidmbGlwJyxwYWRkaW5nOjUsYm91bmRhcmllc0VsZW1lbnQ6J3ZpZXdwb3J0J30saW5uZXI6e29yZGVyOjcwMCxlbmFibGVkOiExLGZuOmZ1bmN0aW9uKGUpe3ZhciB0PWUucGxhY2VtZW50LG89dC5zcGxpdCgnLScpWzBdLG49ZS5vZmZzZXRzLGk9bi5wb3BwZXIscj1uLnJlZmVyZW5jZSxwPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKG8pLHM9LTE9PT1bJ3RvcCcsJ2xlZnQnXS5pbmRleE9mKG8pO3JldHVybiBpW3A/J2xlZnQnOid0b3AnXT1yW29dLShzP2lbcD8nd2lkdGgnOidoZWlnaHQnXTowKSxlLnBsYWNlbWVudD1UKHQpLGUub2Zmc2V0cy5wb3BwZXI9ZyhpKSxlfX0saGlkZTp7b3JkZXI6ODAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2hpZGUnLCdwcmV2ZW50T3ZlcmZsb3cnKSlyZXR1cm4gZTt2YXIgdD1lLm9mZnNldHMucmVmZXJlbmNlLG89QyhlLmluc3RhbmNlLm1vZGlmaWVycyxmdW5jdGlvbihlKXtyZXR1cm4ncHJldmVudE92ZXJmbG93Jz09PWUubmFtZX0pLmJvdW5kYXJpZXM7aWYodC5ib3R0b208by50b3B8fHQubGVmdD5vLnJpZ2h0fHx0LnRvcD5vLmJvdHRvbXx8dC5yaWdodDxvLmxlZnQpe2lmKCEwPT09ZS5oaWRlKXJldHVybiBlO2UuaGlkZT0hMCxlLmF0dHJpYnV0ZXNbJ3gtb3V0LW9mLWJvdW5kYXJpZXMnXT0nJ31lbHNle2lmKCExPT09ZS5oaWRlKXJldHVybiBlO2UuaGlkZT0hMSxlLmF0dHJpYnV0ZXNbJ3gtb3V0LW9mLWJvdW5kYXJpZXMnXT0hMX1yZXR1cm4gZX19LGNvbXB1dGVTdHlsZTp7b3JkZXI6ODUwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSx0KXt2YXIgbz10Lngsbj10LnksaT1lLm9mZnNldHMucG9wcGVyLHI9QyhlLmluc3RhbmNlLm1vZGlmaWVycyxmdW5jdGlvbihlKXtyZXR1cm4nYXBwbHlTdHlsZSc9PT1lLm5hbWV9KS5ncHVBY2NlbGVyYXRpb247dm9pZCAwIT09ciYmY29uc29sZS53YXJuKCdXQVJOSU5HOiBgZ3B1QWNjZWxlcmF0aW9uYCBvcHRpb24gbW92ZWQgdG8gYGNvbXB1dGVTdHlsZWAgbW9kaWZpZXIgYW5kIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgUG9wcGVyLmpzIScpO3ZhciBzLGQsYT12b2lkIDA9PT1yP3QuZ3B1QWNjZWxlcmF0aW9uOnIsbD1wKGUuaW5zdGFuY2UucG9wcGVyKSxmPXUobCksbT17cG9zaXRpb246aS5wb3NpdGlvbn0saD17bGVmdDokKGkubGVmdCksdG9wOlooaS50b3ApLGJvdHRvbTpaKGkuYm90dG9tKSxyaWdodDokKGkucmlnaHQpfSxjPSdib3R0b20nPT09bz8ndG9wJzonYm90dG9tJyxnPSdyaWdodCc9PT1uPydsZWZ0JzoncmlnaHQnLGI9SCgndHJhbnNmb3JtJyk7aWYoZD0nYm90dG9tJz09Yz8nSFRNTCc9PT1sLm5vZGVOYW1lPy1sLmNsaWVudEhlaWdodCtoLmJvdHRvbTotZi5oZWlnaHQraC5ib3R0b206aC50b3Ascz0ncmlnaHQnPT1nPydIVE1MJz09PWwubm9kZU5hbWU/LWwuY2xpZW50V2lkdGgraC5yaWdodDotZi53aWR0aCtoLnJpZ2h0OmgubGVmdCxhJiZiKW1bYl09J3RyYW5zbGF0ZTNkKCcrcysncHgsICcrZCsncHgsIDApJyxtW2NdPTAsbVtnXT0wLG0ud2lsbENoYW5nZT0ndHJhbnNmb3JtJztlbHNle3ZhciB5PSdib3R0b20nPT1jPy0xOjEsdz0ncmlnaHQnPT1nPy0xOjE7bVtjXT1kKnksbVtnXT1zKncsbS53aWxsQ2hhbmdlPWMrJywgJytnfXZhciBFPXtcIngtcGxhY2VtZW50XCI6ZS5wbGFjZW1lbnR9O3JldHVybiBlLmF0dHJpYnV0ZXM9bGUoe30sRSxlLmF0dHJpYnV0ZXMpLGUuc3R5bGVzPWxlKHt9LG0sZS5zdHlsZXMpLGUuYXJyb3dTdHlsZXM9bGUoe30sZS5vZmZzZXRzLmFycm93LGUuYXJyb3dTdHlsZXMpLGV9LGdwdUFjY2VsZXJhdGlvbjohMCx4Oidib3R0b20nLHk6J3JpZ2h0J30sYXBwbHlTdHlsZTp7b3JkZXI6OTAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSl7cmV0dXJuIGooZS5pbnN0YW5jZS5wb3BwZXIsZS5zdHlsZXMpLEsoZS5pbnN0YW5jZS5wb3BwZXIsZS5hdHRyaWJ1dGVzKSxlLmFycm93RWxlbWVudCYmT2JqZWN0LmtleXMoZS5hcnJvd1N0eWxlcykubGVuZ3RoJiZqKGUuYXJyb3dFbGVtZW50LGUuYXJyb3dTdHlsZXMpLGV9LG9uTG9hZDpmdW5jdGlvbihlLHQsbyxuLGkpe3ZhciByPUwoaSx0LGUsby5wb3NpdGlvbkZpeGVkKSxwPU8oby5wbGFjZW1lbnQscix0LGUsby5tb2RpZmllcnMuZmxpcC5ib3VuZGFyaWVzRWxlbWVudCxvLm1vZGlmaWVycy5mbGlwLnBhZGRpbmcpO3JldHVybiB0LnNldEF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnLHApLGoodCx7cG9zaXRpb246by5wb3NpdGlvbkZpeGVkPydmaXhlZCc6J2Fic29sdXRlJ30pLG99LGdwdUFjY2VsZXJhdGlvbjp2b2lkIDB9fX0sY2V9KTtcclxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9wcGVyLm1pbi5qcy5tYXAiLCIvKiFcbiAgKiBCb290c3RyYXAgdjQuMS4wIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICAqIENvcHlyaWdodCAyMDExLTIwMTggVGhlIEJvb3RzdHJhcCBBdXRob3JzIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvZ3JhcGhzL2NvbnRyaWJ1dG9ycylcbiAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICAqL1xuIWZ1bmN0aW9uKHQsZSl7XCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBtb2R1bGU/ZShleHBvcnRzLHJlcXVpcmUoXCJqcXVlcnlcIikscmVxdWlyZShcInBvcHBlci5qc1wiKSk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXCJleHBvcnRzXCIsXCJqcXVlcnlcIixcInBvcHBlci5qc1wiXSxlKTplKHQuYm9vdHN0cmFwPXt9LHQualF1ZXJ5LHQuUG9wcGVyKX0odGhpcyxmdW5jdGlvbih0LGUsYyl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kuZW51bWVyYWJsZT1pLmVudW1lcmFibGV8fCExLGkuY29uZmlndXJhYmxlPSEwLFwidmFsdWVcImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLmtleSxpKX19ZnVuY3Rpb24gbyh0LGUsbil7cmV0dXJuIGUmJmkodC5wcm90b3R5cGUsZSksbiYmaSh0LG4pLHR9ZnVuY3Rpb24gaChyKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgcz1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9LGU9T2JqZWN0LmtleXMocyk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKGU9ZS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iocyx0KS5lbnVtZXJhYmxlfSkpKSxlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGUsbixpO2U9cixpPXNbbj10XSxuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6aSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09aX0pfXJldHVybiByfWU9ZSYmZS5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRcIik/ZS5kZWZhdWx0OmUsYz1jJiZjLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKT9jLmRlZmF1bHQ6Yzt2YXIgcixuLHMsYSxsLHUsZixkLF8sZyxtLHAsdixFLHksVCxDLEksQSxELGIsUyx3LE4sTyxrLFAsTCxqLFIsSCxXLE0seCxVLEssRixWLFEsQixZLEcscSx6LFgsSixaLCQsdHQsZXQsbnQsaXQscnQsc3Qsb3QsYXQsbHQsaHQsY3QsdXQsZnQsZHQsX3QsZ3QsbXQscHQsdnQsRXQseXQsVHQsQ3QsSXQsQXQsRHQsYnQsU3Qsd3QsTnQsT3Qsa3QsUHQsTHQsanQsUnQsSHQsV3QsTXQseHQsVXQsS3QsRnQsVnQsUXQsQnQsWXQsR3QscXQsenQsWHQsSnQsWnQsJHQsdGUsZWUsbmUsaWUscmUsc2Usb2UsYWUsbGUsaGUsY2UsdWUsZmUsZGUsX2UsZ2UsbWUscGUsdmUsRWUseWUsVGUsQ2UsSWUsQWUsRGUsYmUsU2Usd2UsTmUsT2Usa2UsUGUsTGUsamUsUmUsSGUsV2UsTWUseGUsVWUsS2UsRmUsVmUsUWUsQmUsWWUsR2UscWUsemUsWGUsSmUsWmUsJGUsdG4sZW4sbm4scm4sc24sb24sYW4sbG4saG4sY24sdW4sZm4sZG4sX24sZ24sbW4scG4sdm4sRW4seW4sVG4sQ249ZnVuY3Rpb24oaSl7dmFyIGU9XCJ0cmFuc2l0aW9uZW5kXCI7ZnVuY3Rpb24gdCh0KXt2YXIgZT10aGlzLG49ITE7cmV0dXJuIGkodGhpcykub25lKGwuVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXtuPSEwfSksc2V0VGltZW91dChmdW5jdGlvbigpe258fGwudHJpZ2dlclRyYW5zaXRpb25FbmQoZSl9LHQpLHRoaXN9dmFyIGw9e1RSQU5TSVRJT05fRU5EOlwiYnNUcmFuc2l0aW9uRW5kXCIsZ2V0VUlEOmZ1bmN0aW9uKHQpe2Zvcig7dCs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpOyk7cmV0dXJuIHR9LGdldFNlbGVjdG9yRnJvbUVsZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRhcmdldFwiKTtlJiZcIiNcIiE9PWV8fChlPXQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKXx8XCJcIik7dHJ5e3JldHVybiAwPGkoZG9jdW1lbnQpLmZpbmQoZSkubGVuZ3RoP2U6bnVsbH1jYXRjaCh0KXtyZXR1cm4gbnVsbH19LGdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50OmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiAwO3ZhciBlPWkodCkuY3NzKFwidHJhbnNpdGlvbi1kdXJhdGlvblwiKTtyZXR1cm4gcGFyc2VGbG9hdChlKT8oZT1lLnNwbGl0KFwiLFwiKVswXSwxZTMqcGFyc2VGbG9hdChlKSk6MH0scmVmbG93OmZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZnNldEhlaWdodH0sdHJpZ2dlclRyYW5zaXRpb25FbmQ6ZnVuY3Rpb24odCl7aSh0KS50cmlnZ2VyKGUpfSxzdXBwb3J0c1RyYW5zaXRpb25FbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbihlKX0saXNFbGVtZW50OmZ1bmN0aW9uKHQpe3JldHVybih0WzBdfHx0KS5ub2RlVHlwZX0sdHlwZUNoZWNrQ29uZmlnOmZ1bmN0aW9uKHQsZSxuKXtmb3IodmFyIGkgaW4gbilpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixpKSl7dmFyIHI9bltpXSxzPWVbaV0sbz1zJiZsLmlzRWxlbWVudChzKT9cImVsZW1lbnRcIjooYT1zLHt9LnRvU3RyaW5nLmNhbGwoYSkubWF0Y2goL1xccyhbYS16XSspL2kpWzFdLnRvTG93ZXJDYXNlKCkpO2lmKCFuZXcgUmVnRXhwKHIpLnRlc3QobykpdGhyb3cgbmV3IEVycm9yKHQudG9VcHBlckNhc2UoKSsnOiBPcHRpb24gXCInK2krJ1wiIHByb3ZpZGVkIHR5cGUgXCInK28rJ1wiIGJ1dCBleHBlY3RlZCB0eXBlIFwiJytyKydcIi4nKX12YXIgYX19O3JldHVybiBpLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kPXQsaS5ldmVudC5zcGVjaWFsW2wuVFJBTlNJVElPTl9FTkRdPXtiaW5kVHlwZTplLGRlbGVnYXRlVHlwZTplLGhhbmRsZTpmdW5jdGlvbih0KXtpZihpKHQudGFyZ2V0KS5pcyh0aGlzKSlyZXR1cm4gdC5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxsfShlKSxJbj0obj1cImFsZXJ0XCIsYT1cIi5cIisocz1cImJzLmFsZXJ0XCIpLGw9KHI9ZSkuZm5bbl0sdT17Q0xPU0U6XCJjbG9zZVwiK2EsQ0xPU0VEOlwiY2xvc2VkXCIrYSxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrYStcIi5kYXRhLWFwaVwifSxmPVwiYWxlcnRcIixkPVwiZmFkZVwiLF89XCJzaG93XCIsZz1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCl7dGhpcy5fZWxlbWVudD10fXZhciB0PWkucHJvdG90eXBlO3JldHVybiB0LmNsb3NlPWZ1bmN0aW9uKHQpe3Q9dHx8dGhpcy5fZWxlbWVudDt2YXIgZT10aGlzLl9nZXRSb290RWxlbWVudCh0KTt0aGlzLl90cmlnZ2VyQ2xvc2VFdmVudChlKS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8dGhpcy5fcmVtb3ZlRWxlbWVudChlKX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7ci5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQscyksdGhpcy5fZWxlbWVudD1udWxsfSx0Ll9nZXRSb290RWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpLG49ITE7cmV0dXJuIGUmJihuPXIoZSlbMF0pLG58fChuPXIodCkuY2xvc2VzdChcIi5cIitmKVswXSksbn0sdC5fdHJpZ2dlckNsb3NlRXZlbnQ9ZnVuY3Rpb24odCl7dmFyIGU9ci5FdmVudCh1LkNMT1NFKTtyZXR1cm4gcih0KS50cmlnZ2VyKGUpLGV9LHQuX3JlbW92ZUVsZW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZihyKGUpLnJlbW92ZUNsYXNzKF8pLHIoZSkuaGFzQ2xhc3MoZCkpe3ZhciB0PUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KGUpO3IoZSkub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKHQpe3JldHVybiBuLl9kZXN0cm95RWxlbWVudChlLHQpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQodCl9ZWxzZSB0aGlzLl9kZXN0cm95RWxlbWVudChlKX0sdC5fZGVzdHJveUVsZW1lbnQ9ZnVuY3Rpb24odCl7cih0KS5kZXRhY2goKS50cmlnZ2VyKHUuQ0xPU0VEKS5yZW1vdmUoKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1yKHRoaXMpLGU9dC5kYXRhKHMpO2V8fChlPW5ldyBpKHRoaXMpLHQuZGF0YShzLGUpKSxcImNsb3NlXCI9PT1uJiZlW25dKHRoaXMpfSl9LGkuX2hhbmRsZURpc21pc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3QmJnQucHJldmVudERlZmF1bHQoKSxlLmNsb3NlKHRoaXMpfX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX1dKSxpfSgpLHIoZG9jdW1lbnQpLm9uKHUuQ0xJQ0tfREFUQV9BUEksJ1tkYXRhLWRpc21pc3M9XCJhbGVydFwiXScsZy5faGFuZGxlRGlzbWlzcyhuZXcgZykpLHIuZm5bbl09Zy5falF1ZXJ5SW50ZXJmYWNlLHIuZm5bbl0uQ29uc3RydWN0b3I9ZyxyLmZuW25dLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gci5mbltuXT1sLGcuX2pRdWVyeUludGVyZmFjZX0sZyksQW49KHA9XCJidXR0b25cIixFPVwiLlwiKyh2PVwiYnMuYnV0dG9uXCIpLHk9XCIuZGF0YS1hcGlcIixUPShtPWUpLmZuW3BdLEM9XCJhY3RpdmVcIixJPVwiYnRuXCIsRD0nW2RhdGEtdG9nZ2xlXj1cImJ1dHRvblwiXScsYj0nW2RhdGEtdG9nZ2xlPVwiYnV0dG9uc1wiXScsUz1cImlucHV0XCIsdz1cIi5hY3RpdmVcIixOPVwiLmJ0blwiLE89e0NMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitFK3ksRk9DVVNfQkxVUl9EQVRBX0FQSTooQT1cImZvY3VzXCIpK0UreStcIiBibHVyXCIrRSt5fSxrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0KXt0aGlzLl9lbGVtZW50PXR9dmFyIHQ9bi5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIHQ9ITAsZT0hMCxuPW0odGhpcy5fZWxlbWVudCkuY2xvc2VzdChiKVswXTtpZihuKXt2YXIgaT1tKHRoaXMuX2VsZW1lbnQpLmZpbmQoUylbMF07aWYoaSl7aWYoXCJyYWRpb1wiPT09aS50eXBlKWlmKGkuY2hlY2tlZCYmbSh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhDKSl0PSExO2Vsc2V7dmFyIHI9bShuKS5maW5kKHcpWzBdO3ImJm0ocikucmVtb3ZlQ2xhc3MoQyl9aWYodCl7aWYoaS5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8bi5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8aS5jbGFzc0xpc3QuY29udGFpbnMoXCJkaXNhYmxlZFwiKXx8bi5jbGFzc0xpc3QuY29udGFpbnMoXCJkaXNhYmxlZFwiKSlyZXR1cm47aS5jaGVja2VkPSFtKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKEMpLG0oaSkudHJpZ2dlcihcImNoYW5nZVwiKX1pLmZvY3VzKCksZT0hMX19ZSYmdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXByZXNzZWRcIiwhbSh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhDKSksdCYmbSh0aGlzLl9lbGVtZW50KS50b2dnbGVDbGFzcyhDKX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7bS5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsdiksdGhpcy5fZWxlbWVudD1udWxsfSxuLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PW0odGhpcykuZGF0YSh2KTt0fHwodD1uZXcgbih0aGlzKSxtKHRoaXMpLmRhdGEodix0KSksXCJ0b2dnbGVcIj09PWUmJnRbZV0oKX0pfSxvKG4sbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fV0pLG59KCksbShkb2N1bWVudCkub24oTy5DTElDS19EQVRBX0FQSSxELGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgZT10LnRhcmdldDttKGUpLmhhc0NsYXNzKEkpfHwoZT1tKGUpLmNsb3Nlc3QoTikpLGsuX2pRdWVyeUludGVyZmFjZS5jYWxsKG0oZSksXCJ0b2dnbGVcIil9KS5vbihPLkZPQ1VTX0JMVVJfREFUQV9BUEksRCxmdW5jdGlvbih0KXt2YXIgZT1tKHQudGFyZ2V0KS5jbG9zZXN0KE4pWzBdO20oZSkudG9nZ2xlQ2xhc3MoQSwvXmZvY3VzKGluKT8kLy50ZXN0KHQudHlwZSkpfSksbS5mbltwXT1rLl9qUXVlcnlJbnRlcmZhY2UsbS5mbltwXS5Db25zdHJ1Y3Rvcj1rLG0uZm5bcF0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBtLmZuW3BdPVQsay5falF1ZXJ5SW50ZXJmYWNlfSxrKSxEbj0oTD1cImNhcm91c2VsXCIsUj1cIi5cIisoaj1cImJzLmNhcm91c2VsXCIpLEg9XCIuZGF0YS1hcGlcIixXPShQPWUpLmZuW0xdLE09e2ludGVydmFsOjVlMyxrZXlib2FyZDohMCxzbGlkZTohMSxwYXVzZTpcImhvdmVyXCIsd3JhcDohMH0seD17aW50ZXJ2YWw6XCIobnVtYmVyfGJvb2xlYW4pXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIsc2xpZGU6XCIoYm9vbGVhbnxzdHJpbmcpXCIscGF1c2U6XCIoc3RyaW5nfGJvb2xlYW4pXCIsd3JhcDpcImJvb2xlYW5cIn0sVT1cIm5leHRcIixLPVwicHJldlwiLEY9XCJsZWZ0XCIsVj1cInJpZ2h0XCIsUT17U0xJREU6XCJzbGlkZVwiK1IsU0xJRDpcInNsaWRcIitSLEtFWURPV046XCJrZXlkb3duXCIrUixNT1VTRUVOVEVSOlwibW91c2VlbnRlclwiK1IsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitSLFRPVUNIRU5EOlwidG91Y2hlbmRcIitSLExPQURfREFUQV9BUEk6XCJsb2FkXCIrUitILENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitSK0h9LEI9XCJjYXJvdXNlbFwiLFk9XCJhY3RpdmVcIixHPVwic2xpZGVcIixxPVwiY2Fyb3VzZWwtaXRlbS1yaWdodFwiLHo9XCJjYXJvdXNlbC1pdGVtLWxlZnRcIixYPVwiY2Fyb3VzZWwtaXRlbS1uZXh0XCIsSj1cImNhcm91c2VsLWl0ZW0tcHJldlwiLFo9e0FDVElWRTpcIi5hY3RpdmVcIixBQ1RJVkVfSVRFTTpcIi5hY3RpdmUuY2Fyb3VzZWwtaXRlbVwiLElURU06XCIuY2Fyb3VzZWwtaXRlbVwiLE5FWFRfUFJFVjpcIi5jYXJvdXNlbC1pdGVtLW5leHQsIC5jYXJvdXNlbC1pdGVtLXByZXZcIixJTkRJQ0FUT1JTOlwiLmNhcm91c2VsLWluZGljYXRvcnNcIixEQVRBX1NMSURFOlwiW2RhdGEtc2xpZGVdLCBbZGF0YS1zbGlkZS10b11cIixEQVRBX1JJREU6J1tkYXRhLXJpZGU9XCJjYXJvdXNlbFwiXSd9LCQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKHQsZSl7dGhpcy5faXRlbXM9bnVsbCx0aGlzLl9pbnRlcnZhbD1udWxsLHRoaXMuX2FjdGl2ZUVsZW1lbnQ9bnVsbCx0aGlzLl9pc1BhdXNlZD0hMSx0aGlzLl9pc1NsaWRpbmc9ITEsdGhpcy50b3VjaFRpbWVvdXQ9bnVsbCx0aGlzLl9jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMuX2VsZW1lbnQ9UCh0KVswXSx0aGlzLl9pbmRpY2F0b3JzRWxlbWVudD1QKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5JTkRJQ0FUT1JTKVswXSx0aGlzLl9hZGRFdmVudExpc3RlbmVycygpfXZhciB0PXMucHJvdG90eXBlO3JldHVybiB0Lm5leHQ9ZnVuY3Rpb24oKXt0aGlzLl9pc1NsaWRpbmd8fHRoaXMuX3NsaWRlKFUpfSx0Lm5leHRXaGVuVmlzaWJsZT1mdW5jdGlvbigpeyFkb2N1bWVudC5oaWRkZW4mJlAodGhpcy5fZWxlbWVudCkuaXMoXCI6dmlzaWJsZVwiKSYmXCJoaWRkZW5cIiE9PVAodGhpcy5fZWxlbWVudCkuY3NzKFwidmlzaWJpbGl0eVwiKSYmdGhpcy5uZXh0KCl9LHQucHJldj1mdW5jdGlvbigpe3RoaXMuX2lzU2xpZGluZ3x8dGhpcy5fc2xpZGUoSyl9LHQucGF1c2U9ZnVuY3Rpb24odCl7dHx8KHRoaXMuX2lzUGF1c2VkPSEwKSxQKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5ORVhUX1BSRVYpWzBdJiYoQ24udHJpZ2dlclRyYW5zaXRpb25FbmQodGhpcy5fZWxlbWVudCksdGhpcy5jeWNsZSghMCkpLGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpLHRoaXMuX2ludGVydmFsPW51bGx9LHQuY3ljbGU9ZnVuY3Rpb24odCl7dHx8KHRoaXMuX2lzUGF1c2VkPSExKSx0aGlzLl9pbnRlcnZhbCYmKGNsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpLHRoaXMuX2ludGVydmFsPW51bGwpLHRoaXMuX2NvbmZpZy5pbnRlcnZhbCYmIXRoaXMuX2lzUGF1c2VkJiYodGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT90aGlzLm5leHRXaGVuVmlzaWJsZTp0aGlzLm5leHQpLmJpbmQodGhpcyksdGhpcy5fY29uZmlnLmludGVydmFsKSl9LHQudG89ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9hY3RpdmVFbGVtZW50PVAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXTt2YXIgbj10aGlzLl9nZXRJdGVtSW5kZXgodGhpcy5fYWN0aXZlRWxlbWVudCk7aWYoISh0PnRoaXMuX2l0ZW1zLmxlbmd0aC0xfHx0PDApKWlmKHRoaXMuX2lzU2xpZGluZylQKHRoaXMuX2VsZW1lbnQpLm9uZShRLlNMSUQsZnVuY3Rpb24oKXtyZXR1cm4gZS50byh0KX0pO2Vsc2V7aWYobj09PXQpcmV0dXJuIHRoaXMucGF1c2UoKSx2b2lkIHRoaXMuY3ljbGUoKTt2YXIgaT1uPHQ/VTpLO3RoaXMuX3NsaWRlKGksdGhpcy5faXRlbXNbdF0pfX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7UCh0aGlzLl9lbGVtZW50KS5vZmYoUiksUC5yZW1vdmVEYXRhKHRoaXMuX2VsZW1lbnQsaiksdGhpcy5faXRlbXM9bnVsbCx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5faW50ZXJ2YWw9bnVsbCx0aGlzLl9pc1BhdXNlZD1udWxsLHRoaXMuX2lzU2xpZGluZz1udWxsLHRoaXMuX2FjdGl2ZUVsZW1lbnQ9bnVsbCx0aGlzLl9pbmRpY2F0b3JzRWxlbWVudD1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSxNLHQpLENuLnR5cGVDaGVja0NvbmZpZyhMLHQseCksdH0sdC5fYWRkRXZlbnRMaXN0ZW5lcnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2NvbmZpZy5rZXlib2FyZCYmUCh0aGlzLl9lbGVtZW50KS5vbihRLktFWURPV04sZnVuY3Rpb24odCl7cmV0dXJuIGUuX2tleWRvd24odCl9KSxcImhvdmVyXCI9PT10aGlzLl9jb25maWcucGF1c2UmJihQKHRoaXMuX2VsZW1lbnQpLm9uKFEuTU9VU0VFTlRFUixmdW5jdGlvbih0KXtyZXR1cm4gZS5wYXVzZSh0KX0pLm9uKFEuTU9VU0VMRUFWRSxmdW5jdGlvbih0KXtyZXR1cm4gZS5jeWNsZSh0KX0pLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJlAodGhpcy5fZWxlbWVudCkub24oUS5UT1VDSEVORCxmdW5jdGlvbigpe2UucGF1c2UoKSxlLnRvdWNoVGltZW91dCYmY2xlYXJUaW1lb3V0KGUudG91Y2hUaW1lb3V0KSxlLnRvdWNoVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKHQpe3JldHVybiBlLmN5Y2xlKHQpfSw1MDArZS5fY29uZmlnLmludGVydmFsKX0pKX0sdC5fa2V5ZG93bj1mdW5jdGlvbih0KXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdCh0LnRhcmdldC50YWdOYW1lKSlzd2l0Y2godC53aGljaCl7Y2FzZSAzNzp0LnByZXZlbnREZWZhdWx0KCksdGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0LnByZXZlbnREZWZhdWx0KCksdGhpcy5uZXh0KCl9fSx0Ll9nZXRJdGVtSW5kZXg9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2l0ZW1zPVAubWFrZUFycmF5KFAodCkucGFyZW50KCkuZmluZChaLklURU0pKSx0aGlzLl9pdGVtcy5pbmRleE9mKHQpfSx0Ll9nZXRJdGVtQnlEaXJlY3Rpb249ZnVuY3Rpb24odCxlKXt2YXIgbj10PT09VSxpPXQ9PT1LLHI9dGhpcy5fZ2V0SXRlbUluZGV4KGUpLHM9dGhpcy5faXRlbXMubGVuZ3RoLTE7aWYoKGkmJjA9PT1yfHxuJiZyPT09cykmJiF0aGlzLl9jb25maWcud3JhcClyZXR1cm4gZTt2YXIgbz0ocisodD09PUs/LTE6MSkpJXRoaXMuX2l0ZW1zLmxlbmd0aDtyZXR1cm4tMT09PW8/dGhpcy5faXRlbXNbdGhpcy5faXRlbXMubGVuZ3RoLTFdOnRoaXMuX2l0ZW1zW29dfSx0Ll90cmlnZ2VyU2xpZGVFdmVudD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2dldEl0ZW1JbmRleCh0KSxpPXRoaXMuX2dldEl0ZW1JbmRleChQKHRoaXMuX2VsZW1lbnQpLmZpbmQoWi5BQ1RJVkVfSVRFTSlbMF0pLHI9UC5FdmVudChRLlNMSURFLHtyZWxhdGVkVGFyZ2V0OnQsZGlyZWN0aW9uOmUsZnJvbTppLHRvOm59KTtyZXR1cm4gUCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKHIpLHJ9LHQuX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQ9ZnVuY3Rpb24odCl7aWYodGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpe1AodGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpLmZpbmQoWi5BQ1RJVkUpLnJlbW92ZUNsYXNzKFkpO3ZhciBlPXRoaXMuX2luZGljYXRvcnNFbGVtZW50LmNoaWxkcmVuW3RoaXMuX2dldEl0ZW1JbmRleCh0KV07ZSYmUChlKS5hZGRDbGFzcyhZKX19LHQuX3NsaWRlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxyLHM9dGhpcyxvPVAodGhpcy5fZWxlbWVudCkuZmluZChaLkFDVElWRV9JVEVNKVswXSxhPXRoaXMuX2dldEl0ZW1JbmRleChvKSxsPWV8fG8mJnRoaXMuX2dldEl0ZW1CeURpcmVjdGlvbih0LG8pLGg9dGhpcy5fZ2V0SXRlbUluZGV4KGwpLGM9Qm9vbGVhbih0aGlzLl9pbnRlcnZhbCk7aWYodD09PVU/KG49eixpPVgscj1GKToobj1xLGk9SixyPVYpLGwmJlAobCkuaGFzQ2xhc3MoWSkpdGhpcy5faXNTbGlkaW5nPSExO2Vsc2UgaWYoIXRoaXMuX3RyaWdnZXJTbGlkZUV2ZW50KGwscikuaXNEZWZhdWx0UHJldmVudGVkKCkmJm8mJmwpe3RoaXMuX2lzU2xpZGluZz0hMCxjJiZ0aGlzLnBhdXNlKCksdGhpcy5fc2V0QWN0aXZlSW5kaWNhdG9yRWxlbWVudChsKTt2YXIgdT1QLkV2ZW50KFEuU0xJRCx7cmVsYXRlZFRhcmdldDpsLGRpcmVjdGlvbjpyLGZyb206YSx0bzpofSk7aWYoUCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhHKSl7UChsKS5hZGRDbGFzcyhpKSxDbi5yZWZsb3cobCksUChvKS5hZGRDbGFzcyhuKSxQKGwpLmFkZENsYXNzKG4pO3ZhciBmPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KG8pO1Aobykub25lKENuLlRSQU5TSVRJT05fRU5ELGZ1bmN0aW9uKCl7UChsKS5yZW1vdmVDbGFzcyhuK1wiIFwiK2kpLmFkZENsYXNzKFkpLFAobykucmVtb3ZlQ2xhc3MoWStcIiBcIitpK1wiIFwiK24pLHMuX2lzU2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIFAocy5fZWxlbWVudCkudHJpZ2dlcih1KX0sMCl9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChmKX1lbHNlIFAobykucmVtb3ZlQ2xhc3MoWSksUChsKS5hZGRDbGFzcyhZKSx0aGlzLl9pc1NsaWRpbmc9ITEsUCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKHUpO2MmJnRoaXMuY3ljbGUoKX19LHMuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9UCh0aGlzKS5kYXRhKGopLGU9aCh7fSxNLFAodGhpcykuZGF0YSgpKTtcIm9iamVjdFwiPT10eXBlb2YgaSYmKGU9aCh7fSxlLGkpKTt2YXIgbj1cInN0cmluZ1wiPT10eXBlb2YgaT9pOmUuc2xpZGU7aWYodHx8KHQ9bmV3IHModGhpcyxlKSxQKHRoaXMpLmRhdGEoaix0KSksXCJudW1iZXJcIj09dHlwZW9mIGkpdC50byhpKTtlbHNlIGlmKFwic3RyaW5nXCI9PXR5cGVvZiBuKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtuXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK24rJ1wiJyk7dFtuXSgpfWVsc2UgZS5pbnRlcnZhbCYmKHQucGF1c2UoKSx0LmN5Y2xlKCkpfSl9LHMuX2RhdGFBcGlDbGlja0hhbmRsZXI9ZnVuY3Rpb24odCl7dmFyIGU9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTtpZihlKXt2YXIgbj1QKGUpWzBdO2lmKG4mJlAobikuaGFzQ2xhc3MoQikpe3ZhciBpPWgoe30sUChuKS5kYXRhKCksUCh0aGlzKS5kYXRhKCkpLHI9dGhpcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXNsaWRlLXRvXCIpO3ImJihpLmludGVydmFsPSExKSxzLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChQKG4pLGkpLHImJlAobikuZGF0YShqKS50byhyKSx0LnByZXZlbnREZWZhdWx0KCl9fX0sbyhzLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTX19XSksc30oKSxQKGRvY3VtZW50KS5vbihRLkNMSUNLX0RBVEFfQVBJLFouREFUQV9TTElERSwkLl9kYXRhQXBpQ2xpY2tIYW5kbGVyKSxQKHdpbmRvdykub24oUS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7UChaLkRBVEFfUklERSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PVAodGhpcyk7JC5falF1ZXJ5SW50ZXJmYWNlLmNhbGwodCx0LmRhdGEoKSl9KX0pLFAuZm5bTF09JC5falF1ZXJ5SW50ZXJmYWNlLFAuZm5bTF0uQ29uc3RydWN0b3I9JCxQLmZuW0xdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gUC5mbltMXT1XLCQuX2pRdWVyeUludGVyZmFjZX0sJCksYm49KGV0PVwiY29sbGFwc2VcIixpdD1cIi5cIisobnQ9XCJicy5jb2xsYXBzZVwiKSxydD0odHQ9ZSkuZm5bZXRdLHN0PXt0b2dnbGU6ITAscGFyZW50OlwiXCJ9LG90PXt0b2dnbGU6XCJib29sZWFuXCIscGFyZW50OlwiKHN0cmluZ3xlbGVtZW50KVwifSxhdD17U0hPVzpcInNob3dcIitpdCxTSE9XTjpcInNob3duXCIraXQsSElERTpcImhpZGVcIitpdCxISURERU46XCJoaWRkZW5cIitpdCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIraXQrXCIuZGF0YS1hcGlcIn0sbHQ9XCJzaG93XCIsaHQ9XCJjb2xsYXBzZVwiLGN0PVwiY29sbGFwc2luZ1wiLHV0PVwiY29sbGFwc2VkXCIsZnQ9XCJ3aWR0aFwiLGR0PVwiaGVpZ2h0XCIsX3Q9e0FDVElWRVM6XCIuc2hvdywgLmNvbGxhcHNpbmdcIixEQVRBX1RPR0dMRTonW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl0nfSxndD1mdW5jdGlvbigpe2Z1bmN0aW9uIGEodCxlKXt0aGlzLl9pc1RyYW5zaXRpb25pbmc9ITEsdGhpcy5fZWxlbWVudD10LHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fdHJpZ2dlckFycmF5PXR0Lm1ha2VBcnJheSh0dCgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnK3QuaWQrJ1wiXSxbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXRhcmdldD1cIiMnK3QuaWQrJ1wiXScpKTtmb3IodmFyIG49dHQoX3QuREFUQV9UT0dHTEUpLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIHI9bltpXSxzPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQocik7bnVsbCE9PXMmJjA8dHQocykuZmlsdGVyKHQpLmxlbmd0aCYmKHRoaXMuX3NlbGVjdG9yPXMsdGhpcy5fdHJpZ2dlckFycmF5LnB1c2gocikpfXRoaXMuX3BhcmVudD10aGlzLl9jb25maWcucGFyZW50P3RoaXMuX2dldFBhcmVudCgpOm51bGwsdGhpcy5fY29uZmlnLnBhcmVudHx8dGhpcy5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuX2VsZW1lbnQsdGhpcy5fdHJpZ2dlckFycmF5KSx0aGlzLl9jb25maWcudG9nZ2xlJiZ0aGlzLnRvZ2dsZSgpfXZhciB0PWEucHJvdG90eXBlO3JldHVybiB0LnRvZ2dsZT1mdW5jdGlvbigpe3R0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KT90aGlzLmhpZGUoKTp0aGlzLnNob3coKX0sdC5zaG93PWZ1bmN0aW9uKCl7dmFyIHQsZSxuPXRoaXM7aWYoIXRoaXMuX2lzVHJhbnNpdGlvbmluZyYmIXR0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGx0KSYmKHRoaXMuX3BhcmVudCYmMD09PSh0PXR0Lm1ha2VBcnJheSh0dCh0aGlzLl9wYXJlbnQpLmZpbmQoX3QuQUNUSVZFUykuZmlsdGVyKCdbZGF0YS1wYXJlbnQ9XCInK3RoaXMuX2NvbmZpZy5wYXJlbnQrJ1wiXScpKSkubGVuZ3RoJiYodD1udWxsKSwhKHQmJihlPXR0KHQpLm5vdCh0aGlzLl9zZWxlY3RvcikuZGF0YShudCkpJiZlLl9pc1RyYW5zaXRpb25pbmcpKSl7dmFyIGk9dHQuRXZlbnQoYXQuU0hPVyk7aWYodHQodGhpcy5fZWxlbWVudCkudHJpZ2dlcihpKSwhaS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dCYmKGEuX2pRdWVyeUludGVyZmFjZS5jYWxsKHR0KHQpLm5vdCh0aGlzLl9zZWxlY3RvciksXCJoaWRlXCIpLGV8fHR0KHQpLmRhdGEobnQsbnVsbCkpO3ZhciByPXRoaXMuX2dldERpbWVuc2lvbigpO3R0KHRoaXMuX2VsZW1lbnQpLnJlbW92ZUNsYXNzKGh0KS5hZGRDbGFzcyhjdCksKHRoaXMuX2VsZW1lbnQuc3R5bGVbcl09MCk8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aCYmdHQodGhpcy5fdHJpZ2dlckFycmF5KS5yZW1vdmVDbGFzcyh1dCkuYXR0cihcImFyaWEtZXhwYW5kZWRcIiwhMCksdGhpcy5zZXRUcmFuc2l0aW9uaW5nKCEwKTt2YXIgcz1cInNjcm9sbFwiKyhyWzBdLnRvVXBwZXJDYXNlKCkrci5zbGljZSgxKSksbz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTt0dCh0aGlzLl9lbGVtZW50KS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24oKXt0dChuLl9lbGVtZW50KS5yZW1vdmVDbGFzcyhjdCkuYWRkQ2xhc3MoaHQpLmFkZENsYXNzKGx0KSxuLl9lbGVtZW50LnN0eWxlW3JdPVwiXCIsbi5zZXRUcmFuc2l0aW9uaW5nKCExKSx0dChuLl9lbGVtZW50KS50cmlnZ2VyKGF0LlNIT1dOKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKG8pLHRoaXMuX2VsZW1lbnQuc3R5bGVbcl09dGhpcy5fZWxlbWVudFtzXStcInB4XCJ9fX0sdC5oaWRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiZ0dCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhsdCkpe3ZhciBlPXR0LkV2ZW50KGF0LkhJREUpO2lmKHR0KHRoaXMuX2VsZW1lbnQpLnRyaWdnZXIoZSksIWUuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBuPXRoaXMuX2dldERpbWVuc2lvbigpO2lmKHRoaXMuX2VsZW1lbnQuc3R5bGVbbl09dGhpcy5fZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtuXStcInB4XCIsQ24ucmVmbG93KHRoaXMuX2VsZW1lbnQpLHR0KHRoaXMuX2VsZW1lbnQpLmFkZENsYXNzKGN0KS5yZW1vdmVDbGFzcyhodCkucmVtb3ZlQ2xhc3MobHQpLDA8dGhpcy5fdHJpZ2dlckFycmF5Lmxlbmd0aClmb3IodmFyIGk9MDtpPHRoaXMuX3RyaWdnZXJBcnJheS5sZW5ndGg7aSsrKXt2YXIgcj10aGlzLl90cmlnZ2VyQXJyYXlbaV0scz1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHIpO2lmKG51bGwhPT1zKXR0KHMpLmhhc0NsYXNzKGx0KXx8dHQocikuYWRkQ2xhc3ModXQpLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsITEpfXRoaXMuc2V0VHJhbnNpdGlvbmluZyghMCk7dGhpcy5fZWxlbWVudC5zdHlsZVtuXT1cIlwiO3ZhciBvPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3R0KHRoaXMuX2VsZW1lbnQpLm9uZShDbi5UUkFOU0lUSU9OX0VORCxmdW5jdGlvbigpe3Quc2V0VHJhbnNpdGlvbmluZyghMSksdHQodC5fZWxlbWVudCkucmVtb3ZlQ2xhc3MoY3QpLmFkZENsYXNzKGh0KS50cmlnZ2VyKGF0LkhJRERFTil9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChvKX19fSx0LnNldFRyYW5zaXRpb25pbmc9ZnVuY3Rpb24odCl7dGhpcy5faXNUcmFuc2l0aW9uaW5nPXR9LHQuZGlzcG9zZT1mdW5jdGlvbigpe3R0LnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxudCksdGhpcy5fY29uZmlnPW51bGwsdGhpcy5fcGFyZW50PW51bGwsdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuX3RyaWdnZXJBcnJheT1udWxsLHRoaXMuX2lzVHJhbnNpdGlvbmluZz1udWxsfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9aCh7fSxzdCx0KSkudG9nZ2xlPUJvb2xlYW4odC50b2dnbGUpLENuLnR5cGVDaGVja0NvbmZpZyhldCx0LG90KSx0fSx0Ll9nZXREaW1lbnNpb249ZnVuY3Rpb24oKXtyZXR1cm4gdHQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MoZnQpP2Z0OmR0fSx0Ll9nZXRQYXJlbnQ9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLHQ9bnVsbDtDbi5pc0VsZW1lbnQodGhpcy5fY29uZmlnLnBhcmVudCk/KHQ9dGhpcy5fY29uZmlnLnBhcmVudCxcInVuZGVmaW5lZFwiIT10eXBlb2YgdGhpcy5fY29uZmlnLnBhcmVudC5qcXVlcnkmJih0PXRoaXMuX2NvbmZpZy5wYXJlbnRbMF0pKTp0PXR0KHRoaXMuX2NvbmZpZy5wYXJlbnQpWzBdO3ZhciBlPSdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXBhcmVudD1cIicrdGhpcy5fY29uZmlnLnBhcmVudCsnXCJdJztyZXR1cm4gdHQodCkuZmluZChlKS5lYWNoKGZ1bmN0aW9uKHQsZSl7bi5fYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGEuX2dldFRhcmdldEZyb21FbGVtZW50KGUpLFtlXSl9KSx0fSx0Ll9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3M9ZnVuY3Rpb24odCxlKXtpZih0KXt2YXIgbj10dCh0KS5oYXNDbGFzcyhsdCk7MDxlLmxlbmd0aCYmdHQoZSkudG9nZ2xlQ2xhc3ModXQsIW4pLmF0dHIoXCJhcmlhLWV4cGFuZGVkXCIsbil9fSxhLl9nZXRUYXJnZXRGcm9tRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO3JldHVybiBlP3R0KGUpWzBdOm51bGx9LGEuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihpKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9dHQodGhpcyksZT10LmRhdGEobnQpLG49aCh7fSxzdCx0LmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgaSYmaSk7aWYoIWUmJm4udG9nZ2xlJiYvc2hvd3xoaWRlLy50ZXN0KGkpJiYobi50b2dnbGU9ITEpLGV8fChlPW5ldyBhKHRoaXMsbiksdC5kYXRhKG50LGUpKSxcInN0cmluZ1wiPT10eXBlb2YgaSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGVbaV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytpKydcIicpO2VbaV0oKX19KX0sbyhhLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc3R9fV0pLGF9KCksdHQoZG9jdW1lbnQpLm9uKGF0LkNMSUNLX0RBVEFfQVBJLF90LkRBVEFfVE9HR0xFLGZ1bmN0aW9uKHQpe1wiQVwiPT09dC5jdXJyZW50VGFyZ2V0LnRhZ05hbWUmJnQucHJldmVudERlZmF1bHQoKTt2YXIgbj10dCh0aGlzKSxlPUNuLmdldFNlbGVjdG9yRnJvbUVsZW1lbnQodGhpcyk7dHQoZSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PXR0KHRoaXMpLGU9dC5kYXRhKG50KT9cInRvZ2dsZVwiOm4uZGF0YSgpO2d0Ll9qUXVlcnlJbnRlcmZhY2UuY2FsbCh0LGUpfSl9KSx0dC5mbltldF09Z3QuX2pRdWVyeUludGVyZmFjZSx0dC5mbltldF0uQ29uc3RydWN0b3I9Z3QsdHQuZm5bZXRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdHQuZm5bZXRdPXJ0LGd0Ll9qUXVlcnlJbnRlcmZhY2V9LGd0KSxTbj0ocHQ9XCJkcm9wZG93blwiLEV0PVwiLlwiKyh2dD1cImJzLmRyb3Bkb3duXCIpLHl0PVwiLmRhdGEtYXBpXCIsVHQ9KG10PWUpLmZuW3B0XSxDdD1uZXcgUmVnRXhwKFwiMzh8NDB8MjdcIiksSXQ9e0hJREU6XCJoaWRlXCIrRXQsSElEREVOOlwiaGlkZGVuXCIrRXQsU0hPVzpcInNob3dcIitFdCxTSE9XTjpcInNob3duXCIrRXQsQ0xJQ0s6XCJjbGlja1wiK0V0LENMSUNLX0RBVEFfQVBJOlwiY2xpY2tcIitFdCt5dCxLRVlET1dOX0RBVEFfQVBJOlwia2V5ZG93blwiK0V0K3l0LEtFWVVQX0RBVEFfQVBJOlwia2V5dXBcIitFdCt5dH0sQXQ9XCJkaXNhYmxlZFwiLER0PVwic2hvd1wiLGJ0PVwiZHJvcHVwXCIsU3Q9XCJkcm9wcmlnaHRcIix3dD1cImRyb3BsZWZ0XCIsTnQ9XCJkcm9wZG93bi1tZW51LXJpZ2h0XCIsT3Q9XCJwb3NpdGlvbi1zdGF0aWNcIixrdD0nW2RhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIl0nLFB0PVwiLmRyb3Bkb3duIGZvcm1cIixMdD1cIi5kcm9wZG93bi1tZW51XCIsanQ9XCIubmF2YmFyLW5hdlwiLFJ0PVwiLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06bm90KC5kaXNhYmxlZCk6bm90KDpkaXNhYmxlZClcIixIdD1cInRvcC1zdGFydFwiLFd0PVwidG9wLWVuZFwiLE10PVwiYm90dG9tLXN0YXJ0XCIseHQ9XCJib3R0b20tZW5kXCIsVXQ9XCJyaWdodC1zdGFydFwiLEt0PVwibGVmdC1zdGFydFwiLEZ0PXtvZmZzZXQ6MCxmbGlwOiEwLGJvdW5kYXJ5Olwic2Nyb2xsUGFyZW50XCIscmVmZXJlbmNlOlwidG9nZ2xlXCIsZGlzcGxheTpcImR5bmFtaWNcIn0sVnQ9e29mZnNldDpcIihudW1iZXJ8c3RyaW5nfGZ1bmN0aW9uKVwiLGZsaXA6XCJib29sZWFuXCIsYm91bmRhcnk6XCIoc3RyaW5nfGVsZW1lbnQpXCIscmVmZXJlbmNlOlwiKHN0cmluZ3xlbGVtZW50KVwiLGRpc3BsYXk6XCJzdHJpbmdcIn0sUXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBsKHQsZSl7dGhpcy5fZWxlbWVudD10LHRoaXMuX3BvcHBlcj1udWxsLHRoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fbWVudT10aGlzLl9nZXRNZW51RWxlbWVudCgpLHRoaXMuX2luTmF2YmFyPXRoaXMuX2RldGVjdE5hdmJhcigpLHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCl9dmFyIHQ9bC5wcm90b3R5cGU7cmV0dXJuIHQudG9nZ2xlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2VsZW1lbnQuZGlzYWJsZWQmJiFtdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhBdCkpe3ZhciB0PWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpLGU9bXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoRHQpO2lmKGwuX2NsZWFyTWVudXMoKSwhZSl7dmFyIG49e3JlbGF0ZWRUYXJnZXQ6dGhpcy5fZWxlbWVudH0saT1tdC5FdmVudChJdC5TSE9XLG4pO2lmKG10KHQpLnRyaWdnZXIoaSksIWkuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKCF0aGlzLl9pbk5hdmJhcil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGMpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCBkcm9wZG93biByZXF1aXJlIFBvcHBlci5qcyAoaHR0cHM6Ly9wb3BwZXIuanMub3JnKVwiKTt2YXIgcj10aGlzLl9lbGVtZW50O1wicGFyZW50XCI9PT10aGlzLl9jb25maWcucmVmZXJlbmNlP3I9dDpDbi5pc0VsZW1lbnQodGhpcy5fY29uZmlnLnJlZmVyZW5jZSkmJihyPXRoaXMuX2NvbmZpZy5yZWZlcmVuY2UsXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UuanF1ZXJ5JiYocj10aGlzLl9jb25maWcucmVmZXJlbmNlWzBdKSksXCJzY3JvbGxQYXJlbnRcIiE9PXRoaXMuX2NvbmZpZy5ib3VuZGFyeSYmbXQodCkuYWRkQ2xhc3MoT3QpLHRoaXMuX3BvcHBlcj1uZXcgYyhyLHRoaXMuX21lbnUsdGhpcy5fZ2V0UG9wcGVyQ29uZmlnKCkpfVwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJjA9PT1tdCh0KS5jbG9zZXN0KGp0KS5sZW5ndGgmJm10KGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub24oXCJtb3VzZW92ZXJcIixudWxsLG10Lm5vb3ApLHRoaXMuX2VsZW1lbnQuZm9jdXMoKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIiwhMCksbXQodGhpcy5fbWVudSkudG9nZ2xlQ2xhc3MoRHQpLG10KHQpLnRvZ2dsZUNsYXNzKER0KS50cmlnZ2VyKG10LkV2ZW50KEl0LlNIT1dOLG4pKX19fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7bXQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LHZ0KSxtdCh0aGlzLl9lbGVtZW50KS5vZmYoRXQpLHRoaXMuX2VsZW1lbnQ9bnVsbCwodGhpcy5fbWVudT1udWxsKSE9PXRoaXMuX3BvcHBlciYmKHRoaXMuX3BvcHBlci5kZXN0cm95KCksdGhpcy5fcG9wcGVyPW51bGwpfSx0LnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuX2luTmF2YmFyPXRoaXMuX2RldGVjdE5hdmJhcigpLG51bGwhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5zY2hlZHVsZVVwZGF0ZSgpfSx0Ll9hZGRFdmVudExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7bXQodGhpcy5fZWxlbWVudCkub24oSXQuQ0xJQ0ssZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksZS50b2dnbGUoKX0pfSx0Ll9nZXRDb25maWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9aCh7fSx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsbXQodGhpcy5fZWxlbWVudCkuZGF0YSgpLHQpLENuLnR5cGVDaGVja0NvbmZpZyhwdCx0LHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpLHR9LHQuX2dldE1lbnVFbGVtZW50PWZ1bmN0aW9uKCl7aWYoIXRoaXMuX21lbnUpe3ZhciB0PWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMuX2VsZW1lbnQpO3RoaXMuX21lbnU9bXQodCkuZmluZChMdClbMF19cmV0dXJuIHRoaXMuX21lbnV9LHQuX2dldFBsYWNlbWVudD1mdW5jdGlvbigpe3ZhciB0PW10KHRoaXMuX2VsZW1lbnQpLnBhcmVudCgpLGU9TXQ7cmV0dXJuIHQuaGFzQ2xhc3MoYnQpPyhlPUh0LG10KHRoaXMuX21lbnUpLmhhc0NsYXNzKE50KSYmKGU9V3QpKTp0Lmhhc0NsYXNzKFN0KT9lPVV0OnQuaGFzQ2xhc3Mod3QpP2U9S3Q6bXQodGhpcy5fbWVudSkuaGFzQ2xhc3MoTnQpJiYoZT14dCksZX0sdC5fZGV0ZWN0TmF2YmFyPWZ1bmN0aW9uKCl7cmV0dXJuIDA8bXQodGhpcy5fZWxlbWVudCkuY2xvc2VzdChcIi5uYXZiYXJcIikubGVuZ3RofSx0Ll9nZXRQb3BwZXJDb25maWc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9e307XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5fY29uZmlnLm9mZnNldD90LmZuPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm9mZnNldHM9aCh7fSx0Lm9mZnNldHMsZS5fY29uZmlnLm9mZnNldCh0Lm9mZnNldHMpfHx7fSksdH06dC5vZmZzZXQ9dGhpcy5fY29uZmlnLm9mZnNldDt2YXIgbj17cGxhY2VtZW50OnRoaXMuX2dldFBsYWNlbWVudCgpLG1vZGlmaWVyczp7b2Zmc2V0OnQsZmxpcDp7ZW5hYmxlZDp0aGlzLl9jb25maWcuZmxpcH0scHJldmVudE92ZXJmbG93Ontib3VuZGFyaWVzRWxlbWVudDp0aGlzLl9jb25maWcuYm91bmRhcnl9fX07cmV0dXJuXCJzdGF0aWNcIj09PXRoaXMuX2NvbmZpZy5kaXNwbGF5JiYobi5tb2RpZmllcnMuYXBwbHlTdHlsZT17ZW5hYmxlZDohMX0pLG59LGwuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bXQodGhpcykuZGF0YSh2dCk7aWYodHx8KHQ9bmV3IGwodGhpcyxcIm9iamVjdFwiPT10eXBlb2YgZT9lOm51bGwpLG10KHRoaXMpLmRhdGEodnQsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgdFtlXSl0aHJvdyBuZXcgVHlwZUVycm9yKCdObyBtZXRob2QgbmFtZWQgXCInK2UrJ1wiJyk7dFtlXSgpfX0pfSxsLl9jbGVhck1lbnVzPWZ1bmN0aW9uKHQpe2lmKCF0fHwzIT09dC53aGljaCYmKFwia2V5dXBcIiE9PXQudHlwZXx8OT09PXQud2hpY2gpKWZvcih2YXIgZT1tdC5tYWtlQXJyYXkobXQoa3QpKSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWwuX2dldFBhcmVudEZyb21FbGVtZW50KGVbbl0pLHI9bXQoZVtuXSkuZGF0YSh2dCkscz17cmVsYXRlZFRhcmdldDplW25dfTtpZihyKXt2YXIgbz1yLl9tZW51O2lmKG10KGkpLmhhc0NsYXNzKER0KSYmISh0JiYoXCJjbGlja1wiPT09dC50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KHQudGFyZ2V0LnRhZ05hbWUpfHxcImtleXVwXCI9PT10LnR5cGUmJjk9PT10LndoaWNoKSYmbXQuY29udGFpbnMoaSx0LnRhcmdldCkpKXt2YXIgYT1tdC5FdmVudChJdC5ISURFLHMpO210KGkpLnRyaWdnZXIoYSksYS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJm10KGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub2ZmKFwibW91c2VvdmVyXCIsbnVsbCxtdC5ub29wKSxlW25dLnNldEF0dHJpYnV0ZShcImFyaWEtZXhwYW5kZWRcIixcImZhbHNlXCIpLG10KG8pLnJlbW92ZUNsYXNzKER0KSxtdChpKS5yZW1vdmVDbGFzcyhEdCkudHJpZ2dlcihtdC5FdmVudChJdC5ISURERU4scykpKX19fX0sbC5fZ2V0UGFyZW50RnJvbUVsZW1lbnQ9ZnVuY3Rpb24odCl7dmFyIGUsbj1Dbi5nZXRTZWxlY3RvckZyb21FbGVtZW50KHQpO3JldHVybiBuJiYoZT1tdChuKVswXSksZXx8dC5wYXJlbnROb2RlfSxsLl9kYXRhQXBpS2V5ZG93bkhhbmRsZXI9ZnVuY3Rpb24odCl7aWYoKC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QodC50YXJnZXQudGFnTmFtZSk/ISgzMj09PXQud2hpY2h8fDI3IT09dC53aGljaCYmKDQwIT09dC53aGljaCYmMzghPT10LndoaWNofHxtdCh0LnRhcmdldCkuY2xvc2VzdChMdCkubGVuZ3RoKSk6Q3QudGVzdCh0LndoaWNoKSkmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSwhdGhpcy5kaXNhYmxlZCYmIW10KHRoaXMpLmhhc0NsYXNzKEF0KSkpe3ZhciBlPWwuX2dldFBhcmVudEZyb21FbGVtZW50KHRoaXMpLG49bXQoZSkuaGFzQ2xhc3MoRHQpO2lmKChufHwyNz09PXQud2hpY2gmJjMyPT09dC53aGljaCkmJighbnx8MjchPT10LndoaWNoJiYzMiE9PXQud2hpY2gpKXt2YXIgaT1tdChlKS5maW5kKFJ0KS5nZXQoKTtpZigwIT09aS5sZW5ndGgpe3ZhciByPWkuaW5kZXhPZih0LnRhcmdldCk7Mzg9PT10LndoaWNoJiYwPHImJnItLSw0MD09PXQud2hpY2gmJnI8aS5sZW5ndGgtMSYmcisrLHI8MCYmKHI9MCksaVtyXS5mb2N1cygpfX1lbHNle2lmKDI3PT09dC53aGljaCl7dmFyIHM9bXQoZSkuZmluZChrdClbMF07bXQocykudHJpZ2dlcihcImZvY3VzXCIpfW10KHRoaXMpLnRyaWdnZXIoXCJjbGlja1wiKX19fSxvKGwsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBGdH19LHtrZXk6XCJEZWZhdWx0VHlwZVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBWdH19XSksbH0oKSxtdChkb2N1bWVudCkub24oSXQuS0VZRE9XTl9EQVRBX0FQSSxrdCxRdC5fZGF0YUFwaUtleWRvd25IYW5kbGVyKS5vbihJdC5LRVlET1dOX0RBVEFfQVBJLEx0LFF0Ll9kYXRhQXBpS2V5ZG93bkhhbmRsZXIpLm9uKEl0LkNMSUNLX0RBVEFfQVBJK1wiIFwiK0l0LktFWVVQX0RBVEFfQVBJLFF0Ll9jbGVhck1lbnVzKS5vbihJdC5DTElDS19EQVRBX0FQSSxrdCxmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxRdC5falF1ZXJ5SW50ZXJmYWNlLmNhbGwobXQodGhpcyksXCJ0b2dnbGVcIil9KS5vbihJdC5DTElDS19EQVRBX0FQSSxQdCxmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpfSksbXQuZm5bcHRdPVF0Ll9qUXVlcnlJbnRlcmZhY2UsbXQuZm5bcHRdLkNvbnN0cnVjdG9yPVF0LG10LmZuW3B0XS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG10LmZuW3B0XT1UdCxRdC5falF1ZXJ5SW50ZXJmYWNlfSxRdCksd249KFl0PVwibW9kYWxcIixxdD1cIi5cIisoR3Q9XCJicy5tb2RhbFwiKSx6dD0oQnQ9ZSkuZm5bWXRdLFh0PXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxmb2N1czohMCxzaG93OiEwfSxKdD17YmFja2Ryb3A6XCIoYm9vbGVhbnxzdHJpbmcpXCIsa2V5Ym9hcmQ6XCJib29sZWFuXCIsZm9jdXM6XCJib29sZWFuXCIsc2hvdzpcImJvb2xlYW5cIn0sWnQ9e0hJREU6XCJoaWRlXCIrcXQsSElEREVOOlwiaGlkZGVuXCIrcXQsU0hPVzpcInNob3dcIitxdCxTSE9XTjpcInNob3duXCIrcXQsRk9DVVNJTjpcImZvY3VzaW5cIitxdCxSRVNJWkU6XCJyZXNpemVcIitxdCxDTElDS19ESVNNSVNTOlwiY2xpY2suZGlzbWlzc1wiK3F0LEtFWURPV05fRElTTUlTUzpcImtleWRvd24uZGlzbWlzc1wiK3F0LE1PVVNFVVBfRElTTUlTUzpcIm1vdXNldXAuZGlzbWlzc1wiK3F0LE1PVVNFRE9XTl9ESVNNSVNTOlwibW91c2Vkb3duLmRpc21pc3NcIitxdCxDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrcXQrXCIuZGF0YS1hcGlcIn0sJHQ9XCJtb2RhbC1zY3JvbGxiYXItbWVhc3VyZVwiLHRlPVwibW9kYWwtYmFja2Ryb3BcIixlZT1cIm1vZGFsLW9wZW5cIixuZT1cImZhZGVcIixpZT1cInNob3dcIixyZT17RElBTE9HOlwiLm1vZGFsLWRpYWxvZ1wiLERBVEFfVE9HR0xFOidbZGF0YS10b2dnbGU9XCJtb2RhbFwiXScsREFUQV9ESVNNSVNTOidbZGF0YS1kaXNtaXNzPVwibW9kYWxcIl0nLEZJWEVEX0NPTlRFTlQ6XCIuZml4ZWQtdG9wLCAuZml4ZWQtYm90dG9tLCAuaXMtZml4ZWQsIC5zdGlja3ktdG9wXCIsU1RJQ0tZX0NPTlRFTlQ6XCIuc3RpY2t5LXRvcFwiLE5BVkJBUl9UT0dHTEVSOlwiLm5hdmJhci10b2dnbGVyXCJ9LHNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LGUpe3RoaXMuX2NvbmZpZz10aGlzLl9nZXRDb25maWcoZSksdGhpcy5fZWxlbWVudD10LHRoaXMuX2RpYWxvZz1CdCh0KS5maW5kKHJlLkRJQUxPRylbMF0sdGhpcy5fYmFja2Ryb3A9bnVsbCx0aGlzLl9pc1Nob3duPSExLHRoaXMuX2lzQm9keU92ZXJmbG93aW5nPSExLHRoaXMuX2lnbm9yZUJhY2tkcm9wQ2xpY2s9ITEsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9MH12YXIgdD1yLnByb3RvdHlwZTtyZXR1cm4gdC50b2dnbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2lzU2hvd24/dGhpcy5oaWRlKCk6dGhpcy5zaG93KHQpfSx0LnNob3c9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdGhpcy5faXNUcmFuc2l0aW9uaW5nJiYhdGhpcy5faXNTaG93bil7QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpJiYodGhpcy5faXNUcmFuc2l0aW9uaW5nPSEwKTt2YXIgbj1CdC5FdmVudChadC5TSE9XLHtyZWxhdGVkVGFyZ2V0OnR9KTtCdCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKG4pLHRoaXMuX2lzU2hvd258fG4uaXNEZWZhdWx0UHJldmVudGVkKCl8fCh0aGlzLl9pc1Nob3duPSEwLHRoaXMuX2NoZWNrU2Nyb2xsYmFyKCksdGhpcy5fc2V0U2Nyb2xsYmFyKCksdGhpcy5fYWRqdXN0RGlhbG9nKCksQnQoZG9jdW1lbnQuYm9keSkuYWRkQ2xhc3MoZWUpLHRoaXMuX3NldEVzY2FwZUV2ZW50KCksdGhpcy5fc2V0UmVzaXplRXZlbnQoKSxCdCh0aGlzLl9lbGVtZW50KS5vbihadC5DTElDS19ESVNNSVNTLHJlLkRBVEFfRElTTUlTUyxmdW5jdGlvbih0KXtyZXR1cm4gZS5oaWRlKHQpfSksQnQodGhpcy5fZGlhbG9nKS5vbihadC5NT1VTRURPV05fRElTTUlTUyxmdW5jdGlvbigpe0J0KGUuX2VsZW1lbnQpLm9uZShadC5NT1VTRVVQX0RJU01JU1MsZnVuY3Rpb24odCl7QnQodC50YXJnZXQpLmlzKGUuX2VsZW1lbnQpJiYoZS5faWdub3JlQmFja2Ryb3BDbGljaz0hMCl9KX0pLHRoaXMuX3Nob3dCYWNrZHJvcChmdW5jdGlvbigpe3JldHVybiBlLl9zaG93RWxlbWVudCh0KX0pKX19LHQuaGlkZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHQmJnQucHJldmVudERlZmF1bHQoKSwhdGhpcy5faXNUcmFuc2l0aW9uaW5nJiZ0aGlzLl9pc1Nob3duKXt2YXIgbj1CdC5FdmVudChadC5ISURFKTtpZihCdCh0aGlzLl9lbGVtZW50KS50cmlnZ2VyKG4pLHRoaXMuX2lzU2hvd24mJiFuLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt0aGlzLl9pc1Nob3duPSExO3ZhciBpPUJ0KHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKG5lKTtpZihpJiYodGhpcy5faXNUcmFuc2l0aW9uaW5nPSEwKSx0aGlzLl9zZXRFc2NhcGVFdmVudCgpLHRoaXMuX3NldFJlc2l6ZUV2ZW50KCksQnQoZG9jdW1lbnQpLm9mZihadC5GT0NVU0lOKSxCdCh0aGlzLl9lbGVtZW50KS5yZW1vdmVDbGFzcyhpZSksQnQodGhpcy5fZWxlbWVudCkub2ZmKFp0LkNMSUNLX0RJU01JU1MpLEJ0KHRoaXMuX2RpYWxvZykub2ZmKFp0Lk1PVVNFRE9XTl9ESVNNSVNTKSxpKXt2YXIgcj1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtCdCh0aGlzLl9lbGVtZW50KS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsZnVuY3Rpb24odCl7cmV0dXJuIGUuX2hpZGVNb2RhbCh0KX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKHIpfWVsc2UgdGhpcy5faGlkZU1vZGFsKCl9fX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7QnQucmVtb3ZlRGF0YSh0aGlzLl9lbGVtZW50LEd0KSxCdCh3aW5kb3csZG9jdW1lbnQsdGhpcy5fZWxlbWVudCx0aGlzLl9iYWNrZHJvcCkub2ZmKHF0KSx0aGlzLl9jb25maWc9bnVsbCx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fZGlhbG9nPW51bGwsdGhpcy5fYmFja2Ryb3A9bnVsbCx0aGlzLl9pc1Nob3duPW51bGwsdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9bnVsbCx0aGlzLl9pZ25vcmVCYWNrZHJvcENsaWNrPW51bGwsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9bnVsbH0sdC5oYW5kbGVVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl9hZGp1c3REaWFsb2coKX0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiB0PWgoe30sWHQsdCksQ24udHlwZUNoZWNrQ29uZmlnKFl0LHQsSnQpLHR9LHQuX3Nob3dFbGVtZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1CdCh0aGlzLl9lbGVtZW50KS5oYXNDbGFzcyhuZSk7dGhpcy5fZWxlbWVudC5wYXJlbnROb2RlJiZ0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERXx8ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHRoaXMuX2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIiksdGhpcy5fZWxlbWVudC5zY3JvbGxUb3A9MCxuJiZDbi5yZWZsb3codGhpcy5fZWxlbWVudCksQnQodGhpcy5fZWxlbWVudCkuYWRkQ2xhc3MoaWUpLHRoaXMuX2NvbmZpZy5mb2N1cyYmdGhpcy5fZW5mb3JjZUZvY3VzKCk7dmFyIGk9QnQuRXZlbnQoWnQuU0hPV04se3JlbGF0ZWRUYXJnZXQ6dH0pLHI9ZnVuY3Rpb24oKXtlLl9jb25maWcuZm9jdXMmJmUuX2VsZW1lbnQuZm9jdXMoKSxlLl9pc1RyYW5zaXRpb25pbmc9ITEsQnQoZS5fZWxlbWVudCkudHJpZ2dlcihpKX07aWYobil7dmFyIHM9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fZWxlbWVudCk7QnQodGhpcy5fZGlhbG9nKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQscikuZW11bGF0ZVRyYW5zaXRpb25FbmQocyl9ZWxzZSByKCl9LHQuX2VuZm9yY2VGb2N1cz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7QnQoZG9jdW1lbnQpLm9mZihadC5GT0NVU0lOKS5vbihadC5GT0NVU0lOLGZ1bmN0aW9uKHQpe2RvY3VtZW50IT09dC50YXJnZXQmJmUuX2VsZW1lbnQhPT10LnRhcmdldCYmMD09PUJ0KGUuX2VsZW1lbnQpLmhhcyh0LnRhcmdldCkubGVuZ3RoJiZlLl9lbGVtZW50LmZvY3VzKCl9KX0sdC5fc2V0RXNjYXBlRXZlbnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2lzU2hvd24mJnRoaXMuX2NvbmZpZy5rZXlib2FyZD9CdCh0aGlzLl9lbGVtZW50KS5vbihadC5LRVlET1dOX0RJU01JU1MsZnVuY3Rpb24odCl7Mjc9PT10LndoaWNoJiYodC5wcmV2ZW50RGVmYXVsdCgpLGUuaGlkZSgpKX0pOnRoaXMuX2lzU2hvd258fEJ0KHRoaXMuX2VsZW1lbnQpLm9mZihadC5LRVlET1dOX0RJU01JU1MpfSx0Ll9zZXRSZXNpemVFdmVudD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5faXNTaG93bj9CdCh3aW5kb3cpLm9uKFp0LlJFU0laRSxmdW5jdGlvbih0KXtyZXR1cm4gZS5oYW5kbGVVcGRhdGUodCl9KTpCdCh3aW5kb3cpLm9mZihadC5SRVNJWkUpfSx0Ll9oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX2VsZW1lbnQuc3R5bGUuZGlzcGxheT1cIm5vbmVcIix0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsITApLHRoaXMuX2lzVHJhbnNpdGlvbmluZz0hMSx0aGlzLl9zaG93QmFja2Ryb3AoZnVuY3Rpb24oKXtCdChkb2N1bWVudC5ib2R5KS5yZW1vdmVDbGFzcyhlZSksdC5fcmVzZXRBZGp1c3RtZW50cygpLHQuX3Jlc2V0U2Nyb2xsYmFyKCksQnQodC5fZWxlbWVudCkudHJpZ2dlcihadC5ISURERU4pfSl9LHQuX3JlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy5fYmFja2Ryb3AmJihCdCh0aGlzLl9iYWNrZHJvcCkucmVtb3ZlKCksdGhpcy5fYmFja2Ryb3A9bnVsbCl9LHQuX3Nob3dCYWNrZHJvcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLG49QnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpP25lOlwiXCI7aWYodGhpcy5faXNTaG93biYmdGhpcy5fY29uZmlnLmJhY2tkcm9wKXtpZih0aGlzLl9iYWNrZHJvcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHRoaXMuX2JhY2tkcm9wLmNsYXNzTmFtZT10ZSxuJiZCdCh0aGlzLl9iYWNrZHJvcCkuYWRkQ2xhc3MobiksQnQodGhpcy5fYmFja2Ryb3ApLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLEJ0KHRoaXMuX2VsZW1lbnQpLm9uKFp0LkNMSUNLX0RJU01JU1MsZnVuY3Rpb24odCl7ZS5faWdub3JlQmFja2Ryb3BDbGljaz9lLl9pZ25vcmVCYWNrZHJvcENsaWNrPSExOnQudGFyZ2V0PT09dC5jdXJyZW50VGFyZ2V0JiYoXCJzdGF0aWNcIj09PWUuX2NvbmZpZy5iYWNrZHJvcD9lLl9lbGVtZW50LmZvY3VzKCk6ZS5oaWRlKCkpfSksbiYmQ24ucmVmbG93KHRoaXMuX2JhY2tkcm9wKSxCdCh0aGlzLl9iYWNrZHJvcCkuYWRkQ2xhc3MoaWUpLCF0KXJldHVybjtpZighbilyZXR1cm4gdm9pZCB0KCk7dmFyIGk9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy5fYmFja2Ryb3ApO0J0KHRoaXMuX2JhY2tkcm9wKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsdCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoaSl9ZWxzZSBpZighdGhpcy5faXNTaG93biYmdGhpcy5fYmFja2Ryb3Ape0J0KHRoaXMuX2JhY2tkcm9wKS5yZW1vdmVDbGFzcyhpZSk7dmFyIHI9ZnVuY3Rpb24oKXtlLl9yZW1vdmVCYWNrZHJvcCgpLHQmJnQoKX07aWYoQnQodGhpcy5fZWxlbWVudCkuaGFzQ2xhc3MobmUpKXt2YXIgcz1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudCh0aGlzLl9iYWNrZHJvcCk7QnQodGhpcy5fYmFja2Ryb3ApLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKX1lbHNlIHQmJnQoKX0sdC5fYWRqdXN0RGlhbG9nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZWxlbWVudC5zY3JvbGxIZWlnaHQ+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDshdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmcmJnQmJih0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0PXRoaXMuX3Njcm9sbGJhcldpZHRoK1wicHhcIiksdGhpcy5faXNCb2R5T3ZlcmZsb3dpbmcmJiF0JiYodGhpcy5fZWxlbWVudC5zdHlsZS5wYWRkaW5nUmlnaHQ9dGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX0sdC5fcmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuX2VsZW1lbnQuc3R5bGUucGFkZGluZ0xlZnQ9XCJcIix0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodD1cIlwifSx0Ll9jaGVja1Njcm9sbGJhcj1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dGhpcy5faXNCb2R5T3ZlcmZsb3dpbmc9dC5sZWZ0K3QucmlnaHQ8d2luZG93LmlubmVyV2lkdGgsdGhpcy5fc2Nyb2xsYmFyV2lkdGg9dGhpcy5fZ2V0U2Nyb2xsYmFyV2lkdGgoKX0sdC5fc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIHI9dGhpcztpZih0aGlzLl9pc0JvZHlPdmVyZmxvd2luZyl7QnQocmUuRklYRURfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpWzBdLnN0eWxlLnBhZGRpbmdSaWdodCxpPUJ0KGUpLmNzcyhcInBhZGRpbmctcmlnaHRcIik7QnQoZSkuZGF0YShcInBhZGRpbmctcmlnaHRcIixuKS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIscGFyc2VGbG9hdChpKStyLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSksQnQocmUuU1RJQ0tZX0NPTlRFTlQpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKVswXS5zdHlsZS5tYXJnaW5SaWdodCxpPUJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiKTtCdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIsbikuY3NzKFwibWFyZ2luLXJpZ2h0XCIscGFyc2VGbG9hdChpKS1yLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSksQnQocmUuTkFWQkFSX1RPR0dMRVIpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKVswXS5zdHlsZS5tYXJnaW5SaWdodCxpPUJ0KGUpLmNzcyhcIm1hcmdpbi1yaWdodFwiKTtCdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIsbikuY3NzKFwibWFyZ2luLXJpZ2h0XCIscGFyc2VGbG9hdChpKStyLl9zY3JvbGxiYXJXaWR0aCtcInB4XCIpfSk7dmFyIHQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQsZT1CdChkb2N1bWVudC5ib2R5KS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIpO0J0KGRvY3VtZW50LmJvZHkpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIsdCkuY3NzKFwicGFkZGluZy1yaWdodFwiLHBhcnNlRmxvYXQoZSkrdGhpcy5fc2Nyb2xsYmFyV2lkdGgrXCJweFwiKX19LHQuX3Jlc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7QnQocmUuRklYRURfQ09OVEVOVCkuZWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPUJ0KGUpLmRhdGEoXCJwYWRkaW5nLXJpZ2h0XCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBuJiZCdChlKS5jc3MoXCJwYWRkaW5nLXJpZ2h0XCIsbikucmVtb3ZlRGF0YShcInBhZGRpbmctcmlnaHRcIil9KSxCdChyZS5TVElDS1lfQ09OVEVOVCtcIiwgXCIrcmUuTkFWQkFSX1RPR0dMRVIpLmVhY2goZnVuY3Rpb24odCxlKXt2YXIgbj1CdChlKS5kYXRhKFwibWFyZ2luLXJpZ2h0XCIpO1widW5kZWZpbmVkXCIhPXR5cGVvZiBuJiZCdChlKS5jc3MoXCJtYXJnaW4tcmlnaHRcIixuKS5yZW1vdmVEYXRhKFwibWFyZ2luLXJpZ2h0XCIpfSk7dmFyIHQ9QnQoZG9jdW1lbnQuYm9keSkuZGF0YShcInBhZGRpbmctcmlnaHRcIik7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHQmJkJ0KGRvY3VtZW50LmJvZHkpLmNzcyhcInBhZGRpbmctcmlnaHRcIix0KS5yZW1vdmVEYXRhKFwicGFkZGluZy1yaWdodFwiKX0sdC5fZ2V0U2Nyb2xsYmFyV2lkdGg9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3QuY2xhc3NOYW1lPSR0LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7dmFyIGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aC10LmNsaWVudFdpZHRoO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHQpLGV9LHIuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuLGkpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1CdCh0aGlzKS5kYXRhKEd0KSxlPWgoe30sci5EZWZhdWx0LEJ0KHRoaXMpLmRhdGEoKSxcIm9iamVjdFwiPT10eXBlb2YgbiYmbik7aWYodHx8KHQ9bmV3IHIodGhpcyxlKSxCdCh0aGlzKS5kYXRhKEd0LHQpKSxcInN0cmluZ1wiPT10eXBlb2Ygbil7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oaSl9ZWxzZSBlLnNob3cmJnQuc2hvdyhpKX0pfSxvKHIsbnVsbCxbe2tleTpcIlZFUlNJT05cIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIjQuMS4wXCJ9fSx7a2V5OlwiRGVmYXVsdFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBYdH19XSkscn0oKSxCdChkb2N1bWVudCkub24oWnQuQ0xJQ0tfREFUQV9BUEkscmUuREFUQV9UT0dHTEUsZnVuY3Rpb24odCl7dmFyIGUsbj10aGlzLGk9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzKTtpJiYoZT1CdChpKVswXSk7dmFyIHI9QnQoZSkuZGF0YShHdCk/XCJ0b2dnbGVcIjpoKHt9LEJ0KGUpLmRhdGEoKSxCdCh0aGlzKS5kYXRhKCkpO1wiQVwiIT09dGhpcy50YWdOYW1lJiZcIkFSRUFcIiE9PXRoaXMudGFnTmFtZXx8dC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBzPUJ0KGUpLm9uZShadC5TSE9XLGZ1bmN0aW9uKHQpe3QuaXNEZWZhdWx0UHJldmVudGVkKCl8fHMub25lKFp0LkhJRERFTixmdW5jdGlvbigpe0J0KG4pLmlzKFwiOnZpc2libGVcIikmJm4uZm9jdXMoKX0pfSk7c2UuX2pRdWVyeUludGVyZmFjZS5jYWxsKEJ0KGUpLHIsdGhpcyl9KSxCdC5mbltZdF09c2UuX2pRdWVyeUludGVyZmFjZSxCdC5mbltZdF0uQ29uc3RydWN0b3I9c2UsQnQuZm5bWXRdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gQnQuZm5bWXRdPXp0LHNlLl9qUXVlcnlJbnRlcmZhY2V9LHNlKSxObj0oYWU9XCJ0b29sdGlwXCIsaGU9XCIuXCIrKGxlPVwiYnMudG9vbHRpcFwiKSxjZT0ob2U9ZSkuZm5bYWVdLHVlPVwiYnMtdG9vbHRpcFwiLGZlPW5ldyBSZWdFeHAoXCIoXnxcXFxccylcIit1ZStcIlxcXFxTK1wiLFwiZ1wiKSxnZT17YW5pbWF0aW9uOiEwLHRlbXBsYXRlOic8ZGl2IGNsYXNzPVwidG9vbHRpcFwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+PGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj48L2Rpdj4nLHRyaWdnZXI6XCJob3ZlciBmb2N1c1wiLHRpdGxlOlwiXCIsZGVsYXk6MCxodG1sOiEoX2U9e0FVVE86XCJhdXRvXCIsVE9QOlwidG9wXCIsUklHSFQ6XCJyaWdodFwiLEJPVFRPTTpcImJvdHRvbVwiLExFRlQ6XCJsZWZ0XCJ9KSxzZWxlY3RvcjohKGRlPXthbmltYXRpb246XCJib29sZWFuXCIsdGVtcGxhdGU6XCJzdHJpbmdcIix0aXRsZTpcIihzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbilcIix0cmlnZ2VyOlwic3RyaW5nXCIsZGVsYXk6XCIobnVtYmVyfG9iamVjdClcIixodG1sOlwiYm9vbGVhblwiLHNlbGVjdG9yOlwiKHN0cmluZ3xib29sZWFuKVwiLHBsYWNlbWVudDpcIihzdHJpbmd8ZnVuY3Rpb24pXCIsb2Zmc2V0OlwiKG51bWJlcnxzdHJpbmcpXCIsY29udGFpbmVyOlwiKHN0cmluZ3xlbGVtZW50fGJvb2xlYW4pXCIsZmFsbGJhY2tQbGFjZW1lbnQ6XCIoc3RyaW5nfGFycmF5KVwiLGJvdW5kYXJ5OlwiKHN0cmluZ3xlbGVtZW50KVwifSkscGxhY2VtZW50OlwidG9wXCIsb2Zmc2V0OjAsY29udGFpbmVyOiExLGZhbGxiYWNrUGxhY2VtZW50OlwiZmxpcFwiLGJvdW5kYXJ5Olwic2Nyb2xsUGFyZW50XCJ9LHBlPVwib3V0XCIsdmU9e0hJREU6XCJoaWRlXCIraGUsSElEREVOOlwiaGlkZGVuXCIraGUsU0hPVzoobWU9XCJzaG93XCIpK2hlLFNIT1dOOlwic2hvd25cIitoZSxJTlNFUlRFRDpcImluc2VydGVkXCIraGUsQ0xJQ0s6XCJjbGlja1wiK2hlLEZPQ1VTSU46XCJmb2N1c2luXCIraGUsRk9DVVNPVVQ6XCJmb2N1c291dFwiK2hlLE1PVVNFRU5URVI6XCJtb3VzZWVudGVyXCIraGUsTU9VU0VMRUFWRTpcIm1vdXNlbGVhdmVcIitoZX0sRWU9XCJmYWRlXCIseWU9XCJzaG93XCIsVGU9XCIudG9vbHRpcC1pbm5lclwiLENlPVwiLmFycm93XCIsSWU9XCJob3ZlclwiLEFlPVwiZm9jdXNcIixEZT1cImNsaWNrXCIsYmU9XCJtYW51YWxcIixTZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGkodCxlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQm9vdHN0cmFwIHRvb2x0aXBzIHJlcXVpcmUgUG9wcGVyLmpzIChodHRwczovL3BvcHBlci5qcy5vcmcpXCIpO3RoaXMuX2lzRW5hYmxlZD0hMCx0aGlzLl90aW1lb3V0PTAsdGhpcy5faG92ZXJTdGF0ZT1cIlwiLHRoaXMuX2FjdGl2ZVRyaWdnZXI9e30sdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5lbGVtZW50PXQsdGhpcy5jb25maWc9dGhpcy5fZ2V0Q29uZmlnKGUpLHRoaXMudGlwPW51bGwsdGhpcy5fc2V0TGlzdGVuZXJzKCl9dmFyIHQ9aS5wcm90b3R5cGU7cmV0dXJuIHQuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5faXNFbmFibGVkPSEwfSx0LmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9pc0VuYWJsZWQ9ITF9LHQudG9nZ2xlRW5hYmxlZD1mdW5jdGlvbigpe3RoaXMuX2lzRW5hYmxlZD0hdGhpcy5faXNFbmFibGVkfSx0LnRvZ2dsZT1mdW5jdGlvbih0KXtpZih0aGlzLl9pc0VuYWJsZWQpaWYodCl7dmFyIGU9dGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWSxuPW9lKHQuY3VycmVudFRhcmdldCkuZGF0YShlKTtufHwobj1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSksb2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKGUsbikpLG4uX2FjdGl2ZVRyaWdnZXIuY2xpY2s9IW4uX2FjdGl2ZVRyaWdnZXIuY2xpY2ssbi5faXNXaXRoQWN0aXZlVHJpZ2dlcigpP24uX2VudGVyKG51bGwsbik6bi5fbGVhdmUobnVsbCxuKX1lbHNle2lmKG9lKHRoaXMuZ2V0VGlwRWxlbWVudCgpKS5oYXNDbGFzcyh5ZSkpcmV0dXJuIHZvaWQgdGhpcy5fbGVhdmUobnVsbCx0aGlzKTt0aGlzLl9lbnRlcihudWxsLHRoaXMpfX0sdC5kaXNwb3NlPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpLG9lLnJlbW92ZURhdGEodGhpcy5lbGVtZW50LHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVkpLG9lKHRoaXMuZWxlbWVudCkub2ZmKHRoaXMuY29uc3RydWN0b3IuRVZFTlRfS0VZKSxvZSh0aGlzLmVsZW1lbnQpLmNsb3Nlc3QoXCIubW9kYWxcIikub2ZmKFwiaGlkZS5icy5tb2RhbFwiKSx0aGlzLnRpcCYmb2UodGhpcy50aXApLnJlbW92ZSgpLHRoaXMuX2lzRW5hYmxlZD1udWxsLHRoaXMuX3RpbWVvdXQ9bnVsbCx0aGlzLl9ob3ZlclN0YXRlPW51bGwsKHRoaXMuX2FjdGl2ZVRyaWdnZXI9bnVsbCkhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5kZXN0cm95KCksdGhpcy5fcG9wcGVyPW51bGwsdGhpcy5lbGVtZW50PW51bGwsdGhpcy5jb25maWc9bnVsbCx0aGlzLnRpcD1udWxsfSx0LnNob3c9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKFwibm9uZVwiPT09b2UodGhpcy5lbGVtZW50KS5jc3MoXCJkaXNwbGF5XCIpKXRocm93IG5ldyBFcnJvcihcIlBsZWFzZSB1c2Ugc2hvdyBvbiB2aXNpYmxlIGVsZW1lbnRzXCIpO3ZhciB0PW9lLkV2ZW50KHRoaXMuY29uc3RydWN0b3IuRXZlbnQuU0hPVyk7aWYodGhpcy5pc1dpdGhDb250ZW50KCkmJnRoaXMuX2lzRW5hYmxlZCl7b2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKHQpO3ZhciBuPW9lLmNvbnRhaW5zKHRoaXMuZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLmVsZW1lbnQpO2lmKHQuaXNEZWZhdWx0UHJldmVudGVkKCl8fCFuKXJldHVybjt2YXIgaT10aGlzLmdldFRpcEVsZW1lbnQoKSxyPUNuLmdldFVJRCh0aGlzLmNvbnN0cnVjdG9yLk5BTUUpO2kuc2V0QXR0cmlidXRlKFwiaWRcIixyKSx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwiYXJpYS1kZXNjcmliZWRieVwiLHIpLHRoaXMuc2V0Q29udGVudCgpLHRoaXMuY29uZmlnLmFuaW1hdGlvbiYmb2UoaSkuYWRkQ2xhc3MoRWUpO3ZhciBzPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuY29uZmlnLnBsYWNlbWVudD90aGlzLmNvbmZpZy5wbGFjZW1lbnQuY2FsbCh0aGlzLGksdGhpcy5lbGVtZW50KTp0aGlzLmNvbmZpZy5wbGFjZW1lbnQsbz10aGlzLl9nZXRBdHRhY2htZW50KHMpO3RoaXMuYWRkQXR0YWNobWVudENsYXNzKG8pO3ZhciBhPSExPT09dGhpcy5jb25maWcuY29udGFpbmVyP2RvY3VtZW50LmJvZHk6b2UodGhpcy5jb25maWcuY29udGFpbmVyKTtvZShpKS5kYXRhKHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksdGhpcyksb2UuY29udGFpbnModGhpcy5lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMudGlwKXx8b2UoaSkuYXBwZW5kVG8oYSksb2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKHRoaXMuY29uc3RydWN0b3IuRXZlbnQuSU5TRVJURUQpLHRoaXMuX3BvcHBlcj1uZXcgYyh0aGlzLmVsZW1lbnQsaSx7cGxhY2VtZW50Om8sbW9kaWZpZXJzOntvZmZzZXQ6e29mZnNldDp0aGlzLmNvbmZpZy5vZmZzZXR9LGZsaXA6e2JlaGF2aW9yOnRoaXMuY29uZmlnLmZhbGxiYWNrUGxhY2VtZW50fSxhcnJvdzp7ZWxlbWVudDpDZX0scHJldmVudE92ZXJmbG93Ontib3VuZGFyaWVzRWxlbWVudDp0aGlzLmNvbmZpZy5ib3VuZGFyeX19LG9uQ3JlYXRlOmZ1bmN0aW9uKHQpe3Qub3JpZ2luYWxQbGFjZW1lbnQhPT10LnBsYWNlbWVudCYmZS5faGFuZGxlUG9wcGVyUGxhY2VtZW50Q2hhbmdlKHQpfSxvblVwZGF0ZTpmdW5jdGlvbih0KXtlLl9oYW5kbGVQb3BwZXJQbGFjZW1lbnRDaGFuZ2UodCl9fSksb2UoaSkuYWRkQ2xhc3MoeWUpLFwib250b3VjaHN0YXJ0XCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJm9lKGRvY3VtZW50LmJvZHkpLmNoaWxkcmVuKCkub24oXCJtb3VzZW92ZXJcIixudWxsLG9lLm5vb3ApO3ZhciBsPWZ1bmN0aW9uKCl7ZS5jb25maWcuYW5pbWF0aW9uJiZlLl9maXhUcmFuc2l0aW9uKCk7dmFyIHQ9ZS5faG92ZXJTdGF0ZTtlLl9ob3ZlclN0YXRlPW51bGwsb2UoZS5lbGVtZW50KS50cmlnZ2VyKGUuY29uc3RydWN0b3IuRXZlbnQuU0hPV04pLHQ9PT1wZSYmZS5fbGVhdmUobnVsbCxlKX07aWYob2UodGhpcy50aXApLmhhc0NsYXNzKEVlKSl7dmFyIGg9Q24uZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQodGhpcy50aXApO29lKHRoaXMudGlwKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsbCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoaCl9ZWxzZSBsKCl9fSx0LmhpZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuZ2V0VGlwRWxlbWVudCgpLGk9b2UuRXZlbnQodGhpcy5jb25zdHJ1Y3Rvci5FdmVudC5ISURFKSxyPWZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZSE9PW1lJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSxlLl9jbGVhblRpcENsYXNzKCksZS5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcImFyaWEtZGVzY3JpYmVkYnlcIiksb2UoZS5lbGVtZW50KS50cmlnZ2VyKGUuY29uc3RydWN0b3IuRXZlbnQuSElEREVOKSxudWxsIT09ZS5fcG9wcGVyJiZlLl9wb3BwZXIuZGVzdHJveSgpLHQmJnQoKX07aWYob2UodGhpcy5lbGVtZW50KS50cmlnZ2VyKGkpLCFpLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZihvZShuKS5yZW1vdmVDbGFzcyh5ZSksXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmb2UoZG9jdW1lbnQuYm9keSkuY2hpbGRyZW4oKS5vZmYoXCJtb3VzZW92ZXJcIixudWxsLG9lLm5vb3ApLHRoaXMuX2FjdGl2ZVRyaWdnZXJbRGVdPSExLHRoaXMuX2FjdGl2ZVRyaWdnZXJbQWVdPSExLHRoaXMuX2FjdGl2ZVRyaWdnZXJbSWVdPSExLG9lKHRoaXMudGlwKS5oYXNDbGFzcyhFZSkpe3ZhciBzPUNuLmdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KG4pO29lKG4pLm9uZShDbi5UUkFOU0lUSU9OX0VORCxyKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChzKX1lbHNlIHIoKTt0aGlzLl9ob3ZlclN0YXRlPVwiXCJ9fSx0LnVwZGF0ZT1mdW5jdGlvbigpe251bGwhPT10aGlzLl9wb3BwZXImJnRoaXMuX3BvcHBlci5zY2hlZHVsZVVwZGF0ZSgpfSx0LmlzV2l0aENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLmdldFRpdGxlKCkpfSx0LmFkZEF0dGFjaG1lbnRDbGFzcz1mdW5jdGlvbih0KXtvZSh0aGlzLmdldFRpcEVsZW1lbnQoKSkuYWRkQ2xhc3ModWUrXCItXCIrdCl9LHQuZ2V0VGlwRWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpcD10aGlzLnRpcHx8b2UodGhpcy5jb25maWcudGVtcGxhdGUpWzBdLHRoaXMudGlwfSx0LnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoVGUpLHRoaXMuZ2V0VGl0bGUoKSksdC5yZW1vdmVDbGFzcyhFZStcIiBcIit5ZSl9LHQuc2V0RWxlbWVudENvbnRlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbmZpZy5odG1sO1wib2JqZWN0XCI9PXR5cGVvZiBlJiYoZS5ub2RlVHlwZXx8ZS5qcXVlcnkpP24/b2UoZSkucGFyZW50KCkuaXModCl8fHQuZW1wdHkoKS5hcHBlbmQoZSk6dC50ZXh0KG9lKGUpLnRleHQoKSk6dFtuP1wiaHRtbFwiOlwidGV4dFwiXShlKX0sdC5nZXRUaXRsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpO3JldHVybiB0fHwodD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzLmNvbmZpZy50aXRsZT90aGlzLmNvbmZpZy50aXRsZS5jYWxsKHRoaXMuZWxlbWVudCk6dGhpcy5jb25maWcudGl0bGUpLHR9LHQuX2dldEF0dGFjaG1lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIF9lW3QudG9VcHBlckNhc2UoKV19LHQuX3NldExpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5jb25maWcudHJpZ2dlci5zcGxpdChcIiBcIikuZm9yRWFjaChmdW5jdGlvbih0KXtpZihcImNsaWNrXCI9PT10KW9lKGkuZWxlbWVudCkub24oaS5jb25zdHJ1Y3Rvci5FdmVudC5DTElDSyxpLmNvbmZpZy5zZWxlY3RvcixmdW5jdGlvbih0KXtyZXR1cm4gaS50b2dnbGUodCl9KTtlbHNlIGlmKHQhPT1iZSl7dmFyIGU9dD09PUllP2kuY29uc3RydWN0b3IuRXZlbnQuTU9VU0VFTlRFUjppLmNvbnN0cnVjdG9yLkV2ZW50LkZPQ1VTSU4sbj10PT09SWU/aS5jb25zdHJ1Y3Rvci5FdmVudC5NT1VTRUxFQVZFOmkuY29uc3RydWN0b3IuRXZlbnQuRk9DVVNPVVQ7b2UoaS5lbGVtZW50KS5vbihlLGkuY29uZmlnLnNlbGVjdG9yLGZ1bmN0aW9uKHQpe3JldHVybiBpLl9lbnRlcih0KX0pLm9uKG4saS5jb25maWcuc2VsZWN0b3IsZnVuY3Rpb24odCl7cmV0dXJuIGkuX2xlYXZlKHQpfSl9b2UoaS5lbGVtZW50KS5jbG9zZXN0KFwiLm1vZGFsXCIpLm9uKFwiaGlkZS5icy5tb2RhbFwiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuaGlkZSgpfSl9KSx0aGlzLmNvbmZpZy5zZWxlY3Rvcj90aGlzLmNvbmZpZz1oKHt9LHRoaXMuY29uZmlnLHt0cmlnZ2VyOlwibWFudWFsXCIsc2VsZWN0b3I6XCJcIn0pOnRoaXMuX2ZpeFRpdGxlKCl9LHQuX2ZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9dHlwZW9mIHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIpOyh0aGlzLmVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIil8fFwic3RyaW5nXCIhPT10KSYmKHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkYXRhLW9yaWdpbmFsLXRpdGxlXCIsdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcInRpdGxlXCIpfHxcIlwiKSx0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKFwidGl0bGVcIixcIlwiKSl9LHQuX2VudGVyPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5jb25zdHJ1Y3Rvci5EQVRBX0tFWTsoZT1lfHxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobikpfHwoZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0LmN1cnJlbnRUYXJnZXQsdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSksb2UodC5jdXJyZW50VGFyZ2V0KS5kYXRhKG4sZSkpLHQmJihlLl9hY3RpdmVUcmlnZ2VyW1wiZm9jdXNpblwiPT09dC50eXBlP0FlOkllXT0hMCksb2UoZS5nZXRUaXBFbGVtZW50KCkpLmhhc0NsYXNzKHllKXx8ZS5faG92ZXJTdGF0ZT09PW1lP2UuX2hvdmVyU3RhdGU9bWU6KGNsZWFyVGltZW91dChlLl90aW1lb3V0KSxlLl9ob3ZlclN0YXRlPW1lLGUuY29uZmlnLmRlbGF5JiZlLmNvbmZpZy5kZWxheS5zaG93P2UuX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe2UuX2hvdmVyU3RhdGU9PT1tZSYmZS5zaG93KCl9LGUuY29uZmlnLmRlbGF5LnNob3cpOmUuc2hvdygpKX0sdC5fbGVhdmU9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZOyhlPWV8fG9lKHQuY3VycmVudFRhcmdldCkuZGF0YShuKSl8fChlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHQuY3VycmVudFRhcmdldCx0aGlzLl9nZXREZWxlZ2F0ZUNvbmZpZygpKSxvZSh0LmN1cnJlbnRUYXJnZXQpLmRhdGEobixlKSksdCYmKGUuX2FjdGl2ZVRyaWdnZXJbXCJmb2N1c291dFwiPT09dC50eXBlP0FlOkllXT0hMSksZS5faXNXaXRoQWN0aXZlVHJpZ2dlcigpfHwoY2xlYXJUaW1lb3V0KGUuX3RpbWVvdXQpLGUuX2hvdmVyU3RhdGU9cGUsZS5jb25maWcuZGVsYXkmJmUuY29uZmlnLmRlbGF5LmhpZGU/ZS5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5faG92ZXJTdGF0ZT09PXBlJiZlLmhpZGUoKX0sZS5jb25maWcuZGVsYXkuaGlkZSk6ZS5oaWRlKCkpfSx0Ll9pc1dpdGhBY3RpdmVUcmlnZ2VyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX2FjdGl2ZVRyaWdnZXIpaWYodGhpcy5fYWN0aXZlVHJpZ2dlclt0XSlyZXR1cm4hMDtyZXR1cm4hMX0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZih0PWgoe30sdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0LG9lKHRoaXMuZWxlbWVudCkuZGF0YSgpLHQpKS5kZWxheSYmKHQuZGVsYXk9e3Nob3c6dC5kZWxheSxoaWRlOnQuZGVsYXl9KSxcIm51bWJlclwiPT10eXBlb2YgdC50aXRsZSYmKHQudGl0bGU9dC50aXRsZS50b1N0cmluZygpKSxcIm51bWJlclwiPT10eXBlb2YgdC5jb250ZW50JiYodC5jb250ZW50PXQuY29udGVudC50b1N0cmluZygpKSxDbi50eXBlQ2hlY2tDb25maWcoYWUsdCx0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRUeXBlKSx0fSx0Ll9nZXREZWxlZ2F0ZUNvbmZpZz1mdW5jdGlvbigpe3ZhciB0PXt9O2lmKHRoaXMuY29uZmlnKWZvcih2YXIgZSBpbiB0aGlzLmNvbmZpZyl0aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHRbZV0hPT10aGlzLmNvbmZpZ1tlXSYmKHRbZV09dGhpcy5jb25maWdbZV0pO3JldHVybiB0fSx0Ll9jbGVhblRpcENsYXNzPWZ1bmN0aW9uKCl7dmFyIHQ9b2UodGhpcy5nZXRUaXBFbGVtZW50KCkpLGU9dC5hdHRyKFwiY2xhc3NcIikubWF0Y2goZmUpO251bGwhPT1lJiYwPGUubGVuZ3RoJiZ0LnJlbW92ZUNsYXNzKGUuam9pbihcIlwiKSl9LHQuX2hhbmRsZVBvcHBlclBsYWNlbWVudENoYW5nZT1mdW5jdGlvbih0KXt0aGlzLl9jbGVhblRpcENsYXNzKCksdGhpcy5hZGRBdHRhY2htZW50Q2xhc3ModGhpcy5fZ2V0QXR0YWNobWVudCh0LnBsYWNlbWVudCkpfSx0Ll9maXhUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRUaXBFbGVtZW50KCksZT10aGlzLmNvbmZpZy5hbmltYXRpb247bnVsbD09PXQuZ2V0QXR0cmlidXRlKFwieC1wbGFjZW1lbnRcIikmJihvZSh0KS5yZW1vdmVDbGFzcyhFZSksdGhpcy5jb25maWcuYW5pbWF0aW9uPSExLHRoaXMuaGlkZSgpLHRoaXMuc2hvdygpLHRoaXMuY29uZmlnLmFuaW1hdGlvbj1lKX0saS5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKG4pe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1vZSh0aGlzKS5kYXRhKGxlKSxlPVwib2JqZWN0XCI9PXR5cGVvZiBuJiZuO2lmKCh0fHwhL2Rpc3Bvc2V8aGlkZS8udGVzdChuKSkmJih0fHwodD1uZXcgaSh0aGlzLGUpLG9lKHRoaXMpLmRhdGEobGUsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ2V9fSx7a2V5OlwiTkFNRVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBhZX19LHtrZXk6XCJEQVRBX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBsZX19LHtrZXk6XCJFdmVudFwiLGdldDpmdW5jdGlvbigpe3JldHVybiB2ZX19LHtrZXk6XCJFVkVOVF9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGV9fSx7a2V5OlwiRGVmYXVsdFR5cGVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGV9fV0pLGl9KCksb2UuZm5bYWVdPVNlLl9qUXVlcnlJbnRlcmZhY2Usb2UuZm5bYWVdLkNvbnN0cnVjdG9yPVNlLG9lLmZuW2FlXS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIG9lLmZuW2FlXT1jZSxTZS5falF1ZXJ5SW50ZXJmYWNlfSxTZSksT249KE5lPVwicG9wb3ZlclwiLGtlPVwiLlwiKyhPZT1cImJzLnBvcG92ZXJcIiksUGU9KHdlPWUpLmZuW05lXSxMZT1cImJzLXBvcG92ZXJcIixqZT1uZXcgUmVnRXhwKFwiKF58XFxcXHMpXCIrTGUrXCJcXFxcUytcIixcImdcIiksUmU9aCh7fSxObi5EZWZhdWx0LHtwbGFjZW1lbnQ6XCJyaWdodFwiLHRyaWdnZXI6XCJjbGlja1wiLGNvbnRlbnQ6XCJcIix0ZW1wbGF0ZTonPGRpdiBjbGFzcz1cInBvcG92ZXJcIiByb2xlPVwidG9vbHRpcFwiPjxkaXYgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PjxoMyBjbGFzcz1cInBvcG92ZXItaGVhZGVyXCI+PC9oMz48ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+PC9kaXY+PC9kaXY+J30pLEhlPWgoe30sTm4uRGVmYXVsdFR5cGUse2NvbnRlbnQ6XCIoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb24pXCJ9KSxXZT1cImZhZGVcIix4ZT1cIi5wb3BvdmVyLWhlYWRlclwiLFVlPVwiLnBvcG92ZXItYm9keVwiLEtlPXtISURFOlwiaGlkZVwiK2tlLEhJRERFTjpcImhpZGRlblwiK2tlLFNIT1c6KE1lPVwic2hvd1wiKStrZSxTSE9XTjpcInNob3duXCIra2UsSU5TRVJURUQ6XCJpbnNlcnRlZFwiK2tlLENMSUNLOlwiY2xpY2tcIitrZSxGT0NVU0lOOlwiZm9jdXNpblwiK2tlLEZPQ1VTT1VUOlwiZm9jdXNvdXRcIitrZSxNT1VTRUVOVEVSOlwibW91c2VlbnRlclwiK2tlLE1PVVNFTEVBVkU6XCJtb3VzZWxlYXZlXCIra2V9LEZlPWZ1bmN0aW9uKHQpe3ZhciBlLG47ZnVuY3Rpb24gaSgpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8dGhpc31uPXQsKGU9aSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLChlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lKS5fX3Byb3RvX189bjt2YXIgcj1pLnByb3RvdHlwZTtyZXR1cm4gci5pc1dpdGhDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKXx8dGhpcy5fZ2V0Q29udGVudCgpfSxyLmFkZEF0dGFjaG1lbnRDbGFzcz1mdW5jdGlvbih0KXt3ZSh0aGlzLmdldFRpcEVsZW1lbnQoKSkuYWRkQ2xhc3MoTGUrXCItXCIrdCl9LHIuZ2V0VGlwRWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRpcD10aGlzLnRpcHx8d2UodGhpcy5jb25maWcudGVtcGxhdGUpWzBdLHRoaXMudGlwfSxyLnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgdD13ZSh0aGlzLmdldFRpcEVsZW1lbnQoKSk7dGhpcy5zZXRFbGVtZW50Q29udGVudCh0LmZpbmQoeGUpLHRoaXMuZ2V0VGl0bGUoKSk7dmFyIGU9dGhpcy5fZ2V0Q29udGVudCgpO1wiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihlPWUuY2FsbCh0aGlzLmVsZW1lbnQpKSx0aGlzLnNldEVsZW1lbnRDb250ZW50KHQuZmluZChVZSksZSksdC5yZW1vdmVDbGFzcyhXZStcIiBcIitNZSl9LHIuX2dldENvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtY29udGVudFwiKXx8dGhpcy5jb25maWcuY29udGVudH0sci5fY2xlYW5UaXBDbGFzcz1mdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMuZ2V0VGlwRWxlbWVudCgpKSxlPXQuYXR0cihcImNsYXNzXCIpLm1hdGNoKGplKTtudWxsIT09ZSYmMDxlLmxlbmd0aCYmdC5yZW1vdmVDbGFzcyhlLmpvaW4oXCJcIikpfSxpLl9qUXVlcnlJbnRlcmZhY2U9ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PXdlKHRoaXMpLmRhdGEoT2UpLGU9XCJvYmplY3RcIj09dHlwZW9mIG4/bjpudWxsO2lmKCh0fHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChuKSkmJih0fHwodD1uZXcgaSh0aGlzLGUpLHdlKHRoaXMpLmRhdGEoT2UsdCkpLFwic3RyaW5nXCI9PXR5cGVvZiBuKSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbbl0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytuKydcIicpO3Rbbl0oKX19KX0sbyhpLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUmV9fSx7a2V5OlwiTkFNRVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBOZX19LHtrZXk6XCJEQVRBX0tFWVwiLGdldDpmdW5jdGlvbigpe3JldHVybiBPZX19LHtrZXk6XCJFdmVudFwiLGdldDpmdW5jdGlvbigpe3JldHVybiBLZX19LHtrZXk6XCJFVkVOVF9LRVlcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ga2V9fSx7a2V5OlwiRGVmYXVsdFR5cGVcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGV9fV0pLGl9KE5uKSx3ZS5mbltOZV09RmUuX2pRdWVyeUludGVyZmFjZSx3ZS5mbltOZV0uQ29uc3RydWN0b3I9RmUsd2UuZm5bTmVdLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gd2UuZm5bTmVdPVBlLEZlLl9qUXVlcnlJbnRlcmZhY2V9LEZlKSxrbj0oUWU9XCJzY3JvbGxzcHlcIixZZT1cIi5cIisoQmU9XCJicy5zY3JvbGxzcHlcIiksR2U9KFZlPWUpLmZuW1FlXSxxZT17b2Zmc2V0OjEwLG1ldGhvZDpcImF1dG9cIix0YXJnZXQ6XCJcIn0semU9e29mZnNldDpcIm51bWJlclwiLG1ldGhvZDpcInN0cmluZ1wiLHRhcmdldDpcIihzdHJpbmd8ZWxlbWVudClcIn0sWGU9e0FDVElWQVRFOlwiYWN0aXZhdGVcIitZZSxTQ1JPTEw6XCJzY3JvbGxcIitZZSxMT0FEX0RBVEFfQVBJOlwibG9hZFwiK1llK1wiLmRhdGEtYXBpXCJ9LEplPVwiZHJvcGRvd24taXRlbVwiLFplPVwiYWN0aXZlXCIsJGU9e0RBVEFfU1BZOidbZGF0YS1zcHk9XCJzY3JvbGxcIl0nLEFDVElWRTpcIi5hY3RpdmVcIixOQVZfTElTVF9HUk9VUDpcIi5uYXYsIC5saXN0LWdyb3VwXCIsTkFWX0xJTktTOlwiLm5hdi1saW5rXCIsTkFWX0lURU1TOlwiLm5hdi1pdGVtXCIsTElTVF9JVEVNUzpcIi5saXN0LWdyb3VwLWl0ZW1cIixEUk9QRE9XTjpcIi5kcm9wZG93blwiLERST1BET1dOX0lURU1TOlwiLmRyb3Bkb3duLWl0ZW1cIixEUk9QRE9XTl9UT0dHTEU6XCIuZHJvcGRvd24tdG9nZ2xlXCJ9LHRuPVwib2Zmc2V0XCIsZW49XCJwb3NpdGlvblwiLG5uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbih0LGUpe3ZhciBuPXRoaXM7dGhpcy5fZWxlbWVudD10LHRoaXMuX3Njcm9sbEVsZW1lbnQ9XCJCT0RZXCI9PT10LnRhZ05hbWU/d2luZG93OnQsdGhpcy5fY29uZmlnPXRoaXMuX2dldENvbmZpZyhlKSx0aGlzLl9zZWxlY3Rvcj10aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLk5BVl9MSU5LUytcIixcIit0aGlzLl9jb25maWcudGFyZ2V0K1wiIFwiKyRlLkxJU1RfSVRFTVMrXCIsXCIrdGhpcy5fY29uZmlnLnRhcmdldCtcIiBcIiskZS5EUk9QRE9XTl9JVEVNUyx0aGlzLl9vZmZzZXRzPVtdLHRoaXMuX3RhcmdldHM9W10sdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5fc2Nyb2xsSGVpZ2h0PTAsVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkub24oWGUuU0NST0xMLGZ1bmN0aW9uKHQpe3JldHVybiBuLl9wcm9jZXNzKHQpfSksdGhpcy5yZWZyZXNoKCksdGhpcy5fcHJvY2VzcygpfXZhciB0PW4ucHJvdG90eXBlO3JldHVybiB0LnJlZnJlc2g9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5fc2Nyb2xsRWxlbWVudD09PXRoaXMuX3Njcm9sbEVsZW1lbnQud2luZG93P3RuOmVuLHI9XCJhdXRvXCI9PT10aGlzLl9jb25maWcubWV0aG9kP3Q6dGhpcy5fY29uZmlnLm1ldGhvZCxzPXI9PT1lbj90aGlzLl9nZXRTY3JvbGxUb3AoKTowO3RoaXMuX29mZnNldHM9W10sdGhpcy5fdGFyZ2V0cz1bXSx0aGlzLl9zY3JvbGxIZWlnaHQ9dGhpcy5fZ2V0U2Nyb2xsSGVpZ2h0KCksVmUubWFrZUFycmF5KFZlKHRoaXMuX3NlbGVjdG9yKSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlLG49Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0KTtpZihuJiYoZT1WZShuKVswXSksZSl7dmFyIGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihpLndpZHRofHxpLmhlaWdodClyZXR1cm5bVmUoZSlbcl0oKS50b3ArcyxuXX1yZXR1cm4gbnVsbH0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdH0pLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlLl9vZmZzZXRzLnB1c2godFswXSksZS5fdGFyZ2V0cy5wdXNoKHRbMV0pfSl9LHQuZGlzcG9zZT1mdW5jdGlvbigpe1ZlLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxCZSksVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkub2ZmKFllKSx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5fc2Nyb2xsRWxlbWVudD1udWxsLHRoaXMuX2NvbmZpZz1udWxsLHRoaXMuX3NlbGVjdG9yPW51bGwsdGhpcy5fb2Zmc2V0cz1udWxsLHRoaXMuX3RhcmdldHM9bnVsbCx0aGlzLl9hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLl9zY3JvbGxIZWlnaHQ9bnVsbH0sdC5fZ2V0Q29uZmlnPWZ1bmN0aW9uKHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZih0PWgoe30scWUsdCkpLnRhcmdldCl7dmFyIGU9VmUodC50YXJnZXQpLmF0dHIoXCJpZFwiKTtlfHwoZT1Dbi5nZXRVSUQoUWUpLFZlKHQudGFyZ2V0KS5hdHRyKFwiaWRcIixlKSksdC50YXJnZXQ9XCIjXCIrZX1yZXR1cm4gQ24udHlwZUNoZWNrQ29uZmlnKFFlLHQsemUpLHR9LHQuX2dldFNjcm9sbFRvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3RoaXMuX3Njcm9sbEVsZW1lbnQucGFnZVlPZmZzZXQ6dGhpcy5fc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3B9LHQuX2dldFNjcm9sbEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50LnNjcm9sbEhlaWdodHx8TWF0aC5tYXgoZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCl9LHQuX2dldE9mZnNldEhlaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zY3JvbGxFbGVtZW50PT09d2luZG93P3dpbmRvdy5pbm5lckhlaWdodDp0aGlzLl9zY3JvbGxFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH0sdC5fcHJvY2Vzcz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2dldFNjcm9sbFRvcCgpK3RoaXMuX2NvbmZpZy5vZmZzZXQsZT10aGlzLl9nZXRTY3JvbGxIZWlnaHQoKSxuPXRoaXMuX2NvbmZpZy5vZmZzZXQrZS10aGlzLl9nZXRPZmZzZXRIZWlnaHQoKTtpZih0aGlzLl9zY3JvbGxIZWlnaHQhPT1lJiZ0aGlzLnJlZnJlc2goKSxuPD10KXt2YXIgaT10aGlzLl90YXJnZXRzW3RoaXMuX3RhcmdldHMubGVuZ3RoLTFdO3RoaXMuX2FjdGl2ZVRhcmdldCE9PWkmJnRoaXMuX2FjdGl2YXRlKGkpfWVsc2V7aWYodGhpcy5fYWN0aXZlVGFyZ2V0JiZ0PHRoaXMuX29mZnNldHNbMF0mJjA8dGhpcy5fb2Zmc2V0c1swXSlyZXR1cm4gdGhpcy5fYWN0aXZlVGFyZ2V0PW51bGwsdm9pZCB0aGlzLl9jbGVhcigpO2Zvcih2YXIgcj10aGlzLl9vZmZzZXRzLmxlbmd0aDtyLS07KXt0aGlzLl9hY3RpdmVUYXJnZXQhPT10aGlzLl90YXJnZXRzW3JdJiZ0Pj10aGlzLl9vZmZzZXRzW3JdJiYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRoaXMuX29mZnNldHNbcisxXXx8dDx0aGlzLl9vZmZzZXRzW3IrMV0pJiZ0aGlzLl9hY3RpdmF0ZSh0aGlzLl90YXJnZXRzW3JdKX19fSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbihlKXt0aGlzLl9hY3RpdmVUYXJnZXQ9ZSx0aGlzLl9jbGVhcigpO3ZhciB0PXRoaXMuX3NlbGVjdG9yLnNwbGl0KFwiLFwiKTt0PXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0KydbZGF0YS10YXJnZXQ9XCInK2UrJ1wiXSwnK3QrJ1tocmVmPVwiJytlKydcIl0nfSk7dmFyIG49VmUodC5qb2luKFwiLFwiKSk7bi5oYXNDbGFzcyhKZSk/KG4uY2xvc2VzdCgkZS5EUk9QRE9XTikuZmluZCgkZS5EUk9QRE9XTl9UT0dHTEUpLmFkZENsYXNzKFplKSxuLmFkZENsYXNzKFplKSk6KG4uYWRkQ2xhc3MoWmUpLG4ucGFyZW50cygkZS5OQVZfTElTVF9HUk9VUCkucHJldigkZS5OQVZfTElOS1MrXCIsIFwiKyRlLkxJU1RfSVRFTVMpLmFkZENsYXNzKFplKSxuLnBhcmVudHMoJGUuTkFWX0xJU1RfR1JPVVApLnByZXYoJGUuTkFWX0lURU1TKS5jaGlsZHJlbigkZS5OQVZfTElOS1MpLmFkZENsYXNzKFplKSksVmUodGhpcy5fc2Nyb2xsRWxlbWVudCkudHJpZ2dlcihYZS5BQ1RJVkFURSx7cmVsYXRlZFRhcmdldDplfSl9LHQuX2NsZWFyPWZ1bmN0aW9uKCl7VmUodGhpcy5fc2VsZWN0b3IpLmZpbHRlcigkZS5BQ1RJVkUpLnJlbW92ZUNsYXNzKFplKX0sbi5falF1ZXJ5SW50ZXJmYWNlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1WZSh0aGlzKS5kYXRhKEJlKTtpZih0fHwodD1uZXcgbih0aGlzLFwib2JqZWN0XCI9PXR5cGVvZiBlJiZlKSxWZSh0aGlzKS5kYXRhKEJlLHQpKSxcInN0cmluZ1wiPT10eXBlb2YgZSl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHRbZV0pdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gbWV0aG9kIG5hbWVkIFwiJytlKydcIicpO3RbZV0oKX19KX0sbyhuLG51bGwsW3trZXk6XCJWRVJTSU9OXCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCI0LjEuMFwifX0se2tleTpcIkRlZmF1bHRcIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcWV9fV0pLG59KCksVmUod2luZG93KS5vbihYZS5MT0FEX0RBVEFfQVBJLGZ1bmN0aW9uKCl7Zm9yKHZhciB0PVZlLm1ha2VBcnJheShWZSgkZS5EQVRBX1NQWSkpLGU9dC5sZW5ndGg7ZS0tOyl7dmFyIG49VmUodFtlXSk7bm4uX2pRdWVyeUludGVyZmFjZS5jYWxsKG4sbi5kYXRhKCkpfX0pLFZlLmZuW1FlXT1ubi5falF1ZXJ5SW50ZXJmYWNlLFZlLmZuW1FlXS5Db25zdHJ1Y3Rvcj1ubixWZS5mbltRZV0ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBWZS5mbltRZV09R2Usbm4uX2pRdWVyeUludGVyZmFjZX0sbm4pLFBuPShvbj1cIi5cIisoc249XCJicy50YWJcIiksYW49KHJuPWUpLmZuLnRhYixsbj17SElERTpcImhpZGVcIitvbixISURERU46XCJoaWRkZW5cIitvbixTSE9XOlwic2hvd1wiK29uLFNIT1dOOlwic2hvd25cIitvbixDTElDS19EQVRBX0FQSTpcImNsaWNrXCIrb24rXCIuZGF0YS1hcGlcIn0saG49XCJkcm9wZG93bi1tZW51XCIsY249XCJhY3RpdmVcIix1bj1cImRpc2FibGVkXCIsZm49XCJmYWRlXCIsZG49XCJzaG93XCIsX249XCIuZHJvcGRvd25cIixnbj1cIi5uYXYsIC5saXN0LWdyb3VwXCIsbW49XCIuYWN0aXZlXCIscG49XCI+IGxpID4gLmFjdGl2ZVwiLHZuPSdbZGF0YS10b2dnbGU9XCJ0YWJcIl0sIFtkYXRhLXRvZ2dsZT1cInBpbGxcIl0sIFtkYXRhLXRvZ2dsZT1cImxpc3RcIl0nLEVuPVwiLmRyb3Bkb3duLXRvZ2dsZVwiLHluPVwiPiAuZHJvcGRvd24tbWVudSAuYWN0aXZlXCIsVG49ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe3RoaXMuX2VsZW1lbnQ9dH12YXIgdD1pLnByb3RvdHlwZTtyZXR1cm4gdC5zaG93PWZ1bmN0aW9uKCl7dmFyIG49dGhpcztpZighKHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSYmdGhpcy5fZWxlbWVudC5wYXJlbnROb2RlLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJnJuKHRoaXMuX2VsZW1lbnQpLmhhc0NsYXNzKGNuKXx8cm4odGhpcy5fZWxlbWVudCkuaGFzQ2xhc3ModW4pKSl7dmFyIHQsaSxlPXJuKHRoaXMuX2VsZW1lbnQpLmNsb3Nlc3QoZ24pWzBdLHI9Q24uZ2V0U2VsZWN0b3JGcm9tRWxlbWVudCh0aGlzLl9lbGVtZW50KTtpZihlKXt2YXIgcz1cIlVMXCI9PT1lLm5vZGVOYW1lP3BuOm1uO2k9KGk9cm4ubWFrZUFycmF5KHJuKGUpLmZpbmQocykpKVtpLmxlbmd0aC0xXX12YXIgbz1ybi5FdmVudChsbi5ISURFLHtyZWxhdGVkVGFyZ2V0OnRoaXMuX2VsZW1lbnR9KSxhPXJuLkV2ZW50KGxuLlNIT1cse3JlbGF0ZWRUYXJnZXQ6aX0pO2lmKGkmJnJuKGkpLnRyaWdnZXIobykscm4odGhpcy5fZWxlbWVudCkudHJpZ2dlcihhKSwhYS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIW8uaXNEZWZhdWx0UHJldmVudGVkKCkpe3ImJih0PXJuKHIpWzBdKSx0aGlzLl9hY3RpdmF0ZSh0aGlzLl9lbGVtZW50LGUpO3ZhciBsPWZ1bmN0aW9uKCl7dmFyIHQ9cm4uRXZlbnQobG4uSElEREVOLHtyZWxhdGVkVGFyZ2V0Om4uX2VsZW1lbnR9KSxlPXJuLkV2ZW50KGxuLlNIT1dOLHtyZWxhdGVkVGFyZ2V0Oml9KTtybihpKS50cmlnZ2VyKHQpLHJuKG4uX2VsZW1lbnQpLnRyaWdnZXIoZSl9O3Q/dGhpcy5fYWN0aXZhdGUodCx0LnBhcmVudE5vZGUsbCk6bCgpfX19LHQuZGlzcG9zZT1mdW5jdGlvbigpe3JuLnJlbW92ZURhdGEodGhpcy5fZWxlbWVudCxzbiksdGhpcy5fZWxlbWVudD1udWxsfSx0Ll9hY3RpdmF0ZT1mdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcyxyPShcIlVMXCI9PT1lLm5vZGVOYW1lP3JuKGUpLmZpbmQocG4pOnJuKGUpLmNoaWxkcmVuKG1uKSlbMF0scz1uJiZyJiZybihyKS5oYXNDbGFzcyhmbiksbz1mdW5jdGlvbigpe3JldHVybiBpLl90cmFuc2l0aW9uQ29tcGxldGUodCxyLG4pfTtpZihyJiZzKXt2YXIgYT1Dbi5nZXRUcmFuc2l0aW9uRHVyYXRpb25Gcm9tRWxlbWVudChyKTtybihyKS5vbmUoQ24uVFJBTlNJVElPTl9FTkQsbykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYSl9ZWxzZSBvKCl9LHQuX3RyYW5zaXRpb25Db21wbGV0ZT1mdW5jdGlvbih0LGUsbil7aWYoZSl7cm4oZSkucmVtb3ZlQ2xhc3MoZG4rXCIgXCIrY24pO3ZhciBpPXJuKGUucGFyZW50Tm9kZSkuZmluZCh5bilbMF07aSYmcm4oaSkucmVtb3ZlQ2xhc3MoY24pLFwidGFiXCI9PT1lLmdldEF0dHJpYnV0ZShcInJvbGVcIikmJmUuc2V0QXR0cmlidXRlKFwiYXJpYS1zZWxlY3RlZFwiLCExKX1pZihybih0KS5hZGRDbGFzcyhjbiksXCJ0YWJcIj09PXQuZ2V0QXR0cmlidXRlKFwicm9sZVwiKSYmdC5zZXRBdHRyaWJ1dGUoXCJhcmlhLXNlbGVjdGVkXCIsITApLENuLnJlZmxvdyh0KSxybih0KS5hZGRDbGFzcyhkbiksdC5wYXJlbnROb2RlJiZybih0LnBhcmVudE5vZGUpLmhhc0NsYXNzKGhuKSl7dmFyIHI9cm4odCkuY2xvc2VzdChfbilbMF07ciYmcm4ocikuZmluZChFbikuYWRkQ2xhc3MoY24pLHQuc2V0QXR0cmlidXRlKFwiYXJpYS1leHBhbmRlZFwiLCEwKX1uJiZuKCl9LGkuX2pRdWVyeUludGVyZmFjZT1mdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cm4odGhpcyksZT10LmRhdGEoc24pO2lmKGV8fChlPW5ldyBpKHRoaXMpLHQuZGF0YShzbixlKSksXCJzdHJpbmdcIj09dHlwZW9mIG4pe2lmKFwidW5kZWZpbmVkXCI9PXR5cGVvZiBlW25dKXRocm93IG5ldyBUeXBlRXJyb3IoJ05vIG1ldGhvZCBuYW1lZCBcIicrbisnXCInKTtlW25dKCl9fSl9LG8oaSxudWxsLFt7a2V5OlwiVkVSU0lPTlwiLGdldDpmdW5jdGlvbigpe3JldHVyblwiNC4xLjBcIn19XSksaX0oKSxybihkb2N1bWVudCkub24obG4uQ0xJQ0tfREFUQV9BUEksdm4sZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLFRuLl9qUXVlcnlJbnRlcmZhY2UuY2FsbChybih0aGlzKSxcInNob3dcIil9KSxybi5mbi50YWI9VG4uX2pRdWVyeUludGVyZmFjZSxybi5mbi50YWIuQ29uc3RydWN0b3I9VG4scm4uZm4udGFiLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcm4uZm4udGFiPWFuLFRuLl9qUXVlcnlJbnRlcmZhY2V9LFRuKTshZnVuY3Rpb24odCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5LiBqUXVlcnkgbXVzdCBiZSBpbmNsdWRlZCBiZWZvcmUgQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdC5cIik7dmFyIGU9dC5mbi5qcXVlcnkuc3BsaXQoXCIgXCIpWzBdLnNwbGl0KFwiLlwiKTtpZihlWzBdPDImJmVbMV08OXx8MT09PWVbMF0mJjk9PT1lWzFdJiZlWzJdPDF8fDQ8PWVbMF0pdGhyb3cgbmV3IEVycm9yKFwiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBhdCBsZWFzdCBqUXVlcnkgdjEuOS4xIGJ1dCBsZXNzIHRoYW4gdjQuMC4wXCIpfShlKSx0LlV0aWw9Q24sdC5BbGVydD1Jbix0LkJ1dHRvbj1Bbix0LkNhcm91c2VsPURuLHQuQ29sbGFwc2U9Ym4sdC5Ecm9wZG93bj1Tbix0Lk1vZGFsPXduLHQuUG9wb3Zlcj1Pbix0LlNjcm9sbHNweT1rbix0LlRhYj1Qbix0LlRvb2x0aXA9Tm4sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJvb3RzdHJhcC5taW4uanMubWFwIiwiLy8gaHR0cHM6Ly9kM2pzLm9yZyBWZXJzaW9uIDUuNS4wLiBDb3B5cmlnaHQgMjAxOCBNaWtlIEJvc3RvY2suXG4oZnVuY3Rpb24odCxuKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIG1vZHVsZT9uKGV4cG9ydHMpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW1wiZXhwb3J0c1wiXSxuKTpuKHQuZDM9dC5kM3x8e30pfSkodGhpcyxmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBuKHQsbil7cmV0dXJuIHQ8bj8tMTp0Pm4/MTp0Pj1uPzA6TmFOfWZ1bmN0aW9uIGUodCl7cmV0dXJuIDE9PT10Lmxlbmd0aCYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG4odChlKSxyKX19KHQpKSx7bGVmdDpmdW5jdGlvbihuLGUscixpKXtmb3IobnVsbD09ciYmKHI9MCksbnVsbD09aSYmKGk9bi5sZW5ndGgpO3I8aTspe3ZhciBvPXIraT4+PjE7dChuW29dLGUpPDA/cj1vKzE6aT1vfXJldHVybiByfSxyaWdodDpmdW5jdGlvbihuLGUscixpKXtmb3IobnVsbD09ciYmKHI9MCksbnVsbD09aSYmKGk9bi5sZW5ndGgpO3I8aTspe3ZhciBvPXIraT4+PjE7dChuW29dLGUpPjA/aT1vOnI9bysxfXJldHVybiByfX19ZnVuY3Rpb24gcih0LG4pe3JldHVyblt0LG5dfWZ1bmN0aW9uIGkodCl7cmV0dXJuIG51bGw9PT10P05hTjordH1mdW5jdGlvbiBvKHQsbil7dmFyIGUscixvPXQubGVuZ3RoLGE9MCx1PS0xLGY9MCxjPTA7aWYobnVsbD09bilmb3IoOysrdTxvOylpc05hTihlPWkodFt1XSkpfHwoYys9KHI9ZS1mKSooZS0oZis9ci8rK2EpKSk7ZWxzZSBmb3IoOysrdTxvOylpc05hTihlPWkobih0W3VdLHUsdCkpKXx8KGMrPShyPWUtZikqKGUtKGYrPXIvKythKSkpO2lmKGE+MSlyZXR1cm4gYy8oYS0xKX1mdW5jdGlvbiBhKHQsbil7dmFyIGU9byh0LG4pO3JldHVybiBlP01hdGguc3FydChlKTplfWZ1bmN0aW9uIHUodCxuKXt2YXIgZSxyLGksbz10Lmxlbmd0aCxhPS0xO2lmKG51bGw9PW4pe2Zvcig7KythPG87KWlmKG51bGwhPShlPXRbYV0pJiZlPj1lKWZvcihyPWk9ZTsrK2E8bzspbnVsbCE9KGU9dFthXSkmJihyPmUmJihyPWUpLGk8ZSYmKGk9ZSkpfWVsc2UgZm9yKDsrK2E8bzspaWYobnVsbCE9KGU9bih0W2FdLGEsdCkpJiZlPj1lKWZvcihyPWk9ZTsrK2E8bzspbnVsbCE9KGU9bih0W2FdLGEsdCkpJiYocj5lJiYocj1lKSxpPGUmJihpPWUpKTtyZXR1cm5bcixpXX1mdW5jdGlvbiBmKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBjKHQpe3JldHVybiB0fWZ1bmN0aW9uIHModCxuLGUpe3Q9K3Qsbj0rbixlPShpPWFyZ3VtZW50cy5sZW5ndGgpPDI/KG49dCx0PTAsMSk6aTwzPzE6K2U7Zm9yKHZhciByPS0xLGk9MHxNYXRoLm1heCgwLE1hdGguY2VpbCgobi10KS9lKSksbz1uZXcgQXJyYXkoaSk7KytyPGk7KW9bcl09dCtyKmU7cmV0dXJuIG99ZnVuY3Rpb24gbCh0LG4sZSl7dmFyIHIsaSxvLGEsdT0tMTtpZihuPStuLHQ9K3QsZT0rZSx0PT09biYmZT4wKXJldHVyblt0XTtpZigocj1uPHQpJiYoaT10LHQ9bixuPWkpLDA9PT0oYT1oKHQsbixlKSl8fCFpc0Zpbml0ZShhKSlyZXR1cm5bXTtpZihhPjApZm9yKHQ9TWF0aC5jZWlsKHQvYSksbj1NYXRoLmZsb29yKG4vYSksbz1uZXcgQXJyYXkoaT1NYXRoLmNlaWwobi10KzEpKTsrK3U8aTspb1t1XT0odCt1KSphO2Vsc2UgZm9yKHQ9TWF0aC5mbG9vcih0KmEpLG49TWF0aC5jZWlsKG4qYSksbz1uZXcgQXJyYXkoaT1NYXRoLmNlaWwodC1uKzEpKTsrK3U8aTspb1t1XT0odC11KS9hO3JldHVybiByJiZvLnJldmVyc2UoKSxvfWZ1bmN0aW9uIGgodCxuLGUpe3ZhciByPShuLXQpL01hdGgubWF4KDAsZSksaT1NYXRoLmZsb29yKE1hdGgubG9nKHIpL01hdGguTE4xMCksbz1yL01hdGgucG93KDEwLGkpO3JldHVybiBpPj0wPyhvPj1pcz8xMDpvPj1vcz81Om8+PWFzPzI6MSkqTWF0aC5wb3coMTAsaSk6LU1hdGgucG93KDEwLC1pKS8obz49aXM/MTA6bz49b3M/NTpvPj1hcz8yOjEpfWZ1bmN0aW9uIGQodCxuLGUpe3ZhciByPU1hdGguYWJzKG4tdCkvTWF0aC5tYXgoMCxlKSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKSksbz1yL2k7cmV0dXJuIG8+PWlzP2kqPTEwOm8+PW9zP2kqPTU6bz49YXMmJihpKj0yKSxuPHQ/LWk6aX1mdW5jdGlvbiBwKHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIHYodCxuLGUpe2lmKG51bGw9PWUmJihlPWkpLHI9dC5sZW5ndGgpe2lmKChuPStuKTw9MHx8cjwyKXJldHVybitlKHRbMF0sMCx0KTtpZihuPj0xKXJldHVybitlKHRbci0xXSxyLTEsdCk7dmFyIHIsbz0oci0xKSpuLGE9TWF0aC5mbG9vcihvKSx1PStlKHRbYV0sYSx0KTtyZXR1cm4gdSsoK2UodFthKzFdLGErMSx0KS11KSooby1hKX19ZnVuY3Rpb24gZyh0LG4pe3ZhciBlLHIsaT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PW4pe2Zvcig7KytvPGk7KWlmKG51bGwhPShlPXRbb10pJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPXRbb10pJiZlPnImJihyPWUpfWVsc2UgZm9yKDsrK288aTspaWYobnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPW4odFtvXSxvLHQpKSYmZT5yJiYocj1lKTtyZXR1cm4gcn1mdW5jdGlvbiB5KHQpe2Zvcih2YXIgbixlLHIsaT10Lmxlbmd0aCxvPS0xLGE9MDsrK288aTspYSs9dFtvXS5sZW5ndGg7Zm9yKGU9bmV3IEFycmF5KGEpOy0taT49MDspZm9yKG49KHI9dFtpXSkubGVuZ3RoOy0tbj49MDspZVstLWFdPXJbbl07cmV0dXJuIGV9ZnVuY3Rpb24gXyh0LG4pe3ZhciBlLHIsaT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PW4pe2Zvcig7KytvPGk7KWlmKG51bGwhPShlPXRbb10pJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPXRbb10pJiZyPmUmJihyPWUpfWVsc2UgZm9yKDsrK288aTspaWYobnVsbCE9KGU9bih0W29dLG8sdCkpJiZlPj1lKWZvcihyPWU7KytvPGk7KW51bGwhPShlPW4odFtvXSxvLHQpKSYmcj5lJiYocj1lKTtyZXR1cm4gcn1mdW5jdGlvbiBiKHQpe2lmKCEoaT10Lmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciBuPS0xLGU9Xyh0LG0pLHI9bmV3IEFycmF5KGUpOysrbjxlOylmb3IodmFyIGksbz0tMSxhPXJbbl09bmV3IEFycmF5KGkpOysrbzxpOylhW29dPXRbb11bbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdC5sZW5ndGh9ZnVuY3Rpb24geCh0KXtyZXR1cm4gdH1mdW5jdGlvbiB3KHQpe3JldHVyblwidHJhbnNsYXRlKFwiKyh0Ky41KStcIiwwKVwifWZ1bmN0aW9uIE0odCl7cmV0dXJuXCJ0cmFuc2xhdGUoMCxcIisodCsuNSkrXCIpXCJ9ZnVuY3Rpb24gQSgpe3JldHVybiF0aGlzLl9fYXhpc31mdW5jdGlvbiBUKHQsbil7ZnVuY3Rpb24gZShlKXt2YXIgaD1udWxsPT1pP24udGlja3M/bi50aWNrcy5hcHBseShuLHIpOm4uZG9tYWluKCk6aSxkPW51bGw9PW8/bi50aWNrRm9ybWF0P24udGlja0Zvcm1hdC5hcHBseShuLHIpOng6byxwPU1hdGgubWF4KGEsMCkrZix2PW4ucmFuZ2UoKSxnPSt2WzBdKy41LHk9K3Zbdi5sZW5ndGgtMV0rLjUsXz0obi5iYW5kd2lkdGg/ZnVuY3Rpb24odCl7dmFyIG49TWF0aC5tYXgoMCx0LmJhbmR3aWR0aCgpLTEpLzI7cmV0dXJuIHQucm91bmQoKSYmKG49TWF0aC5yb3VuZChuKSksZnVuY3Rpb24oZSl7cmV0dXJuK3QoZSkrbn19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4rdChuKX19KShuLmNvcHkoKSksYj1lLnNlbGVjdGlvbj9lLnNlbGVjdGlvbigpOmUsbT1iLnNlbGVjdEFsbChcIi5kb21haW5cIikuZGF0YShbbnVsbF0pLHc9Yi5zZWxlY3RBbGwoXCIudGlja1wiKS5kYXRhKGgsbikub3JkZXIoKSxNPXcuZXhpdCgpLFQ9dy5lbnRlcigpLmFwcGVuZChcImdcIikuYXR0cihcImNsYXNzXCIsXCJ0aWNrXCIpLE49dy5zZWxlY3QoXCJsaW5lXCIpLFM9dy5zZWxlY3QoXCJ0ZXh0XCIpO209bS5tZXJnZShtLmVudGVyKCkuaW5zZXJ0KFwicGF0aFwiLFwiLnRpY2tcIikuYXR0cihcImNsYXNzXCIsXCJkb21haW5cIikuYXR0cihcInN0cm9rZVwiLFwiIzAwMFwiKSksdz13Lm1lcmdlKFQpLE49Ti5tZXJnZShULmFwcGVuZChcImxpbmVcIikuYXR0cihcInN0cm9rZVwiLFwiIzAwMFwiKS5hdHRyKHMrXCIyXCIsYyphKSksUz1TLm1lcmdlKFQuYXBwZW5kKFwidGV4dFwiKS5hdHRyKFwiZmlsbFwiLFwiIzAwMFwiKS5hdHRyKHMsYypwKS5hdHRyKFwiZHlcIix0PT09ZnM/XCIwZW1cIjp0PT09c3M/XCIwLjcxZW1cIjpcIjAuMzJlbVwiKSksZSE9PWImJihtPW0udHJhbnNpdGlvbihlKSx3PXcudHJhbnNpdGlvbihlKSxOPU4udHJhbnNpdGlvbihlKSxTPVMudHJhbnNpdGlvbihlKSxNPU0udHJhbnNpdGlvbihlKS5hdHRyKFwib3BhY2l0eVwiLGhzKS5hdHRyKFwidHJhbnNmb3JtXCIsZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9Xyh0KSk/bCh0KTp0aGlzLmdldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiKX0pLFQuYXR0cihcIm9wYWNpdHlcIixocykuYXR0cihcInRyYW5zZm9ybVwiLGZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMucGFyZW50Tm9kZS5fX2F4aXM7cmV0dXJuIGwobiYmaXNGaW5pdGUobj1uKHQpKT9uOl8odCkpfSkpLE0ucmVtb3ZlKCksbS5hdHRyKFwiZFwiLHQ9PT1sc3x8dD09Y3M/XCJNXCIrYyp1K1wiLFwiK2crXCJIMC41VlwiK3krXCJIXCIrYyp1OlwiTVwiK2crXCIsXCIrYyp1K1wiVjAuNUhcIit5K1wiVlwiK2MqdSksdy5hdHRyKFwib3BhY2l0eVwiLDEpLmF0dHIoXCJ0cmFuc2Zvcm1cIixmdW5jdGlvbih0KXtyZXR1cm4gbChfKHQpKX0pLE4uYXR0cihzK1wiMlwiLGMqYSksUy5hdHRyKHMsYypwKS50ZXh0KGQpLGIuZmlsdGVyKEEpLmF0dHIoXCJmaWxsXCIsXCJub25lXCIpLmF0dHIoXCJmb250LXNpemVcIiwxMCkuYXR0cihcImZvbnQtZmFtaWx5XCIsXCJzYW5zLXNlcmlmXCIpLmF0dHIoXCJ0ZXh0LWFuY2hvclwiLHQ9PT1jcz9cInN0YXJ0XCI6dD09PWxzP1wiZW5kXCI6XCJtaWRkbGVcIiksYi5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5fX2F4aXM9X30pfXZhciByPVtdLGk9bnVsbCxvPW51bGwsYT02LHU9NixmPTMsYz10PT09ZnN8fHQ9PT1scz8tMToxLHM9dD09PWxzfHx0PT09Y3M/XCJ4XCI6XCJ5XCIsbD10PT09ZnN8fHQ9PT1zcz93Ok07cmV0dXJuIGUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlKTpufSxlLnRpY2tzPWZ1bmN0aW9uKCl7cmV0dXJuIHI9dXMuY2FsbChhcmd1bWVudHMpLGV9LGUudGlja0FyZ3VtZW50cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT10P1tdOnVzLmNhbGwodCksZSk6ci5zbGljZSgpfSxlLnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOnVzLmNhbGwodCksZSk6aSYmaS5zbGljZSgpfSxlLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxlKTpvfSxlLnRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXU9K3QsZSk6YX0sZS50aWNrU2l6ZUlubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LGUpOmF9LGUudGlja1NpemVPdXRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0rdCxlKTp1fSxlLnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmPSt0LGUpOmZ9LGV9ZnVuY3Rpb24gTigpe2Zvcih2YXIgdCxuPTAsZT1hcmd1bWVudHMubGVuZ3RoLHI9e307bjxlOysrbil7aWYoISh0PWFyZ3VtZW50c1tuXStcIlwiKXx8dCBpbiByKXRocm93IG5ldyBFcnJvcihcImlsbGVnYWwgdHlwZTogXCIrdCk7clt0XT1bXX1yZXR1cm4gbmV3IFMocil9ZnVuY3Rpb24gUyh0KXt0aGlzLl89dH1mdW5jdGlvbiBFKHQsbixlKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTsrK3IpaWYodFtyXS5uYW1lPT09bil7dFtyXT1kcyx0PXQuc2xpY2UoMCxyKS5jb25jYXQodC5zbGljZShyKzEpKTticmVha31yZXR1cm4gbnVsbCE9ZSYmdC5wdXNoKHtuYW1lOm4sdmFsdWU6ZX0pLHR9ZnVuY3Rpb24gayh0KXt2YXIgbj10Kz1cIlwiLGU9bi5pbmRleE9mKFwiOlwiKTtyZXR1cm4gZT49MCYmXCJ4bWxuc1wiIT09KG49dC5zbGljZSgwLGUpKSYmKHQ9dC5zbGljZShlKzEpKSx2cy5oYXNPd25Qcm9wZXJ0eShuKT97c3BhY2U6dnNbbl0sbG9jYWw6dH06dH1mdW5jdGlvbiBDKHQpe3ZhciBuPWsodCk7cmV0dXJuKG4ubG9jYWw/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX19OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMub3duZXJEb2N1bWVudCxlPXRoaXMubmFtZXNwYWNlVVJJO3JldHVybiBlPT09cHMmJm4uZG9jdW1lbnRFbGVtZW50Lm5hbWVzcGFjZVVSST09PXBzP24uY3JlYXRlRWxlbWVudCh0KTpuLmNyZWF0ZUVsZW1lbnROUyhlLHQpfX0pKG4pfWZ1bmN0aW9uIFAoKXt9ZnVuY3Rpb24geih0KXtyZXR1cm4gbnVsbD09dD9QOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcih0KX19ZnVuY3Rpb24gUigpe3JldHVybltdfWZ1bmN0aW9uIEwodCl7cmV0dXJuIG51bGw9PXQ/UjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwodCl9fWZ1bmN0aW9uIEQodCl7cmV0dXJuIG5ldyBBcnJheSh0Lmxlbmd0aCl9ZnVuY3Rpb24gVSh0LG4pe3RoaXMub3duZXJEb2N1bWVudD10Lm93bmVyRG9jdW1lbnQsdGhpcy5uYW1lc3BhY2VVUkk9dC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD10LHRoaXMuX19kYXRhX189bn1mdW5jdGlvbiBxKHQsbixlLHIsaSxvKXtmb3IodmFyIGEsdT0wLGY9bi5sZW5ndGgsYz1vLmxlbmd0aDt1PGM7Kyt1KShhPW5bdV0pPyhhLl9fZGF0YV9fPW9bdV0sclt1XT1hKTplW3VdPW5ldyBVKHQsb1t1XSk7Zm9yKDt1PGY7Kyt1KShhPW5bdV0pJiYoaVt1XT1hKX1mdW5jdGlvbiBPKHQsbixlLHIsaSxvLGEpe3ZhciB1LGYsYyxzPXt9LGw9bi5sZW5ndGgsaD1vLmxlbmd0aCxkPW5ldyBBcnJheShsKTtmb3IodT0wO3U8bDsrK3UpKGY9blt1XSkmJihkW3VdPWM9bXMrYS5jYWxsKGYsZi5fX2RhdGFfXyx1LG4pLGMgaW4gcz9pW3VdPWY6c1tjXT1mKTtmb3IodT0wO3U8aDsrK3UpKGY9c1tjPW1zK2EuY2FsbCh0LG9bdV0sdSxvKV0pPyhyW3VdPWYsZi5fX2RhdGFfXz1vW3VdLHNbY109bnVsbCk6ZVt1XT1uZXcgVSh0LG9bdV0pO2Zvcih1PTA7dTxsOysrdSkoZj1uW3VdKSYmc1tkW3VdXT09PWYmJihpW3VdPWYpfWZ1bmN0aW9uIFkodCxuKXtyZXR1cm4gdDxuPy0xOnQ+bj8xOnQ+PW4/MDpOYU59ZnVuY3Rpb24gQih0KXtyZXR1cm4gdC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXd9ZnVuY3Rpb24gRih0LG4pe3JldHVybiB0LnN0eWxlLmdldFByb3BlcnR5VmFsdWUobil8fEIodCkuZ2V0Q29tcHV0ZWRTdHlsZSh0LG51bGwpLmdldFByb3BlcnR5VmFsdWUobil9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pfWZ1bmN0aW9uIGoodCl7cmV0dXJuIHQuY2xhc3NMaXN0fHxuZXcgSCh0KX1mdW5jdGlvbiBIKHQpe3RoaXMuX25vZGU9dCx0aGlzLl9uYW1lcz1JKHQuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCIpfWZ1bmN0aW9uIFgodCxuKXtmb3IodmFyIGU9aih0KSxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KWUuYWRkKG5bcl0pfWZ1bmN0aW9uIEcodCxuKXtmb3IodmFyIGU9aih0KSxyPS0xLGk9bi5sZW5ndGg7KytyPGk7KWUucmVtb3ZlKG5bcl0pfWZ1bmN0aW9uIFYoKXt0aGlzLnRleHRDb250ZW50PVwiXCJ9ZnVuY3Rpb24gJCgpe3RoaXMuaW5uZXJIVE1MPVwiXCJ9ZnVuY3Rpb24gVygpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBaKCl7dGhpcy5wcmV2aW91c1NpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcyx0aGlzLnBhcmVudE5vZGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gUSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIEooKXt2YXIgdD10aGlzLnBhcmVudE5vZGU7dCYmdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiBLKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jbG9uZU5vZGUoITEpLHRoaXMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIHR0KCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5jbG9uZU5vZGUoITApLHRoaXMubmV4dFNpYmxpbmcpfWZ1bmN0aW9uIG50KHQsbixlKXtyZXR1cm4gdD1ldCh0LG4sZSksZnVuY3Rpb24obil7dmFyIGU9bi5yZWxhdGVkVGFyZ2V0O2UmJihlPT09dGhpc3x8OCZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMpKXx8dC5jYWxsKHRoaXMsbil9fWZ1bmN0aW9uIGV0KG4sZSxyKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIG89dC5ldmVudDt0LmV2ZW50PWk7dHJ5e24uY2FsbCh0aGlzLHRoaXMuX19kYXRhX18sZSxyKX1maW5hbGx5e3QuZXZlbnQ9b319fWZ1bmN0aW9uIHJ0KHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMuX19vbjtpZihuKXtmb3IodmFyIGUscj0wLGk9LTEsbz1uLmxlbmd0aDtyPG87KytyKWU9bltyXSx0LnR5cGUmJmUudHlwZSE9PXQudHlwZXx8ZS5uYW1lIT09dC5uYW1lP25bKytpXT1lOnRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLnR5cGUsZS5saXN0ZW5lcixlLmNhcHR1cmUpOysraT9uLmxlbmd0aD1pOmRlbGV0ZSB0aGlzLl9fb259fX1mdW5jdGlvbiBpdCh0LG4sZSl7dmFyIHI9eHMuaGFzT3duUHJvcGVydHkodC50eXBlKT9udDpldDtyZXR1cm4gZnVuY3Rpb24oaSxvLGEpe3ZhciB1LGY9dGhpcy5fX29uLGM9cihuLG8sYSk7aWYoZilmb3IodmFyIHM9MCxsPWYubGVuZ3RoO3M8bDsrK3MpaWYoKHU9ZltzXSkudHlwZT09PXQudHlwZSYmdS5uYW1lPT09dC5uYW1lKXJldHVybiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIodS50eXBlLHUubGlzdGVuZXIsdS5jYXB0dXJlKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIodS50eXBlLHUubGlzdGVuZXI9Yyx1LmNhcHR1cmU9ZSksdm9pZCh1LnZhbHVlPW4pO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcih0LnR5cGUsYyxlKSx1PXt0eXBlOnQudHlwZSxuYW1lOnQubmFtZSx2YWx1ZTpuLGxpc3RlbmVyOmMsY2FwdHVyZTplfSxmP2YucHVzaCh1KTp0aGlzLl9fb249W3VdfX1mdW5jdGlvbiBvdChuLGUscixpKXt2YXIgbz10LmV2ZW50O24uc291cmNlRXZlbnQ9dC5ldmVudCx0LmV2ZW50PW47dHJ5e3JldHVybiBlLmFwcGx5KHIsaSl9ZmluYWxseXt0LmV2ZW50PW99fWZ1bmN0aW9uIGF0KHQsbixlKXt2YXIgcj1CKHQpLGk9ci5DdXN0b21FdmVudDtcImZ1bmN0aW9uXCI9PXR5cGVvZiBpP2k9bmV3IGkobixlKTooaT1yLmRvY3VtZW50LmNyZWF0ZUV2ZW50KFwiRXZlbnRcIiksZT8oaS5pbml0RXZlbnQobixlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlKSxpLmRldGFpbD1lLmRldGFpbCk6aS5pbml0RXZlbnQobiwhMSwhMSkpLHQuZGlzcGF0Y2hFdmVudChpKX1mdW5jdGlvbiB1dCh0LG4pe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9bn1mdW5jdGlvbiBmdCgpe3JldHVybiBuZXcgdXQoW1tkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdXSx3cyl9ZnVuY3Rpb24gY3QodCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHQ/bmV3IHV0KFtbZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KV1dLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgdXQoW1t0XV0sd3MpfWZ1bmN0aW9uIHN0KCl7cmV0dXJuIG5ldyBsdH1mdW5jdGlvbiBsdCgpe3RoaXMuXz1cIkBcIisoKytNcykudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIGh0KCl7Zm9yKHZhciBuLGU9dC5ldmVudDtuPWUuc291cmNlRXZlbnQ7KWU9bjtyZXR1cm4gZX1mdW5jdGlvbiBkdCh0LG4pe3ZhciBlPXQub3duZXJTVkdFbGVtZW50fHx0O2lmKGUuY3JlYXRlU1ZHUG9pbnQpe3ZhciByPWUuY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gci54PW4uY2xpZW50WCxyLnk9bi5jbGllbnRZLHI9ci5tYXRyaXhUcmFuc2Zvcm0odC5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpLFtyLngsci55XX12YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltuLmNsaWVudFgtaS5sZWZ0LXQuY2xpZW50TGVmdCxuLmNsaWVudFktaS50b3AtdC5jbGllbnRUb3BdfWZ1bmN0aW9uIHB0KHQpe3ZhciBuPWh0KCk7cmV0dXJuIG4uY2hhbmdlZFRvdWNoZXMmJihuPW4uY2hhbmdlZFRvdWNoZXNbMF0pLGR0KHQsbil9ZnVuY3Rpb24gdnQodCxuLGUpe2FyZ3VtZW50cy5sZW5ndGg8MyYmKGU9bixuPWh0KCkuY2hhbmdlZFRvdWNoZXMpO2Zvcih2YXIgcixpPTAsbz1uP24ubGVuZ3RoOjA7aTxvOysraSlpZigocj1uW2ldKS5pZGVudGlmaWVyPT09ZSlyZXR1cm4gZHQodCxyKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBndCgpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24geXQoKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBfdCh0KXt2YXIgbj10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxlPWN0KHQpLm9uKFwiZHJhZ3N0YXJ0LmRyYWdcIix5dCwhMCk7XCJvbnNlbGVjdHN0YXJ0XCJpbiBuP2Uub24oXCJzZWxlY3RzdGFydC5kcmFnXCIseXQsITApOihuLl9fbm9zZWxlY3Q9bi5zdHlsZS5Nb3pVc2VyU2VsZWN0LG4uc3R5bGUuTW96VXNlclNlbGVjdD1cIm5vbmVcIil9ZnVuY3Rpb24gYnQodCxuKXt2YXIgZT10LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPWN0KHQpLm9uKFwiZHJhZ3N0YXJ0LmRyYWdcIixudWxsKTtuJiYoci5vbihcImNsaWNrLmRyYWdcIix5dCwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe3Iub24oXCJjbGljay5kcmFnXCIsbnVsbCl9LDApKSxcIm9uc2VsZWN0c3RhcnRcImluIGU/ci5vbihcInNlbGVjdHN0YXJ0LmRyYWdcIixudWxsKTooZS5zdHlsZS5Nb3pVc2VyU2VsZWN0PWUuX19ub3NlbGVjdCxkZWxldGUgZS5fX25vc2VsZWN0KX1mdW5jdGlvbiBtdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24geHQodCxuLGUscixpLG8sYSx1LGYsYyl7dGhpcy50YXJnZXQ9dCx0aGlzLnR5cGU9bix0aGlzLnN1YmplY3Q9ZSx0aGlzLmlkZW50aWZpZXI9cix0aGlzLmFjdGl2ZT1pLHRoaXMueD1vLHRoaXMueT1hLHRoaXMuZHg9dSx0aGlzLmR5PWYsdGhpcy5fPWN9ZnVuY3Rpb24gd3QoKXtyZXR1cm4hdC5ldmVudC5idXR0b259ZnVuY3Rpb24gTXQoKXtyZXR1cm4gdGhpcy5wYXJlbnROb2RlfWZ1bmN0aW9uIEF0KG4pe3JldHVybiBudWxsPT1uP3t4OnQuZXZlbnQueCx5OnQuZXZlbnQueX06bn1mdW5jdGlvbiBUdCgpe3JldHVyblwib250b3VjaHN0YXJ0XCJpbiB0aGlzfWZ1bmN0aW9uIE50KHQsbixlKXt0LnByb3RvdHlwZT1uLnByb3RvdHlwZT1lLGUuY29uc3RydWN0b3I9dH1mdW5jdGlvbiBTdCh0LG4pe3ZhciBlPU9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUpO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXTtyZXR1cm4gZX1mdW5jdGlvbiBFdCgpe31mdW5jdGlvbiBrdCh0KXt2YXIgbjtyZXR1cm4gdD0odCtcIlwiKS50cmltKCkudG9Mb3dlckNhc2UoKSwobj1Tcy5leGVjKHQpKT8obj1wYXJzZUludChuWzFdLDE2KSxuZXcgTHQobj4+OCYxNXxuPj40JjI0MCxuPj40JjE1fDI0MCZuLCgxNSZuKTw8NHwxNSZuLDEpKToobj1Fcy5leGVjKHQpKT9DdChwYXJzZUludChuWzFdLDE2KSk6KG49a3MuZXhlYyh0KSk/bmV3IEx0KG5bMV0sblsyXSxuWzNdLDEpOihuPUNzLmV4ZWModCkpP25ldyBMdCgyNTUqblsxXS8xMDAsMjU1Km5bMl0vMTAwLDI1NSpuWzNdLzEwMCwxKToobj1Qcy5leGVjKHQpKT9QdChuWzFdLG5bMl0sblszXSxuWzRdKToobj16cy5leGVjKHQpKT9QdCgyNTUqblsxXS8xMDAsMjU1Km5bMl0vMTAwLDI1NSpuWzNdLzEwMCxuWzRdKToobj1Scy5leGVjKHQpKT9VdChuWzFdLG5bMl0vMTAwLG5bM10vMTAwLDEpOihuPUxzLmV4ZWModCkpP1V0KG5bMV0sblsyXS8xMDAsblszXS8xMDAsbls0XSk6RHMuaGFzT3duUHJvcGVydHkodCk/Q3QoRHNbdF0pOlwidHJhbnNwYXJlbnRcIj09PXQ/bmV3IEx0KE5hTixOYU4sTmFOLDApOm51bGx9ZnVuY3Rpb24gQ3QodCl7cmV0dXJuIG5ldyBMdCh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gUHQodCxuLGUscil7cmV0dXJuIHI8PTAmJih0PW49ZT1OYU4pLG5ldyBMdCh0LG4sZSxyKX1mdW5jdGlvbiB6dCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIEV0fHwodD1rdCh0KSksdD8odD10LnJnYigpLG5ldyBMdCh0LnIsdC5nLHQuYix0Lm9wYWNpdHkpKTpuZXcgTHR9ZnVuY3Rpb24gUnQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3p0KHQpOm5ldyBMdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gTHQodCxuLGUscil7dGhpcy5yPSt0LHRoaXMuZz0rbix0aGlzLmI9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIER0KHQpe3JldHVybigodD1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHQpfHwwKSkpPDE2P1wiMFwiOlwiXCIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFV0KHQsbixlLHIpe3JldHVybiByPD0wP3Q9bj1lPU5hTjplPD0wfHxlPj0xP3Q9bj1OYU46bjw9MCYmKHQ9TmFOKSxuZXcgT3QodCxuLGUscil9ZnVuY3Rpb24gcXQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP2Z1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBPdClyZXR1cm4gbmV3IE90KHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEV0fHwodD1rdCh0KSksIXQpcmV0dXJuIG5ldyBPdDtpZih0IGluc3RhbmNlb2YgT3QpcmV0dXJuIHQ7dmFyIG49KHQ9dC5yZ2IoKSkuci8yNTUsZT10LmcvMjU1LHI9dC5iLzI1NSxpPU1hdGgubWluKG4sZSxyKSxvPU1hdGgubWF4KG4sZSxyKSxhPU5hTix1PW8taSxmPShvK2kpLzI7cmV0dXJuIHU/KGE9bj09PW8/KGUtcikvdSs2KihlPHIpOmU9PT1vPyhyLW4pL3UrMjoobi1lKS91KzQsdS89ZjwuNT9vK2k6Mi1vLWksYSo9NjApOnU9Zj4wJiZmPDE/MDphLG5ldyBPdChhLHUsZix0Lm9wYWNpdHkpfSh0KTpuZXcgT3QodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIE90KHQsbixlLHIpe3RoaXMuaD0rdCx0aGlzLnM9K24sdGhpcy5sPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBZdCh0LG4sZSl7cmV0dXJuIDI1NSoodDw2MD9uKyhlLW4pKnQvNjA6dDwxODA/ZTp0PDI0MD9uKyhlLW4pKigyNDAtdCkvNjA6bil9ZnVuY3Rpb24gQnQodCl7aWYodCBpbnN0YW5jZW9mIEl0KXJldHVybiBuZXcgSXQodC5sLHQuYSx0LmIsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgV3Qpe2lmKGlzTmFOKHQuaCkpcmV0dXJuIG5ldyBJdCh0LmwsMCwwLHQub3BhY2l0eSk7dmFyIG49dC5oKlVzO3JldHVybiBuZXcgSXQodC5sLE1hdGguY29zKG4pKnQuYyxNYXRoLnNpbihuKSp0LmMsdC5vcGFjaXR5KX10IGluc3RhbmNlb2YgTHR8fCh0PXp0KHQpKTt2YXIgZSxyLGk9R3QodC5yKSxvPUd0KHQuZyksYT1HdCh0LmIpLHU9anQoKC4yMjI1MDQ1KmkrLjcxNjg3ODYqbysuMDYwNjE2OSphKS9Zcyk7cmV0dXJuIGk9PT1vJiZvPT09YT9lPXI9dTooZT1qdCgoLjQzNjA3NDcqaSsuMzg1MDY0OSpvKy4xNDMwODA0KmEpL09zKSxyPWp0KCguMDEzOTMyMippKy4wOTcxMDQ1Km8rLjcxNDE3MzMqYSkvQnMpKSxuZXcgSXQoMTE2KnUtMTYsNTAwKihlLXUpLDIwMCoodS1yKSx0Lm9wYWNpdHkpfWZ1bmN0aW9uIEZ0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9CdCh0KTpuZXcgSXQodCxuLGUsbnVsbD09cj8xOnIpfWZ1bmN0aW9uIEl0KHQsbixlLHIpe3RoaXMubD0rdCx0aGlzLmE9K24sdGhpcy5iPStlLHRoaXMub3BhY2l0eT0rcn1mdW5jdGlvbiBqdCh0KXtyZXR1cm4gdD5Icz9NYXRoLnBvdyh0LDEvMyk6dC9qcytGc31mdW5jdGlvbiBIdCh0KXtyZXR1cm4gdD5Jcz90KnQqdDpqcyoodC1Gcyl9ZnVuY3Rpb24gWHQodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBHdCh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBWdCh0KXtpZih0IGluc3RhbmNlb2YgV3QpcmV0dXJuIG5ldyBXdCh0LmgsdC5jLHQubCx0Lm9wYWNpdHkpO2lmKHQgaW5zdGFuY2VvZiBJdHx8KHQ9QnQodCkpLDA9PT10LmEmJjA9PT10LmIpcmV0dXJuIG5ldyBXdChOYU4sMCx0LmwsdC5vcGFjaXR5KTt2YXIgbj1NYXRoLmF0YW4yKHQuYix0LmEpKnFzO3JldHVybiBuZXcgV3QobjwwP24rMzYwOm4sTWF0aC5zcXJ0KHQuYSp0LmErdC5iKnQuYiksdC5sLHQub3BhY2l0eSl9ZnVuY3Rpb24gJHQodCxuLGUscil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1Z0KHQpOm5ldyBXdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gV3QodCxuLGUscil7dGhpcy5oPSt0LHRoaXMuYz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIFp0KHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgUXQpcmV0dXJuIG5ldyBRdCh0LmgsdC5zLHQubCx0Lm9wYWNpdHkpO3QgaW5zdGFuY2VvZiBMdHx8KHQ9enQodCkpO3ZhciBuPXQuci8yNTUsZT10LmcvMjU1LHI9dC5iLzI1NSxpPShacypyKyRzKm4tV3MqZSkvKFpzKyRzLVdzKSxvPXItaSxhPShWcyooZS1pKS1YcypvKS9Hcyx1PU1hdGguc3FydChhKmErbypvKS8oVnMqaSooMS1pKSksZj11P01hdGguYXRhbjIoYSxvKSpxcy0xMjA6TmFOO3JldHVybiBuZXcgUXQoZjwwP2YrMzYwOmYsdSxpLHQub3BhY2l0eSl9KHQpOm5ldyBRdCh0LG4sZSxudWxsPT1yPzE6cil9ZnVuY3Rpb24gUXQodCxuLGUscil7dGhpcy5oPSt0LHRoaXMucz0rbix0aGlzLmw9K2UsdGhpcy5vcGFjaXR5PStyfWZ1bmN0aW9uIEp0KHQsbixlLHIsaSl7dmFyIG89dCp0LGE9byp0O3JldHVybigoMS0zKnQrMypvLWEpKm4rKDQtNipvKzMqYSkqZSsoMSszKnQrMypvLTMqYSkqcithKmkpLzZ9ZnVuY3Rpb24gS3QodCl7dmFyIG49dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9ZTw9MD9lPTA6ZT49MT8oZT0xLG4tMSk6TWF0aC5mbG9vcihlKm4pLGk9dFtyXSxvPXRbcisxXSxhPXI+MD90W3ItMV06MippLW8sdT1yPG4tMT90W3IrMl06MipvLWk7cmV0dXJuIEp0KChlLXIvbikqbixhLGksbyx1KX19ZnVuY3Rpb24gdG4odCl7dmFyIG49dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPU1hdGguZmxvb3IoKChlJT0xKTwwPysrZTplKSpuKSxpPXRbKHIrbi0xKSVuXSxvPXRbciVuXSxhPXRbKHIrMSklbl0sdT10WyhyKzIpJW5dO3JldHVybiBKdCgoZS1yL24pKm4saSxvLGEsdSl9fWZ1bmN0aW9uIG5uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBlbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdCtlKm59fWZ1bmN0aW9uIHJuKHQsbil7dmFyIGU9bi10O3JldHVybiBlP2VuKHQsZT4xODB8fGU8LTE4MD9lLTM2MCpNYXRoLnJvdW5kKGUvMzYwKTplKTpubihpc05hTih0KT9uOnQpfWZ1bmN0aW9uIG9uKHQpe3JldHVybiAxPT0odD0rdCk/YW46ZnVuY3Rpb24obixlKXtyZXR1cm4gZS1uP2Z1bmN0aW9uKHQsbixlKXtyZXR1cm4gdD1NYXRoLnBvdyh0LGUpLG49TWF0aC5wb3cobixlKS10LGU9MS9lLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnBvdyh0K3IqbixlKX19KG4sZSx0KTpubihpc05hTihuKT9lOm4pfX1mdW5jdGlvbiBhbih0LG4pe3ZhciBlPW4tdDtyZXR1cm4gZT9lbih0LGUpOm5uKGlzTmFOKHQpP246dCl9ZnVuY3Rpb24gdW4odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlLHIsaT1uLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPW5ldyBBcnJheShpKSx1PW5ldyBBcnJheShpKTtmb3IoZT0wO2U8aTsrK2Upcj1SdChuW2VdKSxvW2VdPXIucnx8MCxhW2VdPXIuZ3x8MCx1W2VdPXIuYnx8MDtyZXR1cm4gbz10KG8pLGE9dChhKSx1PXQodSksci5vcGFjaXR5PTEsZnVuY3Rpb24odCl7cmV0dXJuIHIucj1vKHQpLHIuZz1hKHQpLHIuYj11KHQpLHIrXCJcIn19fWZ1bmN0aW9uIGZuKHQsbil7dmFyIGUscj1uP24ubGVuZ3RoOjAsaT10P01hdGgubWluKHIsdC5sZW5ndGgpOjAsbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkocik7Zm9yKGU9MDtlPGk7KytlKW9bZV09ZG4odFtlXSxuW2VdKTtmb3IoO2U8cjsrK2UpYVtlXT1uW2VdO3JldHVybiBmdW5jdGlvbih0KXtmb3IoZT0wO2U8aTsrK2UpYVtlXT1vW2VdKHQpO3JldHVybiBhfX1mdW5jdGlvbiBjbih0LG4pe3ZhciBlPW5ldyBEYXRlO3JldHVybiB0PSt0LG4tPXQsZnVuY3Rpb24ocil7cmV0dXJuIGUuc2V0VGltZSh0K24qciksZX19ZnVuY3Rpb24gc24odCxuKXtyZXR1cm4gdD0rdCxuLT10LGZ1bmN0aW9uKGUpe3JldHVybiB0K24qZX19ZnVuY3Rpb24gbG4odCxuKXt2YXIgZSxyPXt9LGk9e307bnVsbCE9PXQmJlwib2JqZWN0XCI9PXR5cGVvZiB0fHwodD17fSksbnVsbCE9PW4mJlwib2JqZWN0XCI9PXR5cGVvZiBufHwobj17fSk7Zm9yKGUgaW4gbillIGluIHQ/cltlXT1kbih0W2VdLG5bZV0pOmlbZV09bltlXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKGUgaW4gcilpW2VdPXJbZV0odCk7cmV0dXJuIGl9fWZ1bmN0aW9uIGhuKHQsbil7dmFyIGUscixpLG89YWwubGFzdEluZGV4PXVsLmxhc3RJbmRleD0wLGE9LTEsdT1bXSxmPVtdO2Zvcih0Kz1cIlwiLG4rPVwiXCI7KGU9YWwuZXhlYyh0KSkmJihyPXVsLmV4ZWMobikpOykoaT1yLmluZGV4KT5vJiYoaT1uLnNsaWNlKG8saSksdVthXT91W2FdKz1pOnVbKythXT1pKSwoZT1lWzBdKT09PShyPXJbMF0pP3VbYV0/dVthXSs9cjp1WysrYV09cjoodVsrK2FdPW51bGwsZi5wdXNoKHtpOmEseDpzbihlLHIpfSkpLG89dWwubGFzdEluZGV4O3JldHVybiBvPG4ubGVuZ3RoJiYoaT1uLnNsaWNlKG8pLHVbYV0/dVthXSs9aTp1WysrYV09aSksdS5sZW5ndGg8Mj9mWzBdP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdChuKStcIlwifX0oZlswXS54KTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19KG4pOihuPWYubGVuZ3RoLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTA7cjxuOysrcil1WyhlPWZbcl0pLmldPWUueCh0KTtyZXR1cm4gdS5qb2luKFwiXCIpfSl9ZnVuY3Rpb24gZG4odCxuKXt2YXIgZSxyPXR5cGVvZiBuO3JldHVybiBudWxsPT1ufHxcImJvb2xlYW5cIj09PXI/bm4obik6KFwibnVtYmVyXCI9PT1yP3NuOlwic3RyaW5nXCI9PT1yPyhlPWt0KG4pKT8obj1lLHJsKTpobjpuIGluc3RhbmNlb2Yga3Q/cmw6biBpbnN0YW5jZW9mIERhdGU/Y246QXJyYXkuaXNBcnJheShuKT9mbjpcImZ1bmN0aW9uXCIhPXR5cGVvZiBuLnZhbHVlT2YmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG4udG9TdHJpbmd8fGlzTmFOKG4pP2xuOnNuKSh0LG4pfWZ1bmN0aW9uIHBuKHQsbil7cmV0dXJuIHQ9K3Qsbi09dCxmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5yb3VuZCh0K24qZSl9fWZ1bmN0aW9uIHZuKHQsbixlLHIsaSxvKXt2YXIgYSx1LGY7cmV0dXJuKGE9TWF0aC5zcXJ0KHQqdCtuKm4pKSYmKHQvPWEsbi89YSksKGY9dCplK24qcikmJihlLT10KmYsci09bipmKSwodT1NYXRoLnNxcnQoZSplK3IqcikpJiYoZS89dSxyLz11LGYvPXUpLHQqcjxuKmUmJih0PS10LG49LW4sZj0tZixhPS1hKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6byxyb3RhdGU6TWF0aC5hdGFuMihuLHQpKmZsLHNrZXdYOk1hdGguYXRhbihmKSpmbCxzY2FsZVg6YSxzY2FsZVk6dX19ZnVuY3Rpb24gZ24odCxuLGUscil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKStcIiBcIjpcIlwifXJldHVybiBmdW5jdGlvbihvLGEpe3ZhciB1PVtdLGY9W107cmV0dXJuIG89dChvKSxhPXQoYSksZnVuY3Rpb24odCxyLGksbyxhLHUpe2lmKHQhPT1pfHxyIT09byl7dmFyIGY9YS5wdXNoKFwidHJhbnNsYXRlKFwiLG51bGwsbixudWxsLGUpO3UucHVzaCh7aTpmLTQseDpzbih0LGkpfSx7aTpmLTIseDpzbihyLG8pfSl9ZWxzZShpfHxvKSYmYS5wdXNoKFwidHJhbnNsYXRlKFwiK2krbitvK2UpfShvLnRyYW5zbGF0ZVgsby50cmFuc2xhdGVZLGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVksdSxmKSxmdW5jdGlvbih0LG4sZSxvKXt0IT09bj8odC1uPjE4MD9uKz0zNjA6bi10PjE4MCYmKHQrPTM2MCksby5wdXNoKHtpOmUucHVzaChpKGUpK1wicm90YXRlKFwiLG51bGwsciktMix4OnNuKHQsbil9KSk6biYmZS5wdXNoKGkoZSkrXCJyb3RhdGUoXCIrbityKX0oby5yb3RhdGUsYS5yb3RhdGUsdSxmKSxmdW5jdGlvbih0LG4sZSxvKXt0IT09bj9vLnB1c2goe2k6ZS5wdXNoKGkoZSkrXCJza2V3WChcIixudWxsLHIpLTIseDpzbih0LG4pfSk6biYmZS5wdXNoKGkoZSkrXCJza2V3WChcIituK3IpfShvLnNrZXdYLGEuc2tld1gsdSxmKSxmdW5jdGlvbih0LG4sZSxyLG8sYSl7aWYodCE9PWV8fG4hPT1yKXt2YXIgdT1vLnB1c2goaShvKStcInNjYWxlKFwiLG51bGwsXCIsXCIsbnVsbCxcIilcIik7YS5wdXNoKHtpOnUtNCx4OnNuKHQsZSl9LHtpOnUtMix4OnNuKG4scil9KX1lbHNlIDE9PT1lJiYxPT09cnx8by5wdXNoKGkobykrXCJzY2FsZShcIitlK1wiLFwiK3IrXCIpXCIpfShvLnNjYWxlWCxvLnNjYWxlWSxhLnNjYWxlWCxhLnNjYWxlWSx1LGYpLG89YT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlPS0xLHI9Zi5sZW5ndGg7KytlPHI7KXVbKG49ZltlXSkuaV09bi54KHQpO3JldHVybiB1LmpvaW4oXCJcIil9fX1mdW5jdGlvbiB5bih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBfbih0LG4pe3ZhciBlLHIsaT10WzBdLG89dFsxXSxhPXRbMl0sdT1uWzBdLGY9blsxXSxjPW5bMl0scz11LWksbD1mLW8saD1zKnMrbCpsO2lmKGg8dmwpcj1NYXRoLmxvZyhjL2EpL2hsLGU9ZnVuY3Rpb24odCl7cmV0dXJuW2krdCpzLG8rdCpsLGEqTWF0aC5leHAoaGwqdCpyKV19O2Vsc2V7dmFyIGQ9TWF0aC5zcXJ0KGgpLHA9KGMqYy1hKmErcGwqaCkvKDIqYSpkbCpkKSx2PShjKmMtYSphLXBsKmgpLygyKmMqZGwqZCksZz1NYXRoLmxvZyhNYXRoLnNxcnQocCpwKzEpLXApLHk9TWF0aC5sb2coTWF0aC5zcXJ0KHYqdisxKS12KTtyPSh5LWcpL2hsLGU9ZnVuY3Rpb24odCl7dmFyIG49dCpyLGU9eW4oZyksdT1hLyhkbCpkKSooZSpmdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAoMip0KSktMSkvKHQrMSl9KGhsKm4rZyktZnVuY3Rpb24odCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9KGcpKTtyZXR1cm5baSt1KnMsbyt1KmwsYSplL3luKGhsKm4rZyldfX1yZXR1cm4gZS5kdXJhdGlvbj0xZTMqcixlfWZ1bmN0aW9uIGJuKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQoKG49cXQobikpLmgsKGU9cXQoZSkpLmgpLGk9YW4obi5zLGUucyksbz1hbihuLmwsZS5sKSxhPWFuKG4ub3BhY2l0eSxlLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbi5oPXIodCksbi5zPWkodCksbi5sPW8odCksbi5vcGFjaXR5PWEodCksbitcIlwifX19ZnVuY3Rpb24gbW4odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9dCgobj0kdChuKSkuaCwoZT0kdChlKSkuaCksaT1hbihuLmMsZS5jKSxvPWFuKG4ubCxlLmwpLGE9YW4obi5vcGFjaXR5LGUub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9cih0KSxuLmM9aSh0KSxuLmw9byh0KSxuLm9wYWNpdHk9YSh0KSxuK1wiXCJ9fX1mdW5jdGlvbiB4bih0KXtyZXR1cm4gZnVuY3Rpb24gbihlKXtmdW5jdGlvbiByKG4scil7dmFyIGk9dCgobj1adChuKSkuaCwocj1adChyKSkuaCksbz1hbihuLnMsci5zKSxhPWFuKG4ubCxyLmwpLHU9YW4obi5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBuLmg9aSh0KSxuLnM9byh0KSxuLmw9YShNYXRoLnBvdyh0LGUpKSxuLm9wYWNpdHk9dSh0KSxuK1wiXCJ9fXJldHVybiBlPStlLHIuZ2FtbWE9bixyfSgxKX1mdW5jdGlvbiB3bigpe3JldHVybiBTbHx8KENsKE1uKSxTbD1rbC5ub3coKStFbCl9ZnVuY3Rpb24gTW4oKXtTbD0wfWZ1bmN0aW9uIEFuKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBUbih0LG4sZSl7dmFyIHI9bmV3IEFuO3JldHVybiByLnJlc3RhcnQodCxuLGUpLHJ9ZnVuY3Rpb24gTm4oKXt3bigpLCsrd2w7Zm9yKHZhciB0LG49bmw7bjspKHQ9U2wtbi5fdGltZSk+PTAmJm4uX2NhbGwuY2FsbChudWxsLHQpLG49bi5fbmV4dDstLXdsfWZ1bmN0aW9uIFNuKCl7U2w9KE5sPWtsLm5vdygpKStFbCx3bD1NbD0wO3RyeXtObigpfWZpbmFsbHl7d2w9MCxmdW5jdGlvbigpe3ZhciB0LG4sZT1ubCxyPTEvMDtmb3IoO2U7KWUuX2NhbGw/KHI+ZS5fdGltZSYmKHI9ZS5fdGltZSksdD1lLGU9ZS5fbmV4dCk6KG49ZS5fbmV4dCxlLl9uZXh0PW51bGwsZT10P3QuX25leHQ9bjpubD1uKTtlbD10LGtuKHIpfSgpLFNsPTB9fWZ1bmN0aW9uIEVuKCl7dmFyIHQ9a2wubm93KCksbj10LU5sO24+VGwmJihFbC09bixObD10KX1mdW5jdGlvbiBrbih0KXtpZighd2wpe01sJiYoTWw9Y2xlYXJUaW1lb3V0KE1sKSk7dC1TbD4yND8odDwxLzAmJihNbD1zZXRUaW1lb3V0KFNuLHQta2wubm93KCktRWwpKSxBbCYmKEFsPWNsZWFySW50ZXJ2YWwoQWwpKSk6KEFsfHwoTmw9a2wubm93KCksQWw9c2V0SW50ZXJ2YWwoRW4sVGwpKSx3bD0xLENsKFNuKSl9fWZ1bmN0aW9uIENuKHQsbixlKXt2YXIgcj1uZXcgQW47cmV0dXJuIG49bnVsbD09bj8wOituLHIucmVzdGFydChmdW5jdGlvbihlKXtyLnN0b3AoKSx0KGUrbil9LG4sZSkscn1mdW5jdGlvbiBQbih0LG4sZSxyLGksbyl7dmFyIGE9dC5fX3RyYW5zaXRpb247aWYoYSl7aWYoZSBpbiBhKXJldHVybn1lbHNlIHQuX190cmFuc2l0aW9uPXt9OyhmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcihmKXt2YXIgYyxzLGwsaDtpZihlLnN0YXRlIT09TGwpcmV0dXJuIG8oKTtmb3IoYyBpbiB1KWlmKChoPXVbY10pLm5hbWU9PT1lLm5hbWUpe2lmKGguc3RhdGU9PT1VbClyZXR1cm4gQ24ocik7aC5zdGF0ZT09PXFsPyhoLnN0YXRlPVlsLGgudGltZXIuc3RvcCgpLGgub24uY2FsbChcImludGVycnVwdFwiLHQsdC5fX2RhdGFfXyxoLmluZGV4LGguZ3JvdXApLGRlbGV0ZSB1W2NdKTorYzxuJiYoaC5zdGF0ZT1ZbCxoLnRpbWVyLnN0b3AoKSxkZWxldGUgdVtjXSl9aWYoQ24oZnVuY3Rpb24oKXtlLnN0YXRlPT09VWwmJihlLnN0YXRlPXFsLGUudGltZXIucmVzdGFydChpLGUuZGVsYXksZS50aW1lKSxpKGYpKX0pLGUuc3RhdGU9RGwsZS5vbi5jYWxsKFwic3RhcnRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxlLnN0YXRlPT09RGwpe2ZvcihlLnN0YXRlPVVsLGE9bmV3IEFycmF5KGw9ZS50d2Vlbi5sZW5ndGgpLGM9MCxzPS0xO2M8bDsrK2MpKGg9ZS50d2VlbltjXS52YWx1ZS5jYWxsKHQsdC5fX2RhdGFfXyxlLmluZGV4LGUuZ3JvdXApKSYmKGFbKytzXT1oKTthLmxlbmd0aD1zKzF9fWZ1bmN0aW9uIGkobil7Zm9yKHZhciByPW48ZS5kdXJhdGlvbj9lLmVhc2UuY2FsbChudWxsLG4vZS5kdXJhdGlvbik6KGUudGltZXIucmVzdGFydChvKSxlLnN0YXRlPU9sLDEpLGk9LTEsdT1hLmxlbmd0aDsrK2k8dTspYVtpXS5jYWxsKG51bGwscik7ZS5zdGF0ZT09PU9sJiYoZS5vbi5jYWxsKFwiZW5kXCIsdCx0Ll9fZGF0YV9fLGUuaW5kZXgsZS5ncm91cCksbygpKX1mdW5jdGlvbiBvKCl7ZS5zdGF0ZT1ZbCxlLnRpbWVyLnN0b3AoKSxkZWxldGUgdVtuXTtmb3IodmFyIHIgaW4gdSlyZXR1cm47ZGVsZXRlIHQuX190cmFuc2l0aW9ufXZhciBhLHU9dC5fX3RyYW5zaXRpb247dVtuXT1lLGUudGltZXI9VG4oZnVuY3Rpb24odCl7ZS5zdGF0ZT1MbCxlLnRpbWVyLnJlc3RhcnQocixlLmRlbGF5LGUudGltZSksZS5kZWxheTw9dCYmcih0LWUuZGVsYXkpfSwwLGUudGltZSl9KSh0LGUse25hbWU6bixpbmRleDpyLGdyb3VwOmksb246UGwsdHdlZW46emwsdGltZTpvLnRpbWUsZGVsYXk6by5kZWxheSxkdXJhdGlvbjpvLmR1cmF0aW9uLGVhc2U6by5lYXNlLHRpbWVyOm51bGwsc3RhdGU6Umx9KX1mdW5jdGlvbiB6bih0LG4pe3ZhciBlPUxuKHQsbik7aWYoZS5zdGF0ZT5SbCl0aHJvdyBuZXcgRXJyb3IoXCJ0b28gbGF0ZTsgYWxyZWFkeSBzY2hlZHVsZWRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gUm4odCxuKXt2YXIgZT1Mbih0LG4pO2lmKGUuc3RhdGU+RGwpdGhyb3cgbmV3IEVycm9yKFwidG9vIGxhdGU7IGFscmVhZHkgc3RhcnRlZFwiKTtyZXR1cm4gZX1mdW5jdGlvbiBMbih0LG4pe3ZhciBlPXQuX190cmFuc2l0aW9uO2lmKCFlfHwhKGU9ZVtuXSkpdGhyb3cgbmV3IEVycm9yKFwidHJhbnNpdGlvbiBub3QgZm91bmRcIik7cmV0dXJuIGV9ZnVuY3Rpb24gRG4odCxuKXt2YXIgZSxyLGksbz10Ll9fdHJhbnNpdGlvbixhPSEwO2lmKG8pe249bnVsbD09bj9udWxsOm4rXCJcIjtmb3IoaSBpbiBvKShlPW9baV0pLm5hbWU9PT1uPyhyPWUuc3RhdGU+RGwmJmUuc3RhdGU8T2wsZS5zdGF0ZT1ZbCxlLnRpbWVyLnN0b3AoKSxyJiZlLm9uLmNhbGwoXCJpbnRlcnJ1cHRcIix0LHQuX19kYXRhX18sZS5pbmRleCxlLmdyb3VwKSxkZWxldGUgb1tpXSk6YT0hMTthJiZkZWxldGUgdC5fX3RyYW5zaXRpb259fWZ1bmN0aW9uIFVuKHQsbixlKXt2YXIgcj10Ll9pZDtyZXR1cm4gdC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Um4odGhpcyxyKTsodC52YWx1ZXx8KHQudmFsdWU9e30pKVtuXT1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGZ1bmN0aW9uKHQpe3JldHVybiBMbih0LHIpLnZhbHVlW25dfX1mdW5jdGlvbiBxbih0LG4pe3ZhciBlO3JldHVybihcIm51bWJlclwiPT10eXBlb2Ygbj9zbjpuIGluc3RhbmNlb2Yga3Q/cmw6KGU9a3QobikpPyhuPWUscmwpOmhuKSh0LG4pfWZ1bmN0aW9uIE9uKHQsbixlLHIpe3RoaXMuX2dyb3Vwcz10LHRoaXMuX3BhcmVudHM9bix0aGlzLl9uYW1lPWUsdGhpcy5faWQ9cn1mdW5jdGlvbiBZbih0KXtyZXR1cm4gZnQoKS50cmFuc2l0aW9uKHQpfWZ1bmN0aW9uIEJuKCl7cmV0dXJuKytGbH1mdW5jdGlvbiBGbih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdDotLXQqKDItdCkrMSkvMn1mdW5jdGlvbiBJbih0KXtyZXR1cm4oKHQqPTIpPD0xP3QqdCp0Oih0LT0yKSp0KnQrMikvMn1mdW5jdGlvbiBqbih0KXtyZXR1cm4oMS1NYXRoLmNvcyhHbCp0KSkvMn1mdW5jdGlvbiBIbih0KXtyZXR1cm4oKHQqPTIpPD0xP01hdGgucG93KDIsMTAqdC0xMCk6Mi1NYXRoLnBvdygyLDEwLTEwKnQpKS8yfWZ1bmN0aW9uIFhuKHQpe3JldHVybigodCo9Mik8PTE/MS1NYXRoLnNxcnQoMS10KnQpOk1hdGguc3FydCgxLSh0LT0yKSp0KSsxKS8yfWZ1bmN0aW9uIEduKHQpe3JldHVybih0PSt0KTwkbD9yaCp0KnQ6dDxabD9yaCoodC09V2wpKnQrUWw6dDxLbD9yaCoodC09SmwpKnQrdGg6cmgqKHQtPW5oKSp0K2VofWZ1bmN0aW9uIFZuKHQsbil7Zm9yKHZhciBlOyEoZT10Ll9fdHJhbnNpdGlvbil8fCEoZT1lW25dKTspaWYoISh0PXQucGFyZW50Tm9kZSkpcmV0dXJuIGxoLnRpbWU9d24oKSxsaDtyZXR1cm4gZX1mdW5jdGlvbiAkbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gV24oKXt0LmV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFpuKCl7dC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpLHQuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gUW4odCl7cmV0dXJue3R5cGU6dH19ZnVuY3Rpb24gSm4oKXtyZXR1cm4hdC5ldmVudC5idXR0b259ZnVuY3Rpb24gS24oKXt2YXIgdD10aGlzLm93bmVyU1ZHRWxlbWVudHx8dGhpcztyZXR1cm5bWzAsMF0sW3Qud2lkdGguYmFzZVZhbC52YWx1ZSx0LmhlaWdodC5iYXNlVmFsLnZhbHVlXV19ZnVuY3Rpb24gdGUodCl7Zm9yKDshdC5fX2JydXNoOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHQuX19icnVzaH1mdW5jdGlvbiBuZSh0KXtyZXR1cm4gdFswXVswXT09PXRbMV1bMF18fHRbMF1bMV09PT10WzFdWzFdfWZ1bmN0aW9uIGVlKG4pe2Z1bmN0aW9uIGUodCl7dmFyIGU9dC5wcm9wZXJ0eShcIl9fYnJ1c2hcIix1KS5zZWxlY3RBbGwoXCIub3ZlcmxheVwiKS5kYXRhKFtRbihcIm92ZXJsYXlcIildKTtlLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixcIm92ZXJsYXlcIikuYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJhbGxcIikuYXR0cihcImN1cnNvclwiLG1oLm92ZXJsYXkpLm1lcmdlKGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10ZSh0aGlzKS5leHRlbnQ7Y3QodGhpcykuYXR0cihcInhcIix0WzBdWzBdKS5hdHRyKFwieVwiLHRbMF1bMV0pLmF0dHIoXCJ3aWR0aFwiLHRbMV1bMF0tdFswXVswXSkuYXR0cihcImhlaWdodFwiLHRbMV1bMV0tdFswXVsxXSl9KSx0LnNlbGVjdEFsbChcIi5zZWxlY3Rpb25cIikuZGF0YShbUW4oXCJzZWxlY3Rpb25cIildKS5lbnRlcigpLmFwcGVuZChcInJlY3RcIikuYXR0cihcImNsYXNzXCIsXCJzZWxlY3Rpb25cIikuYXR0cihcImN1cnNvclwiLG1oLnNlbGVjdGlvbikuYXR0cihcImZpbGxcIixcIiM3NzdcIikuYXR0cihcImZpbGwtb3BhY2l0eVwiLC4zKS5hdHRyKFwic3Ryb2tlXCIsXCIjZmZmXCIpLmF0dHIoXCJzaGFwZS1yZW5kZXJpbmdcIixcImNyaXNwRWRnZXNcIik7dmFyIGk9dC5zZWxlY3RBbGwoXCIuaGFuZGxlXCIpLmRhdGEobi5oYW5kbGVzLGZ1bmN0aW9uKHQpe3JldHVybiB0LnR5cGV9KTtpLmV4aXQoKS5yZW1vdmUoKSxpLmVudGVyKCkuYXBwZW5kKFwicmVjdFwiKS5hdHRyKFwiY2xhc3NcIixmdW5jdGlvbih0KXtyZXR1cm5cImhhbmRsZSBoYW5kbGUtLVwiK3QudHlwZX0pLmF0dHIoXCJjdXJzb3JcIixmdW5jdGlvbih0KXtyZXR1cm4gbWhbdC50eXBlXX0pLHQuZWFjaChyKS5hdHRyKFwiZmlsbFwiLFwibm9uZVwiKS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcImFsbFwiKS5zdHlsZShcIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvclwiLFwicmdiYSgwLDAsMCwwKVwiKS5vbihcIm1vdXNlZG93bi5icnVzaCB0b3VjaHN0YXJ0LmJydXNoXCIsYSl9ZnVuY3Rpb24gcigpe3ZhciB0PWN0KHRoaXMpLG49dGUodGhpcykuc2VsZWN0aW9uO24/KHQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvblwiKS5zdHlsZShcImRpc3BsYXlcIixudWxsKS5hdHRyKFwieFwiLG5bMF1bMF0pLmF0dHIoXCJ5XCIsblswXVsxXSkuYXR0cihcIndpZHRoXCIsblsxXVswXS1uWzBdWzBdKS5hdHRyKFwiaGVpZ2h0XCIsblsxXVsxXS1uWzBdWzFdKSx0LnNlbGVjdEFsbChcIi5oYW5kbGVcIikuc3R5bGUoXCJkaXNwbGF5XCIsbnVsbCkuYXR0cihcInhcIixmdW5jdGlvbih0KXtyZXR1cm5cImVcIj09PXQudHlwZVt0LnR5cGUubGVuZ3RoLTFdP25bMV1bMF0taC8yOm5bMF1bMF0taC8yfSkuYXR0cihcInlcIixmdW5jdGlvbih0KXtyZXR1cm5cInNcIj09PXQudHlwZVswXT9uWzFdWzFdLWgvMjpuWzBdWzFdLWgvMn0pLmF0dHIoXCJ3aWR0aFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiblwiPT09dC50eXBlfHxcInNcIj09PXQudHlwZT9uWzFdWzBdLW5bMF1bMF0raDpofSkuYXR0cihcImhlaWdodFwiLGZ1bmN0aW9uKHQpe3JldHVyblwiZVwiPT09dC50eXBlfHxcIndcIj09PXQudHlwZT9uWzFdWzFdLW5bMF1bMV0raDpofSkpOnQuc2VsZWN0QWxsKFwiLnNlbGVjdGlvbiwuaGFuZGxlXCIpLnN0eWxlKFwiZGlzcGxheVwiLFwibm9uZVwiKS5hdHRyKFwieFwiLG51bGwpLmF0dHIoXCJ5XCIsbnVsbCkuYXR0cihcIndpZHRoXCIsbnVsbCkuYXR0cihcImhlaWdodFwiLG51bGwpfWZ1bmN0aW9uIGkodCxuKXtyZXR1cm4gdC5fX2JydXNoLmVtaXR0ZXJ8fG5ldyBvKHQsbil9ZnVuY3Rpb24gbyh0LG4pe3RoaXMudGhhdD10LHRoaXMuYXJncz1uLHRoaXMuc3RhdGU9dC5fX2JydXNoLHRoaXMuYWN0aXZlPTB9ZnVuY3Rpb24gYSgpe2Z1bmN0aW9uIGUoKXt2YXIgdD1wdCh3KTshTHx8bXx8eHx8KE1hdGguYWJzKHRbMF0tVVswXSk+TWF0aC5hYnModFsxXS1VWzFdKT94PSEwOm09ITApLFU9dCxiPSEwLFpuKCksbygpfWZ1bmN0aW9uIG8oKXt2YXIgdDtzd2l0Y2goeT1VWzBdLURbMF0sXz1VWzFdLURbMV0sQSl7Y2FzZSBwaDpjYXNlIGRoOlQmJih5PU1hdGgubWF4KEMtdSxNYXRoLm1pbih6LWQseSkpLGM9dSt5LHA9ZCt5KSxOJiYoXz1NYXRoLm1heChQLWwsTWF0aC5taW4oUi12LF8pKSxoPWwrXyxnPXYrXyk7YnJlYWs7Y2FzZSB2aDpUPDA/KHk9TWF0aC5tYXgoQy11LE1hdGgubWluKHotdSx5KSksYz11K3kscD1kKTpUPjAmJih5PU1hdGgubWF4KEMtZCxNYXRoLm1pbih6LWQseSkpLGM9dSxwPWQreSksTjwwPyhfPU1hdGgubWF4KFAtbCxNYXRoLm1pbihSLWwsXykpLGg9bCtfLGc9dik6Tj4wJiYoXz1NYXRoLm1heChQLXYsTWF0aC5taW4oUi12LF8pKSxoPWwsZz12K18pO2JyZWFrO2Nhc2UgZ2g6VCYmKGM9TWF0aC5tYXgoQyxNYXRoLm1pbih6LHUteSpUKSkscD1NYXRoLm1heChDLE1hdGgubWluKHosZCt5KlQpKSksTiYmKGg9TWF0aC5tYXgoUCxNYXRoLm1pbihSLGwtXypOKSksZz1NYXRoLm1heChQLE1hdGgubWluKFIsditfKk4pKSl9cDxjJiYoVCo9LTEsdD11LHU9ZCxkPXQsdD1jLGM9cCxwPXQsTSBpbiB4aCYmWS5hdHRyKFwiY3Vyc29yXCIsbWhbTT14aFtNXV0pKSxnPGgmJihOKj0tMSx0PWwsbD12LHY9dCx0PWgsaD1nLGc9dCxNIGluIHdoJiZZLmF0dHIoXCJjdXJzb3JcIixtaFtNPXdoW01dXSkpLFMuc2VsZWN0aW9uJiYoaz1TLnNlbGVjdGlvbiksbSYmKGM9a1swXVswXSxwPWtbMV1bMF0pLHgmJihoPWtbMF1bMV0sZz1rWzFdWzFdKSxrWzBdWzBdPT09YyYma1swXVsxXT09PWgmJmtbMV1bMF09PT1wJiZrWzFdWzFdPT09Z3x8KFMuc2VsZWN0aW9uPVtbYyxoXSxbcCxnXV0sci5jYWxsKHcpLHEuYnJ1c2goKSl9ZnVuY3Rpb24gYSgpe2lmKFduKCksdC5ldmVudC50b3VjaGVzKXtpZih0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXJldHVybjtmJiZjbGVhclRpbWVvdXQoZiksZj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zj1udWxsfSw1MDApLE8ub24oXCJ0b3VjaG1vdmUuYnJ1c2ggdG91Y2hlbmQuYnJ1c2ggdG91Y2hjYW5jZWwuYnJ1c2hcIixudWxsKX1lbHNlIGJ0KHQuZXZlbnQudmlldyxiKSxCLm9uKFwia2V5ZG93bi5icnVzaCBrZXl1cC5icnVzaCBtb3VzZW1vdmUuYnJ1c2ggbW91c2V1cC5icnVzaFwiLG51bGwpO08uYXR0cihcInBvaW50ZXItZXZlbnRzXCIsXCJhbGxcIiksWS5hdHRyKFwiY3Vyc29yXCIsbWgub3ZlcmxheSksUy5zZWxlY3Rpb24mJihrPVMuc2VsZWN0aW9uKSxuZShrKSYmKFMuc2VsZWN0aW9uPW51bGwsci5jYWxsKHcpKSxxLmVuZCgpfWlmKHQuZXZlbnQudG91Y2hlcyl7aWYodC5ldmVudC5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg8dC5ldmVudC50b3VjaGVzLmxlbmd0aClyZXR1cm4gWm4oKX1lbHNlIGlmKGYpcmV0dXJuO2lmKHMuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgdSxjLGwsaCxkLHAsdixnLHksXyxiLG0seCx3PXRoaXMsTT10LmV2ZW50LnRhcmdldC5fX2RhdGFfXy50eXBlLEE9XCJzZWxlY3Rpb25cIj09PSh0LmV2ZW50Lm1ldGFLZXk/TT1cIm92ZXJsYXlcIjpNKT9kaDp0LmV2ZW50LmFsdEtleT9naDp2aCxUPW49PT1faD9udWxsOk1oW01dLE49bj09PXloP251bGw6QWhbTV0sUz10ZSh3KSxFPVMuZXh0ZW50LGs9Uy5zZWxlY3Rpb24sQz1FWzBdWzBdLFA9RVswXVsxXSx6PUVbMV1bMF0sUj1FWzFdWzFdLEw9VCYmTiYmdC5ldmVudC5zaGlmdEtleSxEPXB0KHcpLFU9RCxxPWkodyxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCk7XCJvdmVybGF5XCI9PT1NP1Muc2VsZWN0aW9uPWs9W1t1PW49PT1faD9DOkRbMF0sbD1uPT09eWg/UDpEWzFdXSxbZD1uPT09X2g/ejp1LHY9bj09PXloP1I6bF1dOih1PWtbMF1bMF0sbD1rWzBdWzFdLGQ9a1sxXVswXSx2PWtbMV1bMV0pLGM9dSxoPWwscD1kLGc9djt2YXIgTz1jdCh3KS5hdHRyKFwicG9pbnRlci1ldmVudHNcIixcIm5vbmVcIiksWT1PLnNlbGVjdEFsbChcIi5vdmVybGF5XCIpLmF0dHIoXCJjdXJzb3JcIixtaFtNXSk7aWYodC5ldmVudC50b3VjaGVzKU8ub24oXCJ0b3VjaG1vdmUuYnJ1c2hcIixlLCEwKS5vbihcInRvdWNoZW5kLmJydXNoIHRvdWNoY2FuY2VsLmJydXNoXCIsYSwhMCk7ZWxzZXt2YXIgQj1jdCh0LmV2ZW50LnZpZXcpLm9uKFwia2V5ZG93bi5icnVzaFwiLGZ1bmN0aW9uKCl7c3dpdGNoKHQuZXZlbnQua2V5Q29kZSl7Y2FzZSAxNjpMPVQmJk47YnJlYWs7Y2FzZSAxODpBPT09dmgmJihUJiYoZD1wLXkqVCx1PWMreSpUKSxOJiYodj1nLV8qTixsPWgrXypOKSxBPWdoLG8oKSk7YnJlYWs7Y2FzZSAzMjpBIT09dmgmJkEhPT1naHx8KFQ8MD9kPXAteTpUPjAmJih1PWMteSksTjwwP3Y9Zy1fOk4+MCYmKGw9aC1fKSxBPXBoLFkuYXR0cihcImN1cnNvclwiLG1oLnNlbGVjdGlvbiksbygpKTticmVhaztkZWZhdWx0OnJldHVybn1abigpfSwhMCkub24oXCJrZXl1cC5icnVzaFwiLGZ1bmN0aW9uKCl7c3dpdGNoKHQuZXZlbnQua2V5Q29kZSl7Y2FzZSAxNjpMJiYobT14PUw9ITEsbygpKTticmVhaztjYXNlIDE4OkE9PT1naCYmKFQ8MD9kPXA6VD4wJiYodT1jKSxOPDA/dj1nOk4+MCYmKGw9aCksQT12aCxvKCkpO2JyZWFrO2Nhc2UgMzI6QT09PXBoJiYodC5ldmVudC5hbHRLZXk/KFQmJihkPXAteSpULHU9Yyt5KlQpLE4mJih2PWctXypOLGw9aCtfKk4pLEE9Z2gpOihUPDA/ZD1wOlQ+MCYmKHU9YyksTjwwP3Y9ZzpOPjAmJihsPWgpLEE9dmgpLFkuYXR0cihcImN1cnNvclwiLG1oW01dKSxvKCkpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufVpuKCl9LCEwKS5vbihcIm1vdXNlbW92ZS5icnVzaFwiLGUsITApLm9uKFwibW91c2V1cC5icnVzaFwiLGEsITApO190KHQuZXZlbnQudmlldyl9V24oKSxEbih3KSxyLmNhbGwodykscS5zdGFydCgpfX1mdW5jdGlvbiB1KCl7dmFyIHQ9dGhpcy5fX2JydXNofHx7c2VsZWN0aW9uOm51bGx9O3JldHVybiB0LmV4dGVudD1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0LmRpbT1uLHR9dmFyIGYsYz1LbixzPUpuLGw9TihlLFwic3RhcnRcIixcImJydXNoXCIsXCJlbmRcIiksaD02O3JldHVybiBlLm1vdmU9ZnVuY3Rpb24odCxlKXt0LnNlbGVjdGlvbj90Lm9uKFwic3RhcnQuYnJ1c2hcIixmdW5jdGlvbigpe2kodGhpcyxhcmd1bWVudHMpLmJlZm9yZXN0YXJ0KCkuc3RhcnQoKX0pLm9uKFwiaW50ZXJydXB0LmJydXNoIGVuZC5icnVzaFwiLGZ1bmN0aW9uKCl7aSh0aGlzLGFyZ3VtZW50cykuZW5kKCl9KS50d2VlbihcImJydXNoXCIsZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe2Euc2VsZWN0aW9uPTE9PT10JiZuZShjKT9udWxsOnModCksci5jYWxsKG8pLHUuYnJ1c2goKX12YXIgbz10aGlzLGE9by5fX2JydXNoLHU9aShvLGFyZ3VtZW50cyksZj1hLnNlbGVjdGlvbixjPW4uaW5wdXQoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLGEuZXh0ZW50KSxzPWRuKGYsYyk7cmV0dXJuIGYmJmM/dDp0KDEpfSk6dC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLG89dGhpcy5fX2JydXNoLGE9bi5pbnB1dChcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2UuYXBwbHkodGhpcyx0KTplLG8uZXh0ZW50KSx1PWkodGhpcyx0KS5iZWZvcmVzdGFydCgpO0RuKHRoaXMpLG8uc2VsZWN0aW9uPW51bGw9PWF8fG5lKGEpP251bGw6YSxyLmNhbGwodGhpcyksdS5zdGFydCgpLmJydXNoKCkuZW5kKCl9KX0sby5wcm90b3R5cGU9e2JlZm9yZXN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSsrdGhpcy5hY3RpdmUmJih0aGlzLnN0YXRlLmVtaXR0ZXI9dGhpcyx0aGlzLnN0YXJ0aW5nPSEwKSx0aGlzfSxzdGFydDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXJ0aW5nJiYodGhpcy5zdGFydGluZz0hMSx0aGlzLmVtaXQoXCJzdGFydFwiKSksdGhpc30sYnJ1c2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWl0KFwiYnJ1c2hcIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihkZWxldGUgdGhpcy5zdGF0ZS5lbWl0dGVyLHRoaXMuZW1pdChcImVuZFwiKSksdGhpc30sZW1pdDpmdW5jdGlvbih0KXtvdChuZXcgZnVuY3Rpb24odCxuLGUpe3RoaXMudGFyZ2V0PXQsdGhpcy50eXBlPW4sdGhpcy5zZWxlY3Rpb249ZX0oZSx0LG4ub3V0cHV0KHRoaXMuc3RhdGUuc2VsZWN0aW9uKSksbC5hcHBseSxsLFt0LHRoaXMudGhhdCx0aGlzLmFyZ3NdKX19LGUuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDokbihbWyt0WzBdWzBdLCt0WzBdWzFdXSxbK3RbMV1bMF0sK3RbMV1bMV1dXSksZSk6Y30sZS5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OiRuKCEhdCksZSk6c30sZS5oYW5kbGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSt0LGUpOmh9LGUub249ZnVuY3Rpb24oKXt2YXIgdD1sLm9uLmFwcGx5KGwsYXJndW1lbnRzKTtyZXR1cm4gdD09PWw/ZTp0fSxlfWZ1bmN0aW9uIHJlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBpZSgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPVwiXCJ9ZnVuY3Rpb24gb2UoKXtyZXR1cm4gbmV3IGllfWZ1bmN0aW9uIGFlKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiB1ZSh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gZmUodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIGNlKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gc2UodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gbGUoKXt9ZnVuY3Rpb24gaGUodCxuKXt2YXIgZT1uZXcgbGU7aWYodCBpbnN0YW5jZW9mIGxlKXQuZWFjaChmdW5jdGlvbih0LG4pe2Uuc2V0KG4sdCl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciByLGk9LTEsbz10Lmxlbmd0aDtpZihudWxsPT1uKWZvcig7KytpPG87KWUuc2V0KGksdFtpXSk7ZWxzZSBmb3IoOysraTxvOyllLnNldChuKHI9dFtpXSxpLHQpLHIpfWVsc2UgaWYodClmb3IodmFyIGEgaW4gdCllLnNldChhLHRbYV0pO3JldHVybiBlfWZ1bmN0aW9uIGRlKCl7cmV0dXJue319ZnVuY3Rpb24gcGUodCxuLGUpe3Rbbl09ZX1mdW5jdGlvbiB2ZSgpe3JldHVybiBoZSgpfWZ1bmN0aW9uIGdlKHQsbixlKXt0LnNldChuLGUpfWZ1bmN0aW9uIHllKCl7fWZ1bmN0aW9uIF9lKHQsbil7dmFyIGU9bmV3IHllO2lmKHQgaW5zdGFuY2VvZiB5ZSl0LmVhY2goZnVuY3Rpb24odCl7ZS5hZGQodCl9KTtlbHNlIGlmKHQpe3ZhciByPS0xLGk9dC5sZW5ndGg7aWYobnVsbD09bilmb3IoOysrcjxpOyllLmFkZCh0W3JdKTtlbHNlIGZvcig7KytyPGk7KWUuYWRkKG4odFtyXSxyLHQpKX1yZXR1cm4gZX1mdW5jdGlvbiBiZSh0LG4pe3JldHVybiB0LW59ZnVuY3Rpb24gbWUodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIHhlKHQsbil7Zm9yKHZhciBlLHI9LTEsaT1uLmxlbmd0aDsrK3I8aTspaWYoZT1mdW5jdGlvbih0LG4pe2Zvcih2YXIgZT1uWzBdLHI9blsxXSxpPS0xLG89MCxhPXQubGVuZ3RoLHU9YS0xO288YTt1PW8rKyl7dmFyIGY9dFtvXSxjPWZbMF0scz1mWzFdLGw9dFt1XSxoPWxbMF0sZD1sWzFdO2lmKGZ1bmN0aW9uKHQsbixlKXt2YXIgcjtyZXR1cm4gZnVuY3Rpb24odCxuLGUpe3JldHVybihuWzBdLXRbMF0pKihlWzFdLXRbMV0pPT0oZVswXS10WzBdKSooblsxXS10WzFdKX0odCxuLGUpJiZmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHQ8PW4mJm48PWV8fGU8PW4mJm48PXR9KHRbcj0rKHRbMF09PT1uWzBdKV0sZVtyXSxuW3JdKX0oZixsLG4pKXJldHVybiAwO3M+ciE9ZD5yJiZlPChoLWMpKihyLXMpLyhkLXMpK2MmJihpPS1pKX1yZXR1cm4gaX0odCxuW3JdKSlyZXR1cm4gZTtyZXR1cm4gMH1mdW5jdGlvbiB3ZSgpe31mdW5jdGlvbiBNZSgpe2Z1bmN0aW9uIHQodCl7dmFyIGU9YSh0KTtpZihBcnJheS5pc0FycmF5KGUpKWU9ZS5zbGljZSgpLnNvcnQoYmUpO2Vsc2V7dmFyIHI9dSh0KSxpPXJbMF0sbz1yWzFdO2U9ZChpLG8sZSksZT1zKE1hdGguZmxvb3IoaS9lKSplLE1hdGguZmxvb3Ioby9lKSplLGUpfXJldHVybiBlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gbih0LGUpfSl9ZnVuY3Rpb24gbih0LG4pe3ZhciByPVtdLGE9W107cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtmdW5jdGlvbiBhKHQpe3ZhciBuLGksbz1bdFswXVswXSt1LHRbMF1bMV0rZl0sYT1bdFsxXVswXSt1LHRbMV1bMV0rZl0sYz1lKG8pLHM9ZShhKTsobj1wW2NdKT8oaT1kW3NdKT8oZGVsZXRlIHBbbi5lbmRdLGRlbGV0ZSBkW2kuc3RhcnRdLG49PT1pPyhuLnJpbmcucHVzaChhKSxyKG4ucmluZykpOmRbbi5zdGFydF09cFtpLmVuZF09e3N0YXJ0Om4uc3RhcnQsZW5kOmkuZW5kLHJpbmc6bi5yaW5nLmNvbmNhdChpLnJpbmcpfSk6KGRlbGV0ZSBwW24uZW5kXSxuLnJpbmcucHVzaChhKSxwW24uZW5kPXNdPW4pOihuPWRbc10pPyhpPXBbY10pPyhkZWxldGUgZFtuLnN0YXJ0XSxkZWxldGUgcFtpLmVuZF0sbj09PWk/KG4ucmluZy5wdXNoKGEpLHIobi5yaW5nKSk6ZFtpLnN0YXJ0XT1wW24uZW5kXT17c3RhcnQ6aS5zdGFydCxlbmQ6bi5lbmQscmluZzppLnJpbmcuY29uY2F0KG4ucmluZyl9KTooZGVsZXRlIGRbbi5zdGFydF0sbi5yaW5nLnVuc2hpZnQobyksZFtuLnN0YXJ0PWNdPW4pOmRbY109cFtzXT17c3RhcnQ6YyxlbmQ6cyxyaW5nOltvLGFdfX12YXIgdSxmLGMscyxsLGgsZD1uZXcgQXJyYXkscD1uZXcgQXJyYXk7dT1mPS0xLHM9dFswXT49bixxaFtzPDwxXS5mb3JFYWNoKGEpO2Zvcig7Kyt1PGktMTspYz1zLHM9dFt1KzFdPj1uLHFoW2N8czw8MV0uZm9yRWFjaChhKTtxaFtzPDwwXS5mb3JFYWNoKGEpO2Zvcig7KytmPG8tMTspe2Zvcih1PS0xLHM9dFtmKmkraV0+PW4sbD10W2YqaV0+PW4scWhbczw8MXxsPDwyXS5mb3JFYWNoKGEpOysrdTxpLTE7KWM9cyxzPXRbZippK2krdSsxXT49bixoPWwsbD10W2YqaSt1KzFdPj1uLHFoW2N8czw8MXxsPDwyfGg8PDNdLmZvckVhY2goYSk7cWhbc3xsPDwzXS5mb3JFYWNoKGEpfXU9LTEsbD10W2YqaV0+PW4scWhbbDw8Ml0uZm9yRWFjaChhKTtmb3IoOysrdTxpLTE7KWg9bCxsPXRbZippK3UrMV0+PW4scWhbbDw8MnxoPDwzXS5mb3JFYWNoKGEpO3FoW2w8PDNdLmZvckVhY2goYSl9KHQsbixmdW5jdGlvbihlKXtmKGUsdCxuKSxmdW5jdGlvbih0KXtmb3IodmFyIG49MCxlPXQubGVuZ3RoLHI9dFtlLTFdWzFdKnRbMF1bMF0tdFtlLTFdWzBdKnRbMF1bMV07KytuPGU7KXIrPXRbbi0xXVsxXSp0W25dWzBdLXRbbi0xXVswXSp0W25dWzFdO3JldHVybiByfShlKT4wP3IucHVzaChbZV0pOmEucHVzaChlKX0pLGEuZm9yRWFjaChmdW5jdGlvbih0KXtmb3IodmFyIG4sZT0wLGk9ci5sZW5ndGg7ZTxpOysrZSlpZigtMSE9PXhlKChuPXJbZV0pWzBdLHQpKXJldHVybiB2b2lkIG4ucHVzaCh0KX0pLHt0eXBlOlwiTXVsdGlQb2x5Z29uXCIsdmFsdWU6bixjb29yZGluYXRlczpyfX1mdW5jdGlvbiBlKHQpe3JldHVybiAyKnRbMF0rdFsxXSooaSsxKSo0fWZ1bmN0aW9uIHIodCxuLGUpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcixhPXRbMF0sdT10WzFdLGY9MHxhLGM9MHx1LHM9bltjKmkrZl07YT4wJiZhPGkmJmY9PT1hJiYocj1uW2MqaStmLTFdLHRbMF09YSsoZS1yKS8ocy1yKS0uNSksdT4wJiZ1PG8mJmM9PT11JiYocj1uWyhjLTEpKmkrZl0sdFsxXT11KyhlLXIpLyhzLXIpLS41KX0pfXZhciBpPTEsbz0xLGE9cCxmPXI7cmV0dXJuIHQuY29udG91cj1uLHQuc2l6ZT1mdW5jdGlvbihuKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm5baSxvXTt2YXIgZT1NYXRoLmNlaWwoblswXSkscj1NYXRoLmNlaWwoblsxXSk7aWYoIShlPjAmJnI+MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBzaXplXCIpO3JldHVybiBpPWUsbz1yLHR9LHQudGhyZXNob2xkcz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246QXJyYXkuaXNBcnJheShuKT9tZShVaC5jYWxsKG4pKTptZShuKSx0KTphfSx0LnNtb290aD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1uP3I6d2UsdCk6Zj09PXJ9LHR9ZnVuY3Rpb24gQWUodCxuLGUpe2Zvcih2YXIgcj10LndpZHRoLGk9dC5oZWlnaHQsbz0xKyhlPDwxKSxhPTA7YTxpOysrYSlmb3IodmFyIHU9MCxmPTA7dTxyK2U7Kyt1KXU8ciYmKGYrPXQuZGF0YVt1K2Eqcl0pLHU+PWUmJih1Pj1vJiYoZi09dC5kYXRhW3UtbythKnJdKSxuLmRhdGFbdS1lK2Eqcl09Zi9NYXRoLm1pbih1KzEsci0xK28tdSxvKSl9ZnVuY3Rpb24gVGUodCxuLGUpe2Zvcih2YXIgcj10LndpZHRoLGk9dC5oZWlnaHQsbz0xKyhlPDwxKSxhPTA7YTxyOysrYSlmb3IodmFyIHU9MCxmPTA7dTxpK2U7Kyt1KXU8aSYmKGYrPXQuZGF0YVthK3Uqcl0pLHU+PWUmJih1Pj1vJiYoZi09dC5kYXRhW2ErKHUtbykqcl0pLG4uZGF0YVthKyh1LWUpKnJdPWYvTWF0aC5taW4odSsxLGktMStvLXUsbykpfWZ1bmN0aW9uIE5lKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIFNlKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIEVlKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oXCJkXCIsXCJyZXR1cm4ge1wiK3QubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpK1wiOiBkW1wiK24rXCJdXCJ9KS5qb2luKFwiLFwiKStcIn1cIil9ZnVuY3Rpb24ga2UodCl7ZnVuY3Rpb24gbih0LG4pe2Z1bmN0aW9uIGUoKXtpZihjKXJldHVybiBZaDtpZihzKXJldHVybiBzPSExLE9oO3ZhciBuLGUscj11O2lmKHQuY2hhckNvZGVBdChyKT09PUJoKXtmb3IoO3UrKzxhJiZ0LmNoYXJDb2RlQXQodSkhPT1CaHx8dC5jaGFyQ29kZUF0KCsrdSk9PT1CaDspO3JldHVybihuPXUpPj1hP2M9ITA6KGU9dC5jaGFyQ29kZUF0KHUrKykpPT09Rmg/cz0hMDplPT09SWgmJihzPSEwLHQuY2hhckNvZGVBdCh1KT09PUZoJiYrK3UpLHQuc2xpY2UocisxLG4tMSkucmVwbGFjZSgvXCJcIi9nLCdcIicpfWZvcig7dTxhOyl7aWYoKGU9dC5jaGFyQ29kZUF0KG49dSsrKSk9PT1GaClzPSEwO2Vsc2UgaWYoZT09PUloKXM9ITAsdC5jaGFyQ29kZUF0KHUpPT09RmgmJisrdTtlbHNlIGlmKGUhPT1vKWNvbnRpbnVlO3JldHVybiB0LnNsaWNlKHIsbil9cmV0dXJuIGM9ITAsdC5zbGljZShyLGEpfXZhciByLGk9W10sYT10Lmxlbmd0aCx1PTAsZj0wLGM9YTw9MCxzPSExO2Zvcih0LmNoYXJDb2RlQXQoYS0xKT09PUZoJiYtLWEsdC5jaGFyQ29kZUF0KGEtMSk9PT1JaCYmLS1hOyhyPWUoKSkhPT1ZaDspe2Zvcih2YXIgbD1bXTtyIT09T2gmJnIhPT1ZaDspbC5wdXNoKHIpLHI9ZSgpO24mJm51bGw9PShsPW4obCxmKyspKXx8aS5wdXNoKGwpfXJldHVybiBpfWZ1bmN0aW9uIGUobil7cmV0dXJuIG4ubWFwKHIpLmpvaW4odCl9ZnVuY3Rpb24gcih0KXtyZXR1cm4gbnVsbD09dD9cIlwiOmkudGVzdCh0Kz1cIlwiKT8nXCInK3QucmVwbGFjZSgvXCIvZywnXCJcIicpKydcIic6dH12YXIgaT1uZXcgUmVnRXhwKCdbXCInK3QrXCJcXG5cXHJdXCIpLG89dC5jaGFyQ29kZUF0KDApO3JldHVybntwYXJzZTpmdW5jdGlvbih0LGUpe3ZhciByLGksbz1uKHQsZnVuY3Rpb24odCxuKXtpZihyKXJldHVybiByKHQsbi0xKTtpPXQscj1lP2Z1bmN0aW9uKHQsbil7dmFyIGU9RWUodCk7cmV0dXJuIGZ1bmN0aW9uKHIsaSl7cmV0dXJuIG4oZShyKSxpLHQpfX0odCxlKTpFZSh0KX0pO3JldHVybiBvLmNvbHVtbnM9aXx8W10sb30scGFyc2VSb3dzOm4sZm9ybWF0OmZ1bmN0aW9uKG4sZSl7cmV0dXJuIG51bGw9PWUmJihlPWZ1bmN0aW9uKHQpe3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCksZT1bXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KXIgaW4gbnx8ZS5wdXNoKG5bcl09cil9KSxlfShuKSksW2UubWFwKHIpLmpvaW4odCldLmNvbmNhdChuLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHIoblt0XSl9KS5qb2luKHQpfSkpLmpvaW4oXCJcXG5cIil9LGZvcm1hdFJvd3M6ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGUpLmpvaW4oXCJcXG5cIil9fX1mdW5jdGlvbiBDZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC5ibG9iKCl9ZnVuY3Rpb24gUGUodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQuYXJyYXlCdWZmZXIoKX1mdW5jdGlvbiB6ZSh0KXtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IodC5zdGF0dXMrXCIgXCIrdC5zdGF0dXNUZXh0KTtyZXR1cm4gdC50ZXh0KCl9ZnVuY3Rpb24gUmUodCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKHplKX1mdW5jdGlvbiBMZSh0KXtyZXR1cm4gZnVuY3Rpb24obixlLHIpe3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKHI9ZSxlPXZvaWQgMCksUmUobixlKS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiB0KG4scil9KX19ZnVuY3Rpb24gRGUodCl7aWYoIXQub2spdGhyb3cgbmV3IEVycm9yKHQuc3RhdHVzK1wiIFwiK3Quc3RhdHVzVGV4dCk7cmV0dXJuIHQuanNvbigpfWZ1bmN0aW9uIFVlKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3JldHVybiBSZShuLGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuKG5ldyBET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhuLHQpfSl9fWZ1bmN0aW9uIHFlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBPZSgpe3JldHVybiAxZS02KihNYXRoLnJhbmRvbSgpLS41KX1mdW5jdGlvbiBZZSh0LG4sZSxyKXtpZihpc05hTihuKXx8aXNOYU4oZSkpcmV0dXJuIHQ7dmFyIGksbyxhLHUsZixjLHMsbCxoLGQ9dC5fcm9vdCxwPXtkYXRhOnJ9LHY9dC5feDAsZz10Ll95MCx5PXQuX3gxLF89dC5feTE7aWYoIWQpcmV0dXJuIHQuX3Jvb3Q9cCx0O2Zvcig7ZC5sZW5ndGg7KWlmKChjPW4+PShvPSh2K3kpLzIpKT92PW86eT1vLChzPWU+PShhPShnK18pLzIpKT9nPWE6Xz1hLGk9ZCwhKGQ9ZFtsPXM8PDF8Y10pKXJldHVybiBpW2xdPXAsdDtpZih1PSt0Ll94LmNhbGwobnVsbCxkLmRhdGEpLGY9K3QuX3kuY2FsbChudWxsLGQuZGF0YSksbj09PXUmJmU9PT1mKXJldHVybiBwLm5leHQ9ZCxpP2lbbF09cDp0Ll9yb290PXAsdDtkb3tpPWk/aVtsXT1uZXcgQXJyYXkoNCk6dC5fcm9vdD1uZXcgQXJyYXkoNCksKGM9bj49KG89KHYreSkvMikpP3Y9bzp5PW8sKHM9ZT49KGE9KGcrXykvMikpP2c9YTpfPWF9d2hpbGUoKGw9czw8MXxjKT09KGg9KGY+PWEpPDwxfHU+PW8pKTtyZXR1cm4gaVtoXT1kLGlbbF09cCx0fWZ1bmN0aW9uIEJlKHQsbixlLHIsaSl7dGhpcy5ub2RlPXQsdGhpcy54MD1uLHRoaXMueTA9ZSx0aGlzLngxPXIsdGhpcy55MT1pfWZ1bmN0aW9uIEZlKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIEllKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIGplKHQsbixlKXt2YXIgcj1uZXcgSGUobnVsbD09bj9GZTpuLG51bGw9PWU/SWU6ZSxOYU4sTmFOLE5hTixOYU4pO3JldHVybiBudWxsPT10P3I6ci5hZGRBbGwodCl9ZnVuY3Rpb24gSGUodCxuLGUscixpLG8pe3RoaXMuX3g9dCx0aGlzLl95PW4sdGhpcy5feDA9ZSx0aGlzLl95MD1yLHRoaXMuX3gxPWksdGhpcy5feTE9byx0aGlzLl9yb290PXZvaWQgMH1mdW5jdGlvbiBYZSh0KXtmb3IodmFyIG49e2RhdGE6dC5kYXRhfSxlPW47dD10Lm5leHQ7KWU9ZS5uZXh0PXtkYXRhOnQuZGF0YX07cmV0dXJuIG59ZnVuY3Rpb24gR2UodCl7cmV0dXJuIHQueCt0LnZ4fWZ1bmN0aW9uIFZlKHQpe3JldHVybiB0LnkrdC52eX1mdW5jdGlvbiAkZSh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiBXZSh0LG4pe3ZhciBlPXQuZ2V0KG4pO2lmKCFlKXRocm93IG5ldyBFcnJvcihcIm1pc3Npbmc6IFwiK24pO3JldHVybiBlfWZ1bmN0aW9uIFplKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gUWUodCl7cmV0dXJuIHQueX1mdW5jdGlvbiBKZSh0LG4pe2lmKChlPSh0PW4/dC50b0V4cG9uZW50aWFsKG4tMSk6dC50b0V4cG9uZW50aWFsKCkpLmluZGV4T2YoXCJlXCIpKTwwKXJldHVybiBudWxsO3ZhciBlLHI9dC5zbGljZSgwLGUpO3JldHVybltyLmxlbmd0aD4xP3JbMF0rci5zbGljZSgyKTpyLCt0LnNsaWNlKGUrMSldfWZ1bmN0aW9uIEtlKHQpe3JldHVybih0PUplKE1hdGguYWJzKHQpKSk/dFsxXTpOYU59ZnVuY3Rpb24gdHIodCl7cmV0dXJuIG5ldyBucih0KX1mdW5jdGlvbiBucih0KXtpZighKG49dWQuZXhlYyh0KSkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBmb3JtYXQ6IFwiK3QpO3ZhciBuO3RoaXMuZmlsbD1uWzFdfHxcIiBcIix0aGlzLmFsaWduPW5bMl18fFwiPlwiLHRoaXMuc2lnbj1uWzNdfHxcIi1cIix0aGlzLnN5bWJvbD1uWzRdfHxcIlwiLHRoaXMuemVybz0hIW5bNV0sdGhpcy53aWR0aD1uWzZdJiYrbls2XSx0aGlzLmNvbW1hPSEhbls3XSx0aGlzLnByZWNpc2lvbj1uWzhdJiYrbls4XS5zbGljZSgxKSx0aGlzLnRyaW09ISFuWzldLHRoaXMudHlwZT1uWzEwXXx8XCJcIn1mdW5jdGlvbiBlcih0LG4pe3ZhciBlPUplKHQsbik7aWYoIWUpcmV0dXJuIHQrXCJcIjt2YXIgcj1lWzBdLGk9ZVsxXTtyZXR1cm4gaTwwP1wiMC5cIituZXcgQXJyYXkoLWkpLmpvaW4oXCIwXCIpK3I6ci5sZW5ndGg+aSsxP3Iuc2xpY2UoMCxpKzEpK1wiLlwiK3Iuc2xpY2UoaSsxKTpyK25ldyBBcnJheShpLXIubGVuZ3RoKzIpLmpvaW4oXCIwXCIpfWZ1bmN0aW9uIHJyKHQpe3JldHVybiB0fWZ1bmN0aW9uIGlyKHQpe2Z1bmN0aW9uIG4odCl7ZnVuY3Rpb24gbih0KXt2YXIgbixyLGEscz15LHg9XztpZihcImNcIj09PWcpeD1iKHQpK3gsdD1cIlwiO2Vsc2V7dmFyIHc9KHQ9K3QpPDA7aWYodD1iKE1hdGguYWJzKHQpLHApLHYmJih0PWZ1bmN0aW9uKHQpe3Q6Zm9yKHZhciBuLGU9dC5sZW5ndGgscj0xLGk9LTE7cjxlOysrcilzd2l0Y2godFtyXSl7Y2FzZVwiLlwiOmk9bj1yO2JyZWFrO2Nhc2VcIjBcIjowPT09aSYmKGk9ciksbj1yO2JyZWFrO2RlZmF1bHQ6aWYoaT4wKXtpZighK3Rbcl0pYnJlYWsgdDtpPTB9fXJldHVybiBpPjA/dC5zbGljZSgwLGkpK3Quc2xpY2UobisxKTp0fSh0KSksdyYmMD09K3QmJih3PSExKSxzPSh3P1wiKFwiPT09Yz9jOlwiLVwiOlwiLVwiPT09Y3x8XCIoXCI9PT1jP1wiXCI6Yykrcyx4PShcInNcIj09PWc/bGRbOCtmZC8zXTpcIlwiKSt4Kyh3JiZcIihcIj09PWM/XCIpXCI6XCJcIiksbSlmb3Iobj0tMSxyPXQubGVuZ3RoOysrbjxyOylpZig0OD4oYT10LmNoYXJDb2RlQXQobikpfHxhPjU3KXt4PSg0Nj09PWE/aSt0LnNsaWNlKG4rMSk6dC5zbGljZShuKSkreCx0PXQuc2xpY2UoMCxuKTticmVha319ZCYmIWwmJih0PWUodCwxLzApKTt2YXIgTT1zLmxlbmd0aCt0Lmxlbmd0aCt4Lmxlbmd0aCxBPU08aD9uZXcgQXJyYXkoaC1NKzEpLmpvaW4odSk6XCJcIjtzd2l0Y2goZCYmbCYmKHQ9ZShBK3QsQS5sZW5ndGg/aC14Lmxlbmd0aDoxLzApLEE9XCJcIiksZil7Y2FzZVwiPFwiOnQ9cyt0K3grQTticmVhaztjYXNlXCI9XCI6dD1zK0ErdCt4O2JyZWFrO2Nhc2VcIl5cIjp0PUEuc2xpY2UoMCxNPUEubGVuZ3RoPj4xKStzK3QreCtBLnNsaWNlKE0pO2JyZWFrO2RlZmF1bHQ6dD1BK3MrdCt4fXJldHVybiBvKHQpfXZhciB1PSh0PXRyKHQpKS5maWxsLGY9dC5hbGlnbixjPXQuc2lnbixzPXQuc3ltYm9sLGw9dC56ZXJvLGg9dC53aWR0aCxkPXQuY29tbWEscD10LnByZWNpc2lvbix2PXQudHJpbSxnPXQudHlwZTtcIm5cIj09PWc/KGQ9ITAsZz1cImdcIik6c2RbZ118fChudWxsPT1wJiYocD0xMiksdj0hMCxnPVwiZ1wiKSwobHx8XCIwXCI9PT11JiZcIj1cIj09PWYpJiYobD0hMCx1PVwiMFwiLGY9XCI9XCIpO3ZhciB5PVwiJFwiPT09cz9yWzBdOlwiI1wiPT09cyYmL1tib3hYXS8udGVzdChnKT9cIjBcIitnLnRvTG93ZXJDYXNlKCk6XCJcIixfPVwiJFwiPT09cz9yWzFdOi9bJXBdLy50ZXN0KGcpP2E6XCJcIixiPXNkW2ddLG09L1tkZWZncHJzJV0vLnRlc3QoZyk7cmV0dXJuIHA9bnVsbD09cD82Oi9bZ3Byc10vLnRlc3QoZyk/TWF0aC5tYXgoMSxNYXRoLm1pbigyMSxwKSk6TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxwKSksbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0K1wiXCJ9LG59dmFyIGU9dC5ncm91cGluZyYmdC50aG91c2FuZHM/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtmb3IodmFyIGk9ZS5sZW5ndGgsbz1bXSxhPTAsdT10WzBdLGY9MDtpPjAmJnU+MCYmKGYrdSsxPnImJih1PU1hdGgubWF4KDEsci1mKSksby5wdXNoKGUuc3Vic3RyaW5nKGktPXUsaSt1KSksISgoZis9dSsxKT5yKSk7KXU9dFthPShhKzEpJXQubGVuZ3RoXTtyZXR1cm4gby5yZXZlcnNlKCkuam9pbihuKX19KHQuZ3JvdXBpbmcsdC50aG91c2FuZHMpOnJyLHI9dC5jdXJyZW5jeSxpPXQuZGVjaW1hbCxvPXQubnVtZXJhbHM/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBuLnJlcGxhY2UoL1swLTldL2csZnVuY3Rpb24obil7cmV0dXJuIHRbK25dfSl9fSh0Lm51bWVyYWxzKTpycixhPXQucGVyY2VudHx8XCIlXCI7cmV0dXJue2Zvcm1hdDpuLGZvcm1hdFByZWZpeDpmdW5jdGlvbih0LGUpe3ZhciByPW4oKHQ9dHIodCksdC50eXBlPVwiZlwiLHQpKSxpPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKEtlKGUpLzMpKSksbz1NYXRoLnBvdygxMCwtaSksYT1sZFs4K2kvM107cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByKG8qdCkrYX19fX1mdW5jdGlvbiBvcihuKXtyZXR1cm4gY2Q9aXIobiksdC5mb3JtYXQ9Y2QuZm9ybWF0LHQuZm9ybWF0UHJlZml4PWNkLmZvcm1hdFByZWZpeCxjZH1mdW5jdGlvbiBhcih0KXtyZXR1cm4gTWF0aC5tYXgoMCwtS2UoTWF0aC5hYnModCkpKX1mdW5jdGlvbiB1cih0LG4pe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKEtlKG4pLzMpKSktS2UoTWF0aC5hYnModCkpKX1mdW5jdGlvbiBmcih0LG4pe3JldHVybiB0PU1hdGguYWJzKHQpLG49TWF0aC5hYnMobiktdCxNYXRoLm1heCgwLEtlKG4pLUtlKHQpKSsxfWZ1bmN0aW9uIGNyKCl7cmV0dXJuIG5ldyBzcn1mdW5jdGlvbiBzcigpe3RoaXMucmVzZXQoKX1mdW5jdGlvbiBscih0LG4sZSl7dmFyIHI9dC5zPW4rZSxpPXItbixvPXItaTt0LnQ9bi1vKyhlLWkpfWZ1bmN0aW9uIGhyKHQpe3JldHVybiB0PjE/MDp0PC0xP0dkOk1hdGguYWNvcyh0KX1mdW5jdGlvbiBkcih0KXtyZXR1cm4gdD4xP1ZkOnQ8LTE/LVZkOk1hdGguYXNpbih0KX1mdW5jdGlvbiBwcih0KXtyZXR1cm4odD1hcCh0LzIpKSp0fWZ1bmN0aW9uIHZyKCl7fWZ1bmN0aW9uIGdyKHQsbil7dCYmbHAuaGFzT3duUHJvcGVydHkodC50eXBlKSYmbHBbdC50eXBlXSh0LG4pfWZ1bmN0aW9uIHlyKHQsbixlKXt2YXIgcixpPS0xLG89dC5sZW5ndGgtZTtmb3Iobi5saW5lU3RhcnQoKTsrK2k8bzspcj10W2ldLG4ucG9pbnQoclswXSxyWzFdLHJbMl0pO24ubGluZUVuZCgpfWZ1bmN0aW9uIF9yKHQsbil7dmFyIGU9LTEscj10Lmxlbmd0aDtmb3Iobi5wb2x5Z29uU3RhcnQoKTsrK2U8cjspeXIodFtlXSxuLDEpO24ucG9seWdvbkVuZCgpfWZ1bmN0aW9uIGJyKHQsbil7dCYmc3AuaGFzT3duUHJvcGVydHkodC50eXBlKT9zcFt0LnR5cGVdKHQsbik6Z3IodCxuKX1mdW5jdGlvbiBtcigpe3BwLnBvaW50PXdyfWZ1bmN0aW9uIHhyKCl7TXIoaGQsZGQpfWZ1bmN0aW9uIHdyKHQsbil7cHAucG9pbnQ9TXIsaGQ9dCxkZD1uLHBkPXQqPVFkLHZkPW5wKG49KG4qPVFkKS8yKyRkKSxnZD1hcChuKX1mdW5jdGlvbiBNcih0LG4pe249KG4qPVFkKS8yKyRkO3ZhciBlPSh0Kj1RZCktcGQscj1lPj0wPzE6LTEsaT1yKmUsbz1ucChuKSxhPWFwKG4pLHU9Z2QqYSxmPXZkKm8rdSpucChpKSxjPXUqciphcChpKTtocC5hZGQodHAoYyxmKSkscGQ9dCx2ZD1vLGdkPWF9ZnVuY3Rpb24gQXIodCl7cmV0dXJuW3RwKHRbMV0sdFswXSksZHIodFsyXSldfWZ1bmN0aW9uIFRyKHQpe3ZhciBuPXRbMF0sZT10WzFdLHI9bnAoZSk7cmV0dXJuW3IqbnAobiksciphcChuKSxhcChlKV19ZnVuY3Rpb24gTnIodCxuKXtyZXR1cm4gdFswXSpuWzBdK3RbMV0qblsxXSt0WzJdKm5bMl19ZnVuY3Rpb24gU3IodCxuKXtyZXR1cm5bdFsxXSpuWzJdLXRbMl0qblsxXSx0WzJdKm5bMF0tdFswXSpuWzJdLHRbMF0qblsxXS10WzFdKm5bMF1dfWZ1bmN0aW9uIEVyKHQsbil7dFswXSs9blswXSx0WzFdKz1uWzFdLHRbMl0rPW5bMl19ZnVuY3Rpb24ga3IodCxuKXtyZXR1cm5bdFswXSpuLHRbMV0qbix0WzJdKm5dfWZ1bmN0aW9uIENyKHQpe3ZhciBuPWZwKHRbMF0qdFswXSt0WzFdKnRbMV0rdFsyXSp0WzJdKTt0WzBdLz1uLHRbMV0vPW4sdFsyXS89bn1mdW5jdGlvbiBQcih0LG4pe1RkLnB1c2goTmQ9W3lkPXQsYmQ9dF0pLG48X2QmJihfZD1uKSxuPm1kJiYobWQ9bil9ZnVuY3Rpb24genIodCxuKXt2YXIgZT1UcihbdCpRZCxuKlFkXSk7aWYoQWQpe3ZhciByPVNyKEFkLGUpLGk9U3IoW3JbMV0sLXJbMF0sMF0scik7Q3IoaSksaT1BcihpKTt2YXIgbyxhPXQteGQsdT1hPjA/MTotMSxmPWlbMF0qWmQqdSxjPUpkKGEpPjE4MDtjXih1KnhkPGYmJmY8dSp0KT8obz1pWzFdKlpkKT5tZCYmKG1kPW8pOihmPShmKzM2MCklMzYwLTE4MCxjXih1KnhkPGYmJmY8dSp0KT8obz0taVsxXSpaZCk8X2QmJihfZD1vKToobjxfZCYmKF9kPW4pLG4+bWQmJihtZD1uKSkpLGM/dDx4ZD9Pcih5ZCx0KT5Pcih5ZCxiZCkmJihiZD10KTpPcih0LGJkKT5Pcih5ZCxiZCkmJih5ZD10KTpiZD49eWQ/KHQ8eWQmJih5ZD10KSx0PmJkJiYoYmQ9dCkpOnQ+eGQ/T3IoeWQsdCk+T3IoeWQsYmQpJiYoYmQ9dCk6T3IodCxiZCk+T3IoeWQsYmQpJiYoeWQ9dCl9ZWxzZSBUZC5wdXNoKE5kPVt5ZD10LGJkPXRdKTtuPF9kJiYoX2Q9biksbj5tZCYmKG1kPW4pLEFkPWUseGQ9dH1mdW5jdGlvbiBScigpe2dwLnBvaW50PXpyfWZ1bmN0aW9uIExyKCl7TmRbMF09eWQsTmRbMV09YmQsZ3AucG9pbnQ9UHIsQWQ9bnVsbH1mdW5jdGlvbiBEcih0LG4pe2lmKEFkKXt2YXIgZT10LXhkO3ZwLmFkZChKZChlKT4xODA/ZSsoZT4wPzM2MDotMzYwKTplKX1lbHNlIHdkPXQsTWQ9bjtwcC5wb2ludCh0LG4pLHpyKHQsbil9ZnVuY3Rpb24gVXIoKXtwcC5saW5lU3RhcnQoKX1mdW5jdGlvbiBxcigpe0RyKHdkLE1kKSxwcC5saW5lRW5kKCksSmQodnApPkhkJiYoeWQ9LShiZD0xODApKSxOZFswXT15ZCxOZFsxXT1iZCxBZD1udWxsfWZ1bmN0aW9uIE9yKHQsbil7cmV0dXJuKG4tPXQpPDA/biszNjA6bn1mdW5jdGlvbiBZcih0LG4pe3JldHVybiB0WzBdLW5bMF19ZnVuY3Rpb24gQnIodCxuKXtyZXR1cm4gdFswXTw9dFsxXT90WzBdPD1uJiZuPD10WzFdOm48dFswXXx8dFsxXTxufWZ1bmN0aW9uIEZyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpO0lyKGUqbnAodCksZSphcCh0KSxhcChuKSl9ZnVuY3Rpb24gSXIodCxuLGUpe2tkKz0odC1rZCkvKytTZCxDZCs9KG4tQ2QpL1NkLFBkKz0oZS1QZCkvU2R9ZnVuY3Rpb24ganIoKXt5cC5wb2ludD1Icn1mdW5jdGlvbiBIcih0LG4pe3QqPVFkO3ZhciBlPW5wKG4qPVFkKTtCZD1lKm5wKHQpLEZkPWUqYXAodCksSWQ9YXAobikseXAucG9pbnQ9WHIsSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIFhyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpLHI9ZSpucCh0KSxpPWUqYXAodCksbz1hcChuKSxhPXRwKGZwKChhPUZkKm8tSWQqaSkqYSsoYT1JZCpyLUJkKm8pKmErKGE9QmQqaS1GZCpyKSphKSxCZCpyK0ZkKmkrSWQqbyk7RWQrPWEsemQrPWEqKEJkKyhCZD1yKSksUmQrPWEqKEZkKyhGZD1pKSksTGQrPWEqKElkKyhJZD1vKSksSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIEdyKCl7eXAucG9pbnQ9RnJ9ZnVuY3Rpb24gVnIoKXt5cC5wb2ludD1Xcn1mdW5jdGlvbiAkcigpe1pyKE9kLFlkKSx5cC5wb2ludD1Gcn1mdW5jdGlvbiBXcih0LG4pe09kPXQsWWQ9bix0Kj1RZCxuKj1RZCx5cC5wb2ludD1acjt2YXIgZT1ucChuKTtCZD1lKm5wKHQpLEZkPWUqYXAodCksSWQ9YXAobiksSXIoQmQsRmQsSWQpfWZ1bmN0aW9uIFpyKHQsbil7dCo9UWQ7dmFyIGU9bnAobio9UWQpLHI9ZSpucCh0KSxpPWUqYXAodCksbz1hcChuKSxhPUZkKm8tSWQqaSx1PUlkKnItQmQqbyxmPUJkKmktRmQqcixjPWZwKGEqYSt1KnUrZipmKSxzPWRyKGMpLGw9YyYmLXMvYztEZCs9bCphLFVkKz1sKnUscWQrPWwqZixFZCs9cyx6ZCs9cyooQmQrKEJkPXIpKSxSZCs9cyooRmQrKEZkPWkpKSxMZCs9cyooSWQrKElkPW8pKSxJcihCZCxGZCxJZCl9ZnVuY3Rpb24gUXIodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEpyKHQsbil7ZnVuY3Rpb24gZShlLHIpe3JldHVybiBlPXQoZSxyKSxuKGVbMF0sZVsxXSl9cmV0dXJuIHQuaW52ZXJ0JiZuLmludmVydCYmKGUuaW52ZXJ0PWZ1bmN0aW9uKGUscil7cmV0dXJuKGU9bi5pbnZlcnQoZSxyKSkmJnQuaW52ZXJ0KGVbMF0sZVsxXSl9KSxlfWZ1bmN0aW9uIEtyKHQsbil7cmV0dXJuW3Q+R2Q/dC1XZDp0PC1HZD90K1dkOnQsbl19ZnVuY3Rpb24gdGkodCxuLGUpe3JldHVybih0JT1XZCk/bnx8ZT9KcihlaSh0KSxyaShuLGUpKTplaSh0KTpufHxlP3JpKG4sZSk6S3J9ZnVuY3Rpb24gbmkodCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7cmV0dXJuIG4rPXQsW24+R2Q/bi1XZDpuPC1HZD9uK1dkOm4sZV19fWZ1bmN0aW9uIGVpKHQpe3ZhciBuPW5pKHQpO3JldHVybiBuLmludmVydD1uaSgtdCksbn1mdW5jdGlvbiByaSh0LG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1ucChuKSx1PW5wKHQpKmUsZj1hcCh0KSplLGM9YXAobikscz1jKnIrdSppO3JldHVyblt0cChmKm8tcyphLHUqci1jKmkpLGRyKHMqbytmKmEpXX12YXIgcj1ucCh0KSxpPWFwKHQpLG89bnAobiksYT1hcChuKTtyZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1ucChuKSx1PW5wKHQpKmUsZj1hcCh0KSplLGM9YXAobikscz1jKm8tZiphO3JldHVyblt0cChmKm8rYyphLHUqcitzKmkpLGRyKHMqci11KmkpXX0sZX1mdW5jdGlvbiBpaSh0KXtmdW5jdGlvbiBuKG4pe3JldHVybiBuPXQoblswXSpRZCxuWzFdKlFkKSxuWzBdKj1aZCxuWzFdKj1aZCxufXJldHVybiB0PXRpKHRbMF0qUWQsdFsxXSpRZCx0Lmxlbmd0aD4yP3RbMl0qUWQ6MCksbi5pbnZlcnQ9ZnVuY3Rpb24obil7cmV0dXJuIG49dC5pbnZlcnQoblswXSpRZCxuWzFdKlFkKSxuWzBdKj1aZCxuWzFdKj1aZCxufSxufWZ1bmN0aW9uIG9pKHQsbixlLHIsaSxvKXtpZihlKXt2YXIgYT1ucChuKSx1PWFwKG4pLGY9ciplO251bGw9PWk/KGk9bityKldkLG89bi1mLzIpOihpPWFpKGEsaSksbz1haShhLG8pLChyPjA/aTxvOmk+bykmJihpKz1yKldkKSk7Zm9yKHZhciBjLHM9aTtyPjA/cz5vOnM8bztzLT1mKWM9QXIoW2EsLXUqbnAocyksLXUqYXAocyldKSx0LnBvaW50KGNbMF0sY1sxXSl9fWZ1bmN0aW9uIGFpKHQsbil7KG49VHIobikpWzBdLT10LENyKG4pO3ZhciBlPWhyKC1uWzFdKTtyZXR1cm4oKC1uWzJdPDA/LWU6ZSkrV2QtSGQpJVdkfWZ1bmN0aW9uIHVpKCl7dmFyIHQsbj1bXTtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24obixlKXt0LnB1c2goW24sZV0pfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtuLnB1c2godD1bXSl9LGxpbmVFbmQ6dnIscmVqb2luOmZ1bmN0aW9uKCl7bi5sZW5ndGg+MSYmbi5wdXNoKG4ucG9wKCkuY29uY2F0KG4uc2hpZnQoKSkpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgZT1uO3JldHVybiBuPVtdLHQ9bnVsbCxlfX19ZnVuY3Rpb24gZmkodCxuKXtyZXR1cm4gSmQodFswXS1uWzBdKTxIZCYmSmQodFsxXS1uWzFdKTxIZH1mdW5jdGlvbiBjaSh0LG4sZSxyKXt0aGlzLng9dCx0aGlzLno9bix0aGlzLm89ZSx0aGlzLmU9cix0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIHNpKHQsbixlLHIsaSl7dmFyIG8sYSx1PVtdLGY9W107aWYodC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCEoKG49dC5sZW5ndGgtMSk8PTApKXt2YXIgbixlLHI9dFswXSxhPXRbbl07aWYoZmkocixhKSl7Zm9yKGkubGluZVN0YXJ0KCksbz0wO288bjsrK28paS5wb2ludCgocj10W29dKVswXSxyWzFdKTtpLmxpbmVFbmQoKX1lbHNlIHUucHVzaChlPW5ldyBjaShyLHQsbnVsbCwhMCkpLGYucHVzaChlLm89bmV3IGNpKHIsbnVsbCxlLCExKSksdS5wdXNoKGU9bmV3IGNpKGEsdCxudWxsLCExKSksZi5wdXNoKGUubz1uZXcgY2koYSxudWxsLGUsITApKX19KSx1Lmxlbmd0aCl7Zm9yKGYuc29ydChuKSxsaSh1KSxsaShmKSxvPTAsYT1mLmxlbmd0aDtvPGE7KytvKWZbb10uZT1lPSFlO2Zvcih2YXIgYyxzLGw9dVswXTs7KXtmb3IodmFyIGg9bCxkPSEwO2gudjspaWYoKGg9aC5uKT09PWwpcmV0dXJuO2M9aC56LGkubGluZVN0YXJ0KCk7ZG97aWYoaC52PWguby52PSEwLGguZSl7aWYoZClmb3Iobz0wLGE9Yy5sZW5ndGg7bzxhOysrbylpLnBvaW50KChzPWNbb10pWzBdLHNbMV0pO2Vsc2UgcihoLngsaC5uLngsMSxpKTtoPWgubn1lbHNle2lmKGQpZm9yKGM9aC5wLnosbz1jLmxlbmd0aC0xO28+PTA7LS1vKWkucG9pbnQoKHM9Y1tvXSlbMF0sc1sxXSk7ZWxzZSByKGgueCxoLnAueCwtMSxpKTtoPWgucH1jPShoPWgubykueixkPSFkfXdoaWxlKCFoLnYpO2kubGluZUVuZCgpfX19ZnVuY3Rpb24gbGkodCl7aWYobj10Lmxlbmd0aCl7Zm9yKHZhciBuLGUscj0wLGk9dFswXTsrK3I8bjspaS5uPWU9dFtyXSxlLnA9aSxpPWU7aS5uPWU9dFswXSxlLnA9aX19ZnVuY3Rpb24gaGkodCxuKXt2YXIgZT1uWzBdLHI9blsxXSxpPWFwKHIpLG89W2FwKGUpLC1ucChlKSwwXSxhPTAsdT0wO2twLnJlc2V0KCksMT09PWk/cj1WZCtIZDotMT09PWkmJihyPS1WZC1IZCk7Zm9yKHZhciBmPTAsYz10Lmxlbmd0aDtmPGM7KytmKWlmKGw9KHM9dFtmXSkubGVuZ3RoKWZvcih2YXIgcyxsLGg9c1tsLTFdLGQ9aFswXSxwPWhbMV0vMiskZCx2PWFwKHApLGc9bnAocCkseT0wO3k8bDsrK3ksZD1iLHY9eCxnPXcsaD1fKXt2YXIgXz1zW3ldLGI9X1swXSxtPV9bMV0vMiskZCx4PWFwKG0pLHc9bnAobSksTT1iLWQsQT1NPj0wPzE6LTEsVD1BKk0sTj1UPkdkLFM9dip4O2lmKGtwLmFkZCh0cChTKkEqYXAoVCksZyp3K1MqbnAoVCkpKSxhKz1OP00rQSpXZDpNLE5eZD49ZV5iPj1lKXt2YXIgRT1TcihUcihoKSxUcihfKSk7Q3IoRSk7dmFyIGs9U3IobyxFKTtDcihrKTt2YXIgQz0oTl5NPj0wPy0xOjEpKmRyKGtbMl0pOyhyPkN8fHI9PT1DJiYoRVswXXx8RVsxXSkpJiYodSs9Tl5NPj0wPzE6LTEpfX1yZXR1cm4oYTwtSGR8fGE8SGQmJmtwPC1IZCleMSZ1fWZ1bmN0aW9uIGRpKHQsbixlLHIpe3JldHVybiBmdW5jdGlvbihpKXtmdW5jdGlvbiBvKG4sZSl7dChuLGUpJiZpLnBvaW50KG4sZSl9ZnVuY3Rpb24gYSh0LG4pe3YucG9pbnQodCxuKX1mdW5jdGlvbiB1KCl7bS5wb2ludD1hLHYubGluZVN0YXJ0KCl9ZnVuY3Rpb24gZigpe20ucG9pbnQ9byx2LmxpbmVFbmQoKX1mdW5jdGlvbiBjKHQsbil7cC5wdXNoKFt0LG5dKSxfLnBvaW50KHQsbil9ZnVuY3Rpb24gcygpe18ubGluZVN0YXJ0KCkscD1bXX1mdW5jdGlvbiBsKCl7YyhwWzBdWzBdLHBbMF1bMV0pLF8ubGluZUVuZCgpO3ZhciB0LG4sZSxyLG89Xy5jbGVhbigpLGE9Zy5yZXN1bHQoKSx1PWEubGVuZ3RoO2lmKHAucG9wKCksaC5wdXNoKHApLHA9bnVsbCx1KWlmKDEmbyl7aWYoZT1hWzBdLChuPWUubGVuZ3RoLTEpPjApe2ZvcihifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxpLmxpbmVTdGFydCgpLHQ9MDt0PG47Kyt0KWkucG9pbnQoKHI9ZVt0XSlbMF0sclsxXSk7aS5saW5lRW5kKCl9fWVsc2UgdT4xJiYyJm8mJmEucHVzaChhLnBvcCgpLmNvbmNhdChhLnNoaWZ0KCkpKSxkLnB1c2goYS5maWx0ZXIocGkpKX12YXIgaCxkLHAsdj1uKGkpLGc9dWkoKSxfPW4oZyksYj0hMSxtPXtwb2ludDpvLGxpbmVTdGFydDp1LGxpbmVFbmQ6Zixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXttLnBvaW50PWMsbS5saW5lU3RhcnQ9cyxtLmxpbmVFbmQ9bCxkPVtdLGg9W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXttLnBvaW50PW8sbS5saW5lU3RhcnQ9dSxtLmxpbmVFbmQ9ZixkPXkoZCk7dmFyIHQ9aGkoaCxyKTtkLmxlbmd0aD8oYnx8KGkucG9seWdvblN0YXJ0KCksYj0hMCksc2koZCx2aSx0LGUsaSkpOnQmJihifHwoaS5wb2x5Z29uU3RhcnQoKSxiPSEwKSxpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCkpLGImJihpLnBvbHlnb25FbmQoKSxiPSExKSxkPWg9bnVsbH0sc3BoZXJlOmZ1bmN0aW9uKCl7aS5wb2x5Z29uU3RhcnQoKSxpLmxpbmVTdGFydCgpLGUobnVsbCxudWxsLDEsaSksaS5saW5lRW5kKCksaS5wb2x5Z29uRW5kKCl9fTtyZXR1cm4gbX19ZnVuY3Rpb24gcGkodCl7cmV0dXJuIHQubGVuZ3RoPjF9ZnVuY3Rpb24gdmkodCxuKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tVmQtSGQ6VmQtdFsxXSktKChuPW4ueClbMF08MD9uWzFdLVZkLUhkOlZkLW5bMV0pfWZ1bmN0aW9uIGdpKHQpe2Z1bmN0aW9uIG4odCxuKXtyZXR1cm4gbnAodCkqbnAobik+aX1mdW5jdGlvbiBlKHQsbixlKXt2YXIgcj1bMSwwLDBdLG89U3IoVHIodCksVHIobikpLGE9TnIobyxvKSx1PW9bMF0sZj1hLXUqdTtpZighZilyZXR1cm4hZSYmdDt2YXIgYz1pKmEvZixzPS1pKnUvZixsPVNyKHIsbyksaD1rcihyLGMpO0VyKGgsa3IobyxzKSk7dmFyIGQ9bCxwPU5yKGgsZCksdj1OcihkLGQpLGc9cCpwLXYqKE5yKGgsaCktMSk7aWYoIShnPDApKXt2YXIgeT1mcChnKSxfPWtyKGQsKC1wLXkpL3YpO2lmKEVyKF8saCksXz1BcihfKSwhZSlyZXR1cm4gXzt2YXIgYixtPXRbMF0seD1uWzBdLHc9dFsxXSxNPW5bMV07eDxtJiYoYj1tLG09eCx4PWIpO3ZhciBBPXgtbSxUPUpkKEEtR2QpPEhkO2lmKCFUJiZNPHcmJihiPXcsdz1NLE09YiksVHx8QTxIZD9UP3crTT4wXl9bMV08KEpkKF9bMF0tbSk8SGQ/dzpNKTp3PD1fWzFdJiZfWzFdPD1NOkE+R2ReKG08PV9bMF0mJl9bMF08PXgpKXt2YXIgTj1rcihkLCgtcCt5KS92KTtyZXR1cm4gRXIoTixoKSxbXyxBcihOKV19fX1mdW5jdGlvbiByKG4sZSl7dmFyIHI9YT90OkdkLXQsaT0wO3JldHVybiBuPC1yP2l8PTE6bj5yJiYoaXw9MiksZTwtcj9pfD00OmU+ciYmKGl8PTgpLGl9dmFyIGk9bnAodCksbz02KlFkLGE9aT4wLHU9SmQoaSk+SGQ7cmV0dXJuIGRpKG4sZnVuY3Rpb24odCl7dmFyIGksbyxmLGMscztyZXR1cm57bGluZVN0YXJ0OmZ1bmN0aW9uKCl7Yz1mPSExLHM9MX0scG9pbnQ6ZnVuY3Rpb24obCxoKXt2YXIgZCxwPVtsLGhdLHY9bihsLGgpLGc9YT92PzA6cihsLGgpOnY/cihsKyhsPDA/R2Q6LUdkKSxoKTowO2lmKCFpJiYoYz1mPXYpJiZ0LmxpbmVTdGFydCgpLHYhPT1mJiYoIShkPWUoaSxwKSl8fGZpKGksZCl8fGZpKHAsZCkpJiYocFswXSs9SGQscFsxXSs9SGQsdj1uKHBbMF0scFsxXSkpLHYhPT1mKXM9MCx2Pyh0LmxpbmVTdGFydCgpLGQ9ZShwLGkpLHQucG9pbnQoZFswXSxkWzFdKSk6KGQ9ZShpLHApLHQucG9pbnQoZFswXSxkWzFdKSx0LmxpbmVFbmQoKSksaT1kO2Vsc2UgaWYodSYmaSYmYV52KXt2YXIgeTtnJm98fCEoeT1lKHAsaSwhMCkpfHwocz0wLGE/KHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0pLHQucG9pbnQoeVsxXVswXSx5WzFdWzFdKSx0LmxpbmVFbmQoKSk6KHQucG9pbnQoeVsxXVswXSx5WzFdWzFdKSx0LmxpbmVFbmQoKSx0LmxpbmVTdGFydCgpLHQucG9pbnQoeVswXVswXSx5WzBdWzFdKSkpfSF2fHxpJiZmaShpLHApfHx0LnBvaW50KHBbMF0scFsxXSksaT1wLGY9dixvPWd9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmJiZ0LmxpbmVFbmQoKSxpPW51bGx9LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIHN8KGMmJmYpPDwxfX19LGZ1bmN0aW9uKG4sZSxyLGkpe29pKGksdCxvLHIsbixlKX0sYT9bMCwtdF06Wy1HZCx0LUdkXSl9ZnVuY3Rpb24geWkodCxuLGUscil7ZnVuY3Rpb24gaShpLG8pe3JldHVybiB0PD1pJiZpPD1lJiZuPD1vJiZvPD1yfWZ1bmN0aW9uIG8oaSxvLHUsYyl7dmFyIHM9MCxsPTA7aWYobnVsbD09aXx8KHM9YShpLHUpKSE9PShsPWEobyx1KSl8fGYoaSxvKTwwXnU+MClkb3tjLnBvaW50KDA9PT1zfHwzPT09cz90OmUscz4xP3I6bil9d2hpbGUoKHM9KHMrdSs0KSU0KSE9PWwpO2Vsc2UgYy5wb2ludChvWzBdLG9bMV0pfWZ1bmN0aW9uIGEocixpKXtyZXR1cm4gSmQoclswXS10KTxIZD9pPjA/MDozOkpkKHJbMF0tZSk8SGQ/aT4wPzI6MTpKZChyWzFdLW4pPEhkP2k+MD8xOjA6aT4wPzM6Mn1mdW5jdGlvbiB1KHQsbil7cmV0dXJuIGYodC54LG4ueCl9ZnVuY3Rpb24gZih0LG4pe3ZhciBlPWEodCwxKSxyPWEobiwxKTtyZXR1cm4gZSE9PXI/ZS1yOjA9PT1lP25bMV0tdFsxXToxPT09ZT90WzBdLW5bMF06Mj09PWU/dFsxXS1uWzFdOm5bMF0tdFswXX1yZXR1cm4gZnVuY3Rpb24oYSl7ZnVuY3Rpb24gZih0LG4pe2kodCxuKSYmdy5wb2ludCh0LG4pfWZ1bmN0aW9uIGMobyxhKXt2YXIgdT1pKG8sYSk7aWYobCYmaC5wdXNoKFtvLGFdKSxtKWQ9byxwPWEsdj11LG09ITEsdSYmKHcubGluZVN0YXJ0KCksdy5wb2ludChvLGEpKTtlbHNlIGlmKHUmJmIpdy5wb2ludChvLGEpO2Vsc2V7dmFyIGY9W2c9TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsZykpLF89TWF0aC5tYXgoenAsTWF0aC5taW4oUHAsXykpXSxjPVtvPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLG8pKSxhPU1hdGgubWF4KHpwLE1hdGgubWluKFBwLGEpKV07IWZ1bmN0aW9uKHQsbixlLHIsaSxvKXt2YXIgYSx1PXRbMF0sZj10WzFdLGM9MCxzPTEsbD1uWzBdLXUsaD1uWzFdLWY7aWYoYT1lLXUsbHx8IShhPjApKXtpZihhLz1sLGw8MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfWVsc2UgaWYobD4wKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9aWYoYT1pLXUsbHx8IShhPDApKXtpZihhLz1sLGw8MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWVsc2UgaWYobD4wKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9aWYoYT1yLWYsaHx8IShhPjApKXtpZihhLz1oLGg8MCl7aWYoYTxjKXJldHVybjthPHMmJihzPWEpfWVsc2UgaWYoaD4wKXtpZihhPnMpcmV0dXJuO2E+YyYmKGM9YSl9aWYoYT1vLWYsaHx8IShhPDApKXtpZihhLz1oLGg8MCl7aWYoYT5zKXJldHVybjthPmMmJihjPWEpfWVsc2UgaWYoaD4wKXtpZihhPGMpcmV0dXJuO2E8cyYmKHM9YSl9cmV0dXJuIGM+MCYmKHRbMF09dStjKmwsdFsxXT1mK2MqaCksczwxJiYoblswXT11K3MqbCxuWzFdPWYrcypoKSwhMH19fX19KGYsYyx0LG4sZSxyKT91JiYody5saW5lU3RhcnQoKSx3LnBvaW50KG8sYSkseD0hMSk6KGJ8fCh3LmxpbmVTdGFydCgpLHcucG9pbnQoZlswXSxmWzFdKSksdy5wb2ludChjWzBdLGNbMV0pLHV8fHcubGluZUVuZCgpLHg9ITEpfWc9byxfPWEsYj11fXZhciBzLGwsaCxkLHAsdixnLF8sYixtLHgsdz1hLE09dWkoKSxBPXtwb2ludDpmLGxpbmVTdGFydDpmdW5jdGlvbigpe0EucG9pbnQ9YyxsJiZsLnB1c2goaD1bXSksbT0hMCxiPSExLGc9Xz1OYU59LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzJiYoYyhkLHApLHYmJmImJk0ucmVqb2luKCkscy5wdXNoKE0ucmVzdWx0KCkpKSxBLnBvaW50PWYsYiYmdy5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3c9TSxzPVtdLGw9W10seD0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3ZhciBuPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPTAsZT0wLGk9bC5sZW5ndGg7ZTxpOysrZSlmb3IodmFyIG8sYSx1PWxbZV0sZj0xLGM9dS5sZW5ndGgscz11WzBdLGg9c1swXSxkPXNbMV07ZjxjOysrZilvPWgsYT1kLGg9KHM9dVtmXSlbMF0sZD1zWzFdLGE8PXI/ZD5yJiYoaC1vKSooci1hKT4oZC1hKSoodC1vKSYmKytuOmQ8PXImJihoLW8pKihyLWEpPChkLWEpKih0LW8pJiYtLW47cmV0dXJuIG59KCksZT14JiZuLGk9KHM9eShzKSkubGVuZ3RoOyhlfHxpKSYmKGEucG9seWdvblN0YXJ0KCksZSYmKGEubGluZVN0YXJ0KCksbyhudWxsLG51bGwsMSxhKSxhLmxpbmVFbmQoKSksaSYmc2kocyx1LG4sbyxhKSxhLnBvbHlnb25FbmQoKSksdz1hLHM9bD1oPW51bGx9fTtyZXR1cm4gQX19ZnVuY3Rpb24gX2koKXtMcC5wb2ludD1McC5saW5lRW5kPXZyfWZ1bmN0aW9uIGJpKHQsbil7X3A9dCo9UWQsYnA9YXAobio9UWQpLG1wPW5wKG4pLExwLnBvaW50PW1pfWZ1bmN0aW9uIG1pKHQsbil7dCo9UWQ7dmFyIGU9YXAobio9UWQpLHI9bnAobiksaT1KZCh0LV9wKSxvPW5wKGkpLGE9ciphcChpKSx1PW1wKmUtYnAqcipvLGY9YnAqZSttcCpyKm87UnAuYWRkKHRwKGZwKGEqYSt1KnUpLGYpKSxfcD10LGJwPWUsbXA9cn1mdW5jdGlvbiB4aSh0KXtyZXR1cm4gUnAucmVzZXQoKSxicih0LExwKSwrUnB9ZnVuY3Rpb24gd2kodCxuKXtyZXR1cm4gRHBbMF09dCxEcFsxXT1uLHhpKFVwKX1mdW5jdGlvbiBNaSh0LG4pe3JldHVybiEoIXR8fCFPcC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpKSYmT3BbdC50eXBlXSh0LG4pfWZ1bmN0aW9uIEFpKHQsbil7cmV0dXJuIDA9PT13aSh0LG4pfWZ1bmN0aW9uIFRpKHQsbil7dmFyIGU9d2kodFswXSx0WzFdKTtyZXR1cm4gd2kodFswXSxuKSt3aShuLHRbMV0pPD1lK0hkfWZ1bmN0aW9uIE5pKHQsbil7cmV0dXJuISFoaSh0Lm1hcChTaSksRWkobikpfWZ1bmN0aW9uIFNpKHQpe3JldHVybih0PXQubWFwKEVpKSkucG9wKCksdH1mdW5jdGlvbiBFaSh0KXtyZXR1cm5bdFswXSpRZCx0WzFdKlFkXX1mdW5jdGlvbiBraSh0LG4sZSl7dmFyIHI9cyh0LG4tSGQsZSkuY29uY2F0KG4pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5tYXAoZnVuY3Rpb24obil7cmV0dXJuW3Qsbl19KX19ZnVuY3Rpb24gQ2kodCxuLGUpe3ZhciByPXModCxuLUhkLGUpLmNvbmNhdChuKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHIubWFwKGZ1bmN0aW9uKG4pe3JldHVybltuLHRdfSl9fWZ1bmN0aW9uIFBpKCl7ZnVuY3Rpb24gdCgpe3JldHVybnt0eXBlOlwiTXVsdGlMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6bigpfX1mdW5jdGlvbiBuKCl7cmV0dXJuIHMoZXAoby95KSp5LGkseSkubWFwKGQpLmNvbmNhdChzKGVwKGMvXykqXyxmLF8pLm1hcChwKSkuY29uY2F0KHMoZXAoci92KSp2LGUsdikuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBKZCh0JXkpPkhkfSkubWFwKGwpKS5jb25jYXQocyhlcCh1L2cpKmcsYSxnKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIEpkKHQlXyk+SGR9KS5tYXAoaCkpfXZhciBlLHIsaSxvLGEsdSxmLGMsbCxoLGQscCx2PTEwLGc9dix5PTkwLF89MzYwLGI9Mi41O3JldHVybiB0LmxpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIG4oKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3R5cGU6XCJMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6dH19KX0sdC5vdXRsaW5lPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6XCJQb2x5Z29uXCIsY29vcmRpbmF0ZXM6W2QobykuY29uY2F0KHAoZikuc2xpY2UoMSksZChpKS5yZXZlcnNlKCkuc2xpY2UoMSkscChjKS5yZXZlcnNlKCkuc2xpY2UoMSkpXX19LHQuZXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuZXh0ZW50TWFqb3IobikuZXh0ZW50TWlub3Iobik6dC5leHRlbnRNaW5vcigpfSx0LmV4dGVudE1ham9yPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPStuWzBdWzBdLGk9K25bMV1bMF0sYz0rblswXVsxXSxmPStuWzFdWzFdLG8+aSYmKG49byxvPWksaT1uKSxjPmYmJihuPWMsYz1mLGY9biksdC5wcmVjaXNpb24oYikpOltbbyxjXSxbaSxmXV19LHQuZXh0ZW50TWlub3I9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K25bMF1bMF0sZT0rblsxXVswXSx1PStuWzBdWzFdLGE9K25bMV1bMV0scj5lJiYobj1yLHI9ZSxlPW4pLHU+YSYmKG49dSx1PWEsYT1uKSx0LnByZWNpc2lvbihiKSk6W1tyLHVdLFtlLGFdXX0sdC5zdGVwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3Quc3RlcE1ham9yKG4pLnN0ZXBNaW5vcihuKTp0LnN0ZXBNaW5vcigpfSx0LnN0ZXBNYWpvcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeT0rblswXSxfPStuWzFdLHQpOlt5LF9dfSx0LnN0ZXBNaW5vcj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj0rblswXSxnPStuWzFdLHQpOlt2LGddfSx0LnByZWNpc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYj0rbixsPWtpKHUsYSw5MCksaD1DaShyLGUsYiksZD1raShjLGYsOTApLHA9Q2kobyxpLGIpLHQpOmJ9LHQuZXh0ZW50TWFqb3IoW1stMTgwLC05MCtIZF0sWzE4MCw5MC1IZF1dKS5leHRlbnRNaW5vcihbWy0xODAsLTgwLUhkXSxbMTgwLDgwK0hkXV0pfWZ1bmN0aW9uIHppKHQpe3JldHVybiB0fWZ1bmN0aW9uIFJpKCl7RnAucG9pbnQ9TGl9ZnVuY3Rpb24gTGkodCxuKXtGcC5wb2ludD1EaSx4cD1NcD10LHdwPUFwPW59ZnVuY3Rpb24gRGkodCxuKXtCcC5hZGQoQXAqdC1NcCpuKSxNcD10LEFwPW59ZnVuY3Rpb24gVWkoKXtEaSh4cCx3cCl9ZnVuY3Rpb24gcWkodCxuKXtWcCs9dCwkcCs9biwrK1dwfWZ1bmN0aW9uIE9pKCl7ZXYucG9pbnQ9WWl9ZnVuY3Rpb24gWWkodCxuKXtldi5wb2ludD1CaSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEJpKHQsbil7dmFyIGU9dC1TcCxyPW4tRXAsaT1mcChlKmUrcipyKTtacCs9aSooU3ArdCkvMixRcCs9aSooRXArbikvMixKcCs9aSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEZpKCl7ZXYucG9pbnQ9cWl9ZnVuY3Rpb24gSWkoKXtldi5wb2ludD1IaX1mdW5jdGlvbiBqaSgpe1hpKFRwLE5wKX1mdW5jdGlvbiBIaSh0LG4pe2V2LnBvaW50PVhpLHFpKFRwPVNwPXQsTnA9RXA9bil9ZnVuY3Rpb24gWGkodCxuKXt2YXIgZT10LVNwLHI9bi1FcCxpPWZwKGUqZStyKnIpO1pwKz1pKihTcCt0KS8yLFFwKz1pKihFcCtuKS8yLEpwKz1pLEtwKz0oaT1FcCp0LVNwKm4pKihTcCt0KSx0dis9aSooRXArbiksbnYrPTMqaSxxaShTcD10LEVwPW4pfWZ1bmN0aW9uIEdpKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBWaSh0LG4pe2N2LnBvaW50PSRpLGl2PWF2PXQsb3Y9dXY9bn1mdW5jdGlvbiAkaSh0LG4pe2F2LT10LHV2LT1uLGZ2LmFkZChmcChhdiphdit1dip1dikpLGF2PXQsdXY9bn1mdW5jdGlvbiBXaSgpe3RoaXMuX3N0cmluZz1bXX1mdW5jdGlvbiBaaSh0KXtyZXR1cm5cIm0wLFwiK3QrXCJhXCIrdCtcIixcIit0K1wiIDAgMSwxIDAsXCIrLTIqdCtcImFcIit0K1wiLFwiK3QrXCIgMCAxLDEgMCxcIisyKnQrXCJ6XCJ9ZnVuY3Rpb24gUWkodCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPW5ldyBKaTtmb3IodmFyIHIgaW4gdCllW3JdPXRbcl07cmV0dXJuIGUuc3RyZWFtPW4sZX19ZnVuY3Rpb24gSmkoKXt9ZnVuY3Rpb24gS2kodCxuLGUpe3ZhciByPXQuY2xpcEV4dGVudCYmdC5jbGlwRXh0ZW50KCk7cmV0dXJuIHQuc2NhbGUoMTUwKS50cmFuc2xhdGUoWzAsMF0pLG51bGwhPXImJnQuY2xpcEV4dGVudChudWxsKSxicihlLHQuc3RyZWFtKEdwKSksbihHcC5yZXN1bHQoKSksbnVsbCE9ciYmdC5jbGlwRXh0ZW50KHIpLHR9ZnVuY3Rpb24gdG8odCxuLGUpe3JldHVybiBLaSh0LGZ1bmN0aW9uKGUpe3ZhciByPW5bMV1bMF0tblswXVswXSxpPW5bMV1bMV0tblswXVsxXSxvPU1hdGgubWluKHIvKGVbMV1bMF0tZVswXVswXSksaS8oZVsxXVsxXS1lWzBdWzFdKSksYT0rblswXVswXSsoci1vKihlWzFdWzBdK2VbMF1bMF0pKS8yLHU9K25bMF1bMV0rKGktbyooZVsxXVsxXStlWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCpvKS50cmFuc2xhdGUoW2EsdV0pfSxlKX1mdW5jdGlvbiBubyh0LG4sZSl7cmV0dXJuIHRvKHQsW1swLDBdLG5dLGUpfWZ1bmN0aW9uIGVvKHQsbixlKXtyZXR1cm4gS2kodCxmdW5jdGlvbihlKXt2YXIgcj0rbixpPXIvKGVbMV1bMF0tZVswXVswXSksbz0oci1pKihlWzFdWzBdK2VbMF1bMF0pKS8yLGE9LWkqZVswXVsxXTt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW28sYV0pfSxlKX1mdW5jdGlvbiBybyh0LG4sZSl7cmV0dXJuIEtpKHQsZnVuY3Rpb24oZSl7dmFyIHI9K24saT1yLyhlWzFdWzFdLWVbMF1bMV0pLG89LWkqZVswXVswXSxhPShyLWkqKGVbMV1bMV0rZVswXVsxXSkpLzI7dC5zY2FsZSgxNTAqaSkudHJhbnNsYXRlKFtvLGFdKX0sZSl9ZnVuY3Rpb24gaW8odCxuKXtyZXR1cm4rbj9mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUocixpLG8sYSx1LGYsYyxzLGwsaCxkLHAsdixnKXt2YXIgeT1jLXIsXz1zLWksYj15KnkrXypfO2lmKGI+NCpuJiZ2LS0pe3ZhciBtPWEraCx4PXUrZCx3PWYrcCxNPWZwKG0qbSt4Kngrdyp3KSxBPWRyKHcvPU0pLFQ9SmQoSmQodyktMSk8SGR8fEpkKG8tbCk8SGQ/KG8rbCkvMjp0cCh4LG0pLE49dChULEEpLFM9TlswXSxFPU5bMV0saz1TLXIsQz1FLWksUD1fKmsteSpDOyhQKlAvYj5ufHxKZCgoeSprK18qQykvYi0uNSk+LjN8fGEqaCt1KmQrZipwPGx2KSYmKGUocixpLG8sYSx1LGYsUyxFLFQsbS89TSx4Lz1NLHcsdixnKSxnLnBvaW50KFMsRSksZShTLEUsVCxtLHgsdyxjLHMsbCxoLGQscCx2LGcpKX19cmV0dXJuIGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIoZSxyKXtlPXQoZSxyKSxuLnBvaW50KGVbMF0sZVsxXSl9ZnVuY3Rpb24gaSgpe3k9TmFOLHcucG9pbnQ9byxuLmxpbmVTdGFydCgpfWZ1bmN0aW9uIG8ocixpKXt2YXIgbz1UcihbcixpXSksYT10KHIsaSk7ZSh5LF8sZyxiLG0seCx5PWFbMF0sXz1hWzFdLGc9cixiPW9bMF0sbT1vWzFdLHg9b1syXSxzdixuKSxuLnBvaW50KHksXyl9ZnVuY3Rpb24gYSgpe3cucG9pbnQ9cixuLmxpbmVFbmQoKX1mdW5jdGlvbiB1KCl7aSgpLHcucG9pbnQ9Zix3LmxpbmVFbmQ9Y31mdW5jdGlvbiBmKHQsbil7byhzPXQsbiksbD15LGg9XyxkPWIscD1tLHY9eCx3LnBvaW50PW99ZnVuY3Rpb24gYygpe2UoeSxfLGcsYixtLHgsbCxoLHMsZCxwLHYsc3Ysbiksdy5saW5lRW5kPWEsYSgpfXZhciBzLGwsaCxkLHAsdixnLHksXyxiLG0seCx3PXtwb2ludDpyLGxpbmVTdGFydDppLGxpbmVFbmQ6YSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25TdGFydCgpLHcubGluZVN0YXJ0PXV9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtuLnBvbHlnb25FbmQoKSx3LmxpbmVTdGFydD1pfX07cmV0dXJuIHd9fSh0LG4pOmZ1bmN0aW9uKHQpe3JldHVybiBRaSh7cG9pbnQ6ZnVuY3Rpb24obixlKXtuPXQobixlKSx0aGlzLnN0cmVhbS5wb2ludChuWzBdLG5bMV0pfX0pfSh0KX1mdW5jdGlvbiBvbyh0LG4sZSxyKXtmdW5jdGlvbiBpKHQscil7cmV0dXJuW3UqdC1mKnIrbixlLWYqdC11KnJdfXZhciBvPW5wKHIpLGE9YXAociksdT1vKnQsZj1hKnQsYz1vL3Qscz1hL3QsbD0oYSplLW8qbikvdCxoPShhKm4rbyplKS90O3JldHVybiBpLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVybltjKnQtcypuK2wsaC1zKnQtYypuXX0saX1mdW5jdGlvbiBhbyh0KXtyZXR1cm4gdW8oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKCl9ZnVuY3Rpb24gdW8odCl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbCh0WzBdKlFkLHRbMV0qUWQpfWZ1bmN0aW9uIGUoKXt2YXIgdD1vbyhwLDAsMCx3KS5hcHBseShudWxsLGkoeSxfKSksbj0odz9vbzpmdW5jdGlvbih0LG4sZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybltuK3QqcixlLXQqaV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHIsaSl7cmV0dXJuWyhyLW4pL3QsKGUtaSkvdF19LHJ9KShwLHYtdFswXSxnLXRbMV0sdyk7cmV0dXJuIG89dGkoYixtLHgpLHM9SnIoaSxuKSxsPUpyKG8scyksYz1pbyhzLFMpLHIoKX1mdW5jdGlvbiByKCl7cmV0dXJuIGg9ZD1udWxsLG59dmFyIGksbyxhLHUsZixjLHMsbCxoLGQscD0xNTAsdj00ODAsZz0yNTAseT0wLF89MCxiPTAsbT0wLHg9MCx3PTAsTT1udWxsLEE9Q3AsVD1udWxsLE49emksUz0uNTtyZXR1cm4gbi5zdHJlYW09ZnVuY3Rpb24odCl7cmV0dXJuIGgmJmQ9PT10P2g6aD1odihmdW5jdGlvbih0KXtyZXR1cm4gUWkoe3BvaW50OmZ1bmN0aW9uKG4sZSl7dmFyIHI9dChuLGUpO3JldHVybiB0aGlzLnN0cmVhbS5wb2ludChyWzBdLHJbMV0pfX0pfShvKShBKGMoTihkPXQpKSkpKX0sbi5wcmVjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPXQsTT12b2lkIDAscigpKTpBfSxuLnBvc3RjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhOPXQsVD1hPXU9Zj1udWxsLHIoKSk6Tn0sbi5jbGlwQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9K3Q/Z2koTT10KlFkKTooTT1udWxsLENwKSxyKCkpOk0qWmR9LG4uY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTj1udWxsPT10PyhUPWE9dT1mPW51bGwsemkpOnlpKFQ9K3RbMF1bMF0sYT0rdFswXVsxXSx1PSt0WzFdWzBdLGY9K3RbMV1bMV0pLHIoKSk6bnVsbD09VD9udWxsOltbVCxhXSxbdSxmXV19LG4uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9K3QsZSgpKTpwfSxuLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj0rdFswXSxnPSt0WzFdLGUoKSk6W3YsZ119LG4uY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PXRbMF0lMzYwKlFkLF89dFsxXSUzNjAqUWQsZSgpKTpbeSpaZCxfKlpkXX0sbi5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9dFswXSUzNjAqUWQsbT10WzFdJTM2MCpRZCx4PXQubGVuZ3RoPjI/dFsyXSUzNjAqUWQ6MCxlKCkpOltiKlpkLG0qWmQseCpaZF19LG4uYW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9dCUzNjAqUWQsZSgpKTp3KlpkfSxuLnByZWNpc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1pbyhzLFM9dCp0KSxyKCkpOmZwKFMpfSxuLmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiB0byhuLHQsZSl9LG4uZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBubyhuLHQsZSl9LG4uZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZW8obix0LGUpfSxuLmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBybyhuLHQsZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIGk9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbi5pbnZlcnQ9aS5pbnZlcnQmJmZ1bmN0aW9uKHQpe3JldHVybih0PWwuaW52ZXJ0KHRbMF0sdFsxXSkpJiZbdFswXSpaZCx0WzFdKlpkXX0sZSgpfX1mdW5jdGlvbiBmbyh0KXt2YXIgbj0wLGU9R2QvMyxyPXVvKHQpLGk9cihuLGUpO3JldHVybiBpLnBhcmFsbGVscz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKG49dFswXSpRZCxlPXRbMV0qUWQpOltuKlpkLGUqWmRdfSxpfWZ1bmN0aW9uIGNvKHQsbil7ZnVuY3Rpb24gZSh0LG4pe3ZhciBlPWZwKG8tMippKmFwKG4pKS9pO3JldHVybltlKmFwKHQqPWkpLGEtZSpucCh0KV19dmFyIHI9YXAodCksaT0ocithcChuKSkvMjtpZihKZChpKTxIZClyZXR1cm4gZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0LG4pe3JldHVyblt0KmUsYXAobikvZV19dmFyIGU9bnAodCk7cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QvZSxkcihuKmUpXX0sbn0odCk7dmFyIG89MStyKigyKmktciksYT1mcChvKS9pO3JldHVybiBlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPWEtbjtyZXR1cm5bdHAodCxKZChlKSkvaSp1cChlKSxkcigoby0odCp0K2UqZSkqaSppKS8oMippKSldfSxlfWZ1bmN0aW9uIHNvKCl7cmV0dXJuIGZvKGNvKS5zY2FsZSgxNTUuNDI0KS5jZW50ZXIoWzAsMzMuNjQ0Ml0pfWZ1bmN0aW9uIGxvKCl7cmV0dXJuIHNvKCkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKS50cmFuc2xhdGUoWzQ4MCwyNTBdKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSl9ZnVuY3Rpb24gaG8odCl7cmV0dXJuIGZ1bmN0aW9uKG4sZSl7dmFyIHI9bnAobiksaT1ucChlKSxvPXQocippKTtyZXR1cm5bbyppKmFwKG4pLG8qYXAoZSldfX1mdW5jdGlvbiBwbyh0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj1mcChuKm4rZSplKSxpPXQociksbz1hcChpKSxhPW5wKGkpO3JldHVyblt0cChuKm8sciphKSxkcihyJiZlKm8vcildfX1mdW5jdGlvbiB2byh0LG4pe3JldHVyblt0LGlwKGNwKChWZCtuKS8yKSldfWZ1bmN0aW9uIGdvKHQpe2Z1bmN0aW9uIG4oKXt2YXIgbj1HZCp1KCksYT1vKGlpKG8ucm90YXRlKCkpLmludmVydChbMCwwXSkpO3JldHVybiBjKG51bGw9PXM/W1thWzBdLW4sYVsxXS1uXSxbYVswXStuLGFbMV0rbl1dOnQ9PT12bz9bW01hdGgubWF4KGFbMF0tbixzKSxlXSxbTWF0aC5taW4oYVswXStuLHIpLGldXTpbW3MsTWF0aC5tYXgoYVsxXS1uLGUpXSxbcixNYXRoLm1pbihhWzFdK24saSldXSl9dmFyIGUscixpLG89YW8odCksYT1vLmNlbnRlcix1PW8uc2NhbGUsZj1vLnRyYW5zbGF0ZSxjPW8uY2xpcEV4dGVudCxzPW51bGw7cmV0dXJuIG8uc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHUodCksbigpKTp1KCl9LG8udHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhmKHQpLG4oKSk6ZigpfSxvLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYSh0KSxuKCkpOmEoKX0sby5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P3M9ZT1yPWk9bnVsbDoocz0rdFswXVswXSxlPSt0WzBdWzFdLHI9K3RbMV1bMF0saT0rdFsxXVsxXSksbigpKTpudWxsPT1zP251bGw6W1tzLGVdLFtyLGldXX0sbigpfWZ1bmN0aW9uIHlvKHQpe3JldHVybiBjcCgoVmQrdCkvMil9ZnVuY3Rpb24gX28odCxuKXtmdW5jdGlvbiBlKHQsbil7bz4wP248LVZkK0hkJiYobj0tVmQrSGQpOm4+VmQtSGQmJihuPVZkLUhkKTt2YXIgZT1vL29wKHlvKG4pLGkpO3JldHVybltlKmFwKGkqdCksby1lKm5wKGkqdCldfXZhciByPW5wKHQpLGk9dD09PW4/YXAodCk6aXAoci9ucChuKSkvaXAoeW8obikveW8odCkpLG89cipvcCh5byh0KSxpKS9pO3JldHVybiBpPyhlLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBlPW8tbixyPXVwKGkpKmZwKHQqdCtlKmUpO3JldHVyblt0cCh0LEpkKGUpKS9pKnVwKGUpLDIqS2Qob3Aoby9yLDEvaSkpLVZkXX0sZSk6dm99ZnVuY3Rpb24gYm8odCxuKXtyZXR1cm5bdCxuXX1mdW5jdGlvbiBtbyh0LG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1vLW4scj1pKnQ7cmV0dXJuW2UqYXAociksby1lKm5wKHIpXX12YXIgcj1ucCh0KSxpPXQ9PT1uP2FwKHQpOihyLW5wKG4pKS8obi10KSxvPXIvaSt0O3JldHVybiBKZChpKTxIZD9ibzooZS5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZT1vLW47cmV0dXJuW3RwKHQsSmQoZSkpL2kqdXAoZSksby11cChpKSpmcCh0KnQrZSplKV19LGUpfWZ1bmN0aW9uIHhvKHQsbil7dmFyIGU9bnAobikscj1ucCh0KSplO3JldHVybltlKmFwKHQpL3IsYXAobikvcl19ZnVuY3Rpb24gd28odCxuLGUscil7cmV0dXJuIDE9PT10JiYxPT09biYmMD09PWUmJjA9PT1yP3ppOlFpKHtwb2ludDpmdW5jdGlvbihpLG8pe3RoaXMuc3RyZWFtLnBvaW50KGkqdCtlLG8qbityKX19KX1mdW5jdGlvbiBNbyh0LG4pe3ZhciBlPW4qbixyPWUqZTtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSplK3IqKHIqKC4wMDM5NzEqZS0uMDAxNTI5KnIpLS4wMTM3OTEpKSxuKigxLjAwNzIyNitlKiguMDE1MDg1K3IqKC4wMjg4NzQqZS0uMDQ0NDc1LS4wMDU5MTYqcikpKV19ZnVuY3Rpb24gQW8odCxuKXtyZXR1cm5bbnAobikqYXAodCksYXAobildfWZ1bmN0aW9uIFRvKHQsbil7dmFyIGU9bnAobikscj0xK25wKHQpKmU7cmV0dXJuW2UqYXAodCkvcixhcChuKS9yXX1mdW5jdGlvbiBObyh0LG4pe3JldHVybltpcChjcCgoVmQrbikvMikpLC10XX1mdW5jdGlvbiBTbyh0LG4pe3JldHVybiB0LnBhcmVudD09PW4ucGFyZW50PzE6Mn1mdW5jdGlvbiBFbyh0LG4pe3JldHVybiB0K24ueH1mdW5jdGlvbiBrbyh0LG4pe3JldHVybiBNYXRoLm1heCh0LG4ueSl9ZnVuY3Rpb24gQ28odCl7dmFyIG49MCxlPXQuY2hpbGRyZW4scj1lJiZlLmxlbmd0aDtpZihyKWZvcig7LS1yPj0wOyluKz1lW3JdLnZhbHVlO2Vsc2Ugbj0xO3QudmFsdWU9bn1mdW5jdGlvbiBQbyh0LG4pe3ZhciBlLHIsaSxvLGEsdT1uZXcgRG8odCksZj0rdC52YWx1ZSYmKHUudmFsdWU9dC52YWx1ZSksYz1bdV07Zm9yKG51bGw9PW4mJihuPXpvKTtlPWMucG9wKCk7KWlmKGYmJihlLnZhbHVlPStlLmRhdGEudmFsdWUpLChpPW4oZS5kYXRhKSkmJihhPWkubGVuZ3RoKSlmb3IoZS5jaGlsZHJlbj1uZXcgQXJyYXkoYSksbz1hLTE7bz49MDstLW8pYy5wdXNoKHI9ZS5jaGlsZHJlbltvXT1uZXcgRG8oaVtvXSkpLHIucGFyZW50PWUsci5kZXB0aD1lLmRlcHRoKzE7cmV0dXJuIHUuZWFjaEJlZm9yZShMbyl9ZnVuY3Rpb24gem8odCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gUm8odCl7dC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIExvKHQpe3ZhciBuPTA7ZG97dC5oZWlnaHQ9bn13aGlsZSgodD10LnBhcmVudCkmJnQuaGVpZ2h0PCsrbil9ZnVuY3Rpb24gRG8odCl7dGhpcy5kYXRhPXQsdGhpcy5kZXB0aD10aGlzLmhlaWdodD0wLHRoaXMucGFyZW50PW51bGx9ZnVuY3Rpb24gVW8odCl7Zm9yKHZhciBuLGUscj0wLGk9KHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj10Lmxlbmd0aDtyOyllPU1hdGgucmFuZG9tKCkqci0tfDAsbj10W3JdLHRbcl09dFtlXSx0W2VdPW47cmV0dXJuIHR9KHZ2LmNhbGwodCkpKS5sZW5ndGgsbz1bXTtyPGk7KW49dFtyXSxlJiZPbyhlLG4pPysrcjooZT1mdW5jdGlvbih0KXtzd2l0Y2godC5sZW5ndGgpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJue3g6dC54LHk6dC55LHI6dC5yfX0odFswXSk7Y2FzZSAyOnJldHVybiBCbyh0WzBdLHRbMV0pO2Nhc2UgMzpyZXR1cm4gRm8odFswXSx0WzFdLHRbMl0pfX0obz1mdW5jdGlvbih0LG4pe3ZhciBlLHI7aWYoWW8obix0KSlyZXR1cm5bbl07Zm9yKGU9MDtlPHQubGVuZ3RoOysrZSlpZihxbyhuLHRbZV0pJiZZbyhCbyh0W2VdLG4pLHQpKXJldHVyblt0W2VdLG5dO2ZvcihlPTA7ZTx0Lmxlbmd0aC0xOysrZSlmb3Iocj1lKzE7cjx0Lmxlbmd0aDsrK3IpaWYocW8oQm8odFtlXSx0W3JdKSxuKSYmcW8oQm8odFtlXSxuKSx0W3JdKSYmcW8oQm8odFtyXSxuKSx0W2VdKSYmWW8oRm8odFtlXSx0W3JdLG4pLHQpKXJldHVyblt0W2VdLHRbcl0sbl07dGhyb3cgbmV3IEVycm9yfShvLG4pKSxyPTApO3JldHVybiBlfWZ1bmN0aW9uIHFvKHQsbil7dmFyIGU9dC5yLW4ucixyPW4ueC10LngsaT1uLnktdC55O3JldHVybiBlPDB8fGUqZTxyKnIraSppfWZ1bmN0aW9uIE9vKHQsbil7dmFyIGU9dC5yLW4ucisxZS02LHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU+MCYmZSplPnIqcitpKml9ZnVuY3Rpb24gWW8odCxuKXtmb3IodmFyIGU9MDtlPG4ubGVuZ3RoOysrZSlpZighT28odCxuW2VdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBCbyh0LG4pe3ZhciBlPXQueCxyPXQueSxpPXQucixvPW4ueCxhPW4ueSx1PW4ucixmPW8tZSxjPWEtcixzPXUtaSxsPU1hdGguc3FydChmKmYrYypjKTtyZXR1cm57eDooZStvK2YvbCpzKS8yLHk6KHIrYStjL2wqcykvMixyOihsK2krdSkvMn19ZnVuY3Rpb24gRm8odCxuLGUpe3ZhciByPXQueCxpPXQueSxvPXQucixhPW4ueCx1PW4ueSxmPW4ucixjPWUueCxzPWUueSxsPWUucixoPXItYSxkPXItYyxwPWktdSx2PWktcyxnPWYtbyx5PWwtbyxfPXIqcitpKmktbypvLGI9Xy1hKmEtdSp1K2YqZixtPV8tYypjLXMqcytsKmwseD1kKnAtaCp2LHc9KHAqbS12KmIpLygyKngpLXIsTT0odipnLXAqeSkveCxBPShkKmItaCptKS8oMip4KS1pLFQ9KGgqeS1kKmcpL3gsTj1NKk0rVCpULTEsUz0yKihvK3cqTStBKlQpLEU9dyp3K0EqQS1vKm8saz0tKE4/KFMrTWF0aC5zcXJ0KFMqUy00Kk4qRSkpLygyKk4pOkUvUyk7cmV0dXJue3g6cit3K00qayx5OmkrQStUKmsscjprfX1mdW5jdGlvbiBJbyh0LG4sZSl7dmFyIHIsaSxvLGEsdT10Lngtbi54LGY9dC55LW4ueSxjPXUqdStmKmY7Yz8oaT1uLnIrZS5yLGkqPWksYT10LnIrZS5yLGk+KGEqPWEpPyhyPShjK2EtaSkvKDIqYyksbz1NYXRoLnNxcnQoTWF0aC5tYXgoMCxhL2MtcipyKSksZS54PXQueC1yKnUtbypmLGUueT10LnktcipmK28qdSk6KHI9KGMraS1hKS8oMipjKSxvPU1hdGguc3FydChNYXRoLm1heCgwLGkvYy1yKnIpKSxlLng9bi54K3IqdS1vKmYsZS55PW4ueStyKmYrbyp1KSk6KGUueD1uLngrZS5yLGUueT1uLnkpfWZ1bmN0aW9uIGpvKHQsbil7dmFyIGU9dC5yK24uci0xZS02LHI9bi54LXQueCxpPW4ueS10Lnk7cmV0dXJuIGU+MCYmZSplPnIqcitpKml9ZnVuY3Rpb24gSG8odCl7dmFyIG49dC5fLGU9dC5uZXh0Ll8scj1uLnIrZS5yLGk9KG4ueCplLnIrZS54Km4ucikvcixvPShuLnkqZS5yK2UueSpuLnIpL3I7cmV0dXJuIGkqaStvKm99ZnVuY3Rpb24gWG8odCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIEdvKHQpe2lmKCEoaT10Lmxlbmd0aCkpcmV0dXJuIDA7dmFyIG4sZSxyLGksbyxhLHUsZixjLHMsbDtpZihuPXRbMF0sbi54PTAsbi55PTAsIShpPjEpKXJldHVybiBuLnI7aWYoZT10WzFdLG4ueD0tZS5yLGUueD1uLnIsZS55PTAsIShpPjIpKXJldHVybiBuLnIrZS5yO0lvKGUsbixyPXRbMl0pLG49bmV3IFhvKG4pLGU9bmV3IFhvKGUpLHI9bmV3IFhvKHIpLG4ubmV4dD1yLnByZXZpb3VzPWUsZS5uZXh0PW4ucHJldmlvdXM9cixyLm5leHQ9ZS5wcmV2aW91cz1uO3Q6Zm9yKHU9Mzt1PGk7Kyt1KXtJbyhuLl8sZS5fLHI9dFt1XSkscj1uZXcgWG8ociksZj1lLm5leHQsYz1uLnByZXZpb3VzLHM9ZS5fLnIsbD1uLl8ucjtkb3tpZihzPD1sKXtpZihqbyhmLl8sci5fKSl7ZT1mLG4ubmV4dD1lLGUucHJldmlvdXM9biwtLXU7Y29udGludWUgdH1zKz1mLl8ucixmPWYubmV4dH1lbHNle2lmKGpvKGMuXyxyLl8pKXsobj1jKS5uZXh0PWUsZS5wcmV2aW91cz1uLC0tdTtjb250aW51ZSB0fWwrPWMuXy5yLGM9Yy5wcmV2aW91c319d2hpbGUoZiE9PWMubmV4dCk7Zm9yKHIucHJldmlvdXM9bixyLm5leHQ9ZSxuLm5leHQ9ZS5wcmV2aW91cz1lPXIsbz1IbyhuKTsocj1yLm5leHQpIT09ZTspKGE9SG8ocikpPG8mJihuPXIsbz1hKTtlPW4ubmV4dH1mb3Iobj1bZS5fXSxyPWU7KHI9ci5uZXh0KSE9PWU7KW4ucHVzaChyLl8pO2ZvcihyPVVvKG4pLHU9MDt1PGk7Kyt1KW49dFt1XSxuLngtPXIueCxuLnktPXIueTtyZXR1cm4gci5yfWZ1bmN0aW9uIFZvKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0fWZ1bmN0aW9uICRvKCl7cmV0dXJuIDB9ZnVuY3Rpb24gV28odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIFpvKHQpe3JldHVybiBNYXRoLnNxcnQodC52YWx1ZSl9ZnVuY3Rpb24gUW8odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe24uY2hpbGRyZW58fChuLnI9TWF0aC5tYXgoMCwrdChuKXx8MCkpfX1mdW5jdGlvbiBKbyh0LG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihyPWUuY2hpbGRyZW4pe3ZhciByLGksbyxhPXIubGVuZ3RoLHU9dChlKSpufHwwO2lmKHUpZm9yKGk9MDtpPGE7KytpKXJbaV0ucis9dTtpZihvPUdvKHIpLHUpZm9yKGk9MDtpPGE7KytpKXJbaV0uci09dTtlLnI9byt1fX19ZnVuY3Rpb24gS28odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBlPW4ucGFyZW50O24ucio9dCxlJiYobi54PWUueCt0Km4ueCxuLnk9ZS55K3Qqbi55KX19ZnVuY3Rpb24gdGEodCl7dC54MD1NYXRoLnJvdW5kKHQueDApLHQueTA9TWF0aC5yb3VuZCh0LnkwKSx0LngxPU1hdGgucm91bmQodC54MSksdC55MT1NYXRoLnJvdW5kKHQueTEpfWZ1bmN0aW9uIG5hKHQsbixlLHIsaSl7Zm9yKHZhciBvLGE9dC5jaGlsZHJlbix1PS0xLGY9YS5sZW5ndGgsYz10LnZhbHVlJiYoci1uKS90LnZhbHVlOysrdTxmOykobz1hW3VdKS55MD1lLG8ueTE9aSxvLngwPW4sby54MT1uKz1vLnZhbHVlKmN9ZnVuY3Rpb24gZWEodCl7cmV0dXJuIHQuaWR9ZnVuY3Rpb24gcmEodCl7cmV0dXJuIHQucGFyZW50SWR9ZnVuY3Rpb24gaWEodCxuKXtyZXR1cm4gdC5wYXJlbnQ9PT1uLnBhcmVudD8xOjJ9ZnVuY3Rpb24gb2EodCl7dmFyIG49dC5jaGlsZHJlbjtyZXR1cm4gbj9uWzBdOnQudH1mdW5jdGlvbiBhYSh0KXt2YXIgbj10LmNoaWxkcmVuO3JldHVybiBuP25bbi5sZW5ndGgtMV06dC50fWZ1bmN0aW9uIHVhKHQsbixlKXt2YXIgcj1lLyhuLmktdC5pKTtuLmMtPXIsbi5zKz1lLHQuYys9cixuLnorPWUsbi5tKz1lfWZ1bmN0aW9uIGZhKHQsbixlKXtyZXR1cm4gdC5hLnBhcmVudD09PW4ucGFyZW50P3QuYTplfWZ1bmN0aW9uIGNhKHQsbil7dGhpcy5fPXQsdGhpcy5wYXJlbnQ9bnVsbCx0aGlzLmNoaWxkcmVuPW51bGwsdGhpcy5BPW51bGwsdGhpcy5hPXRoaXMsdGhpcy56PTAsdGhpcy5tPTAsdGhpcy5jPTAsdGhpcy5zPTAsdGhpcy50PW51bGwsdGhpcy5pPW59ZnVuY3Rpb24gc2EodCxuLGUscixpKXtmb3IodmFyIG8sYT10LmNoaWxkcmVuLHU9LTEsZj1hLmxlbmd0aCxjPXQudmFsdWUmJihpLWUpL3QudmFsdWU7Kyt1PGY7KShvPWFbdV0pLngwPW4sby54MT1yLG8ueTA9ZSxvLnkxPWUrPW8udmFsdWUqY31mdW5jdGlvbiBsYSh0LG4sZSxyLGksbyl7Zm9yKHZhciBhLHUsZixjLHMsbCxoLGQscCx2LGcseT1bXSxfPW4uY2hpbGRyZW4sYj0wLG09MCx4PV8ubGVuZ3RoLHc9bi52YWx1ZTtiPHg7KXtmPWktZSxjPW8tcjtkb3tzPV9bbSsrXS52YWx1ZX13aGlsZSghcyYmbTx4KTtmb3IobD1oPXMsZz1zKnMqKHY9TWF0aC5tYXgoYy9mLGYvYykvKHcqdCkpLHA9TWF0aC5tYXgoaC9nLGcvbCk7bTx4OysrbSl7aWYocys9dT1fW21dLnZhbHVlLHU8bCYmKGw9dSksdT5oJiYoaD11KSxnPXMqcyp2LChkPU1hdGgubWF4KGgvZyxnL2wpKT5wKXtzLT11O2JyZWFrfXA9ZH15LnB1c2goYT17dmFsdWU6cyxkaWNlOmY8YyxjaGlsZHJlbjpfLnNsaWNlKGIsbSl9KSxhLmRpY2U/bmEoYSxlLHIsaSx3P3IrPWMqcy93Om8pOnNhKGEsZSxyLHc/ZSs9ZipzL3c6aSxvKSx3LT1zLGI9bX1yZXR1cm4geX1mdW5jdGlvbiBoYSh0LG4sZSl7cmV0dXJuKG5bMF0tdFswXSkqKGVbMV0tdFsxXSktKG5bMV0tdFsxXSkqKGVbMF0tdFswXSl9ZnVuY3Rpb24gZGEodCxuKXtyZXR1cm4gdFswXS1uWzBdfHx0WzFdLW5bMV19ZnVuY3Rpb24gcGEodCl7Zm9yKHZhciBuPXQubGVuZ3RoLGU9WzAsMV0scj0yLGk9MjtpPG47KytpKXtmb3IoO3I+MSYmaGEodFtlW3ItMl1dLHRbZVtyLTFdXSx0W2ldKTw9MDspLS1yO2VbcisrXT1pfXJldHVybiBlLnNsaWNlKDAscil9ZnVuY3Rpb24gdmEoKXtyZXR1cm4gTWF0aC5yYW5kb20oKX1mdW5jdGlvbiBnYSh0KXtmdW5jdGlvbiBuKG4pe3ZhciBvPW4rXCJcIixhPWUuZ2V0KG8pO2lmKCFhKXtpZihpIT09UHYpcmV0dXJuIGk7ZS5zZXQobyxhPXIucHVzaChuKSl9cmV0dXJuIHRbKGEtMSkldC5sZW5ndGhdfXZhciBlPWhlKCkscj1bXSxpPVB2O3JldHVybiB0PW51bGw9PXQ/W106Q3YuY2FsbCh0KSxuLmRvbWFpbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gci5zbGljZSgpO3I9W10sZT1oZSgpO2Zvcih2YXIgaSxvLGE9LTEsdT10Lmxlbmd0aDsrK2E8dTspZS5oYXMobz0oaT10W2FdKStcIlwiKXx8ZS5zZXQobyxyLnB1c2goaSkpO3JldHVybiBufSxuLnJhbmdlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PUN2LmNhbGwoZSksbik6dC5zbGljZSgpfSxuLnVua25vd249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxuKTppfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gZ2EoKS5kb21haW4ocikucmFuZ2UodCkudW5rbm93bihpKX0sbn1mdW5jdGlvbiB5YSgpe2Z1bmN0aW9uIHQoKXt2YXIgdD1pKCkubGVuZ3RoLHI9YVsxXTxhWzBdLGg9YVtyLTBdLGQ9YVsxLXJdO249KGQtaCkvTWF0aC5tYXgoMSx0LWYrMipjKSx1JiYobj1NYXRoLmZsb29yKG4pKSxoKz0oZC1oLW4qKHQtZikpKmwsZT1uKigxLWYpLHUmJihoPU1hdGgucm91bmQoaCksZT1NYXRoLnJvdW5kKGUpKTt2YXIgcD1zKHQpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaCtuKnR9KTtyZXR1cm4gbyhyP3AucmV2ZXJzZSgpOnApfXZhciBuLGUscj1nYSgpLnVua25vd24odm9pZCAwKSxpPXIuZG9tYWluLG89ci5yYW5nZSxhPVswLDFdLHU9ITEsZj0wLGM9MCxsPS41O3JldHVybiBkZWxldGUgci51bmtub3duLHIuZG9tYWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpKG4pLHQoKSk6aSgpfSxyLnJhbmdlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVsrblswXSwrblsxXV0sdCgpKTphLnNsaWNlKCl9LHIucmFuZ2VSb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYT1bK25bMF0sK25bMV1dLHU9ITAsdCgpfSxyLmJhbmR3aWR0aD1mdW5jdGlvbigpe3JldHVybiBlfSxyLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sci5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT0hIW4sdCgpKTp1fSxyLnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9Yz1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHQoKSk6Zn0sci5wYWRkaW5nSW5uZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSx0KCkpOmZ9LHIucGFkZGluZ091dGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpjfSxyLmFsaWduPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKSksdCgpKTpsfSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4geWEoKS5kb21haW4oaSgpKS5yYW5nZShhKS5yb3VuZCh1KS5wYWRkaW5nSW5uZXIoZikucGFkZGluZ091dGVyKGMpLmFsaWduKGwpfSx0KCl9ZnVuY3Rpb24gX2EodCl7dmFyIG49dC5jb3B5O3JldHVybiB0LnBhZGRpbmc9dC5wYWRkaW5nT3V0ZXIsZGVsZXRlIHQucGFkZGluZ0lubmVyLGRlbGV0ZSB0LnBhZGRpbmdPdXRlcix0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gX2EobigpKX0sdH1mdW5jdGlvbiBiYSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbWEodCl7cmV0dXJuK3R9ZnVuY3Rpb24geGEodCxuKXtyZXR1cm4obi09dD0rdCk/ZnVuY3Rpb24oZSl7cmV0dXJuKGUtdCkvbn06YmEobil9ZnVuY3Rpb24gd2EodCxuLGUscil7dmFyIGk9dFswXSxvPXRbMV0sYT1uWzBdLHU9blsxXTtyZXR1cm4gbzxpPyhpPWUobyxpKSxhPXIodSxhKSk6KGk9ZShpLG8pLGE9cihhLHUpKSxmdW5jdGlvbih0KXtyZXR1cm4gYShpKHQpKX19ZnVuY3Rpb24gTWEodCxuLGUscil7dmFyIGk9TWF0aC5taW4odC5sZW5ndGgsbi5sZW5ndGgpLTEsbz1uZXcgQXJyYXkoaSksYT1uZXcgQXJyYXkoaSksdT0tMTtmb3IodFtpXTx0WzBdJiYodD10LnNsaWNlKCkucmV2ZXJzZSgpLG49bi5zbGljZSgpLnJldmVyc2UoKSk7Kyt1PGk7KW9bdV09ZSh0W3VdLHRbdSsxXSksYVt1XT1yKG5bdV0sblt1KzFdKTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGU9S2ModCxuLDEsaSktMTtyZXR1cm4gYVtlXShvW2VdKG4pKX19ZnVuY3Rpb24gQWEodCxuKXtyZXR1cm4gbi5kb21haW4odC5kb21haW4oKSkucmFuZ2UodC5yYW5nZSgpKS5pbnRlcnBvbGF0ZSh0LmludGVycG9sYXRlKCkpLmNsYW1wKHQuY2xhbXAoKSl9ZnVuY3Rpb24gVGEodCxuKXtmdW5jdGlvbiBlKCl7cmV0dXJuIGk9TWF0aC5taW4odS5sZW5ndGgsZi5sZW5ndGgpPjI/TWE6d2Esbz1hPW51bGwscn1mdW5jdGlvbiByKG4pe3JldHVybihvfHwobz1pKHUsZixzP2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3ZhciByPXQobj0rbixlPStlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ8PW4/MDp0Pj1lPzE6cih0KX19fSh0KTp0LGMpKSkoK24pfXZhciBpLG8sYSx1PXp2LGY9enYsYz1kbixzPSExO3JldHVybiByLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4oYXx8KGE9aShmLHUseGEscz9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24obixlKXt2YXIgcj10KG49K24sZT0rZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0PD0wP246dD49MT9lOnIodCl9fX0obik6bikpKSgrdCl9LHIuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PWt2LmNhbGwodCxtYSksZSgpKTp1LnNsaWNlKCl9LHIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9Q3YuY2FsbCh0KSxlKCkpOmYuc2xpY2UoKX0sci5yYW5nZVJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBmPUN2LmNhbGwodCksYz1wbixlKCl9LHIuY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ISF0LGUoKSk6c30sci5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LGUoKSk6Y30sZSgpfWZ1bmN0aW9uIE5hKG4pe3ZhciBlPW4uZG9tYWluO3JldHVybiBuLnRpY2tzPWZ1bmN0aW9uKHQpe3ZhciBuPWUoKTtyZXR1cm4gbChuWzBdLG5bbi5sZW5ndGgtMV0sbnVsbD09dD8xMDp0KX0sbi50aWNrRm9ybWF0PWZ1bmN0aW9uKG4scil7cmV0dXJuIGZ1bmN0aW9uKG4sZSxyKXt2YXIgaSxvPW5bMF0sYT1uW24ubGVuZ3RoLTFdLHU9ZChvLGEsbnVsbD09ZT8xMDplKTtzd2l0Y2goKHI9dHIobnVsbD09cj9cIixmXCI6cikpLnR5cGUpe2Nhc2VcInNcIjp2YXIgZj1NYXRoLm1heChNYXRoLmFicyhvKSxNYXRoLmFicyhhKSk7cmV0dXJuIG51bGwhPXIucHJlY2lzaW9ufHxpc05hTihpPXVyKHUsZikpfHwoci5wcmVjaXNpb249aSksdC5mb3JtYXRQcmVmaXgocixmKTtjYXNlXCJcIjpjYXNlXCJlXCI6Y2FzZVwiZ1wiOmNhc2VcInBcIjpjYXNlXCJyXCI6bnVsbCE9ci5wcmVjaXNpb258fGlzTmFOKGk9ZnIodSxNYXRoLm1heChNYXRoLmFicyhvKSxNYXRoLmFicyhhKSkpKXx8KHIucHJlY2lzaW9uPWktKFwiZVwiPT09ci50eXBlKSk7YnJlYWs7Y2FzZVwiZlwiOmNhc2VcIiVcIjpudWxsIT1yLnByZWNpc2lvbnx8aXNOYU4oaT1hcih1KSl8fChyLnByZWNpc2lvbj1pLTIqKFwiJVwiPT09ci50eXBlKSl9cmV0dXJuIHQuZm9ybWF0KHIpfShlKCksbixyKX0sbi5uaWNlPWZ1bmN0aW9uKHQpe251bGw9PXQmJih0PTEwKTt2YXIgcixpPWUoKSxvPTAsYT1pLmxlbmd0aC0xLHU9aVtvXSxmPWlbYV07cmV0dXJuIGY8dSYmKHI9dSx1PWYsZj1yLHI9byxvPWEsYT1yKSwocj1oKHUsZix0KSk+MD9yPWgodT1NYXRoLmZsb29yKHUvcikqcixmPU1hdGguY2VpbChmL3IpKnIsdCk6cjwwJiYocj1oKHU9TWF0aC5jZWlsKHUqcikvcixmPU1hdGguZmxvb3IoZipyKS9yLHQpKSxyPjA/KGlbb109TWF0aC5mbG9vcih1L3IpKnIsaVthXT1NYXRoLmNlaWwoZi9yKSpyLGUoaSkpOnI8MCYmKGlbb109TWF0aC5jZWlsKHUqcikvcixpW2FdPU1hdGguZmxvb3IoZipyKS9yLGUoaSkpLG59LG59ZnVuY3Rpb24gU2EoKXt2YXIgdD1UYSh4YSxzbik7cmV0dXJuIHQuY29weT1mdW5jdGlvbigpe3JldHVybiBBYSh0LFNhKCkpfSxOYSh0KX1mdW5jdGlvbiBFYSgpe2Z1bmN0aW9uIHQodCl7cmV0dXJuK3R9dmFyIG49WzAsMV07cmV0dXJuIHQuaW52ZXJ0PXQsdC5kb21haW49dC5yYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1rdi5jYWxsKGUsbWEpLHQpOm4uc2xpY2UoKX0sdC5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEVhKCkuZG9tYWluKG4pfSxOYSh0KX1mdW5jdGlvbiBrYSh0LG4pe3ZhciBlLHI9MCxpPSh0PXQuc2xpY2UoKSkubGVuZ3RoLTEsbz10W3JdLGE9dFtpXTtyZXR1cm4gYTxvJiYoZT1yLHI9aSxpPWUsZT1vLG89YSxhPWUpLHRbcl09bi5mbG9vcihvKSx0W2ldPW4uY2VpbChhKSx0fWZ1bmN0aW9uIENhKHQsbil7cmV0dXJuKG49TWF0aC5sb2cobi90KSk/ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgubG9nKGUvdCkvbn06YmEobil9ZnVuY3Rpb24gUGEodCxuKXtyZXR1cm4gdDwwP2Z1bmN0aW9uKGUpe3JldHVybi1NYXRoLnBvdygtbixlKSpNYXRoLnBvdygtdCwxLWUpfTpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3cobixlKSpNYXRoLnBvdyh0LDEtZSl9fWZ1bmN0aW9uIHphKHQpe3JldHVybiBpc0Zpbml0ZSh0KT8rKFwiMWVcIit0KTp0PDA/MDp0fWZ1bmN0aW9uIFJhKHQpe3JldHVybiAxMD09PXQ/emE6dD09PU1hdGguRT9NYXRoLmV4cDpmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5wb3codCxuKX19ZnVuY3Rpb24gTGEodCl7cmV0dXJuIHQ9PT1NYXRoLkU/TWF0aC5sb2c6MTA9PT10JiZNYXRoLmxvZzEwfHwyPT09dCYmTWF0aC5sb2cyfHwodD1NYXRoLmxvZyh0KSxmdW5jdGlvbihuKXtyZXR1cm4gTWF0aC5sb2cobikvdH0pfWZ1bmN0aW9uIERhKHQpe3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4tdCgtbil9fWZ1bmN0aW9uIFVhKCl7ZnVuY3Rpb24gbigpe3JldHVybiBvPUxhKGkpLGE9UmEoaSkscigpWzBdPDAmJihvPURhKG8pLGE9RGEoYSkpLGV9dmFyIGU9VGEoQ2EsUGEpLmRvbWFpbihbMSwxMF0pLHI9ZS5kb21haW4saT0xMCxvPUxhKDEwKSxhPVJhKDEwKTtyZXR1cm4gZS5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0LG4oKSk6aX0sZS5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHIodCksbigpKTpyKCl9LGUudGlja3M9ZnVuY3Rpb24odCl7dmFyIG4sZT1yKCksdT1lWzBdLGY9ZVtlLmxlbmd0aC0xXTsobj1mPHUpJiYoZD11LHU9ZixmPWQpO3ZhciBjLHMsaCxkPW8odSkscD1vKGYpLHY9bnVsbD09dD8xMDordCxnPVtdO2lmKCEoaSUxKSYmcC1kPHYpe2lmKGQ9TWF0aC5yb3VuZChkKS0xLHA9TWF0aC5yb3VuZChwKSsxLHU+MCl7Zm9yKDtkPHA7KytkKWZvcihzPTEsYz1hKGQpO3M8aTsrK3MpaWYoISgoaD1jKnMpPHUpKXtpZihoPmYpYnJlYWs7Zy5wdXNoKGgpfX1lbHNlIGZvcig7ZDxwOysrZClmb3Iocz1pLTEsYz1hKGQpO3M+PTE7LS1zKWlmKCEoKGg9YypzKTx1KSl7aWYoaD5mKWJyZWFrO2cucHVzaChoKX19ZWxzZSBnPWwoZCxwLE1hdGgubWluKHAtZCx2KSkubWFwKGEpO3JldHVybiBuP2cucmV2ZXJzZSgpOmd9LGUudGlja0Zvcm1hdD1mdW5jdGlvbihuLHIpe2lmKG51bGw9PXImJihyPTEwPT09aT9cIi4wZVwiOlwiLFwiKSxcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiYocj10LmZvcm1hdChyKSksbj09PTEvMClyZXR1cm4gcjtudWxsPT1uJiYobj0xMCk7dmFyIHU9TWF0aC5tYXgoMSxpKm4vZS50aWNrcygpLmxlbmd0aCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBuPXQvYShNYXRoLnJvdW5kKG8odCkpKTtyZXR1cm4gbippPGktLjUmJihuKj1pKSxuPD11P3IodCk6XCJcIn19LGUubmljZT1mdW5jdGlvbigpe3JldHVybiByKGthKHIoKSx7Zmxvb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGEoTWF0aC5mbG9vcihvKHQpKSl9LGNlaWw6ZnVuY3Rpb24odCl7cmV0dXJuIGEoTWF0aC5jZWlsKG8odCkpKX19KSl9LGUuY29weT1mdW5jdGlvbigpe3JldHVybiBBYShlLFVhKCkuYmFzZShpKSl9LGV9ZnVuY3Rpb24gcWEodCxuKXtyZXR1cm4gdDwwPy1NYXRoLnBvdygtdCxuKTpNYXRoLnBvdyh0LG4pfWZ1bmN0aW9uIE9hKCl7dmFyIHQ9MSxuPVRhKGZ1bmN0aW9uKG4sZSl7cmV0dXJuKGU9cWEoZSx0KS0obj1xYShuLHQpKSk/ZnVuY3Rpb24ocil7cmV0dXJuKHFhKHIsdCktbikvZX06YmEoZSl9LGZ1bmN0aW9uKG4sZSl7cmV0dXJuIGU9cWEoZSx0KS0obj1xYShuLHQpKSxmdW5jdGlvbihyKXtyZXR1cm4gcWEobitlKnIsMS90KX19KSxlPW4uZG9tYWluO3JldHVybiBuLmV4cG9uZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PStuLGUoZSgpKSk6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIEFhKG4sT2EoKS5leHBvbmVudCh0KSl9LE5hKG4pfWZ1bmN0aW9uIFlhKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PTAsbj1NYXRoLm1heCgxLGkubGVuZ3RoKTtmb3Iobz1uZXcgQXJyYXkobi0xKTsrK3Q8bjspb1t0LTFdPXYocix0L24pO3JldHVybiBlfWZ1bmN0aW9uIGUodCl7aWYoIWlzTmFOKHQ9K3QpKXJldHVybiBpW0tjKG8sdCldfXZhciByPVtdLGk9W10sbz1bXTtyZXR1cm4gZS5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIG49aS5pbmRleE9mKHQpO3JldHVybiBuPDA/W05hTixOYU5dOltuPjA/b1tuLTFdOnJbMF0sbjxvLmxlbmd0aD9vW25dOnJbci5sZW5ndGgtMV1dfSxlLmRvbWFpbj1mdW5jdGlvbihlKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gci5zbGljZSgpO3I9W107Zm9yKHZhciBpLG89MCxhPWUubGVuZ3RoO288YTsrK28pbnVsbD09KGk9ZVtvXSl8fGlzTmFOKGk9K2kpfHxyLnB1c2goaSk7cmV0dXJuIHIuc29ydChuKSx0KCl9LGUucmFuZ2U9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Q3YuY2FsbChuKSx0KCkpOmkuc2xpY2UoKX0sZS5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gby5zbGljZSgpfSxlLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gWWEoKS5kb21haW4ocikucmFuZ2UoaSl9LGV9ZnVuY3Rpb24gQmEoKXtmdW5jdGlvbiB0KHQpe2lmKHQ8PXQpcmV0dXJuIGFbS2Mobyx0LDAsaSldfWZ1bmN0aW9uIG4oKXt2YXIgbj0tMTtmb3Iobz1uZXcgQXJyYXkoaSk7KytuPGk7KW9bbl09KChuKzEpKnItKG4taSkqZSkvKGkrMSk7cmV0dXJuIHR9dmFyIGU9MCxyPTEsaT0xLG89Wy41XSxhPVswLDFdO3JldHVybiB0LmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLG4oKSk6W2Uscl19LHQucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9KGE9Q3YuY2FsbCh0KSkubGVuZ3RoLTEsbigpKTphLnNsaWNlKCl9LHQuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciBuPWEuaW5kZXhPZih0KTtyZXR1cm4gbjwwP1tOYU4sTmFOXTpuPDE/W2Usb1swXV06bj49aT9bb1tpLTFdLHJdOltvW24tMV0sb1tuXV19LHQuY29weT1mdW5jdGlvbigpe3JldHVybiBCYSgpLmRvbWFpbihbZSxyXSkucmFuZ2UoYSl9LE5hKHQpfWZ1bmN0aW9uIEZhKCl7ZnVuY3Rpb24gdCh0KXtpZih0PD10KXJldHVybiBlW0tjKG4sdCwwLHIpXX12YXIgbj1bLjVdLGU9WzAsMV0scj0xO3JldHVybiB0LmRvbWFpbj1mdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1Ddi5jYWxsKGkpLHI9TWF0aC5taW4obi5sZW5ndGgsZS5sZW5ndGgtMSksdCk6bi5zbGljZSgpfSx0LnJhbmdlPWZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPUN2LmNhbGwoaSkscj1NYXRoLm1pbihuLmxlbmd0aCxlLmxlbmd0aC0xKSx0KTplLnNsaWNlKCl9LHQuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3ZhciByPWUuaW5kZXhPZih0KTtyZXR1cm5bbltyLTFdLG5bcl1dfSx0LmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gRmEoKS5kb21haW4obikucmFuZ2UoZSl9LHR9ZnVuY3Rpb24gSWEodCxuLGUscil7ZnVuY3Rpb24gaShuKXtyZXR1cm4gdChuPW5ldyBEYXRlKCtuKSksbn1yZXR1cm4gaS5mbG9vcj1pLGkuY2VpbD1mdW5jdGlvbihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKGUtMSkpLG4oZSwxKSx0KGUpLGV9LGkucm91bmQ9ZnVuY3Rpb24odCl7dmFyIG49aSh0KSxlPWkuY2VpbCh0KTtyZXR1cm4gdC1uPGUtdD9uOmV9LGkub2Zmc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odD1uZXcgRGF0ZSgrdCksbnVsbD09ZT8xOk1hdGguZmxvb3IoZSkpLHR9LGkucmFuZ2U9ZnVuY3Rpb24oZSxyLG8pe3ZhciBhLHU9W107aWYoZT1pLmNlaWwoZSksbz1udWxsPT1vPzE6TWF0aC5mbG9vcihvKSwhKGU8ciYmbz4wKSlyZXR1cm4gdTtkb3t1LnB1c2goYT1uZXcgRGF0ZSgrZSkpLG4oZSxvKSx0KGUpfXdoaWxlKGE8ZSYmZTxyKTtyZXR1cm4gdX0saS5maWx0ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe2lmKG4+PW4pZm9yKDt0KG4pLCFlKG4pOyluLnNldFRpbWUobi0xKX0sZnVuY3Rpb24odCxyKXtpZih0Pj10KWlmKHI8MClmb3IoOysrcjw9MDspZm9yKDtuKHQsLTEpLCFlKHQpOyk7ZWxzZSBmb3IoOy0tcj49MDspZm9yKDtuKHQsMSksIWUodCk7KTt9KX0sZSYmKGkuY291bnQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gUnYuc2V0VGltZSgrbiksTHYuc2V0VGltZSgrciksdChSdiksdChMdiksTWF0aC5mbG9vcihlKFJ2LEx2KSl9LGkuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5mbG9vcih0KSxpc0Zpbml0ZSh0KSYmdD4wP3Q+MT9pLmZpbHRlcihyP2Z1bmN0aW9uKG4pe3JldHVybiByKG4pJXQ9PTB9OmZ1bmN0aW9uKG4pe3JldHVybiBpLmNvdW50KDAsbikldD09MH0pOmk6bnVsbH0pLGl9ZnVuY3Rpb24gamEodCl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe24uc2V0RGF0ZShuLmdldERhdGUoKS0obi5nZXREYXkoKSs3LXQpJTcpLG4uc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdC0obi5nZXRUaW1lem9uZU9mZnNldCgpLXQuZ2V0VGltZXpvbmVPZmZzZXQoKSkqcXYpL092fSl9ZnVuY3Rpb24gSGEodCl7cmV0dXJuIElhKGZ1bmN0aW9uKG4pe24uc2V0VVRDRGF0ZShuLmdldFVUQ0RhdGUoKS0obi5nZXRVVENEYXkoKSs3LXQpJTcpLG4uc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvT3Z9KX1mdW5jdGlvbiBYYSh0KXtpZigwPD10LnkmJnQueTwxMDApe3ZhciBuPW5ldyBEYXRlKC0xLHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKTtyZXR1cm4gbi5zZXRGdWxsWWVhcih0LnkpLG59cmV0dXJuIG5ldyBEYXRlKHQueSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCl9ZnVuY3Rpb24gR2EodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgbj1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBuLnNldFVUQ0Z1bGxZZWFyKHQueSksbn1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gVmEodCl7cmV0dXJue3k6dCxtOjAsZDoxLEg6MCxNOjAsUzowLEw6MH19ZnVuY3Rpb24gJGEodCl7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcixpLG8sYT1bXSx1PS0xLGY9MCxjPXQubGVuZ3RoO2ZvcihlIGluc3RhbmNlb2YgRGF0ZXx8KGU9bmV3IERhdGUoK2UpKTsrK3U8YzspMzc9PT10LmNoYXJDb2RlQXQodSkmJihhLnB1c2godC5zbGljZShmLHUpKSxudWxsIT0oaT1VZ1tyPXQuY2hhckF0KCsrdSldKT9yPXQuY2hhckF0KCsrdSk6aT1cImVcIj09PXI/XCIgXCI6XCIwXCIsKG89bltyXSkmJihyPW8oZSxpKSksYS5wdXNoKHIpLGY9dSsxKTtyZXR1cm4gYS5wdXNoKHQuc2xpY2UoZix1KSksYS5qb2luKFwiXCIpfX1mdW5jdGlvbiBlKHQsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpLG8sYT1WYSgxOTAwKTtpZihyKGEsdCxlKz1cIlwiLDApIT1lLmxlbmd0aClyZXR1cm4gbnVsbDtpZihcIlFcImluIGEpcmV0dXJuIG5ldyBEYXRlKGEuUSk7aWYoXCJwXCJpbiBhJiYoYS5IPWEuSCUxMisxMiphLnApLFwiVlwiaW4gYSl7aWYoYS5WPDF8fGEuVj41MylyZXR1cm4gbnVsbDtcIndcImluIGF8fChhLnc9MSksXCJaXCJpbiBhPyhpPShvPShpPUdhKFZhKGEueSkpKS5nZXRVVENEYXkoKSk+NHx8MD09PW8/X2cuY2VpbChpKTpfZyhpKSxpPXZnLm9mZnNldChpLDcqKGEuVi0xKSksYS55PWkuZ2V0VVRDRnVsbFllYXIoKSxhLm09aS5nZXRVVENNb250aCgpLGEuZD1pLmdldFVUQ0RhdGUoKSsoYS53KzYpJTcpOihpPShvPShpPW4oVmEoYS55KSkpLmdldERheSgpKT40fHwwPT09bz8kdi5jZWlsKGkpOiR2KGkpLGk9WHYub2Zmc2V0KGksNyooYS5WLTEpKSxhLnk9aS5nZXRGdWxsWWVhcigpLGEubT1pLmdldE1vbnRoKCksYS5kPWkuZ2V0RGF0ZSgpKyhhLncrNiklNyl9ZWxzZShcIldcImluIGF8fFwiVVwiaW4gYSkmJihcIndcImluIGF8fChhLnc9XCJ1XCJpbiBhP2EudSU3OlwiV1wiaW4gYT8xOjApLG89XCJaXCJpbiBhP0dhKFZhKGEueSkpLmdldFVUQ0RheSgpOm4oVmEoYS55KSkuZ2V0RGF5KCksYS5tPTAsYS5kPVwiV1wiaW4gYT8oYS53KzYpJTcrNyphLlctKG8rNSklNzphLncrNyphLlUtKG8rNiklNyk7cmV0dXJuXCJaXCJpbiBhPyhhLkgrPWEuWi8xMDB8MCxhLk0rPWEuWiUxMDAsR2EoYSkpOm4oYSl9fWZ1bmN0aW9uIHIodCxuLGUscil7Zm9yKHZhciBpLG8sYT0wLHU9bi5sZW5ndGgsZj1lLmxlbmd0aDthPHU7KXtpZihyPj1mKXJldHVybi0xO2lmKDM3PT09KGk9bi5jaGFyQ29kZUF0KGErKykpKXtpZihpPW4uY2hhckF0KGErKyksIShvPUFbaSBpbiBVZz9uLmNoYXJBdChhKyspOmldKXx8KHI9byh0LGUscikpPDApcmV0dXJuLTF9ZWxzZSBpZihpIT1lLmNoYXJDb2RlQXQocisrKSlyZXR1cm4tMX1yZXR1cm4gcn12YXIgaT10LmRhdGVUaW1lLG89dC5kYXRlLGE9dC50aW1lLHU9dC5wZXJpb2RzLGY9dC5kYXlzLGM9dC5zaG9ydERheXMscz10Lm1vbnRocyxsPXQuc2hvcnRNb250aHMsaD1RYSh1KSxkPUphKHUpLHA9UWEoZiksdj1KYShmKSxnPVFhKGMpLHk9SmEoYyksXz1RYShzKSxiPUphKHMpLG09UWEobCkseD1KYShsKSx3PXthOmZ1bmN0aW9uKHQpe3JldHVybiBjW3QuZ2V0RGF5KCldfSxBOmZ1bmN0aW9uKHQpe3JldHVybiBmW3QuZ2V0RGF5KCldfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBsW3QuZ2V0TW9udGgoKV19LEI6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdC5nZXRNb250aCgpXX0sYzpudWxsLGQ6X3UsZTpfdSxmOk11LEg6YnUsSTptdSxqOnh1LEw6d3UsbTpBdSxNOlR1LHA6ZnVuY3Rpb24odCl7cmV0dXJuIHVbKyh0LmdldEhvdXJzKCk+PTEyKV19LFE6S3Usczp0ZixTOk51LHU6U3UsVTpFdSxWOmt1LHc6Q3UsVzpQdSx4Om51bGwsWDpudWxsLHk6enUsWTpSdSxaOkx1LFwiJVwiOkp1fSxNPXthOmZ1bmN0aW9uKHQpe3JldHVybiBjW3QuZ2V0VVRDRGF5KCldfSxBOmZ1bmN0aW9uKHQpe3JldHVybiBmW3QuZ2V0VVRDRGF5KCldfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBsW3QuZ2V0VVRDTW9udGgoKV19LEI6ZnVuY3Rpb24odCl7cmV0dXJuIHNbdC5nZXRVVENNb250aCgpXX0sYzpudWxsLGQ6RHUsZTpEdSxmOkJ1LEg6VXUsSTpxdSxqOk91LEw6WXUsbTpGdSxNOkl1LHA6ZnVuY3Rpb24odCl7cmV0dXJuIHVbKyh0LmdldFVUQ0hvdXJzKCk+PTEyKV19LFE6S3Usczp0ZixTOmp1LHU6SHUsVTpYdSxWOkd1LHc6VnUsVzokdSx4Om51bGwsWDpudWxsLHk6V3UsWTpadSxaOlF1LFwiJVwiOkp1fSxBPXthOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1nLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQudz15W3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LEE6ZnVuY3Rpb24odCxuLGUpe3ZhciByPXAuZXhlYyhuLnNsaWNlKGUpKTtyZXR1cm4gcj8odC53PXZbclswXS50b0xvd2VyQ2FzZSgpXSxlK3JbMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbih0LG4sZSl7dmFyIHI9bS5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0Lm09eFtyWzBdLnRvTG93ZXJDYXNlKCldLGUrclswXS5sZW5ndGgpOi0xfSxCOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1fLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQubT1iW3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LGM6ZnVuY3Rpb24odCxuLGUpe3JldHVybiByKHQsaSxuLGUpfSxkOmZ1LGU6ZnUsZjpwdSxIOnN1LEk6c3UsajpjdSxMOmR1LG06dXUsTTpsdSxwOmZ1bmN0aW9uKHQsbixlKXt2YXIgcj1oLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQucD1kW3JbMF0udG9Mb3dlckNhc2UoKV0sZStyWzBdLmxlbmd0aCk6LTF9LFE6Z3Usczp5dSxTOmh1LHU6dHUsVTpudSxWOmV1LHc6S2EsVzpydSx4OmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gcih0LG8sbixlKX0sWDpmdW5jdGlvbih0LG4sZSl7cmV0dXJuIHIodCxhLG4sZSl9LHk6b3UsWTppdSxaOmF1LFwiJVwiOnZ1fTtyZXR1cm4gdy54PW4obyx3KSx3Llg9bihhLHcpLHcuYz1uKGksdyksTS54PW4obyxNKSxNLlg9bihhLE0pLE0uYz1uKGksTSkse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1uKHQrPVwiXCIsdyk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIG49ZSh0Kz1cIlwiLFhhKTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0fSxufSx1dGNGb3JtYXQ6ZnVuY3Rpb24odCl7dmFyIGU9bih0Kz1cIlwiLE0pO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y1BhcnNlOmZ1bmN0aW9uKHQpe3ZhciBuPWUodCxHYSk7cmV0dXJuIG4udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbn19fWZ1bmN0aW9uIFdhKHQsbixlKXt2YXIgcj10PDA/XCItXCI6XCJcIixpPShyPy10OnQpK1wiXCIsbz1pLmxlbmd0aDtyZXR1cm4gcisobzxlP25ldyBBcnJheShlLW8rMSkuam9pbihuKStpOmkpfWZ1bmN0aW9uIFphKHQpe3JldHVybiB0LnJlcGxhY2UoWWcsXCJcXFxcJCZcIil9ZnVuY3Rpb24gUWEodCl7cmV0dXJuIG5ldyBSZWdFeHAoXCJeKD86XCIrdC5tYXAoWmEpLmpvaW4oXCJ8XCIpK1wiKVwiLFwiaVwiKX1mdW5jdGlvbiBKYSh0KXtmb3IodmFyIG49e30sZT0tMSxyPXQubGVuZ3RoOysrZTxyOyluW3RbZV0udG9Mb3dlckNhc2UoKV09ZTtyZXR1cm4gbn1mdW5jdGlvbiBLYSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsxKSk7cmV0dXJuIHI/KHQudz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB0dSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsxKSk7cmV0dXJuIHI/KHQudT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBudSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBldSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVj0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBydSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQuVz0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBpdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSs0KSk7cmV0dXJuIHI/KHQueT0rclswXSxlK3JbMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBvdSh0LG4sZSl7dmFyIHI9cWcuZXhlYyhuLnNsaWNlKGUsZSsyKSk7cmV0dXJuIHI/KHQueT0rclswXSsoK3JbMF0+Njg/MTkwMDoyZTMpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGF1KHQsbixlKXt2YXIgcj0vXihaKXwoWystXVxcZFxcZCkoPzo6PyhcXGRcXGQpKT8vLmV4ZWMobi5zbGljZShlLGUrNikpO3JldHVybiByPyh0Llo9clsxXT8wOi0oclsyXSsoclszXXx8XCIwMFwiKSksZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlLGUrMikpO3JldHVybiByPyh0Lm09clswXS0xLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGZ1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5kPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGN1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzMpKTtyZXR1cm4gcj8odC5tPTAsdC5kPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHN1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5IPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGx1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5NPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGh1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzIpKTtyZXR1cm4gcj8odC5TPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGR1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzMpKTtyZXR1cm4gcj8odC5MPStyWzBdLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHB1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSxlKzYpKTtyZXR1cm4gcj8odC5MPU1hdGguZmxvb3IoclswXS8xZTMpLGUrclswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHZ1KHQsbixlKXt2YXIgcj1PZy5leGVjKG4uc2xpY2UoZSxlKzEpKTtyZXR1cm4gcj9lK3JbMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIGd1KHQsbixlKXt2YXIgcj1xZy5leGVjKG4uc2xpY2UoZSkpO3JldHVybiByPyh0LlE9K3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geXUodCxuLGUpe3ZhciByPXFnLmV4ZWMobi5zbGljZShlKSk7cmV0dXJuIHI/KHQuUT0xZTMqK3JbMF0sZStyWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gX3UodCxuKXtyZXR1cm4gV2EodC5nZXREYXRlKCksbiwyKX1mdW5jdGlvbiBidSh0LG4pe3JldHVybiBXYSh0LmdldEhvdXJzKCksbiwyKX1mdW5jdGlvbiBtdSh0LG4pe3JldHVybiBXYSh0LmdldEhvdXJzKCklMTJ8fDEyLG4sMil9ZnVuY3Rpb24geHUodCxuKXtyZXR1cm4gV2EoMStYdi5jb3VudChjZyh0KSx0KSxuLDMpfWZ1bmN0aW9uIHd1KHQsbil7cmV0dXJuIFdhKHQuZ2V0TWlsbGlzZWNvbmRzKCksbiwzKX1mdW5jdGlvbiBNdSh0LG4pe3JldHVybiB3dSh0LG4pK1wiMDAwXCJ9ZnVuY3Rpb24gQXUodCxuKXtyZXR1cm4gV2EodC5nZXRNb250aCgpKzEsbiwyKX1mdW5jdGlvbiBUdSh0LG4pe3JldHVybiBXYSh0LmdldE1pbnV0ZXMoKSxuLDIpfWZ1bmN0aW9uIE51KHQsbil7cmV0dXJuIFdhKHQuZ2V0U2Vjb25kcygpLG4sMil9ZnVuY3Rpb24gU3UodCl7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gMD09PW4/NzpufWZ1bmN0aW9uIEV1KHQsbil7cmV0dXJuIFdhKFZ2LmNvdW50KGNnKHQpLHQpLG4sMil9ZnVuY3Rpb24ga3UodCxuKXt2YXIgZT10LmdldERheSgpO3JldHVybiB0PWU+PTR8fDA9PT1lP1F2KHQpOlF2LmNlaWwodCksV2EoUXYuY291bnQoY2codCksdCkrKDQ9PT1jZyh0KS5nZXREYXkoKSksbiwyKX1mdW5jdGlvbiBDdSh0KXtyZXR1cm4gdC5nZXREYXkoKX1mdW5jdGlvbiBQdSh0LG4pe3JldHVybiBXYSgkdi5jb3VudChjZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIHp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0RnVsbFllYXIoKSUxMDAsbiwyKX1mdW5jdGlvbiBSdSh0LG4pe3JldHVybiBXYSh0LmdldEZ1bGxZZWFyKCklMWU0LG4sNCl9ZnVuY3Rpb24gTHUodCl7dmFyIG49dC5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybihuPjA/XCItXCI6KG4qPS0xLFwiK1wiKSkrV2Eobi82MHwwLFwiMFwiLDIpK1dhKG4lNjAsXCIwXCIsMil9ZnVuY3Rpb24gRHUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENEYXRlKCksbiwyKX1mdW5jdGlvbiBVdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0hvdXJzKCksbiwyKX1mdW5jdGlvbiBxdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLG4sMil9ZnVuY3Rpb24gT3UodCxuKXtyZXR1cm4gV2EoMSt2Zy5jb3VudChSZyh0KSx0KSxuLDMpfWZ1bmN0aW9uIFl1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCksbiwzKX1mdW5jdGlvbiBCdSh0LG4pe3JldHVybiBZdSh0LG4pK1wiMDAwXCJ9ZnVuY3Rpb24gRnUodCxuKXtyZXR1cm4gV2EodC5nZXRVVENNb250aCgpKzEsbiwyKX1mdW5jdGlvbiBJdSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ01pbnV0ZXMoKSxuLDIpfWZ1bmN0aW9uIGp1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDU2Vjb25kcygpLG4sMil9ZnVuY3Rpb24gSHUodCl7dmFyIG49dC5nZXRVVENEYXkoKTtyZXR1cm4gMD09PW4/NzpufWZ1bmN0aW9uIFh1KHQsbil7cmV0dXJuIFdhKHlnLmNvdW50KFJnKHQpLHQpLG4sMil9ZnVuY3Rpb24gR3UodCxuKXt2YXIgZT10LmdldFVUQ0RheSgpO3JldHVybiB0PWU+PTR8fDA9PT1lP3hnKHQpOnhnLmNlaWwodCksV2EoeGcuY291bnQoUmcodCksdCkrKDQ9PT1SZyh0KS5nZXRVVENEYXkoKSksbiwyKX1mdW5jdGlvbiBWdSh0KXtyZXR1cm4gdC5nZXRVVENEYXkoKX1mdW5jdGlvbiAkdSh0LG4pe3JldHVybiBXYShfZy5jb3VudChSZyh0KSx0KSxuLDIpfWZ1bmN0aW9uIFd1KHQsbil7cmV0dXJuIFdhKHQuZ2V0VVRDRnVsbFllYXIoKSUxMDAsbiwyKX1mdW5jdGlvbiBadSh0LG4pe3JldHVybiBXYSh0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LG4sNCl9ZnVuY3Rpb24gUXUoKXtyZXR1cm5cIiswMDAwXCJ9ZnVuY3Rpb24gSnUoKXtyZXR1cm5cIiVcIn1mdW5jdGlvbiBLdSh0KXtyZXR1cm4rdH1mdW5jdGlvbiB0Zih0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfWZ1bmN0aW9uIG5mKG4pe3JldHVybiBMZz0kYShuKSx0LnRpbWVGb3JtYXQ9TGcuZm9ybWF0LHQudGltZVBhcnNlPUxnLnBhcnNlLHQudXRjRm9ybWF0PUxnLnV0Y0Zvcm1hdCx0LnV0Y1BhcnNlPUxnLnV0Y1BhcnNlLExnfWZ1bmN0aW9uIGVmKHQpe3JldHVybiBuZXcgRGF0ZSh0KX1mdW5jdGlvbiByZih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIERhdGU/K3Q6K25ldyBEYXRlKCt0KX1mdW5jdGlvbiBvZih0LG4scixpLG8sYSx1LGYsYyl7ZnVuY3Rpb24gcyhlKXtyZXR1cm4odShlKTxlP2c6YShlKTxlP3k6byhlKTxlP186aShlKTxlP2I6bihlKTxlP3IoZSk8ZT9tOng6dChlKTxlP3c6TSkoZSl9ZnVuY3Rpb24gbChuLHIsaSxvKXtpZihudWxsPT1uJiYobj0xMCksXCJudW1iZXJcIj09dHlwZW9mIG4pe3ZhciBhPU1hdGguYWJzKGktcikvbix1PWUoZnVuY3Rpb24odCl7cmV0dXJuIHRbMl19KS5yaWdodChBLGEpO3U9PT1BLmxlbmd0aD8obz1kKHIvV2csaS9XZyxuKSxuPXQpOnU/KG89KHU9QVthL0FbdS0xXVsyXTxBW3VdWzJdL2E/dS0xOnVdKVsxXSxuPXVbMF0pOihvPU1hdGgubWF4KGQocixpLG4pLDEpLG49Zil9cmV0dXJuIG51bGw9PW8/bjpuLmV2ZXJ5KG8pfXZhciBoPVRhKHhhLHNuKSxwPWguaW52ZXJ0LHY9aC5kb21haW4sZz1jKFwiLiVMXCIpLHk9YyhcIjolU1wiKSxfPWMoXCIlSTolTVwiKSxiPWMoXCIlSSAlcFwiKSxtPWMoXCIlYSAlZFwiKSx4PWMoXCIlYiAlZFwiKSx3PWMoXCIlQlwiKSxNPWMoXCIlWVwiKSxBPVtbdSwxLGpnXSxbdSw1LDUqamddLFt1LDE1LDE1KmpnXSxbdSwzMCwzMCpqZ10sW2EsMSxIZ10sW2EsNSw1KkhnXSxbYSwxNSwxNSpIZ10sW2EsMzAsMzAqSGddLFtvLDEsWGddLFtvLDMsMypYZ10sW28sNiw2KlhnXSxbbywxMiwxMipYZ10sW2ksMSxHZ10sW2ksMiwyKkdnXSxbciwxLFZnXSxbbiwxLCRnXSxbbiwzLDMqJGddLFt0LDEsV2ddXTtyZXR1cm4gaC5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBEYXRlKHAodCkpfSxoLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD92KGt2LmNhbGwodCxyZikpOnYoKS5tYXAoZWYpfSxoLnRpY2tzPWZ1bmN0aW9uKHQsbil7dmFyIGUscj12KCksaT1yWzBdLG89cltyLmxlbmd0aC0xXSxhPW88aTtyZXR1cm4gYSYmKGU9aSxpPW8sbz1lKSxlPWwodCxpLG8sbiksZT1lP2UucmFuZ2UoaSxvKzEpOltdLGE/ZS5yZXZlcnNlKCk6ZX0saC50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsbil7cmV0dXJuIG51bGw9PW4/czpjKG4pfSxoLm5pY2U9ZnVuY3Rpb24odCxuKXt2YXIgZT12KCk7cmV0dXJuKHQ9bCh0LGVbMF0sZVtlLmxlbmd0aC0xXSxuKSk/dihrYShlLHQpKTpofSxoLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gQWEoaCxvZih0LG4scixpLG8sYSx1LGYsYykpfSxofWZ1bmN0aW9uIGFmKHQpe2Z1bmN0aW9uIG4obil7dmFyIHI9KG4tZSkqaTtyZXR1cm4gdChvP01hdGgubWF4KDAsTWF0aC5taW4oMSxyKSk6cil9dmFyIGU9MCxyPTEsaT0xLG89ITE7cmV0dXJuIG4uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saT1lPT09cj8wOjEvKHItZSksbik6W2Uscl19LG4uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ISF0LG4pOm99LG4uaW50ZXJwb2xhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUsbik6dH0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGFmKHQpLmRvbWFpbihbZSxyXSkuY2xhbXAobyl9LE5hKG4pfWZ1bmN0aW9uIHVmKHQpe2Z1bmN0aW9uIG4obil7dmFyIGU9LjUrKChuPStuKS1yKSoobjxyP286YSk7cmV0dXJuIHQodT9NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpOmUpfXZhciBlPTAscj0uNSxpPTEsbz0xLGE9MSx1PSExO3JldHVybiBuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdFswXSxyPSt0WzFdLGk9K3RbMl0sbz1lPT09cj8wOi41LyhyLWUpLGE9cj09PWk/MDouNS8oaS1yKSxuKTpbZSxyLGldfSxuLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSEhdCxuKTp1fSxuLmludGVycG9sYXRvcj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1lLG4pOnR9LG4uY29weT1mdW5jdGlvbigpe3JldHVybiB1Zih0KS5kb21haW4oW2UscixpXSkuY2xhbXAodSl9LE5hKG4pfWZ1bmN0aW9uIGZmKHQpe2Zvcih2YXIgbj10Lmxlbmd0aC82fDAsZT1uZXcgQXJyYXkobikscj0wO3I8bjspZVtyXT1cIiNcIit0LnNsaWNlKDYqciw2Kisrcik7cmV0dXJuIGV9ZnVuY3Rpb24gY2YodCl7cmV0dXJuIGlsKHRbdC5sZW5ndGgtMV0pfWZ1bmN0aW9uIHNmKHQpe3ZhciBuPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdFtNYXRoLm1heCgwLE1hdGgubWluKG4tMSxNYXRoLmZsb29yKGUqbikpKV19fWZ1bmN0aW9uIGxmKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBoZih0KXtyZXR1cm4gdD49MT9UXzp0PD0tMT8tVF86TWF0aC5hc2luKHQpfWZ1bmN0aW9uIGRmKHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIHBmKHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIHZmKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gZ2YodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24geWYodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gX2YodCxuLGUscixpLG8sYSl7dmFyIHU9dC1lLGY9bi1yLGM9KGE/bzotbykvd18odSp1K2YqZikscz1jKmYsbD0tYyp1LGg9dCtzLGQ9bitsLHA9ZStzLHY9citsLGc9KGgrcCkvMix5PShkK3YpLzIsXz1wLWgsYj12LWQsbT1fKl8rYipiLHg9aS1vLHc9aCp2LXAqZCxNPShiPDA/LTE6MSkqd18oYl8oMCx4KngqbS13KncpKSxBPSh3KmItXypNKS9tLFQ9KC13Kl8tYipNKS9tLE49KHcqYitfKk0pL20sUz0oLXcqXytiKk0pL20sRT1BLWcsaz1ULXksQz1OLWcsUD1TLXk7cmV0dXJuIEUqRStrKms+QypDK1AqUCYmKEE9TixUPVMpLHtjeDpBLGN5OlQseDAxOi1zLHkwMTotbCx4MTE6QSooaS94LTEpLHkxMTpUKihpL3gtMSl9fWZ1bmN0aW9uIGJmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBtZih0KXtyZXR1cm4gbmV3IGJmKHQpfWZ1bmN0aW9uIHhmKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHdmKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIE1mKCl7ZnVuY3Rpb24gdCh0KXt2YXIgdSxmLGMscz10Lmxlbmd0aCxsPSExO2ZvcihudWxsPT1pJiYoYT1vKGM9b2UoKSkpLHU9MDt1PD1zOysrdSkhKHU8cyYmcihmPXRbdV0sdSx0KSk9PT1sJiYoKGw9IWwpP2EubGluZVN0YXJ0KCk6YS5saW5lRW5kKCkpLGwmJmEucG9pbnQoK24oZix1LHQpLCtlKGYsdSx0KSk7aWYoYylyZXR1cm4gYT1udWxsLGMrXCJcInx8bnVsbH12YXIgbj14ZixlPXdmLHI9bGYoITApLGk9bnVsbCxvPW1mLGE9bnVsbDtyZXR1cm4gdC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC55PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC5kZWZpbmVkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZighIW4pLHQpOnJ9LHQuY3VydmU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bixudWxsIT1pJiYoYT1vKGkpKSx0KTpvfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/aT1hPW51bGw6YT1vKGk9biksdCk6aX0sdH1mdW5jdGlvbiBBZigpe2Z1bmN0aW9uIHQodCl7dmFyIG4scyxsLGgsZCxwPXQubGVuZ3RoLHY9ITEsZz1uZXcgQXJyYXkocCkseT1uZXcgQXJyYXkocCk7Zm9yKG51bGw9PXUmJihjPWYoZD1vZSgpKSksbj0wO248PXA7KytuKXtpZighKG48cCYmYShoPXRbbl0sbix0KSk9PT12KWlmKHY9IXYpcz1uLGMuYXJlYVN0YXJ0KCksYy5saW5lU3RhcnQoKTtlbHNle2ZvcihjLmxpbmVFbmQoKSxjLmxpbmVTdGFydCgpLGw9bi0xO2w+PXM7LS1sKWMucG9pbnQoZ1tsXSx5W2xdKTtjLmxpbmVFbmQoKSxjLmFyZWFFbmQoKX12JiYoZ1tuXT0rZShoLG4sdCkseVtuXT0raShoLG4sdCksYy5wb2ludChyPytyKGgsbix0KTpnW25dLG8/K28oaCxuLHQpOnlbbl0pKX1pZihkKXJldHVybiBjPW51bGwsZCtcIlwifHxudWxsfWZ1bmN0aW9uIG4oKXtyZXR1cm4gTWYoKS5kZWZpbmVkKGEpLmN1cnZlKGYpLmNvbnRleHQodSl9dmFyIGU9eGYscj1udWxsLGk9bGYoMCksbz13ZixhPWxmKCEwKSx1PW51bGwsZj1tZixjPW51bGw7cmV0dXJuIHQueD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHI9bnVsbCx0KTplfSx0LngwPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6ZX0sdC54MT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT1uP251bGw6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTpyfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSxvPW51bGwsdCk6aX0sdC55MD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOml9LHQueTE9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89bnVsbD09bj9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5saW5lWDA9dC5saW5lWTA9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngoZSkueShpKX0sdC5saW5lWTE9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngoZSkueShvKX0sdC5saW5lWDE9ZnVuY3Rpb24oKXtyZXR1cm4gbigpLngocikueShpKX0sdC5kZWZpbmVkPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZighIW4pLHQpOmF9LHQuY3VydmU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bixudWxsIT11JiYoYz1mKHUpKSx0KTpmfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/dT1jPW51bGw6Yz1mKHU9biksdCk6dX0sdH1mdW5jdGlvbiBUZih0LG4pe3JldHVybiBuPHQ/LTE6bj50PzE6bj49dD8wOk5hTn1mdW5jdGlvbiBOZih0KXtyZXR1cm4gdH1mdW5jdGlvbiBTZih0KXt0aGlzLl9jdXJ2ZT10fWZ1bmN0aW9uIEVmKHQpe2Z1bmN0aW9uIG4obil7cmV0dXJuIG5ldyBTZih0KG4pKX1yZXR1cm4gbi5fY3VydmU9dCxufWZ1bmN0aW9uIGtmKHQpe3ZhciBuPXQuY3VydmU7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKEVmKHQpKTpuKCkuX2N1cnZlfSx0fWZ1bmN0aW9uIENmKCl7cmV0dXJuIGtmKE1mKCkuY3VydmUoU18pKX1mdW5jdGlvbiBQZigpe3ZhciB0PUFmKCkuY3VydmUoU18pLG49dC5jdXJ2ZSxlPXQubGluZVgwLHI9dC5saW5lWDEsaT10LmxpbmVZMCxvPXQubGluZVkxO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQuc3RhcnRBbmdsZT10LngwLGRlbGV0ZSB0LngwLHQuZW5kQW5nbGU9dC54MSxkZWxldGUgdC54MSx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmlubmVyUmFkaXVzPXQueTAsZGVsZXRlIHQueTAsdC5vdXRlclJhZGl1cz10LnkxLGRlbGV0ZSB0LnkxLHQubGluZVN0YXJ0QW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4ga2YoZSgpKX0sZGVsZXRlIHQubGluZVgwLHQubGluZUVuZEFuZ2xlPWZ1bmN0aW9uKCl7cmV0dXJuIGtmKHIoKSl9LGRlbGV0ZSB0LmxpbmVYMSx0LmxpbmVJbm5lclJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBrZihpKCkpfSxkZWxldGUgdC5saW5lWTAsdC5saW5lT3V0ZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4ga2YobygpKX0sZGVsZXRlIHQubGluZVkxLHQuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihFZih0KSk6bigpLl9jdXJ2ZX0sdH1mdW5jdGlvbiB6Zih0LG4pe3JldHVyblsobj0rbikqTWF0aC5jb3ModC09TWF0aC5QSS8yKSxuKk1hdGguc2luKHQpXX1mdW5jdGlvbiBSZih0KXtyZXR1cm4gdC5zb3VyY2V9ZnVuY3Rpb24gTGYodCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIERmKHQpe2Z1bmN0aW9uIG4oKXt2YXIgbix1PUVfLmNhbGwoYXJndW1lbnRzKSxmPWUuYXBwbHkodGhpcyx1KSxjPXIuYXBwbHkodGhpcyx1KTtpZihhfHwoYT1uPW9lKCkpLHQoYSwraS5hcHBseSh0aGlzLCh1WzBdPWYsdSkpLCtvLmFwcGx5KHRoaXMsdSksK2kuYXBwbHkodGhpcywodVswXT1jLHUpKSwrby5hcHBseSh0aGlzLHUpKSxuKXJldHVybiBhPW51bGwsbitcIlwifHxudWxsfXZhciBlPVJmLHI9TGYsaT14ZixvPXdmLGE9bnVsbDtyZXR1cm4gbi5zb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnRhcmdldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG4ueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bGYoK3QpLG4pOml9LG4ueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bGYoK3QpLG4pOm99LG4uY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1udWxsPT10P251bGw6dCxuKTphfSxufWZ1bmN0aW9uIFVmKHQsbixlLHIsaSl7dC5tb3ZlVG8obixlKSx0LmJlemllckN1cnZlVG8obj0obityKS8yLGUsbixpLHIsaSl9ZnVuY3Rpb24gcWYodCxuLGUscixpKXt0Lm1vdmVUbyhuLGUpLHQuYmV6aWVyQ3VydmVUbyhuLGU9KGUraSkvMixyLGUscixpKX1mdW5jdGlvbiBPZih0LG4sZSxyLGkpe3ZhciBvPXpmKG4sZSksYT16ZihuLGU9KGUraSkvMiksdT16ZihyLGUpLGY9emYocixpKTt0Lm1vdmVUbyhvWzBdLG9bMV0pLHQuYmV6aWVyQ3VydmVUbyhhWzBdLGFbMV0sdVswXSx1WzFdLGZbMF0sZlsxXSl9ZnVuY3Rpb24gWWYoKXt9ZnVuY3Rpb24gQmYodCxuLGUpe3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbygoMip0Ll94MCt0Ll94MSkvMywoMip0Ll95MCt0Ll95MSkvMywodC5feDArMip0Ll94MSkvMywodC5feTArMip0Ll95MSkvMywodC5feDArNCp0Ll94MStuKS82LCh0Ll95MCs0KnQuX3kxK2UpLzYpfWZ1bmN0aW9uIEZmKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBJZih0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gamYodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEhmKHQsbil7dGhpcy5fYmFzaXM9bmV3IEZmKHQpLHRoaXMuX2JldGE9bn1mdW5jdGlvbiBYZih0LG4sZSl7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtbiksdC5feTIrdC5fayoodC5feTEtZSksdC5feDIsdC5feTIpfWZ1bmN0aW9uIEdmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtbikvNn1mdW5jdGlvbiBWZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9rPSgxLW4pLzZ9ZnVuY3Rpb24gJGYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1uKS82fWZ1bmN0aW9uIFdmKHQsbixlKXt2YXIgcj10Ll94MSxpPXQuX3kxLG89dC5feDIsYT10Ll95MjtpZih0Ll9sMDFfYT5NXyl7dmFyIHU9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsZj0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7cj0ocip1LXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2YsaT0oaSp1LXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2Z9aWYodC5fbDIzX2E+TV8pe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLHM9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO289KG8qYyt0Ll94MSp0Ll9sMjNfMmEtbip0Ll9sMTJfMmEpL3MsYT0oYSpjK3QuX3kxKnQuX2wyM18yYS1lKnQuX2wxMl8yYSkvc310Ll9jb250ZXh0LmJlemllckN1cnZlVG8ocixpLG8sYSx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gWmYodCxuKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9bn1mdW5jdGlvbiBRZih0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1ufWZ1bmN0aW9uIEpmKHQsbil7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPW59ZnVuY3Rpb24gS2YodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHRjKHQpe3JldHVybiB0PDA/LTE6MX1mdW5jdGlvbiBuYyh0LG4sZSl7dmFyIHI9dC5feDEtdC5feDAsaT1uLXQuX3gxLG89KHQuX3kxLXQuX3kwKS8ocnx8aTwwJiYtMCksYT0oZS10Ll95MSkvKGl8fHI8MCYmLTApLHU9KG8qaSthKnIpLyhyK2kpO3JldHVybih0YyhvKSt0YyhhKSkqTWF0aC5taW4oTWF0aC5hYnMobyksTWF0aC5hYnMoYSksLjUqTWF0aC5hYnModSkpfHwwfWZ1bmN0aW9uIGVjKHQsbil7dmFyIGU9dC5feDEtdC5feDA7cmV0dXJuIGU/KDMqKHQuX3kxLXQuX3kwKS9lLW4pLzI6bn1mdW5jdGlvbiByYyh0LG4sZSl7dmFyIHI9dC5feDAsaT10Ll95MCxvPXQuX3gxLGE9dC5feTEsdT0oby1yKS8zO3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhyK3UsaSt1Km4sby11LGEtdSplLG8sYSl9ZnVuY3Rpb24gaWModCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIG9jKHQpe3RoaXMuX2NvbnRleHQ9bmV3IGFjKHQpfWZ1bmN0aW9uIGFjKHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiB1Yyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gZmModCl7dmFyIG4sZSxyPXQubGVuZ3RoLTEsaT1uZXcgQXJyYXkociksbz1uZXcgQXJyYXkociksYT1uZXcgQXJyYXkocik7Zm9yKGlbMF09MCxvWzBdPTIsYVswXT10WzBdKzIqdFsxXSxuPTE7bjxyLTE7KytuKWlbbl09MSxvW25dPTQsYVtuXT00KnRbbl0rMip0W24rMV07Zm9yKGlbci0xXT0yLG9bci0xXT03LGFbci0xXT04KnRbci0xXSt0W3JdLG49MTtuPHI7KytuKWU9aVtuXS9vW24tMV0sb1tuXS09ZSxhW25dLT1lKmFbbi0xXTtmb3IoaVtyLTFdPWFbci0xXS9vW3ItMV0sbj1yLTI7bj49MDstLW4paVtuXT0oYVtuXS1pW24rMV0pL29bbl07Zm9yKG9bci0xXT0odFtyXStpW3ItMV0pLzIsbj0wO248ci0xOysrbilvW25dPTIqdFtuKzFdLWlbbisxXTtyZXR1cm5baSxvXX1mdW5jdGlvbiBjYyh0LG4pe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl90PW59ZnVuY3Rpb24gc2ModCxuKXtpZigoaT10Lmxlbmd0aCk+MSlmb3IodmFyIGUscixpLG89MSxhPXRbblswXV0sdT1hLmxlbmd0aDtvPGk7KytvKWZvcihyPWEsYT10W25bb11dLGU9MDtlPHU7KytlKWFbZV1bMV0rPWFbZV1bMF09aXNOYU4ocltlXVsxXSk/cltlXVswXTpyW2VdWzFdfWZ1bmN0aW9uIGxjKHQpe2Zvcih2YXIgbj10Lmxlbmd0aCxlPW5ldyBBcnJheShuKTstLW4+PTA7KWVbbl09bjtyZXR1cm4gZX1mdW5jdGlvbiBoYyh0LG4pe3JldHVybiB0W25dfWZ1bmN0aW9uIGRjKHQpe3ZhciBuPXQubWFwKHBjKTtyZXR1cm4gbGModCkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBuW3RdLW5bZV19KX1mdW5jdGlvbiBwYyh0KXtmb3IodmFyIG4sZT0wLHI9LTEsaT10Lmxlbmd0aDsrK3I8aTspKG49K3Rbcl1bMV0pJiYoZSs9bik7cmV0dXJuIGV9ZnVuY3Rpb24gdmModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGdjKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIHljKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIF9jKCl7dGhpcy5fPW51bGx9ZnVuY3Rpb24gYmModCl7dC5VPXQuQz10Lkw9dC5SPXQuUD10Lk49bnVsbH1mdW5jdGlvbiBtYyh0LG4pe3ZhciBlPW4scj1uLlIsaT1lLlU7aT9pLkw9PT1lP2kuTD1yOmkuUj1yOnQuXz1yLHIuVT1pLGUuVT1yLGUuUj1yLkwsZS5SJiYoZS5SLlU9ZSksci5MPWV9ZnVuY3Rpb24geGModCxuKXt2YXIgZT1uLHI9bi5MLGk9ZS5VO2k/aS5MPT09ZT9pLkw9cjppLlI9cjp0Ll89cixyLlU9aSxlLlU9cixlLkw9ci5SLGUuTCYmKGUuTC5VPWUpLHIuUj1lfWZ1bmN0aW9uIHdjKHQpe2Zvcig7dC5MOyl0PXQuTDtyZXR1cm4gdH1mdW5jdGlvbiBNYyh0LG4sZSxyKXt2YXIgaT1bbnVsbCxudWxsXSxvPXJiLnB1c2goaSktMTtyZXR1cm4gaS5sZWZ0PXQsaS5yaWdodD1uLGUmJlRjKGksdCxuLGUpLHImJlRjKGksbix0LHIpLG5iW3QuaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLG5iW24uaW5kZXhdLmhhbGZlZGdlcy5wdXNoKG8pLGl9ZnVuY3Rpb24gQWModCxuLGUpe3ZhciByPVtuLGVdO3JldHVybiByLmxlZnQ9dCxyfWZ1bmN0aW9uIFRjKHQsbixlLHIpe3RbMF18fHRbMV0/dC5sZWZ0PT09ZT90WzFdPXI6dFswXT1yOih0WzBdPXIsdC5sZWZ0PW4sdC5yaWdodD1lKX1mdW5jdGlvbiBOYyh0LG4sZSxyLGkpe3ZhciBvLGE9dFswXSx1PXRbMV0sZj1hWzBdLGM9YVsxXSxzPTAsbD0xLGg9dVswXS1mLGQ9dVsxXS1jO2lmKG89bi1mLGh8fCEobz4wKSl7aWYoby89aCxoPDApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1lbHNlIGlmKGg+MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWlmKG89ci1mLGh8fCEobzwwKSl7aWYoby89aCxoPDApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1lbHNlIGlmKGg+MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfWlmKG89ZS1jLGR8fCEobz4wKSl7aWYoby89ZCxkPDApe2lmKG88cylyZXR1cm47bzxsJiYobD1vKX1lbHNlIGlmKGQ+MCl7aWYobz5sKXJldHVybjtvPnMmJihzPW8pfWlmKG89aS1jLGR8fCEobzwwKSl7aWYoby89ZCxkPDApe2lmKG8+bClyZXR1cm47bz5zJiYocz1vKX1lbHNlIGlmKGQ+MCl7aWYobzxzKXJldHVybjtvPGwmJihsPW8pfXJldHVybiEocz4wfHxsPDEpfHwocz4wJiYodFswXT1bZitzKmgsYytzKmRdKSxsPDEmJih0WzFdPVtmK2wqaCxjK2wqZF0pLCEwKX19fX19ZnVuY3Rpb24gU2ModCxuLGUscixpKXt2YXIgbz10WzFdO2lmKG8pcmV0dXJuITA7dmFyIGEsdSxmPXRbMF0sYz10LmxlZnQscz10LnJpZ2h0LGw9Y1swXSxoPWNbMV0sZD1zWzBdLHA9c1sxXSx2PShsK2QpLzIsZz0oaCtwKS8yO2lmKHA9PT1oKXtpZih2PG58fHY+PXIpcmV0dXJuO2lmKGw+ZCl7aWYoZil7aWYoZlsxXT49aSlyZXR1cm59ZWxzZSBmPVt2LGVdO289W3YsaV19ZWxzZXtpZihmKXtpZihmWzFdPGUpcmV0dXJufWVsc2UgZj1bdixpXTtvPVt2LGVdfX1lbHNlIGlmKGE9KGwtZCkvKHAtaCksdT1nLWEqdixhPC0xfHxhPjEpaWYobD5kKXtpZihmKXtpZihmWzFdPj1pKXJldHVybn1lbHNlIGY9WyhlLXUpL2EsZV07bz1bKGktdSkvYSxpXX1lbHNle2lmKGYpe2lmKGZbMV08ZSlyZXR1cm59ZWxzZSBmPVsoaS11KS9hLGldO289WyhlLXUpL2EsZV19ZWxzZSBpZihoPHApe2lmKGYpe2lmKGZbMF0+PXIpcmV0dXJufWVsc2UgZj1bbixhKm4rdV07bz1bcixhKnIrdV19ZWxzZXtpZihmKXtpZihmWzBdPG4pcmV0dXJufWVsc2UgZj1bcixhKnIrdV07bz1bbixhKm4rdV19cmV0dXJuIHRbMF09Zix0WzFdPW8sITB9ZnVuY3Rpb24gRWModCxuKXt2YXIgZT10LnNpdGUscj1uLmxlZnQsaT1uLnJpZ2h0O3JldHVybiBlPT09aSYmKGk9cixyPWUpLGk/TWF0aC5hdGFuMihpWzFdLXJbMV0saVswXS1yWzBdKTooZT09PXI/KHI9blsxXSxpPW5bMF0pOihyPW5bMF0saT1uWzFdKSxNYXRoLmF0YW4yKHJbMF0taVswXSxpWzFdLXJbMV0pKX1mdW5jdGlvbiBrYyh0LG4pe3JldHVybiBuWysobi5sZWZ0IT09dC5zaXRlKV19ZnVuY3Rpb24gQ2ModCxuKXtyZXR1cm4gblsrKG4ubGVmdD09PXQuc2l0ZSldfWZ1bmN0aW9uIFBjKHQpe3ZhciBuPXQuUCxlPXQuTjtpZihuJiZlKXt2YXIgcj1uLnNpdGUsaT10LnNpdGUsbz1lLnNpdGU7aWYociE9PW8pe3ZhciBhPWlbMF0sdT1pWzFdLGY9clswXS1hLGM9clsxXS11LHM9b1swXS1hLGw9b1sxXS11LGg9MiooZipsLWMqcyk7aWYoIShoPj0tdWIpKXt2YXIgZD1mKmYrYypjLHA9cypzK2wqbCx2PShsKmQtYypwKS9oLGc9KGYqcC1zKmQpL2gseT1pYi5wb3AoKXx8bmV3IGZ1bmN0aW9uKCl7YmModGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfTt5LmFyYz10LHkuc2l0ZT1pLHkueD12K2EseS55PSh5LmN5PWcrdSkrTWF0aC5zcXJ0KHYqditnKmcpLHQuY2lyY2xlPXk7Zm9yKHZhciBfPW51bGwsYj1lYi5fO2I7KWlmKHkueTxiLnl8fHkueT09PWIueSYmeS54PD1iLngpe2lmKCFiLkwpe189Yi5QO2JyZWFrfWI9Yi5MfWVsc2V7aWYoIWIuUil7Xz1iO2JyZWFrfWI9Yi5SfWViLmluc2VydChfLHkpLF98fChLXz15KX19fX1mdW5jdGlvbiB6Yyh0KXt2YXIgbj10LmNpcmNsZTtuJiYobi5QfHwoS189bi5OKSxlYi5yZW1vdmUobiksaWIucHVzaChuKSxiYyhuKSx0LmNpcmNsZT1udWxsKX1mdW5jdGlvbiBSYyh0KXt2YXIgbj1vYi5wb3AoKXx8bmV3IGZ1bmN0aW9uKCl7YmModGhpcyksdGhpcy5lZGdlPXRoaXMuc2l0ZT10aGlzLmNpcmNsZT1udWxsfTtyZXR1cm4gbi5zaXRlPXQsbn1mdW5jdGlvbiBMYyh0KXt6Yyh0KSx0Yi5yZW1vdmUodCksb2IucHVzaCh0KSxiYyh0KX1mdW5jdGlvbiBEYyh0KXt2YXIgbj10LmNpcmNsZSxlPW4ueCxyPW4uY3ksaT1bZSxyXSxvPXQuUCxhPXQuTix1PVt0XTtMYyh0KTtmb3IodmFyIGY9bztmLmNpcmNsZSYmTWF0aC5hYnMoZS1mLmNpcmNsZS54KTxhYiYmTWF0aC5hYnMoci1mLmNpcmNsZS5jeSk8YWI7KW89Zi5QLHUudW5zaGlmdChmKSxMYyhmKSxmPW87dS51bnNoaWZ0KGYpLHpjKGYpO2Zvcih2YXIgYz1hO2MuY2lyY2xlJiZNYXRoLmFicyhlLWMuY2lyY2xlLngpPGFiJiZNYXRoLmFicyhyLWMuY2lyY2xlLmN5KTxhYjspYT1jLk4sdS5wdXNoKGMpLExjKGMpLGM9YTt1LnB1c2goYyksemMoYyk7dmFyIHMsbD11Lmxlbmd0aDtmb3Iocz0xO3M8bDsrK3MpYz11W3NdLGY9dVtzLTFdLFRjKGMuZWRnZSxmLnNpdGUsYy5zaXRlLGkpO2Y9dVswXSwoYz11W2wtMV0pLmVkZ2U9TWMoZi5zaXRlLGMuc2l0ZSxudWxsLGkpLFBjKGYpLFBjKGMpfWZ1bmN0aW9uIFVjKHQpe2Zvcih2YXIgbixlLHIsaSxvPXRbMF0sYT10WzFdLHU9dGIuXzt1OylpZigocj1xYyh1LGEpLW8pPmFiKXU9dS5MO2Vsc2V7aWYoISgoaT1vLWZ1bmN0aW9uKHQsbil7dmFyIGU9dC5OO2lmKGUpcmV0dXJuIHFjKGUsbik7dmFyIHI9dC5zaXRlO3JldHVybiByWzFdPT09bj9yWzBdOjEvMH0odSxhKSk+YWIpKXtyPi1hYj8obj11LlAsZT11KTppPi1hYj8obj11LGU9dS5OKTpuPWU9dTticmVha31pZighdS5SKXtuPXU7YnJlYWt9dT11LlJ9KGZ1bmN0aW9uKHQpe25iW3QuaW5kZXhdPXtzaXRlOnQsaGFsZmVkZ2VzOltdfX0pKHQpO3ZhciBmPVJjKHQpO2lmKHRiLmluc2VydChuLGYpLG58fGUpe2lmKG49PT1lKXJldHVybiB6YyhuKSxlPVJjKG4uc2l0ZSksdGIuaW5zZXJ0KGYsZSksZi5lZGdlPWUuZWRnZT1NYyhuLnNpdGUsZi5zaXRlKSxQYyhuKSx2b2lkIFBjKGUpO2lmKGUpe3pjKG4pLHpjKGUpO3ZhciBjPW4uc2l0ZSxzPWNbMF0sbD1jWzFdLGg9dFswXS1zLGQ9dFsxXS1sLHA9ZS5zaXRlLHY9cFswXS1zLGc9cFsxXS1sLHk9MiooaCpnLWQqdiksXz1oKmgrZCpkLGI9dip2K2cqZyxtPVsoZypfLWQqYikveStzLChoKmItdipfKS95K2xdO1RjKGUuZWRnZSxjLHAsbSksZi5lZGdlPU1jKGMsdCxudWxsLG0pLGUuZWRnZT1NYyh0LHAsbnVsbCxtKSxQYyhuKSxQYyhlKX1lbHNlIGYuZWRnZT1NYyhuLnNpdGUsZi5zaXRlKX19ZnVuY3Rpb24gcWModCxuKXt2YXIgZT10LnNpdGUscj1lWzBdLGk9ZVsxXSxvPWktbjtpZighbylyZXR1cm4gcjt2YXIgYT10LlA7aWYoIWEpcmV0dXJuLTEvMDt2YXIgdT0oZT1hLnNpdGUpWzBdLGY9ZVsxXSxjPWYtbjtpZighYylyZXR1cm4gdTt2YXIgcz11LXIsbD0xL28tMS9jLGg9cy9jO3JldHVybiBsPygtaCtNYXRoLnNxcnQoaCpoLTIqbCoocypzLygtMipjKS1mK2MvMitpLW8vMikpKS9sK3I6KHIrdSkvMn1mdW5jdGlvbiBPYyh0LG4sZSl7cmV0dXJuKHRbMF0tZVswXSkqKG5bMV0tdFsxXSktKHRbMF0tblswXSkqKGVbMV0tdFsxXSl9ZnVuY3Rpb24gWWModCxuKXtyZXR1cm4gblsxXS10WzFdfHxuWzBdLXRbMF19ZnVuY3Rpb24gQmModCxuKXt2YXIgZSxyLGksbz10LnNvcnQoWWMpLnBvcCgpO2ZvcihyYj1bXSxuYj1uZXcgQXJyYXkodC5sZW5ndGgpLHRiPW5ldyBfYyxlYj1uZXcgX2M7OylpZihpPUtfLG8mJighaXx8b1sxXTxpLnl8fG9bMV09PT1pLnkmJm9bMF08aS54KSlvWzBdPT09ZSYmb1sxXT09PXJ8fChVYyhvKSxlPW9bMF0scj1vWzFdKSxvPXQucG9wKCk7ZWxzZXtpZighaSlicmVhaztEYyhpLmFyYyl9aWYoZnVuY3Rpb24oKXtmb3IodmFyIHQsbixlLHIsaT0wLG89bmIubGVuZ3RoO2k8bzsrK2kpaWYoKHQ9bmJbaV0pJiYocj0obj10LmhhbGZlZGdlcykubGVuZ3RoKSl7dmFyIGE9bmV3IEFycmF5KHIpLHU9bmV3IEFycmF5KHIpO2ZvcihlPTA7ZTxyOysrZSlhW2VdPWUsdVtlXT1FYyh0LHJiW25bZV1dKTtmb3IoYS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIHVbbl0tdVt0XX0pLGU9MDtlPHI7KytlKXVbZV09blthW2VdXTtmb3IoZT0wO2U8cjsrK2UpbltlXT11W2VdfX0oKSxuKXt2YXIgYT0rblswXVswXSx1PStuWzBdWzFdLGY9K25bMV1bMF0sYz0rblsxXVsxXTsoZnVuY3Rpb24odCxuLGUscil7Zm9yKHZhciBpLG89cmIubGVuZ3RoO28tLTspU2MoaT1yYltvXSx0LG4sZSxyKSYmTmMoaSx0LG4sZSxyKSYmKE1hdGguYWJzKGlbMF1bMF0taVsxXVswXSk+YWJ8fE1hdGguYWJzKGlbMF1bMV0taVsxXVsxXSk+YWIpfHxkZWxldGUgcmJbb119KShhLHUsZixjKSxmdW5jdGlvbih0LG4sZSxyKXt2YXIgaSxvLGEsdSxmLGMscyxsLGgsZCxwLHYsZz1uYi5sZW5ndGgseT0hMDtmb3IoaT0wO2k8ZzsrK2kpaWYobz1uYltpXSl7Zm9yKGE9by5zaXRlLHU9KGY9by5oYWxmZWRnZXMpLmxlbmd0aDt1LS07KXJiW2ZbdV1dfHxmLnNwbGljZSh1LDEpO2Zvcih1PTAsYz1mLmxlbmd0aDt1PGM7KXA9KGQ9Q2MobyxyYltmW3VdXSkpWzBdLHY9ZFsxXSxsPShzPWtjKG8scmJbZlsrK3UlY11dKSlbMF0saD1zWzFdLChNYXRoLmFicyhwLWwpPmFifHxNYXRoLmFicyh2LWgpPmFiKSYmKGYuc3BsaWNlKHUsMCxyYi5wdXNoKEFjKGEsZCxNYXRoLmFicyhwLXQpPGFiJiZyLXY+YWI/W3QsTWF0aC5hYnMobC10KTxhYj9oOnJdOk1hdGguYWJzKHYtcik8YWImJmUtcD5hYj9bTWF0aC5hYnMoaC1yKTxhYj9sOmUscl06TWF0aC5hYnMocC1lKTxhYiYmdi1uPmFiP1tlLE1hdGguYWJzKGwtZSk8YWI/aDpuXTpNYXRoLmFicyh2LW4pPGFiJiZwLXQ+YWI/W01hdGguYWJzKGgtbik8YWI/bDp0LG5dOm51bGwpKS0xKSwrK2MpO2MmJih5PSExKX1pZih5KXt2YXIgXyxiLG0seD0xLzA7Zm9yKGk9MCx5PW51bGw7aTxnOysraSkobz1uYltpXSkmJihtPShfPShhPW8uc2l0ZSlbMF0tdCkqXysoYj1hWzFdLW4pKmIpPHgmJih4PW0seT1vKTtpZih5KXt2YXIgdz1bdCxuXSxNPVt0LHJdLEE9W2Uscl0sVD1bZSxuXTt5LmhhbGZlZGdlcy5wdXNoKHJiLnB1c2goQWMoYT15LnNpdGUsdyxNKSktMSxyYi5wdXNoKEFjKGEsTSxBKSktMSxyYi5wdXNoKEFjKGEsQSxUKSktMSxyYi5wdXNoKEFjKGEsVCx3KSktMSl9fWZvcihpPTA7aTxnOysraSkobz1uYltpXSkmJihvLmhhbGZlZGdlcy5sZW5ndGh8fGRlbGV0ZSBuYltpXSl9KGEsdSxmLGMpfXRoaXMuZWRnZXM9cmIsdGhpcy5jZWxscz1uYix0Yj1lYj1yYj1uYj1udWxsfWZ1bmN0aW9uIEZjKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBJYyh0LG4sZSl7dGhpcy5rPXQsdGhpcy54PW4sdGhpcy55PWV9ZnVuY3Rpb24gamModCl7cmV0dXJuIHQuX196b29tfHxmYn1mdW5jdGlvbiBIYygpe3QuZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gWGMoKXt0LmV2ZW50LnByZXZlbnREZWZhdWx0KCksdC5ldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBHYygpe3JldHVybiF0LmV2ZW50LmJ1dHRvbn1mdW5jdGlvbiBWYygpe3ZhciB0LG4sZT10aGlzO3JldHVybiBlIGluc3RhbmNlb2YgU1ZHRWxlbWVudD8odD0oZT1lLm93bmVyU1ZHRWxlbWVudHx8ZSkud2lkdGguYmFzZVZhbC52YWx1ZSxuPWUuaGVpZ2h0LmJhc2VWYWwudmFsdWUpOih0PWUuY2xpZW50V2lkdGgsbj1lLmNsaWVudEhlaWdodCksW1swLDBdLFt0LG5dXX1mdW5jdGlvbiAkYygpe3JldHVybiB0aGlzLl9fem9vbXx8ZmJ9ZnVuY3Rpb24gV2MoKXtyZXR1cm4tdC5ldmVudC5kZWx0YVkqKHQuZXZlbnQuZGVsdGFNb2RlPzEyMDoxKS81MDB9ZnVuY3Rpb24gWmMoKXtyZXR1cm5cIm9udG91Y2hzdGFydFwiaW4gdGhpc31mdW5jdGlvbiBRYyh0LG4sZSl7dmFyIHI9dC5pbnZlcnRYKG5bMF1bMF0pLWVbMF1bMF0saT10LmludmVydFgoblsxXVswXSktZVsxXVswXSxvPXQuaW52ZXJ0WShuWzBdWzFdKS1lWzBdWzFdLGE9dC5pbnZlcnRZKG5bMV1bMV0pLWVbMV1bMV07cmV0dXJuIHQudHJhbnNsYXRlKGk+cj8ocitpKS8yOk1hdGgubWluKDAscil8fE1hdGgubWF4KDAsaSksYT5vPyhvK2EpLzI6TWF0aC5taW4oMCxvKXx8TWF0aC5tYXgoMCxhKSl9dmFyIEpjPWUobiksS2M9SmMucmlnaHQsdHM9SmMubGVmdCxucz1BcnJheS5wcm90b3R5cGUsZXM9bnMuc2xpY2UscnM9bnMubWFwLGlzPU1hdGguc3FydCg1MCksb3M9TWF0aC5zcXJ0KDEwKSxhcz1NYXRoLnNxcnQoMiksdXM9QXJyYXkucHJvdG90eXBlLnNsaWNlLGZzPTEsY3M9Mixzcz0zLGxzPTQsaHM9MWUtNixkcz17dmFsdWU6ZnVuY3Rpb24oKXt9fTtTLnByb3RvdHlwZT1OLnByb3RvdHlwZT17Y29uc3RydWN0b3I6UyxvbjpmdW5jdGlvbih0LG4pe3ZhciBlLHI9dGhpcy5fLGk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgZT1cIlwiLHI9dC5pbmRleE9mKFwiLlwiKTtpZihyPj0wJiYoZT10LnNsaWNlKHIrMSksdD10LnNsaWNlKDAscikpLHQmJiFuLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7cmV0dXJue3R5cGU6dCxuYW1lOmV9fSl9KHQrXCJcIixyKSxvPS0xLGE9aS5sZW5ndGg7e2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9biYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIGNhbGxiYWNrOiBcIituKTtmb3IoOysrbzxhOylpZihlPSh0PWlbb10pLnR5cGUpcltlXT1FKHJbZV0sdC5uYW1lLG4pO2Vsc2UgaWYobnVsbD09bilmb3IoZSBpbiByKXJbZV09RShyW2VdLHQubmFtZSxudWxsKTtyZXR1cm4gdGhpc31mb3IoOysrbzxhOylpZigoZT0odD1pW29dKS50eXBlKSYmKGU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGUscj0wLGk9dC5sZW5ndGg7cjxpOysrcilpZigoZT10W3JdKS5uYW1lPT09bilyZXR1cm4gZS52YWx1ZX0ocltlXSx0Lm5hbWUpKSlyZXR1cm4gZX19LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxuPXRoaXMuXztmb3IodmFyIGUgaW4gbil0W2VdPW5bZV0uc2xpY2UoKTtyZXR1cm4gbmV3IFModCl9LGNhbGw6ZnVuY3Rpb24odCxuKXtpZigoZT1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciBlLHIsaT1uZXcgQXJyYXkoZSksbz0wO288ZTsrK28paVtvXT1hcmd1bWVudHNbbysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcihcInVua25vd24gdHlwZTogXCIrdCk7Zm9yKG89MCxlPShyPXRoaXMuX1t0XSkubGVuZ3RoO288ZTsrK28pcltvXS52YWx1ZS5hcHBseShuLGkpfSxhcHBseTpmdW5jdGlvbih0LG4sZSl7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoXCJ1bmtub3duIHR5cGU6IFwiK3QpO2Zvcih2YXIgcj10aGlzLl9bdF0saT0wLG89ci5sZW5ndGg7aTxvOysraSlyW2ldLnZhbHVlLmFwcGx5KG4sZSl9fTt2YXIgcHM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIsdnM9e3N2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIseGh0bWw6cHMseGxpbms6XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIseG1sOlwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zL1wifSxncz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVzKHQpfX07aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGRvY3VtZW50KXt2YXIgeXM9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2lmKCF5cy5tYXRjaGVzKXt2YXIgX3M9eXMud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHx5cy5tc01hdGNoZXNTZWxlY3Rvcnx8eXMubW96TWF0Y2hlc1NlbGVjdG9yfHx5cy5vTWF0Y2hlc1NlbGVjdG9yO2dzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBfcy5jYWxsKHRoaXMsdCl9fX19dmFyIGJzPWdzO1UucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpVLGFwcGVuZENoaWxkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsdGhpcy5fbmV4dCl9LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLl9wYXJlbnQuaW5zZXJ0QmVmb3JlKHQsbil9LHF1ZXJ5U2VsZWN0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3BhcmVudC5xdWVyeVNlbGVjdG9yKHQpfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbCh0KX19O3ZhciBtcz1cIiRcIjtILnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKHQpe3RoaXMuX25hbWVzLmluZGV4T2YodCk8MCYmKHRoaXMuX25hbWVzLnB1c2godCksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLHRoaXMuX25hbWVzLmpvaW4oXCIgXCIpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9uYW1lcy5pbmRleE9mKHQpO24+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UobiwxKSx0aGlzLl9ub2RlLnNldEF0dHJpYnV0ZShcImNsYXNzXCIsdGhpcy5fbmFtZXMuam9pbihcIiBcIikpKX0sY29udGFpbnM6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25hbWVzLmluZGV4T2YodCk+PTB9fTt2YXIgeHM9e307aWYodC5ldmVudD1udWxsLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudCl7XCJvbm1vdXNlZW50ZXJcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudHx8KHhzPXttb3VzZWVudGVyOlwibW91c2VvdmVyXCIsbW91c2VsZWF2ZTpcIm1vdXNlb3V0XCJ9KX12YXIgd3M9W251bGxdO3V0LnByb3RvdHlwZT1mdC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnV0LHNlbGVjdDpmdW5jdGlvbih0KXtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD16KHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGEsdT1uW2ldLGY9dS5sZW5ndGgsYz1yW2ldPW5ldyBBcnJheShmKSxzPTA7czxmOysrcykobz11W3NdKSYmKGE9dC5jYWxsKG8sby5fX2RhdGFfXyxzLHUpKSYmKFwiX19kYXRhX19cImluIG8mJihhLl9fZGF0YV9fPW8uX19kYXRhX18pLGNbc109YSk7cmV0dXJuIG5ldyB1dChyLHRoaXMuX3BhcmVudHMpfSxzZWxlY3RBbGw6ZnVuY3Rpb24odCl7XCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9TCh0KSk7Zm9yKHZhciBuPXRoaXMuX2dyb3VwcyxlPW4ubGVuZ3RoLHI9W10saT1bXSxvPTA7bzxlOysrbylmb3IodmFyIGEsdT1uW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpKGE9dVtjXSkmJihyLnB1c2godC5jYWxsKGEsYS5fX2RhdGFfXyxjLHUpKSxpLnB1c2goYSkpO3JldHVybiBuZXcgdXQocixpKX0sZmlsdGVyOmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWJzKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGE9bltpXSx1PWEubGVuZ3RoLGY9cltpXT1bXSxjPTA7Yzx1OysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZmLnB1c2gobyk7cmV0dXJuIG5ldyB1dChyLHRoaXMuX3BhcmVudHMpfSxkYXRhOmZ1bmN0aW9uKHQsbil7aWYoIXQpcmV0dXJuIGQ9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxjPS0xLHRoaXMuZWFjaChmdW5jdGlvbih0KXtkWysrY109dH0pLGQ7dmFyIGU9bj9POnEscj10aGlzLl9wYXJlbnRzLGk9dGhpcy5fZ3JvdXBzO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0odCkpO2Zvcih2YXIgbz1pLmxlbmd0aCxhPW5ldyBBcnJheShvKSx1PW5ldyBBcnJheShvKSxmPW5ldyBBcnJheShvKSxjPTA7YzxvOysrYyl7dmFyIHM9cltjXSxsPWlbY10saD1sLmxlbmd0aCxkPXQuY2FsbChzLHMmJnMuX19kYXRhX18sYyxyKSxwPWQubGVuZ3RoLHY9dVtjXT1uZXcgQXJyYXkocCksZz1hW2NdPW5ldyBBcnJheShwKTtlKHMsbCx2LGcsZltjXT1uZXcgQXJyYXkoaCksZCxuKTtmb3IodmFyIHksXyxiPTAsbT0wO2I8cDsrK2IpaWYoeT12W2JdKXtmb3IoYj49bSYmKG09YisxKTshKF89Z1ttXSkmJisrbTxwOyk7eS5fbmV4dD1ffHxudWxsfX1yZXR1cm4gYT1uZXcgdXQoYSxyKSxhLl9lbnRlcj11LGEuX2V4aXQ9ZixhfSxlbnRlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgdXQodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoRCksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHV0KHRoaXMuX2V4aXR8fHRoaXMuX2dyb3Vwcy5tYXAoRCksdGhpcy5fcGFyZW50cyl9LG1lcmdlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT10Ll9ncm91cHMscj1uLmxlbmd0aCxpPWUubGVuZ3RoLG89TWF0aC5taW4ocixpKSxhPW5ldyBBcnJheShyKSx1PTA7dTxvOysrdSlmb3IodmFyIGYsYz1uW3VdLHM9ZVt1XSxsPWMubGVuZ3RoLGg9YVt1XT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGY9Y1tkXXx8c1tkXSkmJihoW2RdPWYpO2Zvcig7dTxyOysrdSlhW3VdPW5bdV07cmV0dXJuIG5ldyB1dChhLHRoaXMuX3BhcmVudHMpfSxvcmRlcjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsbj0tMSxlPXQubGVuZ3RoOysrbjxlOylmb3IodmFyIHIsaT10W25dLG89aS5sZW5ndGgtMSxhPWlbb107LS1vPj0wOykocj1pW29dKSYmKGEmJmEhPT1yLm5leHRTaWJsaW5nJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHIsYSksYT1yKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbih0KXtmdW5jdGlvbiBuKG4sZSl7cmV0dXJuIG4mJmU/dChuLl9fZGF0YV9fLGUuX19kYXRhX18pOiFuLSFlfXR8fCh0PVkpO2Zvcih2YXIgZT10aGlzLl9ncm91cHMscj1lLmxlbmd0aCxpPW5ldyBBcnJheShyKSxvPTA7bzxyOysrbyl7Zm9yKHZhciBhLHU9ZVtvXSxmPXUubGVuZ3RoLGM9aVtvXT1uZXcgQXJyYXkoZikscz0wO3M8ZjsrK3MpKGE9dVtzXSkmJihjW3NdPWEpO2Muc29ydChuKX1yZXR1cm4gbmV3IHV0KGksdGhpcy5fcGFyZW50cykub3JkZXIoKX0sY2FsbDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50c1swXTtyZXR1cm4gYXJndW1lbnRzWzBdPXRoaXMsdC5hcHBseShudWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgQXJyYXkodGhpcy5zaXplKCkpLG49LTE7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RbKytuXT10aGlzfSksdH0sbm9kZTpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9ncm91cHMsbj0wLGU9dC5sZW5ndGg7bjxlOysrbilmb3IodmFyIHI9dFtuXSxpPTAsbz1yLmxlbmd0aDtpPG87KytpKXt2YXIgYT1yW2ldO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsrK3R9KSx0fSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiF0aGlzLm5vZGUoKX0sZWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9MCxyPW4ubGVuZ3RoO2U8cjsrK2UpZm9yKHZhciBpLG89bltlXSxhPTAsdT1vLmxlbmd0aDthPHU7KythKShpPW9bYV0pJiZ0LmNhbGwoaSxpLl9fZGF0YV9fLGEsbyk7cmV0dXJuIHRoaXN9LGF0dHI6ZnVuY3Rpb24odCxuKXt2YXIgZT1rKHQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIHI9dGhpcy5ub2RlKCk7cmV0dXJuIGUubG9jYWw/ci5nZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOnIuZ2V0QXR0cmlidXRlKGUpfXJldHVybiB0aGlzLmVhY2goKG51bGw9PW4/ZS5sb2NhbD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX19OlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZS5sb2NhbD9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPW4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PWU/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpOnRoaXMuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLGUpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1lP3RoaXMucmVtb3ZlQXR0cmlidXRlKHQpOnRoaXMuc2V0QXR0cmlidXRlKHQsZSl9fTplLmxvY2FsP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwsbil9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlKHQsbil9fSkoZSxuKSl9LHN0eWxlOmZ1bmN0aW9uKHQsbixlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpfX06XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4sZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHI9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09cj90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KHQpOnRoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxyLGUpfX06ZnVuY3Rpb24odCxuLGUpe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxuLGUpfX0pKHQsbixudWxsPT1lP1wiXCI6ZSkpOkYodGhpcy5ub2RlKCksdCl9LHByb3BlcnR5OmZ1bmN0aW9uKHQsbil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goKG51bGw9PW4/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbdF19fTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09ZT9kZWxldGUgdGhpc1t0XTp0aGlzW3RdPWV9fTpmdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXNbdF09bn19KSh0LG4pKTp0aGlzLm5vZGUoKVt0XX0sY2xhc3NlZDpmdW5jdGlvbih0LG4pe3ZhciBlPUkodCtcIlwiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgcj1qKHRoaXMubm9kZSgpKSxpPS0xLG89ZS5sZW5ndGg7KytpPG87KWlmKCFyLmNvbnRhaW5zKGVbaV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXsobi5hcHBseSh0aGlzLGFyZ3VtZW50cyk/WDpHKSh0aGlzLHQpfX06bj9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtYKHRoaXMsdCl9fTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtHKHRoaXMsdCl9fSkoZSxuKSl9LHRleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKG51bGw9PXQ/VjooXCJmdW5jdGlvblwiPT10eXBlb2YgdD9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt0aGlzLnRleHRDb250ZW50PW51bGw9PW4/XCJcIjpufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD10fX0pKHQpKTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0saHRtbDpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09dD8kOihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PW4/XCJcIjpufX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9dH19KSh0KSk6dGhpcy5ub2RlKCkuaW5uZXJIVE1MfSxyYWlzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goVyl9LGxvd2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChaKX0sYXBwZW5kOmZ1bmN0aW9uKHQpe3ZhciBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpDKHQpO3JldHVybiB0aGlzLnNlbGVjdChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfSxpbnNlcnQ6ZnVuY3Rpb24odCxuKXt2YXIgZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6Qyh0KSxyPW51bGw9PW4/UTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246eihuKTtyZXR1cm4gdGhpcy5zZWxlY3QoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnNlcnRCZWZvcmUoZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksci5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goSil9LGNsb25lOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlbGVjdCh0P3R0OkspfSxkYXR1bTpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KFwiX19kYXRhX19cIix0KTp0aGlzLm5vZGUoKS5fX2RhdGFfX30sb246ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbz1mdW5jdGlvbih0KXtyZXR1cm4gdC50cmltKCkuc3BsaXQoL158XFxzKy8pLm1hcChmdW5jdGlvbih0KXt2YXIgbj1cIlwiLGU9dC5pbmRleE9mKFwiLlwiKTtyZXR1cm4gZT49MCYmKG49dC5zbGljZShlKzEpLHQ9dC5zbGljZSgwLGUpKSx7dHlwZTp0LG5hbWU6bn19KX0odCtcIlwiKSxhPW8ubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKHU9bj9pdDpydCxudWxsPT1lJiYoZT0hMSkscj0wO3I8YTsrK3IpdGhpcy5lYWNoKHUob1tyXSxuLGUpKTtyZXR1cm4gdGhpc312YXIgdT10aGlzLm5vZGUoKS5fX29uO2lmKHUpZm9yKHZhciBmLGM9MCxzPXUubGVuZ3RoO2M8czsrK2MpZm9yKHI9MCxmPXVbY107cjxhOysrcilpZigoaT1vW3JdKS50eXBlPT09Zi50eXBlJiZpLm5hbWU9PT1mLm5hbWUpcmV0dXJuIGYudmFsdWV9LGRpc3BhdGNoOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuZWFjaCgoXCJmdW5jdGlvblwiPT10eXBlb2Ygbj9mdW5jdGlvbih0LG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBhdCh0aGlzLHQsbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX06ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYXQodGhpcyx0LG4pfX0pKHQsbikpfX07dmFyIE1zPTA7bHQucHJvdG90eXBlPXN0LnByb3RvdHlwZT17Y29uc3RydWN0b3I6bHQsZ2V0OmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLl87IShuIGluIHQpOylpZighKHQ9dC5wYXJlbnROb2RlKSlyZXR1cm47cmV0dXJuIHRbbl19LHNldDpmdW5jdGlvbih0LG4pe3JldHVybiB0W3RoaXMuX109bn0scmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl8gaW4gdCYmZGVsZXRlIHRbdGhpcy5fXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0seHQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fLm9uLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpO3JldHVybiB0PT09dGhpcy5fP3RoaXM6dH07dmFyIEFzPVwiXFxcXHMqKFsrLV0/XFxcXGQrKVxcXFxzKlwiLFRzPVwiXFxcXHMqKFsrLV0/XFxcXGQqXFxcXC4/XFxcXGQrKD86W2VFXVsrLV0/XFxcXGQrKT8pXFxcXHMqXCIsTnM9XCJcXFxccyooWystXT9cXFxcZCpcXFxcLj9cXFxcZCsoPzpbZUVdWystXT9cXFxcZCspPyklXFxcXHMqXCIsU3M9L14jKFswLTlhLWZdezN9KSQvLEVzPS9eIyhbMC05YS1mXXs2fSkkLyxrcz1uZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIrW0FzLEFzLEFzXStcIlxcXFwpJFwiKSxDcz1uZXcgUmVnRXhwKFwiXnJnYlxcXFwoXCIrW05zLE5zLE5zXStcIlxcXFwpJFwiKSxQcz1uZXcgUmVnRXhwKFwiXnJnYmFcXFxcKFwiK1tBcyxBcyxBcyxUc10rXCJcXFxcKSRcIiksenM9bmV3IFJlZ0V4cChcIl5yZ2JhXFxcXChcIitbTnMsTnMsTnMsVHNdK1wiXFxcXCkkXCIpLFJzPW5ldyBSZWdFeHAoXCJeaHNsXFxcXChcIitbVHMsTnMsTnNdK1wiXFxcXCkkXCIpLExzPW5ldyBSZWdFeHAoXCJeaHNsYVxcXFwoXCIrW1RzLE5zLE5zLFRzXStcIlxcXFwpJFwiKSxEcz17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxhY2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29ybmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRhcmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMzNzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRpdW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVkcmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVlOjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYxLHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlvbGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtOdChFdCxrdCx7ZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5oZXgoKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKStcIlwifX0pLE50KEx0LFJ0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgTHQodGhpcy5yKnQsdGhpcy5nKnQsdGhpcy5iKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IEx0KHRoaXMucip0LHRoaXMuZyp0LHRoaXMuYip0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiAwPD10aGlzLnImJnRoaXMucjw9MjU1JiYwPD10aGlzLmcmJnRoaXMuZzw9MjU1JiYwPD10aGlzLmImJnRoaXMuYjw9MjU1JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OmZ1bmN0aW9uKCl7cmV0dXJuXCIjXCIrRHQodGhpcy5yKStEdCh0aGlzLmcpK0R0KHRoaXMuYil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT9cInJnYihcIjpcInJnYmEoXCIpK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5yKXx8MCkpK1wiLCBcIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKStcIiwgXCIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT10P1wiKVwiOlwiLCBcIit0K1wiKVwiKX19KSksTnQoT3QscXQsU3QoRXQse2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBPdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10Py43Ok1hdGgucG93KC43LHQpLG5ldyBPdCh0aGlzLmgsdGhpcy5zLHRoaXMubCp0LHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuaCUzNjArMzYwKih0aGlzLmg8MCksbj1pc05hTih0KXx8aXNOYU4odGhpcy5zKT8wOnRoaXMucyxlPXRoaXMubCxyPWUrKGU8LjU/ZToxLWUpKm4saT0yKmUtcjtyZXR1cm4gbmV3IEx0KFl0KHQ+PTI0MD90LTI0MDp0KzEyMCxpLHIpLFl0KHQsaSxyKSxZdCh0PDEyMD90KzI0MDp0LTEyMCxpLHIpLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfX0pKTt2YXIgVXM9TWF0aC5QSS8xODAscXM9MTgwL01hdGguUEksT3M9Ljk2NDIyLFlzPTEsQnM9LjgyNTIxLEZzPTQvMjksSXM9Ni8yOSxqcz0zKklzKklzLEhzPUlzKklzKklzO050KEl0LEZ0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IEl0KHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSXQodGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5sKzE2KS8xMTYsbj1pc05hTih0aGlzLmEpP3Q6dCt0aGlzLmEvNTAwLGU9aXNOYU4odGhpcy5iKT90OnQtdGhpcy5iLzIwMDtyZXR1cm4gbj1PcypIdChuKSx0PVlzKkh0KHQpLGU9QnMqSHQoZSksbmV3IEx0KFh0KDMuMTMzODU2MSpuLTEuNjE2ODY2Nyp0LS40OTA2MTQ2KmUpLFh0KC0uOTc4NzY4NCpuKzEuOTE2MTQxNSp0Ky4wMzM0NTQqZSksWHQoLjA3MTk0NTMqbi0uMjI4OTkxNCp0KzEuNDA1MjQyNyplKSx0aGlzLm9wYWNpdHkpfX0pKSxOdChXdCwkdCxTdChFdCx7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBXdCh0aGlzLmgsdGhpcy5jLHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbih0KXtyZXR1cm4gbmV3IFd0KHRoaXMuaCx0aGlzLmMsdGhpcy5sLTE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0scmdiOmZ1bmN0aW9uKCl7cmV0dXJuIEJ0KHRoaXMpLnJnYigpfX0pKTt2YXIgWHM9LS4yOTIyNyxHcz0tLjkwNjQ5LFZzPTEuOTcyOTQsJHM9VnMqR3MsV3M9MS43ODI3NypWcyxacz0xLjc4Mjc3KlhzLSAtLjE0ODYxKkdzO050KFF0LFp0LFN0KEV0LHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgUXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgUXQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKlVzLG49K3RoaXMubCxlPWlzTmFOKHRoaXMucyk/MDp0aGlzLnMqbiooMS1uKSxyPU1hdGguY29zKHQpLGk9TWF0aC5zaW4odCk7cmV0dXJuIG5ldyBMdCgyNTUqKG4rZSooLS4xNDg2MSpyKzEuNzgyNzcqaSkpLDI1NSoobitlKihYcypyK0dzKmkpKSwyNTUqKG4rZSooVnMqcikpLHRoaXMub3BhY2l0eSl9fSkpO3ZhciBRcyxKcyxLcyx0bCxubCxlbCxybD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxuKXt2YXIgZT1yKCh0PVJ0KHQpKS5yLChuPVJ0KG4pKS5yKSxpPXIodC5nLG4uZyksbz1yKHQuYixuLmIpLGE9YW4odC5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0LnI9ZShuKSx0Lmc9aShuKSx0LmI9byhuKSx0Lm9wYWNpdHk9YShuKSx0K1wiXCJ9fXZhciByPW9uKG4pO3JldHVybiBlLmdhbW1hPXQsZX0oMSksaWw9dW4oS3QpLG9sPXVuKHRuKSxhbD0vWy0rXT8oPzpcXGQrXFwuP1xcZCp8XFwuP1xcZCspKD86W2VFXVstK10/XFxkKyk/L2csdWw9bmV3IFJlZ0V4cChhbC5zb3VyY2UsXCJnXCIpLGZsPTE4MC9NYXRoLlBJLGNsPXt0cmFuc2xhdGVYOjAsdHJhbnNsYXRlWTowLHJvdGF0ZTowLHNrZXdYOjAsc2NhbGVYOjEsc2NhbGVZOjF9LHNsPWduKGZ1bmN0aW9uKHQpe3JldHVyblwibm9uZVwiPT09dD9jbDooUXN8fChRcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiRElWXCIpLEpzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxLcz1kb2N1bWVudC5kZWZhdWx0VmlldyksUXMuc3R5bGUudHJhbnNmb3JtPXQsdD1Lcy5nZXRDb21wdXRlZFN0eWxlKEpzLmFwcGVuZENoaWxkKFFzKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKFwidHJhbnNmb3JtXCIpLEpzLnJlbW92ZUNoaWxkKFFzKSx0PXQuc2xpY2UoNywtMSkuc3BsaXQoXCIsXCIpLHZuKCt0WzBdLCt0WzFdLCt0WzJdLCt0WzNdLCt0WzRdLCt0WzVdKSl9LFwicHgsIFwiLFwicHgpXCIsXCJkZWcpXCIpLGxsPWduKGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P2NsOih0bHx8KHRsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJnXCIpKSx0bC5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIix0KSwodD10bC50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT8odD10Lm1hdHJpeCx2bih0LmEsdC5iLHQuYyx0LmQsdC5lLHQuZikpOmNsKX0sXCIsIFwiLFwiKVwiLFwiKVwiKSxobD1NYXRoLlNRUlQyLGRsPTIscGw9NCx2bD0xZS0xMixnbD1ibihybikseWw9Ym4oYW4pLF9sPW1uKHJuKSxibD1tbihhbiksbWw9eG4ocm4pLHhsPXhuKGFuKSx3bD0wLE1sPTAsQWw9MCxUbD0xZTMsTmw9MCxTbD0wLEVsPTAsa2w9XCJvYmplY3RcIj09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxDbD1cIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O0FuLnByb3RvdHlwZT1Ubi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkFuLHJlc3RhcnQ6ZnVuY3Rpb24odCxuLGUpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcImNhbGxiYWNrIGlzIG5vdCBhIGZ1bmN0aW9uXCIpO2U9KG51bGw9PWU/d24oKTorZSkrKG51bGw9PW4/MDorbiksdGhpcy5fbmV4dHx8ZWw9PT10aGlzfHwoZWw/ZWwuX25leHQ9dGhpczpubD10aGlzLGVsPXRoaXMpLHRoaXMuX2NhbGw9dCx0aGlzLl90aW1lPWUsa24oKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAsa24oKSl9fTt2YXIgUGw9TihcInN0YXJ0XCIsXCJlbmRcIixcImludGVycnVwdFwiKSx6bD1bXSxSbD0wLExsPTEsRGw9MixVbD0zLHFsPTQsT2w9NSxZbD02LEJsPWZ0LnByb3RvdHlwZS5jb25zdHJ1Y3RvcixGbD0wLElsPWZ0LnByb3RvdHlwZTtPbi5wcm90b3R5cGU9WW4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpPbixzZWxlY3Q6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5fbmFtZSxlPXRoaXMuX2lkO1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXoodCkpO2Zvcih2YXIgcj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPTA7YTxpOysrYSlmb3IodmFyIHUsZixjPXJbYV0scz1jLmxlbmd0aCxsPW9bYV09bmV3IEFycmF5KHMpLGg9MDtoPHM7KytoKSh1PWNbaF0pJiYoZj10LmNhbGwodSx1Ll9fZGF0YV9fLGgsYykpJiYoXCJfX2RhdGFfX1wiaW4gdSYmKGYuX19kYXRhX189dS5fX2RhdGFfXyksbFtoXT1mLFBuKGxbaF0sbixlLGgsbCxMbih1LGUpKSk7cmV0dXJuIG5ldyBPbihvLHRoaXMuX3BhcmVudHMsbixlKX0sc2VsZWN0QWxsOmZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuX25hbWUsZT10aGlzLl9pZDtcImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1MKHQpKTtmb3IodmFyIHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz1bXSxhPVtdLHU9MDt1PGk7Kyt1KWZvcih2YXIgZixjPXJbdV0scz1jLmxlbmd0aCxsPTA7bDxzOysrbClpZihmPWNbbF0pe2Zvcih2YXIgaCxkPXQuY2FsbChmLGYuX19kYXRhX18sbCxjKSxwPUxuKGYsZSksdj0wLGc9ZC5sZW5ndGg7djxnOysrdikoaD1kW3ZdKSYmUG4oaCxuLGUsdixkLHApO28ucHVzaChkKSxhLnB1c2goZil9cmV0dXJuIG5ldyBPbihvLGEsbixlKX0sZmlsdGVyOmZ1bmN0aW9uKHQpe1wiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PWJzKHQpKTtmb3IodmFyIG49dGhpcy5fZ3JvdXBzLGU9bi5sZW5ndGgscj1uZXcgQXJyYXkoZSksaT0wO2k8ZTsrK2kpZm9yKHZhciBvLGE9bltpXSx1PWEubGVuZ3RoLGY9cltpXT1bXSxjPTA7Yzx1OysrYykobz1hW2NdKSYmdC5jYWxsKG8sby5fX2RhdGFfXyxjLGEpJiZmLnB1c2gobyk7cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LG1lcmdlOmZ1bmN0aW9uKHQpe2lmKHQuX2lkIT09dGhpcy5faWQpdGhyb3cgbmV3IEVycm9yO2Zvcih2YXIgbj10aGlzLl9ncm91cHMsZT10Ll9ncm91cHMscj1uLmxlbmd0aCxpPWUubGVuZ3RoLG89TWF0aC5taW4ocixpKSxhPW5ldyBBcnJheShyKSx1PTA7dTxvOysrdSlmb3IodmFyIGYsYz1uW3VdLHM9ZVt1XSxsPWMubGVuZ3RoLGg9YVt1XT1uZXcgQXJyYXkobCksZD0wO2Q8bDsrK2QpKGY9Y1tkXXx8c1tkXSkmJihoW2RdPWYpO2Zvcig7dTxyOysrdSlhW3VdPW5bdV07cmV0dXJuIG5ldyBPbihhLHRoaXMuX3BhcmVudHMsdGhpcy5fbmFtZSx0aGlzLl9pZCl9LHNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiBuZXcgQmwodGhpcy5fZ3JvdXBzLHRoaXMuX3BhcmVudHMpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX25hbWUsbj10aGlzLl9pZCxlPUJuKCkscj10aGlzLl9ncm91cHMsaT1yLmxlbmd0aCxvPTA7bzxpOysrbylmb3IodmFyIGEsdT1yW29dLGY9dS5sZW5ndGgsYz0wO2M8ZjsrK2MpaWYoYT11W2NdKXt2YXIgcz1MbihhLG4pO1BuKGEsdCxlLGMsdSx7dGltZTpzLnRpbWUrcy5kZWxheStzLmR1cmF0aW9uLGRlbGF5OjAsZHVyYXRpb246cy5kdXJhdGlvbixlYXNlOnMuZWFzZX0pfXJldHVybiBuZXcgT24ocix0aGlzLl9wYXJlbnRzLHQsZSl9LGNhbGw6SWwuY2FsbCxub2RlczpJbC5ub2Rlcyxub2RlOklsLm5vZGUsc2l6ZTpJbC5zaXplLGVtcHR5OklsLmVtcHR5LGVhY2g6SWwuZWFjaCxvbjpmdW5jdGlvbih0LG4pe3ZhciBlPXRoaXMuX2lkO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDI/TG4odGhpcy5ub2RlKCksZSkub24ub24odCk6dGhpcy5lYWNoKGZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG89ZnVuY3Rpb24odCl7cmV0dXJuKHQrXCJcIikudHJpbSgpLnNwbGl0KC9efFxccysvKS5ldmVyeShmdW5jdGlvbih0KXt2YXIgbj10LmluZGV4T2YoXCIuXCIpO3JldHVybiBuPj0wJiYodD10LnNsaWNlKDAsbikpLCF0fHxcInN0YXJ0XCI9PT10fSl9KG4pP3puOlJuO3JldHVybiBmdW5jdGlvbigpe3ZhciBhPW8odGhpcyx0KSx1PWEub247dSE9PXImJihpPShyPXUpLmNvcHkoKSkub24obixlKSxhLm9uPWl9fShlLHQsbikpfSxhdHRyOmZ1bmN0aW9uKHQsbil7dmFyIGU9ayh0KSxyPVwidHJhbnNmb3JtXCI9PT1lP2xsOnFuO3JldHVybiB0aGlzLmF0dHJUd2Vlbih0LFwiZnVuY3Rpb25cIj09dHlwZW9mIG4/KGUubG9jYWw/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGksbztyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYSx1PWUodGhpcyk7aWYobnVsbCE9dSlyZXR1cm4oYT10aGlzLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCkpPT09dT9udWxsOmE9PT1yJiZ1PT09aT9vOm89bihyPWEsaT11KTt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCl9fTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaSxvO3JldHVybiBmdW5jdGlvbigpe3ZhciBhLHU9ZSh0aGlzKTtpZihudWxsIT11KXJldHVybihhPXRoaXMuZ2V0QXR0cmlidXRlKHQpKT09PXU/bnVsbDphPT09ciYmdT09PWk/bzpvPW4ocj1hLGk9dSk7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fSkoZSxyLFVuKHRoaXMsXCJhdHRyLlwiK3QsbikpOm51bGw9PW4/KGUubG9jYWw/ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfX06ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUodCl9fSkoZSk6KGUubG9jYWw/ZnVuY3Rpb24odCxuLGUpe3ZhciByLGk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89dGhpcy5nZXRBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpO3JldHVybiBvPT09ZT9udWxsOm89PT1yP2k6aT1uKHI9byxlKX19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPXRoaXMuZ2V0QXR0cmlidXRlKHQpO3JldHVybiBvPT09ZT9udWxsOm89PT1yP2k6aT1uKHI9byxlKX19KShlLHIsbitcIlwiKSl9LGF0dHJUd2VlbjpmdW5jdGlvbih0LG4pe3ZhciBlPVwiYXR0ci5cIit0O2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oZT10aGlzLnR3ZWVuKGUpKSYmZS5fdmFsdWU7aWYobnVsbD09bilyZXR1cm4gdGhpcy50d2VlbihlLG51bGwpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3ZhciByPWsodCk7cmV0dXJuIHRoaXMudHdlZW4oZSwoci5sb2NhbD9mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzLHI9bi5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe2Uuc2V0QXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsLHIobikpfX1yZXR1cm4gZS5fdmFsdWU9bixlfTpmdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzLHI9bi5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIHImJmZ1bmN0aW9uKG4pe2Uuc2V0QXR0cmlidXRlKHQscihuKSl9fXJldHVybiBlLl92YWx1ZT1uLGV9KShyLG4pKX0sc3R5bGU6ZnVuY3Rpb24odCxuLGUpe3ZhciByPVwidHJhbnNmb3JtXCI9PSh0Kz1cIlwiKT9zbDpxbjtyZXR1cm4gbnVsbD09bj90aGlzLnN0eWxlVHdlZW4odCxmdW5jdGlvbih0LG4pe3ZhciBlLHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1GKHRoaXMsdCksYT0odGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KSxGKHRoaXMsdCkpO3JldHVybiBvPT09YT9udWxsOm89PT1lJiZhPT09cj9pOmk9bihlPW8scj1hKX19KHQscikpLm9uKFwiZW5kLnN0eWxlLlwiK3QsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX19KHQpKTp0aGlzLnN0eWxlVHdlZW4odCxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP2Z1bmN0aW9uKHQsbixlKXt2YXIgcixpLG87cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9Rih0aGlzLHQpLHU9ZSh0aGlzKTtyZXR1cm4gbnVsbD09dSYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCksdT1GKHRoaXMsdCkpLGE9PT11P251bGw6YT09PXImJnU9PT1pP286bz1uKHI9YSxpPXUpfX0odCxyLFVuKHRoaXMsXCJzdHlsZS5cIit0LG4pKTpmdW5jdGlvbih0LG4sZSl7dmFyIHIsaTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbz1GKHRoaXMsdCk7cmV0dXJuIG89PT1lP251bGw6bz09PXI/aTppPW4ocj1vLGUpfX0odCxyLG4rXCJcIiksZSl9LHN0eWxlVHdlZW46ZnVuY3Rpb24odCxuLGUpe3ZhciByPVwic3R5bGUuXCIrKHQrPVwiXCIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4ocj10aGlzLnR3ZWVuKHIpKSYmci5fdmFsdWU7aWYobnVsbD09bilyZXR1cm4gdGhpcy50d2VlbihyLG51bGwpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKHIsZnVuY3Rpb24odCxuLGUpe2Z1bmN0aW9uIHIoKXt2YXIgcj10aGlzLGk9bi5hcHBseShyLGFyZ3VtZW50cyk7cmV0dXJuIGkmJmZ1bmN0aW9uKG4pe3Iuc3R5bGUuc2V0UHJvcGVydHkodCxpKG4pLGUpfX1yZXR1cm4gci5fdmFsdWU9bixyfSh0LG4sbnVsbD09ZT9cIlwiOmUpKX0sdGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50d2VlbihcInRleHRcIixcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXQodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1uP1wiXCI6bn19KFVuKHRoaXMsXCJ0ZXh0XCIsdCkpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19KG51bGw9PXQ/XCJcIjp0K1wiXCIpKX0scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub24oXCJlbmQucmVtb3ZlXCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcy5wYXJlbnROb2RlO2Zvcih2YXIgZSBpbiB0aGlzLl9fdHJhbnNpdGlvbilpZigrZSE9PXQpcmV0dXJuO24mJm4ucmVtb3ZlQ2hpbGQodGhpcyl9fSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbih0LG4pe3ZhciBlPXRoaXMuX2lkO2lmKHQrPVwiXCIsYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IodmFyIHIsaT1Mbih0aGlzLm5vZGUoKSxlKS50d2VlbixvPTAsYT1pLmxlbmd0aDtvPGE7KytvKWlmKChyPWlbb10pLm5hbWU9PT10KXJldHVybiByLnZhbHVlO3JldHVybiBudWxsfXJldHVybiB0aGlzLmVhY2goKG51bGw9PW4/ZnVuY3Rpb24odCxuKXt2YXIgZSxyO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPVJuKHRoaXMsdCksbz1pLnR3ZWVuO2lmKG8hPT1lKWZvcih2YXIgYT0wLHU9KHI9ZT1vKS5sZW5ndGg7YTx1OysrYSlpZihyW2FdLm5hbWU9PT1uKXsocj1yLnNsaWNlKCkpLnNwbGljZShhLDEpO2JyZWFrfWkudHdlZW49cn19OmZ1bmN0aW9uKHQsbixlKXt2YXIgcixpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBvPVJuKHRoaXMsdCksYT1vLnR3ZWVuO2lmKGEhPT1yKXtpPShyPWEpLnNsaWNlKCk7Zm9yKHZhciB1PXtuYW1lOm4sdmFsdWU6ZX0sZj0wLGM9aS5sZW5ndGg7ZjxjOysrZilpZihpW2ZdLm5hbWU9PT1uKXtpW2ZdPXU7YnJlYWt9Zj09PWMmJmkucHVzaCh1KX1vLnR3ZWVuPWl9fSkoZSx0LG4pKX0sZGVsYXk6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKChcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQsbil7cmV0dXJuIGZ1bmN0aW9uKCl7em4odGhpcyx0KS5kZWxheT0rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTpmdW5jdGlvbih0LG4pe3JldHVybiBuPStuLGZ1bmN0aW9uKCl7em4odGhpcyx0KS5kZWxheT1ufX0pKG4sdCkpOkxuKHRoaXMubm9kZSgpLG4pLmRlbGF5fSxkdXJhdGlvbjpmdW5jdGlvbih0KXt2YXIgbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oKXtSbih0aGlzLHQpLmR1cmF0aW9uPStuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19OmZ1bmN0aW9uKHQsbil7cmV0dXJuIG49K24sZnVuY3Rpb24oKXtSbih0aGlzLHQpLmR1cmF0aW9uPW59fSkobix0KSk6TG4odGhpcy5ub2RlKCksbikuZHVyYXRpb259LGVhc2U6ZnVuY3Rpb24odCl7dmFyIG49dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKGZ1bmN0aW9uKHQsbil7aWYoXCJmdW5jdGlvblwiIT10eXBlb2Ygbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7Um4odGhpcyx0KS5lYXNlPW59fShuLHQpKTpMbih0aGlzLm5vZGUoKSxuKS5lYXNlfX07dmFyIGpsPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gTWF0aC5wb3codCxuKX1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksSGw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiAxLU1hdGgucG93KDEtdCxuKX1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksWGw9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybigodCo9Mik8PTE/TWF0aC5wb3codCxuKToyLU1hdGgucG93KDItdCxuKSkvMn1yZXR1cm4gbj0rbixlLmV4cG9uZW50PXQsZX0oMyksR2w9TWF0aC5QSSxWbD1HbC8yLCRsPTQvMTEsV2w9Ni8xMSxabD04LzExLFFsPS43NSxKbD05LzExLEtsPTEwLzExLHRoPS45Mzc1LG5oPTIxLzIyLGVoPTYzLzY0LHJoPTEvJGwvJGwsaWg9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiB0KnQqKChuKzEpKnQtbil9cmV0dXJuIG49K24sZS5vdmVyc2hvb3Q9dCxlfSgxLjcwMTU4KSxvaD1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuLS10KnQqKChuKzEpKnQrbikrMX1yZXR1cm4gbj0rbixlLm92ZXJzaG9vdD10LGV9KDEuNzAxNTgpLGFoPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4oKHQqPTIpPDE/dCp0KigobisxKSp0LW4pOih0LT0yKSp0KigobisxKSp0K24pKzIpLzJ9cmV0dXJuIG49K24sZS5vdmVyc2hvb3Q9dCxlfSgxLjcwMTU4KSx1aD0yKk1hdGguUEksZmg9ZnVuY3Rpb24gdChuLGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIG4qTWF0aC5wb3coMiwxMCotLXQpKk1hdGguc2luKChpLXQpL2UpfXZhciBpPU1hdGguYXNpbigxLyhuPU1hdGgubWF4KDEsbikpKSooZS89dWgpO3JldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihuKXtyZXR1cm4gdChuLGUqdWgpfSxyLnBlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gdChuLGUpfSxyfSgxLC4zKSxjaD1mdW5jdGlvbiB0KG4sZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gMS1uKk1hdGgucG93KDIsLTEwKih0PSt0KSkqTWF0aC5zaW4oKHQraSkvZSl9dmFyIGk9TWF0aC5hc2luKDEvKG49TWF0aC5tYXgoMSxuKSkpKihlLz11aCk7cmV0dXJuIHIuYW1wbGl0dWRlPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4sZSp1aCl9LHIucGVyaW9kPWZ1bmN0aW9uKGUpe3JldHVybiB0KG4sZSl9LHJ9KDEsLjMpLHNoPWZ1bmN0aW9uIHQobixlKXtmdW5jdGlvbiByKHQpe3JldHVybigodD0yKnQtMSk8MD9uKk1hdGgucG93KDIsMTAqdCkqTWF0aC5zaW4oKGktdCkvZSk6Mi1uKk1hdGgucG93KDIsLTEwKnQpKk1hdGguc2luKChpK3QpL2UpKS8yfXZhciBpPU1hdGguYXNpbigxLyhuPU1hdGgubWF4KDEsbikpKSooZS89dWgpO3JldHVybiByLmFtcGxpdHVkZT1mdW5jdGlvbihuKXtyZXR1cm4gdChuLGUqdWgpfSxyLnBlcmlvZD1mdW5jdGlvbihlKXtyZXR1cm4gdChuLGUpfSxyfSgxLC4zKSxsaD17dGltZTpudWxsLGRlbGF5OjAsZHVyYXRpb246MjUwLGVhc2U6SW59O2Z0LnByb3RvdHlwZS5pbnRlcnJ1cHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe0RuKHRoaXMsdCl9KX0sZnQucHJvdG90eXBlLnRyYW5zaXRpb249ZnVuY3Rpb24odCl7dmFyIG4sZTt0IGluc3RhbmNlb2YgT24/KG49dC5faWQsdD10Ll9uYW1lKToobj1CbigpLChlPWxoKS50aW1lPXduKCksdD1udWxsPT10P251bGw6dCtcIlwiKTtmb3IodmFyIHI9dGhpcy5fZ3JvdXBzLGk9ci5sZW5ndGgsbz0wO288aTsrK28pZm9yKHZhciBhLHU9cltvXSxmPXUubGVuZ3RoLGM9MDtjPGY7KytjKShhPXVbY10pJiZQbihhLHQsbixjLHUsZXx8Vm4oYSxuKSk7cmV0dXJuIG5ldyBPbihyLHRoaXMuX3BhcmVudHMsdCxuKX07dmFyIGhoPVtudWxsXSxkaD17bmFtZTpcImRyYWdcIn0scGg9e25hbWU6XCJzcGFjZVwifSx2aD17bmFtZTpcImhhbmRsZVwifSxnaD17bmFtZTpcImNlbnRlclwifSx5aD17bmFtZTpcInhcIixoYW5kbGVzOltcImVcIixcIndcIl0ubWFwKFFuKSxpbnB1dDpmdW5jdGlvbih0LG4pe3JldHVybiB0JiZbW3RbMF0sblswXVsxXV0sW3RbMV0sblsxXVsxXV1dfSxvdXRwdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJlt0WzBdWzBdLHRbMV1bMF1dfX0sX2g9e25hbWU6XCJ5XCIsaGFuZGxlczpbXCJuXCIsXCJzXCJdLm1hcChRbiksaW5wdXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdCYmW1tuWzBdWzBdLHRbMF1dLFtuWzFdWzBdLHRbMV1dXX0sb3V0cHV0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiZbdFswXVsxXSx0WzFdWzFdXX19LGJoPXtuYW1lOlwieHlcIixoYW5kbGVzOltcIm5cIixcImVcIixcInNcIixcIndcIixcIm53XCIsXCJuZVwiLFwic2VcIixcInN3XCJdLm1hcChRbiksaW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9LG91dHB1dDpmdW5jdGlvbih0KXtyZXR1cm4gdH19LG1oPXtvdmVybGF5OlwiY3Jvc3NoYWlyXCIsc2VsZWN0aW9uOlwibW92ZVwiLG46XCJucy1yZXNpemVcIixlOlwiZXctcmVzaXplXCIsczpcIm5zLXJlc2l6ZVwiLHc6XCJldy1yZXNpemVcIixudzpcIm53c2UtcmVzaXplXCIsbmU6XCJuZXN3LXJlc2l6ZVwiLHNlOlwibndzZS1yZXNpemVcIixzdzpcIm5lc3ctcmVzaXplXCJ9LHhoPXtlOlwid1wiLHc6XCJlXCIsbnc6XCJuZVwiLG5lOlwibndcIixzZTpcInN3XCIsc3c6XCJzZVwifSx3aD17bjpcInNcIixzOlwiblwiLG53Olwic3dcIixuZTpcInNlXCIsc2U6XCJuZVwiLHN3OlwibndcIn0sTWg9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOm51bGwsZToxLHM6bnVsbCx3Oi0xLG53Oi0xLG5lOjEsc2U6MSxzdzotMX0sQWg9e292ZXJsYXk6MSxzZWxlY3Rpb246MSxuOi0xLGU6bnVsbCxzOjEsdzpudWxsLG53Oi0xLG5lOi0xLHNlOjEsc3c6MX0sVGg9TWF0aC5jb3MsTmg9TWF0aC5zaW4sU2g9TWF0aC5QSSxFaD1TaC8yLGtoPTIqU2gsQ2g9TWF0aC5tYXgsUGg9QXJyYXkucHJvdG90eXBlLnNsaWNlLHpoPU1hdGguUEksUmg9Mip6aCxMaD1SaC0xZS02O2llLnByb3RvdHlwZT1vZS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmllLG1vdmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuXys9XCJNXCIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KStcIixcIisodGhpcy5feTA9dGhpcy5feTE9K24pfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPVwiWlwiKX0sbGluZVRvOmZ1bmN0aW9uKHQsbil7dGhpcy5fKz1cIkxcIisodGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MT0rbil9LHF1YWRyYXRpY0N1cnZlVG86ZnVuY3Rpb24odCxuLGUscil7dGhpcy5fKz1cIlFcIisgK3QrXCIsXCIrICtuK1wiLFwiKyh0aGlzLl94MT0rZSkrXCIsXCIrKHRoaXMuX3kxPStyKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbih0LG4sZSxyLGksbyl7dGhpcy5fKz1cIkNcIisgK3QrXCIsXCIrICtuK1wiLFwiKyArZStcIixcIisgK3IrXCIsXCIrKHRoaXMuX3gxPStpKStcIixcIisodGhpcy5feTE9K28pfSxhcmNUbzpmdW5jdGlvbih0LG4sZSxyLGkpe3Q9K3Qsbj0rbixlPStlLHI9K3IsaT0raTt2YXIgbz10aGlzLl94MSxhPXRoaXMuX3kxLHU9ZS10LGY9ci1uLGM9by10LHM9YS1uLGw9YypjK3MqcztpZihpPDApdGhyb3cgbmV3IEVycm9yKFwibmVnYXRpdmUgcmFkaXVzOiBcIitpKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz1cIk1cIisodGhpcy5feDE9dCkrXCIsXCIrKHRoaXMuX3kxPW4pO2Vsc2UgaWYobD4xZS02KWlmKE1hdGguYWJzKHMqdS1mKmMpPjFlLTYmJmkpe3ZhciBoPWUtbyxkPXItYSxwPXUqdStmKmYsdj1oKmgrZCpkLGc9TWF0aC5zcXJ0KHApLHk9TWF0aC5zcXJ0KGwpLF89aSpNYXRoLnRhbigoemgtTWF0aC5hY29zKChwK2wtdikvKDIqZyp5KSkpLzIpLGI9Xy95LG09Xy9nO01hdGguYWJzKGItMSk+MWUtNiYmKHRoaXMuXys9XCJMXCIrKHQrYipjKStcIixcIisobitiKnMpKSx0aGlzLl8rPVwiQVwiK2krXCIsXCIraStcIiwwLDAsXCIrICsocypoPmMqZCkrXCIsXCIrKHRoaXMuX3gxPXQrbSp1KStcIixcIisodGhpcy5feTE9bittKmYpfWVsc2UgdGhpcy5fKz1cIkxcIisodGhpcy5feDE9dCkrXCIsXCIrKHRoaXMuX3kxPW4pO2Vsc2U7fSxhcmM6ZnVuY3Rpb24odCxuLGUscixpLG8pe3Q9K3Qsbj0rbjt2YXIgYT0oZT0rZSkqTWF0aC5jb3MociksdT1lKk1hdGguc2luKHIpLGY9dCthLGM9bit1LHM9MV5vLGw9bz9yLWk6aS1yO2lmKGU8MCl0aHJvdyBuZXcgRXJyb3IoXCJuZWdhdGl2ZSByYWRpdXM6IFwiK2UpO251bGw9PT10aGlzLl94MT90aGlzLl8rPVwiTVwiK2YrXCIsXCIrYzooTWF0aC5hYnModGhpcy5feDEtZik+MWUtNnx8TWF0aC5hYnModGhpcy5feTEtYyk+MWUtNikmJih0aGlzLl8rPVwiTFwiK2YrXCIsXCIrYyksZSYmKGw8MCYmKGw9bCVSaCtSaCksbD5MaD90aGlzLl8rPVwiQVwiK2UrXCIsXCIrZStcIiwwLDEsXCIrcytcIixcIisodC1hKStcIixcIisobi11KStcIkFcIitlK1wiLFwiK2UrXCIsMCwxLFwiK3MrXCIsXCIrKHRoaXMuX3gxPWYpK1wiLFwiKyh0aGlzLl95MT1jKTpsPjFlLTYmJih0aGlzLl8rPVwiQVwiK2UrXCIsXCIrZStcIiwwLFwiKyArKGw+PXpoKStcIixcIitzK1wiLFwiKyh0aGlzLl94MT10K2UqTWF0aC5jb3MoaSkpK1wiLFwiKyh0aGlzLl95MT1uK2UqTWF0aC5zaW4oaSkpKSl9LHJlY3Q6ZnVuY3Rpb24odCxuLGUscil7dGhpcy5fKz1cIk1cIisodGhpcy5feDA9dGhpcy5feDE9K3QpK1wiLFwiKyh0aGlzLl95MD10aGlzLl95MT0rbikrXCJoXCIrICtlK1widlwiKyArcitcImhcIistZStcIlpcIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX07bGUucHJvdG90eXBlPWhlLnByb3RvdHlwZT17Y29uc3RydWN0b3I6bGUsaGFzOmZ1bmN0aW9uKHQpe3JldHVyblwiJFwiK3QgaW4gdGhpc30sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW1wiJFwiK3RdfSxzZXQ6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdGhpc1tcIiRcIit0XT1uLHRoaXN9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgbj1cIiRcIit0O3JldHVybiBuIGluIHRoaXMmJmRlbGV0ZSB0aGlzW25dfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKVwiJFwiPT09dFswXSYmZGVsZXRlIHRoaXNbdF19LGtleXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaChuLnNsaWNlKDEpKTtyZXR1cm4gdH0sdmFsdWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0LnB1c2godGhpc1tuXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJnQucHVzaCh7a2V5Om4uc2xpY2UoMSksdmFsdWU6dGhpc1tuXX0pO3JldHVybiB0fSxzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9MDtmb3IodmFyIG4gaW4gdGhpcylcIiRcIj09PW5bMF0mJisrdDtyZXR1cm4gdH0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcylpZihcIiRcIj09PXRbMF0pcmV0dXJuITE7cmV0dXJuITB9LGVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBuIGluIHRoaXMpXCIkXCI9PT1uWzBdJiZ0KHRoaXNbbl0sbi5zbGljZSgxKSx0aGlzKX19O3ZhciBEaD1oZS5wcm90b3R5cGU7eWUucHJvdG90eXBlPV9lLnByb3RvdHlwZT17Y29uc3RydWN0b3I6eWUsaGFzOkRoLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQrPVwiXCIsdGhpc1tcIiRcIit0XT10LHRoaXN9LHJlbW92ZTpEaC5yZW1vdmUsY2xlYXI6RGguY2xlYXIsdmFsdWVzOkRoLmtleXMsc2l6ZTpEaC5zaXplLGVtcHR5OkRoLmVtcHR5LGVhY2g6RGguZWFjaH07dmFyIFVoPUFycmF5LnByb3RvdHlwZS5zbGljZSxxaD1bW10sW1tbMSwxLjVdLFsuNSwxXV1dLFtbWzEuNSwxXSxbMSwxLjVdXV0sW1tbMS41LDFdLFsuNSwxXV1dLFtbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLDEuNV0sWy41LDFdXSxbWzEsLjVdLFsxLjUsMV1dXSxbW1sxLC41XSxbMSwxLjVdXV0sW1tbMSwuNV0sWy41LDFdXV0sW1tbLjUsMV0sWzEsLjVdXV0sW1tbMSwxLjVdLFsxLC41XV1dLFtbWy41LDFdLFsxLC41XV0sW1sxLjUsMV0sWzEsMS41XV1dLFtbWzEuNSwxXSxbMSwuNV1dXSxbW1suNSwxXSxbMS41LDFdXV0sW1tbMSwxLjVdLFsxLjUsMV1dXSxbW1suNSwxXSxbMSwxLjVdXV0sW11dLE9oPXt9LFloPXt9LEJoPTM0LEZoPTEwLEloPTEzLGpoPWtlKFwiLFwiKSxIaD1qaC5wYXJzZSxYaD1qaC5wYXJzZVJvd3MsR2g9amguZm9ybWF0LFZoPWpoLmZvcm1hdFJvd3MsJGg9a2UoXCJcXHRcIiksV2g9JGgucGFyc2UsWmg9JGgucGFyc2VSb3dzLFFoPSRoLmZvcm1hdCxKaD0kaC5mb3JtYXRSb3dzLEtoPUxlKEhoKSx0ZD1MZShXaCksbmQ9VWUoXCJhcHBsaWNhdGlvbi94bWxcIiksZWQ9VWUoXCJ0ZXh0L2h0bWxcIikscmQ9VWUoXCJpbWFnZS9zdmcreG1sXCIpLGlkPWplLnByb3RvdHlwZT1IZS5wcm90b3R5cGU7aWQuY29weT1mdW5jdGlvbigpe3ZhciB0LG4sZT1uZXcgSGUodGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxyPXRoaXMuX3Jvb3Q7aWYoIXIpcmV0dXJuIGU7aWYoIXIubGVuZ3RoKXJldHVybiBlLl9yb290PVhlKHIpLGU7Zm9yKHQ9W3tzb3VyY2U6cix0YXJnZXQ6ZS5fcm9vdD1uZXcgQXJyYXkoNCl9XTtyPXQucG9wKCk7KWZvcih2YXIgaT0wO2k8NDsrK2kpKG49ci5zb3VyY2VbaV0pJiYobi5sZW5ndGg/dC5wdXNoKHtzb3VyY2U6bix0YXJnZXQ6ci50YXJnZXRbaV09bmV3IEFycmF5KDQpfSk6ci50YXJnZXRbaV09WGUobikpO3JldHVybiBlfSxpZC5hZGQ9ZnVuY3Rpb24odCl7dmFyIG49K3RoaXMuX3guY2FsbChudWxsLHQpLGU9K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBZZSh0aGlzLmNvdmVyKG4sZSksbixlLHQpfSxpZC5hZGRBbGw9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbz10Lmxlbmd0aCxhPW5ldyBBcnJheShvKSx1PW5ldyBBcnJheShvKSxmPTEvMCxjPTEvMCxzPS0xLzAsbD0tMS8wO2ZvcihlPTA7ZTxvOysrZSlpc05hTihyPSt0aGlzLl94LmNhbGwobnVsbCxuPXRbZV0pKXx8aXNOYU4oaT0rdGhpcy5feS5jYWxsKG51bGwsbikpfHwoYVtlXT1yLHVbZV09aSxyPGYmJihmPXIpLHI+cyYmKHM9ciksaTxjJiYoYz1pKSxpPmwmJihsPWkpKTtmb3IoczxmJiYoZj10aGlzLl94MCxzPXRoaXMuX3gxKSxsPGMmJihjPXRoaXMuX3kwLGw9dGhpcy5feTEpLHRoaXMuY292ZXIoZixjKS5jb3ZlcihzLGwpLGU9MDtlPG87KytlKVllKHRoaXMsYVtlXSx1W2VdLHRbZV0pO3JldHVybiB0aGlzfSxpZC5jb3Zlcj1mdW5jdGlvbih0LG4pe2lmKGlzTmFOKHQ9K3QpfHxpc05hTihuPStuKSlyZXR1cm4gdGhpczt2YXIgZT10aGlzLl94MCxyPXRoaXMuX3kwLGk9dGhpcy5feDEsbz10aGlzLl95MTtpZihpc05hTihlKSlpPShlPU1hdGguZmxvb3IodCkpKzEsbz0ocj1NYXRoLmZsb29yKG4pKSsxO2Vsc2V7aWYoIShlPnR8fHQ+aXx8cj5ufHxuPm8pKXJldHVybiB0aGlzO3ZhciBhLHUsZj1pLWUsYz10aGlzLl9yb290O3N3aXRjaCh1PShuPChyK28pLzIpPDwxfHQ8KGUraSkvMil7Y2FzZSAwOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixpPWUrZixvPXIrZix0Pml8fG4+byk7YnJlYWs7Y2FzZSAxOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixlPWktZixvPXIrZixlPnR8fG4+byk7YnJlYWs7Y2FzZSAyOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixpPWUrZixyPW8tZix0Pml8fHI+bik7YnJlYWs7Y2FzZSAzOmRve2E9bmV3IEFycmF5KDQpLGFbdV09YyxjPWF9d2hpbGUoZio9MixlPWktZixyPW8tZixlPnR8fHI+bil9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1lLHRoaXMuX3kwPXIsdGhpcy5feDE9aSx0aGlzLl95MT1vLHRoaXN9LGlkLmRhdGE9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy52aXNpdChmdW5jdGlvbihuKXtpZighbi5sZW5ndGgpZG97dC5wdXNoKG4uZGF0YSl9d2hpbGUobj1uLm5leHQpfSksdH0saWQuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuY292ZXIoK3RbMF1bMF0sK3RbMF1bMV0pLmNvdmVyKCt0WzFdWzBdLCt0WzFdWzFdKTppc05hTih0aGlzLl94MCk/dm9pZCAwOltbdGhpcy5feDAsdGhpcy5feTBdLFt0aGlzLl94MSx0aGlzLl95MV1dfSxpZC5maW5kPWZ1bmN0aW9uKHQsbixlKXt2YXIgcixpLG8sYSx1LGYsYyxzPXRoaXMuX3gwLGw9dGhpcy5feTAsaD10aGlzLl94MSxkPXRoaXMuX3kxLHA9W10sdj10aGlzLl9yb290O2Zvcih2JiZwLnB1c2gobmV3IEJlKHYscyxsLGgsZCkpLG51bGw9PWU/ZT0xLzA6KHM9dC1lLGw9bi1lLGg9dCtlLGQ9bitlLGUqPWUpO2Y9cC5wb3AoKTspaWYoISghKHY9Zi5ub2RlKXx8KGk9Zi54MCk+aHx8KG89Zi55MCk+ZHx8KGE9Zi54MSk8c3x8KHU9Zi55MSk8bCkpaWYodi5sZW5ndGgpe3ZhciBnPShpK2EpLzIseT0obyt1KS8yO3AucHVzaChuZXcgQmUodlszXSxnLHksYSx1KSxuZXcgQmUodlsyXSxpLHksZyx1KSxuZXcgQmUodlsxXSxnLG8sYSx5KSxuZXcgQmUodlswXSxpLG8sZyx5KSksKGM9KG4+PXkpPDwxfHQ+PWcpJiYoZj1wW3AubGVuZ3RoLTFdLHBbcC5sZW5ndGgtMV09cFtwLmxlbmd0aC0xLWNdLHBbcC5sZW5ndGgtMS1jXT1mKX1lbHNle3ZhciBfPXQtK3RoaXMuX3guY2FsbChudWxsLHYuZGF0YSksYj1uLSt0aGlzLl95LmNhbGwobnVsbCx2LmRhdGEpLG09XypfK2IqYjtpZihtPGUpe3ZhciB4PU1hdGguc3FydChlPW0pO3M9dC14LGw9bi14LGg9dCt4LGQ9bit4LHI9di5kYXRhfX1yZXR1cm4gcn0saWQucmVtb3ZlPWZ1bmN0aW9uKHQpe2lmKGlzTmFOKG89K3RoaXMuX3guY2FsbChudWxsLHQpKXx8aXNOYU4oYT0rdGhpcy5feS5jYWxsKG51bGwsdCkpKXJldHVybiB0aGlzO3ZhciBuLGUscixpLG8sYSx1LGYsYyxzLGwsaCxkPXRoaXMuX3Jvb3QscD10aGlzLl94MCx2PXRoaXMuX3kwLGc9dGhpcy5feDEseT10aGlzLl95MTtpZighZClyZXR1cm4gdGhpcztpZihkLmxlbmd0aClmb3IoOzspe2lmKChjPW8+PSh1PShwK2cpLzIpKT9wPXU6Zz11LChzPWE+PShmPSh2K3kpLzIpKT92PWY6eT1mLG49ZCwhKGQ9ZFtsPXM8PDF8Y10pKXJldHVybiB0aGlzO2lmKCFkLmxlbmd0aClicmVhazsobltsKzEmM118fG5bbCsyJjNdfHxuW2wrMyYzXSkmJihlPW4saD1sKX1mb3IoO2QuZGF0YSE9PXQ7KWlmKHI9ZCwhKGQ9ZC5uZXh0KSlyZXR1cm4gdGhpcztyZXR1cm4oaT1kLm5leHQpJiZkZWxldGUgZC5uZXh0LHI/KGk/ci5uZXh0PWk6ZGVsZXRlIHIubmV4dCx0aGlzKTpuPyhpP25bbF09aTpkZWxldGUgbltsXSwoZD1uWzBdfHxuWzFdfHxuWzJdfHxuWzNdKSYmZD09PShuWzNdfHxuWzJdfHxuWzFdfHxuWzBdKSYmIWQubGVuZ3RoJiYoZT9lW2hdPWQ6dGhpcy5fcm9vdD1kKSx0aGlzKToodGhpcy5fcm9vdD1pLHRoaXMpfSxpZC5yZW1vdmVBbGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBuPTAsZT10Lmxlbmd0aDtuPGU7KytuKXRoaXMucmVtb3ZlKHRbbl0pO3JldHVybiB0aGlzfSxpZC5yb290PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3R9LGlkLnNpemU9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLnZpc2l0KGZ1bmN0aW9uKG4pe2lmKCFuLmxlbmd0aClkb3srK3R9d2hpbGUobj1uLm5leHQpfSksdH0saWQudmlzaXQ9ZnVuY3Rpb24odCl7dmFyIG4sZSxyLGksbyxhLHU9W10sZj10aGlzLl9yb290O2ZvcihmJiZ1LnB1c2gobmV3IEJlKGYsdGhpcy5feDAsdGhpcy5feTAsdGhpcy5feDEsdGhpcy5feTEpKTtuPXUucG9wKCk7KWlmKCF0KGY9bi5ub2RlLHI9bi54MCxpPW4ueTAsbz1uLngxLGE9bi55MSkmJmYubGVuZ3RoKXt2YXIgYz0ocitvKS8yLHM9KGkrYSkvMjsoZT1mWzNdKSYmdS5wdXNoKG5ldyBCZShlLGMscyxvLGEpKSwoZT1mWzJdKSYmdS5wdXNoKG5ldyBCZShlLHIscyxjLGEpKSwoZT1mWzFdKSYmdS5wdXNoKG5ldyBCZShlLGMsaSxvLHMpKSwoZT1mWzBdKSYmdS5wdXNoKG5ldyBCZShlLHIsaSxjLHMpKX1yZXR1cm4gdGhpc30saWQudmlzaXRBZnRlcj1mdW5jdGlvbih0KXt2YXIgbixlPVtdLHI9W107Zm9yKHRoaXMuX3Jvb3QmJmUucHVzaChuZXcgQmUodGhpcy5fcm9vdCx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO249ZS5wb3AoKTspe3ZhciBpPW4ubm9kZTtpZihpLmxlbmd0aCl7dmFyIG8sYT1uLngwLHU9bi55MCxmPW4ueDEsYz1uLnkxLHM9KGErZikvMixsPSh1K2MpLzI7KG89aVswXSkmJmUucHVzaChuZXcgQmUobyxhLHUscyxsKSksKG89aVsxXSkmJmUucHVzaChuZXcgQmUobyxzLHUsZixsKSksKG89aVsyXSkmJmUucHVzaChuZXcgQmUobyxhLGwscyxjKSksKG89aVszXSkmJmUucHVzaChuZXcgQmUobyxzLGwsZixjKSl9ci5wdXNoKG4pfWZvcig7bj1yLnBvcCgpOyl0KG4ubm9kZSxuLngwLG4ueTAsbi54MSxuLnkxKTtyZXR1cm4gdGhpc30saWQueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD10LHRoaXMpOnRoaXMuX3h9LGlkLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3k9dCx0aGlzKTp0aGlzLl95fTt2YXIgb2Q9MTAsYWQ9TWF0aC5QSSooMy1NYXRoLnNxcnQoNSkpLHVkPS9eKD86KC4pPyhbPD49Xl0pKT8oWytcXC1cXCggXSk/KFskI10pPygwKT8oXFxkKyk/KCwpPyhcXC5cXGQrKT8ofik/KFthLXolXSk/JC9pO3RyLnByb3RvdHlwZT1uci5wcm90b3R5cGUsbnIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlsbCt0aGlzLmFsaWduK3RoaXMuc2lnbit0aGlzLnN5bWJvbCsodGhpcy56ZXJvP1wiMFwiOlwiXCIpKyhudWxsPT10aGlzLndpZHRoP1wiXCI6TWF0aC5tYXgoMSwwfHRoaXMud2lkdGgpKSsodGhpcy5jb21tYT9cIixcIjpcIlwiKSsobnVsbD09dGhpcy5wcmVjaXNpb24/XCJcIjpcIi5cIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltP1wiflwiOlwiXCIpK3RoaXMudHlwZX07dmFyIGZkLGNkLHNkPXtcIiVcIjpmdW5jdGlvbih0LG4pe3JldHVybigxMDAqdCkudG9GaXhlZChuKX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygyKX0sYzpmdW5jdGlvbih0KXtyZXR1cm4gdCtcIlwifSxkOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LG4pe3JldHVybiB0LnRvRXhwb25lbnRpYWwobil9LGY6ZnVuY3Rpb24odCxuKXtyZXR1cm4gdC50b0ZpeGVkKG4pfSxnOmZ1bmN0aW9uKHQsbil7cmV0dXJuIHQudG9QcmVjaXNpb24obil9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxuKXtyZXR1cm4gZXIoMTAwKnQsbil9LHI6ZXIsczpmdW5jdGlvbih0LG4pe3ZhciBlPUplKHQsbik7aWYoIWUpcmV0dXJuIHQrXCJcIjt2YXIgcj1lWzBdLGk9ZVsxXSxvPWktKGZkPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKGkvMykpKSkrMSxhPXIubGVuZ3RoO3JldHVybiBvPT09YT9yOm8+YT9yK25ldyBBcnJheShvLWErMSkuam9pbihcIjBcIik6bz4wP3Iuc2xpY2UoMCxvKStcIi5cIityLnNsaWNlKG8pOlwiMC5cIituZXcgQXJyYXkoMS1vKS5qb2luKFwiMFwiKStKZSh0LE1hdGgubWF4KDAsbitvLTEpKVswXX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNil9fSxsZD1bXCJ5XCIsXCJ6XCIsXCJhXCIsXCJmXCIsXCJwXCIsXCJuXCIsXCLCtVwiLFwibVwiLFwiXCIsXCJrXCIsXCJNXCIsXCJHXCIsXCJUXCIsXCJQXCIsXCJFXCIsXCJaXCIsXCJZXCJdO29yKHtkZWNpbWFsOlwiLlwiLHRob3VzYW5kczpcIixcIixncm91cGluZzpbM10sY3VycmVuY3k6W1wiJFwiLFwiXCJdfSksc3IucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzcixyZXNldDpmdW5jdGlvbigpe3RoaXMucz10aGlzLnQ9MH0sYWRkOmZ1bmN0aW9uKHQpe2xyKGpkLHQsdGhpcy50KSxscih0aGlzLGpkLnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1qZC50OnRoaXMucz1qZC50fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc319O3ZhciBoZCxkZCxwZCx2ZCxnZCx5ZCxfZCxiZCxtZCx4ZCx3ZCxNZCxBZCxUZCxOZCxTZCxFZCxrZCxDZCxQZCx6ZCxSZCxMZCxEZCxVZCxxZCxPZCxZZCxCZCxGZCxJZCxqZD1uZXcgc3IsSGQ9MWUtNixYZD0xZS0xMixHZD1NYXRoLlBJLFZkPUdkLzIsJGQ9R2QvNCxXZD0yKkdkLFpkPTE4MC9HZCxRZD1HZC8xODAsSmQ9TWF0aC5hYnMsS2Q9TWF0aC5hdGFuLHRwPU1hdGguYXRhbjIsbnA9TWF0aC5jb3MsZXA9TWF0aC5jZWlsLHJwPU1hdGguZXhwLGlwPU1hdGgubG9nLG9wPU1hdGgucG93LGFwPU1hdGguc2luLHVwPU1hdGguc2lnbnx8ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfSxmcD1NYXRoLnNxcnQsY3A9TWF0aC50YW4sc3A9e0ZlYXR1cmU6ZnVuY3Rpb24odCxuKXtncih0Lmdlb21ldHJ5LG4pfSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmZlYXR1cmVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspZ3IoZVtyXS5nZW9tZXRyeSxuKX19LGxwPXtTcGhlcmU6ZnVuY3Rpb24odCxuKXtuLnNwaGVyZSgpfSxQb2ludDpmdW5jdGlvbih0LG4pe3Q9dC5jb29yZGluYXRlcyxuLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspdD1lW3JdLG4ucG9pbnQodFswXSx0WzFdLHRbMl0pfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7eXIodC5jb29yZGluYXRlcyxuLDApfSxNdWx0aUxpbmVTdHJpbmc6ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KXlyKGVbcl0sbiwwKX0sUG9seWdvbjpmdW5jdGlvbih0LG4pe19yKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspX3IoZVtyXSxuKX0sR2VvbWV0cnlDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZ2VvbWV0cmllcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWdyKGVbcl0sbil9fSxocD1jcigpLGRwPWNyKCkscHA9e3BvaW50OnZyLGxpbmVTdGFydDp2cixsaW5lRW5kOnZyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2hwLnJlc2V0KCkscHAubGluZVN0YXJ0PW1yLHBwLmxpbmVFbmQ9eHJ9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgdD0raHA7ZHAuYWRkKHQ8MD9XZCt0OnQpLHRoaXMubGluZVN0YXJ0PXRoaXMubGluZUVuZD10aGlzLnBvaW50PXZyfSxzcGhlcmU6ZnVuY3Rpb24oKXtkcC5hZGQoV2QpfX0sdnA9Y3IoKSxncD17cG9pbnQ6UHIsbGluZVN0YXJ0OlJyLGxpbmVFbmQ6THIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7Z3AucG9pbnQ9RHIsZ3AubGluZVN0YXJ0PVVyLGdwLmxpbmVFbmQ9cXIsdnAucmVzZXQoKSxwcC5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3BwLnBvbHlnb25FbmQoKSxncC5wb2ludD1QcixncC5saW5lU3RhcnQ9UnIsZ3AubGluZUVuZD1McixocDwwPyh5ZD0tKGJkPTE4MCksX2Q9LShtZD05MCkpOnZwPkhkP21kPTkwOnZwPC1IZCYmKF9kPS05MCksTmRbMF09eWQsTmRbMV09YmR9fSx5cD17c3BoZXJlOnZyLHBvaW50OkZyLGxpbmVTdGFydDpqcixsaW5lRW5kOkdyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3lwLmxpbmVTdGFydD1Wcix5cC5saW5lRW5kPSRyfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7eXAubGluZVN0YXJ0PWpyLHlwLmxpbmVFbmQ9R3J9fTtLci5pbnZlcnQ9S3I7dmFyIF9wLGJwLG1wLHhwLHdwLE1wLEFwLFRwLE5wLFNwLEVwLGtwPWNyKCksQ3A9ZGkoZnVuY3Rpb24oKXtyZXR1cm4hMH0sZnVuY3Rpb24odCl7dmFyIG4sZT1OYU4scj1OYU4saT1OYU47cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3QubGluZVN0YXJ0KCksbj0xfSxwb2ludDpmdW5jdGlvbihvLGEpe3ZhciB1PW8+MD9HZDotR2QsZj1KZChvLWUpO0pkKGYtR2QpPEhkPyh0LnBvaW50KGUscj0ocithKS8yPjA/VmQ6LVZkKSx0LnBvaW50KGksciksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsciksdC5wb2ludChvLHIpLG49MCk6aSE9PXUmJmY+PUdkJiYoSmQoZS1pKTxIZCYmKGUtPWkqSGQpLEpkKG8tdSk8SGQmJihvLT11KkhkKSxyPWZ1bmN0aW9uKHQsbixlLHIpe3ZhciBpLG8sYT1hcCh0LWUpO3JldHVybiBKZChhKT5IZD9LZCgoYXAobikqKG89bnAocikpKmFwKGUpLWFwKHIpKihpPW5wKG4pKSphcCh0KSkvKGkqbyphKSk6KG4rcikvMn0oZSxyLG8sYSksdC5wb2ludChpLHIpLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh1LHIpLG49MCksdC5wb2ludChlPW8scj1hKSxpPXV9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKSxlPXI9TmFOfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiAyLW59fX0sZnVuY3Rpb24odCxuLGUscil7dmFyIGk7aWYobnVsbD09dClpPWUqVmQsci5wb2ludCgtR2QsaSksci5wb2ludCgwLGkpLHIucG9pbnQoR2QsaSksci5wb2ludChHZCwwKSxyLnBvaW50KEdkLC1pKSxyLnBvaW50KDAsLWkpLHIucG9pbnQoLUdkLC1pKSxyLnBvaW50KC1HZCwwKSxyLnBvaW50KC1HZCxpKTtlbHNlIGlmKEpkKHRbMF0tblswXSk+SGQpe3ZhciBvPXRbMF08blswXT9HZDotR2Q7aT1lKm8vMixyLnBvaW50KC1vLGkpLHIucG9pbnQoMCxpKSxyLnBvaW50KG8saSl9ZWxzZSByLnBvaW50KG5bMF0sblsxXSl9LFstR2QsLVZkXSksUHA9MWU5LHpwPS1QcCxScD1jcigpLExwPXtzcGhlcmU6dnIscG9pbnQ6dnIsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7THAucG9pbnQ9YmksTHAubGluZUVuZD1faX0sbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6dnIscG9seWdvbkVuZDp2cn0sRHA9W251bGwsbnVsbF0sVXA9e3R5cGU6XCJMaW5lU3RyaW5nXCIsY29vcmRpbmF0ZXM6RHB9LHFwPXtGZWF0dXJlOmZ1bmN0aW9uKHQsbil7cmV0dXJuIE1pKHQuZ2VvbWV0cnksbil9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuZmVhdHVyZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihNaShlW3JdLmdlb21ldHJ5LG4pKXJldHVybiEwO3JldHVybiExfX0sT3A9e1NwaGVyZTpmdW5jdGlvbigpe3JldHVybiEwfSxQb2ludDpmdW5jdGlvbih0LG4pe3JldHVybiBBaSh0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPXQuY29vcmRpbmF0ZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihBaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsbil7cmV0dXJuIFRpKHQuY29vcmRpbmF0ZXMsbil9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10LmNvb3JkaW5hdGVzLHI9LTEsaT1lLmxlbmd0aDsrK3I8aTspaWYoVGkoZVtyXSxuKSlyZXR1cm4hMDtyZXR1cm4hMX0sUG9seWdvbjpmdW5jdGlvbih0LG4pe3JldHVybiBOaSh0LmNvb3JkaW5hdGVzLG4pfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9dC5jb29yZGluYXRlcyxyPS0xLGk9ZS5sZW5ndGg7KytyPGk7KWlmKE5pKGVbcl0sbikpcmV0dXJuITA7cmV0dXJuITF9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LG4pe2Zvcih2YXIgZT10Lmdlb21ldHJpZXMscj0tMSxpPWUubGVuZ3RoOysrcjxpOylpZihNaShlW3JdLG4pKXJldHVybiEwO3JldHVybiExfX0sWXA9Y3IoKSxCcD1jcigpLEZwPXtwb2ludDp2cixsaW5lU3RhcnQ6dnIsbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtGcC5saW5lU3RhcnQ9UmksRnAubGluZUVuZD1VaX0scG9seWdvbkVuZDpmdW5jdGlvbigpe0ZwLmxpbmVTdGFydD1GcC5saW5lRW5kPUZwLnBvaW50PXZyLFlwLmFkZChKZChCcCkpLEJwLnJlc2V0KCl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PVlwLzI7cmV0dXJuIFlwLnJlc2V0KCksdH19LElwPTEvMCxqcD1JcCxIcD0tSXAsWHA9SHAsR3A9e3BvaW50OmZ1bmN0aW9uKHQsbil7dDxJcCYmKElwPXQpLHQ+SHAmJihIcD10KSxuPGpwJiYoanA9biksbj5YcCYmKFhwPW4pfSxsaW5lU3RhcnQ6dnIsbGluZUVuZDp2cixwb2x5Z29uU3RhcnQ6dnIscG9seWdvbkVuZDp2cixyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1bW0lwLGpwXSxbSHAsWHBdXTtyZXR1cm4gSHA9WHA9LShqcD1JcD0xLzApLHR9fSxWcD0wLCRwPTAsV3A9MCxacD0wLFFwPTAsSnA9MCxLcD0wLHR2PTAsbnY9MCxldj17cG9pbnQ6cWksbGluZVN0YXJ0Ok9pLGxpbmVFbmQ6RmkscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7ZXYubGluZVN0YXJ0PUlpLGV2LmxpbmVFbmQ9aml9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtldi5wb2ludD1xaSxldi5saW5lU3RhcnQ9T2ksZXYubGluZUVuZD1GaX0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9bnY/W0twL252LHR2L252XTpKcD9bWnAvSnAsUXAvSnBdOldwP1tWcC9XcCwkcC9XcF06W05hTixOYU5dO3JldHVybiBWcD0kcD1XcD1acD1RcD1KcD1LcD10dj1udj0wLHR9fTtHaS5wcm90b3R5cGU9e19yYWRpdXM6NC41LHBvaW50UmFkaXVzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yYWRpdXM9dCx0aGlzfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpezA9PT10aGlzLl9saW5lJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX3BvaW50PU5hTn0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pLHRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX2NvbnRleHQubGluZVRvKHQsbik7YnJlYWs7ZGVmYXVsdDp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0K3RoaXMuX3JhZGl1cyxuKSx0aGlzLl9jb250ZXh0LmFyYyh0LG4sdGhpcy5fcmFkaXVzLDAsV2QpfX0scmVzdWx0OnZyfTt2YXIgcnYsaXYsb3YsYXYsdXYsZnY9Y3IoKSxjdj17cG9pbnQ6dnIsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7Y3YucG9pbnQ9Vml9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtydiYmJGkoaXYsb3YpLGN2LnBvaW50PXZyfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtydj0hMH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3J2PW51bGx9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PStmdjtyZXR1cm4gZnYucmVzZXQoKSx0fX07V2kucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxfY2lyY2xlOlppKDQuNSkscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpIT09dGhpcy5fcmFkaXVzJiYodGhpcy5fcmFkaXVzPXQsdGhpcy5fY2lyY2xlPW51bGwpLHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX3N0cmluZy5wdXNoKFwiWlwiKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fc3RyaW5nLnB1c2goXCJNXCIsdCxcIixcIixuKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9zdHJpbmcucHVzaChcIkxcIix0LFwiLFwiLG4pO2JyZWFrO2RlZmF1bHQ6bnVsbD09dGhpcy5fY2lyY2xlJiYodGhpcy5fY2lyY2xlPVppKHRoaXMuX3JhZGl1cykpLHRoaXMuX3N0cmluZy5wdXNoKFwiTVwiLHQsXCIsXCIsbix0aGlzLl9jaXJjbGUpfX0scmVzdWx0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RyaW5nLmxlbmd0aCl7dmFyIHQ9dGhpcy5fc3RyaW5nLmpvaW4oXCJcIik7cmV0dXJuIHRoaXMuX3N0cmluZz1bXSx0fXJldHVybiBudWxsfX0sSmkucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpKaSxwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuc3RyZWFtLnBvaW50KHQsbil9LHNwaGVyZTpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uRW5kKCl9fTt2YXIgc3Y9MTYsbHY9bnAoMzAqUWQpLGh2PVFpKHtwb2ludDpmdW5jdGlvbih0LG4pe3RoaXMuc3RyZWFtLnBvaW50KHQqUWQsbipRZCl9fSksZHY9aG8oZnVuY3Rpb24odCl7cmV0dXJuIGZwKDIvKDErdCkpfSk7ZHYuaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiAyKmRyKHQvMil9KTt2YXIgcHY9aG8oZnVuY3Rpb24odCl7cmV0dXJuKHQ9aHIodCkpJiZ0L2FwKHQpfSk7cHYuaW52ZXJ0PXBvKGZ1bmN0aW9uKHQpe3JldHVybiB0fSksdm8uaW52ZXJ0PWZ1bmN0aW9uKHQsbil7cmV0dXJuW3QsMipLZChycChuKSktVmRdfSxiby5pbnZlcnQ9Ym8seG8uaW52ZXJ0PXBvKEtkKSxNby5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgZSxyPW4saT0yNTtkb3t2YXIgbz1yKnIsYT1vKm87ci09ZT0ociooMS4wMDcyMjYrbyooLjAxNTA4NSthKiguMDI4ODc0Km8tLjA0NDQ3NS0uMDA1OTE2KmEpKSktbikvKDEuMDA3MjI2K28qKC4wNDUyNTUrYSooLjI1OTg2NipvLS4zMTEzMjUtLjAwNTkxNioxMSphKSkpfXdoaWxlKEpkKGUpPkhkJiYtLWk+MCk7cmV0dXJuW3QvKC44NzA3KyhvPXIqcikqKG8qKG8qbypvKiguMDAzOTcxLS4wMDE1MjkqbyktLjAxMzc5MSktLjEzMTk3OSkpLHJdfSxBby5pbnZlcnQ9cG8oZHIpLFRvLmludmVydD1wbyhmdW5jdGlvbih0KXtyZXR1cm4gMipLZCh0KX0pLE5vLmludmVydD1mdW5jdGlvbih0LG4pe3JldHVyblstbiwyKktkKHJwKHQpKS1WZF19LERvLnByb3RvdHlwZT1Qby5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkRvLGNvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKENvKX0sZWFjaDpmdW5jdGlvbih0KXt2YXIgbixlLHIsaSxvPXRoaXMsYT1bb107ZG97Zm9yKG49YS5yZXZlcnNlKCksYT1bXTtvPW4ucG9wKCk7KWlmKHQobyksZT1vLmNoaWxkcmVuKWZvcihyPTAsaT1lLmxlbmd0aDtyPGk7KytyKWEucHVzaChlW3JdKX13aGlsZShhLmxlbmd0aCk7cmV0dXJuIHRoaXN9LGVhY2hBZnRlcjpmdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyLGk9dGhpcyxvPVtpXSxhPVtdO2k9by5wb3AoKTspaWYoYS5wdXNoKGkpLG49aS5jaGlsZHJlbilmb3IoZT0wLHI9bi5sZW5ndGg7ZTxyOysrZSlvLnB1c2gobltlXSk7Zm9yKDtpPWEucG9wKCk7KXQoaSk7cmV0dXJuIHRoaXN9LGVhY2hCZWZvcmU6ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj10aGlzLGk9W3JdO3I9aS5wb3AoKTspaWYodChyKSxuPXIuY2hpbGRyZW4pZm9yKGU9bi5sZW5ndGgtMTtlPj0wOy0tZSlpLnB1c2gobltlXSk7cmV0dXJuIHRoaXN9LHN1bTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoQWZ0ZXIoZnVuY3Rpb24obil7Zm9yKHZhciBlPSt0KG4uZGF0YSl8fDAscj1uLmNoaWxkcmVuLGk9ciYmci5sZW5ndGg7LS1pPj0wOyllKz1yW2ldLnZhbHVlO24udmFsdWU9ZX0pfSxzb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24obil7bi5jaGlsZHJlbiYmbi5jaGlsZHJlbi5zb3J0KHQpfSl9LHBhdGg6ZnVuY3Rpb24odCl7Zm9yKHZhciBuPXRoaXMsZT1mdW5jdGlvbih0LG4pe2lmKHQ9PT1uKXJldHVybiB0O3ZhciBlPXQuYW5jZXN0b3JzKCkscj1uLmFuY2VzdG9ycygpLGk9bnVsbDtmb3IodD1lLnBvcCgpLG49ci5wb3AoKTt0PT09bjspaT10LHQ9ZS5wb3AoKSxuPXIucG9wKCk7cmV0dXJuIGl9KG4sdCkscj1bbl07biE9PWU7KW49bi5wYXJlbnQsci5wdXNoKG4pO2Zvcih2YXIgaT1yLmxlbmd0aDt0IT09ZTspci5zcGxpY2UoaSwwLHQpLHQ9dC5wYXJlbnQ7cmV0dXJuIHJ9LGFuY2VzdG9yczpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLG49W3RdO3Q9dC5wYXJlbnQ7KW4ucHVzaCh0KTtyZXR1cm4gbn0sZGVzY2VuZGFudHM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKG4pe3QucHVzaChuKX0pLHR9LGxlYXZlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoZnVuY3Rpb24obil7bi5jaGlsZHJlbnx8dC5wdXNoKG4pfSksdH0sbGlua3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG49W107cmV0dXJuIHQuZWFjaChmdW5jdGlvbihlKXtlIT09dCYmbi5wdXNoKHtzb3VyY2U6ZS5wYXJlbnQsdGFyZ2V0OmV9KX0pLG59LGNvcHk6ZnVuY3Rpb24oKXtyZXR1cm4gUG8odGhpcykuZWFjaEJlZm9yZShSbyl9fTt2YXIgdnY9QXJyYXkucHJvdG90eXBlLnNsaWNlLGd2PVwiJFwiLHl2PXtkZXB0aDotMX0sX3Y9e307Y2EucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRG8ucHJvdG90eXBlKTt2YXIgYnY9KDErTWF0aC5zcXJ0KDUpKS8yLG12PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0LGUscixpLG8pe2xhKG4sdCxlLHIsaSxvKX1yZXR1cm4gZS5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gdCgobj0rbik+MT9uOjEpfSxlfShidikseHY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSxyLGksbyl7aWYoKGE9dC5fc3F1YXJpZnkpJiZhLnJhdGlvPT09bilmb3IodmFyIGEsdSxmLGMscyxsPS0xLGg9YS5sZW5ndGgsZD10LnZhbHVlOysrbDxoOyl7Zm9yKGY9KHU9YVtsXSkuY2hpbGRyZW4sYz11LnZhbHVlPTAscz1mLmxlbmd0aDtjPHM7KytjKXUudmFsdWUrPWZbY10udmFsdWU7dS5kaWNlP25hKHUsZSxyLGkscis9KG8tcikqdS52YWx1ZS9kKTpzYSh1LGUscixlKz0oaS1lKSp1LnZhbHVlL2QsbyksZC09dS52YWx1ZX1lbHNlIHQuX3NxdWFyaWZ5PWE9bGEobix0LGUscixpLG8pLGEucmF0aW89bn1yZXR1cm4gZS5yYXRpbz1mdW5jdGlvbihuKXtyZXR1cm4gdCgobj0rbik+MT9uOjEpfSxlfShidiksd3Y9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHQ9bnVsbD09dD8wOit0LGU9bnVsbD09ZT8xOitlLDE9PT1hcmd1bWVudHMubGVuZ3RoPyhlPXQsdD0wKTplLT10LGZ1bmN0aW9uKCl7cmV0dXJuIG4oKSplK3R9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxNdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCxlKXt2YXIgcixpO3JldHVybiB0PW51bGw9PXQ/MDordCxlPW51bGw9PWU/MTorZSxmdW5jdGlvbigpe3ZhciBvO2lmKG51bGwhPXIpbz1yLHI9bnVsbDtlbHNlIGRve3I9MipuKCktMSxvPTIqbigpLTEsaT1yKnIrbypvfXdoaWxlKCFpfHxpPjEpO3JldHVybiB0K2UqbypNYXRoLnNxcnQoLTIqTWF0aC5sb2coaSkvaSl9fXJldHVybiBlLnNvdXJjZT10LGV9KHZhKSxBdj1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUoKXt2YXIgdD1Ndi5zb3VyY2UobikuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksVHY9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT0wLHI9MDtyPHQ7KytyKWUrPW4oKTtyZXR1cm4gZX19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLE52PWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXt2YXIgZT1Udi5zb3VyY2UobikodCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUoKS90fX1yZXR1cm4gZS5zb3VyY2U9dCxlfSh2YSksU3Y9ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybi1NYXRoLmxvZygxLW4oKSkvdH19cmV0dXJuIGUuc291cmNlPXQsZX0odmEpLEV2PUFycmF5LnByb3RvdHlwZSxrdj1Fdi5tYXAsQ3Y9RXYuc2xpY2UsUHY9e25hbWU6XCJpbXBsaWNpdFwifSx6dj1bMCwxXSxSdj1uZXcgRGF0ZSxMdj1uZXcgRGF0ZSxEdj1JYShmdW5jdGlvbigpe30sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4tdH0pO0R2LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGguZmxvb3IodCksaXNGaW5pdGUodCkmJnQ+MD90PjE/SWEoZnVuY3Rpb24obil7bi5zZXRUaW1lKE1hdGguZmxvb3Iobi90KSp0KX0sZnVuY3Rpb24obixlKXtuLnNldFRpbWUoK24rZSp0KX0sZnVuY3Rpb24obixlKXtyZXR1cm4oZS1uKS90fSk6RHY6bnVsbH07dmFyIFV2PUR2LnJhbmdlLHF2PTZlNCxPdj02MDQ4ZTUsWXY9SWEoZnVuY3Rpb24odCl7dC5zZXRUaW1lKDFlMypNYXRoLmZsb29yKHQvMWUzKSl9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzFlMypuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10KS8xZTN9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pLEJ2PVl2LnJhbmdlLEZ2PUlhKGZ1bmN0aW9uKHQpe3Quc2V0VGltZShNYXRoLmZsb29yKHQvcXYpKnF2KX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbipxdil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvcXZ9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pLEl2PUZ2LnJhbmdlLGp2PUlhKGZ1bmN0aW9uKHQpe3ZhciBuPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSpxdiUzNmU1O248MCYmKG4rPTM2ZTUpLHQuc2V0VGltZSgzNmU1Kk1hdGguZmxvb3IoKCt0LW4pLzM2ZTUpK24pfSxmdW5jdGlvbih0LG4pe3Quc2V0VGltZSgrdCszNmU1Km4pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzM2ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSxIdj1qdi5yYW5nZSxYdj1JYShmdW5jdGlvbih0KXt0LnNldEhvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0RGF0ZSh0LmdldERhdGUoKStuKX0sZnVuY3Rpb24odCxuKXtyZXR1cm4obi10LShuLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSpxdikvODY0ZTV9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERhdGUoKS0xfSksR3Y9WHYucmFuZ2UsVnY9amEoMCksJHY9amEoMSksV3Y9amEoMiksWnY9amEoMyksUXY9amEoNCksSnY9amEoNSksS3Y9amEoNiksdGc9VnYucmFuZ2Usbmc9JHYucmFuZ2UsZWc9V3YucmFuZ2Uscmc9WnYucmFuZ2UsaWc9UXYucmFuZ2Usb2c9SnYucmFuZ2UsYWc9S3YucmFuZ2UsdWc9SWEoZnVuY3Rpb24odCl7dC5zZXREYXRlKDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0TW9udGgoKS10LmdldE1vbnRoKCkrMTIqKG4uZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCkpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpfSksZmc9dWcucmFuZ2UsY2c9SWEoZnVuY3Rpb24odCl7dC5zZXRNb250aCgwLDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4uZ2V0RnVsbFllYXIoKS10LmdldEZ1bGxZZWFyKCl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEZ1bGxZZWFyKCl9KTtjZy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gaXNGaW5pdGUodD1NYXRoLmZsb29yKHQpKSYmdD4wP0lhKGZ1bmN0aW9uKG4pe24uc2V0RnVsbFllYXIoTWF0aC5mbG9vcihuLmdldEZ1bGxZZWFyKCkvdCkqdCksbi5zZXRNb250aCgwLDEpLG4uc2V0SG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKG4sZSl7bi5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkrZSp0KX0pOm51bGx9O3ZhciBzZz1jZy5yYW5nZSxsZz1JYShmdW5jdGlvbih0KXt0LnNldFVUQ1NlY29uZHMoMCwwKX0sZnVuY3Rpb24odCxuKXt0LnNldFRpbWUoK3Qrbipxdil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvcXZ9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pLGhnPWxnLnJhbmdlLGRnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTWludXRlcygwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRUaW1lKCt0KzM2ZTUqbil9LGZ1bmN0aW9uKHQsbil7cmV0dXJuKG4tdCkvMzZlNX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDSG91cnMoKX0pLHBnPWRnLnJhbmdlLHZnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDSG91cnMoMCwwLDAsMCl9LGZ1bmN0aW9uKHQsbil7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybihuLXQpLzg2NGU1fSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXRlKCktMX0pLGdnPXZnLnJhbmdlLHlnPUhhKDApLF9nPUhhKDEpLGJnPUhhKDIpLG1nPUhhKDMpLHhnPUhhKDQpLHdnPUhhKDUpLE1nPUhhKDYpLEFnPXlnLnJhbmdlLFRnPV9nLnJhbmdlLE5nPWJnLnJhbmdlLFNnPW1nLnJhbmdlLEVnPXhnLnJhbmdlLGtnPXdnLnJhbmdlLENnPU1nLnJhbmdlLFBnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDRGF0ZSgxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDTW9udGgodC5nZXRVVENNb250aCgpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldFVUQ01vbnRoKCktdC5nZXRVVENNb250aCgpKzEyKihuLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0VVRDTW9udGgoKX0pLHpnPVBnLnJhbmdlLFJnPUlhKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbih0LG4pe3Quc2V0VVRDRnVsbFllYXIodC5nZXRVVENGdWxsWWVhcigpK24pfSxmdW5jdGlvbih0LG4pe3JldHVybiBuLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSk7UmcuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9JYShmdW5jdGlvbihuKXtuLnNldFVUQ0Z1bGxZZWFyKE1hdGguZmxvb3Iobi5nZXRVVENGdWxsWWVhcigpL3QpKnQpLG4uc2V0VVRDTW9udGgoMCwxKSxuLnNldFVUQ0hvdXJzKDAsMCwwLDApfSxmdW5jdGlvbihuLGUpe24uc2V0VVRDRnVsbFllYXIobi5nZXRVVENGdWxsWWVhcigpK2UqdCl9KTpudWxsfTt2YXIgTGcsRGc9UmcucmFuZ2UsVWc9e1wiLVwiOlwiXCIsXzpcIiBcIiwwOlwiMFwifSxxZz0vXlxccypcXGQrLyxPZz0vXiUvLFlnPS9bXFxcXF4kKis/fFtcXF0oKS57fV0vZztuZih7ZGF0ZVRpbWU6XCIleCwgJVhcIixkYXRlOlwiJS1tLyUtZC8lWVwiLHRpbWU6XCIlLUk6JU06JVMgJXBcIixwZXJpb2RzOltcIkFNXCIsXCJQTVwiXSxkYXlzOltcIlN1bmRheVwiLFwiTW9uZGF5XCIsXCJUdWVzZGF5XCIsXCJXZWRuZXNkYXlcIixcIlRodXJzZGF5XCIsXCJGcmlkYXlcIixcIlNhdHVyZGF5XCJdLHNob3J0RGF5czpbXCJTdW5cIixcIk1vblwiLFwiVHVlXCIsXCJXZWRcIixcIlRodVwiLFwiRnJpXCIsXCJTYXRcIl0sbW9udGhzOltcIkphbnVhcnlcIixcIkZlYnJ1YXJ5XCIsXCJNYXJjaFwiLFwiQXByaWxcIixcIk1heVwiLFwiSnVuZVwiLFwiSnVseVwiLFwiQXVndXN0XCIsXCJTZXB0ZW1iZXJcIixcIk9jdG9iZXJcIixcIk5vdmVtYmVyXCIsXCJEZWNlbWJlclwiXSxzaG9ydE1vbnRoczpbXCJKYW5cIixcIkZlYlwiLFwiTWFyXCIsXCJBcHJcIixcIk1heVwiLFwiSnVuXCIsXCJKdWxcIixcIkF1Z1wiLFwiU2VwXCIsXCJPY3RcIixcIk5vdlwiLFwiRGVjXCJdfSk7dmFyIEJnPVwiJVktJW0tJWRUJUg6JU06JVMuJUxaXCIsRmc9RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc/ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX06dC51dGNGb3JtYXQoQmcpLElnPStuZXcgRGF0ZShcIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWlwiKT9mdW5jdGlvbih0KXt2YXIgbj1uZXcgRGF0ZSh0KTtyZXR1cm4gaXNOYU4obik/bnVsbDpufTp0LnV0Y1BhcnNlKEJnKSxqZz0xZTMsSGc9NjAqamcsWGc9NjAqSGcsR2c9MjQqWGcsVmc9NypHZywkZz0zMCpHZyxXZz0zNjUqR2csWmc9ZmYoXCIxZjc3YjRmZjdmMGUyY2EwMmNkNjI3Mjg5NDY3YmQ4YzU2NGJlMzc3YzI3ZjdmN2ZiY2JkMjIxN2JlY2ZcIiksUWc9ZmYoXCI3ZmM5N2ZiZWFlZDRmZGMwODZmZmZmOTkzODZjYjBmMDAyN2ZiZjViMTc2NjY2NjZcIiksSmc9ZmYoXCIxYjllNzdkOTVmMDI3NTcwYjNlNzI5OGE2NmE2MWVlNmFiMDJhNjc2MWQ2NjY2NjZcIiksS2c9ZmYoXCJhNmNlZTMxZjc4YjRiMmRmOGEzM2EwMmNmYjlhOTllMzFhMWNmZGJmNmZmZjdmMDBjYWIyZDY2YTNkOWFmZmZmOTliMTU5MjhcIiksdHk9ZmYoXCJmYmI0YWViM2NkZTNjY2ViYzVkZWNiZTRmZWQ5YTZmZmZmY2NlNWQ4YmRmZGRhZWNmMmYyZjJcIiksbnk9ZmYoXCJiM2UyY2RmZGNkYWNjYmQ1ZThmNGNhZTRlNmY1YzlmZmYyYWVmMWUyY2NjY2NjY2NcIiksZXk9ZmYoXCJlNDFhMWMzNzdlYjg0ZGFmNGE5ODRlYTNmZjdmMDBmZmZmMzNhNjU2MjhmNzgxYmY5OTk5OTlcIikscnk9ZmYoXCI2NmMyYTVmYzhkNjI4ZGEwY2JlNzhhYzNhNmQ4NTRmZmQ5MmZlNWM0OTRiM2IzYjNcIiksaXk9ZmYoXCI4ZGQzYzdmZmZmYjNiZWJhZGFmYjgwNzI4MGIxZDNmZGI0NjJiM2RlNjlmY2NkZTVkOWQ5ZDliYzgwYmRjY2ViYzVmZmVkNmZcIiksb3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImQ4YjM2NWY1ZjVmNTVhYjRhY1wiLFwiYTY2MTFhZGZjMjdkODBjZGMxMDE4NTcxXCIsXCJhNjYxMWFkZmMyN2RmNWY1ZjU4MGNkYzEwMTg1NzFcIixcIjhjNTEwYWQ4YjM2NWY2ZThjM2M3ZWFlNTVhYjRhYzAxNjY1ZVwiLFwiOGM1MTBhZDhiMzY1ZjZlOGMzZjVmNWY1YzdlYWU1NWFiNGFjMDE2NjVlXCIsXCI4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWVcIixcIjhjNTEwYWJmODEyZGRmYzI3ZGY2ZThjM2Y1ZjVmNWM3ZWFlNTgwY2RjMTM1OTc4ZjAxNjY1ZVwiLFwiNTQzMDA1OGM1MTBhYmY4MTJkZGZjMjdkZjZlOGMzYzdlYWU1ODBjZGMxMzU5NzhmMDE2NjVlMDAzYzMwXCIsXCI1NDMwMDU4YzUxMGFiZjgxMmRkZmMyN2RmNmU4YzNmNWY1ZjVjN2VhZTU4MGNkYzEzNTk3OGYwMTY2NWUwMDNjMzBcIikubWFwKGZmKSxheT1jZihveSksdXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImFmOGRjM2Y3ZjdmNzdmYmY3YlwiLFwiN2IzMjk0YzJhNWNmYTZkYmEwMDA4ODM3XCIsXCI3YjMyOTRjMmE1Y2ZmN2Y3ZjdhNmRiYTAwMDg4MzdcIixcIjc2MmE4M2FmOGRjM2U3ZDRlOGQ5ZjBkMzdmYmY3YjFiNzgzN1wiLFwiNzYyYTgzYWY4ZGMzZTdkNGU4ZjdmN2Y3ZDlmMGQzN2ZiZjdiMWI3ODM3XCIsXCI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzdcIixcIjc2MmE4Mzk5NzBhYmMyYTVjZmU3ZDRlOGY3ZjdmN2Q5ZjBkM2E2ZGJhMDVhYWU2MTFiNzgzN1wiLFwiNDAwMDRiNzYyYTgzOTk3MGFiYzJhNWNmZTdkNGU4ZDlmMGQzYTZkYmEwNWFhZTYxMWI3ODM3MDA0NDFiXCIsXCI0MDAwNGI3NjJhODM5OTcwYWJjMmE1Y2ZlN2Q0ZThmN2Y3ZjdkOWYwZDNhNmRiYTA1YWFlNjExYjc4MzcwMDQ0MWJcIikubWFwKGZmKSxmeT1jZih1eSksY3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImU5YTNjOWY3ZjdmN2ExZDc2YVwiLFwiZDAxYzhiZjFiNmRhYjhlMTg2NGRhYzI2XCIsXCJkMDFjOGJmMWI2ZGFmN2Y3ZjdiOGUxODY0ZGFjMjZcIixcImM1MWI3ZGU5YTNjOWZkZTBlZmU2ZjVkMGExZDc2YTRkOTIyMVwiLFwiYzUxYjdkZTlhM2M5ZmRlMGVmZjdmN2Y3ZTZmNWQwYTFkNzZhNGQ5MjIxXCIsXCJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjFcIixcImM1MWI3ZGRlNzdhZWYxYjZkYWZkZTBlZmY3ZjdmN2U2ZjVkMGI4ZTE4NjdmYmM0MTRkOTIyMVwiLFwiOGUwMTUyYzUxYjdkZGU3N2FlZjFiNmRhZmRlMGVmZTZmNWQwYjhlMTg2N2ZiYzQxNGQ5MjIxMjc2NDE5XCIsXCI4ZTAxNTJjNTFiN2RkZTc3YWVmMWI2ZGFmZGUwZWZmN2Y3ZjdlNmY1ZDBiOGUxODY3ZmJjNDE0ZDkyMjEyNzY0MTlcIikubWFwKGZmKSxzeT1jZihjeSksbHk9bmV3IEFycmF5KDMpLmNvbmNhdChcIjk5OGVjM2Y3ZjdmN2YxYTM0MFwiLFwiNWUzYzk5YjJhYmQyZmRiODYzZTY2MTAxXCIsXCI1ZTNjOTliMmFiZDJmN2Y3ZjdmZGI4NjNlNjYxMDFcIixcIjU0Mjc4ODk5OGVjM2Q4ZGFlYmZlZTBiNmYxYTM0MGIzNTgwNlwiLFwiNTQyNzg4OTk4ZWMzZDhkYWViZjdmN2Y3ZmVlMGI2ZjFhMzQwYjM1ODA2XCIsXCI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDZcIixcIjU0Mjc4ODgwNzNhY2IyYWJkMmQ4ZGFlYmY3ZjdmN2ZlZTBiNmZkYjg2M2UwODIxNGIzNTgwNlwiLFwiMmQwMDRiNTQyNzg4ODA3M2FjYjJhYmQyZDhkYWViZmVlMGI2ZmRiODYzZTA4MjE0YjM1ODA2N2YzYjA4XCIsXCIyZDAwNGI1NDI3ODg4MDczYWNiMmFiZDJkOGRhZWJmN2Y3ZjdmZWUwYjZmZGI4NjNlMDgyMTRiMzU4MDY3ZjNiMDhcIikubWFwKGZmKSxoeT1jZihseSksZHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmOGE2MmY3ZjdmNzY3YTljZlwiLFwiY2EwMDIwZjRhNTgyOTJjNWRlMDU3MWIwXCIsXCJjYTAwMjBmNGE1ODJmN2Y3Zjc5MmM1ZGUwNTcxYjBcIixcImIyMTgyYmVmOGE2MmZkZGJjN2QxZTVmMDY3YTljZjIxNjZhY1wiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZjdmN2Y3ZDFlNWYwNjdhOWNmMjE2NmFjXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWNcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2Y3ZjdmN2QxZTVmMDkyYzVkZTQzOTNjMzIxNjZhY1wiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZDFlNWYwOTJjNWRlNDM5M2MzMjE2NmFjMDUzMDYxXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmN2Y3ZjdkMWU1ZjA5MmM1ZGU0MzkzYzMyMTY2YWMwNTMwNjFcIikubWFwKGZmKSxweT1jZihkeSksdnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmOGE2MmZmZmZmZjk5OTk5OVwiLFwiY2EwMDIwZjRhNTgyYmFiYWJhNDA0MDQwXCIsXCJjYTAwMjBmNGE1ODJmZmZmZmZiYWJhYmE0MDQwNDBcIixcImIyMTgyYmVmOGE2MmZkZGJjN2UwZTBlMDk5OTk5OTRkNGQ0ZFwiLFwiYjIxODJiZWY4YTYyZmRkYmM3ZmZmZmZmZTBlMGUwOTk5OTk5NGQ0ZDRkXCIsXCJiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGRcIixcImIyMTgyYmQ2NjA0ZGY0YTU4MmZkZGJjN2ZmZmZmZmUwZTBlMGJhYmFiYTg3ODc4NzRkNGQ0ZFwiLFwiNjcwMDFmYjIxODJiZDY2MDRkZjRhNTgyZmRkYmM3ZTBlMGUwYmFiYWJhODc4Nzg3NGQ0ZDRkMWExYTFhXCIsXCI2NzAwMWZiMjE4MmJkNjYwNGRmNGE1ODJmZGRiYzdmZmZmZmZlMGUwZTBiYWJhYmE4Nzg3ODc0ZDRkNGQxYTFhMWFcIikubWFwKGZmKSxneT1jZih2eSkseXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjkxYmZkYlwiLFwiZDcxOTFjZmRhZTYxYWJkOWU5MmM3YmI2XCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhYmQ5ZTkyYzdiYjZcIixcImQ3MzAyN2ZjOGQ1OWZlZTA5MGUwZjNmODkxYmZkYjQ1NzViNFwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDkwZmZmZmJmZTBmM2Y4OTFiZmRiNDU3NWI0XCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjRcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA5MGZmZmZiZmUwZjNmOGFiZDllOTc0YWRkMTQ1NzViNFwiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDkwZTBmM2Y4YWJkOWU5NzRhZGQxNDU3NWI0MzEzNjk1XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOTBmZmZmYmZlMGYzZjhhYmQ5ZTk3NGFkZDE0NTc1YjQzMTM2OTVcIikubWFwKGZmKSxfeT1jZih5eSksYnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjkxY2Y2MFwiLFwiZDcxOTFjZmRhZTYxYTZkOTZhMWE5NjQxXCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhNmQ5NmExYTk2NDFcIixcImQ3MzAyN2ZjOGQ1OWZlZTA4YmQ5ZWY4YjkxY2Y2MDFhOTg1MFwiLFwiZDczMDI3ZmM4ZDU5ZmVlMDhiZmZmZmJmZDllZjhiOTFjZjYwMWE5ODUwXCIsXCJkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTBcIixcImQ3MzAyN2Y0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmQ5ZWY4YmE2ZDk2YTY2YmQ2MzFhOTg1MFwiLFwiYTUwMDI2ZDczMDI3ZjQ2ZDQzZmRhZTYxZmVlMDhiZDllZjhiYTZkOTZhNjZiZDYzMWE5ODUwMDA2ODM3XCIsXCJhNTAwMjZkNzMwMjdmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZkOWVmOGJhNmQ5NmE2NmJkNjMxYTk4NTAwMDY4MzdcIikubWFwKGZmKSxteT1jZihieSkseHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImZjOGQ1OWZmZmZiZjk5ZDU5NFwiLFwiZDcxOTFjZmRhZTYxYWJkZGE0MmI4M2JhXCIsXCJkNzE5MWNmZGFlNjFmZmZmYmZhYmRkYTQyYjgzYmFcIixcImQ1M2U0ZmZjOGQ1OWZlZTA4YmU2ZjU5ODk5ZDU5NDMyODhiZFwiLFwiZDUzZTRmZmM4ZDU5ZmVlMDhiZmZmZmJmZTZmNTk4OTlkNTk0MzI4OGJkXCIsXCJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmRcIixcImQ1M2U0ZmY0NmQ0M2ZkYWU2MWZlZTA4YmZmZmZiZmU2ZjU5OGFiZGRhNDY2YzJhNTMyODhiZFwiLFwiOWUwMTQyZDUzZTRmZjQ2ZDQzZmRhZTYxZmVlMDhiZTZmNTk4YWJkZGE0NjZjMmE1MzI4OGJkNWU0ZmEyXCIsXCI5ZTAxNDJkNTNlNGZmNDZkNDNmZGFlNjFmZWUwOGJmZmZmYmZlNmY1OThhYmRkYTQ2NmMyYTUzMjg4YmQ1ZTRmYTJcIikubWFwKGZmKSx3eT1jZih4eSksTXk9bmV3IEFycmF5KDMpLmNvbmNhdChcImU1ZjVmOTk5ZDhjOTJjYTI1ZlwiLFwiZWRmOGZiYjJlMmUyNjZjMmE0MjM4YjQ1XCIsXCJlZGY4ZmJiMmUyZTI2NmMyYTQyY2EyNWYwMDZkMmNcIixcImVkZjhmYmNjZWNlNjk5ZDhjOTY2YzJhNDJjYTI1ZjAwNmQyY1wiLFwiZWRmOGZiY2NlY2U2OTlkOGM5NjZjMmE0NDFhZTc2MjM4YjQ1MDA1ODI0XCIsXCJmN2ZjZmRlNWY1ZjljY2VjZTY5OWQ4Yzk2NmMyYTQ0MWFlNzYyMzhiNDUwMDU4MjRcIixcImY3ZmNmZGU1ZjVmOWNjZWNlNjk5ZDhjOTY2YzJhNDQxYWU3NjIzOGI0NTAwNmQyYzAwNDQxYlwiKS5tYXAoZmYpLEF5PWNmKE15KSxUeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTBlY2Y0OWViY2RhODg1NmE3XCIsXCJlZGY4ZmJiM2NkZTM4Yzk2YzY4ODQxOWRcIixcImVkZjhmYmIzY2RlMzhjOTZjNjg4NTZhNzgxMGY3Y1wiLFwiZWRmOGZiYmZkM2U2OWViY2RhOGM5NmM2ODg1NmE3ODEwZjdjXCIsXCJlZGY4ZmJiZmQzZTY5ZWJjZGE4Yzk2YzY4YzZiYjE4ODQxOWQ2ZTAxNmJcIixcImY3ZmNmZGUwZWNmNGJmZDNlNjllYmNkYThjOTZjNjhjNmJiMTg4NDE5ZDZlMDE2YlwiLFwiZjdmY2ZkZTBlY2Y0YmZkM2U2OWViY2RhOGM5NmM2OGM2YmIxODg0MTlkODEwZjdjNGQwMDRiXCIpLm1hcChmZiksTnk9Y2YoVHkpLFN5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlMGYzZGJhOGRkYjU0M2EyY2FcIixcImYwZjllOGJhZTRiYzdiY2NjNDJiOGNiZVwiLFwiZjBmOWU4YmFlNGJjN2JjY2M0NDNhMmNhMDg2OGFjXCIsXCJmMGY5ZThjY2ViYzVhOGRkYjU3YmNjYzQ0M2EyY2EwODY4YWNcIixcImYwZjllOGNjZWJjNWE4ZGRiNTdiY2NjNDRlYjNkMzJiOGNiZTA4NTg5ZVwiLFwiZjdmY2YwZTBmM2RiY2NlYmM1YThkZGI1N2JjY2M0NGViM2QzMmI4Y2JlMDg1ODllXCIsXCJmN2ZjZjBlMGYzZGJjY2ViYzVhOGRkYjU3YmNjYzQ0ZWIzZDMyYjhjYmUwODY4YWMwODQwODFcIikubWFwKGZmKSxFeT1jZihTeSksa3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImZlZThjOGZkYmI4NGUzNGEzM1wiLFwiZmVmMGQ5ZmRjYzhhZmM4ZDU5ZDczMDFmXCIsXCJmZWYwZDlmZGNjOGFmYzhkNTllMzRhMzNiMzAwMDBcIixcImZlZjBkOWZkZDQ5ZWZkYmI4NGZjOGQ1OWUzNGEzM2IzMDAwMFwiLFwiZmVmMGQ5ZmRkNDllZmRiYjg0ZmM4ZDU5ZWY2NTQ4ZDczMDFmOTkwMDAwXCIsXCJmZmY3ZWNmZWU4YzhmZGQ0OWVmZGJiODRmYzhkNTllZjY1NDhkNzMwMWY5OTAwMDBcIixcImZmZjdlY2ZlZThjOGZkZDQ5ZWZkYmI4NGZjOGQ1OWVmNjU0OGQ3MzAxZmIzMDAwMDdmMDAwMFwiKS5tYXAoZmYpLEN5PWNmKGt5KSxQeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZWNlMmYwYTZiZGRiMWM5MDk5XCIsXCJmNmVmZjdiZGM5ZTE2N2E5Y2YwMjgxOGFcIixcImY2ZWZmN2JkYzllMTY3YTljZjFjOTA5OTAxNmM1OVwiLFwiZjZlZmY3ZDBkMWU2YTZiZGRiNjdhOWNmMWM5MDk5MDE2YzU5XCIsXCJmNmVmZjdkMGQxZTZhNmJkZGI2N2E5Y2YzNjkwYzAwMjgxOGEwMTY0NTBcIixcImZmZjdmYmVjZTJmMGQwZDFlNmE2YmRkYjY3YTljZjM2OTBjMDAyODE4YTAxNjQ1MFwiLFwiZmZmN2ZiZWNlMmYwZDBkMWU2YTZiZGRiNjdhOWNmMzY5MGMwMDI4MThhMDE2YzU5MDE0NjM2XCIpLm1hcChmZiksenk9Y2YoUHkpLFJ5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlY2U3ZjJhNmJkZGIyYjhjYmVcIixcImYxZWVmNmJkYzllMTc0YTljZjA1NzBiMFwiLFwiZjFlZWY2YmRjOWUxNzRhOWNmMmI4Y2JlMDQ1YThkXCIsXCJmMWVlZjZkMGQxZTZhNmJkZGI3NGE5Y2YyYjhjYmUwNDVhOGRcIixcImYxZWVmNmQwZDFlNmE2YmRkYjc0YTljZjM2OTBjMDA1NzBiMDAzNGU3YlwiLFwiZmZmN2ZiZWNlN2YyZDBkMWU2YTZiZGRiNzRhOWNmMzY5MGMwMDU3MGIwMDM0ZTdiXCIsXCJmZmY3ZmJlY2U3ZjJkMGQxZTZhNmJkZGI3NGE5Y2YzNjkwYzAwNTcwYjAwNDVhOGQwMjM4NThcIikubWFwKGZmKSxMeT1jZihSeSksRHk9bmV3IEFycmF5KDMpLmNvbmNhdChcImU3ZTFlZmM5OTRjN2RkMWM3N1wiLFwiZjFlZWY2ZDdiNWQ4ZGY2NWIwY2UxMjU2XCIsXCJmMWVlZjZkN2I1ZDhkZjY1YjBkZDFjNzc5ODAwNDNcIixcImYxZWVmNmQ0YjlkYWM5OTRjN2RmNjViMGRkMWM3Nzk4MDA0M1wiLFwiZjFlZWY2ZDRiOWRhYzk5NGM3ZGY2NWIwZTcyOThhY2UxMjU2OTEwMDNmXCIsXCJmN2Y0ZjllN2UxZWZkNGI5ZGFjOTk0YzdkZjY1YjBlNzI5OGFjZTEyNTY5MTAwM2ZcIixcImY3ZjRmOWU3ZTFlZmQ0YjlkYWM5OTRjN2RmNjViMGU3Mjk4YWNlMTI1Njk4MDA0MzY3MDAxZlwiKS5tYXAoZmYpLFV5PWNmKER5KSxxeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmRlMGRkZmE5ZmI1YzUxYjhhXCIsXCJmZWViZTJmYmI0YjlmNzY4YTFhZTAxN2VcIixcImZlZWJlMmZiYjRiOWY3NjhhMWM1MWI4YTdhMDE3N1wiLFwiZmVlYmUyZmNjNWMwZmE5ZmI1Zjc2OGExYzUxYjhhN2EwMTc3XCIsXCJmZWViZTJmY2M1YzBmYTlmYjVmNzY4YTFkZDM0OTdhZTAxN2U3YTAxNzdcIixcImZmZjdmM2ZkZTBkZGZjYzVjMGZhOWZiNWY3NjhhMWRkMzQ5N2FlMDE3ZTdhMDE3N1wiLFwiZmZmN2YzZmRlMGRkZmNjNWMwZmE5ZmI1Zjc2OGExZGQzNDk3YWUwMTdlN2EwMTc3NDkwMDZhXCIpLm1hcChmZiksT3k9Y2YocXkpLFl5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJlZGY4YjE3ZmNkYmIyYzdmYjhcIixcImZmZmZjY2ExZGFiNDQxYjZjNDIyNWVhOFwiLFwiZmZmZmNjYTFkYWI0NDFiNmM0MmM3ZmI4MjUzNDk0XCIsXCJmZmZmY2NjN2U5YjQ3ZmNkYmI0MWI2YzQyYzdmYjgyNTM0OTRcIixcImZmZmZjY2M3ZTliNDdmY2RiYjQxYjZjNDFkOTFjMDIyNWVhODBjMmM4NFwiLFwiZmZmZmQ5ZWRmOGIxYzdlOWI0N2ZjZGJiNDFiNmM0MWQ5MWMwMjI1ZWE4MGMyYzg0XCIsXCJmZmZmZDllZGY4YjFjN2U5YjQ3ZmNkYmI0MWI2YzQxZDkxYzAyMjVlYTgyNTM0OTQwODFkNThcIikubWFwKGZmKSxCeT1jZihZeSksRnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImY3ZmNiOWFkZGQ4ZTMxYTM1NFwiLFwiZmZmZmNjYzJlNjk5NzhjNjc5MjM4NDQzXCIsXCJmZmZmY2NjMmU2OTk3OGM2NzkzMWEzNTQwMDY4MzdcIixcImZmZmZjY2Q5ZjBhM2FkZGQ4ZTc4YzY3OTMxYTM1NDAwNjgzN1wiLFwiZmZmZmNjZDlmMGEzYWRkZDhlNzhjNjc5NDFhYjVkMjM4NDQzMDA1YTMyXCIsXCJmZmZmZTVmN2ZjYjlkOWYwYTNhZGRkOGU3OGM2Nzk0MWFiNWQyMzg0NDMwMDVhMzJcIixcImZmZmZlNWY3ZmNiOWQ5ZjBhM2FkZGQ4ZTc4YzY3OTQxYWI1ZDIzODQ0MzAwNjgzNzAwNDUyOVwiKS5tYXAoZmYpLEl5PWNmKEZ5KSxqeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmZmN2JjZmVjNDRmZDk1ZjBlXCIsXCJmZmZmZDRmZWQ5OGVmZTk5MjljYzRjMDJcIixcImZmZmZkNGZlZDk4ZWZlOTkyOWQ5NWYwZTk5MzQwNFwiLFwiZmZmZmQ0ZmVlMzkxZmVjNDRmZmU5OTI5ZDk1ZjBlOTkzNDA0XCIsXCJmZmZmZDRmZWUzOTFmZWM0NGZmZTk5MjllYzcwMTRjYzRjMDI4YzJkMDRcIixcImZmZmZlNWZmZjdiY2ZlZTM5MWZlYzQ0ZmZlOTkyOWVjNzAxNGNjNGMwMjhjMmQwNFwiLFwiZmZmZmU1ZmZmN2JjZmVlMzkxZmVjNDRmZmU5OTI5ZWM3MDE0Y2M0YzAyOTkzNDA0NjYyNTA2XCIpLm1hcChmZiksSHk9Y2YoankpLFh5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZmVkYTBmZWIyNGNmMDNiMjBcIixcImZmZmZiMmZlY2M1Y2ZkOGQzY2UzMWExY1wiLFwiZmZmZmIyZmVjYzVjZmQ4ZDNjZjAzYjIwYmQwMDI2XCIsXCJmZmZmYjJmZWQ5NzZmZWIyNGNmZDhkM2NmMDNiMjBiZDAwMjZcIixcImZmZmZiMmZlZDk3NmZlYjI0Y2ZkOGQzY2ZjNGUyYWUzMWExY2IxMDAyNlwiLFwiZmZmZmNjZmZlZGEwZmVkOTc2ZmViMjRjZmQ4ZDNjZmM0ZTJhZTMxYTFjYjEwMDI2XCIsXCJmZmZmY2NmZmVkYTBmZWQ5NzZmZWIyNGNmZDhkM2NmYzRlMmFlMzFhMWNiZDAwMjY4MDAwMjZcIikubWFwKGZmKSxHeT1jZihYeSksVnk9bmV3IEFycmF5KDMpLmNvbmNhdChcImRlZWJmNzllY2FlMTMxODJiZFwiLFwiZWZmM2ZmYmRkN2U3NmJhZWQ2MjE3MWI1XCIsXCJlZmYzZmZiZGQ3ZTc2YmFlZDYzMTgyYmQwODUxOWNcIixcImVmZjNmZmM2ZGJlZjllY2FlMTZiYWVkNjMxODJiZDA4NTE5Y1wiLFwiZWZmM2ZmYzZkYmVmOWVjYWUxNmJhZWQ2NDI5MmM2MjE3MWI1MDg0NTk0XCIsXCJmN2ZiZmZkZWViZjdjNmRiZWY5ZWNhZTE2YmFlZDY0MjkyYzYyMTcxYjUwODQ1OTRcIixcImY3ZmJmZmRlZWJmN2M2ZGJlZjllY2FlMTZiYWVkNjQyOTJjNjIxNzFiNTA4NTE5YzA4MzA2YlwiKS5tYXAoZmYpLCR5PWNmKFZ5KSxXeT1uZXcgQXJyYXkoMykuY29uY2F0KFwiZTVmNWUwYTFkOTliMzFhMzU0XCIsXCJlZGY4ZTliYWU0YjM3NGM0NzYyMzhiNDVcIixcImVkZjhlOWJhZTRiMzc0YzQ3NjMxYTM1NDAwNmQyY1wiLFwiZWRmOGU5YzdlOWMwYTFkOTliNzRjNDc2MzFhMzU0MDA2ZDJjXCIsXCJlZGY4ZTljN2U5YzBhMWQ5OWI3NGM0NzY0MWFiNWQyMzhiNDUwMDVhMzJcIixcImY3ZmNmNWU1ZjVlMGM3ZTljMGExZDk5Yjc0YzQ3NjQxYWI1ZDIzOGI0NTAwNWEzMlwiLFwiZjdmY2Y1ZTVmNWUwYzdlOWMwYTFkOTliNzRjNDc2NDFhYjVkMjM4YjQ1MDA2ZDJjMDA0NDFiXCIpLm1hcChmZiksWnk9Y2YoV3kpLFF5PW5ldyBBcnJheSgzKS5jb25jYXQoXCJmMGYwZjBiZGJkYmQ2MzYzNjNcIixcImY3ZjdmN2NjY2NjYzk2OTY5NjUyNTI1MlwiLFwiZjdmN2Y3Y2NjY2NjOTY5Njk2NjM2MzYzMjUyNTI1XCIsXCJmN2Y3ZjdkOWQ5ZDliZGJkYmQ5Njk2OTY2MzYzNjMyNTI1MjVcIixcImY3ZjdmN2Q5ZDlkOWJkYmRiZDk2OTY5NjczNzM3MzUyNTI1MjI1MjUyNVwiLFwiZmZmZmZmZjBmMGYwZDlkOWQ5YmRiZGJkOTY5Njk2NzM3MzczNTI1MjUyMjUyNTI1XCIsXCJmZmZmZmZmMGYwZjBkOWQ5ZDliZGJkYmQ5Njk2OTY3MzczNzM1MjUyNTIyNTI1MjUwMDAwMDBcIikubWFwKGZmKSxKeT1jZihReSksS3k9bmV3IEFycmF5KDMpLmNvbmNhdChcImVmZWRmNWJjYmRkYzc1NmJiMVwiLFwiZjJmMGY3Y2JjOWUyOWU5YWM4NmE1MWEzXCIsXCJmMmYwZjdjYmM5ZTI5ZTlhYzg3NTZiYjE1NDI3OGZcIixcImYyZjBmN2RhZGFlYmJjYmRkYzllOWFjODc1NmJiMTU0Mjc4ZlwiLFwiZjJmMGY3ZGFkYWViYmNiZGRjOWU5YWM4ODA3ZGJhNmE1MWEzNGExNDg2XCIsXCJmY2ZiZmRlZmVkZjVkYWRhZWJiY2JkZGM5ZTlhYzg4MDdkYmE2YTUxYTM0YTE0ODZcIixcImZjZmJmZGVmZWRmNWRhZGFlYmJjYmRkYzllOWFjODgwN2RiYTZhNTFhMzU0Mjc4ZjNmMDA3ZFwiKS5tYXAoZmYpLHRfPWNmKEt5KSxuXz1uZXcgQXJyYXkoMykuY29uY2F0KFwiZmVlMGQyZmM5MjcyZGUyZDI2XCIsXCJmZWU1ZDlmY2FlOTFmYjZhNGFjYjE4MWRcIixcImZlZTVkOWZjYWU5MWZiNmE0YWRlMmQyNmE1MGYxNVwiLFwiZmVlNWQ5ZmNiYmExZmM5MjcyZmI2YTRhZGUyZDI2YTUwZjE1XCIsXCJmZWU1ZDlmY2JiYTFmYzkyNzJmYjZhNGFlZjNiMmNjYjE4MWQ5OTAwMGRcIixcImZmZjVmMGZlZTBkMmZjYmJhMWZjOTI3MmZiNmE0YWVmM2IyY2NiMTgxZDk5MDAwZFwiLFwiZmZmNWYwZmVlMGQyZmNiYmExZmM5MjcyZmI2YTRhZWYzYjJjY2IxODFkYTUwZjE1NjcwMDBkXCIpLm1hcChmZiksZV89Y2Yobl8pLHJfPW5ldyBBcnJheSgzKS5jb25jYXQoXCJmZWU2Y2VmZGFlNmJlNjU1MGRcIixcImZlZWRkZWZkYmU4NWZkOGQzY2Q5NDcwMVwiLFwiZmVlZGRlZmRiZTg1ZmQ4ZDNjZTY1NTBkYTYzNjAzXCIsXCJmZWVkZGVmZGQwYTJmZGFlNmJmZDhkM2NlNjU1MGRhNjM2MDNcIixcImZlZWRkZWZkZDBhMmZkYWU2YmZkOGQzY2YxNjkxM2Q5NDgwMThjMmQwNFwiLFwiZmZmNWViZmVlNmNlZmRkMGEyZmRhZTZiZmQ4ZDNjZjE2OTEzZDk0ODAxOGMyZDA0XCIsXCJmZmY1ZWJmZWU2Y2VmZGQwYTJmZGFlNmJmZDhkM2NmMTY5MTNkOTQ4MDFhNjM2MDM3ZjI3MDRcIikubWFwKGZmKSxpXz1jZihyXyksb189eGwoWnQoMzAwLC41LDApLFp0KC0yNDAsLjUsMSkpLGFfPXhsKFp0KC0xMDAsLjc1LC4zNSksWnQoODAsMS41LC44KSksdV89eGwoWnQoMjYwLC43NSwuMzUpLFp0KDgwLDEuNSwuOCkpLGZfPVp0KCksY189UnQoKSxzXz1NYXRoLlBJLzMsbF89MipNYXRoLlBJLzMsaF89c2YoZmYoXCI0NDAxNTQ0NDAyNTY0NTA0NTc0NTA1NTk0NjA3NWE0NjA4NWM0NjBhNWQ0NjBiNWU0NzBkNjA0NzBlNjE0NzEwNjM0NzExNjQ0NzEzNjU0ODE0Njc0ODE2Njg0ODE3Njk0ODE4NmE0ODFhNmM0ODFiNmQ0ODFjNmU0ODFkNmY0ODFmNzA0ODIwNzE0ODIxNzM0ODIzNzQ0ODI0NzU0ODI1NzY0ODI2Nzc0ODI4Nzg0ODI5Nzk0NzJhN2E0NzJjN2E0NzJkN2I0NzJlN2M0NzJmN2Q0NjMwN2U0NjMyN2U0NjMzN2Y0NjM0ODA0NTM1ODE0NTM3ODE0NTM4ODI0NDM5ODM0NDNhODM0NDNiODQ0MzNkODQ0MzNlODU0MjNmODU0MjQwODY0MjQxODY0MTQyODc0MTQ0ODc0MDQ1ODg0MDQ2ODgzZjQ3ODgzZjQ4ODkzZTQ5ODkzZTRhODkzZTRjOGEzZDRkOGEzZDRlOGEzYzRmOGEzYzUwOGIzYjUxOGIzYjUyOGIzYTUzOGIzYTU0OGMzOTU1OGMzOTU2OGMzODU4OGMzODU5OGMzNzVhOGMzNzViOGQzNjVjOGQzNjVkOGQzNTVlOGQzNTVmOGQzNDYwOGQzNDYxOGQzMzYyOGQzMzYzOGQzMjY0OGUzMjY1OGUzMTY2OGUzMTY3OGUzMTY4OGUzMDY5OGUzMDZhOGUyZjZiOGUyZjZjOGUyZTZkOGUyZTZlOGUyZTZmOGUyZDcwOGUyZDcxOGUyYzcxOGUyYzcyOGUyYzczOGUyYjc0OGUyYjc1OGUyYTc2OGUyYTc3OGUyYTc4OGUyOTc5OGUyOTdhOGUyOTdiOGUyODdjOGUyODdkOGUyNzdlOGUyNzdmOGUyNzgwOGUyNjgxOGUyNjgyOGUyNjgyOGUyNTgzOGUyNTg0OGUyNTg1OGUyNDg2OGUyNDg3OGUyMzg4OGUyMzg5OGUyMzhhOGQyMjhiOGQyMjhjOGQyMjhkOGQyMThlOGQyMThmOGQyMTkwOGQyMTkxOGMyMDkyOGMyMDkyOGMyMDkzOGMxZjk0OGMxZjk1OGIxZjk2OGIxZjk3OGIxZjk4OGIxZjk5OGExZjlhOGExZTliOGExZTljODkxZTlkODkxZjllODkxZjlmODgxZmEwODgxZmExODgxZmExODcxZmEyODcyMGEzODYyMGE0ODYyMWE1ODUyMWE2ODUyMmE3ODUyMmE4ODQyM2E5ODMyNGFhODMyNWFiODIyNWFjODIyNmFkODEyN2FkODEyOGFlODAyOWFmN2YyYWIwN2YyY2IxN2UyZGIyN2QyZWIzN2MyZmI0N2MzMWI1N2IzMmI2N2EzNGI2NzkzNWI3NzkzN2I4NzgzOGI5NzczYWJhNzYzYmJiNzUzZGJjNzQzZmJjNzM0MGJkNzI0MmJlNzE0NGJmNzA0NmMwNmY0OGMxNmU0YWMxNmQ0Y2MyNmM0ZWMzNmI1MGM0NmE1MmM1Njk1NGM1Njg1NmM2Njc1OGM3NjU1YWM4NjQ1Y2M4NjM1ZWM5NjI2MGNhNjA2M2NiNWY2NWNiNWU2N2NjNWM2OWNkNWI2Y2NkNWE2ZWNlNTg3MGNmNTc3M2QwNTY3NWQwNTQ3N2QxNTM3YWQxNTE3Y2QyNTA3ZmQzNGU4MWQzNGQ4NGQ0NGI4NmQ1NDk4OWQ1NDg4YmQ2NDY4ZWQ2NDU5MGQ3NDM5M2Q3NDE5NWQ4NDA5OGQ4M2U5YmQ5M2M5ZGQ5M2JhMGRhMzlhMmRhMzdhNWRiMzZhOGRiMzRhYWRjMzJhZGRjMzBiMGRkMmZiMmRkMmRiNWRlMmJiOGRlMjliYWRlMjhiZGRmMjZjMGRmMjVjMmRmMjNjNWUwMjFjOGUwMjBjYWUxMWZjZGUxMWRkMGUxMWNkMmUyMWJkNWUyMWFkOGUyMTlkYWUzMTlkZGUzMThkZmUzMThlMmU0MThlNWU0MTllN2U0MTllYWU1MWFlY2U1MWJlZmU1MWNmMWU1MWRmNGU2MWVmNmU2MjBmOGU2MjFmYmU3MjNmZGU3MjVcIikpLGRfPXNmKGZmKFwiMDAwMDA0MDEwMDA1MDEwMTA2MDEwMTA4MDIwMTA5MDIwMjBiMDIwMjBkMDMwMzBmMDMwMzEyMDQwNDE0MDUwNDE2MDYwNTE4MDYwNTFhMDcwNjFjMDgwNzFlMDkwNzIwMGEwODIyMGIwOTI0MGMwOTI2MGQwYTI5MGUwYjJiMTAwYjJkMTEwYzJmMTIwZDMxMTMwZDM0MTQwZTM2MTUwZTM4MTYwZjNiMTgwZjNkMTkxMDNmMWExMDQyMWMxMDQ0MWQxMTQ3MWUxMTQ5MjAxMTRiMjExMTRlMjIxMTUwMjQxMjUzMjUxMjU1MjcxMjU4MjkxMTVhMmExMTVjMmMxMTVmMmQxMTYxMmYxMTYzMzExMTY1MzMxMDY3MzQxMDY5MzYxMDZiMzgxMDZjMzkwZjZlM2IwZjcwM2QwZjcxM2YwZjcyNDAwZjc0NDIwZjc1NDQwZjc2NDUxMDc3NDcxMDc4NDkxMDc4NGExMDc5NGMxMTdhNGUxMTdiNGYxMjdiNTExMjdjNTIxMzdjNTQxMzdkNTYxNDdkNTcxNTdlNTkxNTdlNWExNjdlNWMxNjdmNWQxNzdmNWYxODdmNjAxODgwNjIxOTgwNjQxYTgwNjUxYTgwNjcxYjgwNjgxYzgxNmExYzgxNmIxZDgxNmQxZDgxNmUxZTgxNzAxZjgxNzIxZjgxNzMyMDgxNzUyMTgxNzYyMTgxNzgyMjgxNzkyMjgyN2IyMzgyN2MyMzgyN2UyNDgyODAyNTgyODEyNTgxODMyNjgxODQyNjgxODYyNzgxODgyNzgxODkyODgxOGIyOTgxOGMyOTgxOGUyYTgxOTAyYTgxOTEyYjgxOTMyYjgwOTQyYzgwOTYyYzgwOTgyZDgwOTkyZDgwOWIyZTdmOWMyZTdmOWUyZjdmYTAyZjdmYTEzMDdlYTMzMDdlYTUzMTdlYTYzMTdkYTgzMjdkYWEzMzdkYWIzMzdjYWQzNDdjYWUzNDdiYjAzNTdiYjIzNTdiYjMzNjdhYjUzNjdhYjczNzc5YjgzNzc5YmEzODc4YmMzOTc4YmQzOTc3YmYzYTc3YzAzYTc2YzIzYjc1YzQzYzc1YzUzYzc0YzczZDczYzgzZTczY2EzZTcyY2MzZjcxY2Q0MDcxY2Y0MDcwZDA0MTZmZDI0MjZmZDM0MzZlZDU0NDZkZDY0NTZjZDg0NTZjZDk0NjZiZGI0NzZhZGM0ODY5ZGU0OTY4ZGY0YTY4ZTA0YzY3ZTI0ZDY2ZTM0ZTY1ZTQ0ZjY0ZTU1MDY0ZTc1MjYzZTg1MzYyZTk1NDYyZWE1NjYxZWI1NzYwZWM1ODYwZWQ1YTVmZWU1YjVlZWY1ZDVlZjA1ZjVlZjE2MDVkZjI2MjVkZjI2NDVjZjM2NTVjZjQ2NzVjZjQ2OTVjZjU2YjVjZjY2YzVjZjY2ZTVjZjc3MDVjZjc3MjVjZjg3NDVjZjg3NjVjZjk3ODVkZjk3OTVkZjk3YjVkZmE3ZDVlZmE3ZjVlZmE4MTVmZmI4MzVmZmI4NTYwZmI4NzYxZmM4OTYxZmM4YTYyZmM4YzYzZmM4ZTY0ZmM5MDY1ZmQ5MjY2ZmQ5NDY3ZmQ5NjY4ZmQ5ODY5ZmQ5YTZhZmQ5YjZiZmU5ZDZjZmU5ZjZkZmVhMTZlZmVhMzZmZmVhNTcxZmVhNzcyZmVhOTczZmVhYTc0ZmVhYzc2ZmVhZTc3ZmViMDc4ZmViMjdhZmViNDdiZmViNjdjZmViNzdlZmViOTdmZmViYjgxZmViZDgyZmViZjg0ZmVjMTg1ZmVjMjg3ZmVjNDg4ZmVjNjhhZmVjODhjZmVjYThkZmVjYzhmZmVjZDkwZmVjZjkyZmVkMTk0ZmVkMzk1ZmVkNTk3ZmVkNzk5ZmVkODlhZmRkYTljZmRkYzllZmRkZWEwZmRlMGExZmRlMmEzZmRlM2E1ZmRlNWE3ZmRlN2E5ZmRlOWFhZmRlYmFjZmNlY2FlZmNlZWIwZmNmMGIyZmNmMmI0ZmNmNGI2ZmNmNmI4ZmNmN2I5ZmNmOWJiZmNmYmJkZmNmZGJmXCIpKSxwXz1zZihmZihcIjAwMDAwNDAxMDAwNTAxMDEwNjAxMDEwODAyMDEwYTAyMDIwYzAyMDIwZTAzMDIxMDA0MDMxMjA0MDMxNDA1MDQxNzA2MDQxOTA3MDUxYjA4MDUxZDA5MDYxZjBhMDcyMjBiMDcyNDBjMDgyNjBkMDgyOTBlMDkyYjEwMDkyZDExMGEzMDEyMGEzMjE0MGIzNDE1MGIzNzE2MGIzOTE4MGMzYzE5MGMzZTFiMGM0MTFjMGM0MzFlMGM0NTFmMGM0ODIxMGM0YTIzMGM0YzI0MGM0ZjI2MGM1MTI4MGI1MzI5MGI1NTJiMGI1NzJkMGI1OTJmMGE1YjMxMGE1YzMyMGE1ZTM0MGE1ZjM2MDk2MTM4MDk2MjM5MDk2MzNiMDk2NDNkMDk2NTNlMDk2NjQwMGE2NzQyMGE2ODQ0MGE2ODQ1MGE2OTQ3MGI2YTQ5MGI2YTRhMGM2YjRjMGM2YjRkMGQ2YzRmMGQ2YzUxMGU2YzUyMGU2ZDU0MGY2ZDU1MGY2ZDU3MTA2ZTU5MTA2ZTVhMTE2ZTVjMTI2ZTVkMTI2ZTVmMTM2ZTYxMTM2ZTYyMTQ2ZTY0MTU2ZTY1MTU2ZTY3MTY2ZTY5MTY2ZTZhMTc2ZTZjMTg2ZTZkMTg2ZTZmMTk2ZTcxMTk2ZTcyMWE2ZTc0MWE2ZTc1MWI2ZTc3MWM2ZDc4MWM2ZDdhMWQ2ZDdjMWQ2ZDdkMWU2ZDdmMWU2YzgwMWY2YzgyMjA2Yzg0MjA2Yjg1MjE2Yjg3MjE2Yjg4MjI2YThhMjI2YThjMjM2OThkMjM2OThmMjQ2OTkwMjU2ODkyMjU2ODkzMjY2Nzk1MjY2Nzk3Mjc2Njk4Mjc2NjlhMjg2NTliMjk2NDlkMjk2NDlmMmE2M2EwMmE2M2EyMmI2MmEzMmM2MWE1MmM2MGE2MmQ2MGE4MmU1ZmE5MmU1ZWFiMmY1ZWFkMzA1ZGFlMzA1Y2IwMzE1YmIxMzI1YWIzMzI1YWI0MzM1OWI2MzQ1OGI3MzU1N2I5MzU1NmJhMzY1NWJjMzc1NGJkMzg1M2JmMzk1MmMwM2E1MWMxM2E1MGMzM2I0ZmM0M2M0ZWM2M2Q0ZGM3M2U0Y2M4M2Y0YmNhNDA0YWNiNDE0OWNjNDI0OGNlNDM0N2NmNDQ0NmQwNDU0NWQyNDY0NGQzNDc0M2Q0NDg0MmQ1NGE0MWQ3NGIzZmQ4NGMzZWQ5NGQzZGRhNGUzY2RiNTAzYmRkNTEzYWRlNTIzOGRmNTMzN2UwNTUzNmUxNTYzNWUyNTczNGUzNTkzM2U0NWEzMWU1NWMzMGU2NWQyZmU3NWUyZWU4NjAyZGU5NjEyYmVhNjMyYWViNjQyOWViNjYyOGVjNjcyNmVkNjkyNWVlNmEyNGVmNmMyM2VmNmUyMWYwNmYyMGYxNzExZmYxNzMxZGYyNzQxY2YzNzYxYmYzNzgxOWY0NzkxOGY1N2IxN2Y1N2QxNWY2N2UxNGY2ODAxM2Y3ODIxMmY3ODQxMGY4ODUwZmY4ODcwZWY4ODkwY2Y5OGIwYmY5OGMwYWY5OGUwOWZhOTAwOGZhOTIwN2ZhOTQwN2ZiOTYwNmZiOTcwNmZiOTkwNmZiOWIwNmZiOWQwN2ZjOWYwN2ZjYTEwOGZjYTMwOWZjYTUwYWZjYTYwY2ZjYTgwZGZjYWEwZmZjYWMxMWZjYWUxMmZjYjAxNGZjYjIxNmZjYjQxOGZiYjYxYWZiYjgxZGZiYmExZmZiYmMyMWZiYmUyM2ZhYzAyNmZhYzIyOGZhYzQyYWZhYzYyZGY5YzcyZmY5YzkzMmY5Y2IzNWY4Y2QzN2Y4Y2YzYWY3ZDEzZGY3ZDM0MGY2ZDU0M2Y2ZDc0NmY1ZDk0OWY1ZGI0Y2Y0ZGQ0ZmY0ZGY1M2Y0ZTE1NmYzZTM1YWYzZTU1ZGYyZTY2MWYyZTg2NWYyZWE2OWYxZWM2ZGYxZWQ3MWYxZWY3NWYxZjE3OWYyZjI3ZGYyZjQ4MmYzZjU4NmYzZjY4YWY0Zjg4ZWY1Zjk5MmY2ZmE5NmY4ZmI5YWY5ZmM5ZGZhZmRhMWZjZmZhNFwiKSksdl89c2YoZmYoXCIwZDA4ODcxMDA3ODgxMzA3ODkxNjA3OGExOTA2OGMxYjA2OGQxZDA2OGUyMDA2OGYyMjA2OTAyNDA2OTEyNjA1OTEyODA1OTIyYTA1OTMyYzA1OTQyZTA1OTUyZjA1OTYzMTA1OTczMzA1OTczNTA0OTgzNzA0OTkzODA0OWEzYTA0OWEzYzA0OWIzZTA0OWMzZjA0OWM0MTA0OWQ0MzAzOWU0NDAzOWU0NjAzOWY0ODAzOWY0OTAzYTA0YjAzYTE0YzAyYTE0ZTAyYTI1MDAyYTI1MTAyYTM1MzAyYTM1NTAyYTQ1NjAxYTQ1ODAxYTQ1OTAxYTU1YjAxYTU1YzAxYTY1ZTAxYTY2MDAxYTY2MTAwYTc2MzAwYTc2NDAwYTc2NjAwYTc2NzAwYTg2OTAwYTg2YTAwYTg2YzAwYTg2ZTAwYTg2ZjAwYTg3MTAwYTg3MjAxYTg3NDAxYTg3NTAxYTg3NzAxYTg3ODAxYTg3YTAyYTg3YjAyYTg3ZDAzYTg3ZTAzYTg4MDA0YTg4MTA0YTc4MzA1YTc4NDA1YTc4NjA2YTY4NzA3YTY4ODA4YTY4YTA5YTU4YjBhYTU4ZDBiYTU4ZTBjYTQ4ZjBkYTQ5MTBlYTM5MjBmYTM5NDEwYTI5NTExYTE5NjEzYTE5ODE0YTA5OTE1OWY5YTE2OWY5YzE3OWU5ZDE4OWQ5ZTE5OWRhMDFhOWNhMTFiOWJhMjFkOWFhMzFlOWFhNTFmOTlhNjIwOThhNzIxOTdhODIyOTZhYTIzOTVhYjI0OTRhYzI2OTRhZDI3OTNhZTI4OTJiMDI5OTFiMTJhOTBiMjJiOGZiMzJjOGViNDJlOGRiNTJmOGNiNjMwOGJiNzMxOGFiODMyODliYTMzODhiYjM0ODhiYzM1ODdiZDM3ODZiZTM4ODViZjM5ODRjMDNhODNjMTNiODJjMjNjODFjMzNkODBjNDNlN2ZjNTQwN2VjNjQxN2RjNzQyN2NjODQzN2JjOTQ0N2FjYTQ1N2FjYjQ2NzljYzQ3NzhjYzQ5NzdjZDRhNzZjZTRiNzVjZjRjNzRkMDRkNzNkMTRlNzJkMjRmNzFkMzUxNzFkNDUyNzBkNTUzNmZkNTU0NmVkNjU1NmRkNzU2NmNkODU3NmJkOTU4NmFkYTVhNmFkYTViNjlkYjVjNjhkYzVkNjdkZDVlNjZkZTVmNjVkZTYxNjRkZjYyNjNlMDYzNjNlMTY0NjJlMjY1NjFlMjY2NjBlMzY4NWZlNDY5NWVlNTZhNWRlNTZiNWRlNjZjNWNlNzZlNWJlNzZmNWFlODcwNTllOTcxNThlOTcyNTdlYTc0NTdlYjc1NTZlYjc2NTVlYzc3NTRlZDc5NTNlZDdhNTJlZTdiNTFlZjdjNTFlZjdlNTBmMDdmNGZmMDgwNGVmMTgxNGRmMTgzNGNmMjg0NGJmMzg1NGJmMzg3NGFmNDg4NDlmNDg5NDhmNThiNDdmNThjNDZmNjhkNDVmNjhmNDRmNzkwNDRmNzkxNDNmNzkzNDJmODk0NDFmODk1NDBmOTk3M2ZmOTk4M2VmOTlhM2VmYTliM2RmYTljM2NmYTllM2JmYjlmM2FmYmExMzlmYmEyMzhmY2EzMzhmY2E1MzdmY2E2MzZmY2E4MzVmY2E5MzRmZGFiMzNmZGFjMzNmZGFlMzJmZGFmMzFmZGIxMzBmZGIyMmZmZGI0MmZmZGI1MmVmZWI3MmRmZWI4MmNmZWJhMmNmZWJiMmJmZWJkMmFmZWJlMmFmZWMwMjlmZGMyMjlmZGMzMjhmZGM1MjdmZGM2MjdmZGM4MjdmZGNhMjZmZGNiMjZmY2NkMjVmY2NlMjVmY2QwMjVmY2QyMjVmYmQzMjRmYmQ1MjRmYmQ3MjRmYWQ4MjRmYWRhMjRmOWRjMjRmOWRkMjVmOGRmMjVmOGUxMjVmN2UyMjVmN2U0MjVmNmU2MjZmNmU4MjZmNWU5MjZmNWViMjdmNGVkMjdmM2VlMjdmM2YwMjdmMmYyMjdmMWY0MjZmMWY1MjVmMGY3MjRmMGY5MjFcIikpLGdfPU1hdGguYWJzLHlfPU1hdGguYXRhbjIsX189TWF0aC5jb3MsYl89TWF0aC5tYXgsbV89TWF0aC5taW4seF89TWF0aC5zaW4sd189TWF0aC5zcXJ0LE1fPTFlLTEyLEFfPU1hdGguUEksVF89QV8vMixOXz0yKkFfO2JmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7c3dpdGNoKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7ZGVmYXVsdDp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pfX19O3ZhciBTXz1FZihtZik7U2YucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhU3RhcnQoKX0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmFyZWFFbmQoKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5saW5lRW5kKCl9LHBvaW50OmZ1bmN0aW9uKHQsbil7dGhpcy5fY3VydmUucG9pbnQobipNYXRoLnNpbih0KSxuKi1NYXRoLmNvcyh0KSl9fTt2YXIgRV89QXJyYXkucHJvdG90eXBlLnNsaWNlLGtfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vQV8pO3QubW92ZVRvKGUsMCksdC5hcmMoMCwwLGUsMCxOXyl9fSxDXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydChuLzUpLzI7dC5tb3ZlVG8oLTMqZSwtZSksdC5saW5lVG8oLWUsLWUpLHQubGluZVRvKC1lLC0zKmUpLHQubGluZVRvKGUsLTMqZSksdC5saW5lVG8oZSwtZSksdC5saW5lVG8oMyplLC1lKSx0LmxpbmVUbygzKmUsZSksdC5saW5lVG8oZSxlKSx0LmxpbmVUbyhlLDMqZSksdC5saW5lVG8oLWUsMyplKSx0LmxpbmVUbygtZSxlKSx0LmxpbmVUbygtMyplLGUpLHQuY2xvc2VQYXRoKCl9fSxQXz1NYXRoLnNxcnQoMS8zKSx6Xz0yKlBfLFJfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4vel8pLHI9ZSpQXzt0Lm1vdmVUbygwLC1lKSx0LmxpbmVUbyhyLDApLHQubGluZVRvKDAsZSksdC5saW5lVG8oLXIsMCksdC5jbG9zZVBhdGgoKX19LExfPU1hdGguc2luKEFfLzEwKS9NYXRoLnNpbig3KkFfLzEwKSxEXz1NYXRoLnNpbihOXy8xMCkqTF8sVV89LU1hdGguY29zKE5fLzEwKSpMXyxxXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPU1hdGguc3FydCguODkwODEzMDkxNTI5Mjg1MipuKSxyPURfKmUsaT1VXyplO3QubW92ZVRvKDAsLWUpLHQubGluZVRvKHIsaSk7Zm9yKHZhciBvPTE7bzw1Oysrbyl7dmFyIGE9Tl8qby81LHU9TWF0aC5jb3MoYSksZj1NYXRoLnNpbihhKTt0LmxpbmVUbyhmKmUsLXUqZSksdC5saW5lVG8odSpyLWYqaSxmKnIrdSppKX10LmNsb3NlUGF0aCgpfX0sT189e2RyYXc6ZnVuY3Rpb24odCxuKXt2YXIgZT1NYXRoLnNxcnQobikscj0tZS8yO3QucmVjdChyLHIsZSxlKX19LFlfPU1hdGguc3FydCgzKSxCXz17ZHJhdzpmdW5jdGlvbih0LG4pe3ZhciBlPS1NYXRoLnNxcnQobi8oMypZXykpO3QubW92ZVRvKDAsMiplKSx0LmxpbmVUbygtWV8qZSwtZSksdC5saW5lVG8oWV8qZSwtZSksdC5jbG9zZVBhdGgoKX19LEZfPU1hdGguc3FydCgzKS8yLElfPTEvTWF0aC5zcXJ0KDEyKSxqXz0zKihJXy8yKzEpLEhfPXtkcmF3OmZ1bmN0aW9uKHQsbil7dmFyIGU9TWF0aC5zcXJ0KG4val8pLHI9ZS8yLGk9ZSpJXyxvPXIsYT1lKklfK2UsdT0tbyxmPWE7dC5tb3ZlVG8ocixpKSx0LmxpbmVUbyhvLGEpLHQubGluZVRvKHUsZiksdC5saW5lVG8oLS41KnItRl8qaSxGXypyKy0uNSppKSx0LmxpbmVUbygtLjUqby1GXyphLEZfKm8rLS41KmEpLHQubGluZVRvKC0uNSp1LUZfKmYsRl8qdSstLjUqZiksdC5saW5lVG8oLS41KnIrRl8qaSwtLjUqaS1GXypyKSx0LmxpbmVUbygtLjUqbytGXyphLC0uNSphLUZfKm8pLHQubGluZVRvKC0uNSp1K0ZfKmYsLS41KmYtRl8qdSksdC5jbG9zZVBhdGgoKX19LFhfPVtrXyxDXyxSXyxPXyxxXyxCXyxIX107RmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMzpCZih0aGlzLHRoaXMuX3gxLHRoaXMuX3kxKTtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9jb250ZXh0LmxpbmVUbygoNSp0aGlzLl94MCt0aGlzLl94MSkvNiwoNSp0aGlzLl95MCt0aGlzLl95MSkvNik7ZGVmYXVsdDpCZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1ufX0sSWYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDIrMip0aGlzLl94MykvMywodGhpcy5feTIrMip0aGlzLl95MykvMyksdGhpcy5fY29udGV4dC5saW5lVG8oKHRoaXMuX3gzKzIqdGhpcy5feDIpLzMsKHRoaXMuX3kzKzIqdGhpcy5feTIpLzMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpLHRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpfX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mj10LHRoaXMuX3kyPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5feDM9dCx0aGlzLl95Mz1uO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX3g0PXQsdGhpcy5feTQ9bix0aGlzLl9jb250ZXh0Lm1vdmVUbygodGhpcy5feDArNCp0aGlzLl94MSt0KS82LCh0aGlzLl95MCs0KnRoaXMuX3kxK24pLzYpO2JyZWFrO2RlZmF1bHQ6QmYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bn19LGpmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zO3ZhciBlPSh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYscj0odGhpcy5feTArNCp0aGlzLl95MStuKS82O3RoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8oZSxyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyhlLHIpO2JyZWFrO2Nhc2UgMzp0aGlzLl9wb2ludD00O2RlZmF1bHQ6QmYodGhpcyx0LG4pfXRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9bn19LEhmLnByb3RvdHlwZT17bGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feD1bXSx0aGlzLl95PVtdLHRoaXMuX2Jhc2lzLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5feCxuPXRoaXMuX3ksZT10Lmxlbmd0aC0xO2lmKGU+MClmb3IodmFyIHIsaT10WzBdLG89blswXSxhPXRbZV0taSx1PW5bZV0tbyxmPS0xOysrZjw9ZTspcj1mL2UsdGhpcy5fYmFzaXMucG9pbnQodGhpcy5fYmV0YSp0W2ZdKygxLXRoaXMuX2JldGEpKihpK3IqYSksdGhpcy5fYmV0YSpuW2ZdKygxLXRoaXMuX2JldGEpKihvK3IqdSkpO3RoaXMuX3g9dGhpcy5feT1udWxsLHRoaXMuX2Jhc2lzLmxpbmVFbmQoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrbil9fTt2YXIgR189ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiAxPT09bj9uZXcgRmYodCk6bmV3IEhmKHQsbil9cmV0dXJuIGUuYmV0YT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC44NSk7R2YucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOlhmKHRoaXMsdGhpcy5feDEsdGhpcy5feTEpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94MT10LHRoaXMuX3kxPW47YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDpYZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIFZfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IEdmKHQsbil9cmV0dXJuIGUudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KDApO1ZmLnByb3RvdHlwZT17YXJlYVN0YXJ0OllmLGFyZWFFbmQ6WWYsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtzd2l0Y2godD0rdCxuPStuLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1uKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PW47YnJlYWs7ZGVmYXVsdDpYZih0aGlzLHQsbil9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyICRfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbmV3IFZmKHQsbil9cmV0dXJuIGUudGVuc2lvbj1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KDApOyRmLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYzPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OlhmKHRoaXMsdCxuKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPW59fTt2YXIgV189ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiBlKHQpe3JldHVybiBuZXcgJGYodCxuKX1yZXR1cm4gZS50ZW5zaW9uPWZ1bmN0aW9uKG4pe3JldHVybiB0KCtuKX0sZX0oMCk7WmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDIsdGhpcy5feTIpfSh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxuKXtpZih0PSt0LG49K24sdGhpcy5fcG9pbnQpe3ZhciBlPXRoaXMuX3gyLXQscj10aGlzLl95Mi1uO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3coZSplK3Iqcix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0LG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHQsbik7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7ZGVmYXVsdDpXZih0aGlzLHQsbil9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBaXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG4/bmV3IFpmKHQsbik6bmV3IEdmKHQsMCl9cmV0dXJuIGUuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguNSk7UWYucHJvdG90eXBlPXthcmVhU3RhcnQ6WWYsYXJlYUVuZDpZZixsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl94Mz10aGlzLl94ND10aGlzLl94NT10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj10aGlzLl95Mz10aGlzLl95ND10aGlzLl95NT1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAxOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gzLHRoaXMuX3kzKSx0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCksdGhpcy5wb2ludCh0aGlzLl94NSx0aGlzLl95NSl9fSxwb2ludDpmdW5jdGlvbih0LG4pe2lmKHQ9K3Qsbj0rbix0aGlzLl9wb2ludCl7dmFyIGU9dGhpcy5feDItdCxyPXRoaXMuX3kyLW47dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhlKmUrcipyLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPW47YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1uKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PW47YnJlYWs7ZGVmYXVsdDpXZih0aGlzLHQsbil9dGhpcy5fbDAxX2E9dGhpcy5fbDEyX2EsdGhpcy5fbDEyX2E9dGhpcy5fbDIzX2EsdGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYSx0aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhLHRoaXMuX3gwPXRoaXMuX3gxLHRoaXMuX3gxPXRoaXMuX3gyLHRoaXMuX3gyPXQsdGhpcy5feTA9dGhpcy5feTEsdGhpcy5feTE9dGhpcy5feTIsdGhpcy5feTI9bn19O3ZhciBRXz1mdW5jdGlvbiB0KG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIG4/bmV3IFFmKHQsbik6bmV3IFZmKHQsMCl9cmV0dXJuIGUuYWxwaGE9ZnVuY3Rpb24obil7cmV0dXJuIHQoK24pfSxlfSguNSk7SmYucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7aWYodD0rdCxuPStuLHRoaXMuX3BvaW50KXt2YXIgZT10aGlzLl94Mi10LHI9dGhpcy5feTItbjt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KGUqZStyKnIsdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0OldmKHRoaXMsdCxuKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1ufX07dmFyIEpfPWZ1bmN0aW9uIHQobil7ZnVuY3Rpb24gZSh0KXtyZXR1cm4gbj9uZXcgSmYodCxuKTpuZXcgJGYodCwwKX1yZXR1cm4gZS5hbHBoYT1mdW5jdGlvbihuKXtyZXR1cm4gdCgrbil9LGV9KC41KTtLZi5wcm90b3R5cGU9e2FyZWFTdGFydDpZZixhcmVhRW5kOllmLGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0PSt0LG49K24sdGhpcy5fcG9pbnQ/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKToodGhpcy5fcG9pbnQ9MSx0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pKX19LGljLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3QwPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpO2JyZWFrO2Nhc2UgMzpyYyh0aGlzLHRoaXMuX3QwLGVjKHRoaXMsdGhpcy5fdDApKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsbil7dmFyIGU9TmFOO2lmKHQ9K3Qsbj0rbix0IT09dGhpcy5feDF8fG4hPT10aGlzLl95MSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsbik6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxuKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MyxyYyh0aGlzLGVjKHRoaXMsZT1uYyh0aGlzLHQsbikpLGUpO2JyZWFrO2RlZmF1bHQ6cmModGhpcyx0aGlzLl90MCxlPW5jKHRoaXMsdCxuKSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1uLHRoaXMuX3QwPWV9fX0sKG9jLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGljLnByb3RvdHlwZSkpLnBvaW50PWZ1bmN0aW9uKHQsbil7aWMucHJvdG90eXBlLnBvaW50LmNhbGwodGhpcyxuLHQpfSxhYy5wcm90b3R5cGU9e21vdmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuX2NvbnRleHQubW92ZVRvKG4sdCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LGxpbmVUbzpmdW5jdGlvbih0LG4pe3RoaXMuX2NvbnRleHQubGluZVRvKG4sdCl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxuLGUscixpLG8pe3RoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhuLHQscixlLG8saSl9fSx1Yy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W119LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LG49dGhpcy5feSxlPXQubGVuZ3RoO2lmKGUpaWYodGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0WzBdLG5bMF0pOnRoaXMuX2NvbnRleHQubW92ZVRvKHRbMF0sblswXSksMj09PWUpdGhpcy5fY29udGV4dC5saW5lVG8odFsxXSxuWzFdKTtlbHNlIGZvcih2YXIgcj1mYyh0KSxpPWZjKG4pLG89MCxhPTE7YTxlOysrbywrK2EpdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHJbMF1bb10saVswXVtvXSxyWzFdW29dLGlbMV1bb10sdFthXSxuW2FdKTsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT1lKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSx0aGlzLl94PXRoaXMuX3k9bnVsbH0scG9pbnQ6ZnVuY3Rpb24odCxuKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrbil9fSxjYy5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PXRoaXMuX3k9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPHRoaXMuX3QmJnRoaXMuX3Q8MSYmMj09PXRoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHRoaXMuX3kpLCh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPj0wJiYodGhpcy5fdD0xLXRoaXMuX3QsdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUpfSxwb2ludDpmdW5jdGlvbih0LG4pe3N3aXRjaCh0PSt0LG49K24sdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxuKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LG4pO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LG4pLHRoaXMuX2NvbnRleHQubGluZVRvKHQsbik7ZWxzZXt2YXIgZT10aGlzLl94KigxLXRoaXMuX3QpK3QqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhlLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKGUsbil9fXRoaXMuX3g9dCx0aGlzLl95PW59fSxfYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOl9jLGluc2VydDpmdW5jdGlvbih0LG4pe3ZhciBlLHIsaTtpZih0KXtpZihuLlA9dCxuLk49dC5OLHQuTiYmKHQuTi5QPW4pLHQuTj1uLHQuUil7Zm9yKHQ9dC5SO3QuTDspdD10Lkw7dC5MPW59ZWxzZSB0LlI9bjtlPXR9ZWxzZSB0aGlzLl8/KHQ9d2ModGhpcy5fKSxuLlA9bnVsbCxuLk49dCx0LlA9dC5MPW4sZT10KToobi5QPW4uTj1udWxsLHRoaXMuXz1uLGU9bnVsbCk7Zm9yKG4uTD1uLlI9bnVsbCxuLlU9ZSxuLkM9ITAsdD1uO2UmJmUuQzspZT09PShyPWUuVSkuTD8oaT1yLlIpJiZpLkM/KGUuQz1pLkM9ITEsci5DPSEwLHQ9cik6KHQ9PT1lLlImJihtYyh0aGlzLGUpLGU9KHQ9ZSkuVSksZS5DPSExLHIuQz0hMCx4Yyh0aGlzLHIpKTooaT1yLkwpJiZpLkM/KGUuQz1pLkM9ITEsci5DPSEwLHQ9cik6KHQ9PT1lLkwmJih4Yyh0aGlzLGUpLGU9KHQ9ZSkuVSksZS5DPSExLHIuQz0hMCxtYyh0aGlzLHIpKSxlPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIG4sZSxyLGk9dC5VLG89dC5MLGE9dC5SO2lmKGU9bz9hP3djKGEpOm86YSxpP2kuTD09PXQ/aS5MPWU6aS5SPWU6dGhpcy5fPWUsbyYmYT8ocj1lLkMsZS5DPXQuQyxlLkw9byxvLlU9ZSxlIT09YT8oaT1lLlUsZS5VPXQuVSx0PWUuUixpLkw9dCxlLlI9YSxhLlU9ZSk6KGUuVT1pLGk9ZSx0PWUuUikpOihyPXQuQyx0PWUpLHQmJih0LlU9aSksIXIpaWYodCYmdC5DKXQuQz0hMTtlbHNle2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PWkuTCl7aWYoKG49aS5SKS5DJiYobi5DPSExLGkuQz0hMCxtYyh0aGlzLGkpLG49aS5SKSxuLkwmJm4uTC5DfHxuLlImJm4uUi5DKXtuLlImJm4uUi5DfHwobi5MLkM9ITEsbi5DPSEwLHhjKHRoaXMsbiksbj1pLlIpLG4uQz1pLkMsaS5DPW4uUi5DPSExLG1jKHRoaXMsaSksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoKG49aS5MKS5DJiYobi5DPSExLGkuQz0hMCx4Yyh0aGlzLGkpLG49aS5MKSxuLkwmJm4uTC5DfHxuLlImJm4uUi5DKXtuLkwmJm4uTC5DfHwobi5SLkM9ITEsbi5DPSEwLG1jKHRoaXMsbiksbj1pLkwpLG4uQz1pLkMsaS5DPW4uTC5DPSExLHhjKHRoaXMsaSksdD10aGlzLl87YnJlYWt9bi5DPSEwLHQ9aSxpPWkuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fTt2YXIgS18sdGIsbmIsZWIscmIsaWI9W10sb2I9W10sYWI9MWUtNix1Yj0xZS0xMjtCYy5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkJjLHBvbHlnb25zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5tYXAoZnVuY3Rpb24obil7dmFyIGU9bi5oYWxmZWRnZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBrYyhuLHRbZV0pfSk7cmV0dXJuIGUuZGF0YT1uLnNpdGUuZGF0YSxlfSl9LHRyaWFuZ2xlczpmdW5jdGlvbigpe3ZhciB0PVtdLG49dGhpcy5lZGdlcztyZXR1cm4gdGhpcy5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7aWYobz0oaT1lLmhhbGZlZGdlcykubGVuZ3RoKWZvcih2YXIgaSxvLGEsdT1lLnNpdGUsZj0tMSxjPW5baVtvLTFdXSxzPWMubGVmdD09PXU/Yy5yaWdodDpjLmxlZnQ7KytmPG87KWE9cyxzPShjPW5baVtmXV0pLmxlZnQ9PT11P2MucmlnaHQ6Yy5sZWZ0LGEmJnMmJnI8YS5pbmRleCYmcjxzLmluZGV4JiZPYyh1LGEscyk8MCYmdC5wdXNoKFt1LmRhdGEsYS5kYXRhLHMuZGF0YV0pfSksdH0sbGlua3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQucmlnaHR9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3NvdXJjZTp0LmxlZnQuZGF0YSx0YXJnZXQ6dC5yaWdodC5kYXRhfX0pfSxmaW5kOmZ1bmN0aW9uKHQsbixlKXtmb3IodmFyIHIsaSxvPXRoaXMsYT1vLl9mb3VuZHx8MCx1PW8uY2VsbHMubGVuZ3RoOyEoaT1vLmNlbGxzW2FdKTspaWYoKythPj11KXJldHVybiBudWxsO3ZhciBmPXQtaS5zaXRlWzBdLGM9bi1pLnNpdGVbMV0scz1mKmYrYypjO2Rve2k9by5jZWxsc1tyPWFdLGE9bnVsbCxpLmhhbGZlZGdlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW8uZWRnZXNbZV0sdT1yLmxlZnQ7aWYodSE9PWkuc2l0ZSYmdXx8KHU9ci5yaWdodCkpe3ZhciBmPXQtdVswXSxjPW4tdVsxXSxsPWYqZitjKmM7bDxzJiYocz1sLGE9dS5pbmRleCl9fSl9d2hpbGUobnVsbCE9PWEpO3JldHVybiBvLl9mb3VuZD1yLG51bGw9PWV8fHM8PWUqZT9pLnNpdGU6bnVsbH19LEljLnByb3RvdHlwZT17Y29uc3RydWN0b3I6SWMsc2NhbGU6ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10P3RoaXM6bmV3IEljKHRoaXMuayp0LHRoaXMueCx0aGlzLnkpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gMD09PXQmMD09PW4/dGhpczpuZXcgSWModGhpcy5rLHRoaXMueCt0aGlzLmsqdCx0aGlzLnkrdGhpcy5rKm4pfSxhcHBseTpmdW5jdGlvbih0KXtyZXR1cm5bdFswXSp0aGlzLmsrdGhpcy54LHRbMV0qdGhpcy5rK3RoaXMueV19LGFwcGx5WDpmdW5jdGlvbih0KXtyZXR1cm4gdCp0aGlzLmsrdGhpcy54fSxhcHBseVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQqdGhpcy5rK3RoaXMueX0saW52ZXJ0OmZ1bmN0aW9uKHQpe3JldHVyblsodFswXS10aGlzLngpL3RoaXMuaywodFsxXS10aGlzLnkpL3RoaXMua119LGludmVydFg6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy54KS90aGlzLmt9LGludmVydFk6ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy55KS90aGlzLmt9LHJlc2NhbGVYOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNvcHkoKS5kb21haW4odC5yYW5nZSgpLm1hcCh0aGlzLmludmVydFgsdGhpcykubWFwKHQuaW52ZXJ0LHQpKX0scmVzY2FsZVk6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29weSgpLmRvbWFpbih0LnJhbmdlKCkubWFwKHRoaXMuaW52ZXJ0WSx0aGlzKS5tYXAodC5pbnZlcnQsdCkpfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVyblwidHJhbnNsYXRlKFwiK3RoaXMueCtcIixcIit0aGlzLnkrXCIpIHNjYWxlKFwiK3RoaXMuaytcIilcIn19O3ZhciBmYj1uZXcgSWMoMSwwLDApO2pjLnByb3RvdHlwZT1JYy5wcm90b3R5cGUsdC52ZXJzaW9uPVwiNS41LjBcIix0LmJpc2VjdD1LYyx0LmJpc2VjdFJpZ2h0PUtjLHQuYmlzZWN0TGVmdD10cyx0LmFzY2VuZGluZz1uLHQuYmlzZWN0b3I9ZSx0LmNyb3NzPWZ1bmN0aW9uKHQsbixlKXt2YXIgaSxvLGEsdSxmPXQubGVuZ3RoLGM9bi5sZW5ndGgscz1uZXcgQXJyYXkoZipjKTtmb3IobnVsbD09ZSYmKGU9ciksaT1hPTA7aTxmOysraSlmb3IodT10W2ldLG89MDtvPGM7KytvLCsrYSlzW2FdPWUodSxuW29dKTtyZXR1cm4gc30sdC5kZXNjZW5kaW5nPWZ1bmN0aW9uKHQsbil7cmV0dXJuIG48dD8tMTpuPnQ/MTpuPj10PzA6TmFOfSx0LmRldmlhdGlvbj1hLHQuZXh0ZW50PXUsdC5oaXN0b2dyYW09ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBpLG8sYT10Lmxlbmd0aCx1PW5ldyBBcnJheShhKTtmb3IoaT0wO2k8YTsrK2kpdVtpXT1uKHRbaV0saSx0KTt2YXIgZj1lKHUpLGM9ZlswXSxsPWZbMV0saD1yKHUsYyxsKTtBcnJheS5pc0FycmF5KGgpfHwoaD1kKGMsbCxoKSxoPXMoTWF0aC5jZWlsKGMvaCkqaCxNYXRoLmZsb29yKGwvaCkqaCxoKSk7Zm9yKHZhciBwPWgubGVuZ3RoO2hbMF08PWM7KWguc2hpZnQoKSwtLXA7Zm9yKDtoW3AtMV0+bDspaC5wb3AoKSwtLXA7dmFyIHYsZz1uZXcgQXJyYXkocCsxKTtmb3IoaT0wO2k8PXA7KytpKSh2PWdbaV09W10pLngwPWk+MD9oW2ktMV06Yyx2LngxPWk8cD9oW2ldOmw7Zm9yKGk9MDtpPGE7KytpKWM8PShvPXVbaV0pJiZvPD1sJiZnW0tjKGgsbywwLHApXS5wdXNoKHRbaV0pO3JldHVybiBnfXZhciBuPWMsZT11LHI9cDtyZXR1cm4gdC52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6ZihlKSx0KTpufSx0LmRvbWFpbj1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246ZihbblswXSxuWzFdXSksdCk6ZX0sdC50aHJlc2hvbGRzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpBcnJheS5pc0FycmF5KG4pP2YoZXMuY2FsbChuKSk6ZihuKSx0KTpyfSx0fSx0LnRocmVzaG9sZEZyZWVkbWFuRGlhY29uaXM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PXJzLmNhbGwodCxpKS5zb3J0KG4pLE1hdGguY2VpbCgoci1lKS8oMioodih0LC43NSktdih0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU2NvdHQ9ZnVuY3Rpb24odCxuLGUpe3JldHVybiBNYXRoLmNlaWwoKGUtbikvKDMuNSphKHQpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU3R1cmdlcz1wLHQubWF4PWcsdC5tZWFuPWZ1bmN0aW9uKHQsbil7dmFyIGUscj10Lmxlbmd0aCxvPXIsYT0tMSx1PTA7aWYobnVsbD09bilmb3IoOysrYTxyOylpc05hTihlPWkodFthXSkpPy0tbzp1Kz1lO2Vsc2UgZm9yKDsrK2E8cjspaXNOYU4oZT1pKG4odFthXSxhLHQpKSk/LS1vOnUrPWU7aWYobylyZXR1cm4gdS9vfSx0Lm1lZGlhbj1mdW5jdGlvbih0LGUpe3ZhciByLG89dC5sZW5ndGgsYT0tMSx1PVtdO2lmKG51bGw9PWUpZm9yKDsrK2E8bzspaXNOYU4ocj1pKHRbYV0pKXx8dS5wdXNoKHIpO2Vsc2UgZm9yKDsrK2E8bzspaXNOYU4ocj1pKGUodFthXSxhLHQpKSl8fHUucHVzaChyKTtyZXR1cm4gdih1LnNvcnQobiksLjUpfSx0Lm1lcmdlPXksdC5taW49Xyx0LnBhaXJzPWZ1bmN0aW9uKHQsbil7bnVsbD09biYmKG49cik7Zm9yKHZhciBlPTAsaT10Lmxlbmd0aC0xLG89dFswXSxhPW5ldyBBcnJheShpPDA/MDppKTtlPGk7KWFbZV09bihvLG89dFsrK2VdKTtyZXR1cm4gYX0sdC5wZXJtdXRlPWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBlPW4ubGVuZ3RoLHI9bmV3IEFycmF5KGUpO2UtLTspcltlXT10W25bZV1dO3JldHVybiByfSx0LnF1YW50aWxlPXYsdC5yYW5nZT1zLHQuc2Nhbj1mdW5jdGlvbih0LGUpe2lmKHI9dC5sZW5ndGgpe3ZhciByLGksbz0wLGE9MCx1PXRbYV07Zm9yKG51bGw9PWUmJihlPW4pOysrbzxyOykoZShpPXRbb10sdSk8MHx8MCE9PWUodSx1KSkmJih1PWksYT1vKTtyZXR1cm4gMD09PWUodSx1KT9hOnZvaWQgMH19LHQuc2h1ZmZsZT1mdW5jdGlvbih0LG4sZSl7Zm9yKHZhciByLGksbz0obnVsbD09ZT90Lmxlbmd0aDplKS0obj1udWxsPT1uPzA6K24pO287KWk9TWF0aC5yYW5kb20oKSpvLS18MCxyPXRbbytuXSx0W28rbl09dFtpK25dLHRbaStuXT1yO3JldHVybiB0fSx0LnN1bT1mdW5jdGlvbih0LG4pe3ZhciBlLHI9dC5sZW5ndGgsaT0tMSxvPTA7aWYobnVsbD09bilmb3IoOysraTxyOykoZT0rdFtpXSkmJihvKz1lKTtlbHNlIGZvcig7KytpPHI7KShlPStuKHRbaV0saSx0KSkmJihvKz1lKTtyZXR1cm4gb30sdC50aWNrcz1sLHQudGlja0luY3JlbWVudD1oLHQudGlja1N0ZXA9ZCx0LnRyYW5zcG9zZT1iLHQudmFyaWFuY2U9byx0LnppcD1mdW5jdGlvbigpe3JldHVybiBiKGFyZ3VtZW50cyl9LHQuYXhpc1RvcD1mdW5jdGlvbih0KXtyZXR1cm4gVChmcyx0KX0sdC5heGlzUmlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIFQoY3MsdCl9LHQuYXhpc0JvdHRvbT1mdW5jdGlvbih0KXtyZXR1cm4gVChzcyx0KX0sdC5heGlzTGVmdD1mdW5jdGlvbih0KXtyZXR1cm4gVChscyx0KX0sdC5icnVzaD1mdW5jdGlvbigpe3JldHVybiBlZShiaCl9LHQuYnJ1c2hYPWZ1bmN0aW9uKCl7cmV0dXJuIGVlKHloKX0sdC5icnVzaFk9ZnVuY3Rpb24oKXtyZXR1cm4gZWUoX2gpfSx0LmJydXNoU2VsZWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBuPXQuX19icnVzaDtyZXR1cm4gbj9uLmRpbS5vdXRwdXQobi5zZWxlY3Rpb24pOm51bGx9LHQuY2hvcmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvLGEsdSxmLGMsbCxoPXQubGVuZ3RoLGQ9W10scD1zKGgpLHY9W10sZz1bXSx5PWcuZ3JvdXBzPW5ldyBBcnJheShoKSxfPW5ldyBBcnJheShoKmgpO2ZvcihvPTAsYz0tMTsrK2M8aDspe2ZvcihhPTAsbD0tMTsrK2w8aDspYSs9dFtjXVtsXTtkLnB1c2goYSksdi5wdXNoKHMoaCkpLG8rPWF9Zm9yKGUmJnAuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBlKGRbdF0sZFtuXSl9KSxyJiZ2LmZvckVhY2goZnVuY3Rpb24obixlKXtuLnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4gcih0W2VdW25dLHRbZV1baV0pfSl9KSxmPShvPUNoKDAsa2gtbipoKS9vKT9uOmtoL2gsYT0wLGM9LTE7KytjPGg7KXtmb3IodT1hLGw9LTE7KytsPGg7KXt2YXIgYj1wW2NdLG09dltiXVtsXSx4PXRbYl1bbV0sdz1hLE09YSs9eCpvO19bbSpoK2JdPXtpbmRleDpiLHN1YmluZGV4Om0sc3RhcnRBbmdsZTp3LGVuZEFuZ2xlOk0sdmFsdWU6eH19eVtiXT17aW5kZXg6YixzdGFydEFuZ2xlOnUsZW5kQW5nbGU6YSx2YWx1ZTpkW2JdfSxhKz1mfWZvcihjPS0xOysrYzxoOylmb3IobD1jLTE7KytsPGg7KXt2YXIgQT1fW2wqaCtjXSxUPV9bYypoK2xdOyhBLnZhbHVlfHxULnZhbHVlKSYmZy5wdXNoKEEudmFsdWU8VC52YWx1ZT97c291cmNlOlQsdGFyZ2V0OkF9Ontzb3VyY2U6QSx0YXJnZXQ6VH0pfXJldHVybiBpP2cuc29ydChpKTpnfXZhciBuPTAsZT1udWxsLHI9bnVsbCxpPW51bGw7cmV0dXJuIHQucGFkQW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Q2goMCxlKSx0KTpufSx0LnNvcnRHcm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix0KTplfSx0LnNvcnRTdWJncm91cHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bix0KTpyfSx0LnNvcnRDaG9yZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PW4/aT1udWxsOihpPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLGUpe3JldHVybiB0KG4uc291cmNlLnZhbHVlK24udGFyZ2V0LnZhbHVlLGUuc291cmNlLnZhbHVlK2UudGFyZ2V0LnZhbHVlKX19KG4pKS5fPW4sdCk6aSYmaS5ffSx0fSx0LnJpYmJvbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdCx1PVBoLmNhbGwoYXJndW1lbnRzKSxmPW4uYXBwbHkodGhpcyx1KSxjPWUuYXBwbHkodGhpcyx1KSxzPStyLmFwcGx5KHRoaXMsKHVbMF09Zix1KSksbD1pLmFwcGx5KHRoaXMsdSktRWgsaD1vLmFwcGx5KHRoaXMsdSktRWgsZD1zKlRoKGwpLHA9cypOaChsKSx2PStyLmFwcGx5KHRoaXMsKHVbMF09Yyx1KSksZz1pLmFwcGx5KHRoaXMsdSktRWgseT1vLmFwcGx5KHRoaXMsdSktRWg7aWYoYXx8KGE9dD1vZSgpKSxhLm1vdmVUbyhkLHApLGEuYXJjKDAsMCxzLGwsaCksbD09PWcmJmg9PT15fHwoYS5xdWFkcmF0aWNDdXJ2ZVRvKDAsMCx2KlRoKGcpLHYqTmgoZykpLGEuYXJjKDAsMCx2LGcseSkpLGEucXVhZHJhdGljQ3VydmVUbygwLDAsZCxwKSxhLmNsb3NlUGF0aCgpLHQpcmV0dXJuIGE9bnVsbCx0K1wiXCJ8fG51bGx9dmFyIG49YWUsZT11ZSxyPWZlLGk9Y2Usbz1zZSxhPW51bGw7cmV0dXJuIHQucmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6cn0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpyZSgrbiksdCk6aX0sdC5lbmRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246cmUoK24pLHQpOm99LHQuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC50YXJnZXQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9bix0KTplfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9bnVsbD09bj9udWxsOm4sdCk6YX0sdH0sdC5uZXN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChuLGksYSx1KXtpZihpPj1vLmxlbmd0aClyZXR1cm4gbnVsbCE9ZSYmbi5zb3J0KGUpLG51bGwhPXI/cihuKTpuO2Zvcih2YXIgZixjLHMsbD0tMSxoPW4ubGVuZ3RoLGQ9b1tpKytdLHA9aGUoKSx2PWEoKTsrK2w8aDspKHM9cC5nZXQoZj1kKGM9bltsXSkrXCJcIikpP3MucHVzaChjKTpwLnNldChmLFtjXSk7cmV0dXJuIHAuZWFjaChmdW5jdGlvbihuLGUpe3UodixlLHQobixpLGEsdSkpfSksdn1mdW5jdGlvbiBuKHQsZSl7aWYoKytlPm8ubGVuZ3RoKXJldHVybiB0O3ZhciBpLHU9YVtlLTFdO3JldHVybiBudWxsIT1yJiZlPj1vLmxlbmd0aD9pPXQuZW50cmllcygpOihpPVtdLHQuZWFjaChmdW5jdGlvbih0LHIpe2kucHVzaCh7a2V5OnIsdmFsdWVzOm4odCxlKX0pfSkpLG51bGwhPXU/aS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIHUodC5rZXksbi5rZXkpfSk6aX12YXIgZSxyLGksbz1bXSxhPVtdO3JldHVybiBpPXtvYmplY3Q6ZnVuY3Rpb24obil7cmV0dXJuIHQobiwwLGRlLHBlKX0sbWFwOmZ1bmN0aW9uKG4pe3JldHVybiB0KG4sMCx2ZSxnZSl9LGVudHJpZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIG4odChlLDAsdmUsZ2UpLDApfSxrZXk6ZnVuY3Rpb24odCl7cmV0dXJuIG8ucHVzaCh0KSxpfSxzb3J0S2V5czpmdW5jdGlvbih0KXtyZXR1cm4gYVtvLmxlbmd0aC0xXT10LGl9LHNvcnRWYWx1ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIGU9dCxpfSxyb2xsdXA6ZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxpfX19LHQuc2V0PV9lLHQubWFwPWhlLHQua2V5cz1mdW5jdGlvbih0KXt2YXIgbj1bXTtmb3IodmFyIGUgaW4gdCluLnB1c2goZSk7cmV0dXJuIG59LHQudmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaCh0W2VdKTtyZXR1cm4gbn0sdC5lbnRyaWVzPWZ1bmN0aW9uKHQpe3ZhciBuPVtdO2Zvcih2YXIgZSBpbiB0KW4ucHVzaCh7a2V5OmUsdmFsdWU6dFtlXX0pO3JldHVybiBufSx0LmNvbG9yPWt0LHQucmdiPVJ0LHQuaHNsPXF0LHQubGFiPUZ0LHQuaGNsPSR0LHQubGNoPWZ1bmN0aW9uKHQsbixlLHIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9WdCh0KTpuZXcgV3QoZSxuLHQsbnVsbD09cj8xOnIpfSx0LmdyYXk9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IEl0KHQsMCwwLG51bGw9PW4/MTpuKX0sdC5jdWJlaGVsaXg9WnQsdC5jb250b3Vycz1NZSx0LmNvbnRvdXJEZW5zaXR5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KHYqeSkscj1uZXcgRmxvYXQzMkFycmF5KHYqeSk7dC5mb3JFYWNoKGZ1bmN0aW9uKHQsbixyKXt2YXIgaT1hKHQsbixyKStwPj5oLG89dSh0LG4scikrcD4+aDtpPj0wJiZpPHYmJm8+PTAmJm88eSYmKytlW2krbyp2XX0pLEFlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSxsPj5oKSxUZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6ZX0sbD4+aCksQWUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOnJ9LGw+PmgpLFRlKHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0se3dpZHRoOnYsaGVpZ2h0OnksZGF0YTplfSxsPj5oKSxBZSh7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LHt3aWR0aDp2LGhlaWdodDp5LGRhdGE6cn0sbD4+aCksVGUoe3dpZHRoOnYsaGVpZ2h0OnksZGF0YTpyfSx7d2lkdGg6dixoZWlnaHQ6eSxkYXRhOmV9LGw+PmgpO3ZhciBpPV8oZSk7aWYoIUFycmF5LmlzQXJyYXkoaSkpe3ZhciBvPWcoZSk7aT1kKDAsbyxpKSwoaT1zKDAsTWF0aC5mbG9vcihvL2kpKmksaSkpLnNoaWZ0KCl9cmV0dXJuIE1lKCkudGhyZXNob2xkcyhpKS5zaXplKFt2LHldKShlKS5tYXAobil9ZnVuY3Rpb24gbih0KXtyZXR1cm4gdC52YWx1ZSo9TWF0aC5wb3coMiwtMipoKSx0LmNvb3JkaW5hdGVzLmZvckVhY2goZSksdH1mdW5jdGlvbiBlKHQpe3QuZm9yRWFjaChyKX1mdW5jdGlvbiByKHQpe3QuZm9yRWFjaChpKX1mdW5jdGlvbiBpKHQpe3RbMF09dFswXSpNYXRoLnBvdygyLGgpLXAsdFsxXT10WzFdKk1hdGgucG93KDIsaCktcH1mdW5jdGlvbiBvKCl7cmV0dXJuIHA9MypsLHY9ZisyKnA+PmgseT1jKzIqcD4+aCx0fXZhciBhPU5lLHU9U2UsZj05NjAsYz01MDAsbD0yMCxoPTIscD0zKmwsdj1mKzIqcD4+aCx5PWMrMipwPj5oLF89bWUoMjApO3JldHVybiB0Lng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOm1lKCtuKSx0KTphfSx0Lnk9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOm1lKCtuKSx0KTp1fSx0LnNpemU9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuW2YsY107dmFyIG49TWF0aC5jZWlsKHRbMF0pLGU9TWF0aC5jZWlsKHRbMV0pO2lmKCEobj49MHx8bj49MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBzaXplXCIpO3JldHVybiBmPW4sYz1lLG8oKX0sdC5jZWxsU2l6ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gMTw8aDtpZighKCh0PSt0KT49MSkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBjZWxsIHNpemVcIik7cmV0dXJuIGg9TWF0aC5mbG9vcihNYXRoLmxvZyh0KS9NYXRoLkxOMiksbygpfSx0LnRocmVzaG9sZHM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOkFycmF5LmlzQXJyYXkobik/bWUoVWguY2FsbChuKSk6bWUobiksdCk6X30sdC5iYW5kd2lkdGg9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIE1hdGguc3FydChsKihsKzEpKTtpZighKCh0PSt0KT49MCkpdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBiYW5kd2lkdGhcIik7cmV0dXJuIGw9TWF0aC5yb3VuZCgoTWF0aC5zcXJ0KDQqdCp0KzEpLTEpLzIpLG8oKX0sdH0sdC5kaXNwYXRjaD1OLHQuZHJhZz1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7dC5vbihcIm1vdXNlZG93bi5kcmFnXCIsZSkuZmlsdGVyKGcpLm9uKFwidG91Y2hzdGFydC5kcmFnXCIsbykub24oXCJ0b3VjaG1vdmUuZHJhZ1wiLGEpLm9uKFwidG91Y2hlbmQuZHJhZyB0b3VjaGNhbmNlbC5kcmFnXCIsdSkuc3R5bGUoXCJ0b3VjaC1hY3Rpb25cIixcIm5vbmVcIikuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIixcInJnYmEoMCwwLDAsMClcIil9ZnVuY3Rpb24gZSgpe2lmKCFoJiZkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIG49ZihcIm1vdXNlXCIscC5hcHBseSh0aGlzLGFyZ3VtZW50cykscHQsdGhpcyxhcmd1bWVudHMpO24mJihjdCh0LmV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLmRyYWdcIixyLCEwKS5vbihcIm1vdXNldXAuZHJhZ1wiLGksITApLF90KHQuZXZlbnQudmlldyksZ3QoKSxsPSExLGM9dC5ldmVudC5jbGllbnRYLHM9dC5ldmVudC5jbGllbnRZLG4oXCJzdGFydFwiKSl9fWZ1bmN0aW9uIHIoKXtpZih5dCgpLCFsKXt2YXIgbj10LmV2ZW50LmNsaWVudFgtYyxlPXQuZXZlbnQuY2xpZW50WS1zO2w9bipuK2UqZT5tfXkubW91c2UoXCJkcmFnXCIpfWZ1bmN0aW9uIGkoKXtjdCh0LmV2ZW50LnZpZXcpLm9uKFwibW91c2Vtb3ZlLmRyYWcgbW91c2V1cC5kcmFnXCIsbnVsbCksYnQodC5ldmVudC52aWV3LGwpLHl0KCkseS5tb3VzZShcImVuZFwiKX1mdW5jdGlvbiBvKCl7aWYoZC5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBuLGUscj10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9cC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbz1yLmxlbmd0aDtmb3Iobj0wO248bzsrK24pKGU9ZihyW25dLmlkZW50aWZpZXIsaSx2dCx0aGlzLGFyZ3VtZW50cykpJiYoZ3QoKSxlKFwic3RhcnRcIikpfX1mdW5jdGlvbiBhKCl7dmFyIG4sZSxyPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsaT1yLmxlbmd0aDtmb3Iobj0wO248aTsrK24pKGU9eVtyW25dLmlkZW50aWZpZXJdKSYmKHl0KCksZShcImRyYWdcIikpfWZ1bmN0aW9uIHUoKXt2YXIgbixlLHI9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxpPXIubGVuZ3RoO2ZvcihoJiZjbGVhclRpbWVvdXQoaCksaD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aD1udWxsfSw1MDApLG49MDtuPGk7KytuKShlPXlbcltuXS5pZGVudGlmaWVyXSkmJihndCgpLGUoXCJlbmRcIikpfWZ1bmN0aW9uIGYoZSxyLGksbyxhKXt2YXIgdSxmLGMscz1pKHIsZSksbD1fLmNvcHkoKTtpZihvdChuZXcgeHQobixcImJlZm9yZXN0YXJ0XCIsdSxlLGIsc1swXSxzWzFdLDAsMCxsKSxmdW5jdGlvbigpe3JldHVybiBudWxsIT0odC5ldmVudC5zdWJqZWN0PXU9di5hcHBseShvLGEpKSYmKGY9dS54LXNbMF18fDAsYz11Lnktc1sxXXx8MCwhMCl9KSlyZXR1cm4gZnVuY3Rpb24gdChoKXt2YXIgZCxwPXM7c3dpdGNoKGgpe2Nhc2VcInN0YXJ0XCI6eVtlXT10LGQ9YisrO2JyZWFrO2Nhc2VcImVuZFwiOmRlbGV0ZSB5W2VdLC0tYjtjYXNlXCJkcmFnXCI6cz1pKHIsZSksZD1ifW90KG5ldyB4dChuLGgsdSxlLGQsc1swXStmLHNbMV0rYyxzWzBdLXBbMF0sc1sxXS1wWzFdLGwpLGwuYXBwbHksbCxbaCxvLGFdKX19dmFyIGMscyxsLGgsZD13dCxwPU10LHY9QXQsZz1UdCx5PXt9LF89TihcInN0YXJ0XCIsXCJkcmFnXCIsXCJlbmRcIiksYj0wLG09MDtyZXR1cm4gbi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KCEhdCksbik6ZH0sbi5jb250YWluZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KHQpLG4pOnB9LG4uc3ViamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6bXQodCksbik6dn0sbi50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90Om10KCEhdCksbik6Z30sbi5vbj1mdW5jdGlvbigpe3ZhciB0PV8ub24uYXBwbHkoXyxhcmd1bWVudHMpO3JldHVybiB0PT09Xz9uOnR9LG4uY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obT0odD0rdCkqdCxuKTpNYXRoLnNxcnQobSl9LG59LHQuZHJhZ0Rpc2FibGU9X3QsdC5kcmFnRW5hYmxlPWJ0LHQuZHN2Rm9ybWF0PWtlLHQuY3N2UGFyc2U9SGgsdC5jc3ZQYXJzZVJvd3M9WGgsdC5jc3ZGb3JtYXQ9R2gsdC5jc3ZGb3JtYXRSb3dzPVZoLHQudHN2UGFyc2U9V2gsdC50c3ZQYXJzZVJvd3M9WmgsdC50c3ZGb3JtYXQ9UWgsdC50c3ZGb3JtYXRSb3dzPUpoLHQuZWFzZUxpbmVhcj1mdW5jdGlvbih0KXtyZXR1cm4rdH0sdC5lYXNlUXVhZD1Gbix0LmVhc2VRdWFkSW49ZnVuY3Rpb24odCl7cmV0dXJuIHQqdH0sdC5lYXNlUXVhZE91dD1mdW5jdGlvbih0KXtyZXR1cm4gdCooMi10KX0sdC5lYXNlUXVhZEluT3V0PUZuLHQuZWFzZUN1YmljPUluLHQuZWFzZUN1YmljSW49ZnVuY3Rpb24odCl7cmV0dXJuIHQqdCp0fSx0LmVhc2VDdWJpY091dD1mdW5jdGlvbih0KXtyZXR1cm4tLXQqdCp0KzF9LHQuZWFzZUN1YmljSW5PdXQ9SW4sdC5lYXNlUG9seT1YbCx0LmVhc2VQb2x5SW49amwsdC5lYXNlUG9seU91dD1IbCx0LmVhc2VQb2x5SW5PdXQ9WGwsdC5lYXNlU2luPWpuLHQuZWFzZVNpbkluPWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguY29zKHQqVmwpfSx0LmVhc2VTaW5PdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc2luKHQqVmwpfSx0LmVhc2VTaW5Jbk91dD1qbix0LmVhc2VFeHA9SG4sdC5lYXNlRXhwSW49ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KDIsMTAqdC0xMCl9LHQuZWFzZUV4cE91dD1mdW5jdGlvbih0KXtyZXR1cm4gMS1NYXRoLnBvdygyLC0xMCp0KX0sdC5lYXNlRXhwSW5PdXQ9SG4sdC5lYXNlQ2lyY2xlPVhuLHQuZWFzZUNpcmNsZUluPWZ1bmN0aW9uKHQpe3JldHVybiAxLU1hdGguc3FydCgxLXQqdCl9LHQuZWFzZUNpcmNsZU91dD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KDEtIC0tdCp0KX0sdC5lYXNlQ2lyY2xlSW5PdXQ9WG4sdC5lYXNlQm91bmNlPUduLHQuZWFzZUJvdW5jZUluPWZ1bmN0aW9uKHQpe3JldHVybiAxLUduKDEtdCl9LHQuZWFzZUJvdW5jZU91dD1Hbix0LmVhc2VCb3VuY2VJbk91dD1mdW5jdGlvbih0KXtyZXR1cm4oKHQqPTIpPD0xPzEtR24oMS10KTpHbih0LTEpKzEpLzJ9LHQuZWFzZUJhY2s9YWgsdC5lYXNlQmFja0luPWloLHQuZWFzZUJhY2tPdXQ9b2gsdC5lYXNlQmFja0luT3V0PWFoLHQuZWFzZUVsYXN0aWM9Y2gsdC5lYXNlRWxhc3RpY0luPWZoLHQuZWFzZUVsYXN0aWNPdXQ9Y2gsdC5lYXNlRWxhc3RpY0luT3V0PXNoLHQuYmxvYj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oQ2UpfSx0LmJ1ZmZlcj1mdW5jdGlvbih0LG4pe3JldHVybiBmZXRjaCh0LG4pLnRoZW4oUGUpfSx0LmRzdj1mdW5jdGlvbih0LG4sZSxyKXszPT09YXJndW1lbnRzLmxlbmd0aCYmXCJmdW5jdGlvblwiPT10eXBlb2YgZSYmKHI9ZSxlPXZvaWQgMCk7dmFyIGk9a2UodCk7cmV0dXJuIFJlKG4sZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gaS5wYXJzZSh0LHIpfSl9LHQuY3N2PUtoLHQudHN2PXRkLHQuaW1hZ2U9ZnVuY3Rpb24odCxuKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxyKXt2YXIgaT1uZXcgSW1hZ2U7Zm9yKHZhciBvIGluIG4paVtvXT1uW29dO2kub25lcnJvcj1yLGkub25sb2FkPWZ1bmN0aW9uKCl7ZShpKX0saS5zcmM9dH0pfSx0Lmpzb249ZnVuY3Rpb24odCxuKXtyZXR1cm4gZmV0Y2godCxuKS50aGVuKERlKX0sdC50ZXh0PVJlLHQueG1sPW5kLHQuaHRtbD1lZCx0LnN2Zz1yZCx0LmZvcmNlQ2VudGVyPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gZSgpe3ZhciBlLGksbz1yLmxlbmd0aCxhPTAsdT0wO2ZvcihlPTA7ZTxvOysrZSlhKz0oaT1yW2VdKS54LHUrPWkueTtmb3IoYT1hL28tdCx1PXUvby1uLGU9MDtlPG87KytlKShpPXJbZV0pLngtPWEsaS55LT11fXZhciByO3JldHVybiBudWxsPT10JiYodD0wKSxudWxsPT1uJiYobj0wKSxlLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10fSxlLng9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K24sZSk6dH0sZS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LGUpOm59LGV9LHQuZm9yY2VDb2xsaWRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4oKXtmb3IodmFyIHQsbixyLGYsYyxzLGwsaD1pLmxlbmd0aCxkPTA7ZDx1OysrZClmb3Iobj1qZShpLEdlLFZlKS52aXNpdEFmdGVyKGUpLHQ9MDt0PGg7Kyt0KXI9aVt0XSxzPW9bci5pbmRleF0sbD1zKnMsZj1yLngrci52eCxjPXIueStyLnZ5LG4udmlzaXQoZnVuY3Rpb24odCxuLGUsaSxvKXt2YXIgdT10LmRhdGEsaD10LnIsZD1zK2g7aWYoIXUpcmV0dXJuIG4+ZitkfHxpPGYtZHx8ZT5jK2R8fG88Yy1kO2lmKHUuaW5kZXg+ci5pbmRleCl7dmFyIHA9Zi11LngtdS52eCx2PWMtdS55LXUudnksZz1wKnArdip2O2c8ZCpkJiYoMD09PXAmJihwPU9lKCksZys9cCpwKSwwPT09diYmKHY9T2UoKSxnKz12KnYpLGc9KGQtKGc9TWF0aC5zcXJ0KGcpKSkvZyphLHIudngrPShwKj1nKSooZD0oaCo9aCkvKGwraCkpLHIudnkrPSh2Kj1nKSpkLHUudngtPXAqKGQ9MS1kKSx1LnZ5LT12KmQpfX0pfWZ1bmN0aW9uIGUodCl7aWYodC5kYXRhKXJldHVybiB0LnI9b1t0LmRhdGEuaW5kZXhdO2Zvcih2YXIgbj10LnI9MDtuPDQ7KytuKXRbbl0mJnRbbl0ucj50LnImJih0LnI9dFtuXS5yKX1mdW5jdGlvbiByKCl7aWYoaSl7dmFyIG4sZSxyPWkubGVuZ3RoO2ZvcihvPW5ldyBBcnJheShyKSxuPTA7bjxyOysrbillPWlbbl0sb1tlLmluZGV4XT0rdChlLG4saSl9fXZhciBpLG8sYT0xLHU9MTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzE6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LHIoKX0sbi5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LG4pOnV9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K3Qsbik6YX0sbi5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOnFlKCtlKSxyKCksbik6dH0sbn0sdC5mb3JjZUxpbms9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihuKXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoO2U8ZDsrK2UpZm9yKHZhciBpLHUsZixzLGwsaCxwLHY9MDt2PHI7Kyt2KXU9KGk9dFt2XSkuc291cmNlLHM9KGY9aS50YXJnZXQpLngrZi52eC11LngtdS52eHx8T2UoKSxsPWYueStmLnZ5LXUueS11LnZ5fHxPZSgpLHMqPWg9KChoPU1hdGguc3FydChzKnMrbCpsKSktYVt2XSkvaCpuKm9bdl0sbCo9aCxmLnZ4LT1zKihwPWNbdl0pLGYudnktPWwqcCx1LnZ4Kz1zKihwPTEtcCksdS52eSs9bCpwfWZ1bmN0aW9uIGUoKXtpZih1KXt2YXIgbixlLGw9dS5sZW5ndGgsaD10Lmxlbmd0aCxkPWhlKHUscyk7Zm9yKG49MCxmPW5ldyBBcnJheShsKTtuPGg7KytuKShlPXRbbl0pLmluZGV4PW4sXCJvYmplY3RcIiE9dHlwZW9mIGUuc291cmNlJiYoZS5zb3VyY2U9V2UoZCxlLnNvdXJjZSkpLFwib2JqZWN0XCIhPXR5cGVvZiBlLnRhcmdldCYmKGUudGFyZ2V0PVdlKGQsZS50YXJnZXQpKSxmW2Uuc291cmNlLmluZGV4XT0oZltlLnNvdXJjZS5pbmRleF18fDApKzEsZltlLnRhcmdldC5pbmRleF09KGZbZS50YXJnZXQuaW5kZXhdfHwwKSsxO2ZvcihuPTAsYz1uZXcgQXJyYXkoaCk7bjxoOysrbillPXRbbl0sY1tuXT1mW2Uuc291cmNlLmluZGV4XS8oZltlLnNvdXJjZS5pbmRleF0rZltlLnRhcmdldC5pbmRleF0pO289bmV3IEFycmF5KGgpLHIoKSxhPW5ldyBBcnJheShoKSxpKCl9fWZ1bmN0aW9uIHIoKXtpZih1KWZvcih2YXIgbj0wLGU9dC5sZW5ndGg7bjxlOysrbilvW25dPStsKHRbbl0sbix0KX1mdW5jdGlvbiBpKCl7aWYodSlmb3IodmFyIG49MCxlPXQubGVuZ3RoO248ZTsrK24pYVtuXT0raCh0W25dLG4sdCl9dmFyIG8sYSx1LGYsYyxzPSRlLGw9ZnVuY3Rpb24odCl7cmV0dXJuIDEvTWF0aC5taW4oZlt0LnNvdXJjZS5pbmRleF0sZlt0LnRhcmdldC5pbmRleF0pfSxoPXFlKDMwKSxkPTE7cmV0dXJuIG51bGw9PXQmJih0PVtdKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7dT10LGUoKX0sbi5saW5rcz1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1yLGUoKSxuKTp0fSxuLmlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsbik6c30sbi5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0LG4pOmR9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxyKCksbik6bH0sbi5kaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGkoKSxuKTpofSxufSx0LmZvcmNlTWFueUJvZHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBuLHU9aS5sZW5ndGgsZj1qZShpLFplLFFlKS52aXNpdEFmdGVyKGUpO2ZvcihhPXQsbj0wO248dTsrK24pbz1pW25dLGYudmlzaXQocil9ZnVuY3Rpb24gbigpe2lmKGkpe3ZhciB0LG4sZT1pLmxlbmd0aDtmb3IodT1uZXcgQXJyYXkoZSksdD0wO3Q8ZTsrK3Qpbj1pW3RdLHVbbi5pbmRleF09K2Yobix0LGkpfX1mdW5jdGlvbiBlKHQpe3ZhciBuLGUscixpLG8sYT0wLGY9MDtpZih0Lmxlbmd0aCl7Zm9yKHI9aT1vPTA7bzw0Oysrbykobj10W29dKSYmKGU9TWF0aC5hYnMobi52YWx1ZSkpJiYoYSs9bi52YWx1ZSxmKz1lLHIrPWUqbi54LGkrPWUqbi55KTt0Lng9ci9mLHQueT1pL2Z9ZWxzZXsobj10KS54PW4uZGF0YS54LG4ueT1uLmRhdGEueTtkb3thKz11W24uZGF0YS5pbmRleF19d2hpbGUobj1uLm5leHQpfXQudmFsdWU9YX1mdW5jdGlvbiByKHQsbixlLHIpe2lmKCF0LnZhbHVlKXJldHVybiEwO3ZhciBpPXQueC1vLngsZj10Lnktby55LGg9ci1uLGQ9aSppK2YqZjtpZihoKmgvbDxkKXJldHVybiBkPHMmJigwPT09aSYmKGk9T2UoKSxkKz1pKmkpLDA9PT1mJiYoZj1PZSgpLGQrPWYqZiksZDxjJiYoZD1NYXRoLnNxcnQoYypkKSksby52eCs9aSp0LnZhbHVlKmEvZCxvLnZ5Kz1mKnQudmFsdWUqYS9kKSwhMDtpZighKHQubGVuZ3RofHxkPj1zKSl7KHQuZGF0YSE9PW98fHQubmV4dCkmJigwPT09aSYmKGk9T2UoKSxkKz1pKmkpLDA9PT1mJiYoZj1PZSgpLGQrPWYqZiksZDxjJiYoZD1NYXRoLnNxcnQoYypkKSkpO2Rve3QuZGF0YSE9PW8mJihoPXVbdC5kYXRhLmluZGV4XSphL2Qsby52eCs9aSpoLG8udnkrPWYqaCl9d2hpbGUodD10Lm5leHQpfX12YXIgaSxvLGEsdSxmPXFlKC0zMCksYz0xLHM9MS8wLGw9LjgxO3JldHVybiB0LmluaXRpYWxpemU9ZnVuY3Rpb24odCl7aT10LG4oKX0sdC5zdHJlbmd0aD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6cWUoK2UpLG4oKSx0KTpmfSx0LmRpc3RhbmNlTWluPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPW4qbix0KTpNYXRoLnNxcnQoYyl9LHQuZGlzdGFuY2VNYXg9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9bipuLHQpOk1hdGguc3FydChzKX0sdC50aGV0YT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1uKm4sdCk6TWF0aC5zcXJ0KGwpfSx0fSx0LmZvcmNlUmFkaWFsPWZ1bmN0aW9uKHQsbixlKXtmdW5jdGlvbiByKHQpe2Zvcih2YXIgcj0wLGk9by5sZW5ndGg7cjxpOysrcil7dmFyIGY9b1tyXSxjPWYueC1ufHwxZS02LHM9Zi55LWV8fDFlLTYsbD1NYXRoLnNxcnQoYypjK3MqcyksaD0odVtyXS1sKSphW3JdKnQvbDtmLnZ4Kz1jKmgsZi52eSs9cypofX1mdW5jdGlvbiBpKCl7aWYobyl7dmFyIG4sZT1vLmxlbmd0aDtmb3IoYT1uZXcgQXJyYXkoZSksdT1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pdVtuXT0rdChvW25dLG4sbyksYVtuXT1pc05hTih1W25dKT8wOitmKG9bbl0sbixvKX19dmFyIG8sYSx1LGY9cWUoLjEpO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJih0PXFlKCt0KSksbnVsbD09biYmKG49MCksbnVsbD09ZSYmKGU9MCksci5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe289dCxpKCl9LHIuc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxpKCkscik6Zn0sci5yYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOnFlKCtuKSxpKCkscik6dH0sci54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSt0LHIpOm59LHIueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdCxyKTplfSxyfSx0LmZvcmNlU2ltdWxhdGlvbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKCl7ZSgpLGQuY2FsbChcInRpY2tcIixvKSxhPHUmJihoLnN0b3AoKSxkLmNhbGwoXCJlbmRcIixvKSl9ZnVuY3Rpb24gZSgpe3ZhciBuLGUscj10Lmxlbmd0aDtmb3IoYSs9KGMtYSkqZixsLmVhY2goZnVuY3Rpb24odCl7dChhKX0pLG49MDtuPHI7KytuKW51bGw9PShlPXRbbl0pLmZ4P2UueCs9ZS52eCo9czooZS54PWUuZngsZS52eD0wKSxudWxsPT1lLmZ5P2UueSs9ZS52eSo9czooZS55PWUuZnksZS52eT0wKX1mdW5jdGlvbiByKCl7Zm9yKHZhciBuLGU9MCxyPXQubGVuZ3RoO2U8cjsrK2Upe2lmKG49dFtlXSxuLmluZGV4PWUsaXNOYU4obi54KXx8aXNOYU4obi55KSl7dmFyIGk9b2QqTWF0aC5zcXJ0KGUpLG89ZSphZDtuLng9aSpNYXRoLmNvcyhvKSxuLnk9aSpNYXRoLnNpbihvKX0oaXNOYU4obi52eCl8fGlzTmFOKG4udnkpKSYmKG4udng9bi52eT0wKX19ZnVuY3Rpb24gaShuKXtyZXR1cm4gbi5pbml0aWFsaXplJiZuLmluaXRpYWxpemUodCksbn12YXIgbyxhPTEsdT0uMDAxLGY9MS1NYXRoLnBvdyh1LDEvMzAwKSxjPTAscz0uNixsPWhlKCksaD1UbihuKSxkPU4oXCJ0aWNrXCIsXCJlbmRcIik7cmV0dXJuIG51bGw9PXQmJih0PVtdKSxyKCksbz17dGljazplLHJlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZXN0YXJ0KG4pLG99LHN0b3A6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zdG9wKCksb30sbm9kZXM6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9bixyKCksbC5lYWNoKGkpLG8pOnR9LGFscGhhOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LG8pOmF9LGFscGhhTWluOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LG8pOnV9LGFscGhhRGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9K3Qsbyk6K2Z9LGFscGhhVGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPSt0LG8pOmN9LHZlbG9jaXR5RGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9MS10LG8pOjEtc30sZm9yY2U6ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhudWxsPT1uP2wucmVtb3ZlKHQpOmwuc2V0KHQsaShuKSksbyk6bC5nZXQodCl9LGZpbmQ6ZnVuY3Rpb24obixlLHIpe3ZhciBpLG8sYSx1LGYsYz0wLHM9dC5sZW5ndGg7Zm9yKG51bGw9PXI/cj0xLzA6cio9cixjPTA7YzxzOysrYykoYT0oaT1uLSh1PXRbY10pLngpKmkrKG89ZS11LnkpKm8pPHImJihmPXUscj1hKTtyZXR1cm4gZn0sb246ZnVuY3Rpb24odCxuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhkLm9uKHQsbiksbyk6ZC5vbih0KX19fSx0LmZvcmNlWD1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgbixlPTAsYT1yLmxlbmd0aDtlPGE7KytlKShuPXJbZV0pLnZ4Kz0ob1tlXS1uLngpKmlbZV0qdH1mdW5jdGlvbiBlKCl7aWYocil7dmFyIG4sZT1yLmxlbmd0aDtmb3IoaT1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24paVtuXT1pc05hTihvW25dPSt0KHJbbl0sbixyKSk/MDorYShyW25dLG4scil9fXZhciByLGksbyxhPXFlKC4xKTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0JiYodD1xZShudWxsPT10PzA6K3QpKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10LGUoKX0sbi5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6cWUoK3QpLGUoKSxuKTphfSxuLng9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOnFlKCtyKSxlKCksbik6dH0sbn0sdC5mb3JjZVk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbih0KXtmb3IodmFyIG4sZT0wLGE9ci5sZW5ndGg7ZTxhOysrZSkobj1yW2VdKS52eSs9KG9bZV0tbi55KSppW2VdKnR9ZnVuY3Rpb24gZSgpe2lmKHIpe3ZhciBuLGU9ci5sZW5ndGg7Zm9yKGk9bmV3IEFycmF5KGUpLG89bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKWlbbl09aXNOYU4ob1tuXT0rdChyW25dLG4scikpPzA6K2EocltuXSxuLHIpfX12YXIgcixpLG8sYT1xZSguMSk7cmV0dXJuXCJmdW5jdGlvblwiIT10eXBlb2YgdCYmKHQ9cWUobnVsbD09dD8wOit0KSksbi5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe3I9dCxlKCl9LG4uc3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OnFlKCt0KSxlKCksbik6YX0sbi55PWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PVwiZnVuY3Rpb25cIj09dHlwZW9mIHI/cjpxZSgrciksZSgpLG4pOnR9LG59LHQuZm9ybWF0RGVmYXVsdExvY2FsZT1vcix0LmZvcm1hdExvY2FsZT1pcix0LmZvcm1hdFNwZWNpZmllcj10cix0LnByZWNpc2lvbkZpeGVkPWFyLHQucHJlY2lzaW9uUHJlZml4PXVyLHQucHJlY2lzaW9uUm91bmQ9ZnIsdC5nZW9BcmVhPWZ1bmN0aW9uKHQpe3JldHVybiBkcC5yZXNldCgpLGJyKHQscHApLDIqZHB9LHQuZ2VvQm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBuLGUscixpLG8sYSx1O2lmKG1kPWJkPS0oeWQ9X2Q9MS8wKSxUZD1bXSxicih0LGdwKSxlPVRkLmxlbmd0aCl7Zm9yKFRkLnNvcnQoWXIpLG49MSxvPVtyPVRkWzBdXTtuPGU7KytuKUJyKHIsKGk9VGRbbl0pWzBdKXx8QnIocixpWzFdKT8oT3IoclswXSxpWzFdKT5PcihyWzBdLHJbMV0pJiYoclsxXT1pWzFdKSxPcihpWzBdLHJbMV0pPk9yKHJbMF0sclsxXSkmJihyWzBdPWlbMF0pKTpvLnB1c2gocj1pKTtmb3IoYT0tMS8wLG49MCxyPW9bZT1vLmxlbmd0aC0xXTtuPD1lO3I9aSwrK24paT1vW25dLCh1PU9yKHJbMV0saVswXSkpPmEmJihhPXUseWQ9aVswXSxiZD1yWzFdKX1yZXR1cm4gVGQ9TmQ9bnVsbCx5ZD09PTEvMHx8X2Q9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbeWQsX2RdLFtiZCxtZF1dfSx0Lmdlb0NlbnRyb2lkPWZ1bmN0aW9uKHQpe1NkPUVkPWtkPUNkPVBkPXpkPVJkPUxkPURkPVVkPXFkPTAsYnIodCx5cCk7dmFyIG49RGQsZT1VZCxyPXFkLGk9bipuK2UqZStyKnI7cmV0dXJuIGk8WGQmJihuPXpkLGU9UmQscj1MZCxFZDxIZCYmKG49a2QsZT1DZCxyPVBkKSwoaT1uKm4rZSplK3Iqcik8WGQpP1tOYU4sTmFOXTpbdHAoZSxuKSpaZCxkcihyL2ZwKGkpKSpaZF19LHQuZ2VvQ2lyY2xlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLHU9aS5hcHBseSh0aGlzLGFyZ3VtZW50cykqUWQsZj1vLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpRZDtyZXR1cm4gbj1bXSxlPXRpKC10WzBdKlFkLC10WzFdKlFkLDApLmludmVydCxvaShhLHUsZiwxKSx0PXt0eXBlOlwiUG9seWdvblwiLGNvb3JkaW5hdGVzOltuXX0sbj1lPW51bGwsdH12YXIgbixlLHI9UXIoWzAsMF0pLGk9UXIoOTApLG89UXIoNiksYT17cG9pbnQ6ZnVuY3Rpb24odCxyKXtuLnB1c2godD1lKHQscikpLHRbMF0qPVpkLHRbMV0qPVpkfX07cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcihbK25bMF0sK25bMV1dKSx0KTpyfSx0LnJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246UXIoK24pLHQpOml9LHQucHJlY2lzaW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpRcigrbiksdCk6b30sdH0sdC5nZW9DbGlwQW50aW1lcmlkaWFuPUNwLHQuZ2VvQ2xpcENpcmNsZT1naSx0Lmdlb0NsaXBFeHRlbnQ9ZnVuY3Rpb24oKXt2YXIgdCxuLGUscj0wLGk9MCxvPTk2MCxhPTUwMDtyZXR1cm4gZT17c3RyZWFtOmZ1bmN0aW9uKGUpe3JldHVybiB0JiZuPT09ZT90OnQ9eWkocixpLG8sYSkobj1lKX0sZXh0ZW50OmZ1bmN0aW9uKHUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt1WzBdWzBdLGk9K3VbMF1bMV0sbz0rdVsxXVswXSxhPSt1WzFdWzFdLHQ9bj1udWxsLGUpOltbcixpXSxbbyxhXV19fX0sdC5nZW9DbGlwUmVjdGFuZ2xlPXlpLHQuZ2VvQ29udGFpbnM9ZnVuY3Rpb24odCxuKXtyZXR1cm4odCYmcXAuaGFzT3duUHJvcGVydHkodC50eXBlKT9xcFt0LnR5cGVdOk1pKSh0LG4pfSx0Lmdlb0Rpc3RhbmNlPXdpLHQuZ2VvR3JhdGljdWxlPVBpLHQuZ2VvR3JhdGljdWxlMTA9ZnVuY3Rpb24oKXtyZXR1cm4gUGkoKSgpfSx0Lmdlb0ludGVycG9sYXRlPWZ1bmN0aW9uKHQsbil7dmFyIGU9dFswXSpRZCxyPXRbMV0qUWQsaT1uWzBdKlFkLG89blsxXSpRZCxhPW5wKHIpLHU9YXAociksZj1ucChvKSxjPWFwKG8pLHM9YSpucChlKSxsPWEqYXAoZSksaD1mKm5wKGkpLGQ9ZiphcChpKSxwPTIqZHIoZnAocHIoby1yKSthKmYqcHIoaS1lKSkpLHY9YXAocCksZz1wP2Z1bmN0aW9uKHQpe3ZhciBuPWFwKHQqPXApL3YsZT1hcChwLXQpL3Yscj1lKnMrbipoLGk9ZSpsK24qZCxvPWUqdStuKmM7cmV0dXJuW3RwKGkscikqWmQsdHAobyxmcChyKnIraSppKSkqWmRdfTpmdW5jdGlvbigpe3JldHVybltlKlpkLHIqWmRdfTtyZXR1cm4gZy5kaXN0YW5jZT1wLGd9LHQuZ2VvTGVuZ3RoPXhpLHQuZ2VvUGF0aD1mdW5jdGlvbih0LG4pe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiBvJiZpLnBvaW50UmFkaXVzKCtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYnIodCxyKGkpKSksaS5yZXN1bHQoKX12YXIgcixpLG89NC41O3JldHVybiBlLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihGcCkpLEZwLnJlc3VsdCgpfSxlLm1lYXN1cmU9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihjdikpLGN2LnJlc3VsdCgpfSxlLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gYnIodCxyKEdwKSksR3AucmVzdWx0KCl9LGUuY2VudHJvaWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGJyKHQscihldikpLGV2LnJlc3VsdCgpfSxlLnByb2plY3Rpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj8odD1udWxsLHppKToodD1uKS5zdHJlYW0sZSk6dH0sZS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PXQ/KG49bnVsbCxuZXcgV2kpOm5ldyBHaShuPXQpLFwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJmkucG9pbnRSYWRpdXMobyksZSk6bn0sZS5wb2ludFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6KGkucG9pbnRSYWRpdXMoK3QpLCt0KSxlKTpvfSxlLnByb2plY3Rpb24odCkuY29udGV4dChuKX0sdC5nZW9BbGJlcnM9bG8sdC5nZW9BbGJlcnNVc2E9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBuPXRbMF0sZT10WzFdO3JldHVybiB1PW51bGwsaS5wb2ludChuLGUpLHV8fChvLnBvaW50KG4sZSksdSl8fChhLnBvaW50KG4sZSksdSl9ZnVuY3Rpb24gbigpe3JldHVybiBlPXI9bnVsbCx0fXZhciBlLHIsaSxvLGEsdSxmPWxvKCksYz1zbygpLnJvdGF0ZShbMTU0LDBdKS5jZW50ZXIoWy0yLDU4LjVdKS5wYXJhbGxlbHMoWzU1LDY1XSkscz1zbygpLnJvdGF0ZShbMTU3LDBdKS5jZW50ZXIoWy0zLDE5LjldKS5wYXJhbGxlbHMoWzgsMThdKSxsPXtwb2ludDpmdW5jdGlvbih0LG4pe3U9W3Qsbl19fTtyZXR1cm4gdC5pbnZlcnQ9ZnVuY3Rpb24odCl7dmFyIG49Zi5zY2FsZSgpLGU9Zi50cmFuc2xhdGUoKSxyPSh0WzBdLWVbMF0pL24saT0odFsxXS1lWzFdKS9uO3JldHVybihpPj0uMTImJmk8LjIzNCYmcj49LS40MjUmJnI8LS4yMTQ/YzppPj0uMTY2JiZpPC4yMzQmJnI+PS0uMjE0JiZyPC0uMTE1P3M6ZikuaW52ZXJ0KHQpfSx0LnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gZSYmcj09PXQ/ZTplPWZ1bmN0aW9uKHQpe3ZhciBuPXQubGVuZ3RoO3JldHVybntwb2ludDpmdW5jdGlvbihlLHIpe2Zvcih2YXIgaT0tMTsrK2k8bjspdFtpXS5wb2ludChlLHIpfSxzcGhlcmU6ZnVuY3Rpb24oKXtmb3IodmFyIGU9LTE7KytlPG47KXRbZV0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe2Zvcih2YXIgZT0tMTsrK2U8bjspdFtlXS5wb2x5Z29uRW5kKCl9fX0oW2Yuc3RyZWFtKHI9dCksYy5zdHJlYW0odCkscy5zdHJlYW0odCldKX0sdC5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGYucHJlY2lzaW9uKHQpLGMucHJlY2lzaW9uKHQpLHMucHJlY2lzaW9uKHQpLG4oKSk6Zi5wcmVjaXNpb24oKX0sdC5zY2FsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZi5zY2FsZShuKSxjLnNjYWxlKC4zNSpuKSxzLnNjYWxlKG4pLHQudHJhbnNsYXRlKGYudHJhbnNsYXRlKCkpKTpmLnNjYWxlKCl9LHQudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBmLnRyYW5zbGF0ZSgpO3ZhciBlPWYuc2NhbGUoKSxyPSt0WzBdLHU9K3RbMV07cmV0dXJuIGk9Zi50cmFuc2xhdGUodCkuY2xpcEV4dGVudChbW3ItLjQ1NSplLHUtLjIzOCplXSxbcisuNDU1KmUsdSsuMjM4KmVdXSkuc3RyZWFtKGwpLG89Yy50cmFuc2xhdGUoW3ItLjMwNyplLHUrLjIwMSplXSkuY2xpcEV4dGVudChbW3ItLjQyNSplK0hkLHUrLjEyKmUrSGRdLFtyLS4yMTQqZS1IZCx1Ky4yMzQqZS1IZF1dKS5zdHJlYW0obCksYT1zLnRyYW5zbGF0ZShbci0uMjA1KmUsdSsuMjEyKmVdKS5jbGlwRXh0ZW50KFtbci0uMjE0KmUrSGQsdSsuMTY2KmUrSGRdLFtyLS4xMTUqZS1IZCx1Ky4yMzQqZS1IZF1dKS5zdHJlYW0obCksbigpfSx0LmZpdEV4dGVudD1mdW5jdGlvbihuLGUpe3JldHVybiB0byh0LG4sZSl9LHQuZml0U2l6ZT1mdW5jdGlvbihuLGUpe3JldHVybiBubyh0LG4sZSl9LHQuZml0V2lkdGg9ZnVuY3Rpb24obixlKXtyZXR1cm4gZW8odCxuLGUpfSx0LmZpdEhlaWdodD1mdW5jdGlvbihuLGUpe3JldHVybiBybyh0LG4sZSl9LHQuc2NhbGUoMTA3MCl9LHQuZ2VvQXppbXV0aGFsRXF1YWxBcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKGR2KS5zY2FsZSgxMjQuNzUpLmNsaXBBbmdsZSgxNzkuOTk5KX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWFSYXc9ZHYsdC5nZW9BemltdXRoYWxFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBhbyhwdikuc2NhbGUoNzkuNDE4OCkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3PXB2LHQuZ2VvQ29uaWNDb25mb3JtYWw9ZnVuY3Rpb24oKXtyZXR1cm4gZm8oX28pLnNjYWxlKDEwOS41KS5wYXJhbGxlbHMoWzMwLDMwXSl9LHQuZ2VvQ29uaWNDb25mb3JtYWxSYXc9X28sdC5nZW9Db25pY0VxdWFsQXJlYT1zbyx0Lmdlb0NvbmljRXF1YWxBcmVhUmF3PWNvLHQuZ2VvQ29uaWNFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBmbyhtbykuc2NhbGUoMTMxLjE1NCkuY2VudGVyKFswLDEzLjkzODldKX0sdC5nZW9Db25pY0VxdWlkaXN0YW50UmF3PW1vLHQuZ2VvRXF1aXJlY3Rhbmd1bGFyPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKGJvKS5zY2FsZSgxNTIuNjMpfSx0Lmdlb0VxdWlyZWN0YW5ndWxhclJhdz1ibyx0Lmdlb0dub21vbmljPWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHhvKS5zY2FsZSgxNDQuMDQ5KS5jbGlwQW5nbGUoNjApfSx0Lmdlb0dub21vbmljUmF3PXhvLHQuZ2VvSWRlbnRpdHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJuIGk9bz1udWxsLGF9dmFyIG4sZSxyLGksbyxhLHU9MSxmPTAsYz0wLHM9MSxsPTEsaD16aSxkPW51bGwscD16aTtyZXR1cm4gYT17c3RyZWFtOmZ1bmN0aW9uKHQpe3JldHVybiBpJiZvPT09dD9pOmk9aChwKG89dCkpfSxwb3N0Y2xpcDpmdW5jdGlvbihpKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD1pLGQ9bj1lPXI9bnVsbCx0KCkpOnB9LGNsaXBFeHRlbnQ6ZnVuY3Rpb24oaSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9bnVsbD09aT8oZD1uPWU9cj1udWxsLHppKTp5aShkPStpWzBdWzBdLG49K2lbMF1bMV0sZT0raVsxXVswXSxyPStpWzFdWzFdKSx0KCkpOm51bGw9PWQ/bnVsbDpbW2Qsbl0sW2Uscl1dfSxzY2FsZTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13bygodT0rbikqcyx1KmwsZixjKSx0KCkpOnV9LHRyYW5zbGF0ZTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KnMsdSpsLGY9K25bMF0sYz0rblsxXSksdCgpKTpbZixjXX0scmVmbGVjdFg6ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9d28odSoocz1uPy0xOjEpLHUqbCxmLGMpLHQoKSk6czwwfSxyZWZsZWN0WTpmdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD13byh1KnMsdSoobD1uPy0xOjEpLGYsYyksdCgpKTpsPDB9LGZpdEV4dGVudDpmdW5jdGlvbih0LG4pe3JldHVybiB0byhhLHQsbil9LGZpdFNpemU6ZnVuY3Rpb24odCxuKXtyZXR1cm4gbm8oYSx0LG4pfSxmaXRXaWR0aDpmdW5jdGlvbih0LG4pe3JldHVybiBlbyhhLHQsbil9LGZpdEhlaWdodDpmdW5jdGlvbih0LG4pe3JldHVybiBybyhhLHQsbil9fX0sdC5nZW9Qcm9qZWN0aW9uPWFvLHQuZ2VvUHJvamVjdGlvbk11dGF0b3I9dW8sdC5nZW9NZXJjYXRvcj1mdW5jdGlvbigpe3JldHVybiBnbyh2bykuc2NhbGUoOTYxL1dkKX0sdC5nZW9NZXJjYXRvclJhdz12byx0Lmdlb05hdHVyYWxFYXJ0aDE9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oTW8pLnNjYWxlKDE3NS4yOTUpfSx0Lmdlb05hdHVyYWxFYXJ0aDFSYXc9TW8sdC5nZW9PcnRob2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oQW8pLnNjYWxlKDI0OS41KS5jbGlwQW5nbGUoOTArSGQpfSx0Lmdlb09ydGhvZ3JhcGhpY1Jhdz1Bbyx0Lmdlb1N0ZXJlb2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oVG8pLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDE0Mil9LHQuZ2VvU3RlcmVvZ3JhcGhpY1Jhdz1Ubyx0Lmdlb1RyYW5zdmVyc2VNZXJjYXRvcj1mdW5jdGlvbigpe3ZhciB0PWdvKE5vKSxuPXQuY2VudGVyLGU9dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oWy10WzFdLHRbMF1dKToodD1uKCksW3RbMV0sLXRbMF1dKX0sdC5yb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/ZShbdFswXSx0WzFdLHQubGVuZ3RoPjI/dFsyXSs5MDo5MF0pOih0PWUoKSxbdFswXSx0WzFdLHRbMl0tOTBdKX0sZShbMCwwLDkwXSkuc2NhbGUoMTU5LjE1NSl9LHQuZ2VvVHJhbnN2ZXJzZU1lcmNhdG9yUmF3PU5vLHQuZ2VvUm90YXRpb249aWksdC5nZW9TdHJlYW09YnIsdC5nZW9UcmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJue3N0cmVhbTpRaSh0KX19LHQuY2x1c3Rlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG8sYT0wO3QuZWFjaEFmdGVyKGZ1bmN0aW9uKHQpe3ZhciBlPXQuY2hpbGRyZW47ZT8odC54PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZShFbywwKS90Lmxlbmd0aH0oZSksdC55PWZ1bmN0aW9uKHQpe3JldHVybiAxK3QucmVkdWNlKGtvLDApfShlKSk6KHQueD1vP2ErPW4odCxvKTowLHQueT0wLG89dCl9KTt2YXIgdT1mdW5jdGlvbih0KXtmb3IodmFyIG47bj10LmNoaWxkcmVuOyl0PW5bMF07cmV0dXJuIHR9KHQpLGY9ZnVuY3Rpb24odCl7Zm9yKHZhciBuO249dC5jaGlsZHJlbjspdD1uW24ubGVuZ3RoLTFdO3JldHVybiB0fSh0KSxjPXUueC1uKHUsZikvMixzPWYueCtuKGYsdSkvMjtyZXR1cm4gdC5lYWNoQWZ0ZXIoaT9mdW5jdGlvbihuKXtuLng9KG4ueC10LngpKmUsbi55PSh0Lnktbi55KSpyfTpmdW5jdGlvbihuKXtuLng9KG4ueC1jKS8ocy1jKSplLG4ueT0oMS0odC55P24ueS90Lnk6MSkpKnJ9KX12YXIgbj1TbyxlPTEscj0xLGk9ITE7cmV0dXJuIHQuc2VwYXJhdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1lLHQpOm59LHQuc2l6ZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0hMSxlPStuWzBdLHI9K25bMV0sdCk6aT9udWxsOltlLHJdfSx0Lm5vZGVTaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSEwLGU9K25bMF0scj0rblsxXSx0KTppP1tlLHJdOm51bGx9LHR9LHQuaGllcmFyY2h5PVBvLHQucGFjaz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIHQueD1lLzIsdC55PXIvMixuP3QuZWFjaEJlZm9yZShRbyhuKSkuZWFjaEFmdGVyKEpvKGksLjUpKS5lYWNoQmVmb3JlKEtvKDEpKTp0LmVhY2hCZWZvcmUoUW8oWm8pKS5lYWNoQWZ0ZXIoSm8oJG8sMSkpLmVhY2hBZnRlcihKbyhpLHQuci9NYXRoLm1pbihlLHIpKSkuZWFjaEJlZm9yZShLbyhNYXRoLm1pbihlLHIpLygyKnQucikpKSx0fXZhciBuPW51bGwsZT0xLHI9MSxpPSRvO3JldHVybiB0LnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9udWxsOlZvKHQpfShlKSx0KTpufSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K25bMF0scj0rblsxXSx0KTpbZSxyXX0sdC5wYWRkaW5nPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6aX0sdH0sdC5wYWNrU2libGluZ3M9ZnVuY3Rpb24odCl7cmV0dXJuIEdvKHQpLHR9LHQucGFja0VuY2xvc2U9VW8sdC5wYXJ0aXRpb249ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBvPXQuaGVpZ2h0KzE7cmV0dXJuIHQueDA9dC55MD1yLHQueDE9bix0LnkxPWUvbyx0LmVhY2hCZWZvcmUoZnVuY3Rpb24odCxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbiYmbmEoZSxlLngwLHQqKGUuZGVwdGgrMSkvbixlLngxLHQqKGUuZGVwdGgrMikvbik7dmFyIGk9ZS54MCxvPWUueTAsYT1lLngxLXIsdT1lLnkxLXI7YTxpJiYoaT1hPShpK2EpLzIpLHU8byYmKG89dT0obyt1KS8yKSxlLngwPWksZS55MD1vLGUueDE9YSxlLnkxPXV9fShlLG8pKSxpJiZ0LmVhY2hCZWZvcmUodGEpLHR9dmFyIG49MSxlPTEscj0wLGk9ITE7cmV0dXJuIHQucm91bmQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ISFuLHQpOml9LHQuc2l6ZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rclswXSxlPStyWzFdLHQpOltuLGVdfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K24sdCk6cn0sdH0sdC5zdHJhdGlmeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIHIsaSxvLGEsdSxmLGMscz10Lmxlbmd0aCxsPW5ldyBBcnJheShzKSxoPXt9O2ZvcihpPTA7aTxzOysraSlyPXRbaV0sdT1sW2ldPW5ldyBEbyhyKSxudWxsIT0oZj1uKHIsaSx0KSkmJihmKz1cIlwiKSYmKGhbYz1ndisodS5pZD1mKV09YyBpbiBoP192OnUpO2ZvcihpPTA7aTxzOysraSlpZih1PWxbaV0sbnVsbCE9KGY9ZSh0W2ldLGksdCkpJiYoZis9XCJcIikpe2lmKCEoYT1oW2d2K2ZdKSl0aHJvdyBuZXcgRXJyb3IoXCJtaXNzaW5nOiBcIitmKTtpZihhPT09X3YpdGhyb3cgbmV3IEVycm9yKFwiYW1iaWd1b3VzOiBcIitmKTthLmNoaWxkcmVuP2EuY2hpbGRyZW4ucHVzaCh1KTphLmNoaWxkcmVuPVt1XSx1LnBhcmVudD1hfWVsc2V7aWYobyl0aHJvdyBuZXcgRXJyb3IoXCJtdWx0aXBsZSByb290c1wiKTtvPXV9aWYoIW8pdGhyb3cgbmV3IEVycm9yKFwibm8gcm9vdFwiKTtpZihvLnBhcmVudD15dixvLmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC5kZXB0aD10LnBhcmVudC5kZXB0aCsxLC0tc30pLmVhY2hCZWZvcmUoTG8pLG8ucGFyZW50PW51bGwscz4wKXRocm93IG5ldyBFcnJvcihcImN5Y2xlXCIpO3JldHVybiBvfXZhciBuPWVhLGU9cmE7cmV0dXJuIHQuaWQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49Vm8oZSksdCk6bn0sdC5wYXJlbnRJZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1WbyhuKSx0KTplfSx0fSx0LnRyZWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBmPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbixlLHIsaSxvLGE9bmV3IGNhKHQsMCksdT1bYV07bj11LnBvcCgpOylpZihyPW4uXy5jaGlsZHJlbilmb3Iobi5jaGlsZHJlbj1uZXcgQXJyYXkobz1yLmxlbmd0aCksaT1vLTE7aT49MDstLWkpdS5wdXNoKGU9bi5jaGlsZHJlbltpXT1uZXcgY2EocltpXSxpKSksZS5wYXJlbnQ9bjtyZXR1cm4oYS5wYXJlbnQ9bmV3IGNhKG51bGwsMCkpLmNoaWxkcmVuPVthXSxhfSh0KTtpZihmLmVhY2hBZnRlcihuKSxmLnBhcmVudC5tPS1mLnosZi5lYWNoQmVmb3JlKGUpLHUpdC5lYWNoQmVmb3JlKHIpO2Vsc2V7dmFyIGM9dCxzPXQsbD10O3QuZWFjaEJlZm9yZShmdW5jdGlvbih0KXt0Lng8Yy54JiYoYz10KSx0Lng+cy54JiYocz10KSx0LmRlcHRoPmwuZGVwdGgmJihsPXQpfSk7dmFyIGg9Yz09PXM/MTppKGMscykvMixkPWgtYy54LHA9by8ocy54K2grZCksdj1hLyhsLmRlcHRofHwxKTt0LmVhY2hCZWZvcmUoZnVuY3Rpb24odCl7dC54PSh0LngrZCkqcCx0Lnk9dC5kZXB0aCp2fSl9cmV0dXJuIHR9ZnVuY3Rpb24gbih0KXt2YXIgbj10LmNoaWxkcmVuLGU9dC5wYXJlbnQuY2hpbGRyZW4scj10Lmk/ZVt0LmktMV06bnVsbDtpZihuKXsoZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9MCxyPTAsaT10LmNoaWxkcmVuLG89aS5sZW5ndGg7LS1vPj0wOykobj1pW29dKS56Kz1lLG4ubSs9ZSxlKz1uLnMrKHIrPW4uYyl9KSh0KTt2YXIgbz0oblswXS56K25bbi5sZW5ndGgtMV0ueikvMjtyPyh0Lno9ci56K2kodC5fLHIuXyksdC5tPXQuei1vKTp0Lno9b31lbHNlIHImJih0Lno9ci56K2kodC5fLHIuXykpO3QucGFyZW50LkE9ZnVuY3Rpb24odCxuLGUpe2lmKG4pe2Zvcih2YXIgcixvPXQsYT10LHU9bixmPW8ucGFyZW50LmNoaWxkcmVuWzBdLGM9by5tLHM9YS5tLGw9dS5tLGg9Zi5tO3U9YWEodSksbz1vYShvKSx1JiZvOylmPW9hKGYpLChhPWFhKGEpKS5hPXQsKHI9dS56K2wtby56LWMraSh1Ll8sby5fKSk+MCYmKHVhKGZhKHUsdCxlKSx0LHIpLGMrPXIscys9ciksbCs9dS5tLGMrPW8ubSxoKz1mLm0scys9YS5tO3UmJiFhYShhKSYmKGEudD11LGEubSs9bC1zKSxvJiYhb2EoZikmJihmLnQ9byxmLm0rPWMtaCxlPXQpfXJldHVybiBlfSh0LHIsdC5wYXJlbnQuQXx8ZVswXSl9ZnVuY3Rpb24gZSh0KXt0Ll8ueD10LnordC5wYXJlbnQubSx0Lm0rPXQucGFyZW50Lm19ZnVuY3Rpb24gcih0KXt0LngqPW8sdC55PXQuZGVwdGgqYX12YXIgaT1pYSxvPTEsYT0xLHU9bnVsbDtyZXR1cm4gdC5zZXBhcmF0aW9uPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW4sdCk6aX0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSExLG89K25bMF0sYT0rblsxXSx0KTp1P251bGw6W28sYV19LHQubm9kZVNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9ITAsbz0rblswXSxhPStuWzFdLHQpOnU/W28sYV06bnVsbH0sdH0sdC50cmVlbWFwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtyZXR1cm4gdC54MD10LnkwPTAsdC54MT1pLHQueTE9byx0LmVhY2hCZWZvcmUobiksYT1bMF0sciYmdC5lYWNoQmVmb3JlKHRhKSx0fWZ1bmN0aW9uIG4odCl7dmFyIG49YVt0LmRlcHRoXSxyPXQueDArbixpPXQueTArbixvPXQueDEtbixoPXQueTEtbjtvPHImJihyPW89KHIrbykvMiksaDxpJiYoaT1oPShpK2gpLzIpLHQueDA9cix0LnkwPWksdC54MT1vLHQueTE9aCx0LmNoaWxkcmVuJiYobj1hW3QuZGVwdGgrMV09dSh0KS8yLHIrPWwodCktbixpKz1mKHQpLW4sby09Yyh0KS1uLGgtPXModCktbixvPHImJihyPW89KHIrbykvMiksaDxpJiYoaT1oPShpK2gpLzIpLGUodCxyLGksbyxoKSl9dmFyIGU9bXYscj0hMSxpPTEsbz0xLGE9WzBdLHU9JG8sZj0kbyxjPSRvLHM9JG8sbD0kbztyZXR1cm4gdC5yb3VuZD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0hIW4sdCk6cn0sdC5zaXplPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPStuWzBdLG89K25bMV0sdCk6W2ksb119LHQudGlsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1WbyhuKSx0KTplfSx0LnBhZGRpbmc9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5wYWRkaW5nSW5uZXIobikucGFkZGluZ091dGVyKG4pOnQucGFkZGluZ0lubmVyKCl9LHQucGFkZGluZ0lubmVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpXbygrbiksdCk6dX0sdC5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dC5wYWRkaW5nVG9wKG4pLnBhZGRpbmdSaWdodChuKS5wYWRkaW5nQm90dG9tKG4pLnBhZGRpbmdMZWZ0KG4pOnQucGFkZGluZ1RvcCgpfSx0LnBhZGRpbmdUb3A9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpmfSx0LnBhZGRpbmdSaWdodD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOmN9LHQucGFkZGluZ0JvdHRvbT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246V28oK24pLHQpOnN9LHQucGFkZGluZ0xlZnQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOldvKCtuKSx0KTpsfSx0fSx0LnRyZWVtYXBCaW5hcnk9ZnVuY3Rpb24odCxuLGUscixpKXtmdW5jdGlvbiBvKHQsbixlLHIsaSxhLHUpe2lmKHQ+PW4tMSl7dmFyIGM9Zlt0XTtyZXR1cm4gYy54MD1yLGMueTA9aSxjLngxPWEsdm9pZChjLnkxPXUpfWZvcih2YXIgbD1zW3RdLGg9ZS8yK2wsZD10KzEscD1uLTE7ZDxwOyl7dmFyIHY9ZCtwPj4+MTtzW3ZdPGg/ZD12KzE6cD12fWgtc1tkLTFdPHNbZF0taCYmdCsxPGQmJi0tZDt2YXIgZz1zW2RdLWwseT1lLWc7aWYoYS1yPnUtaSl7dmFyIF89KHIqeSthKmcpL2U7byh0LGQsZyxyLGksXyx1KSxvKGQsbix5LF8saSxhLHUpfWVsc2V7dmFyIGI9KGkqeSt1KmcpL2U7byh0LGQsZyxyLGksYSxiKSxvKGQsbix5LHIsYixhLHUpfX12YXIgYSx1LGY9dC5jaGlsZHJlbixjPWYubGVuZ3RoLHM9bmV3IEFycmF5KGMrMSk7Zm9yKHNbMF09dT1hPTA7YTxjOysrYSlzW2ErMV09dSs9ZlthXS52YWx1ZTtvKDAsYyx0LnZhbHVlLG4sZSxyLGkpfSx0LnRyZWVtYXBEaWNlPW5hLHQudHJlZW1hcFNsaWNlPXNhLHQudHJlZW1hcFNsaWNlRGljZT1mdW5jdGlvbih0LG4sZSxyLGkpeygxJnQuZGVwdGg/c2E6bmEpKHQsbixlLHIsaSl9LHQudHJlZW1hcFNxdWFyaWZ5PW12LHQudHJlZW1hcFJlc3F1YXJpZnk9eHYsdC5pbnRlcnBvbGF0ZT1kbix0LmludGVycG9sYXRlQXJyYXk9Zm4sdC5pbnRlcnBvbGF0ZUJhc2lzPUt0LHQuaW50ZXJwb2xhdGVCYXNpc0Nsb3NlZD10bix0LmludGVycG9sYXRlRGF0ZT1jbix0LmludGVycG9sYXRlTnVtYmVyPXNuLHQuaW50ZXJwb2xhdGVPYmplY3Q9bG4sdC5pbnRlcnBvbGF0ZVJvdW5kPXBuLHQuaW50ZXJwb2xhdGVTdHJpbmc9aG4sdC5pbnRlcnBvbGF0ZVRyYW5zZm9ybUNzcz1zbCx0LmludGVycG9sYXRlVHJhbnNmb3JtU3ZnPWxsLHQuaW50ZXJwb2xhdGVab29tPV9uLHQuaW50ZXJwb2xhdGVSZ2I9cmwsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzPWlsLHQuaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZD1vbCx0LmludGVycG9sYXRlSHNsPWdsLHQuaW50ZXJwb2xhdGVIc2xMb25nPXlsLHQuaW50ZXJwb2xhdGVMYWI9ZnVuY3Rpb24odCxuKXt2YXIgZT1hbigodD1GdCh0KSkubCwobj1GdChuKSkubCkscj1hbih0LmEsbi5hKSxpPWFuKHQuYixuLmIpLG89YW4odC5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0Lmw9ZShuKSx0LmE9cihuKSx0LmI9aShuKSx0Lm9wYWNpdHk9byhuKSx0K1wiXCJ9fSx0LmludGVycG9sYXRlSGNsPV9sLHQuaW50ZXJwb2xhdGVIY2xMb25nPWJsLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXg9bWwsdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeExvbmc9eGwsdC5waWVjZXdpc2U9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9MCxyPW4ubGVuZ3RoLTEsaT1uWzBdLG89bmV3IEFycmF5KHI8MD8wOnIpO2U8cjspb1tlXT10KGksaT1uWysrZV0pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj1NYXRoLm1heCgwLE1hdGgubWluKHItMSxNYXRoLmZsb29yKHQqPXIpKSk7cmV0dXJuIG9bbl0odC1uKX19LHQucXVhbnRpemU9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGU9bmV3IEFycmF5KG4pLHI9MDtyPG47KytyKWVbcl09dChyLyhuLTEpKTtyZXR1cm4gZX0sdC5wYXRoPW9lLHQucG9seWdvbkFyZWE9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGU9LTEscj10Lmxlbmd0aCxpPXRbci0xXSxvPTA7KytlPHI7KW49aSxpPXRbZV0sbys9blsxXSppWzBdLW5bMF0qaVsxXTtyZXR1cm4gby8yfSx0LnBvbHlnb25DZW50cm9pZD1mdW5jdGlvbih0KXtmb3IodmFyIG4sZSxyPS0xLGk9dC5sZW5ndGgsbz0wLGE9MCx1PXRbaS0xXSxmPTA7KytyPGk7KW49dSx1PXRbcl0sZis9ZT1uWzBdKnVbMV0tdVswXSpuWzFdLG8rPShuWzBdK3VbMF0pKmUsYSs9KG5bMV0rdVsxXSkqZTtyZXR1cm4gZio9Myxbby9mLGEvZl19LHQucG9seWdvbkh1bGw9ZnVuY3Rpb24odCl7aWYoKGU9dC5sZW5ndGgpPDMpcmV0dXJuIG51bGw7dmFyIG4sZSxyPW5ldyBBcnJheShlKSxpPW5ldyBBcnJheShlKTtmb3Iobj0wO248ZTsrK24pcltuXT1bK3Rbbl1bMF0sK3Rbbl1bMV0sbl07Zm9yKHIuc29ydChkYSksbj0wO248ZTsrK24paVtuXT1bcltuXVswXSwtcltuXVsxXV07dmFyIG89cGEociksYT1wYShpKSx1PWFbMF09PT1vWzBdLGY9YVthLmxlbmd0aC0xXT09PW9bby5sZW5ndGgtMV0sYz1bXTtmb3Iobj1vLmxlbmd0aC0xO24+PTA7LS1uKWMucHVzaCh0W3Jbb1tuXV1bMl1dKTtmb3Iobj0rdTtuPGEubGVuZ3RoLWY7KytuKWMucHVzaCh0W3JbYVtuXV1bMl1dKTtyZXR1cm4gY30sdC5wb2x5Z29uQ29udGFpbnM9ZnVuY3Rpb24odCxuKXtmb3IodmFyIGUscixpPXQubGVuZ3RoLG89dFtpLTFdLGE9blswXSx1PW5bMV0sZj1vWzBdLGM9b1sxXSxzPSExLGw9MDtsPGk7KytsKWU9KG89dFtsXSlbMF0sKHI9b1sxXSk+dSE9Yz51JiZhPChmLWUpKih1LXIpLyhjLXIpK2UmJihzPSFzKSxmPWUsYz1yO3JldHVybiBzfSx0LnBvbHlnb25MZW5ndGg9ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGUscj0tMSxpPXQubGVuZ3RoLG89dFtpLTFdLGE9b1swXSx1PW9bMV0sZj0wOysrcjxpOyluPWEsZT11LG4tPWE9KG89dFtyXSlbMF0sZS09dT1vWzFdLGYrPU1hdGguc3FydChuKm4rZSplKTtyZXR1cm4gZn0sdC5xdWFkdHJlZT1qZSx0LnJhbmRvbVVuaWZvcm09d3YsdC5yYW5kb21Ob3JtYWw9TXYsdC5yYW5kb21Mb2dOb3JtYWw9QXYsdC5yYW5kb21CYXRlcz1Odix0LnJhbmRvbUlyd2luSGFsbD1Udix0LnJhbmRvbUV4cG9uZW50aWFsPVN2LHQuc2NhbGVCYW5kPXlhLHQuc2NhbGVQb2ludD1mdW5jdGlvbigpe3JldHVybiBfYSh5YSgpLnBhZGRpbmdJbm5lcigxKSl9LHQuc2NhbGVJZGVudGl0eT1FYSx0LnNjYWxlTGluZWFyPVNhLHQuc2NhbGVMb2c9VWEsdC5zY2FsZU9yZGluYWw9Z2EsdC5zY2FsZUltcGxpY2l0PVB2LHQuc2NhbGVQb3c9T2EsdC5zY2FsZVNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2EoKS5leHBvbmVudCguNSl9LHQuc2NhbGVRdWFudGlsZT1ZYSx0LnNjYWxlUXVhbnRpemU9QmEsdC5zY2FsZVRocmVzaG9sZD1GYSx0LnNjYWxlVGltZT1mdW5jdGlvbigpe3JldHVybiBvZihjZyx1ZyxWdixYdixqdixGdixZdixEdix0LnRpbWVGb3JtYXQpLmRvbWFpbihbbmV3IERhdGUoMmUzLDAsMSksbmV3IERhdGUoMmUzLDAsMildKX0sdC5zY2FsZVV0Yz1mdW5jdGlvbigpe3JldHVybiBvZihSZyxQZyx5Zyx2ZyxkZyxsZyxZdixEdix0LnV0Y0Zvcm1hdCkuZG9tYWluKFtEYXRlLlVUQygyZTMsMCwxKSxEYXRlLlVUQygyZTMsMCwyKV0pfSx0LnNjYWxlU2VxdWVudGlhbD1hZix0LnNjYWxlRGl2ZXJnaW5nPXVmLHQuc2NoZW1lQ2F0ZWdvcnkxMD1aZyx0LnNjaGVtZUFjY2VudD1RZyx0LnNjaGVtZURhcmsyPUpnLHQuc2NoZW1lUGFpcmVkPUtnLHQuc2NoZW1lUGFzdGVsMT10eSx0LnNjaGVtZVBhc3RlbDI9bnksdC5zY2hlbWVTZXQxPWV5LHQuc2NoZW1lU2V0Mj1yeSx0LnNjaGVtZVNldDM9aXksdC5pbnRlcnBvbGF0ZUJyQkc9YXksdC5zY2hlbWVCckJHPW95LHQuaW50ZXJwb2xhdGVQUkduPWZ5LHQuc2NoZW1lUFJHbj11eSx0LmludGVycG9sYXRlUGlZRz1zeSx0LnNjaGVtZVBpWUc9Y3ksdC5pbnRlcnBvbGF0ZVB1T3I9aHksdC5zY2hlbWVQdU9yPWx5LHQuaW50ZXJwb2xhdGVSZEJ1PXB5LHQuc2NoZW1lUmRCdT1keSx0LmludGVycG9sYXRlUmRHeT1neSx0LnNjaGVtZVJkR3k9dnksdC5pbnRlcnBvbGF0ZVJkWWxCdT1feSx0LnNjaGVtZVJkWWxCdT15eSx0LmludGVycG9sYXRlUmRZbEduPW15LHQuc2NoZW1lUmRZbEduPWJ5LHQuaW50ZXJwb2xhdGVTcGVjdHJhbD13eSx0LnNjaGVtZVNwZWN0cmFsPXh5LHQuaW50ZXJwb2xhdGVCdUduPUF5LHQuc2NoZW1lQnVHbj1NeSx0LmludGVycG9sYXRlQnVQdT1OeSx0LnNjaGVtZUJ1UHU9VHksdC5pbnRlcnBvbGF0ZUduQnU9RXksdC5zY2hlbWVHbkJ1PVN5LHQuaW50ZXJwb2xhdGVPclJkPUN5LHQuc2NoZW1lT3JSZD1reSx0LmludGVycG9sYXRlUHVCdUduPXp5LHQuc2NoZW1lUHVCdUduPVB5LHQuaW50ZXJwb2xhdGVQdUJ1PUx5LHQuc2NoZW1lUHVCdT1SeSx0LmludGVycG9sYXRlUHVSZD1VeSx0LnNjaGVtZVB1UmQ9RHksdC5pbnRlcnBvbGF0ZVJkUHU9T3ksdC5zY2hlbWVSZFB1PXF5LHQuaW50ZXJwb2xhdGVZbEduQnU9QnksdC5zY2hlbWVZbEduQnU9WXksdC5pbnRlcnBvbGF0ZVlsR249SXksdC5zY2hlbWVZbEduPUZ5LHQuaW50ZXJwb2xhdGVZbE9yQnI9SHksdC5zY2hlbWVZbE9yQnI9anksdC5pbnRlcnBvbGF0ZVlsT3JSZD1HeSx0LnNjaGVtZVlsT3JSZD1YeSx0LmludGVycG9sYXRlQmx1ZXM9JHksdC5zY2hlbWVCbHVlcz1WeSx0LmludGVycG9sYXRlR3JlZW5zPVp5LHQuc2NoZW1lR3JlZW5zPVd5LHQuaW50ZXJwb2xhdGVHcmV5cz1KeSx0LnNjaGVtZUdyZXlzPVF5LHQuaW50ZXJwb2xhdGVQdXJwbGVzPXRfLHQuc2NoZW1lUHVycGxlcz1LeSx0LmludGVycG9sYXRlUmVkcz1lXyx0LnNjaGVtZVJlZHM9bl8sdC5pbnRlcnBvbGF0ZU9yYW5nZXM9aV8sdC5zY2hlbWVPcmFuZ2VzPXJfLHQuaW50ZXJwb2xhdGVDdWJlaGVsaXhEZWZhdWx0PW9fLHQuaW50ZXJwb2xhdGVSYWluYm93PWZ1bmN0aW9uKHQpeyh0PDB8fHQ+MSkmJih0LT1NYXRoLmZsb29yKHQpKTt2YXIgbj1NYXRoLmFicyh0LS41KTtyZXR1cm4gZl8uaD0zNjAqdC0xMDAsZl8ucz0xLjUtMS41Km4sZl8ubD0uOC0uOSpuLGZfK1wiXCJ9LHQuaW50ZXJwb2xhdGVXYXJtPWFfLHQuaW50ZXJwb2xhdGVDb29sPXVfLHQuaW50ZXJwb2xhdGVTaW5lYm93PWZ1bmN0aW9uKHQpe3ZhciBuO3JldHVybiB0PSguNS10KSpNYXRoLlBJLGNfLnI9MjU1KihuPU1hdGguc2luKHQpKSpuLGNfLmc9MjU1KihuPU1hdGguc2luKHQrc18pKSpuLGNfLmI9MjU1KihuPU1hdGguc2luKHQrbF8pKSpuLGNfK1wiXCJ9LHQuaW50ZXJwb2xhdGVWaXJpZGlzPWhfLHQuaW50ZXJwb2xhdGVNYWdtYT1kXyx0LmludGVycG9sYXRlSW5mZXJubz1wXyx0LmludGVycG9sYXRlUGxhc21hPXZfLHQuY3JlYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBjdChDKHQpLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSl9LHQuY3JlYXRvcj1DLHQubG9jYWw9c3QsdC5tYXRjaGVyPWJzLHQubW91c2U9cHQsdC5uYW1lc3BhY2U9ayx0Lm5hbWVzcGFjZXM9dnMsdC5jbGllbnRQb2ludD1kdCx0LnNlbGVjdD1jdCx0LnNlbGVjdEFsbD1mdW5jdGlvbih0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdD9uZXcgdXQoW2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodCldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgdXQoW251bGw9PXQ/W106dF0sd3MpfSx0LnNlbGVjdGlvbj1mdCx0LnNlbGVjdG9yPXosdC5zZWxlY3RvckFsbD1MLHQuc3R5bGU9Rix0LnRvdWNoPXZ0LHQudG91Y2hlcz1mdW5jdGlvbih0LG4pe251bGw9PW4mJihuPWh0KCkudG91Y2hlcyk7Zm9yKHZhciBlPTAscj1uP24ubGVuZ3RoOjAsaT1uZXcgQXJyYXkocik7ZTxyOysrZSlpW2VdPWR0KHQsbltlXSk7cmV0dXJuIGl9LHQud2luZG93PUIsdC5jdXN0b21FdmVudD1vdCx0LmFyYz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdCxjLHM9K24uYXBwbHkodGhpcyxhcmd1bWVudHMpLGw9K2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLGg9by5hcHBseSh0aGlzLGFyZ3VtZW50cyktVF8sZD1hLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1UXyxwPWdfKGQtaCksdj1kPmg7aWYoZnx8KGY9dD1vZSgpKSxsPHMmJihjPWwsbD1zLHM9YyksbD5NXylpZihwPk5fLU1fKWYubW92ZVRvKGwqX18oaCksbCp4XyhoKSksZi5hcmMoMCwwLGwsaCxkLCF2KSxzPk1fJiYoZi5tb3ZlVG8ocypfXyhkKSxzKnhfKGQpKSxmLmFyYygwLDAscyxkLGgsdikpO2Vsc2V7dmFyIGcseSxfPWgsYj1kLG09aCx4PWQsdz1wLE09cCxBPXUuYXBwbHkodGhpcyxhcmd1bWVudHMpLzIsVD1BPk1fJiYoaT8raS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6d18ocypzK2wqbCkpLE49bV8oZ18obC1zKS8yLCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksUz1OLEU9TjtpZihUPk1fKXt2YXIgaz1oZihUL3MqeF8oQSkpLEM9aGYoVC9sKnhfKEEpKTsody09MiprKT5NXz8oayo9dj8xOi0xLG0rPWsseC09ayk6KHc9MCxtPXg9KGgrZCkvMiksKE0tPTIqQyk+TV8/KEMqPXY/MTotMSxfKz1DLGItPUMpOihNPTAsXz1iPShoK2QpLzIpfXZhciBQPWwqX18oXyksej1sKnhfKF8pLFI9cypfXyh4KSxMPXMqeF8oeCk7aWYoTj5NXyl7dmFyIEQ9bCpfXyhiKSxVPWwqeF8oYikscT1zKl9fKG0pLE89cyp4XyhtKTtpZihwPEFfKXt2YXIgWT13Pk1fP2Z1bmN0aW9uKHQsbixlLHIsaSxvLGEsdSl7dmFyIGY9ZS10LGM9ci1uLHM9YS1pLGw9dS1vLGg9KHMqKG4tbyktbCoodC1pKSkvKGwqZi1zKmMpO3JldHVyblt0K2gqZixuK2gqY119KFAseixxLE8sRCxVLFIsTCk6W1IsTF0sQj1QLVlbMF0sRj16LVlbMV0sST1ELVlbMF0saj1VLVlbMV0sSD0xL3hfKGZ1bmN0aW9uKHQpe3JldHVybiB0PjE/MDp0PC0xP0FfOk1hdGguYWNvcyh0KX0oKEIqSStGKmopLyh3XyhCKkIrRipGKSp3XyhJKkkraipqKSkpLzIpLFg9d18oWVswXSpZWzBdK1lbMV0qWVsxXSk7Uz1tXyhOLChzLVgpLyhILTEpKSxFPW1fKE4sKGwtWCkvKEgrMSkpfX1NPk1fP0U+TV8/KGc9X2YocSxPLFAseixsLEUsdikseT1fZihELFUsUixMLGwsRSx2KSxmLm1vdmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLEU8Tj9mLmFyYyhnLmN4LGcuY3ksRSx5XyhnLnkwMSxnLngwMSkseV8oeS55MDEseS54MDEpLCF2KTooZi5hcmMoZy5jeCxnLmN5LEUseV8oZy55MDEsZy54MDEpLHlfKGcueTExLGcueDExKSwhdiksZi5hcmMoMCwwLGwseV8oZy5jeStnLnkxMSxnLmN4K2cueDExKSx5Xyh5LmN5K3kueTExLHkuY3greS54MTEpLCF2KSxmLmFyYyh5LmN4LHkuY3ksRSx5Xyh5LnkxMSx5LngxMSkseV8oeS55MDEseS54MDEpLCF2KSkpOihmLm1vdmVUbyhQLHopLGYuYXJjKDAsMCxsLF8sYiwhdikpOmYubW92ZVRvKFAseikscz5NXyYmdz5NXz9TPk1fPyhnPV9mKFIsTCxELFUscywtUyx2KSx5PV9mKFAseixxLE8scywtUyx2KSxmLmxpbmVUbyhnLmN4K2cueDAxLGcuY3krZy55MDEpLFM8Tj9mLmFyYyhnLmN4LGcuY3ksUyx5XyhnLnkwMSxnLngwMSkseV8oeS55MDEseS54MDEpLCF2KTooZi5hcmMoZy5jeCxnLmN5LFMseV8oZy55MDEsZy54MDEpLHlfKGcueTExLGcueDExKSwhdiksZi5hcmMoMCwwLHMseV8oZy5jeStnLnkxMSxnLmN4K2cueDExKSx5Xyh5LmN5K3kueTExLHkuY3greS54MTEpLHYpLGYuYXJjKHkuY3gseS5jeSxTLHlfKHkueTExLHkueDExKSx5Xyh5LnkwMSx5LngwMSksIXYpKSk6Zi5hcmMoMCwwLHMseCxtLHYpOmYubGluZVRvKFIsTCl9ZWxzZSBmLm1vdmVUbygwLDApO2lmKGYuY2xvc2VQYXRoKCksdClyZXR1cm4gZj1udWxsLHQrXCJcInx8bnVsbH12YXIgbj1kZixlPXBmLHI9bGYoMCksaT1udWxsLG89dmYsYT1nZix1PXlmLGY9bnVsbDtyZXR1cm4gdC5jZW50cm9pZD1mdW5jdGlvbigpe3ZhciB0PSgrbi5hcHBseSh0aGlzLGFyZ3VtZW50cykrICtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMixyPSgrby5hcHBseSh0aGlzLGFyZ3VtZW50cykrICthLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkvMi1BXy8yO3JldHVybltfXyhyKSp0LHhfKHIpKnRdfSx0LmlubmVyUmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC5vdXRlclJhZGl1cz1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmV9LHQuY29ybmVyUmFkaXVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6cn0sdC5wYWRSYWRpdXM9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09bj9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6aX0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5lbmRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmF9LHQucGFkQW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTp1fSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9bnVsbD09bj9udWxsOm4sdCk6Zn0sdH0sdC5hcmVhPUFmLHQubGluZT1NZix0LnBpZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIHUsZixjLHMsbCxoPXQubGVuZ3RoLGQ9MCxwPW5ldyBBcnJheShoKSx2PW5ldyBBcnJheShoKSxnPStpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx5PU1hdGgubWluKE5fLE1hdGgubWF4KC1OXyxvLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1nKSksXz1NYXRoLm1pbihNYXRoLmFicyh5KS9oLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxiPV8qKHk8MD8tMToxKTtmb3IodT0wO3U8aDsrK3UpKGw9dltwW3VdPXVdPStuKHRbdV0sdSx0KSk+MCYmKGQrPWwpO2ZvcihudWxsIT1lP3Auc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBlKHZbdF0sdltuXSl9KTpudWxsIT1yJiZwLnNvcnQoZnVuY3Rpb24obixlKXtyZXR1cm4gcih0W25dLHRbZV0pfSksdT0wLGM9ZD8oeS1oKmIpL2Q6MDt1PGg7Kyt1LGc9cylmPXBbdV0scz1nKygobD12W2ZdKT4wP2wqYzowKStiLHZbZl09e2RhdGE6dFtmXSxpbmRleDp1LHZhbHVlOmwsc3RhcnRBbmdsZTpnLGVuZEFuZ2xlOnMscGFkQW5nbGU6X307cmV0dXJuIHZ9dmFyIG49TmYsZT1UZixyPW51bGwsaT1sZigwKSxvPWxmKE5fKSxhPWxmKDApO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZigrZSksdCk6bn0sdC5zb3J0VmFsdWVzPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW4scj1udWxsLHQpOmV9LHQuc29ydD1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1uLGU9bnVsbCx0KTpyfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0LmVuZEFuZ2xlPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bjpsZigrbiksdCk6b30sdC5wYWRBbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246bGYoK24pLHQpOmF9LHR9LHQuYXJlYVJhZGlhbD1QZix0LnJhZGlhbEFyZWE9UGYsdC5saW5lUmFkaWFsPUNmLHQucmFkaWFsTGluZT1DZix0LnBvaW50UmFkaWFsPXpmLHQubGlua0hvcml6b250YWw9ZnVuY3Rpb24oKXtyZXR1cm4gRGYoVWYpfSx0LmxpbmtWZXJ0aWNhbD1mdW5jdGlvbigpe3JldHVybiBEZihxZil9LHQubGlua1JhZGlhbD1mdW5jdGlvbigpe3ZhciB0PURmKE9mKTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0fSx0LnN5bWJvbD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgdDtpZihyfHwocj10PW9lKCkpLG4uYXBwbHkodGhpcyxhcmd1bWVudHMpLmRyYXcociwrZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpLHQpcmV0dXJuIHI9bnVsbCx0K1wiXCJ8fG51bGx9dmFyIG49bGYoa18pLGU9bGYoNjQpLHI9bnVsbDtyZXR1cm4gdC50eXBlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZTpsZihlKSx0KTpufSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTplfSx0LmNvbnRleHQ9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOm4sdCk6cn0sdH0sdC5zeW1ib2xzPVhfLHQuc3ltYm9sQ2lyY2xlPWtfLHQuc3ltYm9sQ3Jvc3M9Q18sdC5zeW1ib2xEaWFtb25kPVJfLHQuc3ltYm9sU3F1YXJlPU9fLHQuc3ltYm9sU3Rhcj1xXyx0LnN5bWJvbFRyaWFuZ2xlPUJfLHQuc3ltYm9sV3llPUhfLHQuY3VydmVCYXNpc0Nsb3NlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IElmKHQpfSx0LmN1cnZlQmFzaXNPcGVuPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgamYodCl9LHQuY3VydmVCYXNpcz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEZmKHQpfSx0LmN1cnZlQnVuZGxlPUdfLHQuY3VydmVDYXJkaW5hbENsb3NlZD0kXyx0LmN1cnZlQ2FyZGluYWxPcGVuPVdfLHQuY3VydmVDYXJkaW5hbD1WXyx0LmN1cnZlQ2F0bXVsbFJvbUNsb3NlZD1RXyx0LmN1cnZlQ2F0bXVsbFJvbU9wZW49Sl8sdC5jdXJ2ZUNhdG11bGxSb209Wl8sdC5jdXJ2ZUxpbmVhckNsb3NlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEtmKHQpfSx0LmN1cnZlTGluZWFyPW1mLHQuY3VydmVNb25vdG9uZVg9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpYyh0KX0sdC5jdXJ2ZU1vbm90b25lWT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG9jKHQpfSx0LmN1cnZlTmF0dXJhbD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHVjKHQpfSx0LmN1cnZlU3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGNjKHQsLjUpfSx0LmN1cnZlU3RlcEFmdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgY2ModCwxKX0sdC5jdXJ2ZVN0ZXBCZWZvcmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0LDApfSx0LnN0YWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgbyxhLHU9bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksZj10Lmxlbmd0aCxjPXUubGVuZ3RoLHM9bmV3IEFycmF5KGMpO2ZvcihvPTA7bzxjOysrbyl7Zm9yKHZhciBsLGg9dVtvXSxkPXNbb109bmV3IEFycmF5KGYpLHA9MDtwPGY7KytwKWRbcF09bD1bMCwraSh0W3BdLGgscCx0KV0sbC5kYXRhPXRbcF07ZC5rZXk9aH1mb3Iobz0wLGE9ZShzKTtvPGM7KytvKXNbYVtvXV0uaW5kZXg9bztyZXR1cm4gcihzLGEpLHN9dmFyIG49bGYoW10pLGU9bGMscj1zYyxpPWhjO3JldHVybiB0LmtleXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49XCJmdW5jdGlvblwiPT10eXBlb2YgZT9lOmxmKEVfLmNhbGwoZSkpLHQpOm59LHQudmFsdWU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKCtuKSx0KTppfSx0Lm9yZGVyPWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PW4/bGM6XCJmdW5jdGlvblwiPT10eXBlb2Ygbj9uOmxmKEVfLmNhbGwobikpLHQpOmV9LHQub2Zmc2V0PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/c2M6bix0KTpyfSx0fSx0LnN0YWNrT2Zmc2V0RXhwYW5kPWZ1bmN0aW9uKHQsbil7aWYoKHI9dC5sZW5ndGgpPjApe2Zvcih2YXIgZSxyLGksbz0wLGE9dFswXS5sZW5ndGg7bzxhOysrbyl7Zm9yKGk9ZT0wO2U8cjsrK2UpaSs9dFtlXVtvXVsxXXx8MDtpZihpKWZvcihlPTA7ZTxyOysrZSl0W2VdW29dWzFdLz1pfXNjKHQsbil9fSx0LnN0YWNrT2Zmc2V0RGl2ZXJnaW5nPWZ1bmN0aW9uKHQsbil7aWYoKHU9dC5sZW5ndGgpPjEpZm9yKHZhciBlLHIsaSxvLGEsdSxmPTAsYz10W25bMF1dLmxlbmd0aDtmPGM7KytmKWZvcihvPWE9MCxlPTA7ZTx1OysrZSkoaT0ocj10W25bZV1dW2ZdKVsxXS1yWzBdKT49MD8oclswXT1vLHJbMV09bys9aSk6aTwwPyhyWzFdPWEsclswXT1hKz1pKTpyWzBdPW99LHQuc3RhY2tPZmZzZXROb25lPXNjLHQuc3RhY2tPZmZzZXRTaWxob3VldHRlPWZ1bmN0aW9uKHQsbil7aWYoKGU9dC5sZW5ndGgpPjApe2Zvcih2YXIgZSxyPTAsaT10W25bMF1dLG89aS5sZW5ndGg7cjxvOysrcil7Zm9yKHZhciBhPTAsdT0wO2E8ZTsrK2EpdSs9dFthXVtyXVsxXXx8MDtpW3JdWzFdKz1pW3JdWzBdPS11LzJ9c2ModCxuKX19LHQuc3RhY2tPZmZzZXRXaWdnbGU9ZnVuY3Rpb24odCxuKXtpZigoaT10Lmxlbmd0aCk+MCYmKHI9KGU9dFtuWzBdXSkubGVuZ3RoKT4wKXtmb3IodmFyIGUscixpLG89MCxhPTE7YTxyOysrYSl7Zm9yKHZhciB1PTAsZj0wLGM9MDt1PGk7Kyt1KXtmb3IodmFyIHM9dFtuW3VdXSxsPXNbYV1bMV18fDAsaD0obC0oc1thLTFdWzFdfHwwKSkvMixkPTA7ZDx1OysrZCl7dmFyIHA9dFtuW2RdXTtoKz0ocFthXVsxXXx8MCktKHBbYS0xXVsxXXx8MCl9Zis9bCxjKz1oKmx9ZVthLTFdWzFdKz1lW2EtMV1bMF09byxmJiYoby09Yy9mKX1lW2EtMV1bMV0rPWVbYS0xXVswXT1vLHNjKHQsbil9fSx0LnN0YWNrT3JkZXJBc2NlbmRpbmc9ZGMsdC5zdGFja09yZGVyRGVzY2VuZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gZGModCkucmV2ZXJzZSgpfSx0LnN0YWNrT3JkZXJJbnNpZGVPdXQ9ZnVuY3Rpb24odCl7dmFyIG4sZSxyPXQubGVuZ3RoLGk9dC5tYXAocGMpLG89bGModCkuc29ydChmdW5jdGlvbih0LG4pe3JldHVybiBpW25dLWlbdF19KSxhPTAsdT0wLGY9W10sYz1bXTtmb3Iobj0wO248cjsrK24pZT1vW25dLGE8dT8oYSs9aVtlXSxmLnB1c2goZSkpOih1Kz1pW2VdLGMucHVzaChlKSk7cmV0dXJuIGMucmV2ZXJzZSgpLmNvbmNhdChmKX0sdC5zdGFja09yZGVyTm9uZT1sYyx0LnN0YWNrT3JkZXJSZXZlcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBsYyh0KS5yZXZlcnNlKCl9LHQudGltZUludGVydmFsPUlhLHQudGltZU1pbGxpc2Vjb25kPUR2LHQudGltZU1pbGxpc2Vjb25kcz1Vdix0LnV0Y01pbGxpc2Vjb25kPUR2LHQudXRjTWlsbGlzZWNvbmRzPVV2LHQudGltZVNlY29uZD1Zdix0LnRpbWVTZWNvbmRzPUJ2LHQudXRjU2Vjb25kPVl2LHQudXRjU2Vjb25kcz1Cdix0LnRpbWVNaW51dGU9RnYsdC50aW1lTWludXRlcz1Jdix0LnRpbWVIb3VyPWp2LHQudGltZUhvdXJzPUh2LHQudGltZURheT1Ydix0LnRpbWVEYXlzPUd2LHQudGltZVdlZWs9VnYsdC50aW1lV2Vla3M9dGcsdC50aW1lU3VuZGF5PVZ2LHQudGltZVN1bmRheXM9dGcsdC50aW1lTW9uZGF5PSR2LHQudGltZU1vbmRheXM9bmcsdC50aW1lVHVlc2RheT1Xdix0LnRpbWVUdWVzZGF5cz1lZyx0LnRpbWVXZWRuZXNkYXk9WnYsdC50aW1lV2VkbmVzZGF5cz1yZyx0LnRpbWVUaHVyc2RheT1Rdix0LnRpbWVUaHVyc2RheXM9aWcsdC50aW1lRnJpZGF5PUp2LHQudGltZUZyaWRheXM9b2csdC50aW1lU2F0dXJkYXk9S3YsdC50aW1lU2F0dXJkYXlzPWFnLHQudGltZU1vbnRoPXVnLHQudGltZU1vbnRocz1mZyx0LnRpbWVZZWFyPWNnLHQudGltZVllYXJzPXNnLHQudXRjTWludXRlPWxnLHQudXRjTWludXRlcz1oZyx0LnV0Y0hvdXI9ZGcsdC51dGNIb3Vycz1wZyx0LnV0Y0RheT12Zyx0LnV0Y0RheXM9Z2csdC51dGNXZWVrPXlnLHQudXRjV2Vla3M9QWcsdC51dGNTdW5kYXk9eWcsdC51dGNTdW5kYXlzPUFnLHQudXRjTW9uZGF5PV9nLHQudXRjTW9uZGF5cz1UZyx0LnV0Y1R1ZXNkYXk9YmcsdC51dGNUdWVzZGF5cz1OZyx0LnV0Y1dlZG5lc2RheT1tZyx0LnV0Y1dlZG5lc2RheXM9U2csdC51dGNUaHVyc2RheT14Zyx0LnV0Y1RodXJzZGF5cz1FZyx0LnV0Y0ZyaWRheT13Zyx0LnV0Y0ZyaWRheXM9a2csdC51dGNTYXR1cmRheT1NZyx0LnV0Y1NhdHVyZGF5cz1DZyx0LnV0Y01vbnRoPVBnLHQudXRjTW9udGhzPXpnLHQudXRjWWVhcj1SZyx0LnV0Y1llYXJzPURnLHQudGltZUZvcm1hdERlZmF1bHRMb2NhbGU9bmYsdC50aW1lRm9ybWF0TG9jYWxlPSRhLHQuaXNvRm9ybWF0PUZnLHQuaXNvUGFyc2U9SWcsdC5ub3c9d24sdC50aW1lcj1Ubix0LnRpbWVyRmx1c2g9Tm4sdC50aW1lb3V0PUNuLHQuaW50ZXJ2YWw9ZnVuY3Rpb24odCxuLGUpe3ZhciByPW5ldyBBbixpPW47cmV0dXJuIG51bGw9PW4/KHIucmVzdGFydCh0LG4sZSkscik6KG49K24sZT1udWxsPT1lP3duKCk6K2Usci5yZXN0YXJ0KGZ1bmN0aW9uIG8oYSl7YSs9aSxyLnJlc3RhcnQobyxpKz1uLGUpLHQoYSl9LG4sZSkscil9LHQudHJhbnNpdGlvbj1Zbix0LmFjdGl2ZT1mdW5jdGlvbih0LG4pe3ZhciBlLHIsaT10Ll9fdHJhbnNpdGlvbjtpZihpKXtuPW51bGw9PW4/bnVsbDpuK1wiXCI7Zm9yKHIgaW4gaSlpZigoZT1pW3JdKS5zdGF0ZT5MbCYmZS5uYW1lPT09bilyZXR1cm4gbmV3IE9uKFtbdF1dLGhoLG4sK3IpfXJldHVybiBudWxsfSx0LmludGVycnVwdD1Ebix0LnZvcm9ub2k9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiBuZXcgQmModC5tYXAoZnVuY3Rpb24ocixpKXt2YXIgbz1bTWF0aC5yb3VuZChuKHIsaSx0KS9hYikqYWIsTWF0aC5yb3VuZChlKHIsaSx0KS9hYikqYWJdO3JldHVybiBvLmluZGV4PWksby5kYXRhPXIsb30pLHIpfXZhciBuPWdjLGU9eWMscj1udWxsO3JldHVybiB0LnBvbHlnb25zPWZ1bmN0aW9uKG4pe3JldHVybiB0KG4pLnBvbHlnb25zKCl9LHQubGlua3M9ZnVuY3Rpb24obil7cmV0dXJuIHQobikubGlua3MoKX0sdC50cmlhbmdsZXM9ZnVuY3Rpb24obil7cmV0dXJuIHQobikudHJpYW5nbGVzKCl9LHQueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6dmMoK2UpLHQpOm59LHQueT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP246dmMoK24pLHQpOmV9LHQuZXh0ZW50PWZ1bmN0aW9uKG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PW4/bnVsbDpbWytuWzBdWzBdLCtuWzBdWzFdXSxbK25bMV1bMF0sK25bMV1bMV1dXSx0KTpyJiZbW3JbMF1bMF0sclswXVsxXV0sW3JbMV1bMF0sclsxXVsxXV1dfSx0LnNpemU9ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bnVsbD09bj9udWxsOltbMCwwXSxbK25bMF0sK25bMV1dXSx0KTpyJiZbclsxXVswXS1yWzBdWzBdLHJbMV1bMV0tclswXVsxXV19LHR9LHQuem9vbT1mdW5jdGlvbigpe2Z1bmN0aW9uIG4odCl7dC5wcm9wZXJ0eShcIl9fem9vbVwiLCRjKS5vbihcIndoZWVsLnpvb21cIixmKS5vbihcIm1vdXNlZG93bi56b29tXCIsYykub24oXCJkYmxjbGljay56b29tXCIscykuZmlsdGVyKG0pLm9uKFwidG91Y2hzdGFydC56b29tXCIsbCkub24oXCJ0b3VjaG1vdmUuem9vbVwiLGgpLm9uKFwidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tXCIsZCkuc3R5bGUoXCJ0b3VjaC1hY3Rpb25cIixcIm5vbmVcIikuc3R5bGUoXCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3JcIixcInJnYmEoMCwwLDAsMClcIil9ZnVuY3Rpb24gZSh0LG4pe3JldHVybihuPU1hdGgubWF4KHhbMF0sTWF0aC5taW4oeFsxXSxuKSkpPT09dC5rP3Q6bmV3IEljKG4sdC54LHQueSl9ZnVuY3Rpb24gcih0LG4sZSl7dmFyIHI9blswXS1lWzBdKnQuayxpPW5bMV0tZVsxXSp0Lms7cmV0dXJuIHI9PT10LngmJmk9PT10Lnk/dDpuZXcgSWModC5rLHIsaSl9ZnVuY3Rpb24gaSh0KXtyZXR1cm5bKCt0WzBdWzBdKyArdFsxXVswXSkvMiwoK3RbMF1bMV0rICt0WzFdWzFdKS8yXX1mdW5jdGlvbiBvKHQsbixlKXt0Lm9uKFwic3RhcnQuem9vbVwiLGZ1bmN0aW9uKCl7YSh0aGlzLGFyZ3VtZW50cykuc3RhcnQoKX0pLm9uKFwiaW50ZXJydXB0Lnpvb20gZW5kLnpvb21cIixmdW5jdGlvbigpe2EodGhpcyxhcmd1bWVudHMpLmVuZCgpfSkudHdlZW4oXCJ6b29tXCIsZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMscj1hKHRoaXMsdCksbz15LmFwcGx5KHRoaXMsdCksdT1lfHxpKG8pLGY9TWF0aC5tYXgob1sxXVswXS1vWzBdWzBdLG9bMV1bMV0tb1swXVsxXSksYz10aGlzLl9fem9vbSxzPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLHQpOm4sbD1BKGMuaW52ZXJ0KHUpLmNvbmNhdChmL2Muaykscy5pbnZlcnQodSkuY29uY2F0KGYvcy5rKSk7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKDE9PT10KXQ9cztlbHNle3ZhciBuPWwodCksZT1mL25bMl07dD1uZXcgSWMoZSx1WzBdLW5bMF0qZSx1WzFdLW5bMV0qZSl9ci56b29tKG51bGwsdCl9fSl9ZnVuY3Rpb24gYSh0LG4pe2Zvcih2YXIgZSxyPTAsaT1ULmxlbmd0aDtyPGk7KytyKWlmKChlPVRbcl0pLnRoYXQ9PT10KXJldHVybiBlO3JldHVybiBuZXcgdSh0LG4pfWZ1bmN0aW9uIHUodCxuKXt0aGlzLnRoYXQ9dCx0aGlzLmFyZ3M9bix0aGlzLmluZGV4PS0xLHRoaXMuYWN0aXZlPTAsdGhpcy5leHRlbnQ9eS5hcHBseSh0LG4pfWZ1bmN0aW9uIGYoKXtpZihnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIHQ9YSh0aGlzLGFyZ3VtZW50cyksbj10aGlzLl9fem9vbSxpPU1hdGgubWF4KHhbMF0sTWF0aC5taW4oeFsxXSxuLmsqTWF0aC5wb3coMixiLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpKSxvPXB0KHRoaXMpO2lmKHQud2hlZWwpdC5tb3VzZVswXVswXT09PW9bMF0mJnQubW91c2VbMF1bMV09PT1vWzFdfHwodC5tb3VzZVsxXT1uLmludmVydCh0Lm1vdXNlWzBdPW8pKSxjbGVhclRpbWVvdXQodC53aGVlbCk7ZWxzZXtpZihuLms9PT1pKXJldHVybjt0Lm1vdXNlPVtvLG4uaW52ZXJ0KG8pXSxEbih0aGlzKSx0LnN0YXJ0KCl9WGMoKSx0LndoZWVsPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LndoZWVsPW51bGwsdC5lbmQoKX0sayksdC56b29tKFwibW91c2VcIixfKHIoZShuLGkpLHQubW91c2VbMF0sdC5tb3VzZVsxXSksdC5leHRlbnQsdykpfX1mdW5jdGlvbiBjKCl7aWYoIXYmJmcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbj1hKHRoaXMsYXJndW1lbnRzKSxlPWN0KHQuZXZlbnQudmlldykub24oXCJtb3VzZW1vdmUuem9vbVwiLGZ1bmN0aW9uKCl7aWYoWGMoKSwhbi5tb3ZlZCl7dmFyIGU9dC5ldmVudC5jbGllbnRYLW8saT10LmV2ZW50LmNsaWVudFktdTtuLm1vdmVkPWUqZStpKmk+Q31uLnpvb20oXCJtb3VzZVwiLF8ocihuLnRoYXQuX196b29tLG4ubW91c2VbMF09cHQobi50aGF0KSxuLm1vdXNlWzFdKSxuLmV4dGVudCx3KSl9LCEwKS5vbihcIm1vdXNldXAuem9vbVwiLGZ1bmN0aW9uKCl7ZS5vbihcIm1vdXNlbW92ZS56b29tIG1vdXNldXAuem9vbVwiLG51bGwpLGJ0KHQuZXZlbnQudmlldyxuLm1vdmVkKSxYYygpLG4uZW5kKCl9LCEwKSxpPXB0KHRoaXMpLG89dC5ldmVudC5jbGllbnRYLHU9dC5ldmVudC5jbGllbnRZO190KHQuZXZlbnQudmlldyksSGMoKSxuLm1vdXNlPVtpLHRoaXMuX196b29tLmludmVydChpKV0sRG4odGhpcyksbi5zdGFydCgpfX1mdW5jdGlvbiBzKCl7aWYoZy5hcHBseSh0aGlzLGFyZ3VtZW50cykpe3ZhciBpPXRoaXMuX196b29tLGE9cHQodGhpcyksdT1pLmludmVydChhKSxmPWkuayoodC5ldmVudC5zaGlmdEtleT8uNToyKSxjPV8ocihlKGksZiksYSx1KSx5LmFwcGx5KHRoaXMsYXJndW1lbnRzKSx3KTtYYygpLE0+MD9jdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oTSkuY2FsbChvLGMsYSk6Y3QodGhpcykuY2FsbChuLnRyYW5zZm9ybSxjKX19ZnVuY3Rpb24gbCgpe2lmKGcuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgbixlLHIsaSxvPWEodGhpcyxhcmd1bWVudHMpLHU9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxmPXUubGVuZ3RoO2ZvcihIYygpLGU9MDtlPGY7KytlKWk9W2k9dnQodGhpcyx1LChyPXVbZV0pLmlkZW50aWZpZXIpLHRoaXMuX196b29tLmludmVydChpKSxyLmlkZW50aWZpZXJdLG8udG91Y2gwP28udG91Y2gxfHwoby50b3VjaDE9aSk6KG8udG91Y2gwPWksbj0hMCk7aWYocCYmKHA9Y2xlYXJUaW1lb3V0KHApLCFvLnRvdWNoMSkpcmV0dXJuIG8uZW5kKCksdm9pZCgoaT1jdCh0aGlzKS5vbihcImRibGNsaWNrLnpvb21cIikpJiZpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSk7biYmKHA9c2V0VGltZW91dChmdW5jdGlvbigpe3A9bnVsbH0sRSksRG4odGhpcyksby5zdGFydCgpKX19ZnVuY3Rpb24gaCgpe3ZhciBuLGksbyx1LGY9YSh0aGlzLGFyZ3VtZW50cyksYz10LmV2ZW50LmNoYW5nZWRUb3VjaGVzLHM9Yy5sZW5ndGg7Zm9yKFhjKCkscCYmKHA9Y2xlYXJUaW1lb3V0KHApKSxuPTA7bjxzOysrbilvPXZ0KHRoaXMsYywoaT1jW25dKS5pZGVudGlmaWVyKSxmLnRvdWNoMCYmZi50b3VjaDBbMl09PT1pLmlkZW50aWZpZXI/Zi50b3VjaDBbMF09bzpmLnRvdWNoMSYmZi50b3VjaDFbMl09PT1pLmlkZW50aWZpZXImJihmLnRvdWNoMVswXT1vKTtpZihpPWYudGhhdC5fX3pvb20sZi50b3VjaDEpe3ZhciBsPWYudG91Y2gwWzBdLGg9Zi50b3VjaDBbMV0sZD1mLnRvdWNoMVswXSx2PWYudG91Y2gxWzFdLGc9KGc9ZFswXS1sWzBdKSpnKyhnPWRbMV0tbFsxXSkqZyx5PSh5PXZbMF0taFswXSkqeSsoeT12WzFdLWhbMV0pKnk7aT1lKGksTWF0aC5zcXJ0KGcveSkpLG89WyhsWzBdK2RbMF0pLzIsKGxbMV0rZFsxXSkvMl0sdT1bKGhbMF0rdlswXSkvMiwoaFsxXSt2WzFdKS8yXX1lbHNle2lmKCFmLnRvdWNoMClyZXR1cm47bz1mLnRvdWNoMFswXSx1PWYudG91Y2gwWzFdfWYuem9vbShcInRvdWNoXCIsXyhyKGksbyx1KSxmLmV4dGVudCx3KSl9ZnVuY3Rpb24gZCgpe3ZhciBuLGUscj1hKHRoaXMsYXJndW1lbnRzKSxpPXQuZXZlbnQuY2hhbmdlZFRvdWNoZXMsbz1pLmxlbmd0aDtmb3IoSGMoKSx2JiZjbGVhclRpbWVvdXQodiksdj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dj1udWxsfSxFKSxuPTA7bjxvOysrbillPWlbbl0sci50b3VjaDAmJnIudG91Y2gwWzJdPT09ZS5pZGVudGlmaWVyP2RlbGV0ZSByLnRvdWNoMDpyLnRvdWNoMSYmci50b3VjaDFbMl09PT1lLmlkZW50aWZpZXImJmRlbGV0ZSByLnRvdWNoMTtyLnRvdWNoMSYmIXIudG91Y2gwJiYoci50b3VjaDA9ci50b3VjaDEsZGVsZXRlIHIudG91Y2gxKSxyLnRvdWNoMD9yLnRvdWNoMFsxXT10aGlzLl9fem9vbS5pbnZlcnQoci50b3VjaDBbMF0pOnIuZW5kKCl9dmFyIHAsdixnPUdjLHk9VmMsXz1RYyxiPVdjLG09WmMseD1bMCwxLzBdLHc9W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sTT0yNTAsQT1fbixUPVtdLFM9TihcInN0YXJ0XCIsXCJ6b29tXCIsXCJlbmRcIiksRT01MDAsaz0xNTAsQz0wO3JldHVybiBuLnRyYW5zZm9ybT1mdW5jdGlvbih0LG4pe3ZhciBlPXQuc2VsZWN0aW9uP3Quc2VsZWN0aW9uKCk6dDtlLnByb3BlcnR5KFwiX196b29tXCIsJGMpLHQhPT1lP28odCxuKTplLmludGVycnVwdCgpLmVhY2goZnVuY3Rpb24oKXthKHRoaXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4pLmVuZCgpfSl9LG4uc2NhbGVCeT1mdW5jdGlvbih0LGUpe24uc2NhbGVUbyh0LGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX196b29tLmsqKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6ZSl9KX0sbi5zY2FsZVRvPWZ1bmN0aW9uKHQsbyl7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3ZhciB0PXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sYT1pKHQpLHU9bi5pbnZlcnQoYSksZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBvP28uYXBwbHkodGhpcyxhcmd1bWVudHMpOm87cmV0dXJuIF8ocihlKG4sZiksYSx1KSx0LHcpfSl9LG4udHJhbnNsYXRlQnk9ZnVuY3Rpb24odCxlLHIpe24udHJhbnNmb3JtKHQsZnVuY3Rpb24oKXtyZXR1cm4gXyh0aGlzLl9fem9vbS50cmFuc2xhdGUoXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLFwiZnVuY3Rpb25cIj09dHlwZW9mIHI/ci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cikseS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdyl9KX0sbi50cmFuc2xhdGVUbz1mdW5jdGlvbih0LGUscil7bi50cmFuc2Zvcm0odCxmdW5jdGlvbigpe3ZhciB0PXkuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dGhpcy5fX3pvb20sbz1pKHQpO3JldHVybiBfKGZiLnRyYW5zbGF0ZShvWzBdLG9bMV0pLnNjYWxlKG4uaykudHJhbnNsYXRlKFwiZnVuY3Rpb25cIj09dHlwZW9mIGU/LWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1lLFwiZnVuY3Rpb25cIj09dHlwZW9mIHI/LXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1yKSx0LHcpfSl9LHUucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigpe3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy5pbmRleD1ULnB1c2godGhpcyktMSx0aGlzLmVtaXQoXCJzdGFydFwiKSksdGhpc30sem9vbTpmdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLm1vdXNlJiZcIm1vdXNlXCIhPT10JiYodGhpcy5tb3VzZVsxXT1uLmludmVydCh0aGlzLm1vdXNlWzBdKSksdGhpcy50b3VjaDAmJlwidG91Y2hcIiE9PXQmJih0aGlzLnRvdWNoMFsxXT1uLmludmVydCh0aGlzLnRvdWNoMFswXSkpLHRoaXMudG91Y2gxJiZcInRvdWNoXCIhPT10JiYodGhpcy50b3VjaDFbMV09bi5pbnZlcnQodGhpcy50b3VjaDFbMF0pKSx0aGlzLnRoYXQuX196b29tPW4sdGhpcy5lbWl0KFwiem9vbVwiKSx0aGlzfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09LS10aGlzLmFjdGl2ZSYmKFQuc3BsaWNlKHRoaXMuaW5kZXgsMSksdGhpcy5pbmRleD0tMSx0aGlzLmVtaXQoXCJlbmRcIikpLHRoaXN9LGVtaXQ6ZnVuY3Rpb24odCl7b3QobmV3IGZ1bmN0aW9uKHQsbixlKXt0aGlzLnRhcmdldD10LHRoaXMudHlwZT1uLHRoaXMudHJhbnNmb3JtPWV9KG4sdCx0aGlzLnRoYXQuX196b29tKSxTLmFwcGx5LFMsW3QsdGhpcy50aGF0LHRoaXMuYXJnc10pfX0sbi53aGVlbERlbHRhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDpGYygrdCksbik6Yn0sbi5maWx0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCEhdCksbik6Z30sbi50b3VjaGFibGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKCEhdCksbik6bX0sbi5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9XCJmdW5jdGlvblwiPT10eXBlb2YgdD90OkZjKFtbK3RbMF1bMF0sK3RbMF1bMV1dLFsrdFsxXVswXSwrdFsxXVsxXV1dKSxuKTp5fSxuLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh4WzBdPSt0WzBdLHhbMV09K3RbMV0sbik6W3hbMF0seFsxXV19LG4udHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3WzBdWzBdPSt0WzBdWzBdLHdbMV1bMF09K3RbMV1bMF0sd1swXVsxXT0rdFswXVsxXSx3WzFdWzFdPSt0WzFdWzFdLG4pOltbd1swXVswXSx3WzBdWzFdXSxbd1sxXVswXSx3WzFdWzFdXV19LG4uY29uc3RyYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfPXQsbik6X30sbi5kdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT0rdCxuKTpNfSxuLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPXQsbik6QX0sbi5vbj1mdW5jdGlvbigpe3ZhciB0PVMub24uYXBwbHkoUyxhcmd1bWVudHMpO3JldHVybiB0PT09Uz9uOnR9LG4uY2xpY2tEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oQz0odD0rdCkqdCxuKTpNYXRoLnNxcnQoQyl9LG59LHQuem9vbVRyYW5zZm9ybT1qYyx0Lnpvb21JZGVudGl0eT1mYixPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0pOyIsIi8qIVxuICogTGlnaHRib3ggZm9yIEJvb3RzdHJhcCBieSBAYXNobGV5ZHdcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2hsZXlkdy9saWdodGJveFxuICpcbiAqIExpY2Vuc2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc2hsZXlkdy9saWdodGJveC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbitmdW5jdGlvbiAoJCkge1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgTGlnaHRib3ggPSAoZnVuY3Rpb24gKCQpIHtcblxuXHR2YXIgTkFNRSA9ICdla2tvTGlnaHRib3gnO1xuXHR2YXIgSlFVRVJZX05PX0NPTkZMSUNUID0gJC5mbltOQU1FXTtcblxuXHR2YXIgRGVmYXVsdCA9IHtcblx0XHR0aXRsZTogJycsXG5cdFx0Zm9vdGVyOiAnJyxcblx0XHRtYXhXaWR0aDogOTk5OSxcblx0XHRtYXhIZWlnaHQ6IDk5OTksXG5cdFx0c2hvd0Fycm93czogdHJ1ZSwgLy9kaXNwbGF5IHRoZSBsZWZ0IC8gcmlnaHQgYXJyb3dzIG9yIG5vdFxuXHRcdHdyYXBwaW5nOiB0cnVlLCAvL2lmIHRydWUsIGdhbGxlcnkgbG9vcHMgaW5maW5pdGVseVxuXHRcdHR5cGU6IG51bGwsIC8vZm9yY2UgdGhlIGxpZ2h0Ym94IGludG8gaW1hZ2UgLyB5b3V0dWJlIG1vZGUuIGlmIG51bGwsIG9yIG5vdCBpbWFnZXx5b3V0dWJlfHZpbWVvOyBkZXRlY3QgaXRcblx0XHRhbHdheXNTaG93Q2xvc2U6IGZhbHNlLCAvL2Fsd2F5cyBzaG93IHRoZSBjbG9zZSBidXR0b24sIGV2ZW4gaWYgdGhlcmUgaXMgbm8gdGl0bGVcblx0XHRsb2FkaW5nTWVzc2FnZTogJzxkaXYgY2xhc3M9XCJla2tvLWxpZ2h0Ym94LWxvYWRlclwiPjxkaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PicsIC8vIGh0dHA6Ly90b2JpYXNhaGxpbi5jb20vc3BpbmtpdC9cblx0XHRsZWZ0QXJyb3c6ICc8c3Bhbj4mIzEwMDk0Ozwvc3Bhbj4nLFxuXHRcdHJpZ2h0QXJyb3c6ICc8c3Bhbj4mIzEwMDk1Ozwvc3Bhbj4nLFxuXHRcdHN0cmluZ3M6IHtcblx0XHRcdGNsb3NlOiAnQ2xvc2UnLFxuXHRcdFx0ZmFpbDogJ0ZhaWxlZCB0byBsb2FkIGltYWdlOicsXG5cdFx0XHR0eXBlOiAnQ291bGQgbm90IGRldGVjdCByZW1vdGUgdGFyZ2V0IHR5cGUuIEZvcmNlIHRoZSB0eXBlIHVzaW5nIGRhdGEtdHlwZSdcblx0XHR9LFxuXHRcdGRvYzogZG9jdW1lbnQsIC8vIGlmIGluIGFuIGlmcmFtZSBjYW4gc3BlY2lmeSB0b3AuZG9jdW1lbnRcblx0XHRvblNob3c6IGZ1bmN0aW9uIG9uU2hvdygpIHt9LFxuXHRcdG9uU2hvd246IGZ1bmN0aW9uIG9uU2hvd24oKSB7fSxcblx0XHRvbkhpZGU6IGZ1bmN0aW9uIG9uSGlkZSgpIHt9LFxuXHRcdG9uSGlkZGVuOiBmdW5jdGlvbiBvbkhpZGRlbigpIHt9LFxuXHRcdG9uTmF2aWdhdGU6IGZ1bmN0aW9uIG9uTmF2aWdhdGUoKSB7fSxcblx0XHRvbkNvbnRlbnRMb2FkZWQ6IGZ1bmN0aW9uIG9uQ29udGVudExvYWRlZCgpIHt9XG5cdH07XG5cblx0dmFyIExpZ2h0Ym94ID0gKGZ1bmN0aW9uICgpIHtcblx0XHRfY3JlYXRlQ2xhc3MoTGlnaHRib3gsIG51bGwsIFt7XG5cdFx0XHRrZXk6ICdEZWZhdWx0JyxcblxuXHRcdFx0LyoqXG4gICAgICAgQ2xhc3MgcHJvcGVydGllczpcbiAgIFx0IF8kZWxlbWVudDogbnVsbCAtPiB0aGUgPGE+IGVsZW1lbnQgY3VycmVudGx5IGJlaW5nIGRpc3BsYXllZFxuICAgIF8kbW9kYWw6IFRoZSBib290c3RyYXAgbW9kYWwgZ2VuZXJhdGVkXG4gICAgICAgXyRtb2RhbERpYWxvZzogVGhlIC5tb2RhbC1kaWFsb2dcbiAgICAgICBfJG1vZGFsQ29udGVudDogVGhlIC5tb2RhbC1jb250ZW50XG4gICAgICAgXyRtb2RhbEJvZHk6IFRoZSAubW9kYWwtYm9keVxuICAgICAgIF8kbW9kYWxIZWFkZXI6IFRoZSAubW9kYWwtaGVhZGVyXG4gICAgICAgXyRtb2RhbEZvb3RlcjogVGhlIC5tb2RhbC1mb290ZXJcbiAgICBfJGxpZ2h0Ym94Q29udGFpbmVyT25lOiBDb250YWluZXIgb2YgdGhlIGZpcnN0IGxpZ2h0Ym94IGVsZW1lbnRcbiAgICBfJGxpZ2h0Ym94Q29udGFpbmVyVHdvOiBDb250YWluZXIgb2YgdGhlIHNlY29uZCBsaWdodGJveCBlbGVtZW50XG4gICAgXyRsaWdodGJveEJvZHk6IEZpcnN0IGVsZW1lbnQgaW4gdGhlIGNvbnRhaW5lclxuICAgIF8kbW9kYWxBcnJvd3M6IFRoZSBvdmVybGF5ZWQgYXJyb3dzIGNvbnRhaW5lclxuICAgXHQgXyRnYWxsZXJ5SXRlbXM6IE90aGVyIDxhPidzIGF2YWlsYWJsZSBmb3IgdGhpcyBnYWxsZXJ5XG4gICAgX2dhbGxlcnlOYW1lOiBOYW1lIG9mIHRoZSBjdXJyZW50IGRhdGEoJ2dhbGxlcnknKSBzaG93aW5nXG4gICAgX2dhbGxlcnlJbmRleDogVGhlIGN1cnJlbnQgaW5kZXggb2YgdGhlIF8kZ2FsbGVyeUl0ZW1zIGJlaW5nIHNob3duXG4gICBcdCBfY29uZmlnOiB7fSB0aGUgb3B0aW9ucyBmb3IgdGhlIG1vZGFsXG4gICAgX21vZGFsSWQ6IHVuaXF1ZSBpZCBmb3IgdGhlIGN1cnJlbnQgbGlnaHRib3hcbiAgICBfcGFkZGluZyAvIF9ib3JkZXI6IENTUyBwcm9wZXJ0aWVzIGZvciB0aGUgbW9kYWwgY29udGFpbmVyOyB0aGVzZSBhcmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIGF2YWlsYWJsZSBzcGFjZSBmb3IgdGhlIGNvbnRlbnRcbiAgIFx0ICovXG5cblx0XHRcdGdldDogZnVuY3Rpb24gZ2V0KCkge1xuXHRcdFx0XHRyZXR1cm4gRGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XSk7XG5cblx0XHRmdW5jdGlvbiBMaWdodGJveCgkZWxlbWVudCwgY29uZmlnKSB7XG5cdFx0XHR2YXIgX3RoaXMgPSB0aGlzO1xuXG5cdFx0XHRfY2xhc3NDYWxsQ2hlY2sodGhpcywgTGlnaHRib3gpO1xuXG5cdFx0XHR0aGlzLl9jb25maWcgPSAkLmV4dGVuZCh7fSwgRGVmYXVsdCwgY29uZmlnKTtcblx0XHRcdHRoaXMuXyRtb2RhbEFycm93cyA9IG51bGw7XG5cdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXggPSAwO1xuXHRcdFx0dGhpcy5fZ2FsbGVyeU5hbWUgPSBudWxsO1xuXHRcdFx0dGhpcy5fcGFkZGluZyA9IG51bGw7XG5cdFx0XHR0aGlzLl9ib3JkZXIgPSBudWxsO1xuXHRcdFx0dGhpcy5fdGl0bGVJc1Nob3duID0gZmFsc2U7XG5cdFx0XHR0aGlzLl9mb290ZXJJc1Nob3duID0gZmFsc2U7XG5cdFx0XHR0aGlzLl93YW50ZWRXaWR0aCA9IDA7XG5cdFx0XHR0aGlzLl93YW50ZWRIZWlnaHQgPSAwO1xuXHRcdFx0dGhpcy5fdG91Y2hzdGFydFggPSAwO1xuXHRcdFx0dGhpcy5fdG91Y2hlbmRYID0gMDtcblxuXHRcdFx0dGhpcy5fbW9kYWxJZCA9ICdla2tvTGlnaHRib3gtJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAgKyAxKTtcblx0XHRcdHRoaXMuXyRlbGVtZW50ID0gJGVsZW1lbnQgaW5zdGFuY2VvZiBqUXVlcnkgPyAkZWxlbWVudCA6ICQoJGVsZW1lbnQpO1xuXG5cdFx0XHR0aGlzLl9pc0Jvb3RzdHJhcDMgPSAkLmZuLm1vZGFsLkNvbnN0cnVjdG9yLlZFUlNJT05bMF0gPT0gMztcblxuXHRcdFx0dmFyIGg0ID0gJzxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+JyArICh0aGlzLl9jb25maWcudGl0bGUgfHwgXCImbmJzcDtcIikgKyAnPC9oND4nO1xuXHRcdFx0dmFyIGJ0biA9ICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiJyArIHRoaXMuX2NvbmZpZy5zdHJpbmdzLmNsb3NlICsgJ1wiPjxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+PC9idXR0b24+JztcblxuXHRcdFx0dmFyIGhlYWRlciA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyJyArICh0aGlzLl9jb25maWcudGl0bGUgfHwgdGhpcy5fY29uZmlnLmFsd2F5c1Nob3dDbG9zZSA/ICcnIDogJyBoaWRlJykgKyAnXCI+JyArICh0aGlzLl9pc0Jvb3RzdHJhcDMgPyBidG4gKyBoNCA6IGg0ICsgYnRuKSArICc8L2Rpdj4nO1xuXHRcdFx0dmFyIGZvb3RlciA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyJyArICh0aGlzLl9jb25maWcuZm9vdGVyID8gJycgOiAnIGhpZGUnKSArICdcIj4nICsgKHRoaXMuX2NvbmZpZy5mb290ZXIgfHwgXCImbmJzcDtcIikgKyAnPC9kaXY+Jztcblx0XHRcdHZhciBib2R5ID0gJzxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+PGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtY29udGFpbmVyXCI+PGRpdiBjbGFzcz1cImVra28tbGlnaHRib3gtaXRlbSBmYWRlIGluIHNob3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1pdGVtIGZhZGVcIj48L2Rpdj48L2Rpdj48L2Rpdj4nO1xuXHRcdFx0dmFyIGRpYWxvZyA9ICc8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCIgcm9sZT1cImRvY3VtZW50XCI+PGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj4nICsgaGVhZGVyICsgYm9keSArIGZvb3RlciArICc8L2Rpdj48L2Rpdj4nO1xuXHRcdFx0JCh0aGlzLl9jb25maWcuZG9jLmJvZHkpLmFwcGVuZCgnPGRpdiBpZD1cIicgKyB0aGlzLl9tb2RhbElkICsgJ1wiIGNsYXNzPVwiZWtrby1saWdodGJveCBtb2RhbCBmYWRlXCIgdGFiaW5kZXg9XCItMVwiIHRhYmluZGV4PVwiLTFcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+JyArIGRpYWxvZyArICc8L2Rpdj4nKTtcblxuXHRcdFx0dGhpcy5fJG1vZGFsID0gJCgnIycgKyB0aGlzLl9tb2RhbElkLCB0aGlzLl9jb25maWcuZG9jKTtcblx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZyA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtZGlhbG9nJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRtb2RhbENvbnRlbnQgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWNvbnRlbnQnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJG1vZGFsQm9keSA9IHRoaXMuXyRtb2RhbC5maW5kKCcubW9kYWwtYm9keScpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxIZWFkZXIgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWhlYWRlcicpLmZpcnN0KCk7XG5cdFx0XHR0aGlzLl8kbW9kYWxGb290ZXIgPSB0aGlzLl8kbW9kYWwuZmluZCgnLm1vZGFsLWZvb3RlcicpLmZpcnN0KCk7XG5cblx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lciA9IHRoaXMuXyRtb2RhbEJvZHkuZmluZCgnLmVra28tbGlnaHRib3gtY29udGFpbmVyJykuZmlyc3QoKTtcblx0XHRcdHRoaXMuXyRsaWdodGJveEJvZHlPbmUgPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnPiBkaXY6Zmlyc3QtY2hpbGQnKS5maXJzdCgpO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Qm9keVR3byA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCc+IGRpdjpsYXN0LWNoaWxkJykuZmlyc3QoKTtcblxuXHRcdFx0dGhpcy5fYm9yZGVyID0gdGhpcy5fY2FsY3VsYXRlQm9yZGVycygpO1xuXHRcdFx0dGhpcy5fcGFkZGluZyA9IHRoaXMuX2NhbGN1bGF0ZVBhZGRpbmcoKTtcblxuXHRcdFx0dGhpcy5fZ2FsbGVyeU5hbWUgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdnYWxsZXJ5Jyk7XG5cdFx0XHRpZiAodGhpcy5fZ2FsbGVyeU5hbWUpIHtcblx0XHRcdFx0dGhpcy5fJGdhbGxlcnlJdGVtcyA9ICQoZG9jdW1lbnQuYm9keSkuZmluZCgnKltkYXRhLWdhbGxlcnk9XCInICsgdGhpcy5fZ2FsbGVyeU5hbWUgKyAnXCJdJyk7XG5cdFx0XHRcdHRoaXMuX2dhbGxlcnlJbmRleCA9IHRoaXMuXyRnYWxsZXJ5SXRlbXMuaW5kZXgodGhpcy5fJGVsZW1lbnQpO1xuXHRcdFx0XHQkKGRvY3VtZW50KS5vbigna2V5ZG93bi5la2tvTGlnaHRib3gnLCB0aGlzLl9uYXZpZ2F0aW9uYWxCaW5kZXIuYmluZCh0aGlzKSk7XG5cblx0XHRcdFx0Ly8gYWRkIHRoZSBkaXJlY3Rpb25hbCBhcnJvd3MgdG8gdGhlIG1vZGFsXG5cdFx0XHRcdGlmICh0aGlzLl9jb25maWcuc2hvd0Fycm93cyAmJiB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIuYXBwZW5kKCc8ZGl2IGNsYXNzPVwiZWtrby1saWdodGJveC1uYXYtb3ZlcmxheVwiPjxhIGhyZWY9XCIjXCI+JyArIHRoaXMuX2NvbmZpZy5sZWZ0QXJyb3cgKyAnPC9hPjxhIGhyZWY9XCIjXCI+JyArIHRoaXMuX2NvbmZpZy5yaWdodEFycm93ICsgJzwvYT48L2Rpdj4nKTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MgPSB0aGlzLl8kbGlnaHRib3hDb250YWluZXIuZmluZCgnZGl2LmVra28tbGlnaHRib3gtbmF2LW92ZXJsYXknKS5maXJzdCgpO1xuXHRcdFx0XHRcdHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5vbignY2xpY2snLCAnYTpmaXJzdC1jaGlsZCcsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR0aGlzLl8kbGlnaHRib3hDb250YWluZXIub24oJ2NsaWNrJywgJ2E6bGFzdC1jaGlsZCcsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdHJldHVybiBfdGhpcy5uYXZpZ2F0ZVJpZ2h0KCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVOYXZpZ2F0aW9uKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5fJG1vZGFsLm9uKCdzaG93LmJzLm1vZGFsJywgdGhpcy5fY29uZmlnLm9uU2hvdy5iaW5kKHRoaXMpKS5vbignc2hvd24uYnMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl90b2dnbGVMb2FkaW5nKHRydWUpO1xuXHRcdFx0XHRfdGhpcy5faGFuZGxlKCk7XG5cdFx0XHRcdHJldHVybiBfdGhpcy5fY29uZmlnLm9uU2hvd24uY2FsbChfdGhpcyk7XG5cdFx0XHR9KS5vbignaGlkZS5icy5tb2RhbCcsIHRoaXMuX2NvbmZpZy5vbkhpZGUuYmluZCh0aGlzKSkub24oJ2hpZGRlbi5icy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0aWYgKF90aGlzLl9nYWxsZXJ5TmFtZSkge1xuXHRcdFx0XHRcdCQoZG9jdW1lbnQpLm9mZigna2V5ZG93bi5la2tvTGlnaHRib3gnKTtcblx0XHRcdFx0XHQkKHdpbmRvdykub2ZmKCdyZXNpemUuZWtrb0xpZ2h0Ym94Jyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0X3RoaXMuXyRtb2RhbC5yZW1vdmUoKTtcblx0XHRcdFx0cmV0dXJuIF90aGlzLl9jb25maWcub25IaWRkZW4uY2FsbChfdGhpcyk7XG5cdFx0XHR9KS5tb2RhbCh0aGlzLl9jb25maWcpO1xuXG5cdFx0XHQkKHdpbmRvdykub24oJ3Jlc2l6ZS5la2tvTGlnaHRib3gnLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdF90aGlzLl9yZXNpemUoX3RoaXMuX3dhbnRlZFdpZHRoLCBfdGhpcy5fd2FudGVkSGVpZ2h0KTtcblx0XHRcdH0pO1xuXHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLm9uKCd0b3VjaHN0YXJ0JywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fdG91Y2hzdGFydFggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5YO1xuXHRcdFx0fSkub24oJ3RvdWNoZW5kJywgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRfdGhpcy5fdG91Y2hlbmRYID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uc2NyZWVuWDtcblx0XHRcdFx0X3RoaXMuX3N3aXBlR2VzdXJlKCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRfY3JlYXRlQ2xhc3MoTGlnaHRib3gsIFt7XG5cdFx0XHRrZXk6ICdlbGVtZW50Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBlbGVtZW50KCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJGVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnbW9kYWwnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG1vZGFsKCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJG1vZGFsO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlVG8nLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIG5hdmlnYXRlVG8oaW5kZXgpIHtcblxuXHRcdFx0XHRpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gdGhpcy5fJGdhbGxlcnlJdGVtcy5sZW5ndGggLSAxKSByZXR1cm4gdGhpcztcblxuXHRcdFx0XHR0aGlzLl9nYWxsZXJ5SW5kZXggPSBpbmRleDtcblxuXHRcdFx0XHR0aGlzLnVwZGF0ZU5hdmlnYXRpb24oKTtcblxuXHRcdFx0XHR0aGlzLl8kZWxlbWVudCA9ICQodGhpcy5fJGdhbGxlcnlJdGVtcy5nZXQodGhpcy5fZ2FsbGVyeUluZGV4KSk7XG5cdFx0XHRcdHRoaXMuX2hhbmRsZSgpO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ25hdmlnYXRlTGVmdCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gbmF2aWdhdGVMZWZ0KCkge1xuXG5cdFx0XHRcdGlmICghdGhpcy5fJGdhbGxlcnlJdGVtcykgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA9PT0gMSkgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IDApIHtcblx0XHRcdFx0XHRpZiAodGhpcy5fY29uZmlnLndyYXBwaW5nKSB0aGlzLl9nYWxsZXJ5SW5kZXggPSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDE7ZWxzZSByZXR1cm47XG5cdFx0XHRcdH0gZWxzZSAvL2NpcmN1bGFyXG5cdFx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4LS07XG5cblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uTmF2aWdhdGUuY2FsbCh0aGlzLCAnbGVmdCcsIHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlVG8odGhpcy5fZ2FsbGVyeUluZGV4KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICduYXZpZ2F0ZVJpZ2h0Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBuYXZpZ2F0ZVJpZ2h0KCkge1xuXG5cdFx0XHRcdGlmICghdGhpcy5fJGdhbGxlcnlJdGVtcykgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCA9PT0gMSkgcmV0dXJuO1xuXG5cdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IHRoaXMuXyRnYWxsZXJ5SXRlbXMubGVuZ3RoIC0gMSkge1xuXHRcdFx0XHRcdGlmICh0aGlzLl9jb25maWcud3JhcHBpbmcpIHRoaXMuX2dhbGxlcnlJbmRleCA9IDA7ZWxzZSByZXR1cm47XG5cdFx0XHRcdH0gZWxzZSAvL2NpcmN1bGFyXG5cdFx0XHRcdFx0dGhpcy5fZ2FsbGVyeUluZGV4Kys7XG5cblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uTmF2aWdhdGUuY2FsbCh0aGlzLCAncmlnaHQnLCB0aGlzLl9nYWxsZXJ5SW5kZXgpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZVRvKHRoaXMuX2dhbGxlcnlJbmRleCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAndXBkYXRlTmF2aWdhdGlvbicsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gdXBkYXRlTmF2aWdhdGlvbigpIHtcblx0XHRcdFx0aWYgKCF0aGlzLl9jb25maWcud3JhcHBpbmcpIHtcblx0XHRcdFx0XHR2YXIgJG5hdiA9IHRoaXMuXyRsaWdodGJveENvbnRhaW5lci5maW5kKCdkaXYuZWtrby1saWdodGJveC1uYXYtb3ZlcmxheScpO1xuXHRcdFx0XHRcdGlmICh0aGlzLl9nYWxsZXJ5SW5kZXggPT09IDApICRuYXYuZmluZCgnYTpmaXJzdC1jaGlsZCcpLmFkZENsYXNzKCdkaXNhYmxlZCcpO2Vsc2UgJG5hdi5maW5kKCdhOmZpcnN0LWNoaWxkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cblx0XHRcdFx0XHRpZiAodGhpcy5fZ2FsbGVyeUluZGV4ID09PSB0aGlzLl8kZ2FsbGVyeUl0ZW1zLmxlbmd0aCAtIDEpICRuYXYuZmluZCgnYTpsYXN0LWNoaWxkJykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7ZWxzZSAkbmF2LmZpbmQoJ2E6bGFzdC1jaGlsZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnY2xvc2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIGNsb3NlKCkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fJG1vZGFsLm1vZGFsKCdoaWRlJyk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGhlbHBlciBwcml2YXRlIG1ldGhvZHNcblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfbmF2aWdhdGlvbmFsQmluZGVyJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfbmF2aWdhdGlvbmFsQmluZGVyKGV2ZW50KSB7XG5cdFx0XHRcdGV2ZW50ID0gZXZlbnQgfHwgd2luZG93LmV2ZW50O1xuXHRcdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PT0gMzkpIHJldHVybiB0aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDM3KSByZXR1cm4gdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gdHlwZSBkZXRlY3Rpb24gcHJpdmF0ZSBtZXRob2RzXG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2RldGVjdFJlbW90ZVR5cGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9kZXRlY3RSZW1vdGVUeXBlKHNyYywgdHlwZSkge1xuXG5cdFx0XHRcdHR5cGUgPSB0eXBlIHx8IGZhbHNlO1xuXG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9pc0ltYWdlKHNyYykpIHR5cGUgPSAnaW1hZ2UnO1xuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5fZ2V0WW91dHViZUlkKHNyYykpIHR5cGUgPSAneW91dHViZSc7XG5cdFx0XHRcdGlmICghdHlwZSAmJiB0aGlzLl9nZXRWaW1lb0lkKHNyYykpIHR5cGUgPSAndmltZW8nO1xuXHRcdFx0XHRpZiAoIXR5cGUgJiYgdGhpcy5fZ2V0SW5zdGFncmFtSWQoc3JjKSkgdHlwZSA9ICdpbnN0YWdyYW0nO1xuXG5cdFx0XHRcdGlmICghdHlwZSB8fCBbJ2ltYWdlJywgJ3lvdXR1YmUnLCAndmltZW8nLCAnaW5zdGFncmFtJywgJ3ZpZGVvJywgJ3VybCddLmluZGV4T2YodHlwZSkgPCAwKSB0eXBlID0gJ3VybCc7XG5cblx0XHRcdFx0cmV0dXJuIHR5cGU7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2lzSW1hZ2UnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9pc0ltYWdlKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5tYXRjaCgvKF5kYXRhOmltYWdlXFwvLiosKXwoXFwuKGpwKGV8Z3xlZyl8Z2lmfHBuZ3xibXB8d2VicHxzdmcpKChcXD98IykuKik/JCkvaSk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2NvbnRhaW5lclRvVXNlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfY29udGFpbmVyVG9Vc2UoKSB7XG5cdFx0XHRcdHZhciBfdGhpczIgPSB0aGlzO1xuXG5cdFx0XHRcdC8vIGlmIGN1cnJlbnRseSBzaG93aW5nIGFuIGltYWdlLCBmYWRlIGl0IG91dCBhbmQgcmVtb3ZlXG5cdFx0XHRcdHZhciAkdG9Vc2UgPSB0aGlzLl8kbGlnaHRib3hCb2R5VHdvO1xuXHRcdFx0XHR2YXIgJGN1cnJlbnQgPSB0aGlzLl8kbGlnaHRib3hCb2R5T25lO1xuXG5cdFx0XHRcdGlmICh0aGlzLl8kbGlnaHRib3hCb2R5VHdvLmhhc0NsYXNzKCdpbicpKSB7XG5cdFx0XHRcdFx0JHRvVXNlID0gdGhpcy5fJGxpZ2h0Ym94Qm9keU9uZTtcblx0XHRcdFx0XHQkY3VycmVudCA9IHRoaXMuXyRsaWdodGJveEJvZHlUd287XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQkY3VycmVudC5yZW1vdmVDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoIV90aGlzMi5fJGxpZ2h0Ym94Qm9keVR3by5oYXNDbGFzcygnaW4nKSkgX3RoaXMyLl8kbGlnaHRib3hCb2R5VHdvLmVtcHR5KCk7XG5cdFx0XHRcdFx0aWYgKCFfdGhpczIuXyRsaWdodGJveEJvZHlPbmUuaGFzQ2xhc3MoJ2luJykpIF90aGlzMi5fJGxpZ2h0Ym94Qm9keU9uZS5lbXB0eSgpO1xuXHRcdFx0XHR9LCA1MDApO1xuXG5cdFx0XHRcdCR0b1VzZS5hZGRDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRyZXR1cm4gJHRvVXNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19oYW5kbGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9oYW5kbGUoKSB7XG5cblx0XHRcdFx0dmFyICR0b1VzZSA9IHRoaXMuX2NvbnRhaW5lclRvVXNlKCk7XG5cdFx0XHRcdHRoaXMuX3VwZGF0ZVRpdGxlQW5kRm9vdGVyKCk7XG5cblx0XHRcdFx0dmFyIGN1cnJlbnRSZW1vdGUgPSB0aGlzLl8kZWxlbWVudC5hdHRyKCdkYXRhLXJlbW90ZScpIHx8IHRoaXMuXyRlbGVtZW50LmF0dHIoJ2hyZWYnKTtcblx0XHRcdFx0dmFyIGN1cnJlbnRUeXBlID0gdGhpcy5fZGV0ZWN0UmVtb3RlVHlwZShjdXJyZW50UmVtb3RlLCB0aGlzLl8kZWxlbWVudC5hdHRyKCdkYXRhLXR5cGUnKSB8fCBmYWxzZSk7XG5cblx0XHRcdFx0aWYgKFsnaW1hZ2UnLCAneW91dHViZScsICd2aW1lbycsICdpbnN0YWdyYW0nLCAndmlkZW8nLCAndXJsJ10uaW5kZXhPZihjdXJyZW50VHlwZSkgPCAwKSByZXR1cm4gdGhpcy5fZXJyb3IodGhpcy5fY29uZmlnLnN0cmluZ3MudHlwZSk7XG5cblx0XHRcdFx0c3dpdGNoIChjdXJyZW50VHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgJ2ltYWdlJzpcblx0XHRcdFx0XHRcdHRoaXMuX3ByZWxvYWRJbWFnZShjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0dGhpcy5fcHJlbG9hZEltYWdlQnlJbmRleCh0aGlzLl9nYWxsZXJ5SW5kZXgsIDMpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAneW91dHViZSc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93WW91dHViZVZpZGVvKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlICd2aW1lbyc6XG5cdFx0XHRcdFx0XHR0aGlzLl9zaG93VmltZW9WaWRlbyh0aGlzLl9nZXRWaW1lb0lkKGN1cnJlbnRSZW1vdGUpLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0Y2FzZSAnaW5zdGFncmFtJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dJbnN0YWdyYW1WaWRlbyh0aGlzLl9nZXRJbnN0YWdyYW1JZChjdXJyZW50UmVtb3RlKSwgJHRvVXNlKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgJ3ZpZGVvJzpcblx0XHRcdFx0XHRcdHRoaXMuX3Nob3dIdG1sNVZpZGVvKGN1cnJlbnRSZW1vdGUsICR0b1VzZSk7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdFx0Ly8gdXJsXG5cdFx0XHRcdFx0XHR0aGlzLl9sb2FkUmVtb3RlQ29udGVudChjdXJyZW50UmVtb3RlLCAkdG9Vc2UpO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfZ2V0WW91dHViZUlkJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZ2V0WW91dHViZUlkKHN0cmluZykge1xuXHRcdFx0XHRpZiAoIXN0cmluZykgcmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR2YXIgbWF0Y2hlcyA9IHN0cmluZy5tYXRjaCgvXi4qKHlvdXR1LmJlXFwvfHZcXC98dVxcL1xcd1xcL3xlbWJlZFxcL3x3YXRjaFxcP3Y9fFxcJnY9KShbXiNcXCZcXD9dKikuKi8pO1xuXHRcdFx0XHRyZXR1cm4gbWF0Y2hlcyAmJiBtYXRjaGVzWzJdLmxlbmd0aCA9PT0gMTEgPyBtYXRjaGVzWzJdIDogZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2dldFZpbWVvSWQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9nZXRWaW1lb0lkKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5pbmRleE9mKCd2aW1lbycpID4gMCA/IHN0cmluZyA6IGZhbHNlO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19nZXRJbnN0YWdyYW1JZCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2dldEluc3RhZ3JhbUlkKHN0cmluZykge1xuXHRcdFx0XHRyZXR1cm4gc3RyaW5nICYmIHN0cmluZy5pbmRleE9mKCdpbnN0YWdyYW0nKSA+IDAgPyBzdHJpbmcgOiBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gbGF5b3V0IHByaXZhdGUgbWV0aG9kc1xuXHRcdH0sIHtcblx0XHRcdGtleTogJ190b2dnbGVMb2FkaW5nJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfdG9nZ2xlTG9hZGluZyhzaG93KSB7XG5cdFx0XHRcdHNob3cgPSBzaG93IHx8IGZhbHNlO1xuXHRcdFx0XHRpZiAoc2hvdykge1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbC5yZW1vdmVDbGFzcygnaW4gc2hvdycpO1xuXHRcdFx0XHRcdCQoJy5tb2RhbC1iYWNrZHJvcCcpLmFwcGVuZCh0aGlzLl9jb25maWcubG9hZGluZ01lc3NhZ2UpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbERpYWxvZy5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcblx0XHRcdFx0XHR0aGlzLl8kbW9kYWwuYWRkQ2xhc3MoJ2luIHNob3cnKTtcblx0XHRcdFx0XHQkKCcubW9kYWwtYmFja2Ryb3AnKS5maW5kKCcuZWtrby1saWdodGJveC1sb2FkZXInKS5yZW1vdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY2FsY3VsYXRlQm9yZGVycycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2NhbGN1bGF0ZUJvcmRlcnMoKSB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dG9wOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdib3JkZXItdG9wLXdpZHRoJyksXG5cdFx0XHRcdFx0cmlnaHQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci1yaWdodC13aWR0aCcpLFxuXHRcdFx0XHRcdGJvdHRvbTogdGhpcy5fdG90YWxDc3NCeUF0dHJpYnV0ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpLFxuXHRcdFx0XHRcdGxlZnQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ2JvcmRlci1sZWZ0LXdpZHRoJylcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfY2FsY3VsYXRlUGFkZGluZycsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2NhbGN1bGF0ZVBhZGRpbmcoKSB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dG9wOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLXRvcCcpLFxuXHRcdFx0XHRcdHJpZ2h0OiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLXJpZ2h0JyksXG5cdFx0XHRcdFx0Ym90dG9tOiB0aGlzLl90b3RhbENzc0J5QXR0cmlidXRlKCdwYWRkaW5nLWJvdHRvbScpLFxuXHRcdFx0XHRcdGxlZnQ6IHRoaXMuX3RvdGFsQ3NzQnlBdHRyaWJ1dGUoJ3BhZGRpbmctbGVmdCcpXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3RvdGFsQ3NzQnlBdHRyaWJ1dGUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF90b3RhbENzc0J5QXR0cmlidXRlKGF0dHJpYnV0ZSkge1xuXHRcdFx0XHRyZXR1cm4gcGFyc2VJbnQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcyhhdHRyaWJ1dGUpLCAxMCkgKyBwYXJzZUludCh0aGlzLl8kbW9kYWxDb250ZW50LmNzcyhhdHRyaWJ1dGUpLCAxMCkgKyBwYXJzZUludCh0aGlzLl8kbW9kYWxCb2R5LmNzcyhhdHRyaWJ1dGUpLCAxMCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3VwZGF0ZVRpdGxlQW5kRm9vdGVyJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfdXBkYXRlVGl0bGVBbmRGb290ZXIoKSB7XG5cdFx0XHRcdHZhciB0aXRsZSA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3RpdGxlJykgfHwgXCJcIjtcblx0XHRcdFx0dmFyIGNhcHRpb24gPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdmb290ZXInKSB8fCBcIlwiO1xuXG5cdFx0XHRcdHRoaXMuX3RpdGxlSXNTaG93biA9IGZhbHNlO1xuXHRcdFx0XHRpZiAodGl0bGUgfHwgdGhpcy5fY29uZmlnLmFsd2F5c1Nob3dDbG9zZSkge1xuXHRcdFx0XHRcdHRoaXMuX3RpdGxlSXNTaG93biA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsSGVhZGVyLmNzcygnZGlzcGxheScsICcnKS5maW5kKCcubW9kYWwtdGl0bGUnKS5odG1sKHRpdGxlIHx8IFwiJm5ic3A7XCIpO1xuXHRcdFx0XHR9IGVsc2UgdGhpcy5fJG1vZGFsSGVhZGVyLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0dGhpcy5fZm9vdGVySXNTaG93biA9IGZhbHNlO1xuXHRcdFx0XHRpZiAoY2FwdGlvbikge1xuXHRcdFx0XHRcdHRoaXMuX2Zvb3RlcklzU2hvd24gPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuXyRtb2RhbEZvb3Rlci5jc3MoJ2Rpc3BsYXknLCAnJykuaHRtbChjYXB0aW9uKTtcblx0XHRcdFx0fSBlbHNlIHRoaXMuXyRtb2RhbEZvb3Rlci5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93WW91dHViZVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd1lvdXR1YmVWaWRlbyhyZW1vdGUsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciBpZCA9IHRoaXMuX2dldFlvdXR1YmVJZChyZW1vdGUpO1xuXHRcdFx0XHR2YXIgcXVlcnkgPSByZW1vdGUuaW5kZXhPZignJicpID4gMCA/IHJlbW90ZS5zdWJzdHIocmVtb3RlLmluZGV4T2YoJyYnKSkgOiAnJztcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA1NjA7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB0aGlzLl8kZWxlbWVudC5kYXRhKCdoZWlnaHQnKSB8fCB3aWR0aCAvICg1NjAgLyAzMTUpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fc2hvd1ZpZGVvSWZyYW1lKCcvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICsgaWQgKyAnP2JhZGdlPTAmYXV0b3BsYXk9MSZodG1sNT0xJyArIHF1ZXJ5LCB3aWR0aCwgaGVpZ2h0LCAkY29udGFpbmVyRm9yRWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dWaW1lb1ZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd1ZpbWVvVmlkZW8oaWQsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTAwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgd2lkdGggLyAoNTYwIC8gMzE1KTtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX3Nob3dWaWRlb0lmcmFtZShpZCArICc/YXV0b3BsYXk9MScsIHdpZHRoLCBoZWlnaHQsICRjb250YWluZXJGb3JFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfc2hvd0luc3RhZ3JhbVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd0luc3RhZ3JhbVZpZGVvKGlkLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBpbnN0YWdyYW0gbG9hZCB0aGVpciBjb250ZW50IGludG8gaWZyYW1lJ3Mgc28gdGhpcyBjYW4gYmUgcHV0IHN0cmFpZ2h0IGludG8gdGhlIGVsZW1lbnRcblx0XHRcdFx0dmFyIHdpZHRoID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnd2lkdGgnKSB8fCA2MTI7XG5cdFx0XHRcdHZhciBoZWlnaHQgPSB3aWR0aCArIDgwO1xuXHRcdFx0XHRpZCA9IGlkLnN1YnN0cigtMSkgIT09ICcvJyA/IGlkICsgJy8nIDogaWQ7IC8vIGVuc3VyZSBpZCBoYXMgdHJhaWxpbmcgc2xhc2hcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGlmcmFtZSB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyBpZCArICdlbWJlZC9cIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHNob3dpbmcgdmlkZW9cblx0XHRcdFx0XHR0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTtcblx0XHRcdFx0dGhpcy5fdG9nZ2xlTG9hZGluZyhmYWxzZSk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19zaG93VmlkZW9JZnJhbWUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9zaG93VmlkZW9JZnJhbWUodXJsLCB3aWR0aCwgaGVpZ2h0LCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBzaG91bGQgYmUgdXNlZCBmb3IgdmlkZW9zIG9ubHkuIGZvciByZW1vdGUgY29udGVudCB1c2UgbG9hZFJlbW90ZUNvbnRlbnQgKGRhdGEtdHlwZT11cmwpXG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCB8fCB3aWR0aDsgLy8gZGVmYXVsdCB0byBzcXVhcmVcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGRpdiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUgZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OVwiPjxpZnJhbWUgd2lkdGg9XCInICsgd2lkdGggKyAnXCIgaGVpZ2h0PVwiJyArIGhlaWdodCArICdcIiBzcmM9XCInICsgdXJsICsgJ1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUtaXRlbVwiPjwvaWZyYW1lPjwvZGl2PicpO1xuXHRcdFx0XHR0aGlzLl9yZXNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHRcdHRoaXMuX2NvbmZpZy5vbkNvbnRlbnRMb2FkZWQuY2FsbCh0aGlzKTtcblx0XHRcdFx0aWYgKHRoaXMuXyRtb2RhbEFycm93cykgdGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7IC8vaGlkZSB0aGUgYXJyb3dzIHdoZW4gc2hvd2luZyB2aWRlb1xuXHRcdFx0XHR0aGlzLl90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3Nob3dIdG1sNVZpZGVvJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc2hvd0h0bWw1VmlkZW8odXJsLCAkY29udGFpbmVyRm9yRWxlbWVudCkge1xuXHRcdFx0XHQvLyBzaG91bGQgYmUgdXNlZCBmb3IgdmlkZW9zIG9ubHkuIGZvciByZW1vdGUgY29udGVudCB1c2UgbG9hZFJlbW90ZUNvbnRlbnQgKGRhdGEtdHlwZT11cmwpXG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTYwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgd2lkdGggLyAoNTYwIC8gMzE1KTtcblx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGRpdiBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUgZW1iZWQtcmVzcG9uc2l2ZS0xNmJ5OVwiPjx2aWRlbyB3aWR0aD1cIicgKyB3aWR0aCArICdcIiBoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiIHNyYz1cIicgKyB1cmwgKyAnXCIgcHJlbG9hZD1cImF1dG9cIiBhdXRvcGxheSBjb250cm9scyBjbGFzcz1cImVtYmVkLXJlc3BvbnNpdmUtaXRlbVwiPjwvdmlkZW8+PC9kaXY+Jyk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fY29uZmlnLm9uQ29udGVudExvYWRlZC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSB0aGlzLl8kbW9kYWxBcnJvd3MuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsgLy9oaWRlIHRoZSBhcnJvd3Mgd2hlbiBzaG93aW5nIHZpZGVvXG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfbG9hZFJlbW90ZUNvbnRlbnQnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9sb2FkUmVtb3RlQ29udGVudCh1cmwsICRjb250YWluZXJGb3JFbGVtZW50KSB7XG5cdFx0XHRcdHZhciBfdGhpczMgPSB0aGlzO1xuXG5cdFx0XHRcdHZhciB3aWR0aCA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ3dpZHRoJykgfHwgNTYwO1xuXHRcdFx0XHR2YXIgaGVpZ2h0ID0gdGhpcy5fJGVsZW1lbnQuZGF0YSgnaGVpZ2h0JykgfHwgNTYwO1xuXG5cdFx0XHRcdHZhciBkaXNhYmxlRXh0ZXJuYWxDaGVjayA9IHRoaXMuXyRlbGVtZW50LmRhdGEoJ2Rpc2FibGVFeHRlcm5hbENoZWNrJykgfHwgZmFsc2U7XG5cdFx0XHRcdHRoaXMuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXG5cdFx0XHRcdC8vIGV4dGVybmFsIHVybHMgYXJlIGxvYWRpbmcgaW50byBhbiBpZnJhbWVcblx0XHRcdFx0Ly8gbG9jYWwgYWpheCBjYW4gYmUgbG9hZGVkIGludG8gdGhlIGNvbnRhaW5lciBpdHNlbGZcblx0XHRcdFx0aWYgKCFkaXNhYmxlRXh0ZXJuYWxDaGVjayAmJiAhdGhpcy5faXNFeHRlcm5hbCh1cmwpKSB7XG5cdFx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQubG9hZCh1cmwsICQucHJveHkoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzMy5fJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLmJzLm1vZGFsJyk7bDtcblx0XHRcdFx0XHR9KSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0JGNvbnRhaW5lckZvckVsZW1lbnQuaHRtbCgnPGlmcmFtZSBzcmM9XCInICsgdXJsICsgJ1wiIGZyYW1lYm9yZGVyPVwiMFwiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKTtcblx0XHRcdFx0XHR0aGlzLl9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwodGhpcyk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAodGhpcy5fJG1vZGFsQXJyb3dzKSAvL2hpZGUgdGhlIGFycm93cyB3aGVuIHJlbW90ZSBjb250ZW50XG5cdFx0XHRcdFx0dGhpcy5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cblx0XHRcdFx0dGhpcy5fcmVzaXplKHdpZHRoLCBoZWlnaHQpO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfaXNFeHRlcm5hbCcsXG5cdFx0XHR2YWx1ZTogZnVuY3Rpb24gX2lzRXh0ZXJuYWwodXJsKSB7XG5cdFx0XHRcdHZhciBtYXRjaCA9IHVybC5tYXRjaCgvXihbXjpcXC8/I10rOik/KD86XFwvXFwvKFteXFwvPyNdKikpPyhbXj8jXSspPyhcXD9bXiNdKik/KCMuKik/Lyk7XG5cdFx0XHRcdGlmICh0eXBlb2YgbWF0Y2hbMV0gPT09IFwic3RyaW5nXCIgJiYgbWF0Y2hbMV0ubGVuZ3RoID4gMCAmJiBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpICE9PSBsb2NhdGlvbi5wcm90b2NvbCkgcmV0dXJuIHRydWU7XG5cblx0XHRcdFx0aWYgKHR5cGVvZiBtYXRjaFsyXSA9PT0gXCJzdHJpbmdcIiAmJiBtYXRjaFsyXS5sZW5ndGggPiAwICYmIG1hdGNoWzJdLnJlcGxhY2UobmV3IFJlZ0V4cCgnOignICsgKHtcblx0XHRcdFx0XHRcImh0dHA6XCI6IDgwLFxuXHRcdFx0XHRcdFwiaHR0cHM6XCI6IDQ0M1xuXHRcdFx0XHR9KVtsb2NhdGlvbi5wcm90b2NvbF0gKyAnKT8kJyksIFwiXCIpICE9PSBsb2NhdGlvbi5ob3N0KSByZXR1cm4gdHJ1ZTtcblxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX2Vycm9yJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfZXJyb3IobWVzc2FnZSkge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuXHRcdFx0XHR0aGlzLl9jb250YWluZXJUb1VzZSgpLmh0bWwobWVzc2FnZSk7XG5cdFx0XHRcdHRoaXMuX3Jlc2l6ZSgzMDAsIDMwMCk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19wcmVsb2FkSW1hZ2VCeUluZGV4Jyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfcHJlbG9hZEltYWdlQnlJbmRleChzdGFydEluZGV4LCBudW1iZXJPZlRpbWVzKSB7XG5cblx0XHRcdFx0aWYgKCF0aGlzLl8kZ2FsbGVyeUl0ZW1zKSByZXR1cm47XG5cblx0XHRcdFx0dmFyIG5leHQgPSAkKHRoaXMuXyRnYWxsZXJ5SXRlbXMuZ2V0KHN0YXJ0SW5kZXgpLCBmYWxzZSk7XG5cdFx0XHRcdGlmICh0eXBlb2YgbmV4dCA9PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuXG5cdFx0XHRcdHZhciBzcmMgPSBuZXh0LmF0dHIoJ2RhdGEtcmVtb3RlJykgfHwgbmV4dC5hdHRyKCdocmVmJyk7XG5cdFx0XHRcdGlmIChuZXh0LmF0dHIoJ2RhdGEtdHlwZScpID09PSAnaW1hZ2UnIHx8IHRoaXMuX2lzSW1hZ2Uoc3JjKSkgdGhpcy5fcHJlbG9hZEltYWdlKHNyYywgZmFsc2UpO1xuXG5cdFx0XHRcdGlmIChudW1iZXJPZlRpbWVzID4gMCkgcmV0dXJuIHRoaXMuX3ByZWxvYWRJbWFnZUJ5SW5kZXgoc3RhcnRJbmRleCArIDEsIG51bWJlck9mVGltZXMgLSAxKTtcblx0XHRcdH1cblx0XHR9LCB7XG5cdFx0XHRrZXk6ICdfcHJlbG9hZEltYWdlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfcHJlbG9hZEltYWdlKHNyYywgJGNvbnRhaW5lckZvckltYWdlKSB7XG5cdFx0XHRcdHZhciBfdGhpczQgPSB0aGlzO1xuXG5cdFx0XHRcdCRjb250YWluZXJGb3JJbWFnZSA9ICRjb250YWluZXJGb3JJbWFnZSB8fCBmYWxzZTtcblxuXHRcdFx0XHR2YXIgaW1nID0gbmV3IEltYWdlKCk7XG5cdFx0XHRcdGlmICgkY29udGFpbmVyRm9ySW1hZ2UpIHtcblx0XHRcdFx0XHQoZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRcdFx0XHQvLyBpZiBsb2FkaW5nIHRha2VzID4gMjAwbXMgc2hvdyBhIGxvYWRlclxuXHRcdFx0XHRcdFx0dmFyIGxvYWRpbmdUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdCRjb250YWluZXJGb3JJbWFnZS5hcHBlbmQoX3RoaXM0Ll9jb25maWcubG9hZGluZ01lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0fSwgMjAwKTtcblxuXHRcdFx0XHRcdFx0aW1nLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGxvYWRpbmdUaW1lb3V0KSBjbGVhclRpbWVvdXQobG9hZGluZ1RpbWVvdXQpO1xuXHRcdFx0XHRcdFx0XHRsb2FkaW5nVGltZW91dCA9IG51bGw7XG5cdFx0XHRcdFx0XHRcdHZhciBpbWFnZSA9ICQoJzxpbWcgLz4nKTtcblx0XHRcdFx0XHRcdFx0aW1hZ2UuYXR0cignc3JjJywgaW1nLnNyYyk7XG5cdFx0XHRcdFx0XHRcdGltYWdlLmFkZENsYXNzKCdpbWctZmx1aWQnKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBib290c3RyYXAgdjNcblx0XHRcdFx0XHRcdFx0aW1hZ2UuY3NzKCd3aWR0aCcsICcxMDAlJyk7XG5cblx0XHRcdFx0XHRcdFx0JGNvbnRhaW5lckZvckltYWdlLmh0bWwoaW1hZ2UpO1xuXHRcdFx0XHRcdFx0XHRpZiAoX3RoaXM0Ll8kbW9kYWxBcnJvd3MpIF90aGlzNC5fJG1vZGFsQXJyb3dzLmNzcygnZGlzcGxheScsICcnKTsgLy8gcmVtb3ZlIGRpc3BsYXkgdG8gZGVmYXVsdCB0byBjc3MgcHJvcGVydHlcblxuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3Jlc2l6ZShpbWcud2lkdGgsIGltZy5oZWlnaHQpO1xuXHRcdFx0XHRcdFx0XHRfdGhpczQuX3RvZ2dsZUxvYWRpbmcoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gX3RoaXM0Ll9jb25maWcub25Db250ZW50TG9hZGVkLmNhbGwoX3RoaXM0KTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRpbWcub25lcnJvciA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0X3RoaXM0Ll90b2dnbGVMb2FkaW5nKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIF90aGlzNC5fZXJyb3IoX3RoaXM0Ll9jb25maWcuc3RyaW5ncy5mYWlsICsgKCcgICcgKyBzcmMpKTtcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fSkoKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGltZy5zcmMgPSBzcmM7XG5cdFx0XHRcdHJldHVybiBpbWc7XG5cdFx0XHR9XG5cdFx0fSwge1xuXHRcdFx0a2V5OiAnX3N3aXBlR2VzdXJlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfc3dpcGVHZXN1cmUoKSB7XG5cdFx0XHRcdGlmICh0aGlzLl90b3VjaGVuZFggPCB0aGlzLl90b3VjaHN0YXJ0WCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm5hdmlnYXRlUmlnaHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5fdG91Y2hlbmRYID4gdGhpcy5fdG91Y2hzdGFydFgpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5uYXZpZ2F0ZUxlZnQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIHtcblx0XHRcdGtleTogJ19yZXNpemUnLFxuXHRcdFx0dmFsdWU6IGZ1bmN0aW9uIF9yZXNpemUod2lkdGgsIGhlaWdodCkge1xuXG5cdFx0XHRcdGhlaWdodCA9IGhlaWdodCB8fCB3aWR0aDtcblx0XHRcdFx0dGhpcy5fd2FudGVkV2lkdGggPSB3aWR0aDtcblx0XHRcdFx0dGhpcy5fd2FudGVkSGVpZ2h0ID0gaGVpZ2h0O1xuXG5cdFx0XHRcdHZhciBpbWFnZUFzcGVjUmF0aW8gPSB3aWR0aCAvIGhlaWdodDtcblxuXHRcdFx0XHQvLyBpZiB3aWR0aCA+IHRoZSBhdmFpbGFibGUgc3BhY2UsIHNjYWxlIGRvd24gdGhlIGV4cGVjdGVkIHdpZHRoIGFuZCBoZWlnaHRcblx0XHRcdFx0dmFyIHdpZHRoQm9yZGVyQW5kUGFkZGluZyA9IHRoaXMuX3BhZGRpbmcubGVmdCArIHRoaXMuX3BhZGRpbmcucmlnaHQgKyB0aGlzLl9ib3JkZXIubGVmdCArIHRoaXMuX2JvcmRlci5yaWdodDtcblxuXHRcdFx0XHQvLyBmb3JjZSAxMHB4IG1hcmdpbiBpZiB3aW5kb3cgc2l6ZSA+IDU3NXB4XG5cdFx0XHRcdHZhciBhZGRNYXJnaW4gPSB0aGlzLl9jb25maWcuZG9jLmJvZHkuY2xpZW50V2lkdGggPiA1NzUgPyAyMCA6IDA7XG5cdFx0XHRcdHZhciBkaXNjb3VudE1hcmdpbiA9IHRoaXMuX2NvbmZpZy5kb2MuYm9keS5jbGllbnRXaWR0aCA+IDU3NSA/IDAgOiAyMDtcblxuXHRcdFx0XHR2YXIgbWF4V2lkdGggPSBNYXRoLm1pbih3aWR0aCArIHdpZHRoQm9yZGVyQW5kUGFkZGluZywgdGhpcy5fY29uZmlnLmRvYy5ib2R5LmNsaWVudFdpZHRoIC0gYWRkTWFyZ2luLCB0aGlzLl9jb25maWcubWF4V2lkdGgpO1xuXG5cdFx0XHRcdGlmICh3aWR0aCArIHdpZHRoQm9yZGVyQW5kUGFkZGluZyA+IG1heFdpZHRoKSB7XG5cdFx0XHRcdFx0aGVpZ2h0ID0gKG1heFdpZHRoIC0gd2lkdGhCb3JkZXJBbmRQYWRkaW5nIC0gZGlzY291bnRNYXJnaW4pIC8gaW1hZ2VBc3BlY1JhdGlvO1xuXHRcdFx0XHRcdHdpZHRoID0gbWF4V2lkdGg7XG5cdFx0XHRcdH0gZWxzZSB3aWR0aCA9IHdpZHRoICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nO1xuXG5cdFx0XHRcdHZhciBoZWFkZXJIZWlnaHQgPSAwLFxuXHRcdFx0XHQgICAgZm9vdGVySGVpZ2h0ID0gMDtcblxuXHRcdFx0XHQvLyBhcyB0aGUgcmVzaXplIGlzIHBlcmZvcm1lZCB0aGUgbW9kYWwgaXMgc2hvdywgdGhlIGNhbGN1bGF0ZSBtaWdodCBmYWlsXG5cdFx0XHRcdC8vIGlmIHNvLCBkZWZhdWx0IHRvIHRoZSBkZWZhdWx0IHNpemVzXG5cdFx0XHRcdGlmICh0aGlzLl9mb290ZXJJc1Nob3duKSBmb290ZXJIZWlnaHQgPSB0aGlzLl8kbW9kYWxGb290ZXIub3V0ZXJIZWlnaHQodHJ1ZSkgfHwgNTU7XG5cblx0XHRcdFx0aWYgKHRoaXMuX3RpdGxlSXNTaG93bikgaGVhZGVySGVpZ2h0ID0gdGhpcy5fJG1vZGFsSGVhZGVyLm91dGVySGVpZ2h0KHRydWUpIHx8IDY3O1xuXG5cdFx0XHRcdHZhciBib3JkZXJQYWRkaW5nID0gdGhpcy5fcGFkZGluZy50b3AgKyB0aGlzLl9wYWRkaW5nLmJvdHRvbSArIHRoaXMuX2JvcmRlci5ib3R0b20gKyB0aGlzLl9ib3JkZXIudG9wO1xuXG5cdFx0XHRcdC8vY2FsY3VsYXRlZCBlYWNoIHRpbWUgYXMgcmVzaXppbmcgdGhlIHdpbmRvdyBjYW4gY2F1c2UgdGhlbSB0byBjaGFuZ2UgZHVlIHRvIEJvb3RzdHJhcHMgZmx1aWQgbWFyZ2luc1xuXHRcdFx0XHR2YXIgbWFyZ2lucyA9IHBhcnNlRmxvYXQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnbWFyZ2luLXRvcCcpKSArIHBhcnNlRmxvYXQodGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnbWFyZ2luLWJvdHRvbScpKTtcblxuXHRcdFx0XHR2YXIgbWF4SGVpZ2h0ID0gTWF0aC5taW4oaGVpZ2h0LCAkKHdpbmRvdykuaGVpZ2h0KCkgLSBib3JkZXJQYWRkaW5nIC0gbWFyZ2lucyAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodCwgdGhpcy5fY29uZmlnLm1heEhlaWdodCAtIGJvcmRlclBhZGRpbmcgLSBoZWFkZXJIZWlnaHQgLSBmb290ZXJIZWlnaHQpO1xuXG5cdFx0XHRcdGlmIChoZWlnaHQgPiBtYXhIZWlnaHQpIHtcblx0XHRcdFx0XHQvLyBpZiBoZWlnaHQgPiB0aGUgYXZhaWxhYmxlIGhlaWdodCwgc2NhbGUgZG93biB0aGUgd2lkdGhcblx0XHRcdFx0XHR3aWR0aCA9IE1hdGguY2VpbChtYXhIZWlnaHQgKiBpbWFnZUFzcGVjUmF0aW8pICsgd2lkdGhCb3JkZXJBbmRQYWRkaW5nO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5fJGxpZ2h0Ym94Q29udGFpbmVyLmNzcygnaGVpZ2h0JywgbWF4SGVpZ2h0KTtcblx0XHRcdFx0dGhpcy5fJG1vZGFsRGlhbG9nLmNzcygnZmxleCcsIDEpLmNzcygnbWF4V2lkdGgnLCB3aWR0aCk7XG5cblx0XHRcdFx0dmFyIG1vZGFsID0gdGhpcy5fJG1vZGFsLmRhdGEoJ2JzLm1vZGFsJyk7XG5cdFx0XHRcdGlmIChtb2RhbCkge1xuXHRcdFx0XHRcdC8vIHY0IG1ldGhvZCBpcyBtaXN0YWtlbmx5IHByb3RlY3RlZFxuXHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRtb2RhbC5faGFuZGxlVXBkYXRlKCk7XG5cdFx0XHRcdFx0fSBjYXRjaCAoRXhjZXB0aW9uKSB7XG5cdFx0XHRcdFx0XHRtb2RhbC5oYW5kbGVVcGRhdGUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fV0sIFt7XG5cdFx0XHRrZXk6ICdfalF1ZXJ5SW50ZXJmYWNlJyxcblx0XHRcdHZhbHVlOiBmdW5jdGlvbiBfalF1ZXJ5SW50ZXJmYWNlKGNvbmZpZykge1xuXHRcdFx0XHR2YXIgX3RoaXM1ID0gdGhpcztcblxuXHRcdFx0XHRjb25maWcgPSBjb25maWcgfHwge307XG5cdFx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdHZhciAkdGhpcyA9ICQoX3RoaXM1KTtcblx0XHRcdFx0XHR2YXIgX2NvbmZpZyA9ICQuZXh0ZW5kKHt9LCBMaWdodGJveC5EZWZhdWx0LCAkdGhpcy5kYXRhKCksIHR5cGVvZiBjb25maWcgPT09ICdvYmplY3QnICYmIGNvbmZpZyk7XG5cblx0XHRcdFx0XHRuZXcgTGlnaHRib3goX3RoaXM1LCBfY29uZmlnKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fV0pO1xuXG5cdFx0cmV0dXJuIExpZ2h0Ym94O1xuXHR9KSgpO1xuXG5cdCQuZm5bTkFNRV0gPSBMaWdodGJveC5falF1ZXJ5SW50ZXJmYWNlO1xuXHQkLmZuW05BTUVdLkNvbnN0cnVjdG9yID0gTGlnaHRib3g7XG5cdCQuZm5bTkFNRV0ubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcblx0XHQkLmZuW05BTUVdID0gSlFVRVJZX05PX0NPTkZMSUNUO1xuXHRcdHJldHVybiBMaWdodGJveC5falF1ZXJ5SW50ZXJmYWNlO1xuXHR9O1xuXG5cdHJldHVybiBMaWdodGJveDtcbn0pKGpRdWVyeSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1la2tvLWxpZ2h0Ym94LmpzLm1hcFxuXG59KGpRdWVyeSk7XG4iLCIiLCJcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xuXHR2YXIgcHJldmlvdXMgPSBcIiBcIjtcbiAgICAkKFwiI2ltYWdlX2dhbGxlcnlcIikuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgdmFyIGlkX25hbWUgPSBldmVudC50YXJnZXQuaWQ7XG4gICAgICAgIGlkX25hbWUgPSBpZF9uYW1lLnJlcGxhY2UoL1swLTldL2csICcnKTsgLy9yZWdleCBmb3IgYWxwaGFiZXRzLCBubyBudW1iZXJzXG4gICAgICAgIHZhciBpZF90b2dnbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZF9uYW1lKTsgLy9nZXQgSUQgb2YgbmFtZXMgdW5kZXIgY2xhc3MgXCJ0ZWFtLWJpb1wiXG4gICAgICAgIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkX25hbWUpKXsgLy9pZiBJRCBleGlzdHNcblx0XHRcdGlmKChwcmV2aW91cyAhPSBpZF9uYW1lKSAmJiAocHJldmlvdXMgIT0gXCIgXCIpKXsgLy9pZiB5b3UgY2xpY2sgYSBkaWZmIGltYWdlXG5cdFx0XHRcdHZhciBpZF9wcmV2aW91cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHByZXZpb3VzKTtcblx0XHRcdFx0JChpZF9wcmV2aW91cykudG9nZ2xlKFwiaGlkZGVuXCIpO1xuXHRcdFx0XHRjb25zb2xlLmxvZyhpZF9wcmV2aW91cyk7XG5cblx0XHRcdH1cblx0XHRcdGVsc2UgaWYocHJldmlvdXMgPT0gaWRfbmFtZSl7IC8vY2xpY2tpbmcgb24gdGhlIHNhbWUgaW1hZ2Vcblx0XHRcdFx0JChpZF90b2dnbGUpLnRvZ2dsZShcInVuaGlkZGVuXCIpO1xuXHRcdFx0fVxuXHRcdFx0JChpZF90b2dnbGUpLnRvZ2dsZShcInVuaGlkZGVuXCIpOyAvL3RvZ2dsZXMgdHh0Ym94IHRvIGFwcGVhclxuICAgICAgICBcdCBwcmV2aW91cyA9IGlkX25hbWU7Ly9jaGVja3MgdG8gc2VlIGlmIHlvdSBjbGlja2VkIGRpZmZlcmVudCBpbWFnZXNcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICBcdGFsZXJ0KFwiVGhpcyBwZXJzb24gZG9lcyBub3QgZXhpc3QuIFRyeSBhZ2Fpbi5cIik7XG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG59KTsiLCIoZnVuY3Rpb24oJCkge1xyXG5cclxuICAgICQuZm4udmlzaWJsZSA9IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgICAgICB2YXIgJHQgICAgICAgICAgICA9ICQodGhpcyksXHJcbiAgICAgICAgICAgICR3ICAgICAgICAgICAgPSAkKHdpbmRvdyksXHJcbiAgICAgICAgICAgIHdpbmRvd0hlaWdodCAgPSB3aW5kb3cuaW5uZXJIZWlnaHQsXHJcbiAgICAgICAgICAgIHdpbmRvd1RvcCAgICAgPSAkdy5zY3JvbGxUb3AoKSxcclxuICAgICAgICAgICAgd2luZG93Qm90dG9tICA9IHdpbmRvd1RvcCArIHdpbmRvd0hlaWdodCxcclxuICAgICAgICAgICAgX2hlaWdodCAgICAgICA9ICR0Lm91dGVySGVpZ2h0KCksXHJcbiAgICAgICAgICAgIF90b3AgICAgICAgICAgPSAkdC5vZmZzZXQoKS50b3AsXHJcbiAgICAgICAgICAgIF9ib3R0b20gICAgICAgPSBfdG9wICsgX2hlaWdodDtcclxuXHJcbiAgICAgICAgcmV0dXJuICgoX2JvdHRvbSA+PSB3aW5kb3dUb3ApICYmIChfdG9wIDw9IHdpbmRvd0JvdHRvbSkpO1xyXG4gICAgfTtcclxuXHJcbn0pKGpRdWVyeSk7XHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgICAkKHdpbmRvdykub24oXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICgkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPj0gMTAwICYmICEkKFwiLm5hdmJhclwiKS5oYXNDbGFzcyhcImZpeGVkXCIpKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmFkZENsYXNzKFwiZml4ZWRcIikuYWRkQ2xhc3MoXCJmaXhlZC10b3BcIikuYW5pbWF0ZSh7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDE1LFxyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMVxyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoJCh3aW5kb3cpLnNjcm9sbFRvcCgpIDw9IDUwKSB7XHJcbiAgICAgICAgICAgICQoXCIubmF2YmFyXCIpLmNzcyhcInRvcFwiLCBcIlwiKS5yZW1vdmVDbGFzcyhcImZpeGVkXCIpLnJlbW92ZUNsYXNzKFwiZml4ZWQtdG9wXCIpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICAvL29uIG9yIHNjcm9sbCwgZGV0ZWN0IGVsZW1lbnRzIGluIHZpZXdcclxuICAgICQod2luZG93KS5vbignc2Nyb2xsIHJlc2l6ZScsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICQoJy5mbHktaW4nKS5lYWNoKGZ1bmN0aW9uIChpLCB2YWwpIHtcclxuICAgICAgICAgICAgaWYoJCh2YWwpLnZpc2libGUoKSl7XHJcbiAgICAgICAgICAgICAgICAkKHZhbCkuYWRkQ2xhc3MoXCJjb21lLWluXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgLy90cmlnZ2VyIG91ciBzY3JvbGwgZXZlbnQgb24gaW5pdGlhbCBsb2FkXHJcbiAgICAkKHdpbmRvdykudHJpZ2dlcignc2Nyb2xsJyk7XHJcblxyXG5cclxufSk7XHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcblxyXG5cclxuICAgIGxldCB3aWR0aFBvbCA9IDE5MjAsXHJcbiAgICAgICAgaGVpZ2h0UG9sID0gMTAwO1xyXG5cclxuICAgIGNvbnN0IGhlYWRlclBvbHkgPSBbXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoUG9sLCBcInlcIjogMTAwfSxcclxuICAgICAgICB7XCJ4XCI6IHdpZHRoUG9sLCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogNTB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGxldCB3aWR0aEltZ092ZXJsYXkgPSAxOTIwLFxyXG4gICAgICAgIGhlaWdodEltZ092ZXJsYXkgPSAxMDA7XHJcblxyXG5cclxuICAgIGNvbnN0IGltYWdlUG9seVRvcCA9IFtcclxuICAgICAgICB7XCJ4XCI6IDAsIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogNTB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogMTAwfSxcclxuICAgIF07XHJcblxyXG4gICAgY29uc3QgaW1hZ2VQb2x5Qm90dG9tID0gW1xyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICAgICAge1wieFwiOiB3aWR0aEltZ092ZXJsYXksIFwieVwiOiAxMDB9LFxyXG4gICAgICAgIHtcInhcIjogd2lkdGhJbWdPdmVybGF5LCBcInlcIjogMH0sXHJcbiAgICAgICAge1wieFwiOiAwLCBcInlcIjogNTB9LFxyXG4gICAgICAgIHtcInhcIjogMCwgXCJ5XCI6IDEwMH0sXHJcbiAgICBdO1xyXG5cclxuXHJcbiAgICBsZXQgaW1nSGVhZGVySG9sZGVyID0gZDMuc2VsZWN0KFwiYm9keVwiKS5zZWxlY3QoXCIjYm90dG9tLWxhbmRpbmctb3ZlcmxheVwiKS5zZWxlY3QoJyNsYW5kaW5nLXN2ZycpXHJcbiAgICAgICAgLmF0dHIoXCJ3aWR0aFwiLCB3aWR0aFBvbClcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRQb2wpO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKGQzLnNlbGVjdChcImJvZHlcIikpO1xyXG5cclxuICAgIGxldCBpbWdCb3R0b21Ib2xkZXIgPSBkMy5zZWxlY3QoXCJib2R5XCIpLnNlbGVjdEFsbChcIi5zdmctaW1hZ2Utb3ZlcmxheS1ib3R0b21cIilcclxuICAgICAgICAuYXR0cihcIndpZHRoXCIsIHdpZHRoSW1nT3ZlcmxheSlcclxuICAgICAgICAuYXR0cihcImhlaWdodFwiLCBoZWlnaHRJbWdPdmVybGF5KTtcclxuXHJcblxyXG4gICAgbGV0IGltZ1RvcEhvbGRlciA9IGQzLnNlbGVjdChcImJvZHlcIikuc2VsZWN0QWxsKFwiLnN2Zy1pbWFnZS1vdmVybGF5LXRvcFwiKVxyXG4gICAgICAgIC5hdHRyKFwid2lkdGhcIiwgd2lkdGhJbWdPdmVybGF5KVxyXG4gICAgICAgIC5hdHRyKFwiaGVpZ2h0XCIsIGhlaWdodEltZ092ZXJsYXkpO1xyXG5cclxuICAgIGNyZWF0ZVBvbHlnb24oaGVhZGVyUG9seSwgd2lkdGhQb2wsIGhlaWdodFBvbCwgaW1nSGVhZGVySG9sZGVyKTtcclxuICAgIGNyZWF0ZVBvbHlnb24oaW1hZ2VQb2x5Qm90dG9tLCB3aWR0aEltZ092ZXJsYXksIGhlaWdodEltZ092ZXJsYXksIGltZ0JvdHRvbUhvbGRlcik7XHJcbiAgICBjcmVhdGVQb2x5Z29uKGltYWdlUG9seVRvcCwgd2lkdGhJbWdPdmVybGF5LCBoZWlnaHRJbWdPdmVybGF5LCBpbWdUb3BIb2xkZXIpO1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBjcmVhdGVQb2x5Z29uKHBvbHlnb24sIHdpZHRoLCBoZWlnaHQsIHZpcykge1xyXG5cclxuICAgICAgICBsZXQgc3ZnID0gdmlzLnNlbGVjdEFsbChcInBhdGhcIikuZGF0YShbcG9seWdvbl0pO1xyXG5cclxuICAgICAgICBzdmcuZXhpdCgpLnJlbW92ZSgpO1xyXG5cclxuICAgICAgICBsZXQgbGluZUZ1bmN0aW9uID0gZDMubGluZSgpXHJcbiAgICAgICAgICAgIC54KGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZC54XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC55KGZ1bmN0aW9uIChkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZC55XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICBzdmcuZW50ZXIoKS5hcHBlbmQoXCJwYXRoXCIpXHJcbiAgICAgICAgICAgIC5hdHRyKFwiZFwiLCBsaW5lRnVuY3Rpb24ocG9seWdvbikpXHJcbiAgICAgICAgICAgIC5hdHRyKFwiZmlsbFwiLCBcIiNmZmZcIik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10b2dnbGU9XCJsaWdodGJveFwiXScsIGZ1bmN0aW9uKGV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAkKHRoaXMpLmVra29MaWdodGJveCh7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAkKFwidGFibGVcIikuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoXCJ0YWJsZVwiKSl7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcInRhYmxlXCIpLmFkZENsYXNzKFwidGFibGUtZGFya1wiKTtcclxuICAgICAgICB9XHJcbiAgICB9KVxyXG4gICAgJChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJCgnW2RhdGEtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKVxyXG4gICAgfSlcclxuXHJcbn0pOyIsIiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcblxuICAgIGxldCBkdXJhdGlvbiA9IDc1MDtcblxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAkKCcuc3Bpbm5lcicpLmVhY2goZnVuY3Rpb24gKGssdikge1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgJCh2KS5mYWRlSW4oZHVyYXRpb24pLmNzcyhcImRpc3BsYXlcIiwgXCJmbGV4XCIpO1xuICAgICAgICAgICAgICAgICQoe2RlZzogMH0pLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICBkZWc6IDM2MFxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgc3RlcDogZnVuY3Rpb24gKG5vdywgZngpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodikuY3NzKHtcInRyYW5zZm9ybVwiOiBcInJvdGF0ZVkoXCIgKyBub3cgKyBcImRlZylcIn0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIGVhc2luZzogJ2xpbmVhcicsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sICdsaW5lYXInKTtcbiAgICAgICAgICAgIH0sIGsgKiBkdXJhdGlvbioyLzMpO1xuICAgICAgICB9KVxuICAgIH0sIDIwMCk7XG5cbiAgICAkKFwiLm1haW4tYmFja2dyb3VuZFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJCgnLnNwaW5uZXInKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICQodGhpcykuZmFkZUluKCkuY3NzKFwiZGlzcGxheVwiLCBcImZsZXhcIik7XG4gICAgICAgIH0pXG4gICAgfSlcblxufSk7IiwibGV0IG1vZGVsSW5pdERhdGEgPSBbXG4gICAge1xuICAgICAgICB0aW1lOiAwLFxuICAgICAgICBnZnA6IDAsXG4gICAgICAgIHJvZmY6IDAsXG4gICAgICAgIHJvbjogMFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MCxcbiAgICAgICAgZ2ZwOiAwLjUwMzMwOCxcbiAgICAgICAgcm9mZjogMC4wMDUxMTMsXG4gICAgICAgIHJvbjogMC40MjM5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwLFxuICAgICAgICBnZnA6IDAuNjkwNTgxLFxuICAgICAgICByb2ZmOiAwLjAwNDkxMzYsXG4gICAgICAgIHJvbjogMC43OTI4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwLFxuICAgICAgICBnZnA6IDAuNzY3NTg2LFxuICAgICAgICByb2ZmOiAwLjAwNDcxNjM3LFxuICAgICAgICByb246IDAuODg5MjA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjgwMzQzLFxuICAgICAgICByb2ZmOiAwLjAwNDUzNDg1LFxuICAgICAgICByb246IDAuODczMTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MCxcbiAgICAgICAgZ2ZwOiAwLjgyMzUxNixcbiAgICAgICAgcm9mZjogMC4wMDQzNjQ4OCxcbiAgICAgICAgcm9uOiAwLjg0NzI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAsXG4gICAgICAgIGdmcDogMC44MzczMTMsXG4gICAgICAgIHJvZmY6IDAuMDA0MjA0NDksXG4gICAgICAgIHJvbjogMC44MjQ4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuODQ4MzYxLFxuICAgICAgICByb2ZmOiAwLjAwNDA1MjY2LFxuICAgICAgICByb246IDAuODA4MDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjg1OCxcbiAgICAgICAgcm9mZjogMC4wMDM5MDg1OSxcbiAgICAgICAgcm9uOiAwLjc5NjY0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAsXG4gICAgICAgIGdmcDogMC44NjY3NTYsXG4gICAgICAgIHJvZmY6IDAuMDAzNzcxNTcsXG4gICAgICAgIHJvbjogMC43ODk1NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwLFxuICAgICAgICBnZnA6IDAuODc0ODUxLFxuICAgICAgICByb2ZmOiAwLjAwMzY0MTAyLFxuICAgICAgICByb246IDAuNzg1NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjg4MjM5MyxcbiAgICAgICAgcm9mZjogMC4wMDM1MTY0NyxcbiAgICAgICAgcm9uOiAwLjc4MzU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC44ODk0NDIsXG4gICAgICAgIHJvZmY6IDAuMDAzMzk3NTMsXG4gICAgICAgIHJvbjogMC43ODI5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuODk2MDM5LFxuICAgICAgICByb2ZmOiAwLjAwMzI4Mzg4LFxuICAgICAgICByb246IDAuNzgzMDEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjkwMjIxNCxcbiAgICAgICAgcm9mZjogMC4wMDMxNzUyNSxcbiAgICAgICAgcm9uOiAwLjc4MzUzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC45MDc5OTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMDcxNCxcbiAgICAgICAgcm9uOiAwLjc4NDI3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC45MTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAyOTcyMTEsXG4gICAgICAgIHJvbjogMC43ODUxMDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwLFxuICAgICAgICBnZnA6IDAuOTE4NDY5LFxuICAgICAgICByb2ZmOiAwLjAwMjg3NzE3LFxuICAgICAgICByb246IDAuNzg1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwLFxuICAgICAgICBnZnA6IDAuOTIzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMjc4NjM4LFxuICAgICAgICByb246IDAuNzg2Nzc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MCxcbiAgICAgICAgZ2ZwOiAwLjkyNzYzMyxcbiAgICAgICAgcm9mZjogMC4wMDI2OTk1NyxcbiAgICAgICAgcm9uOiAwLjc4NzU3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuOTMxNzcyLFxuICAgICAgICByb2ZmOiAwLjAwMjYxNjU3LFxuICAgICAgICByb246IDAuNzg4MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAsXG4gICAgICAgIGdmcDogMC45MzU2NDEsXG4gICAgICAgIHJvZmY6IDAuMDAyNTM3MixcbiAgICAgICAgcm9uOiAwLjc4OTAxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuOTM5MjU2LFxuICAgICAgICByb2ZmOiAwLjAwMjQ2MTMxLFxuICAgICAgICByb246IDAuNzg5NjY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC45NDI2MzQsXG4gICAgICAgIHJvZmY6IDAuMDAyMzg4NzUsXG4gICAgICAgIHJvbjogMC43OTAyNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk0NTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDIzMTkzNyxcbiAgICAgICAgcm9uOiAwLjc5MDgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuOTQ4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwMjI1MzA0LFxuICAgICAgICByb246IDAuNzkxMzYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC45NTE0ODksXG4gICAgICAgIHJvZmY6IDAuMDAyMTg5NjIsXG4gICAgICAgIHJvbjogMC43OTE4NDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk1NDA2MSxcbiAgICAgICAgcm9mZjogMC4wMDIxMjg5OCxcbiAgICAgICAgcm9uOiAwLjc5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk1NjQ2NCxcbiAgICAgICAgcm9mZjogMC4wMDIwNzEwMSxcbiAgICAgICAgcm9uOiAwLjc5MjcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwLFxuICAgICAgICBnZnA6IDAuOTU4NzA5LFxuICAgICAgICByb2ZmOiAwLjAwMjAxNTU5LFxuICAgICAgICByb246IDAuNzkzMTEyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAsXG4gICAgICAgIGdmcDogMC45NjA4MDcsXG4gICAgICAgIHJvZmY6IDAuMDAxOTYyNixcbiAgICAgICAgcm9uOiAwLjc5MzQ3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuOTYyNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMTkxMTk0LFxuICAgICAgICByb246IDAuNzkzODE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC45NjQ2MDEsXG4gICAgICAgIHJvZmY6IDAuMDAxODYzNTEsXG4gICAgICAgIHJvbjogMC43OTQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwLFxuICAgICAgICBnZnA6IDAuOTY2MzE0LFxuICAgICAgICByb2ZmOiAwLjAwMTgxNzIxLFxuICAgICAgICByb246IDAuNzk0NDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC45Njc5MTcsXG4gICAgICAgIHJvZmY6IDAuMDAxNzcyOTUsXG4gICAgICAgIHJvbjogMC43OTQ2OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk2OTQxNixcbiAgICAgICAgcm9mZjogMC4wMDE3MzA2MyxcbiAgICAgICAgcm9uOiAwLjc5NDk1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuOTcwODE5LFxuICAgICAgICByb2ZmOiAwLjAwMTY5MDE4LFxuICAgICAgICByb246IDAuNzk1MTkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC45NzIxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAxNjUxNTEsXG4gICAgICAgIHJvbjogMC43OTU0MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzM2MSxcbiAgICAgICAgcm9mZjogMC4wMDE2MTQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NTYyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwLFxuICAgICAgICBnZnA6IDAuOTc0NTEyLFxuICAgICAgICByb2ZmOiAwLjAwMTU3OTIxLFxuICAgICAgICByb246IDAuNzk1ODE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAsXG4gICAgICAgIGdmcDogMC45NzU1OTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNTQ1NDIsXG4gICAgICAgIHJvbjogMC43OTU5OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjYwMixcbiAgICAgICAgcm9mZjogMC4wMDE1MTMxMyxcbiAgICAgICAgcm9uOiAwLjc5NjE2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwLFxuICAgICAgICBnZnA6IDAuOTc3NTQ5LFxuICAgICAgICByb2ZmOiAwLjAwMTQ4MjI2LFxuICAgICAgICByb246IDAuNzk2MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC45Nzg0MzgsXG4gICAgICAgIHJvZmY6IDAuMDAxNDUyNzUsXG4gICAgICAgIHJvbjogMC43OTY0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTI3MixcbiAgICAgICAgcm9mZjogMC4wMDE0MjQ1NCxcbiAgICAgICAgcm9uOiAwLjc5NjYxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwLFxuICAgICAgICBnZnA6IDAuOTgwMDU1LFxuICAgICAgICByb2ZmOiAwLjAwMTM5NzU3LFxuICAgICAgICByb246IDAuNzk2NzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDAsXG4gICAgICAgIGdmcDogMC45ODA3OSxcbiAgICAgICAgcm9mZjogMC4wMDEzNzE3OSxcbiAgICAgICAgcm9uOiAwLjc5Njg2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuOTgxNDgxLFxuICAgICAgICByb2ZmOiAwLjAwMTM0NzE1LFxuICAgICAgICByb246IDAuNzk2OTgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAsXG4gICAgICAgIGdmcDogMC45ODIxMyxcbiAgICAgICAgcm9mZjogMC4wMDEzMjM2LFxuICAgICAgICByb246IDAuNzk3MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mjc0LFxuICAgICAgICByb2ZmOiAwLjAwMTMwMTA5LFxuICAgICAgICByb246IDAuNzk3MTkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC45ODMzMTQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjc5NTcsXG4gICAgICAgIHJvbjogMC43OTcyODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk4Mzg1MyxcbiAgICAgICAgcm9mZjogMC4wMDEyNTg5OSxcbiAgICAgICAgcm9uOiAwLjc5NzM3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNjAwLFxuICAgICAgICBnZnA6IDAuOTg0MzYyLFxuICAgICAgICByb2ZmOiAwLjAwMTIzOTMzLFxuICAgICAgICByb246IDAuNzk3NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NDg0LFxuICAgICAgICByb2ZmOiAwLjAwMTIyMDUzLFxuICAgICAgICByb246IDAuNzk3NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC45ODUyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMjAyNTcsXG4gICAgICAgIHJvbjogMC43OTc2MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTcxNSxcbiAgICAgICAgcm9mZjogMC4wMDExODUzOSxcbiAgICAgICAgcm9uOiAwLjc5NzY4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuOTg2MTE2LFxuICAgICAgICByb2ZmOiAwLjAwMTE2ODk4LFxuICAgICAgICByb246IDAuNzk3NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI4NTAsXG4gICAgICAgIGdmcDogMC45ODY0OTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTUzMjksXG4gICAgICAgIHJvbjogMC43OTc4MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk4Njg1LFxuICAgICAgICByb2ZmOiAwLjAwMTEzODI5LFxuICAgICAgICByb246IDAuNzk3ODY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI5NTAsXG4gICAgICAgIGdmcDogMC45ODcxODYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTIzOTUsXG4gICAgICAgIHJvbjogMC43OTc5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzUwMyxcbiAgICAgICAgcm9mZjogMC4wMDExMTAyNSxcbiAgICAgICAgcm9uOiAwLjc5Nzk3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuOTg3ODAzLFxuICAgICAgICByb2ZmOiAwLjAwMTA5NzE1LFxuICAgICAgICByb246IDAuNzk4MDI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC45ODgwODcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDg0NjMsXG4gICAgICAgIHJvbjogMC43OTgwNzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjk4ODM1NCxcbiAgICAgICAgcm9mZjogMC4wMDEwNzI2NyxcbiAgICAgICAgcm9uOiAwLjc5ODExNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuOTg4NjA4LFxuICAgICAgICByb2ZmOiAwLjAwMTA2MTIzLFxuICAgICAgICByb246IDAuNzk4MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC45ODg4NDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUwMyxcbiAgICAgICAgcm9uOiAwLjc5ODE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuOTg5MDc0LFxuICAgICAgICByb2ZmOiAwLjAwMTAzOTg1LFxuICAgICAgICByb246IDAuNzk4MjM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMzNTAsXG4gICAgICAgIGdmcDogMC45ODkyODksXG4gICAgICAgIHJvZmY6IDAuMDAxMDI5ODYsXG4gICAgICAgIHJvbjogMC43OTgyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4OTQ5MixcbiAgICAgICAgcm9mZjogMC4wMDEwMjAzMSxcbiAgICAgICAgcm9uOiAwLjc5ODMwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDUwLFxuICAgICAgICBnZnA6IDAuOTg5Njg0LFxuICAgICAgICByb2ZmOiAwLjAwMTAxMTE5LFxuICAgICAgICByb246IDAuNzk4MzM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC45ODk4NjYsXG4gICAgICAgIHJvZmY6IDAuMDAxMDAyNDcsXG4gICAgICAgIHJvbjogMC43OTgzNjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDAzOSxcbiAgICAgICAgcm9mZjogMC4wMDA5OTQxMyxcbiAgICAgICAgcm9uOiAwLjc5ODM5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuOTkwMjAzLFxuICAgICAgICByb2ZmOiAwLjAwMDk4NjE2MixcbiAgICAgICAgcm9uOiAwLjc5ODQxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuOTkwMzU4LFxuICAgICAgICByb2ZmOiAwLjAwMDk3ODU0NixcbiAgICAgICAgcm9uOiAwLjc5ODQ0NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuOTkwNTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MTI2NixcbiAgICAgICAgcm9uOiAwLjc5ODQ2OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuOTkwNjQ1LFxuICAgICAgICByb2ZmOiAwLjAwMDk2NDMwOCxcbiAgICAgICAgcm9uOiAwLjc5ODQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuOTkwNzc4LFxuICAgICAgICByb2ZmOiAwLjAwMDk1NzY1NyxcbiAgICAgICAgcm9uOiAwLjc5ODUxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuOTkwOTA0LFxuICAgICAgICByb2ZmOiAwLjAwMDk1MTMsXG4gICAgICAgIHJvbjogMC43OTg1MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTAyNCxcbiAgICAgICAgcm9mZjogMC4wMDA5NDUyMjQsXG4gICAgICAgIHJvbjogMC43OTg1NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA5Mzk0MTcsXG4gICAgICAgIHJvbjogMC43OTg1NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTI0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MzM4NjYsXG4gICAgICAgIHJvbjogMC43OTg1ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA5Mjg1NjEsXG4gICAgICAgIHJvbjogMC43OTg2MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTQ0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MjM0OSxcbiAgICAgICAgcm9uOiAwLjc5ODYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MTUwLFxuICAgICAgICBnZnA6IDAuOTkxNTM4LFxuICAgICAgICByb2ZmOiAwLjAwMDkxODY0MyxcbiAgICAgICAgcm9uOiAwLjc5ODYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjAwLFxuICAgICAgICBnZnA6IDAuOTkxNjI2LFxuICAgICAgICByb2ZmOiAwLjAwMDkxNDAxMSxcbiAgICAgICAgcm9uOiAwLjc5ODY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC45OTE3MSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDk1ODMsXG4gICAgICAgIHJvbjogMC43OTg2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTc4OSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDUzNTEsXG4gICAgICAgIHJvbjogMC43OTg2NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg2NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDEzMDYsXG4gICAgICAgIHJvbjogMC43OTg2ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MTkzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4OTc0NCxcbiAgICAgICAgcm9uOiAwLjc5ODcwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuOTkyMDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg5Mzc0NSxcbiAgICAgICAgcm9uOiAwLjc5ODcxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyMDcxLFxuICAgICAgICByb2ZmOiAwLjAwMDg5MDIxMyxcbiAgICAgICAgcm9uOiAwLjc5ODcyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuOTkyMTM0LFxuICAgICAgICByb2ZmOiAwLjAwMDg4NjgzNyxcbiAgICAgICAgcm9uOiAwLjc5ODczM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyMTkzLFxuICAgICAgICByb2ZmOiAwLjAwMDg4MzYxLFxuICAgICAgICByb246IDAuNzk4NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC45OTIyNDksXG4gICAgICAgIHJvZmY6IDAuMDAwODgwNTI2LFxuICAgICAgICByb246IDAuNzk4NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC45OTIzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODc3NTc5LFxuICAgICAgICByb246IDAuNzk4NzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NzQ3NjEsXG4gICAgICAgIHJvbjogMC43OTg3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQwMyxcbiAgICAgICAgcm9mZjogMC4wMDA4NzIwNjksXG4gICAgICAgIHJvbjogMC43OTg3NzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4Njk0OTUsXG4gICAgICAgIHJvbjogMC43OTg3ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4NjcwMzUsXG4gICAgICAgIHJvbjogMC43OTg3OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjUzNixcbiAgICAgICAgcm9mZjogMC4wMDA4NjQ2ODQsXG4gICAgICAgIHJvbjogMC43OTg3OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjU3NixcbiAgICAgICAgcm9mZjogMC4wMDA4NjI0MzcsXG4gICAgICAgIHJvbjogMC43OTg4MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjYxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4NjAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODgxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuOTkyNjUxLFxuICAgICAgICByb2ZmOiAwLjAwMDg1ODIzNyxcbiAgICAgICAgcm9uOiAwLjc5ODgxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNjg2LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NjI3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzE5LFxuICAgICAgICByb2ZmOiAwLjAwMDg1NDQsXG4gICAgICAgIHJvbjogMC43OTg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTI2MDcsXG4gICAgICAgIHJvbjogMC43OTg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjc4MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTA4OTQsXG4gICAgICAgIHJvbjogMC43OTg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgxLFxuICAgICAgICByb2ZmOiAwLjAwMDg0OTI1NyxcbiAgICAgICAgcm9uOiAwLjc5ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDAwLFxuICAgICAgICBnZnA6IDAuOTkyODM4LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NzY5MixcbiAgICAgICAgcm9uOiAwLjc5ODg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuOTkyODY0LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NjE5NixcbiAgICAgICAgcm9uOiAwLjc5ODg1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuOTkyODg5LFxuICAgICAgICByb2ZmOiAwLjAwMDg0NDc2NixcbiAgICAgICAgcm9uOiAwLjc5ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTUwLFxuICAgICAgICBnZnA6IDAuOTkyOTEzLFxuICAgICAgICByb2ZmOiAwLjAwMDg0MzM5OSxcbiAgICAgICAgcm9uOiAwLjc5ODg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuOTkyOTM2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MjA5MyxcbiAgICAgICAgcm9uOiAwLjc5ODg2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuOTkyOTU3LFxuICAgICAgICByb2ZmOiAwLjAwMDg0MDg0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NzAwLFxuICAgICAgICBnZnA6IDAuOTkyOTc4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTY1MixcbiAgICAgICAgcm9uOiAwLjc5ODg3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC45OTI5OTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODM4NTEyLFxuICAgICAgICByb246IDAuNzk4ODczXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4MDAsXG4gICAgICAgIGdmcDogMC45OTMwMTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NDIyLFxuICAgICAgICByb246IDAuNzk4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC45OTMwMzUsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2MzgsXG4gICAgICAgIHJvbjogMC43OTg4NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA1MixcbiAgICAgICAgcm9mZjogMC4wMDA4MzUzODUsXG4gICAgICAgIHJvbjogMC43OTg4ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ0MzMsXG4gICAgICAgIHJvbjogMC43OTg4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM1MjQsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MzI2NTQsXG4gICAgICAgIHJvbjogMC43OTg4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMTE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTgyNCxcbiAgICAgICAgcm9uOiAwLjc5ODg5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTAzLFxuICAgICAgICByb246IDAuNzk4ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC45OTMxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzAyNzEsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE1MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk1NDUsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjg4NTIsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzNTAsXG4gICAgICAgIGdmcDogMC45OTMxNzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODI4MTg5LFxuICAgICAgICByb246IDAuNzk4OTAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC45OTMxODcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3NTU1LFxuICAgICAgICByb246IDAuNzk4OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODI2OTUsXG4gICAgICAgIHJvbjogMC43OTg5MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjYzNzEsXG4gICAgICAgIHJvbjogMC43OTg5MDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU4MTgsXG4gICAgICAgIHJvbjogMC43OTg5MDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIyNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjUyODksXG4gICAgICAgIHJvbjogMC43OTg5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMjM1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDMsXG4gICAgICAgIHJvbjogMC43OTg5MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM4MzksXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjMzOTgsXG4gICAgICAgIHJvbjogMC43OTg5MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjI5NzYsXG4gICAgICAgIHJvbjogMC43OTg5MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3MixcbiAgICAgICAgcm9mZjogMC4wMDA4MjI1NzMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIxODgsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI4NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjE4MixcbiAgICAgICAgcm9uOiAwLjc5ODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC45OTMyOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNDY4LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxMDAsXG4gICAgICAgIGdmcDogMC45OTMyOTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMTMyLFxuICAgICAgICByb246IDAuNzk4OTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzMDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwODEsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1MDMsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MjAyMDksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk5MjksXG4gICAgICAgIHJvbjogMC43OTg5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTk2NixcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzI2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTQwNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MTU5LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC45OTMzMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4OTI1LFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NzAxLFxuICAgICAgICByb246IDAuNzk4OTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NDg3LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzNDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4MjgyLFxuICAgICAgICByb246IDAuNzk4OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgwODcsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuOTkzMzUyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzksXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3MjIsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc1NTEsXG4gICAgICAgIHJvbjogMC43OTg5MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzIzMixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzY1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzA4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjk0MSxcbiAgICAgICAgcm9uOiAwLjc5ODkzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2ODA0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2Njc0LFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzNzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NTUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0MzEsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYzMTgsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjIwOSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMzgyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjEwNSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjAwNixcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkxMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTgyMSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NjUxLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTcyLFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDk3LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NDI1LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4NTAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzU2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC45OTMzOTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MjksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUyMjcsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxNjYsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxMDksXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDU0LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDAxLFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTUxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0OTAzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODU3LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODEzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzcxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzMxLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjkzLFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjU2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NjIxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1ODcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDU1NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDksXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NTI1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0OTYsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ0MSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDE1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzkxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzY4LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzQ1LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzI0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MzA0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0Mjg0LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjY2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI0OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE5OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxODQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTU3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE0NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTA4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA5NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwODcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDc3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA2OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNTksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDQyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAzNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjcsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAxMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTgyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTY3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NTgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTM5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIzNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTI3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyNCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTE5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODgsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NixcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODUsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dXG5sZXQgbW9kZWxPZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTtcbmxldCBtb2RlbE9mZk9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjM2OTgsXG4gICAgICAgIHJvZmY6IDAuNjk3NzAxLFxuICAgICAgICByb246IDAuODMyNjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwLFxuICAgICAgICBnZnA6IDAuMDAwMjExMDc0LFxuICAgICAgICByb2ZmOiAwLjYxMjM2MyxcbiAgICAgICAgcm9uOiAwLjk0ODUyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAyNjc1MjYsXG4gICAgICAgIHJvZmY6IDAuNTUwNzc3LFxuICAgICAgICByb246IDAuOTE5NjI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMyOTY3NixcbiAgICAgICAgcm9mZjogMC41MDE1MTYsXG4gICAgICAgIHJvbjogMC44NzA4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMzk3NTg0LFxuICAgICAgICByb2ZmOiAwLjQ2MDMxOSxcbiAgICAgICAgcm9uOiAwLjgwOTk1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDA0NzIwMjgsXG4gICAgICAgIHJvZmY6IDAuNDI0OTQ1LFxuICAgICAgICByb246IDAuNzQ0NDcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU1Mzk1LFxuICAgICAgICByb2ZmOiAwLjM5NDAxNSxcbiAgICAgICAgcm9uOiAwLjY4MDM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDY0NDM0LFxuICAgICAgICByb2ZmOiAwLjM2NjYxLFxuICAgICAgICByb246IDAuNjIxMDIzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDc0NDIyMixcbiAgICAgICAgcm9mZjogMC4zNDIwODIsXG4gICAgICAgIHJvbjogMC41Njc4MDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwODU0NjY0LFxuICAgICAgICByb2ZmOiAwLjMxOTk1OCxcbiAgICAgICAgcm9uOiAwLjUyMDc0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5NzY3ODcsXG4gICAgICAgIHJvZmY6IDAuMjk5ODc3LFxuICAgICAgICByb246IDAuNDc5MzI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExMTc4LFxuICAgICAgICByb2ZmOiAwLjI4MTU1NixcbiAgICAgICAgcm9uOiAwLjQ0MjgxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjA5MSxcbiAgICAgICAgcm9mZjogMC4yNjQ3NzEsXG4gICAgICAgIHJvbjogMC40MTA1MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDI1NTIsXG4gICAgICAgIHJvZmY6IDAuMjQ5MzM4LFxuICAgICAgICByb246IDAuMzgxNzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMTYwNzA0LFxuICAgICAgICByb2ZmOiAwLjIzNTEwNixcbiAgICAgICAgcm9uOiAwLjM1NjAxMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NTAsXG4gICAgICAgIGdmcDogMC4wMDE4MDcsXG4gICAgICAgIHJvZmY6IDAuMjIxOTQ4LFxuICAgICAgICByb246IDAuMzMyODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODAwLFxuICAgICAgICBnZnA6IDAuMDAyMDI3MDEsXG4gICAgICAgIHJvZmY6IDAuMjA5NzU3LFxuICAgICAgICByb246IDAuMzExODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI2ODc0LFxuICAgICAgICByb2ZmOiAwLjE5ODQ0MixcbiAgICAgICAgcm9uOiAwLjI5MjgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MzM5NSxcbiAgICAgICAgcm9mZjogMC4xODc5MjUsXG4gICAgICAgIHJvbjogMC4yNzU0MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwLFxuICAgICAgICBnZnA6IDAuMDAyODI0NDMsXG4gICAgICAgIHJvZmY6IDAuMTc4MTM3LFxuICAgICAgICByb246IDAuMjU5NTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAsXG4gICAgICAgIGdmcDogMC4wMDMxNDIwMyxcbiAgICAgICAgcm9mZjogMC4xNjkwMjEsXG4gICAgICAgIHJvbjogMC4yNDQ5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQ4ODU0LFxuICAgICAgICByb2ZmOiAwLjE2MDUyMyxcbiAgICAgICAgcm9uOiAwLjIzMTQ3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzODY1NzYsXG4gICAgICAgIHJvZmY6IDAuMTUyNixcbiAgICAgICAgcm9uOiAwLjIxOTA5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwLFxuICAgICAgICBnZnA6IDAuMDA0Mjc1MzYsXG4gICAgICAgIHJvZmY6IDAuMTQ1MjEsXG4gICAgICAgIHJvbjogMC4yMDc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDcxODg2LFxuICAgICAgICByb2ZmOiAwLjEzODMxOSxcbiAgICAgICAgcm9uOiAwLjE5NzEwNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA1MTk3NTYsXG4gICAgICAgIHJvZmY6IDAuMTMxODk1LFxuICAgICAgICByb246IDAuMTg3MzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDU3MTI0MixcbiAgICAgICAgcm9mZjogMC4xMjU5MDksXG4gICAgICAgIHJvbjogMC4xNzgzMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNjI2NDAxLFxuICAgICAgICByb2ZmOiAwLjEyMDMzNixcbiAgICAgICAgcm9uOiAwLjE2OTk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2ODUyMzksXG4gICAgICAgIHJvZmY6IDAuMTE1MTU0LFxuICAgICAgICByb246IDAuMTYyMjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDc0NzcwNCxcbiAgICAgICAgcm9mZjogMC4xMTAzNDEsXG4gICAgICAgIHJvbjogMC4xNTUxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwLFxuICAgICAgICBnZnA6IDAuMDA4MTM2NjgsXG4gICAgICAgIHJvZmY6IDAuMTA1ODc4LFxuICAgICAgICByb246IDAuMTQ4NjI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NTAsXG4gICAgICAgIGdmcDogMC4wMDg4MjkyOSxcbiAgICAgICAgcm9mZjogMC4xMDE3NDgsXG4gICAgICAgIHJvbjogMC4xNDI1OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwOTU1MTk4LFxuICAgICAgICByb2ZmOiAwLjA5NzkzMjYsXG4gICAgICAgIHJvbjogMC4xMzcwNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMDMwMSxcbiAgICAgICAgcm9mZjogMC4wOTQ0MTc0LFxuICAgICAgICByb246IDAuMTMxOTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDAsXG4gICAgICAgIGdmcDogMC4wMTEwNzE4LFxuICAgICAgICByb2ZmOiAwLjA5MTE4NjYsXG4gICAgICAgIHJvbjogMC4xMjczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTg1ODksXG4gICAgICAgIHJvZmY6IDAuMDg4MjI1MixcbiAgICAgICAgcm9uOiAwLjEyMzA3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwLFxuICAgICAgICBnZnA6IDAuMDEyNjU2NCxcbiAgICAgICAgcm9mZjogMC4wODU1MTg4LFxuICAgICAgICByb246IDAuMTE5MjEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTM0NTc2LFxuICAgICAgICByb2ZmOiAwLjA4MzA1MjgsXG4gICAgICAgIHJvbjogMC4xMTU3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNDI1NTcsXG4gICAgICAgIHJvZmY6IDAuMDgwODEyNyxcbiAgICAgICAgcm9uOiAwLjExMjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTAsXG4gICAgICAgIGdmcDogMC4wMTUwNDM5LFxuICAgICAgICByb2ZmOiAwLjA3ODc4NDIsXG4gICAgICAgIHJvbjogMC4xMDk3MDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNTgxNTYsXG4gICAgICAgIHJvZmY6IDAuMDc2OTUzLFxuICAgICAgICByb246IDAuMTA3MTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNTAsXG4gICAgICAgIGdmcDogMC4wMTY1NjQ1LFxuICAgICAgICByb2ZmOiAwLjA3NTMwNDksXG4gICAgICAgIHJvbjogMC4xMDQ4NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxNzI4NTMsXG4gICAgICAgIHJvZmY6IDAuMDczODI1NyxcbiAgICAgICAgcm9uOiAwLjEwMjgyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAsXG4gICAgICAgIGdmcDogMC4wMTc5NzMzLFxuICAgICAgICByb2ZmOiAwLjA3MjUwMTgsXG4gICAgICAgIHJvbjogMC4xMDEwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxODYyNDgsXG4gICAgICAgIHJvZmY6IDAuMDcxMzE5NixcbiAgICAgICAgcm9uOiAwLjA5OTQxMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxOTIzNzMsXG4gICAgICAgIHJvZmY6IDAuMDcwMjY2MyxcbiAgICAgICAgcm9uOiAwLjA5ODAwNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAxOTgwOTEsXG4gICAgICAgIHJvZmY6IDAuMDY5MzI5NCxcbiAgICAgICAgcm9uOiAwLjA5Njc2ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDMzOTgsXG4gICAgICAgIHJvZmY6IDAuMDY4NDk3MixcbiAgICAgICAgcm9uOiAwLjA5NTY4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDIwODI5NixcbiAgICAgICAgcm9mZjogMC4wNjc3NTg3LFxuICAgICAgICByb246IDAuMDk0NzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAsXG4gICAgICAgIGdmcDogMC4wMjEyNzk0LFxuICAgICAgICByb2ZmOiAwLjA2NzEwMzYsXG4gICAgICAgIHJvbjogMC4wOTM5MzM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMjE2OTA5LFxuICAgICAgICByb2ZmOiAwLjA2NjUyMjUsXG4gICAgICAgIHJvbjogMC4wOTMyMzEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMjIwNjYzLFxuICAgICAgICByb2ZmOiAwLjA2NjAwNjYsXG4gICAgICAgIHJvbjogMC4wOTI2Mjg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMjI0MDc4LFxuICAgICAgICByb2ZmOiAwLjA2NTU0OCxcbiAgICAgICAgcm9uOiAwLjA5MjExNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMjcxODMsXG4gICAgICAgIHJvZmY6IDAuMDY1MTM5NSxcbiAgICAgICAgcm9uOiAwLjA5MTY4MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzAwMDMsXG4gICAgICAgIHJvZmY6IDAuMDY0Nzc0NixcbiAgICAgICAgcm9uOiAwLjA5MTMxNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzI1NjcsXG4gICAgICAgIHJvZmY6IDAuMDY0NDQ3NixcbiAgICAgICAgcm9uOiAwLjA5MTAxMzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzQ5MDIsXG4gICAgICAgIHJvZmY6IDAuMDY0MTUzMyxcbiAgICAgICAgcm9uOiAwLjA5MDc2NTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjg1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMzcwMzMsXG4gICAgICAgIHJvZmY6IDAuMDYzODg3MSxcbiAgICAgICAgcm9uOiAwLjA5MDU2NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAyMzg5ODYsXG4gICAgICAgIHJvZmY6IDAuMDYzNjQ0OCxcbiAgICAgICAgcm9uOiAwLjA5MDQxMDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDA3ODMsXG4gICAgICAgIHJvZmY6IDAuMDYzNDIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDI5MjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDI0NDYsXG4gICAgICAgIHJvZmY6IDAuMDYzMjE4MixcbiAgICAgICAgcm9uOiAwLjA5MDIwODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDM5OTUsXG4gICAgICAgIHJvZmY6IDAuMDYzMDI3OSxcbiAgICAgICAgcm9uOiAwLjA5MDE1NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNDU0NDcsXG4gICAgICAgIHJvZmY6IDAuMDYyODQ5NSxcbiAgICAgICAgcm9uOiAwLjA5MDEzMDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNDY4MixcbiAgICAgICAgcm9mZjogMC4wNjI2ODA3LFxuICAgICAgICByb246IDAuMDkwMTI5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjAwLFxuICAgICAgICBnZnA6IDAuMDI0ODEyNyxcbiAgICAgICAgcm9mZjogMC4wNjI1MTk4LFxuICAgICAgICByb246IDAuMDkwMTUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMjUwLFxuICAgICAgICBnZnA6IDAuMDI0OTM4MyxcbiAgICAgICAgcm9mZjogMC4wNjIzNjQ5LFxuICAgICAgICByb246IDAuMDkwMTkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDI1MDYsXG4gICAgICAgIHJvZmY6IDAuMDYyMjE0NyxcbiAgICAgICAgcm9uOiAwLjA5MDI1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTE3ODcsXG4gICAgICAgIHJvZmY6IDAuMDYyMDY3NyxcbiAgICAgICAgcm9uOiAwLjA5MDMzMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTI5NTcsXG4gICAgICAgIHJvZmY6IDAuMDYxOTIyOSxcbiAgICAgICAgcm9uOiAwLjA5MDQyNDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTQxMTYsXG4gICAgICAgIHJvZmY6IDAuMDYxNzc5MSxcbiAgICAgICAgcm9uOiAwLjA5MDUzNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTUyNzQsXG4gICAgICAgIHJvZmY6IDAuMDYxNjM1NCxcbiAgICAgICAgcm9uOiAwLjA5MDY1ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTY0MzgsXG4gICAgICAgIHJvZmY6IDAuMDYxNDkxMSxcbiAgICAgICAgcm9uOiAwLjA5MDc5NjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzYwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNTc2MTYsXG4gICAgICAgIHJvZmY6IDAuMDYxMzQ1MyxcbiAgICAgICAgcm9uOiAwLjA5MDk0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAyNTg4MTIsXG4gICAgICAgIHJvZmY6IDAuMDYxMTk3MyxcbiAgICAgICAgcm9uOiAwLjA5MTExMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDI2MDAzNSxcbiAgICAgICAgcm9mZjogMC4wNjEwNDY3LFxuICAgICAgICByb246IDAuMDkxMjg5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzUwLFxuICAgICAgICBnZnA6IDAuMDI2MTI4OCxcbiAgICAgICAgcm9mZjogMC4wNjA4OTI3LFxuICAgICAgICByb246IDAuMDkxNDc5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODAwLFxuICAgICAgICBnZnA6IDAuMDI2MjU3OCxcbiAgICAgICAgcm9mZjogMC4wNjA3MzQ4LFxuICAgICAgICByb246IDAuMDkxNjgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzODUwLFxuICAgICAgICBnZnA6IDAuMDI2MzkwOSxcbiAgICAgICAgcm9mZjogMC4wNjA1NzI3LFxuICAgICAgICByb246IDAuMDkxODk5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTAwLFxuICAgICAgICBnZnA6IDAuMDI2NTI4NyxcbiAgICAgICAgcm9mZjogMC4wNjA0MDU3LFxuICAgICAgICByb246IDAuMDkyMTI4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzOTUwLFxuICAgICAgICBnZnA6IDAuMDI2NjcxNyxcbiAgICAgICAgcm9mZjogMC4wNjAyMzM2LFxuICAgICAgICByb246IDAuMDkyMzcxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDI2ODIwMyxcbiAgICAgICAgcm9mZjogMC4wNjAwNTU5LFxuICAgICAgICByb246IDAuMDkyNjI3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDUwLFxuICAgICAgICBnZnA6IDAuMDI2OTc1LFxuICAgICAgICByb2ZmOiAwLjA1OTg3MjEsXG4gICAgICAgIHJvbjogMC4wOTI4OTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMjcxMzYzLFxuICAgICAgICByb2ZmOiAwLjA1OTY4MTksXG4gICAgICAgIHJvbjogMC4wOTMxODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMjczMDQ3LFxuICAgICAgICByb2ZmOiAwLjA1OTQ4NSxcbiAgICAgICAgcm9uOiAwLjA5MzQ4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAyNzQ4MDgsXG4gICAgICAgIHJvZmY6IDAuMDU5MjgxLFxuICAgICAgICByb246IDAuMDkzNzk5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MjUwLFxuICAgICAgICBnZnA6IDAuMDI3NjY1LFxuICAgICAgICByb2ZmOiAwLjA1OTA2OTUsXG4gICAgICAgIHJvbjogMC4wOTQxMzExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzMDAsXG4gICAgICAgIGdmcDogMC4wMjc4NTc4LFxuICAgICAgICByb2ZmOiAwLjA1ODg1MDMsXG4gICAgICAgIHJvbjogMC4wOTQ0Nzk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQzNTAsXG4gICAgICAgIGdmcDogMC4wMjgwNTk5LFxuICAgICAgICByb2ZmOiAwLjA1ODYyMjksXG4gICAgICAgIHJvbjogMC4wOTQ4NDY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ0MDAsXG4gICAgICAgIGdmcDogMC4wMjgyNzE3LFxuICAgICAgICByb2ZmOiAwLjA1ODM4NyxcbiAgICAgICAgcm9uOiAwLjA5NTIzMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAyODQ5NCxcbiAgICAgICAgcm9mZjogMC4wNTgxNDIzLFxuICAgICAgICByb246IDAuMDk1NjM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1MDAsXG4gICAgICAgIGdmcDogMC4wMjg3MjczLFxuICAgICAgICByb2ZmOiAwLjA1Nzg4ODUsXG4gICAgICAgIHJvbjogMC4wOTYwNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ1NTAsXG4gICAgICAgIGdmcDogMC4wMjg5NzI0LFxuICAgICAgICByb2ZmOiAwLjA1NzYyNTIsXG4gICAgICAgIHJvbjogMC4wOTY1MDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2MDAsXG4gICAgICAgIGdmcDogMC4wMjkyMjk5LFxuICAgICAgICByb2ZmOiAwLjA1NzM1MjIsXG4gICAgICAgIHJvbjogMC4wOTY5NzUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ2NTAsXG4gICAgICAgIGdmcDogMC4wMjk1MDA1LFxuICAgICAgICByb2ZmOiAwLjA1NzA2ODksXG4gICAgICAgIHJvbjogMC4wOTc0NjcyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ3MDAsXG4gICAgICAgIGdmcDogMC4wMjk3ODUyLFxuICAgICAgICByb2ZmOiAwLjA1Njc3NTMsXG4gICAgICAgIHJvbjogMC4wOTc5ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDA4NDcsXG4gICAgICAgIHJvZmY6IDAuMDU2NDcwOCxcbiAgICAgICAgcm9uOiAwLjA5ODUyNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMDM5OTksXG4gICAgICAgIHJvZmY6IDAuMDU2MTU1MixcbiAgICAgICAgcm9uOiAwLjA5OTA5NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMDczMTksXG4gICAgICAgIHJvZmY6IDAuMDU1ODI4MixcbiAgICAgICAgcm9uOiAwLjA5OTY5NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAzMTA4MTYsXG4gICAgICAgIHJvZmY6IDAuMDU1NDg5NCxcbiAgICAgICAgcm9uOiAwLjEwMDMyN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0OTUwLFxuICAgICAgICBnZnA6IDAuMDMxNDUwMixcbiAgICAgICAgcm9mZjogMC4wNTUxMzg2LFxuICAgICAgICByb246IDAuMTAwOTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMzE4Mzg3LFxuICAgICAgICByb2ZmOiAwLjA1NDc3NTQsXG4gICAgICAgIHJvbjogMC4xMDE2ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMjI0ODYsXG4gICAgICAgIHJvZmY6IDAuMDU0Mzk5NSxcbiAgICAgICAgcm9uOiAwLjEwMjQxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MTAwLFxuICAgICAgICBnZnA6IDAuMDMyNjgxLFxuICAgICAgICByb2ZmOiAwLjA1NDAxMDUsXG4gICAgICAgIHJvbjogMC4xMDMxODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAzMzEzNzUsXG4gICAgICAgIHJvZmY6IDAuMDUzNjA4MyxcbiAgICAgICAgcm9uOiAwLjEwMzk5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjAwLFxuICAgICAgICBnZnA6IDAuMDMzNjE5NyxcbiAgICAgICAgcm9mZjogMC4wNTMxOTI2LFxuICAgICAgICByb246IDAuMTA0ODUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyNTAsXG4gICAgICAgIGdmcDogMC4wMzQxMjkxLFxuICAgICAgICByb2ZmOiAwLjA1Mjc2MyxcbiAgICAgICAgcm9uOiAwLjEwNTc1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MzAwLFxuICAgICAgICBnZnA6IDAuMDM0NjY3NyxcbiAgICAgICAgcm9mZjogMC4wNTIzMTkyLFxuICAgICAgICByb246IDAuMTA2Njk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUzNTAsXG4gICAgICAgIGdmcDogMC4wMzUyMzcyLFxuICAgICAgICByb2ZmOiAwLjA1MTg2MTIsXG4gICAgICAgIHJvbjogMC4xMDc2OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAzNTgzOTgsXG4gICAgICAgIHJvZmY6IDAuMDUxMzg4NixcbiAgICAgICAgcm9uOiAwLjEwODc0NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NDUwLFxuICAgICAgICBnZnA6IDAuMDM2NDc3NyxcbiAgICAgICAgcm9mZjogMC4wNTA5MDEyLFxuICAgICAgICByb246IDAuMTA5ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MDAsXG4gICAgICAgIGdmcDogMC4wMzcxNTM0LFxuICAgICAgICByb2ZmOiAwLjA1MDM5ODksXG4gICAgICAgIHJvbjogMC4xMTEwMjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAzNzg2OTMsXG4gICAgICAgIHJvZmY6IDAuMDQ5ODgxNCxcbiAgICAgICAgcm9uOiAwLjExMjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjAwLFxuICAgICAgICBnZnA6IDAuMDM4NjI4NCxcbiAgICAgICAgcm9mZjogMC4wNDkzNDg3LFxuICAgICAgICByb246IDAuMTEzNTU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2NTAsXG4gICAgICAgIGdmcDogMC4wMzk0MzM2LFxuICAgICAgICByb2ZmOiAwLjA0ODgwMDcsXG4gICAgICAgIHJvbjogMC4xMTQ5MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MDI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDQ4MjM3MixcbiAgICAgICAgcm9uOiAwLjExNjM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3NTAsXG4gICAgICAgIGdmcDogMC4wNDExOTU4LFxuICAgICAgICByb2ZmOiAwLjA0NzY1ODMsXG4gICAgICAgIHJvbjogMC4xMTc5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTgwMCxcbiAgICAgICAgZ2ZwOiAwLjA0MjE2MDEsXG4gICAgICAgIHJvZmY6IDAuMDQ3MDY0LFxuICAgICAgICByb246IDAuMTE5NTM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wNDMxODUyLFxuICAgICAgICByb2ZmOiAwLjA0NjQ1NDIsXG4gICAgICAgIHJvbjogMC4xMjEyNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NDI3NTYsXG4gICAgICAgIHJvZmY6IDAuMDQ1ODI5MixcbiAgICAgICAgcm9uOiAwLjEyMzA2MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1OTUwLFxuICAgICAgICBnZnA6IDAuMDQ1NDM2MixcbiAgICAgICAgcm9mZjogMC4wNDUxODksXG4gICAgICAgIHJvbjogMC4xMjQ5ODJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjA0NjY3MjEsXG4gICAgICAgIHJvZmY6IDAuMDQ0NTMzOCxcbiAgICAgICAgcm9uOiAwLjEyNzAxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDQ3OTg5LFxuICAgICAgICByb2ZmOiAwLjA0Mzg2MzksXG4gICAgICAgIHJvbjogMC4xMjkxNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjEwMCxcbiAgICAgICAgZ2ZwOiAwLjA0OTM5MjksXG4gICAgICAgIHJvZmY6IDAuMDQzMTc5NSxcbiAgICAgICAgcm9uOiAwLjEzMTQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxNTAsXG4gICAgICAgIGdmcDogMC4wNTA4OTA2LFxuICAgICAgICByb2ZmOiAwLjA0MjQ4MTEsXG4gICAgICAgIHJvbjogMC4xMzM4NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjA1MjQ4OSxcbiAgICAgICAgcm9mZjogMC4wNDE3NjksXG4gICAgICAgIHJvbjogMC4xMzY0MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjA1NDE5NixcbiAgICAgICAgcm9mZjogMC4wNDEwNDM4LFxuICAgICAgICByb246IDAuMTM5MTU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYzMDAsXG4gICAgICAgIGdmcDogMC4wNTYwMTk4LFxuICAgICAgICByb2ZmOiAwLjA0MDMwNixcbiAgICAgICAgcm9uOiAwLjE0MjA0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDU3OTY5NSxcbiAgICAgICAgcm9mZjogMC4wMzk1NTYxLFxuICAgICAgICByb246IDAuMTQ1MTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wNjAwNTQ3LFxuICAgICAgICByb2ZmOiAwLjAzODc5NSxcbiAgICAgICAgcm9uOiAwLjE0ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0NTAsXG4gICAgICAgIGdmcDogMC4wNjIyODYxLFxuICAgICAgICByb2ZmOiAwLjAzODAyMzIsXG4gICAgICAgIHJvbjogMC4xNTE4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjA2NDY3NDgsXG4gICAgICAgIHJvZmY6IDAuMDM3MjQxNyxcbiAgICAgICAgcm9uOiAwLjE1NTUzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTUwLFxuICAgICAgICBnZnA6IDAuMDY3MjMzMSxcbiAgICAgICAgcm9mZjogMC4wMzY0NTE0LFxuICAgICAgICByb246IDAuMTU5NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjA2OTk3MzksXG4gICAgICAgIHJvZmY6IDAuMDM1NjUzLFxuICAgICAgICByb246IDAuMTYzNjE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY2NTAsXG4gICAgICAgIGdmcDogMC4wNzI5MTE0LFxuICAgICAgICByb2ZmOiAwLjAzNDg0NzgsXG4gICAgICAgIHJvbjogMC4xNjgwNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjA3NjA2MDUsXG4gICAgICAgIHJvZmY6IDAuMDM0MDM2NixcbiAgICAgICAgcm9uOiAwLjE3Mjc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NzUwLFxuICAgICAgICBnZnA6IDAuMDc5NDM3MixcbiAgICAgICAgcm9mZjogMC4wMzMyMjA3LFxuICAgICAgICByb246IDAuMTc3Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4MDAsXG4gICAgICAgIGdmcDogMC4wODMwNTg2LFxuICAgICAgICByb2ZmOiAwLjAzMjQwMTIsXG4gICAgICAgIHJvbjogMC4xODMxNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjA4Njk0MyxcbiAgICAgICAgcm9mZjogMC4wMzE1NzkyLFxuICAgICAgICByb246IDAuMTg4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY5MDAsXG4gICAgICAgIGdmcDogMC4wOTExMDk1LFxuICAgICAgICByb2ZmOiAwLjAzMDc1NixcbiAgICAgICAgcm9uOiAwLjE5NDg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDk1NTc4NCxcbiAgICAgICAgcm9mZjogMC4wMjk5MzI5LFxuICAgICAgICByb246IDAuMjAxMzQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwMDAsXG4gICAgICAgIGdmcDogMC4xMDAzNzEsXG4gICAgICAgIHJvZmY6IDAuMDI5MTExMSxcbiAgICAgICAgcm9uOiAwLjIwODIwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MDUwLFxuICAgICAgICBnZnA6IDAuMTA1NTEsXG4gICAgICAgIHJvZmY6IDAuMDI4MjkyLFxuICAgICAgICByb246IDAuMjE1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTAwLFxuICAgICAgICBnZnA6IDAuMTExMDE5LFxuICAgICAgICByb2ZmOiAwLjAyNzQ3NjcsXG4gICAgICAgIHJvbjogMC4yMjMyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MTUwLFxuICAgICAgICBnZnA6IDAuMTE2OTIxLFxuICAgICAgICByb2ZmOiAwLjAyNjY2NjUsXG4gICAgICAgIHJvbjogMC4yMzE1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjEyMzI0MSxcbiAgICAgICAgcm9mZjogMC4wMjU4NjI4LFxuICAgICAgICByb246IDAuMjQwMjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcyNTAsXG4gICAgICAgIGdmcDogMC4xMzAwMDUsXG4gICAgICAgIHJvZmY6IDAuMDI1MDY2OCxcbiAgICAgICAgcm9uOiAwLjI0OTU1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MzAwLFxuICAgICAgICBnZnA6IDAuMTM3MjM4LFxuICAgICAgICByb2ZmOiAwLjAyNDI3OTUsXG4gICAgICAgIHJvbjogMC4yNTkzOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjE0NDk2NyxcbiAgICAgICAgcm9mZjogMC4wMjM1MDIyLFxuICAgICAgICByb246IDAuMjY5ODI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4xNTMyMTUsXG4gICAgICAgIHJvZmY6IDAuMDIyNzM1OSxcbiAgICAgICAgcm9uOiAwLjI4MDg0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NDUwLFxuICAgICAgICBnZnA6IDAuMTYyMDA5LFxuICAgICAgICByb2ZmOiAwLjAyMTk4MTcsXG4gICAgICAgIHJvbjogMC4yOTI0ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzUwMCxcbiAgICAgICAgZ2ZwOiAwLjE3MTM3MSxcbiAgICAgICAgcm9mZjogMC4wMjEyNDA1LFxuICAgICAgICByb246IDAuMzA0NzQzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1NTAsXG4gICAgICAgIGdmcDogMC4xODEzMjUsXG4gICAgICAgIHJvZmY6IDAuMDIwNTEzMixcbiAgICAgICAgcm9uOiAwLjMxNzYzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMTkxODg5LFxuICAgICAgICByb2ZmOiAwLjAxOTgwMDYsXG4gICAgICAgIHJvbjogMC4zMzExNjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzY1MCxcbiAgICAgICAgZ2ZwOiAwLjIwMzA4MyxcbiAgICAgICAgcm9mZjogMC4wMTkxMDMzLFxuICAgICAgICByb246IDAuMzQ1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3MDAsXG4gICAgICAgIGdmcDogMC4yMTQ5MjEsXG4gICAgICAgIHJvZmY6IDAuMDE4NDIyMSxcbiAgICAgICAgcm9uOiAwLjM2MDA4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NzUwLFxuICAgICAgICBnZnA6IDAuMjI3NDE0LFxuICAgICAgICByb2ZmOiAwLjAxNzc1NzQsXG4gICAgICAgIHJvbjogMC4zNzU0NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjI0MDU2OCxcbiAgICAgICAgcm9mZjogMC4wMTcxMDk3LFxuICAgICAgICByb246IDAuMzkxMzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc4NTAsXG4gICAgICAgIGdmcDogMC4yNTQzODcsXG4gICAgICAgIHJvZmY6IDAuMDE2NDc5MyxcbiAgICAgICAgcm9uOiAwLjQwNzc4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTAwLFxuICAgICAgICBnZnA6IDAuMjY4ODY2LFxuICAgICAgICByb2ZmOiAwLjAxNTg2NjcsXG4gICAgICAgIHJvbjogMC40MjQ2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzk1MCxcbiAgICAgICAgZ2ZwOiAwLjI4Mzk5NyxcbiAgICAgICAgcm9mZjogMC4wMTUyNzE5LFxuICAgICAgICByb246IDAuNDQxOTI4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4yOTk3NjUsXG4gICAgICAgIHJvZmY6IDAuMDE0Njk1MSxcbiAgICAgICAgcm9uOiAwLjQ1OTQ5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDUwLFxuICAgICAgICBnZnA6IDAuMzE2MTQ2LFxuICAgICAgICByb2ZmOiAwLjAxNDEzNjMsXG4gICAgICAgIHJvbjogMC40NzcyNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODEwMCxcbiAgICAgICAgZ2ZwOiAwLjMzMzExMyxcbiAgICAgICAgcm9mZjogMC4wMTM1OTU2LFxuICAgICAgICByb246IDAuNDk1MTE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4zNTA2MyxcbiAgICAgICAgcm9mZjogMC4wMTMwNzI5LFxuICAgICAgICByb246IDAuNTEyOTQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyMDAsXG4gICAgICAgIGdmcDogMC4zNjg2NTQsXG4gICAgICAgIHJvZmY6IDAuMDEyNTY4LFxuICAgICAgICByb246IDAuNTMwNjMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgyNTAsXG4gICAgICAgIGdmcDogMC4zODcxMzYsXG4gICAgICAgIHJvZmY6IDAuMDEyMDgwOCxcbiAgICAgICAgcm9uOiAwLjU0ODAzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MzAwLFxuICAgICAgICBnZnA6IDAuNDA2MDIxLFxuICAgICAgICByb2ZmOiAwLjAxMTYxMTEsXG4gICAgICAgIHJvbjogMC41NjUwMzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjQyNTI0OCxcbiAgICAgICAgcm9mZjogMC4wMTExNTg1LFxuICAgICAgICByb246IDAuNTgxNTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0MDAsXG4gICAgICAgIGdmcDogMC40NDQ3NTIsXG4gICAgICAgIHJvZmY6IDAuMDEwNzIyOCxcbiAgICAgICAgcm9uOiAwLjU5NzMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC40NjQ0NjQsXG4gICAgICAgIHJvZmY6IDAuMDEwMzAzNixcbiAgICAgICAgcm9uOiAwLjYxMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MDAsXG4gICAgICAgIGdmcDogMC40ODQzMSxcbiAgICAgICAgcm9mZjogMC4wMDk5MDA1NCxcbiAgICAgICAgcm9uOiAwLjYyNjY5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuNTA0MjE4LFxuICAgICAgICByb2ZmOiAwLjAwOTUxMzI2LFxuICAgICAgICByb246IDAuNjQwMTA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC41MjQxMTQsXG4gICAgICAgIHJvZmY6IDAuMDA5MTQxMzMsXG4gICAgICAgIHJvbjogMC42NTI2MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjU0MzkyMyxcbiAgICAgICAgcm9mZjogMC4wMDg3ODQzLFxuICAgICAgICByb246IDAuNjY0MjQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3MDAsXG4gICAgICAgIGdmcDogMC41NjM1NzUsXG4gICAgICAgIHJvZmY6IDAuMDA4NDQxNzMsXG4gICAgICAgIHJvbjogMC42NzQ5NzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODc1MCxcbiAgICAgICAgZ2ZwOiAwLjU4MzAwMSxcbiAgICAgICAgcm9mZjogMC4wMDgxMTMxNixcbiAgICAgICAgcm9uOiAwLjY4NDg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg4MDAsXG4gICAgICAgIGdmcDogMC42MDIxMzYsXG4gICAgICAgIHJvZmY6IDAuMDA3Nzk4MTIsXG4gICAgICAgIHJvbjogMC42OTM5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjYyMDkxOSxcbiAgICAgICAgcm9mZjogMC4wMDc0OTYxNSxcbiAgICAgICAgcm9uOiAwLjcwMjIyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4OTAwLFxuICAgICAgICBnZnA6IDAuNjM5Mjk3LFxuICAgICAgICByb2ZmOiAwLjAwNzIwNjc5LFxuICAgICAgICByb246IDAuNzA5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5NTAsXG4gICAgICAgIGdmcDogMC42NTcyMjEsXG4gICAgICAgIHJvZmY6IDAuMDA2OTI5NTcsXG4gICAgICAgIHJvbjogMC43MTY3ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjY3NDY0NyxcbiAgICAgICAgcm9mZjogMC4wMDY2NjQwMyxcbiAgICAgICAgcm9uOiAwLjcyMzE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuNjkxNTM5LFxuICAgICAgICByb2ZmOiAwLjAwNjQwOTczLFxuICAgICAgICByb246IDAuNzI5MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkxMDAsXG4gICAgICAgIGdmcDogMC43MDc4NjYsXG4gICAgICAgIHJvZmY6IDAuMDA2MTY2MjMsXG4gICAgICAgIHJvbjogMC43MzQzNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjcyMzYwNCxcbiAgICAgICAgcm9mZjogMC4wMDU5MzMxMSxcbiAgICAgICAgcm9uOiAwLjczOTI3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuNzM4NzM2LFxuICAgICAgICByb2ZmOiAwLjAwNTcwOTk1LFxuICAgICAgICByb246IDAuNzQzNzg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkyNTAsXG4gICAgICAgIGdmcDogMC43NTMyNDksXG4gICAgICAgIHJvZmY6IDAuMDA1NDk2MzQsXG4gICAgICAgIHJvbjogMC43NDc5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjc2NzEzNSxcbiAgICAgICAgcm9mZjogMC4wMDUyOTE5MSxcbiAgICAgICAgcm9uOiAwLjc1MTc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkzNTAsXG4gICAgICAgIGdmcDogMC43ODAzOTIsXG4gICAgICAgIHJvZmY6IDAuMDA1MDk2MjYsXG4gICAgICAgIHJvbjogMC43NTUyNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjc5MzAyMyxcbiAgICAgICAgcm9mZjogMC4wMDQ5MDkwNCxcbiAgICAgICAgcm9uOiAwLjc1ODQ5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NDUwLFxuICAgICAgICBnZnA6IDAuODA1MDM0LFxuICAgICAgICByb2ZmOiAwLjAwNDcyOTksXG4gICAgICAgIHJvbjogMC43NjE0NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjgxNjQzNCxcbiAgICAgICAgcm9mZjogMC4wMDQ1NTg1LFxuICAgICAgICByb246IDAuNzY0MjI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC44MjcyMzUsXG4gICAgICAgIHJvZmY6IDAuMDA0Mzk0NTIsXG4gICAgICAgIHJvbjogMC43NjY3NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NjAwLFxuICAgICAgICBnZnA6IDAuODM3NDU0LFxuICAgICAgICByb2ZmOiAwLjAwNDIzNzY0LFxuICAgICAgICByb246IDAuNzY5MDk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC44NDcxMDgsXG4gICAgICAgIHJvZmY6IDAuMDA0MDg3NTYsXG4gICAgICAgIHJvbjogMC43NzEyNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjg1NjIxNSxcbiAgICAgICAgcm9mZjogMC4wMDM5NDQsXG4gICAgICAgIHJvbjogMC43NzMyNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjg2NDc5NSxcbiAgICAgICAgcm9mZjogMC4wMDM4MDY2OCxcbiAgICAgICAgcm9uOiAwLjc3NTA4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5ODAwLFxuICAgICAgICBnZnA6IDAuODcyODcxLFxuICAgICAgICByb2ZmOiAwLjAwMzY3NTM0LFxuICAgICAgICByb246IDAuNzc2NzgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk4NTAsXG4gICAgICAgIGdmcDogMC44ODA0NjIsXG4gICAgICAgIHJvZmY6IDAuMDAzNTQ5NzEsXG4gICAgICAgIHJvbjogMC43NzgzNDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjg4NzU5MyxcbiAgICAgICAgcm9mZjogMC4wMDM0Mjk1NixcbiAgICAgICAgcm9uOiAwLjc3OTc5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5OTUwLFxuICAgICAgICBnZnA6IDAuODk0Mjg1LFxuICAgICAgICByb2ZmOiAwLjAwMzMxNDY0LFxuICAgICAgICByb246IDAuNzgxMTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDAwLFxuICAgICAgICBnZnA6IDAuOTAwNTYsXG4gICAgICAgIHJvZmY6IDAuMDAzMjA0NzQsXG4gICAgICAgIHJvbjogMC43ODIzNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwNTAsXG4gICAgICAgIGdmcDogMC45MDY0NDEsXG4gICAgICAgIHJvZmY6IDAuMDAzMDk5NjQsXG4gICAgICAgIHJvbjogMC43ODM1MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxMDAsXG4gICAgICAgIGdmcDogMC45MTE5NDgsXG4gICAgICAgIHJvZmY6IDAuMDAyOTk5MTQsXG4gICAgICAgIHJvbjogMC43ODQ1ODNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC45MTcxMDMsXG4gICAgICAgIHJvZmY6IDAuMDAyOTAzMDIsXG4gICAgICAgIHJvbjogMC43ODU1NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC45MjE5MjYsXG4gICAgICAgIHJvZmY6IDAuMDAyODExMTEsXG4gICAgICAgIHJvbjogMC43ODY0NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyNTAsXG4gICAgICAgIGdmcDogMC45MjY0MzcsXG4gICAgICAgIHJvZmY6IDAuMDAyNzIzMjMsXG4gICAgICAgIHJvbjogMC43ODczMTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC45MzA2NTQsXG4gICAgICAgIHJvZmY6IDAuMDAyNjM5MTksXG4gICAgICAgIHJvbjogMC43ODgwOTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzNTAsXG4gICAgICAgIGdmcDogMC45MzQ1OTYsXG4gICAgICAgIHJvZmY6IDAuMDAyNTU4ODMsXG4gICAgICAgIHJvbjogMC43ODg4MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0MDAsXG4gICAgICAgIGdmcDogMC45MzgyNzksXG4gICAgICAgIHJvZmY6IDAuMDAyNDgxOTksXG4gICAgICAgIHJvbjogMC43ODk0ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC45NDE3MjEsXG4gICAgICAgIHJvZmY6IDAuMDAyNDA4NTIsXG4gICAgICAgIHJvbjogMC43OTAxMDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MDAsXG4gICAgICAgIGdmcDogMC45NDQ5MzYsXG4gICAgICAgIHJvZmY6IDAuMDAyMzM4MjgsXG4gICAgICAgIHJvbjogMC43OTA2ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1NTAsXG4gICAgICAgIGdmcDogMC45NDc5NCxcbiAgICAgICAgcm9mZjogMC4wMDIyNzExMixcbiAgICAgICAgcm9uOiAwLjc5MTIxOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDYwMCxcbiAgICAgICAgZ2ZwOiAwLjk1MDc0NSxcbiAgICAgICAgcm9mZjogMC4wMDIyMDY5LFxuICAgICAgICByb246IDAuNzkxNzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjUwLFxuICAgICAgICBnZnA6IDAuOTUzMzY2LFxuICAgICAgICByb2ZmOiAwLjAwMjE0NTUxLFxuICAgICAgICByb246IDAuNzkyMTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzAwLFxuICAgICAgICBnZnA6IDAuOTU1ODE1LFxuICAgICAgICByb2ZmOiAwLjAwMjA4NjgxLFxuICAgICAgICByb246IDAuNzkyNjA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuOTU4MTAzLFxuICAgICAgICByb2ZmOiAwLjAwMjAzMDY5LFxuICAgICAgICByb246IDAuNzkzMDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwODAwLFxuICAgICAgICBnZnA6IDAuOTYwMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxOTc3MDQsXG4gICAgICAgIHJvbjogMC43OTMzNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC45NjIyMzgsXG4gICAgICAgIHJvZmY6IDAuMDAxOTI1NzUsXG4gICAgICAgIHJvbjogMC43OTM3MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5MDAsXG4gICAgICAgIGdmcDogMC45NjQxMDUsXG4gICAgICAgIHJvZmY6IDAuMDAxODc2NzEsXG4gICAgICAgIHJvbjogMC43OTQwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA5NTAsXG4gICAgICAgIGdmcDogMC45NjU4NTEsXG4gICAgICAgIHJvZmY6IDAuMDAxODI5ODMsXG4gICAgICAgIHJvbjogMC43OTQzNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC45Njc0ODQsXG4gICAgICAgIHJvZmY6IDAuMDAxNzg1MDEsXG4gICAgICAgIHJvbjogMC43OTQ2MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwNTAsXG4gICAgICAgIGdmcDogMC45NjkwMTEsXG4gICAgICAgIHJvZmY6IDAuMDAxNzQyMTYsXG4gICAgICAgIHJvbjogMC43OTQ4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExMDAsXG4gICAgICAgIGdmcDogMC45NzA0NCxcbiAgICAgICAgcm9mZjogMC4wMDE3MDEyMSxcbiAgICAgICAgcm9uOiAwLjc5NTEyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk3MTc3NyxcbiAgICAgICAgcm9mZjogMC4wMDE2NjIwNSxcbiAgICAgICAgcm9uOiAwLjc5NTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjk3MzAyOSxcbiAgICAgICAgcm9mZjogMC4wMDE2MjQ2MixcbiAgICAgICAgcm9uOiAwLjc5NTU2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NDIwMSxcbiAgICAgICAgcm9mZjogMC4wMDE1ODg4MyxcbiAgICAgICAgcm9uOiAwLjc5NTc2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NTI5OSxcbiAgICAgICAgcm9mZjogMC4wMDE1NTQ2MyxcbiAgICAgICAgcm9uOiAwLjc5NTk0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk3NjMyOCxcbiAgICAgICAgcm9mZjogMC4wMDE1MjE5MyxcbiAgICAgICAgcm9uOiAwLjc5NjEyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk3NzI5MyxcbiAgICAgICAgcm9mZjogMC4wMDE0OTA2NyxcbiAgICAgICAgcm9uOiAwLjc5NjI4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk3ODE5OCxcbiAgICAgICAgcm9mZjogMC4wMDE0NjA3OCxcbiAgICAgICAgcm9uOiAwLjc5NjQzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk3OTA0NyxcbiAgICAgICAgcm9mZjogMC4wMDE0MzIyMixcbiAgICAgICAgcm9uOiAwLjc5NjU3N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk3OTg0NCxcbiAgICAgICAgcm9mZjogMC4wMDE0MDQ5MixcbiAgICAgICAgcm9uOiAwLjc5NjcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjAwLFxuICAgICAgICBnZnA6IDAuOTgwNTkyLFxuICAgICAgICByb2ZmOiAwLjAwMTM3ODgyLFxuICAgICAgICByb246IDAuNzk2ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuOTgxMjk0LFxuICAgICAgICByb2ZmOiAwLjAwMTM1Mzg3LFxuICAgICAgICByb246IDAuNzk2OTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzAwLFxuICAgICAgICBnZnA6IDAuOTgxOTU0LFxuICAgICAgICByb2ZmOiAwLjAwMTMzMDAyLFxuICAgICAgICByb246IDAuNzk3MDYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuOTgyNTc1LFxuICAgICAgICByb2ZmOiAwLjAwMTMwNzIyLFxuICAgICAgICByb246IDAuNzk3MTY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODAwLFxuICAgICAgICBnZnA6IDAuOTgzMTU4LFxuICAgICAgICByb2ZmOiAwLjAwMTI4NTQzLFxuICAgICAgICByb246IDAuNzk3MjYxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExODUwLFxuICAgICAgICBnZnA6IDAuOTgzNzA3LFxuICAgICAgICByb2ZmOiAwLjAwMTI2NDYsXG4gICAgICAgIHJvbjogMC43OTczNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC45ODQyMjQsXG4gICAgICAgIHJvZmY6IDAuMDAxMjQ0NjksXG4gICAgICAgIHJvbjogMC43OTc0MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC45ODQ3MSxcbiAgICAgICAgcm9mZjogMC4wMDEyMjU2NSxcbiAgICAgICAgcm9uOiAwLjc5NzUxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NTE2OCxcbiAgICAgICAgcm9mZjogMC4wMDEyMDc0NixcbiAgICAgICAgcm9uOiAwLjc5NzU5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NTYsXG4gICAgICAgIHJvZmY6IDAuMDAxMTkwMDcsXG4gICAgICAgIHJvbjogMC43OTc2NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC45ODYwMDcsXG4gICAgICAgIHJvZmY6IDAuMDAxMTczNDUsXG4gICAgICAgIHJvbjogMC43OTc3MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxNTAsXG4gICAgICAgIGdmcDogMC45ODYzOTEsXG4gICAgICAgIHJvZmY6IDAuMDAxMTU3NTYsXG4gICAgICAgIHJvbjogMC43OTc3OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyMDAsXG4gICAgICAgIGdmcDogMC45ODY3NTMsXG4gICAgICAgIHJvZmY6IDAuMDAxMTQyMzgsXG4gICAgICAgIHJvbjogMC43OTc4NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC45ODcwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAxMTI3ODYsXG4gICAgICAgIHJvbjogMC43OTc5MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjk4NzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDExMTM5OCxcbiAgICAgICAgcm9uOiAwLjc5Nzk2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjk4NzcyMixcbiAgICAgICAgcm9mZjogMC4wMDExMDA3MixcbiAgICAgICAgcm9uOiAwLjc5ODAxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk4ODAxLFxuICAgICAgICByb2ZmOiAwLjAwMTA4ODA0LFxuICAgICAgICByb246IDAuNzk4MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI0NTAsXG4gICAgICAgIGdmcDogMC45ODgyODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDc1OTMsXG4gICAgICAgIHJvbjogMC43OTgxMDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC45ODg1MzksXG4gICAgICAgIHJvZmY6IDAuMDAxMDY0MzUsXG4gICAgICAgIHJvbjogMC43OTgxNDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1NTAsXG4gICAgICAgIGdmcDogMC45ODg3ODIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDUzMjgsXG4gICAgICAgIHJvbjogMC43OTgxODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2MDAsXG4gICAgICAgIGdmcDogMC45ODkwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAxMDQyNjksXG4gICAgICAgIHJvbjogMC43OTgyMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC45ODkyMyxcbiAgICAgICAgcm9mZjogMC4wMDEwMzI1OCxcbiAgICAgICAgcm9uOiAwLjc5ODI2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuOTg5NDM3LFxuICAgICAgICByb2ZmOiAwLjAwMTAyMjkxLFxuICAgICAgICByb246IDAuNzk4MjkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzUwLFxuICAgICAgICBnZnA6IDAuOTg5NjMyLFxuICAgICAgICByb2ZmOiAwLjAwMTAxMzY3LFxuICAgICAgICByb246IDAuNzk4MzI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODAwLFxuICAgICAgICBnZnA6IDAuOTg5ODE3LFxuICAgICAgICByb2ZmOiAwLjAwMTAwNDg0LFxuICAgICAgICByb246IDAuNzk4MzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyODUwLFxuICAgICAgICBnZnA6IDAuOTg5OTkyLFxuICAgICAgICByb2ZmOiAwLjAwMDk5NjQwMSxcbiAgICAgICAgcm9uOiAwLjc5ODM4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MDE1OCxcbiAgICAgICAgcm9mZjogMC4wMDA5ODgzMzMsXG4gICAgICAgIHJvbjogMC43OTg0MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI5NTAsXG4gICAgICAgIGdmcDogMC45OTAzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTgwNjIxLFxuICAgICAgICByb246IDAuNzk4NDM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAwLFxuICAgICAgICBnZnA6IDAuOTkwNDY2LFxuICAgICAgICByb2ZmOiAwLjAwMDk3MzI0OSxcbiAgICAgICAgcm9uOiAwLjc5ODQ2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MDYwNyxcbiAgICAgICAgcm9mZjogMC4wMDA5NjYyMDMsXG4gICAgICAgIHJvbjogMC43OTg0ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxMDAsXG4gICAgICAgIGdmcDogMC45OTA3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTU5NDY5LFxuICAgICAgICByb246IDAuNzk4NTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMTUwLFxuICAgICAgICBnZnA6IDAuOTkwODcsXG4gICAgICAgIHJvZmY6IDAuMDAwOTUzMDMyLFxuICAgICAgICByb246IDAuNzk4NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuOTkwOTkxLFxuICAgICAgICByb2ZmOiAwLjAwMDk0Njg3OSxcbiAgICAgICAgcm9uOiAwLjc5ODU0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTEwNixcbiAgICAgICAgcm9mZjogMC4wMDA5NDA5OTksXG4gICAgICAgIHJvbjogMC43OTg1NjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC45OTEyMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwOTM1Mzc4LFxuICAgICAgICByb246IDAuNzk4NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuOTkxMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTMwMDA2LFxuICAgICAgICByb246IDAuNzk4NjAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNDAwLFxuICAgICAgICBnZnA6IDAuOTkxNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDkyNDg3MSxcbiAgICAgICAgcm9uOiAwLjc5ODYxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTUxMyxcbiAgICAgICAgcm9mZjogMC4wMDA5MTk5NjQsXG4gICAgICAgIHJvbjogMC43OTg2MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC45OTE2MDIsXG4gICAgICAgIHJvZmY6IDAuMDAwOTE1MjczLFxuICAgICAgICByb246IDAuNzk4NjQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNTUwLFxuICAgICAgICBnZnA6IDAuOTkxNjg3LFxuICAgICAgICByb2ZmOiAwLjAwMDkxMDc4OSxcbiAgICAgICAgcm9uOiAwLjc5ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuOTkxNzY4LFxuICAgICAgICByb2ZmOiAwLjAwMDkwNjUwNCxcbiAgICAgICAgcm9uOiAwLjc5ODY3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MTg0NSxcbiAgICAgICAgcm9mZjogMC4wMDA5MDI0MDgsXG4gICAgICAgIHJvbjogMC43OTg2ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3MDAsXG4gICAgICAgIGdmcDogMC45OTE5MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODk4NDkzLFxuICAgICAgICByb246IDAuNzk4Njk4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNzUwLFxuICAgICAgICBnZnA6IDAuOTkxOTg3LFxuICAgICAgICByb2ZmOiAwLjAwMDg5NDc1MSxcbiAgICAgICAgcm9uOiAwLjc5ODcwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjA1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4OTExNzQsXG4gICAgICAgIHJvbjogMC43OTg3MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjExNyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODc3NTYsXG4gICAgICAgIHJvbjogMC43OTg3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjE3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4ODQ0ODksXG4gICAgICAgIHJvbjogMC43OTg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjIzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4ODEzNjYsXG4gICAgICAgIHJvbjogMC43OTg3NDlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwMDAsXG4gICAgICAgIGdmcDogMC45OTIyODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODc4MzgxLFxuICAgICAgICByb246IDAuNzk4NzU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MDUwLFxuICAgICAgICBnZnA6IDAuOTkyMzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODc1NTI5LFxuICAgICAgICByb246IDAuNzk4NzY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuOTkyMzksXG4gICAgICAgIHJvZmY6IDAuMDAwODcyODAyLFxuICAgICAgICByb246IDAuNzk4Nzc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuOTkyNDM3LFxuICAgICAgICByb2ZmOiAwLjAwMDg3MDE5NixcbiAgICAgICAgcm9uOiAwLjc5ODc4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjQ4MixcbiAgICAgICAgcm9mZjogMC4wMDA4Njc3MDYsXG4gICAgICAgIHJvbjogMC43OTg3ODlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC45OTI1MjQsXG4gICAgICAgIHJvZmY6IDAuMDAwODY1MzI1LFxuICAgICAgICByb246IDAuNzk4Nzk2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzAwLFxuICAgICAgICBnZnA6IDAuOTkyNTY1LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MzA1LFxuICAgICAgICByb246IDAuNzk4ODAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MzUwLFxuICAgICAgICBnZnA6IDAuOTkyNjA0LFxuICAgICAgICByb2ZmOiAwLjAwMDg2MDg3NSxcbiAgICAgICAgcm9uOiAwLjc5ODgwOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjY0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4NTg3OTYsXG4gICAgICAgIHJvbjogMC43OTg4MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC45OTI2NzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODU2ODA5LFxuICAgICAgICByb246IDAuNzk4ODIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAwLFxuICAgICAgICBnZnA6IDAuOTkyNzEsXG4gICAgICAgIHJvZmY6IDAuMDAwODU0OTEsXG4gICAgICAgIHJvbjogMC43OTg4MjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ1NTAsXG4gICAgICAgIGdmcDogMC45OTI3NDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODUzMDk1LFxuICAgICAgICByb246IDAuNzk4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuOTkyNzczLFxuICAgICAgICByb2ZmOiAwLjAwMDg1MTM2MSxcbiAgICAgICAgcm9uOiAwLjc5ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MjgwMixcbiAgICAgICAgcm9mZjogMC4wMDA4NDk3MDIsXG4gICAgICAgIHJvbjogMC43OTg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3MDAsXG4gICAgICAgIGdmcDogMC45OTI4MyxcbiAgICAgICAgcm9mZjogMC4wMDA4NDgxMTgsXG4gICAgICAgIHJvbjogMC43OTg4NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC45OTI4NTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ2NjAzLFxuICAgICAgICByb246IDAuNzk4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ4MDAsXG4gICAgICAgIGdmcDogMC45OTI4ODIsXG4gICAgICAgIHJvZmY6IDAuMDAwODQ1MTU1LFxuICAgICAgICByb246IDAuNzk4ODU0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODUwLFxuICAgICAgICBnZnA6IDAuOTkyOTA2LFxuICAgICAgICByb2ZmOiAwLjAwMDg0Mzc3MixcbiAgICAgICAgcm9uOiAwLjc5ODg1OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MjkyOSxcbiAgICAgICAgcm9mZjogMC4wMDA4NDI0NDksXG4gICAgICAgIHJvbjogMC43OTg4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5NTAsXG4gICAgICAgIGdmcDogMC45OTI5NTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODQxMTg1LFxuICAgICAgICByb246IDAuNzk4ODY2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MDAwLFxuICAgICAgICBnZnA6IDAuOTkyOTcyLFxuICAgICAgICByb2ZmOiAwLjAwMDgzOTk3NyxcbiAgICAgICAgcm9uOiAwLjc5ODg2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5Mjk5MyxcbiAgICAgICAgcm9mZjogMC4wMDA4Mzg4MjIsXG4gICAgICAgIHJvbjogMC43OTg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC45OTMwMTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODM3NzE5LFxuICAgICAgICByb246IDAuNzk4ODc1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODM2NjY0LFxuICAgICAgICByb246IDAuNzk4ODc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMDQ4LFxuICAgICAgICByb2ZmOiAwLjAwMDgzNTY1NixcbiAgICAgICAgcm9uOiAwLjc5ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzA2NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzQ2OTIsXG4gICAgICAgIHJvbjogMC43OTg4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzMDAsXG4gICAgICAgIGdmcDogMC45OTMwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MzM3NzEsXG4gICAgICAgIHJvbjogMC43OTg4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC45OTMwOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyODkxLFxuICAgICAgICByb246IDAuNzk4ODg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODMyMDQ5LFxuICAgICAgICByb246IDAuNzk4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMTI0LFxuICAgICAgICByb2ZmOiAwLjAwMDgzMTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzEzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MzA0NzYsXG4gICAgICAgIHJvbjogMC43OTg4OTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC45OTMxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjk3NDIsXG4gICAgICAgIHJvbjogMC43OTg4OThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC45OTMxNjIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI5MDQsXG4gICAgICAgIHJvbjogMC43OTg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMTczLFxuICAgICAgICByb2ZmOiAwLjAwMDgyODM2OSxcbiAgICAgICAgcm9uOiAwLjc5ODkwMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzE4NCxcbiAgICAgICAgcm9mZjogMC4wMDA4Mjc3MjcsXG4gICAgICAgIHJvbjogMC43OTg5MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU3NTAsXG4gICAgICAgIGdmcDogMC45OTMxOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODI3MTE0LFxuICAgICAgICByb246IDAuNzk4OTA1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMjA1LFxuICAgICAgICByb2ZmOiAwLjAwMDgyNjUyOCxcbiAgICAgICAgcm9uOiAwLjc5ODkwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzIxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MjU5NjgsXG4gICAgICAgIHJvbjogMC43OTg5MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5MDAsXG4gICAgICAgIGdmcDogMC45OTMyMjMsXG4gICAgICAgIHJvZmY6IDAuMDAwODI1NDMzLFxuICAgICAgICByb246IDAuNzk4OTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU5NTAsXG4gICAgICAgIGdmcDogMC45OTMyMzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODI0OTIxLFxuICAgICAgICByb246IDAuNzk4OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzMjQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyNDQzMixcbiAgICAgICAgcm9uOiAwLjc5ODkxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI0OSxcbiAgICAgICAgcm9mZjogMC4wMDA4MjM5NjUsXG4gICAgICAgIHJvbjogMC43OTg5MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYxMDAsXG4gICAgICAgIGdmcDogMC45OTMyNTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIzNTE4LFxuICAgICAgICByb246IDAuNzk4OTE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzMjYzLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMzA5MSxcbiAgICAgICAgcm9uOiAwLjc5ODkxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3LFxuICAgICAgICByb2ZmOiAwLjAwMDgyMjY4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzI3NyxcbiAgICAgICAgcm9mZjogMC4wMDA4MjIyOTMsXG4gICAgICAgIHJvbjogMC43OTg5MThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC45OTMyODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxOTIsXG4gICAgICAgIHJvbjogMC43OTg5MTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzNTAsXG4gICAgICAgIGdmcDogMC45OTMyODksXG4gICAgICAgIHJvZmY6IDAuMDAwODIxNTY0LFxuICAgICAgICByb246IDAuNzk4OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0MDAsXG4gICAgICAgIGdmcDogMC45OTMyOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODIxMjI0LFxuICAgICAgICByb246IDAuNzk4OTIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzMzAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgyMDg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMwNixcbiAgICAgICAgcm9mZjogMC4wMDA4MjA1ODcsXG4gICAgICAgIHJvbjogMC43OTg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1NTAsXG4gICAgICAgIGdmcDogMC45OTMzMTEsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMjksXG4gICAgICAgIHJvbjogMC43OTg5MjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC45OTMzMTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODIwMDA2LFxuICAgICAgICByb246IDAuNzk4OTI1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzIxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxOTczNCxcbiAgICAgICAgcm9uOiAwLjc5ODkyNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMyNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTk0NzQsXG4gICAgICAgIHJvbjogMC43OTg5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC45OTMzMjksXG4gICAgICAgIHJvZmY6IDAuMDAwODE5MjI2LFxuICAgICAgICByb246IDAuNzk4OTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzMzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxODk4OSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTg3NjMsXG4gICAgICAgIHJvbjogMC43OTg5MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY5MDAsXG4gICAgICAgIGdmcDogMC45OTMzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE4NTQ2LFxuICAgICAgICByb246IDAuNzk4OTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzQ0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxODMzOSxcbiAgICAgICAgcm9uOiAwLjc5ODkyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM0OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTgxNDEsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc5NTIsXG4gICAgICAgIHJvbjogMC43OTg5M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM1NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTc3NzEsXG4gICAgICAgIHJvbjogMC43OTg5MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC45OTMzNTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NTk4LFxuICAgICAgICByb246IDAuNzk4OTMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuOTkzMzYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE3NDMzLFxuICAgICAgICByb246IDAuNzk4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzYyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNzI3NixcbiAgICAgICAgcm9uOiAwLjc5ODkzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM2NSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTcxMjUsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczNTAsXG4gICAgICAgIGdmcDogMC45OTMzNjcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2OTgsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0MDAsXG4gICAgICAgIGdmcDogMC45OTMzNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTY4NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC45OTMzNzIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2NzExLFxuICAgICAgICByb246IDAuNzk4OTM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzc0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNjU4NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM3NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTY0NjUsXG4gICAgICAgIHJvbjogMC43OTg5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC45OTMzNzgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2NTAsXG4gICAgICAgIGdmcDogMC45OTMzOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTYyNCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTYxMzUsXG4gICAgICAgIHJvbjogMC43OTg5MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC45OTMzODMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE2MDM0LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuOTkzMzg1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTkzOCxcbiAgICAgICAgcm9uOiAwLjc5ODkzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM4NixcbiAgICAgICAgcm9mZjogMC4wMDA4MTU4NDcsXG4gICAgICAgIHJvbjogMC43OTg5MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC45OTMzODgsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NzU5LFxuICAgICAgICByb246IDAuNzk4OTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuOTkzMzg5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTY3NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTU1OTUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTIsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1NTE4LFxuICAgICAgICByb246IDAuNzk4OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuOTkzMzkzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTQ0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5NCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUzNzUsXG4gICAgICAgIHJvbjogMC43OTg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC45OTMzOTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MzA5LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuOTkzMzk3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNTI0NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzM5OCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUxODQsXG4gICAgICAgIHJvbjogMC43OTg5MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC45OTMzOTksXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MTI1LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTUwNyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE1MDE2LFxuICAgICAgICByb246IDAuNzk4OTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDAxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDk2NSxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ5MTcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODcsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MDQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0ODI2LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDA0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDc4MyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ3NDMsXG4gICAgICAgIHJvbjogMC43OTg5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MDYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NzA0LFxuICAgICAgICByb246IDAuNzk4OTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDA2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDY2NyxcbiAgICAgICAgcm9uOiAwLjc5ODkzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ2MzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1OTcsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1NjUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTA1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MzQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQwOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ1MDQsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDQ3NixcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDEsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0NDQ5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQ0MjMsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzOTgsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNzUsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzNTIsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMzEsXG4gICAgICAgIHJvbjogMC43OTg5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxMixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQzMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDEzLFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDI5LFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjcxLFxuICAgICAgICByb246IDAuNzk4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTMsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MjUzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE0LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDIzNixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQyMDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTQsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTg5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDE3NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxNjEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTUsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTQ4LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE1LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEzNSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQxMjMsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTYsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MTEyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE2LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDEwMSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNixcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNzEsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDYyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDA1MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwNDQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDM3LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAyOSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxNyxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMjIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA3MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTcsXG4gICAgICAgIHJvZmY6IDAuMDAwODE0MDE1LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE3LFxuICAgICAgICByb2ZmOiAwLjAwMDgxNDAwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTQwMDIsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTk2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk5LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk4NCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTAwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NzksXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTc0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk2OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTE1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NjQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTU2LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE4LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk1MixcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOCxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5NDgsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTgsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTQ0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzk0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkzNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MzQsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTMxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MjUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTIyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkyLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxNyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MTUsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTEzLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkxLFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwOCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDYsXG4gICAgICAgIHJvbjogMC43OTg5NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzOTA0LFxuICAgICAgICByb246IDAuNzk4OTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzkwMyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM5MDEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIzMDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTYsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI0NTAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODk1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5MyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OTIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI2MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODkxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4OSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4MDAsXG4gICAgICAgIGdmcDogMC45OTM0MTksXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODg2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDE5LFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4NSxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjkwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQxOSxcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI5NTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODMsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODIsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxMDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODEsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4OCxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzIwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODc0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODczLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzOTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcyLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcxLFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODcsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjQyNTAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4NyxcbiAgICAgICAgcm9uOiAwLjc5ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDMwMCxcbiAgICAgICAgZ2ZwOiAwLjk5MzQyLFxuICAgICAgICByb2ZmOiAwLjAwMDgxMzg3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY5LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY4LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI0OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY3LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY2LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1ODUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1OTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MzUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NDUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjAwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY1LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NjUwLFxuICAgICAgICBnZnA6IDAuOTkzNDIsXG4gICAgICAgIHJvZmY6IDAuMDAwODEzODY0LFxuICAgICAgICByb246IDAuNzk4OTQyXG4gICAgfVxuXTtcbmxldCBtb2RlbE9uRGF0YSA9IFtcbiAgICB7XG4gICAgICAgIHRpbWU6IDAsXG4gICAgICAgIGdmcDogMC45OTM0MixcbiAgICAgICAgcm9mZjogMC4wMDA4MTM4ODQsXG4gICAgICAgIHJvbjogMC43OTg5NDJcbiAgICB9XG5dO1xubGV0IG1vZGVsT25PZmZEYXRhID0gW1xuICAgIHtcbiAgICAgICAgdGltZTogMCxcbiAgICAgICAgZ2ZwOiAwLjQwMDMyOSxcbiAgICAgICAgcm9mZjogMC40NjAyOTgsXG4gICAgICAgIHJvbjogMC42ODE2MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTAsXG4gICAgICAgIGdmcDogMC4xNDc0OTksXG4gICAgICAgIHJvZmY6IDAuNTU4NjM4LFxuICAgICAgICByb246IDAuNjAxODU5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMCxcbiAgICAgICAgZ2ZwOiAwLjA1NDQ2OTQsXG4gICAgICAgIHJvZmY6IDAuNTM5MTEzLFxuICAgICAgICByb246IDAuNTQyNTE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MCxcbiAgICAgICAgZ2ZwOiAwLjAyMDI3NDYsXG4gICAgICAgIHJvZmY6IDAuNDk4NTI1LFxuICAgICAgICByb246IDAuNDk0Njc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzczNjk0LFxuICAgICAgICByb2ZmOiAwLjQ1OTE0MixcbiAgICAgICAgcm9uOiAwLjQ1NDQ4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNTAsXG4gICAgICAgIGdmcDogMC4wMDMxNzMzNSxcbiAgICAgICAgcm9mZjogMC40MjQyMDYsXG4gICAgICAgIHJvbjogMC40MTk4NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzAwLFxuICAgICAgICBnZnA6IDAuMDAxNTQ4OSxcbiAgICAgICAgcm9mZjogMC4zOTM0NDIsXG4gICAgICAgIHJvbjogMC4zODk1MTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzUwLFxuICAgICAgICBnZnA6IDAuMDAxMDExNTQsXG4gICAgICAgIHJvZmY6IDAuMzY2MTU0LFxuICAgICAgICByb246IDAuMzYyNjAyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDg4MDQzMSxcbiAgICAgICAgcm9mZjogMC4zNDE3NDQsXG4gICAgICAgIHJvbjogMC4zMzg1MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDUwLFxuICAgICAgICBnZnA6IDAuMDAwOTA1NzE3LFxuICAgICAgICByb2ZmOiAwLjMxOTc0OCxcbiAgICAgICAgcm9uOiAwLjMxNjc1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDAsXG4gICAgICAgIGdmcDogMC4wMDA5OTYxNDQsXG4gICAgICAgIHJvZmY6IDAuMjk5ODA0LFxuICAgICAgICByb246IDAuMjk3MDIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTExODg1LFxuICAgICAgICByb2ZmOiAwLjI4MTYzMyxcbiAgICAgICAgcm9uOiAwLjI3OTAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDAsXG4gICAgICAgIGdmcDogMC4wMDEyNjI0NyxcbiAgICAgICAgcm9mZjogMC4yNjUwMDksXG4gICAgICAgIHJvbjogMC4yNjI1MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjUwLFxuICAgICAgICBnZnA6IDAuMDAxNDIzNixcbiAgICAgICAgcm9mZjogMC4yNDk3NDgsXG4gICAgICAgIHJvbjogMC4yNDczNzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwLFxuICAgICAgICBnZnA6IDAuMDAxNjAxNzYsXG4gICAgICAgIHJvZmY6IDAuMjM1NzAxLFxuICAgICAgICByb246IDAuMjMzNDA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMTc5NzU5LFxuICAgICAgICByb2ZmOiAwLjIyMjc0MixcbiAgICAgICAgcm9uOiAwLjIyMDUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MDAsXG4gICAgICAgIGdmcDogMC4wMDIwMTIxLFxuICAgICAgICByb2ZmOiAwLjIxMDc2NCxcbiAgICAgICAgcm9uOiAwLjIwODU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMjI0NjQ2LFxuICAgICAgICByb2ZmOiAwLjE5OTY3OSxcbiAgICAgICAgcm9uOiAwLjE5NzQ4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDAsXG4gICAgICAgIGdmcDogMC4wMDI1MDE4NCxcbiAgICAgICAgcm9mZjogMC4xODk0MDksXG4gICAgICAgIHJvbjogMC4xODcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5NTAsXG4gICAgICAgIGdmcDogMC4wMDI3NzkzNCxcbiAgICAgICAgcm9mZjogMC4xNzk4ODksXG4gICAgICAgIHJvbjogMC4xNzc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDAwLFxuICAgICAgICBnZnA6IDAuMDAzMDc5OTQsXG4gICAgICAgIHJvZmY6IDAuMTcxMDYsXG4gICAgICAgIHJvbjogMC4xNjg3ODFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzQwNDQ0LFxuICAgICAgICByb2ZmOiAwLjE2Mjg3MixcbiAgICAgICAgcm9uOiAwLjE2MDUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTAwLFxuICAgICAgICBnZnA6IDAuMDAzNzUzMzcsXG4gICAgICAgIHJvZmY6IDAuMTU1MjgzLFxuICAgICAgICByb246IDAuMTUyODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTAsXG4gICAgICAgIGdmcDogMC4wMDQxMjY5NSxcbiAgICAgICAgcm9mZjogMC4xNDgyNTIsXG4gICAgICAgIHJvbjogMC4xNDU2OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNDUyNDk4LFxuICAgICAgICByb2ZmOiAwLjE0MTc0NyxcbiAgICAgICAgcm9uOiAwLjEzOTA0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjUwLFxuICAgICAgICBnZnA6IDAuMDA0OTQ2NzYsXG4gICAgICAgIHJvZmY6IDAuMTM1NzM3LFxuICAgICAgICByb246IDAuMTMyODcxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDAsXG4gICAgICAgIGdmcDogMC4wMDUzOTEwMyxcbiAgICAgICAgcm9mZjogMC4xMzAxOTQsXG4gICAgICAgIHJvbjogMC4xMjcxMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNTg1NTg3LFxuICAgICAgICByb2ZmOiAwLjEyNTA5MyxcbiAgICAgICAgcm9uOiAwLjEyMTgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwLFxuICAgICAgICBnZnA6IDAuMDA2MzM4NjYsXG4gICAgICAgIHJvZmY6IDAuMTIwNDE0LFxuICAgICAgICByb246IDAuMTE2ODgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTAsXG4gICAgICAgIGdmcDogMC4wMDY4MzYwNSxcbiAgICAgICAgcm9mZjogMC4xMTYxMzMsXG4gICAgICAgIHJvbjogMC4xMTIzMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwNzM0Mzk3LFxuICAgICAgICByb2ZmOiAwLjExMjIzMyxcbiAgICAgICAgcm9uOiAwLjEwODA5NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTUwLFxuICAgICAgICBnZnA6IDAuMDA3ODU3NjUsXG4gICAgICAgIHJvZmY6IDAuMTA4Njk1LFxuICAgICAgICByb246IDAuMTA0MTk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MDAsXG4gICAgICAgIGdmcDogMC4wMDgzNzE3NCxcbiAgICAgICAgcm9mZjogMC4xMDU1MDEsXG4gICAgICAgIHJvbjogMC4xMDA2MDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwODg4MDQsXG4gICAgICAgIHJvZmY6IDAuMTAyNjM0LFxuICAgICAgICByb246IDAuMDk3Mjk4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzAwLFxuICAgICAgICBnZnA6IDAuMDA5Mzc3NTQsXG4gICAgICAgIHJvZmY6IDAuMTAwMDc4LFxuICAgICAgICByb246IDAuMDk0MjU1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzUwLFxuICAgICAgICBnZnA6IDAuMDA5ODU3LFxuICAgICAgICByb2ZmOiAwLjA5NzgxNjQsXG4gICAgICAgIHJvbjogMC4wOTE0NTg0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MDAsXG4gICAgICAgIGdmcDogMC4wMTAzMTI3LFxuICAgICAgICByb2ZmOiAwLjA5NTgzMzQsXG4gICAgICAgIHJvbjogMC4wODg4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTAsXG4gICAgICAgIGdmcDogMC4wMTA3MzkxLFxuICAgICAgICByb2ZmOiAwLjA5NDExMzUsXG4gICAgICAgIHJvbjogMC4wODY1MjY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MDAsXG4gICAgICAgIGdmcDogMC4wMTExMzEsXG4gICAgICAgIHJvZmY6IDAuMDkyNjQxMyxcbiAgICAgICAgcm9uOiAwLjA4NDM1NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMTQ4NDEsXG4gICAgICAgIHJvZmY6IDAuMDkxNDAxOCxcbiAgICAgICAgcm9uOiAwLjA4MjM1NjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMTc5NTEsXG4gICAgICAgIHJvZmY6IDAuMDkwMzgwOSxcbiAgICAgICAgcm9uOiAwLjA4MDUxMjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjA2MTMsXG4gICAgICAgIHJvZmY6IDAuMDg5NTY0NixcbiAgICAgICAgcm9uOiAwLjA3ODgwNjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjI4MTMsXG4gICAgICAgIHJvZmY6IDAuMDg4OTQwMixcbiAgICAgICAgcm9uOiAwLjA3NzIyNDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjQ1NDQsXG4gICAgICAgIHJvZmY6IDAuMDg4NDk1MyxcbiAgICAgICAgcm9uOiAwLjA3NTc0OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAxMjU4MDcsXG4gICAgICAgIHJvZmY6IDAuMDg4MjE4OSxcbiAgICAgICAgcm9uOiAwLjA3NDM2NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAxMjY2MTIsXG4gICAgICAgIHJvZmY6IDAuMDg4MTAwNSxcbiAgICAgICAgcm9uOiAwLjA3MzA2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzAwLFxuICAgICAgICBnZnA6IDAuMDEyNjk3NSxcbiAgICAgICAgcm9mZjogMC4wODgxMzEyLFxuICAgICAgICByb246IDAuMDcxODM0OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzUwLFxuICAgICAgICBnZnA6IDAuMDEyNjkxNSxcbiAgICAgICAgcm9mZjogMC4wODgzMDI3LFxuICAgICAgICByb246IDAuMDcwNjYwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDAwLFxuICAgICAgICBnZnA6IDAuMDEyNjQ1NixcbiAgICAgICAgcm9mZjogMC4wODg2MDgyLFxuICAgICAgICByb246IDAuMDY5NTMzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyNDUwLFxuICAgICAgICBnZnA6IDAuMDEyNTYyMyxcbiAgICAgICAgcm9mZjogMC4wODkwNDE3LFxuICAgICAgICByb246IDAuMDY4NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1MDAsXG4gICAgICAgIGdmcDogMC4wMTI0NDQzLFxuICAgICAgICByb2ZmOiAwLjA4OTU5ODUsXG4gICAgICAgIHJvbjogMC4wNjczODkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI1NTAsXG4gICAgICAgIGdmcDogMC4wMTIyOTQ1LFxuICAgICAgICByb2ZmOiAwLjA5MDI3NDgsXG4gICAgICAgIHJvbjogMC4wNjYzNTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2MDAsXG4gICAgICAgIGdmcDogMC4wMTIxMTU1LFxuICAgICAgICByb2ZmOiAwLjA5MTA2ODEsXG4gICAgICAgIHJvbjogMC4wNjUzNDA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI2NTAsXG4gICAgICAgIGdmcDogMC4wMTE5MTAxLFxuICAgICAgICByb2ZmOiAwLjA5MTk3NjgsXG4gICAgICAgIHJvbjogMC4wNjQzMzc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3MDAsXG4gICAgICAgIGdmcDogMC4wMTE2ODA3LFxuICAgICAgICByb2ZmOiAwLjA5MzAwMDMsXG4gICAgICAgIHJvbjogMC4wNjMzNDI0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDI3NTAsXG4gICAgICAgIGdmcDogMC4wMTE0MyxcbiAgICAgICAgcm9mZjogMC4wOTQxMzg4LFxuICAgICAgICByb246IDAuMDYyMzUwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODAwLFxuICAgICAgICBnZnA6IDAuMDExMTYwMSxcbiAgICAgICAgcm9mZjogMC4wOTUzOTM3LFxuICAgICAgICByb246IDAuMDYxMzU4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyODUwLFxuICAgICAgICBnZnA6IDAuMDEwODczMyxcbiAgICAgICAgcm9mZjogMC4wOTY3NjczLFxuICAgICAgICByb246IDAuMDYwMzY0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTAwLFxuICAgICAgICBnZnA6IDAuMDEwNTcxOCxcbiAgICAgICAgcm9mZjogMC4wOTgyNjI2LFxuICAgICAgICByb246IDAuMDU5MzY0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyOTUwLFxuICAgICAgICBnZnA6IDAuMDEwMjU3MyxcbiAgICAgICAgcm9mZjogMC4wOTk4ODM5LFxuICAgICAgICByb246IDAuMDU4MzU3NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDAwLFxuICAgICAgICBnZnA6IDAuMDA5OTMxODQsXG4gICAgICAgIHJvZmY6IDAuMTAxNjM2LFxuICAgICAgICByb246IDAuMDU3MzQyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMDUwLFxuICAgICAgICBnZnA6IDAuMDA5NTk3MDcsXG4gICAgICAgIHJvZmY6IDAuMTAzNTI1LFxuICAgICAgICByb246IDAuMDU2MzE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxMDAsXG4gICAgICAgIGdmcDogMC4wMDkyNTQ2NyxcbiAgICAgICAgcm9mZjogMC4xMDU1NTcsXG4gICAgICAgIHJvbjogMC4wNTUyODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMxNTAsXG4gICAgICAgIGdmcDogMC4wMDg5MDYyMSxcbiAgICAgICAgcm9mZjogMC4xMDc3NDIsXG4gICAgICAgIHJvbjogMC4wNTQyMzQ1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyMDAsXG4gICAgICAgIGdmcDogMC4wMDg1NTMxOCxcbiAgICAgICAgcm9mZjogMC4xMTAwODYsXG4gICAgICAgIHJvbjogMC4wNTMxNzYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDMyNTAsXG4gICAgICAgIGdmcDogMC4wMDgxOTcwMyxcbiAgICAgICAgcm9mZjogMC4xMTI2LFxuICAgICAgICByb246IDAuMDUyMTA2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzAwLFxuICAgICAgICBnZnA6IDAuMDA3ODM5MTMsXG4gICAgICAgIHJvZmY6IDAuMTE1Mjk2LFxuICAgICAgICByb246IDAuMDUxMDI2NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzMzUwLFxuICAgICAgICBnZnA6IDAuMDA3NDgwODQsXG4gICAgICAgIHJvZmY6IDAuMTE4MTg1LFxuICAgICAgICByb246IDAuMDQ5OTM1NVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNDAwLFxuICAgICAgICBnZnA6IDAuMDA3MTIzNDMsXG4gICAgICAgIHJvZmY6IDAuMTIxMjgsXG4gICAgICAgIHJvbjogMC4wNDg4MzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM0NTAsXG4gICAgICAgIGdmcDogMC4wMDY3NjgxNSxcbiAgICAgICAgcm9mZjogMC4xMjQ1OTYsXG4gICAgICAgIHJvbjogMC4wNDc3MjQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM1MDAsXG4gICAgICAgIGdmcDogMC4wMDY0MTYyLFxuICAgICAgICByb2ZmOiAwLjEyODE0OSxcbiAgICAgICAgcm9uOiAwLjA0NjYwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNTUwLFxuICAgICAgICBnZnA6IDAuMDA2MDY4NzUsXG4gICAgICAgIHJvZmY6IDAuMTMxOTU1LFxuICAgICAgICByb246IDAuMDQ1NDgyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjAwLFxuICAgICAgICBnZnA6IDAuMDA1NzI2ODgsXG4gICAgICAgIHJvZmY6IDAuMTM2MDMzLFxuICAgICAgICByb246IDAuMDQ0MzUyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNjUwLFxuICAgICAgICBnZnA6IDAuMDA1MzkxNjYsXG4gICAgICAgIHJvZmY6IDAuMTQwNDA0LFxuICAgICAgICByb246IDAuMDQzMjE3OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAzNzAwLFxuICAgICAgICBnZnA6IDAuMDA1MDY0MDcsXG4gICAgICAgIHJvZmY6IDAuMTQ1MDg4LFxuICAgICAgICByb246IDAuMDQyMDgxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM3NTAsXG4gICAgICAgIGdmcDogMC4wMDQ3NDUwNSxcbiAgICAgICAgcm9mZjogMC4xNTAxMDksXG4gICAgICAgIHJvbjogMC4wNDA5NDMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDM4MDAsXG4gICAgICAgIGdmcDogMC4wMDQ0MzU0NixcbiAgICAgICAgcm9mZjogMC4xNTU0OSxcbiAgICAgICAgcm9uOiAwLjAzOTgwNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwNDEzNjA5LFxuICAgICAgICByb2ZmOiAwLjE2MTI1OSxcbiAgICAgICAgcm9uOiAwLjAzODY3MTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMzg0NzYzLFxuICAgICAgICByb2ZmOiAwLjE2NzQ0NCxcbiAgICAgICAgcm9uOiAwLjAzNzU0MDhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMzk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMzU3MDcsXG4gICAgICAgIHJvZmY6IDAuMTc0MDcyLFxuICAgICAgICByb246IDAuMDM2NDE2M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MDAwLFxuICAgICAgICBnZnA6IDAuMDAzMzA1OCxcbiAgICAgICAgcm9mZjogMC4xODExNzYsXG4gICAgICAgIHJvbjogMC4wMzUyOTk1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQwNTAsXG4gICAgICAgIGdmcDogMC4wMDMwNTMzNyxcbiAgICAgICAgcm9mZjogMC4xODg3ODcsXG4gICAgICAgIHJvbjogMC4wMzQxOTIyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxMDAsXG4gICAgICAgIGdmcDogMC4wMDI4MTM3MSxcbiAgICAgICAgcm9mZjogMC4xOTY5MzgsXG4gICAgICAgIHJvbjogMC4wMzMwOTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQxNTAsXG4gICAgICAgIGdmcDogMC4wMDI1ODcwNCxcbiAgICAgICAgcm9mZjogMC4yMDU2NjQsXG4gICAgICAgIHJvbjogMC4wMzIwMTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyMDAsXG4gICAgICAgIGdmcDogMC4wMDIzNzM0NixcbiAgICAgICAgcm9mZjogMC4yMTQ5OTgsXG4gICAgICAgIHJvbjogMC4wMzA5NDQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQyNTAsXG4gICAgICAgIGdmcDogMC4wMDIxNzMsXG4gICAgICAgIHJvZmY6IDAuMjI0OTc3LFxuICAgICAgICByb246IDAuMDI5ODkyMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzAwLFxuICAgICAgICBnZnA6IDAuMDAxOTg1NTUsXG4gICAgICAgIHJvZmY6IDAuMjM1NjMyLFxuICAgICAgICByb246IDAuMDI4ODU3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0MzUwLFxuICAgICAgICBnZnA6IDAuMDAxODEwOTQsXG4gICAgICAgIHJvZmY6IDAuMjQ2OTk5LFxuICAgICAgICByb246IDAuMDI3ODQxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDAwLFxuICAgICAgICBnZnA6IDAuMDAxNjQ4ODksXG4gICAgICAgIHJvZmY6IDAuMjU5MTA4LFxuICAgICAgICByb246IDAuMDI2ODQ1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NDUwLFxuICAgICAgICBnZnA6IDAuMDAxNDk5MDcsXG4gICAgICAgIHJvZmY6IDAuMjcxOTg3LFxuICAgICAgICByb246IDAuMDI1ODcwN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTAwLFxuICAgICAgICBnZnA6IDAuMDAxMzYxMDYsXG4gICAgICAgIHJvZmY6IDAuMjg1NjYxLFxuICAgICAgICByb246IDAuMDI0OTE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NTUwLFxuICAgICAgICBnZnA6IDAuMDAxMjM0MzgsXG4gICAgICAgIHJvZmY6IDAuMzAwMTQ3LFxuICAgICAgICByb246IDAuMDIzOTg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjAwLFxuICAgICAgICBnZnA6IDAuMDAxMTE4NTMsXG4gICAgICAgIHJvZmY6IDAuMzE1NDU4LFxuICAgICAgICByb246IDAuMDIzMDgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NjUwLFxuICAgICAgICBnZnA6IDAuMDAxMDEyOTMsXG4gICAgICAgIHJvZmY6IDAuMzMxNTk3LFxuICAgICAgICByb246IDAuMDIyMjAxOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0NzAwLFxuICAgICAgICBnZnA6IDAuMDAwOTE3MDAxLFxuICAgICAgICByb2ZmOiAwLjM0ODU1NyxcbiAgICAgICAgcm9uOiAwLjAyMTM0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDgzMDE0OSxcbiAgICAgICAgcm9mZjogMC4zNjYzMTcsXG4gICAgICAgIHJvbjogMC4wMjA1MTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDQ4MDAsXG4gICAgICAgIGdmcDogMC4wMDA3NTE3NjIsXG4gICAgICAgIHJvZmY6IDAuMzg0ODQzLFxuICAgICAgICByb246IDAuMDE5NzA4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA0ODUwLFxuICAgICAgICBnZnA6IDAuMDAwNjgxMjM2LFxuICAgICAgICByb2ZmOiAwLjQwNDA4NCxcbiAgICAgICAgcm9uOiAwLjAxODkyNzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDYxNzk3MixcbiAgICAgICAgcm9mZjogMC40MjM5NjksXG4gICAgICAgIHJvbjogMC4wMTgxNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDU2MTM5MyxcbiAgICAgICAgcm9mZjogMC40NDQ0MDgsXG4gICAgICAgIHJvbjogMC4wMTc0NDM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUwMDAsXG4gICAgICAgIGdmcDogMC4wMDA1MTA5NDEsXG4gICAgICAgIHJvZmY6IDAuNDY1Mjg5LFxuICAgICAgICByb246IDAuMDE2NzM5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MDUwLFxuICAgICAgICBnZnA6IDAuMDAwNDY2MDg0LFxuICAgICAgICByb2ZmOiAwLjQ4NjQ3OCxcbiAgICAgICAgcm9uOiAwLjAxNjA2MDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDQyNjMxOCxcbiAgICAgICAgcm9mZjogMC41MDc4MixcbiAgICAgICAgcm9uOiAwLjAxNTQwNThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDM5MTE2OCxcbiAgICAgICAgcm9mZjogMC41MjkxNDQsXG4gICAgICAgIHJvbjogMC4wMTQ3NzU2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDUyMDAsXG4gICAgICAgIGdmcDogMC4wMDAzNjAxOTMsXG4gICAgICAgIHJvZmY6IDAuNTUwMjYxLFxuICAgICAgICByb246IDAuMDE0MTY5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMzMyOTgyLFxuICAgICAgICByb2ZmOiAwLjU3MDk3OCxcbiAgICAgICAgcm9uOiAwLjAxMzU4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDMwOTE1MixcbiAgICAgICAgcm9mZjogMC41OTExMDEsXG4gICAgICAgIHJvbjogMC4wMTMwMjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI4ODM0OSxcbiAgICAgICAgcm9mZjogMC42MTA0NDYsXG4gICAgICAgIHJvbjogMC4wMTI0ODhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDI3MDI0NixcbiAgICAgICAgcm9mZjogMC42Mjg4NTEsXG4gICAgICAgIHJvbjogMC4wMTE5NzE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAyNTQ1MzgsXG4gICAgICAgIHJvZmY6IDAuNjQ2MTg1LFxuICAgICAgICByb246IDAuMDExNDc2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMjQwOTQzLFxuICAgICAgICByb2ZmOiAwLjY2MjM1NyxcbiAgICAgICAgcm9uOiAwLjAxMTAwMThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDIyOTIwMSxcbiAgICAgICAgcm9mZjogMC42NzczMTcsXG4gICAgICAgIHJvbjogMC4wMTA1NDY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMTkwNzIsXG4gICAgICAgIHJvZmY6IDAuNjkxMDU2LFxuICAgICAgICByb246IDAuMDEwMTEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMjEwMzM3LFxuICAgICAgICByb2ZmOiAwLjcwMzYwNSxcbiAgICAgICAgcm9uOiAwLjAwOTY5MzI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU3MDAsXG4gICAgICAgIGdmcDogMC4wMDAyMDI3OTgsXG4gICAgICAgIHJvZmY6IDAuNzE1MDI0LFxuICAgICAgICByb246IDAuMDA5MjkzNTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE5NjI3OCxcbiAgICAgICAgcm9mZjogMC43MjUzOTUsXG4gICAgICAgIHJvbjogMC4wMDg5MTA4OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA1ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTkwNjIzLFxuICAgICAgICByb2ZmOiAwLjczNDgwNixcbiAgICAgICAgcm9uOiAwLjAwODU0NDY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxODU2OTgsXG4gICAgICAgIHJvZmY6IDAuNzQzMzUxLFxuICAgICAgICByb246IDAuMDA4MTk0MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE4MTM5LFxuICAgICAgICByb2ZmOiAwLjc1MTExOCxcbiAgICAgICAgcm9uOiAwLjAwNzg1OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDU5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNzc2MDQsXG4gICAgICAgIHJvZmY6IDAuNzU4MTkxLFxuICAgICAgICByb246IDAuMDA3NTM4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE3NDI2MSxcbiAgICAgICAgcm9mZjogMC43NjQ2NDIsXG4gICAgICAgIHJvbjogMC4wMDcyMzE1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTcxMjk1LFxuICAgICAgICByb2ZmOiAwLjc3MDUzNSxcbiAgICAgICAgcm9uOiAwLjAwNjkzODE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjg2NTMsXG4gICAgICAgIHJvZmY6IDAuNzc1OTI3LFxuICAgICAgICByb246IDAuMDA2NjU3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2NjI5LFxuICAgICAgICByb2ZmOiAwLjc4MDg2NixcbiAgICAgICAgcm9uOiAwLjAwNjM4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDYyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNjQxNyxcbiAgICAgICAgcm9mZjogMC43ODUzOTQsXG4gICAgICAgIHJvbjogMC4wMDYxMzI1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTYyMjYzLFxuICAgICAgICByb2ZmOiAwLjc4OTU1LFxuICAgICAgICByb246IDAuMDA1ODg3MTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE2MDU0MixcbiAgICAgICAgcm9mZjogMC43OTMzNjUsXG4gICAgICAgIHJvbjogMC4wMDU2NTI1M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTU4OTg3LFxuICAgICAgICByb2ZmOiAwLjc5Njg2OSxcbiAgICAgICAgcm9uOiAwLjAwNTQyODE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTc1NzksXG4gICAgICAgIHJvZmY6IDAuODAwMDg5LFxuICAgICAgICByb246IDAuMDA1MjEzNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1NjMwMixcbiAgICAgICAgcm9mZjogMC44MDMwNDksXG4gICAgICAgIHJvbjogMC4wMDUwMDg1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTU1MTQyLFxuICAgICAgICByb2ZmOiAwLjgwNTc3MSxcbiAgICAgICAgcm9uOiAwLjAwNDgxMjUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNTQwODcsXG4gICAgICAgIHJvZmY6IDAuODA4MjczLFxuICAgICAgICByb246IDAuMDA0NjI1MDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MzEyNixcbiAgICAgICAgcm9mZjogMC44MTA1NzUsXG4gICAgICAgIHJvbjogMC4wMDQ0NDU4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTUyMjUxLFxuICAgICAgICByb2ZmOiAwLjgxMjY5MyxcbiAgICAgICAgcm9uOiAwLjAwNDI3NDUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNTE0NTIsXG4gICAgICAgIHJvZmY6IDAuODE0NjQxLFxuICAgICAgICByb246IDAuMDA0MTEwNzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE1MDcyMyxcbiAgICAgICAgcm9mZjogMC44MTY0MzQsXG4gICAgICAgIHJvbjogMC4wMDM5NTQxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTUwMDU2LFxuICAgICAgICByb2ZmOiAwLjgxODA4NSxcbiAgICAgICAgcm9uOiAwLjAwMzgwNDQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDk0NDcsXG4gICAgICAgIHJvZmY6IDAuODE5NjA0LFxuICAgICAgICByb246IDAuMDAzNjYxNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNjkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0ODg4OSxcbiAgICAgICAgcm9mZjogMC44MjEwMDMsXG4gICAgICAgIHJvbjogMC4wMDM1MjQ2NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA2OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ4Mzc4LFxuICAgICAgICByb2ZmOiAwLjgyMjI5MixcbiAgICAgICAgcm9uOiAwLjAwMzM5MzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzkxLFxuICAgICAgICByb2ZmOiAwLjgyMzQ3OSxcbiAgICAgICAgcm9uOiAwLjAwMzI2ODkzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDc0ODEsXG4gICAgICAgIHJvZmY6IDAuODI0NTcyLFxuICAgICAgICByb246IDAuMDAzMTQ5NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NzA4NyxcbiAgICAgICAgcm9mZjogMC44MjU1OCxcbiAgICAgICAgcm9uOiAwLjAwMzAzNTI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDY3MjUsXG4gICAgICAgIHJvZmY6IDAuODI2NTA5LFxuICAgICAgICByb246IDAuMDAyOTI2MTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NjM5MyxcbiAgICAgICAgcm9mZjogMC44MjczNjUsXG4gICAgICAgIHJvbjogMC4wMDI4MjE4MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ2MDg4LFxuICAgICAgICByb2ZmOiAwLjgyODE1NSxcbiAgICAgICAgcm9uOiAwLjAwMjcyMjExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDU4MDgsXG4gICAgICAgIHJvZmY6IDAuODI4ODg0LFxuICAgICAgICByb246IDAuMDAyNjI2NzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTU1LFxuICAgICAgICByb2ZmOiAwLjgyOTU1NixcbiAgICAgICAgcm9uOiAwLjAwMjUzNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDUzMTIsXG4gICAgICAgIHJvZmY6IDAuODMwMTc3LFxuICAgICAgICByb246IDAuMDAyNDQ4NjJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NTA5MyxcbiAgICAgICAgcm9mZjogMC44MzA3NSxcbiAgICAgICAgcm9uOiAwLjAwMjM2NTM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQ4OTIsXG4gICAgICAgIHJvZmY6IDAuODMxMjc5LFxuICAgICAgICByb246IDAuMDAyMjg1ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDcwNixcbiAgICAgICAgcm9mZjogMC44MzE3NjksXG4gICAgICAgIHJvbjogMC4wMDIyMDk4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQ0NTM1LFxuICAgICAgICByb2ZmOiAwLjgzMjIyMSxcbiAgICAgICAgcm9uOiAwLjAwMjEzNzE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQzNzcsXG4gICAgICAgIHJvZmY6IDAuODMyNjM4LFxuICAgICAgICByb246IDAuMDAyMDY3NjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0NDIzMSxcbiAgICAgICAgcm9mZjogMC44MzMwMjUsXG4gICAgICAgIHJvbjogMC4wMDIwMDEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDQwOTYsXG4gICAgICAgIHJvZmY6IDAuODMzMzgzLFxuICAgICAgICByb246IDAuMDAxOTM3ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzk3MixcbiAgICAgICAgcm9mZjogMC44MzM3MTQsXG4gICAgICAgIHJvbjogMC4wMDE4NzcyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3ODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzODU3LFxuICAgICAgICByb2ZmOiAwLjgzNDAyLFxuICAgICAgICByb246IDAuMDAxODE5MjZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogNzkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mzc1MSxcbiAgICAgICAgcm9mZjogMC44MzQzMDQsXG4gICAgICAgIHJvbjogMC4wMDE3NjM4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzNjUyLFxuICAgICAgICByb2ZmOiAwLjgzNDU2NyxcbiAgICAgICAgcm9uOiAwLjAwMTcxMDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDM1NjEsXG4gICAgICAgIHJvZmY6IDAuODM0ODExLFxuICAgICAgICByb246IDAuMDAxNjYwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzQ3NyxcbiAgICAgICAgcm9mZjogMC44MzUwMzcsXG4gICAgICAgIHJvbjogMC4wMDE2MTE5NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMzk4LFxuICAgICAgICByb2ZmOiAwLjgzNTI0NyxcbiAgICAgICAgcm9uOiAwLjAwMTU2NTc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMzMjYsXG4gICAgICAgIHJvZmY6IDAuODM1NDQyLFxuICAgICAgICByb246IDAuMDAxNTIxNTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzI1OSxcbiAgICAgICAgcm9mZjogMC44MzU2MjMsXG4gICAgICAgIHJvbjogMC4wMDE0NzkzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMTk2LFxuICAgICAgICByb2ZmOiAwLjgzNTc5MSxcbiAgICAgICAgcm9uOiAwLjAwMTQzOTAxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDgzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDMxMzgsXG4gICAgICAgIHJvZmY6IDAuODM1OTQ4LFxuICAgICAgICByb246IDAuMDAxNDAwNDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MzA4NCxcbiAgICAgICAgcm9mZjogMC44MzYwOTMsXG4gICAgICAgIHJvbjogMC4wMDEzNjM1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQzMDM0LFxuICAgICAgICByb2ZmOiAwLjgzNjIyOCxcbiAgICAgICAgcm9uOiAwLjAwMTMyODM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI5ODgsXG4gICAgICAgIHJvZmY6IDAuODM2MzU0LFxuICAgICAgICByb246IDAuMDAxMjk0NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0Mjk0NCxcbiAgICAgICAgcm9mZjogMC44MzY0NzIsXG4gICAgICAgIHJvbjogMC4wMDEyNjI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyOTA0LFxuICAgICAgICByb2ZmOiAwLjgzNjU4MSxcbiAgICAgICAgcm9uOiAwLjAwMTIzMTc5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI4NjYsXG4gICAgICAgIHJvZmY6IDAuODM2NjgzLFxuICAgICAgICByb246IDAuMDAxMjAyNDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjgzMSxcbiAgICAgICAgcm9mZjogMC44MzY3NzgsXG4gICAgICAgIHJvbjogMC4wMDExNzQzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzk5LFxuICAgICAgICByb2ZmOiAwLjgzNjg2NyxcbiAgICAgICAgcm9uOiAwLjAwMTE0NzQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI3NjgsXG4gICAgICAgIHJvZmY6IDAuODM2OTUsXG4gICAgICAgIHJvbjogMC4wMDExMjE4NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNzQsXG4gICAgICAgIHJvZmY6IDAuODM3MDI3LFxuICAgICAgICByb246IDAuMDAxMDk3MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjcxMyxcbiAgICAgICAgcm9mZjogMC44MzcwOTksXG4gICAgICAgIHJvbjogMC4wMDEwNzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2ODksXG4gICAgICAgIHJvZmY6IDAuODM3MTY3LFxuICAgICAgICByb246IDAuMDAxMDUxNTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogODk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjY2NSxcbiAgICAgICAgcm9mZjogMC44MzcyMyxcbiAgICAgICAgcm9uOiAwLjAwMTAzMDExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDkwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI2NDQsXG4gICAgICAgIHJvZmY6IDAuODM3MjksXG4gICAgICAgIHJvbjogMC4wMDEwMDk2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjIzLFxuICAgICAgICByb2ZmOiAwLjgzNzM0NSxcbiAgICAgICAgcm9uOiAwLjAwMDk5MDEyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNjA0LFxuICAgICAgICByb2ZmOiAwLjgzNzM5NyxcbiAgICAgICAgcm9uOiAwLjAwMDk3MTQ0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTg3LFxuICAgICAgICByb2ZmOiAwLjgzNzQ0NixcbiAgICAgICAgcm9uOiAwLjAwMDk1MzU5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTcsXG4gICAgICAgIHJvZmY6IDAuODM3NDkyLFxuICAgICAgICByb246IDAuMDAwOTM2NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU1NCxcbiAgICAgICAgcm9mZjogMC44Mzc1MzUsXG4gICAgICAgIHJvbjogMC4wMDA5MjAyMzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjU0LFxuICAgICAgICByb2ZmOiAwLjgzNzU3NSxcbiAgICAgICAgcm9uOiAwLjAwMDkwNDY1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiA5MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNTI2LFxuICAgICAgICByb2ZmOiAwLjgzNzYxMyxcbiAgICAgICAgcm9uOiAwLjAwMDg4OTc3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MTMsXG4gICAgICAgIHJvZmY6IDAuODM3NjQ4LFxuICAgICAgICByb246IDAuMDAwODc1NTQxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI1MDEsXG4gICAgICAgIHJvZmY6IDAuODM3NjgyLFxuICAgICAgICByb246IDAuMDAwODYxOTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0ODksXG4gICAgICAgIHJvZmY6IDAuODM3NzEzLFxuICAgICAgICByb246IDAuMDAwODQ4OTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NzksXG4gICAgICAgIHJvZmY6IDAuODM3NzQzLFxuICAgICAgICByb246IDAuMDAwODM2NTI3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NjgsXG4gICAgICAgIHJvZmY6IDAuODM3NzcxLFxuICAgICAgICByb246IDAuMDAwODI0NjU4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NTksXG4gICAgICAgIHJvZmY6IDAuODM3Nzk3LFxuICAgICAgICByb246IDAuMDAwODEzMzE1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDk3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0NSxcbiAgICAgICAgcm9mZjogMC44Mzc4MjIsXG4gICAgICAgIHJvbjogMC4wMDA4MDI0NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQ0MixcbiAgICAgICAgcm9mZjogMC44Mzc4NDUsXG4gICAgICAgIHJvbjogMC4wMDA3OTIxMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQzNCxcbiAgICAgICAgcm9mZjogMC44Mzc4NjcsXG4gICAgICAgIHJvbjogMC4wMDA3ODIyMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQyNixcbiAgICAgICAgcm9mZjogMC44Mzc4ODgsXG4gICAgICAgIHJvbjogMC4wMDA3NzI3NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxOSxcbiAgICAgICAgcm9mZjogMC44Mzc5MDcsXG4gICAgICAgIHJvbjogMC4wMDA3NjM3MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogOTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjQxMixcbiAgICAgICAgcm9mZjogMC44Mzc5MjYsXG4gICAgICAgIHJvbjogMC4wMDA3NTUwNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDI0MDYsXG4gICAgICAgIHJvZmY6IDAuODM3OTQzLFxuICAgICAgICByb246IDAuMDAwNzQ2ODEzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyNCxcbiAgICAgICAgcm9mZjogMC44Mzc5NixcbiAgICAgICAgcm9uOiAwLjAwMDczODkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM5NCxcbiAgICAgICAgcm9mZjogMC44Mzc5NzYsXG4gICAgICAgIHJvbjogMC4wMDA3MzEzNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODksXG4gICAgICAgIHJvZmY6IDAuODM3OTksXG4gICAgICAgIHJvbjogMC4wMDA3MjQxNzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzODQsXG4gICAgICAgIHJvZmY6IDAuODM4MDA0LFxuICAgICAgICByb246IDAuMDAwNzE3MjgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwMjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzc5LFxuICAgICAgICByb2ZmOiAwLjgzODAxOCxcbiAgICAgICAgcm9uOiAwLjAwMDcxMDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTAzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNzUsXG4gICAgICAgIHJvZmY6IDAuODM4MDMsXG4gICAgICAgIHJvbjogMC4wMDA3MDQ0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM3LFxuICAgICAgICByb2ZmOiAwLjgzODA0MixcbiAgICAgICAgcm9uOiAwLjAwMDY5ODM5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM2NixcbiAgICAgICAgcm9mZjogMC44MzgwNTMsXG4gICAgICAgIHJvbjogMC4wMDA2OTI2NTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNjMsXG4gICAgICAgIHJvZmY6IDAuODM4MDY0LFxuICAgICAgICByb246IDAuMDAwNjg3MTYyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzU5LFxuICAgICAgICByb2ZmOiAwLjgzODA3NCxcbiAgICAgICAgcm9uOiAwLjAwMDY4MTkxNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM1NSxcbiAgICAgICAgcm9mZjogMC44MzgwODQsXG4gICAgICAgIHJvbjogMC4wMDA2NzY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzUyLFxuICAgICAgICByb2ZmOiAwLjgzODA5MyxcbiAgICAgICAgcm9uOiAwLjAwMDY3MjEwOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0OSxcbiAgICAgICAgcm9mZjogMC44MzgxMDEsXG4gICAgICAgIHJvbjogMC4wMDA2Njc1MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzNDYsXG4gICAgICAgIHJvZmY6IDAuODM4MTA5LFxuICAgICAgICByb246IDAuMDAwNjYzMTUxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzQzLFxuICAgICAgICByb2ZmOiAwLjgzODExNyxcbiAgICAgICAgcm9uOiAwLjAwMDY1ODk2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjM0MSxcbiAgICAgICAgcm9mZjogMC44MzgxMjUsXG4gICAgICAgIHJvbjogMC4wMDA2NTQ5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTA4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzgsXG4gICAgICAgIHJvZmY6IDAuODM4MTMyLFxuICAgICAgICByb246IDAuMDAwNjUxMTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEwOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzM2LFxuICAgICAgICByb2ZmOiAwLjgzODEzOCxcbiAgICAgICAgcm9uOiAwLjAwMDY0NzUwMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMDk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMzNCxcbiAgICAgICAgcm9mZjogMC44MzgxNDUsXG4gICAgICAgIHJvbjogMC4wMDA2NDQwMTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMzEsXG4gICAgICAgIHJvZmY6IDAuODM4MTUxLFxuICAgICAgICByb246IDAuMDAwNjQwNjc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI5LFxuICAgICAgICByb2ZmOiAwLjgzODE1NixcbiAgICAgICAgcm9uOiAwLjAwMDYzNzQ5MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyNyxcbiAgICAgICAgcm9mZjogMC44MzgxNjIsXG4gICAgICAgIHJvbjogMC4wMDA2MzQ0NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTExNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjYsXG4gICAgICAgIHJvZmY6IDAuODM4MTY3LFxuICAgICAgICByb246IDAuMDAwNjMxNTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzI0LFxuICAgICAgICByb2ZmOiAwLjgzODE3MixcbiAgICAgICAgcm9uOiAwLjAwMDYyODc1N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMyMixcbiAgICAgICAgcm9mZjogMC44MzgxNzYsXG4gICAgICAgIHJvbjogMC4wMDA2MjYwOTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMjEsXG4gICAgICAgIHJvZmY6IDAuODM4MTgxLFxuICAgICAgICByb246IDAuMDAwNjIzNTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTEzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTksXG4gICAgICAgIHJvZmY6IDAuODM4MTg1LFxuICAgICAgICByb246IDAuMDAwNjIxMTMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE4LFxuICAgICAgICByb2ZmOiAwLjgzODE4OSxcbiAgICAgICAgcm9uOiAwLjAwMDYxODgxM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxNixcbiAgICAgICAgcm9mZjogMC44MzgxOTMsXG4gICAgICAgIHJvbjogMC4wMDA2MTY1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTUsXG4gICAgICAgIHJvZmY6IDAuODM4MTk3LFxuICAgICAgICByb246IDAuMDAwNjE0NDc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzE0LFxuICAgICAgICByb2ZmOiAwLjgzODIsXG4gICAgICAgIHJvbjogMC4wMDA2MTI0NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjAzLFxuICAgICAgICByb246IDAuMDAwNjEwNTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzExLFxuICAgICAgICByb2ZmOiAwLjgzODIwNyxcbiAgICAgICAgcm9uOiAwLjAwMDYwODY3MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMxLFxuICAgICAgICByb2ZmOiAwLjgzODIxLFxuICAgICAgICByb246IDAuMDAwNjA2OTA0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDExNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA5LFxuICAgICAgICByb2ZmOiAwLjgzODIxMixcbiAgICAgICAgcm9uOiAwLjAwMDYwNTIxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwOCxcbiAgICAgICAgcm9mZjogMC44MzgyMTUsXG4gICAgICAgIHJvbjogMC4wMDA2MDM2MDJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDcsXG4gICAgICAgIHJvZmY6IDAuODM4MjE4LFxuICAgICAgICByb246IDAuMDAwNjAyMDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIsXG4gICAgICAgIHJvbjogMC4wMDA2MDA1ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTE5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDYsXG4gICAgICAgIHJvZmY6IDAuODM4MjIzLFxuICAgICAgICByb246IDAuMDAwNTk5MTc4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzA1LFxuICAgICAgICByb2ZmOiAwLjgzODIyNSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NzgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwNCxcbiAgICAgICAgcm9mZjogMC44MzgyMjcsXG4gICAgICAgIHJvbjogMC4wMDA1OTY1NDZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDMsXG4gICAgICAgIHJvZmY6IDAuODM4MjI5LFxuICAgICAgICByb246IDAuMDAwNTk1MzE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAzLFxuICAgICAgICByb2ZmOiAwLjgzODIzMSxcbiAgICAgICAgcm9uOiAwLjAwMDU5NDE0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMwMixcbiAgICAgICAgcm9mZjogMC44MzgyMzMsXG4gICAgICAgIHJvbjogMC4wMDA1OTMwMTlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTIyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIzMDEsXG4gICAgICAgIHJvZmY6IDAuODM4MjM1LFxuICAgICAgICByb246IDAuMDAwNTkxOTQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMzAxLFxuICAgICAgICByb2ZmOiAwLjgzODIzNixcbiAgICAgICAgcm9uOiAwLjAwMDU5MDkyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjMsXG4gICAgICAgIHJvZmY6IDAuODM4MjM4LFxuICAgICAgICByb246IDAuMDAwNTg5OTQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMyxcbiAgICAgICAgcm9mZjogMC44MzgyNCxcbiAgICAgICAgcm9uOiAwLjAwMDU4OTAwNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OSxcbiAgICAgICAgcm9mZjogMC44MzgyNDEsXG4gICAgICAgIHJvbjogMC4wMDA1ODgxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTksXG4gICAgICAgIHJvZmY6IDAuODM4MjQyLFxuICAgICAgICByb246IDAuMDAwNTg3MjU1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk4LFxuICAgICAgICByb2ZmOiAwLjgzODI0NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4NjQzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5OCxcbiAgICAgICAgcm9mZjogMC44MzgyNDUsXG4gICAgICAgIHJvbjogMC4wMDA1ODU2NTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTcsXG4gICAgICAgIHJvZmY6IDAuODM4MjQ2LFxuICAgICAgICByb246IDAuMDAwNTg0OTExXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk3LFxuICAgICAgICByb2ZmOiAwLjgzODI0NyxcbiAgICAgICAgcm9uOiAwLjAwMDU4NDE5OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NixcbiAgICAgICAgcm9mZjogMC44MzgyNDksXG4gICAgICAgIHJvbjogMC4wMDA1ODM1MTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUsXG4gICAgICAgIHJvbjogMC4wMDA1ODI4NjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTYsXG4gICAgICAgIHJvZmY6IDAuODM4MjUxLFxuICAgICAgICByb246IDAuMDAwNTgyMjQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk1LFxuICAgICAgICByb2ZmOiAwLjgzODI1MixcbiAgICAgICAgcm9uOiAwLjAwMDU4MTY0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NSxcbiAgICAgICAgcm9mZjogMC44MzgyNTMsXG4gICAgICAgIHJvbjogMC4wMDA1ODEwNzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTUsXG4gICAgICAgIHJvZmY6IDAuODM4MjUzLFxuICAgICAgICByb246IDAuMDAwNTgwNTM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NCxcbiAgICAgICAgcm9uOiAwLjAwMDU4MDAxN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5NCxcbiAgICAgICAgcm9mZjogMC44MzgyNTUsXG4gICAgICAgIHJvbjogMC4wMDA1Nzk1MjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTQsXG4gICAgICAgIHJvZmY6IDAuODM4MjU2LFxuICAgICAgICByb246IDAuMDAwNTc5MDQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjk0LFxuICAgICAgICByb2ZmOiAwLjgzODI1NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3ODU5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTcsXG4gICAgICAgIHJvbjogMC4wMDA1NzgxNjFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTMsXG4gICAgICAgIHJvZmY6IDAuODM4MjU4LFxuICAgICAgICByb246IDAuMDAwNTc3NzQ3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkzLFxuICAgICAgICByb2ZmOiAwLjgzODI1OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NzM1MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MyxcbiAgICAgICAgcm9mZjogMC44MzgyNTksXG4gICAgICAgIHJvbjogMC4wMDA1NzY5NzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzY2MTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzYyNjdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTIsXG4gICAgICAgIHJvZmY6IDAuODM4MjYxLFxuICAgICAgICByb246IDAuMDAwNTc1OTM3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkyLFxuICAgICAgICByb2ZmOiAwLjgzODI2MSxcbiAgICAgICAgcm9uOiAwLjAwMDU3NTYyMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MixcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjIsXG4gICAgICAgIHJvbjogMC4wMDA1NzUwMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjYzLFxuICAgICAgICByb246IDAuMDAwNTc0NzU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2MyxcbiAgICAgICAgcm9uOiAwLjAwMDU3NDQ5NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjQsXG4gICAgICAgIHJvbjogMC4wMDA1NzQyNDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY0LFxuICAgICAgICByb246IDAuMDAwNTc0MDAzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDEzOTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjkxLFxuICAgICAgICByb2ZmOiAwLjgzODI2NCxcbiAgICAgICAgcm9uOiAwLjAwMDU3Mzc3M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5MSxcbiAgICAgICAgcm9mZjogMC44MzgyNjUsXG4gICAgICAgIHJvbjogMC4wMDA1NzM1NTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOTEsXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMzQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY1LFxuICAgICAgICByb246IDAuMDAwNTczMTQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyOTUyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY2LFxuICAgICAgICByb246IDAuMDAwNTcyNzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI1OTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjYsXG4gICAgICAgIHJvbjogMC4wMDA1NzI0MjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIyNjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzIxMTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyOSxcbiAgICAgICAgcm9mZjogMC44MzgyNjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzE5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI5LFxuICAgICAgICByb2ZmOiAwLjgzODI2NyxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxNjk3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OCxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTQ0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjgsXG4gICAgICAgIHJvbjogMC4wMDA1NzEzMzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY4LFxuICAgICAgICByb246IDAuMDAwNTcxMjIxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MTExNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNDg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzEwMTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTQ5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwOTE2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE0OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI2OSxcbiAgICAgICAgcm9uOiAwLjAwMDU3MDgyM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OSxcbiAgICAgICAgcm9mZjogMC44MzgyNjksXG4gICAgICAgIHJvbjogMC4wMDA1NzA3MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNjVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjY5LFxuICAgICAgICByb246IDAuMDAwNTcwNTY5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDkyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwNDE4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMzQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3LFxuICAgICAgICByb246IDAuMDAwNTcwMjhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTUzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAyMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAxNTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1NzAwMzlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcsXG4gICAgICAgIHJvbjogMC4wMDA1Njk5MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODksXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5ODg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1NzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg5LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTgzOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNTc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk3OTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTU4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NzA5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTY3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE1OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTYzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk1OTdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NTYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTQ5OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1Njk0NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTYzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5NDE0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTM4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkzNjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5MzM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MSxcbiAgICAgICAgcm9uOiAwLjAwMDU2OTMxNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzEsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyOTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcxLFxuICAgICAgICByb246IDAuMDAwNTY5Mjc0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTI1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkyMzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MjE3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTY4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE2OTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTE2N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxNTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MTM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTEyNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkxMTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTcxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDk5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA4N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTczMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDY0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3MzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTA1NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwNDRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OTAyNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1NjkwMTZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY5MDA4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5OTJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTg1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk3OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxNzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTc5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTY1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE3OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk1OVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5NTNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTQ4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODk0MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4MjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkyOFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MjNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTgzNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTE5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkxNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5MTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg1MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4OTA3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODkwNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg5N1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4OTRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODkxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxODg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4ODZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTg5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODgzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE4OTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg4MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTAwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkwNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODc2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg3NFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTE1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTkyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODY4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5MzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NjRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODYzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg2MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NThcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODU3XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5NjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODUzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDE5ODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg1MlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAxOTg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NTFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMTk5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0OFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAxMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0NlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjAyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQ0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODQyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODg0MVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4NDFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA2NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwNzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzhcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA4MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM4XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIwODUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzN1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMDkwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzdcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjA5NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM2XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMDAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTA1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzZcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjExMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM1XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMTUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTIwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzVcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjEyNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxMzAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzNFxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzRcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE0MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODM0XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzNcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE1NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMzXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzM1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE3MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxNzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMlxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzJcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjE4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMyXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIxOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMTk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MzFcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjIxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODMxXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgzMVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjMwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjM1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjQ1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjUwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjYwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjY1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjc1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4M1xuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjgwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjI4NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIyOTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMjk1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMwMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMDUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzEwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMxNTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMjAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzI1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjMzMDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzMzUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzQwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM0NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNTAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzU1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM2MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzNjUwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzcwMCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM3NTAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI5XG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRpbWU6IDIzODAwLFxuICAgICAgICBnZnA6IDAuMDAwMTQyMjg4LFxuICAgICAgICByb2ZmOiAwLjgzODI3MixcbiAgICAgICAgcm9uOiAwLjAwMDU2ODgyOVxuICAgIH0sXG4gICAge1xuICAgICAgICB0aW1lOiAyMzg1MCxcbiAgICAgICAgZ2ZwOiAwLjAwMDE0MjI4OCxcbiAgICAgICAgcm9mZjogMC44MzgyNzIsXG4gICAgICAgIHJvbjogMC4wMDA1Njg4MjlcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGltZTogMjM5MDAsXG4gICAgICAgIGdmcDogMC4wMDAxNDIyODgsXG4gICAgICAgIHJvZmY6IDAuODM4MjcyLFxuICAgICAgICByb246IDAuMDAwNTY4ODI4XG4gICAgfVxuXTsiLCJ2YXIgc2l0ZW1hcCA9IHtcclxuICAgICcnOiAnaG9tZScsXHJcbiAgICBcclxuICAgICdPdmVydmlld19Qcm9qZWN0JzogJ3F1b3J1cycsXHJcbiAgICAnRGVzY3JpcHRpb24nOiAncXVvcnVzJyxcclxuICAgICdEZXNpZ24nOiAncXVvcnVzJyxcclxuICAgICdFeHBlcmltZW50cyc6ICdxdW9ydXMnLFxyXG4gICAgJ05vdGVib29rJzogJ3F1b3J1cycsXHJcbiAgICAnSW50ZXJMYWInOiAncXVvcnVzJyxcclxuICAgICdNb2RlbCc6ICdxdW9ydXMnLFxyXG4gICAgJ1Jlc3VsdHMnOiAncXVvcnVzJyxcclxuICAgICdEZW1vbnN0cmF0ZSc6ICdxdW9ydXMnLFxyXG4gICAgJ0ltcHJvdmUnOiAncXVvcnVzJyxcclxuXHJcbiAgICAnUGFydHMnOiAncXVvcnVzJyxcclxuICAgICdCYXNpY19QYXJ0JzogJ3F1b3J1cycsXHJcbiAgICAnQ29tcG9zaXRlX1BhcnQnOiAncXVvcnVzJyxcclxuICAgICdQYXJ0X0NvbGxlY3Rpb24nOiAncXVvcnVzJyxcclxuXHJcbiAgICAnU2FmZXR5JzogJ3F1b3J1cycsXHJcblxyXG4gICAgJ092ZXJ2aWV3X0hQJzogJ2hwJyxcclxuICAgICdIdW1hbl9QcmFjdGljZXMnOiAnaHAnLFxyXG4gICAgJ1B1YmxpY19FbmdhZ2VtZW50JzogJ2hwJyxcclxuXHJcbiAgICAnVGVhbSc6ICd0ZWFtJyxcclxuICAgICdDb2xsYWJvcmF0aW9ucyc6ICd0ZWFtJyxcclxuICAgICdBdHRyaWJ1dGlvbnMnOiAndGVhbScsXHJcblxyXG4gICAgJ0FwcGxpZWRfRGVzaWduJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdFbnRyZXByZW5ldXJzaGlwJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdIYXJkd2FyZSc6ICdjb21wZXRpdGlvbicsXHJcbiAgICAnTWVhc3VyZW1lbnQnOiAnY29tcGV0aXRpb24nLFxyXG4gICAgJ01vZGVsJzogJ2NvbXBldGl0aW9uJyxcclxuICAgICdTb2Z0d2FyZSc6ICdjb21wZXRpdGlvbidcclxufVxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcclxuICAgIHZhciBjdXJuYXZpdGVtID0gd2luZG93LmxvY2F0aW9uLmhyZWY7XHJcbiAgICBpZihjdXJuYXZpdGVtLm1hdGNoKC9pZ2VtXFwub3JnL2kpKSB7IC8vIFdlIGtub3cgd2UncmUgbGl2ZVxyXG4gICAgICAgIGN1cm5hdml0ZW0gPSBjdXJuYXZpdGVtLnJlcGxhY2UoLyhodHRwOlxcL1xcLyk/XFxkezR9XFwuaWdlbVxcLm9yZ1xcLlRlYW06XFx3K1xcLz8vaSwgJycpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvKGh0dHA6XFwvXFwvKT9sb2NhbGhvc3Q6XFxkK1xcLz8vLCAnJyk7XHJcbiAgICAgICAgY3VybmF2aXRlbSA9IGN1cm5hdml0ZW0ucmVwbGFjZSgvXFwuaHRtbC9pLCAnJyk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhjdXJuYXZpdGVtKTtcclxuICAgICQoJy4nICsgc2l0ZW1hcFtjdXJuYXZpdGVtXSkuYWRkQ2xhc3MoJ2N1cnJlbnQnKTtcclxufSkiLCIvLyBDb2RlIGNvdXJ0ZXN5IG9mIE1vaGFtZWQgSGFzYW5cclxuLy8gaHR0cHM6Ly9jb2RlcGVuLmlvL01obWRoYXNhbi9wZW4vbUFkYVFFXHJcblxyXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XHJcbiAgXHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG4gIFxyXG4gICB2YXIgYywgY3VycmVudFNjcm9sbFRvcCA9IDAsXHJcbiAgICAgICBuYXZiYXIgPSAkKCdoZWFkZXInKTtcclxuXHJcbiAgICQod2luZG93KS5zY3JvbGwoZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgYSA9ICQod2luZG93KS5zY3JvbGxUb3AoKTtcclxuICAgICAgdmFyIGIgPSBuYXZiYXIuaGVpZ2h0KCk7XHJcbiAgICAgXHJcbiAgICAgIGN1cnJlbnRTY3JvbGxUb3AgPSBhO1xyXG4gICAgIFxyXG4gICAgICBpZiAoYyA8IGN1cnJlbnRTY3JvbGxUb3AgJiYgYSA+IGIgKyBiKSB7XHJcbiAgICAgICAgbmF2YmFyLmFkZENsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyA+IGN1cnJlbnRTY3JvbGxUb3AgJiYgIShhIDw9IGIpKSB7XHJcbiAgICAgICAgbmF2YmFyLnJlbW92ZUNsYXNzKFwic2Nyb2xsVXBcIik7XHJcbiAgICAgIH1cclxuICAgICAgYyA9IGN1cnJlbnRTY3JvbGxUb3A7XHJcbiAgfSk7XHJcbiAgXHJcbn0pOyIsIi8vQ29kZSBjb3VydGVzeSBvZiBodHRwczovL2NvZGVwZW4uaW8va3J1eG9yL3Blbi9Dd3BGcVxuXG4kKHdpbmRvdykuc2Nyb2xsKGZ1bmN0aW9uKCkge1xuICAgIGlmICgkKHRoaXMpLnNjcm9sbFRvcCgpID4gNTAgKSB7XG4gICAgICAgICQoJy5zY3JvbGx0b3A6aGlkZGVuJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlSW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAkKCcuc2Nyb2xsdG9wJykuc3RvcCh0cnVlLCB0cnVlKS5mYWRlT3V0KCk7XG4gICAgfVxufSk7XG4kKGZ1bmN0aW9uKCl7JChcIi5zY3JvbGxcIikuY2xpY2soZnVuY3Rpb24oKXskKFwiaHRtbCxib2R5XCIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKFwiI3RvcFwiKS5vZmZzZXQoKS50b3B9LFwiMTAwMFwiKTtyZXR1cm4gZmFsc2V9KX0pOyJdfQ==