j40-cejst-2/polyfill-aab98ca4729baf333612.js
2021-05-25 03:09:50 +00:00

1 line
No EOL
216 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(self.webpackChunkjustice40_tool=self.webpackChunkjustice40_tool||[]).push([[920],{8609:function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){eval('!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof __webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:{};function e(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}()}},r.exports),r.exports}var r=function(t){return t&&t.Math==Math&&t},n=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||function(){return this}()||Function("return this")(),o=function(t){try{return!!t()}catch(t){return!0}},i=!o(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}),a={}.propertyIsEnumerable,u=Object.getOwnPropertyDescriptor,c={f:u&&!a.call({1:2},1)?function(t){var e=u(this,t);return!!e&&e.enumerable}:a},s=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},f={}.toString,l=function(t){return f.call(t).slice(8,-1)},h="".split,p=o(function(){return!Object("z").propertyIsEnumerable(0)})?function(t){return"String"==l(t)?h.call(t,""):Object(t)}:Object,d=function(t){if(null==t)throw TypeError("Can\'t call method on "+t);return t},v=function(t){return p(d(t))},g=function(t){return"object"==typeof t?null!==t:"function"==typeof t},y=function(t,e){if(!g(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!g(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!g(n=r.call(t)))return n;throw TypeError("Can\'t convert object to primitive value")},m={}.hasOwnProperty,b=function(t,e){return m.call(t,e)},E=n.document,S=g(E)&&g(E.createElement),w=function(t){return S?E.createElement(t):{}},R=!i&&!o(function(){return 7!=Object.defineProperty(w("div"),"a",{get:function(){return 7}}).a}),T=Object.getOwnPropertyDescriptor,O={f:i?T:function(t,e){if(t=v(t),e=y(e,!0),R)try{return T(t,e)}catch(t){}if(b(t,e))return s(!c.f.call(t,e),t[e])}},x=function(t){if(!g(t))throw TypeError(String(t)+" is not an object");return t},A=Object.defineProperty,I={f:i?A:function(t,e,r){if(x(t),e=y(e,!0),x(r),R)try{return A(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},_=i?function(t,e,r){return I.f(t,e,s(1,r))}:function(t,e,r){return t[e]=r,t},j=function(t,e){try{_(n,t,e)}catch(r){n[t]=e}return e},P="__core-js_shared__",M=n[P]||j(P,{}),N=Function.toString;"function"!=typeof M.inspectSource&&(M.inspectSource=function(t){return N.call(t)});var U,k,L,D=M.inspectSource,C=n.WeakMap,F="function"==typeof C&&/native code/.test(D(C)),B=!1,W=e(function(t){(t.exports=function(t,e){return M[t]||(M[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.9.0",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})}),z=0,G=Math.random(),K=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++z+G).toString(36)},$=W("keys"),V=function(t){return $[t]||($[t]=K(t))},q={};if(F){var H=M.state||(M.state=new(0,n.WeakMap)),X=H.get,Y=H.has,J=H.set;U=function(t,e){return e.facade=t,J.call(H,t,e),e},k=function(t){return X.call(H,t)||{}},L=function(t){return Y.call(H,t)}}else{var Q=V("state");q[Q]=!0,U=function(t,e){return e.facade=t,_(t,Q,e),e},k=function(t){return b(t,Q)?t[Q]:{}},L=function(t){return b(t,Q)}}var Z,tt={set:U,get:k,has:L,enforce:function(t){return L(t)?k(t):U(t,{})},getterFor:function(t){return function(e){var r;if(!g(e)||(r=k(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}},et=e(function(t){var e=tt.get,r=tt.enforce,o=String(String).split("String");(t.exports=function(t,e,i,a){var u,c=!!a&&!!a.unsafe,s=!!a&&!!a.enumerable,f=!!a&&!!a.noTargetGet;"function"==typeof i&&("string"!=typeof e||b(i,"name")||_(i,"name",e),(u=r(i)).source||(u.source=o.join("string"==typeof e?e:""))),t!==n?(c?!f&&t[e]&&(s=!0):delete t[e],s?t[e]=i:_(t,e,i)):s?t[e]=i:j(e,i)})(Function.prototype,"toString",function(){return"function"==typeof this&&e(this).source||D(this)})}),rt=n,nt=function(t){return"function"==typeof t?t:void 0},ot=function(t,e){return arguments.length<2?nt(rt[t])||nt(n[t]):rt[t]&&rt[t][e]||n[t]&&n[t][e]},it=Math.ceil,at=Math.floor,ut=function(t){return isNaN(t=+t)?0:(t>0?at:it)(t)},ct=Math.min,st=function(t){return t>0?ct(ut(t),9007199254740991):0},ft=Math.max,lt=Math.min,ht=function(t,e){var r=ut(t);return r<0?ft(r+e,0):lt(r,e)},pt=function(t){return function(e,r,n){var o,i=v(e),a=st(i.length),u=ht(n,a);if(t&&r!=r){for(;a>u;)if((o=i[u++])!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===r)return t||u||0;return!t&&-1}},dt={includes:pt(!0),indexOf:pt(!1)},vt=dt.indexOf,gt=function(t,e){var r,n=v(t),o=0,i=[];for(r in n)!b(q,r)&&b(n,r)&&i.push(r);for(;e.length>o;)b(n,r=e[o++])&&(~vt(i,r)||i.push(r));return i},yt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],mt=yt.concat("length","prototype"),bt={f:Object.getOwnPropertyNames||function(t){return gt(t,mt)}},Et={f:Object.getOwnPropertySymbols},St=ot("Reflect","ownKeys")||function(t){var e=bt.f(x(t)),r=Et.f;return r?e.concat(r(t)):e},wt=function(t,e){for(var r=St(e),n=I.f,o=O.f,i=0;i<r.length;i++){var a=r[i];b(t,a)||n(t,a,o(e,a))}},Rt=/#|\\.prototype\\./,Tt=function(t,e){var r=xt[Ot(t)];return r==It||r!=At&&("function"==typeof e?o(e):!!e)},Ot=Tt.normalize=function(t){return String(t).replace(Rt,".").toLowerCase()},xt=Tt.data={},At=Tt.NATIVE="N",It=Tt.POLYFILL="P",_t=Tt,jt=O.f,Pt=function(t,e){var r,o,i,a,u,c=t.target,s=t.global,f=t.stat;if(r=s?n:f?n[c]||j(c,{}):(n[c]||{}).prototype)for(o in e){if(a=e[o],i=t.noTargetGet?(u=jt(r,o))&&u.value:r[o],!_t(s?o:c+(f?".":"#")+o,t.forced)&&void 0!==i){if(typeof a==typeof i)continue;wt(a,i)}(t.sham||i&&i.sham)&&_(a,"sham",!0),et(r,o,a,t)}},Mt=function(t){return Object(d(t))},Nt=Math.min,Ut=[].copyWithin||function(t,e){var r=Mt(this),n=st(r.length),o=ht(t,n),i=ht(e,n),a=arguments.length>2?arguments[2]:void 0,u=Nt((void 0===a?n:ht(a,n))-i,n-o),c=1;for(i<o&&o<i+u&&(c=-1,i+=u-1,o+=u-1);u-- >0;)i in r?r[o]=r[i]:delete r[o],o+=c,i+=c;return r},kt=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())}),Lt=kt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Dt=W("wks"),Ct=n.Symbol,Ft=Lt?Ct:Ct&&Ct.withoutSetter||K,Bt=function(t){return b(Dt,t)||(Dt[t]=kt&&b(Ct,t)?Ct[t]:Ft("Symbol."+t)),Dt[t]},Wt=Object.keys||function(t){return gt(t,yt)},zt=i?Object.defineProperties:function(t,e){x(t);for(var r,n=Wt(e),o=n.length,i=0;o>i;)I.f(t,r=n[i++],e[r]);return t},Gt=ot("document","documentElement"),Kt=V("IE_PROTO"),$t=function(){},Vt=function(t){return"<script>"+t+"<\\/script>"},qt=function(){try{Z=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;qt=Z?function(t){t.write(Vt("")),t.close();var e=t.parentWindow.Object;return t=null,e}(Z):((e=w("iframe")).style.display="none",Gt.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(Vt("document.F=Object")),t.close(),t.F);for(var r=yt.length;r--;)delete qt.prototype[yt[r]];return qt()};q[Kt]=!0;var Ht=Object.create||function(t,e){var r;return null!==t?($t.prototype=x(t),r=new $t,$t.prototype=null,r[Kt]=t):r=qt(),void 0===e?r:zt(r,e)},Xt=Bt("unscopables"),Yt=Array.prototype;null==Yt[Xt]&&I.f(Yt,Xt,{configurable:!0,value:Ht(null)});var Jt=function(t){Yt[Xt][t]=!0};Pt({target:"Array",proto:!0},{copyWithin:Ut}),Jt("copyWithin");var Qt=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t},Zt=function(t,e,r){if(Qt(t),void 0===e)return t;switch(r){case 0:return function(){return t.call(e)};case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}},te=Function.call,ee=function(t,e,r){return Zt(te,n[t].prototype[e],r)};ee("Array","copyWithin"),Pt({target:"Array",proto:!0},{fill:function(t){for(var e=Mt(this),r=st(e.length),n=arguments.length,o=ht(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:ht(i,r);a>o;)e[o++]=t;return e}}),Jt("fill"),ee("Array","fill");var re=Array.isArray||function(t){return"Array"==l(t)},ne=Bt("species"),oe=function(t,e){var r;return re(t)&&("function"!=typeof(r=t.constructor)||r!==Array&&!re(r.prototype)?g(r)&&null===(r=r[ne])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===e?0:e)},ie=[].push,ae=function(t){var e=1==t,r=2==t,n=3==t,o=4==t,i=6==t,a=7==t,u=5==t||i;return function(c,s,f,l){for(var h,d,v=Mt(c),g=p(v),y=Zt(s,f,3),m=st(g.length),b=0,E=l||oe,S=e?E(c,m):r||a?E(c,0):void 0;m>b;b++)if((u||b in g)&&(d=y(h=g[b],b,v),t))if(e)S[b]=d;else if(d)switch(t){case 3:return!0;case 5:return h;case 6:return b;case 2:ie.call(S,h)}else switch(t){case 4:return!1;case 7:ie.call(S,h)}return i?-1:n||o?o:S}},ue={forEach:ae(0),map:ae(1),filter:ae(2),some:ae(3),every:ae(4),find:ae(5),findIndex:ae(6),filterOut:ae(7)},ce=ue.find,se="find",fe=!0;se in[]&&Array(1).find(function(){fe=!1}),Pt({target:"Array",proto:!0,forced:fe},{find:function(t){return ce(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(se),ee("Array","find");var le=ue.findIndex,he="findIndex",pe=!0;he in[]&&Array(1).findIndex(function(){pe=!1}),Pt({target:"Array",proto:!0,forced:pe},{findIndex:function(t){return le(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt(he),ee("Array","findIndex");var de=function(t,e,r,n,o,i,a,u){for(var c,s=o,f=0,l=!!a&&Zt(a,u,3);f<n;){if(f in r){if(c=l?l(r[f],f,e):r[f],i>0&&re(c))s=de(t,e,c,st(c.length),s,i-1)-1;else{if(s>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[s]=c}s++}f++}return s},ve=de;Pt({target:"Array",proto:!0},{flatMap:function(t){var e,r=Mt(this),n=st(r.length);return Qt(t),(e=oe(r,0)).length=ve(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Jt("flatMap"),ee("Array","flatMap"),Pt({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=Mt(this),r=st(e.length),n=oe(e,0);return n.length=ve(n,e,e,r,0,void 0===t?1:ut(t)),n}}),Jt("flat"),ee("Array","flat");var ge,ye,me,be=function(t){return function(e,r){var n,o,i=String(d(e)),a=ut(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=i.charCodeAt(a))<55296||n>56319||a+1===u||(o=i.charCodeAt(a+1))<56320||o>57343?t?i.charAt(a):n:t?i.slice(a,a+2):o-56320+(n-55296<<10)+65536}},Ee={codeAt:be(!1),charAt:be(!0)},Se=!o(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),we=V("IE_PROTO"),Re=Object.prototype,Te=Se?Object.getPrototypeOf:function(t){return t=Mt(t),b(t,we)?t[we]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?Re:null},Oe=Bt("iterator"),xe=!1;[].keys&&("next"in(me=[].keys())?(ye=Te(Te(me)))!==Object.prototype&&(ge=ye):xe=!0),(null==ge||o(function(){var t={};return ge[Oe].call(t)!==t}))&&(ge={}),b(ge,Oe)||_(ge,Oe,function(){return this});var Ae={IteratorPrototype:ge,BUGGY_SAFARI_ITERATORS:xe},Ie=I.f,_e=Bt("toStringTag"),je=function(t,e,r){t&&!b(t=r?t:t.prototype,_e)&&Ie(t,_e,{configurable:!0,value:e})},Pe={},Me=Ae.IteratorPrototype,Ne=function(){return this},Ue=function(t){if(!g(t)&&null!==t)throw TypeError("Can\'t set "+String(t)+" as a prototype");return t},ke=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return x(r),Ue(n),e?t.call(r,n):r.__proto__=n,r}}():void 0),Le=Ae.IteratorPrototype,De=Ae.BUGGY_SAFARI_ITERATORS,Ce=Bt("iterator"),Fe="keys",Be="values",We="entries",ze=function(){return this},Ge=function(t,e,r,n,o,i,a){!function(t,e,r){var n=e+" Iterator";t.prototype=Ht(Me,{next:s(1,r)}),je(t,n,!1),Pe[n]=Ne}(r,e,n);var u,c,f,l=function(t){if(t===o&&g)return g;if(!De&&t in d)return d[t];switch(t){case Fe:case Be:case We:return function(){return new r(this,t)}}return function(){return new r(this)}},h=e+" Iterator",p=!1,d=t.prototype,v=d[Ce]||d["@@iterator"]||o&&d[o],g=!De&&v||l(o),y="Array"==e&&d.entries||v;if(y&&(u=Te(y.call(new t)),Le!==Object.prototype&&u.next&&(Te(u)!==Le&&(ke?ke(u,Le):"function"!=typeof u[Ce]&&_(u,Ce,ze)),je(u,h,!0))),o==Be&&v&&v.name!==Be&&(p=!0,g=function(){return v.call(this)}),d[Ce]!==g&&_(d,Ce,g),Pe[e]=g,o)if(c={values:l(Be),keys:i?g:l(Fe),entries:l(We)},a)for(f in c)(De||p||!(f in d))&&et(d,f,c[f]);else Pt({target:e,proto:!0,forced:De||p},c);return c},Ke=Ee.charAt,$e="String Iterator",Ve=tt.set,qe=tt.getterFor($e);Ge(String,"String",function(t){Ve(this,{type:$e,string:String(t),index:0})},function(){var t,e=qe(this),r=e.string,n=e.index;return n>=r.length?{value:void 0,done:!0}:(t=Ke(r,n),e.index+=t.length,{value:t,done:!1})});var He=function(t){var e=t.return;if(void 0!==e)return x(e.call(t)).value},Xe=function(t,e,r,n){try{return n?e(x(r)[0],r[1]):e(r)}catch(e){throw He(t),e}},Ye=Bt("iterator"),Je=Array.prototype,Qe=function(t){return void 0!==t&&(Pe.Array===t||Je[Ye]===t)},Ze=function(t,e,r){var n=y(e);n in t?I.f(t,n,s(0,r)):t[n]=r},tr={};tr[Bt("toStringTag")]="z";var er="[object z]"===String(tr),rr=Bt("toStringTag"),nr="Arguments"==l(function(){return arguments}()),or=er?l:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),rr))?r:nr?l(e):"Object"==(n=l(e))&&"function"==typeof e.callee?"Arguments":n},ir=Bt("iterator"),ar=function(t){if(null!=t)return t[ir]||t["@@iterator"]||Pe[or(t)]},ur=Bt("iterator"),cr=!1;try{var sr=0,fr={next:function(){return{done:!!sr++}},return:function(){cr=!0}};fr[ur]=function(){return this},Array.from(fr,function(){throw 2})}catch(t){}var lr=function(t,e){if(!e&&!cr)return!1;var r=!1;try{var n={};n[ur]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},hr=!lr(function(t){Array.from(t)});Pt({target:"Array",stat:!0,forced:hr},{from:function(t){var e,r,n,o,i,a,u=Mt(t),c="function"==typeof this?this:Array,s=arguments.length,f=s>1?arguments[1]:void 0,l=void 0!==f,h=ar(u),p=0;if(l&&(f=Zt(f,s>2?arguments[2]:void 0,2)),null==h||c==Array&&Qe(h))for(r=new c(e=st(u.length));e>p;p++)a=l?f(u[p],p):u[p],Ze(r,p,a);else for(i=(o=h.call(u)).next,r=new c;!(n=i.call(o)).done;p++)a=l?Xe(o,f,[n.value,p],!0):n.value,Ze(r,p,a);return r.length=p,r}});var pr=dt.includes;Pt({target:"Array",proto:!0},{includes:function(t){return pr(this,t,arguments.length>1?arguments[1]:void 0)}}),Jt("includes"),ee("Array","includes");var dr="Array Iterator",vr=tt.set,gr=tt.getterFor(dr),yr=Ge(Array,"Array",function(t,e){vr(this,{type:dr,target:v(t),index:0,kind:e})},function(){var t=gr(this),e=t.target,r=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}},"values");Pe.Arguments=Pe.Array,Jt("keys"),Jt("values"),Jt("entries"),ee("Array","values");var mr=o(function(){function t(){}return!(Array.of.call(t)instanceof t)});Pt({target:"Array",stat:!0,forced:mr},{of:function(){for(var t=0,e=arguments.length,r=new("function"==typeof this?this:Array)(e);e>t;)Ze(r,t,arguments[t++]);return r.length=e,r}});var br=Bt("hasInstance"),Er=Function.prototype;br in Er||I.f(Er,br,{value:function(t){if("function"!=typeof this||!g(t))return!1;if(!g(this.prototype))return t instanceof this;for(;t=Te(t);)if(this.prototype===t)return!0;return!1}}),Bt("hasInstance");var Sr=Function.prototype,wr=Sr.toString,Rr=/^\\s*function ([^ (]*)/,Tr="name";i&&!(Tr in Sr)&&(0,I.f)(Sr,Tr,{configurable:!0,get:function(){try{return wr.call(this).match(Rr)[1]}catch(t){return""}}});var Or=!o(function(){return Object.isExtensible(Object.preventExtensions({}))}),xr=e(function(t){var e=I.f,r=K("meta"),n=0,o=Object.isExtensible||function(){return!0},i=function(t){e(t,r,{value:{objectID:"O"+ ++n,weakData:{}}})},a=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!g(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!b(t,r)){if(!o(t))return"F";if(!e)return"E";i(t)}return t[r].objectID},getWeakData:function(t,e){if(!b(t,r)){if(!o(t))return!0;if(!e)return!1;i(t)}return t[r].weakData},onFreeze:function(t){return Or&&a.REQUIRED&&o(t)&&!b(t,r)&&i(t),t}};q[r]=!0}),Ar=function(t,e){this.stopped=t,this.result=e},Ir=function(t,e,r){var n,o,i,a,u,c,s,f=!(!r||!r.AS_ENTRIES),l=!(!r||!r.IS_ITERATOR),h=!(!r||!r.INTERRUPTED),p=Zt(e,r&&r.that,1+f+h),d=function(t){return n&&He(n),new Ar(!0,t)},v=function(t){return f?(x(t),h?p(t[0],t[1],d):p(t[0],t[1])):h?p(t,d):p(t)};if(l)n=t;else{if("function"!=typeof(o=ar(t)))throw TypeError("Target is not iterable");if(Qe(o)){for(i=0,a=st(t.length);a>i;i++)if((u=v(t[i]))&&u instanceof Ar)return u;return new Ar(!1)}n=o.call(t)}for(c=n.next;!(s=c.call(n)).done;){try{u=v(s.value)}catch(t){throw He(n),t}if("object"==typeof u&&u&&u instanceof Ar)return u}return new Ar(!1)},_r=function(t,e,r){if(!(t instanceof e))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return t},jr=function(t,e,r){var n,o;return ke&&"function"==typeof(n=e.constructor)&&n!==r&&g(o=n.prototype)&&o!==r.prototype&&ke(t,o),t},Pr=function(t,e,r){var i=-1!==t.indexOf("Map"),a=-1!==t.indexOf("Weak"),u=i?"set":"add",c=n[t],s=c&&c.prototype,f=c,l={},h=function(t){var e=s[t];et(s,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return a&&!g(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(a&&!g(t))&&e.call(this,0===t?0:t)}:function(t,r){return e.call(this,0===t?0:t,r),this})};if(_t(t,"function"!=typeof c||!(a||s.forEach&&!o(function(){(new c).entries().next()}))))f=r.getConstructor(e,t,i,u),xr.REQUIRED=!0;else if(_t(t,!0)){var p=new f,d=p[u](a?{}:-0,1)!=p,v=o(function(){p.has(1)}),y=lr(function(t){new c(t)}),m=!a&&o(function(){for(var t=new c,e=5;e--;)t[u](e,e);return!t.has(-0)});y||((f=e(function(e,r){_r(e,f,t);var n=jr(new c,e,f);return null!=r&&Ir(r,n[u],{that:n,AS_ENTRIES:i}),n})).prototype=s,s.constructor=f),(v||m)&&(h("delete"),h("has"),i&&h("get")),(m||d)&&h(u),a&&s.clear&&delete s.clear}return l[t]=f,Pt({global:!0,forced:f!=c},l),je(f,t),a||r.setStrong(f,t,i),f},Mr=function(t,e,r){for(var n in e)et(t,n,e[n],r);return t},Nr=Bt("species"),Ur=function(t){var e=ot(t);i&&e&&!e[Nr]&&(0,I.f)(e,Nr,{configurable:!0,get:function(){return this}})},kr=I.f,Lr=xr.fastKey,Dr=tt.set,Cr=tt.getterFor,Fr={getConstructor:function(t,e,r,n){var o=t(function(t,a){_r(t,o,e),Dr(t,{type:e,index:Ht(null),first:void 0,last:void 0,size:0}),i||(t.size=0),null!=a&&Ir(a,t[n],{that:t,AS_ENTRIES:r})}),a=Cr(e),u=function(t,e,r){var n,o,u=a(t),s=c(t,e);return s?s.value=r:(u.last=s={index:o=Lr(e,!0),key:e,value:r,previous:n=u.last,next:void 0,removed:!1},u.first||(u.first=s),n&&(n.next=s),i?u.size++:t.size++,"F"!==o&&(u.index[o]=s)),t},c=function(t,e){var r,n=a(t),o=Lr(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key==e)return r};return Mr(o.prototype,{clear:function(){for(var t=a(this),e=t.index,r=t.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete e[r.index],r=r.next;t.first=t.last=void 0,i?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=c(e,t);if(n){var o=n.next,u=n.previous;delete r.index[n.index],n.removed=!0,u&&(u.next=o),o&&(o.previous=u),r.first==n&&(r.first=o),r.last==n&&(r.last=u),i?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),Mr(o.prototype,r?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return u(this,0===t?0:t,e)}}:{add:function(t){return u(this,t=0===t?0:t,t)}}),i&&kr(o.prototype,"size",{get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=Cr(e),i=Cr(n);Ge(t,e,function(t,e){Dr(this,{type:n,target:t,state:o(t),kind:e,last:void 0})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?"keys"==e?{value:r.key,done:!1}:"values"==e?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})},r?"entries":"values",!r,!0),Ur(e)}},Br=Pr("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fr);er||et(Object.prototype,"toString",er?{}.toString:function(){return"[object "+or(this)+"]"},{unsafe:!0});var Wr={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},zr=Bt("iterator"),Gr=Bt("toStringTag"),Kr=yr.values;for(var $r in Wr){var Vr=n[$r],qr=Vr&&Vr.prototype;if(qr){if(qr[zr]!==Kr)try{_(qr,zr,Kr)}catch(t){qr[zr]=Kr}if(qr[Gr]||_(qr,Gr,$r),Wr[$r])for(var Hr in yr)if(qr[Hr]!==yr[Hr])try{_(qr,Hr,yr[Hr])}catch(t){qr[Hr]=yr[Hr]}}}var Xr=function(t){var e,r,n,o,i=arguments.length,a=i>1?arguments[1]:void 0;return Qt(this),(e=void 0!==a)&&Qt(a),null==t?new this:(r=[],e?(n=0,o=Zt(a,i>2?arguments[2]:void 0,2),Ir(t,function(t){r.push(o(t,n++))})):Ir(t,r.push,{that:r}),new this(r))};Pt({target:"Map",stat:!0},{from:Xr});var Yr=function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)};Pt({target:"Map",stat:!0},{of:Yr});var Jr=function(){for(var t,e=x(this),r=Qt(e.delete),n=!0,o=0,i=arguments.length;o<i;o++)t=r.call(e,arguments[o]),n=n&&t;return!!n};Pt({target:"Map",proto:!0,real:!0,forced:B},{deleteAll:function(){return Jr.apply(this,arguments)}});var Qr=function(t,e){var r=x(this),n=r.has(t)&&"update"in e?e.update(r.get(t),t,r):e.insert(t,r);return r.set(t,n),n};Pt({target:"Map",proto:!0,real:!0,forced:B},{emplace:Qr});var Zr=function(t){return Map.prototype.entries.call(t)};Pt({target:"Map",proto:!0,real:!0,forced:B},{every:function(t){var e=x(this),r=Zr(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Ir(r,function(t,r,o){if(!n(r,t,e))return o()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var tn=Bt("species"),en=function(t,e){var r,n=x(t).constructor;return void 0===n||null==(r=x(n)[tn])?e:Qt(r)};Pt({target:"Map",proto:!0,real:!0,forced:B},{filter:function(t){var e=x(this),r=Zr(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(en(e,ot("Map"))),i=Qt(o.set);return Ir(r,function(t,r){n(r,t,e)&&i.call(o,t,r)},{AS_ENTRIES:!0,IS_ITERATOR:!0}),o}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{find:function(t){var e=x(this),r=Zr(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Ir(r,function(t,r,o){if(n(r,t,e))return o(r)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{findKey:function(t){var e=x(this),r=Zr(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Ir(r,function(t,r,o){if(n(r,t,e))return o(t)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}}),Pt({target:"Map",stat:!0},{groupBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.has),o=Qt(r.get),i=Qt(r.set);return Ir(t,function(t){var a=e(t);n.call(r,a)?o.call(r,a).push(t):i.call(r,a,[t])}),r}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{includes:function(t){return Ir(Zr(x(this)),function(e,r,n){if((o=r)===(i=t)||o!=o&&i!=i)return n();var o,i},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}}),Pt({target:"Map",stat:!0},{keyBy:function(t,e){var r=new this;Qt(e);var n=Qt(r.set);return Ir(t,function(t){n.call(r,e(t),t)}),r}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{keyOf:function(t){return Ir(Zr(x(this)),function(e,r,n){if(r===t)return n(e)},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{mapKeys:function(t){var e=x(this),r=Zr(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(en(e,ot("Map"))),i=Qt(o.set);return Ir(r,function(t,r){i.call(o,n(r,t,e),r)},{AS_ENTRIES:!0,IS_ITERATOR:!0}),o}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{mapValues:function(t){var e=x(this),r=Zr(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(en(e,ot("Map"))),i=Qt(o.set);return Ir(r,function(t,r){i.call(o,t,n(r,t,e))},{AS_ENTRIES:!0,IS_ITERATOR:!0}),o}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{merge:function(t){for(var e=x(this),r=Qt(e.set),n=0;n<arguments.length;)Ir(arguments[n++],r,{that:e,AS_ENTRIES:!0});return e}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{reduce:function(t){var e=x(this),r=Zr(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Ir(r,function(r,i){n?(n=!1,o=i):o=t(o,i,r,e)},{AS_ENTRIES:!0,IS_ITERATOR:!0}),n)throw TypeError("Reduce of empty map with no initial value");return o}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{some:function(t){var e=x(this),r=Zr(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Ir(r,function(t,r,o){if(n(r,t,e))return o()},{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}}),Pt({target:"Map",proto:!0,real:!0,forced:B},{update:function(t,e){var r=x(this),n=arguments.length;Qt(e);var o=r.has(t);if(!o&&n<3)throw TypeError("Updating absent value");var i=o?r.get(t):Qt(n>2?arguments[2]:void 0)(t,r);return r.set(t,e(i,t,r)),r}});var rn=function(t,e){var r,n=x(this),o=arguments.length>2?arguments[2]:void 0;if("function"!=typeof e&&"function"!=typeof o)throw TypeError("At least one callback required");return n.has(t)?(r=n.get(t),"function"==typeof e&&(r=e(r),n.set(t,r))):"function"==typeof o&&(r=o(),n.set(t,r)),r};Pt({target:"Map",proto:!0,real:!0,forced:B},{upsert:rn}),Pt({target:"Map",proto:!0,real:!0,forced:B},{updateOrInsert:rn});var nn=Pr("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fr);Pt({target:"Set",stat:!0},{from:Xr}),Pt({target:"Set",stat:!0},{of:Yr});var on=function(){for(var t=x(this),e=Qt(t.add),r=0,n=arguments.length;r<n;r++)e.call(t,arguments[r]);return t};Pt({target:"Set",proto:!0,real:!0,forced:B},{addAll:function(){return on.apply(this,arguments)}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{deleteAll:function(){return Jr.apply(this,arguments)}});var an=function(t){return Set.prototype.values.call(t)};Pt({target:"Set",proto:!0,real:!0,forced:B},{every:function(t){var e=x(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return!Ir(r,function(t,r){if(!n(t,t,e))return r()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{difference:function(t){var e=x(this),r=new(en(e,ot("Set")))(e),n=Qt(r.delete);return Ir(t,function(t){n.call(r,t)}),r}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{filter:function(t){var e=x(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(en(e,ot("Set"))),i=Qt(o.add);return Ir(r,function(t){n(t,t,e)&&i.call(o,t)},{IS_ITERATOR:!0}),o}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{find:function(t){var e=x(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Ir(r,function(t,r){if(n(t,t,e))return r(t)},{IS_ITERATOR:!0,INTERRUPTED:!0}).result}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{intersection:function(t){var e=x(this),r=new(en(e,ot("Set"))),n=Qt(e.has),o=Qt(r.add);return Ir(t,function(t){n.call(e,t)&&o.call(r,t)}),r}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{isDisjointFrom:function(t){var e=x(this),r=Qt(e.has);return!Ir(t,function(t,n){if(!0===r.call(e,t))return n()},{INTERRUPTED:!0}).stopped}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{isSubsetOf:function(t){var e=function(t){var e=ar(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return x(e.call(t))}(this),r=x(t),n=r.has;return"function"!=typeof n&&(r=new(ot("Set"))(t),n=Qt(r.has)),!Ir(e,function(t,e){if(!1===n.call(r,t))return e()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{isSupersetOf:function(t){var e=x(this),r=Qt(e.has);return!Ir(t,function(t,n){if(!1===r.call(e,t))return n()},{INTERRUPTED:!0}).stopped}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{join:function(t){var e=x(this),r=an(e),n=void 0===t?",":String(t),o=[];return Ir(r,o.push,{that:o,IS_ITERATOR:!0}),o.join(n)}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{map:function(t){var e=x(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3),o=new(en(e,ot("Set"))),i=Qt(o.add);return Ir(r,function(t){i.call(o,n(t,t,e))},{IS_ITERATOR:!0}),o}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{reduce:function(t){var e=x(this),r=an(e),n=arguments.length<2,o=n?void 0:arguments[1];if(Qt(t),Ir(r,function(r){n?(n=!1,o=r):o=t(o,r,r,e)},{IS_ITERATOR:!0}),n)throw TypeError("Reduce of empty set with no initial value");return o}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{some:function(t){var e=x(this),r=an(e),n=Zt(t,arguments.length>1?arguments[1]:void 0,3);return Ir(r,function(t,r){if(n(t,t,e))return r()},{IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{symmetricDifference:function(t){var e=x(this),r=new(en(e,ot("Set")))(e),n=Qt(r.delete),o=Qt(r.add);return Ir(t,function(t){n.call(r,t)||o.call(r,t)}),r}}),Pt({target:"Set",proto:!0,real:!0,forced:B},{union:function(t){var e=x(this),r=new(en(e,ot("Set")))(e);return Ir(t,Qt(r.add),{that:r}),r}});var un=xr.getWeakData,cn=tt.set,sn=tt.getterFor,fn=ue.find,ln=ue.findIndex,hn=0,pn=function(t){return t.frozen||(t.frozen=new dn)},dn=function(){this.entries=[]},vn=function(t,e){return fn(t.entries,function(t){return t[0]===e})};dn.prototype={get:function(t){var e=vn(this,t);if(e)return e[1]},has:function(t){return!!vn(this,t)},set:function(t,e){var r=vn(this,t);r?r[1]=e:this.entries.push([t,e])},delete:function(t){var e=ln(this.entries,function(e){return e[0]===t});return~e&&this.entries.splice(e,1),!!~e}};var gn={getConstructor:function(t,e,r,n){var o=t(function(t,i){_r(t,o,e),cn(t,{type:e,id:hn++,frozen:void 0}),null!=i&&Ir(i,t[n],{that:t,AS_ENTRIES:r})}),i=sn(e),a=function(t,e,r){var n=i(t),o=un(x(e),!0);return!0===o?pn(n).set(e,r):o[n.id]=r,t};return Mr(o.prototype,{delete:function(t){var e=i(this);if(!g(t))return!1;var r=un(t);return!0===r?pn(e).delete(t):r&&b(r,e.id)&&delete r[e.id]},has:function(t){var e=i(this);if(!g(t))return!1;var r=un(t);return!0===r?pn(e).has(t):r&&b(r,e.id)}}),Mr(o.prototype,r?{get:function(t){var e=i(this);if(g(t)){var r=un(t);return!0===r?pn(e).get(t):r?r[e.id]:void 0}},set:function(t,e){return a(this,t,e)}}:{add:function(t){return a(this,t,!0)}}),o}},yn=e(function(t){var e,r=tt.enforce,o=!n.ActiveXObject&&"ActiveXObject"in n,i=Object.isExtensible,a=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},u=t.exports=Pr("WeakMap",a,gn);if(F&&o){e=gn.getConstructor(a,"WeakMap",!0),xr.REQUIRED=!0;var c=u.prototype,s=c.delete,f=c.has,l=c.get,h=c.set;Mr(c,{delete:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),s.call(this,t)||n.frozen.delete(t)}return s.call(this,t)},has:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)||n.frozen.has(t)}return f.call(this,t)},get:function(t){if(g(t)&&!i(t)){var n=r(this);return n.frozen||(n.frozen=new e),f.call(this,t)?l.call(this,t):n.frozen.get(t)}return l.call(this,t)},set:function(t,n){if(g(t)&&!i(t)){var o=r(this);o.frozen||(o.frozen=new e),f.call(this,t)?h.call(this,t,n):o.frozen.set(t,n)}else h.call(this,t,n);return this}})}});Pt({target:"WeakMap",proto:!0,real:!0,forced:B},{emplace:Qr}),Pt({target:"WeakMap",stat:!0},{from:Xr}),Pt({target:"WeakMap",stat:!0},{of:Yr}),Pt({target:"WeakMap",proto:!0,real:!0,forced:B},{deleteAll:function(){return Jr.apply(this,arguments)}}),Pt({target:"WeakMap",proto:!0,real:!0,forced:B},{upsert:rn}),Pr("WeakSet",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},gn),Pt({target:"WeakSet",proto:!0,real:!0,forced:B},{addAll:function(){return on.apply(this,arguments)}}),Pt({target:"WeakSet",proto:!0,real:!0,forced:B},{deleteAll:function(){return Jr.apply(this,arguments)}}),Pt({target:"WeakSet",stat:!0},{from:Xr}),Pt({target:"WeakSet",stat:!0},{of:Yr});var mn="\\t\\n\\v\\f\\r    \\u2028\\u2029\\ufeff",bn="["+mn+"]",En=RegExp("^"+bn+bn+"*"),Sn=RegExp(bn+bn+"*$"),wn=function(t){return function(e){var r=String(d(e));return 1&t&&(r=r.replace(En,"")),2&t&&(r=r.replace(Sn,"")),r}},Rn={start:wn(1),end:wn(2),trim:wn(3)},Tn=bt.f,On=O.f,xn=I.f,An=Rn.trim,In="Number",_n=n.Number,jn=_n.prototype,Pn=l(Ht(jn))==In,Mn=function(t){var e,r,n,o,i,a,u,c,s=y(t,!1);if("string"==typeof s&&s.length>2)if(43===(e=(s=An(s)).charCodeAt(0))||45===e){if(88===(r=s.charCodeAt(2))||120===r)return NaN}else if(48===e){switch(s.charCodeAt(1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+s}for(a=(i=s.slice(2)).length,u=0;u<a;u++)if((c=i.charCodeAt(u))<48||c>o)return NaN;return parseInt(i,n)}return+s};if(_t(In,!_n(" 0o1")||!_n("0b1")||_n("+0x1"))){for(var Nn,Un=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof Un&&(Pn?o(function(){jn.valueOf.call(r)}):l(r)!=In)?jr(new _n(Mn(e)),r,Un):Mn(e)},kn=i?Tn(_n):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),Ln=0;kn.length>Ln;Ln++)b(_n,Nn=kn[Ln])&&!b(Un,Nn)&&xn(Un,Nn,On(_n,Nn));Un.prototype=jn,jn.constructor=Un,et(n,In,Un)}Pt({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)});var Dn=n.isFinite;Pt({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&Dn(t)}});var Cn=Math.floor,Fn=function(t){return!g(t)&&isFinite(t)&&Cn(t)===t};Pt({target:"Number",stat:!0},{isInteger:Fn}),Pt({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Bn=Math.abs;Pt({target:"Number",stat:!0},{isSafeInteger:function(t){return Fn(t)&&Bn(t)<=9007199254740991}}),Pt({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991}),Pt({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991});var Wn=c.f,zn=function(t){return function(e){for(var r,n=v(e),o=Wt(n),a=o.length,u=0,c=[];a>u;)r=o[u++],i&&!Wn.call(n,r)||c.push(t?[r,n[r]]:n[r]);return c}},Gn={entries:zn(!0),values:zn(!1)},Kn=Gn.entries;Pt({target:"Object",stat:!0},{entries:function(t){return Kn(t)}}),Pt({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function(t){for(var e,r,n=v(t),o=O.f,i=St(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&Ze(a,e,r);return a}});var $n=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Pt({target:"Object",stat:!0},{is:$n});var Vn=o(function(){Wt(1)});Pt({target:"Object",stat:!0,forced:Vn},{keys:function(t){return Wt(Mt(t))}});var qn=Gn.values;Pt({target:"Object",stat:!0},{values:function(t){return qn(t)}});var Hn=Ee.codeAt;Pt({target:"String",proto:!0},{codePointAt:function(t){return Hn(this,t)}}),ee("String","codePointAt");var Xn,Yn=Bt("match"),Jn=function(t){var e;return g(t)&&(void 0!==(e=t[Yn])?!!e:"RegExp"==l(t))},Qn=function(t){if(Jn(t))throw TypeError("The method doesn\'t accept regular expressions");return t},Zn=Bt("match"),to=function(t){var e=/./;try{"/./"[t](e)}catch(r){try{return e[Zn]=!1,"/./"[t](e)}catch(t){}}return!1},eo=O.f,ro="".endsWith,no=Math.min,oo=to("endsWith"),io=!(oo||(Xn=eo(String.prototype,"endsWith"),!Xn||Xn.writable));Pt({target:"String",proto:!0,forced:!io&&!oo},{endsWith:function(t){var e=String(d(this));Qn(t);var r=arguments.length>1?arguments[1]:void 0,n=st(e.length),o=void 0===r?n:no(st(r),n),i=String(t);return ro?ro.call(e,i,o):e.slice(o-i.length,o)===i}}),ee("String","endsWith");var ao=String.fromCharCode,uo=String.fromCodePoint;Pt({target:"String",stat:!0,forced:!!uo&&1!=uo.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],ht(e,1114111)!==e)throw RangeError(e+" is not a valid code point");r.push(e<65536?ao(e):ao(55296+((e-=65536)>>10),e%1024+56320))}return r.join("")}}),Pt({target:"String",proto:!0,forced:!to("includes")},{includes:function(t){return!!~String(d(this)).indexOf(Qn(t),arguments.length>1?arguments[1]:void 0)}}),ee("String","includes");var co="".repeat||function(t){var e=String(d(this)),r="",n=ut(t);if(n<0||Infinity==n)throw RangeError("Wrong number of repetitions");for(;n>0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},so=Math.ceil,fo=function(t){return function(e,r,n){var o,i,a=String(d(e)),u=a.length,c=void 0===n?" ":String(n),s=st(r);return s<=u||""==c?a:((i=co.call(c,so((o=s-u)/c.length))).length>o&&(i=i.slice(0,o)),t?a+i:i+a)}},lo={start:fo(!1),end:fo(!0)},ho=ot("navigator","userAgent")||"",po=/Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(ho),vo=lo.start;Pt({target:"String",proto:!0,forced:po},{padStart:function(t){return vo(this,t,arguments.length>1?arguments[1]:void 0)}}),ee("String","padStart");var go=lo.end;Pt({target:"String",proto:!0,forced:po},{padEnd:function(t){return go(this,t,arguments.length>1?arguments[1]:void 0)}}),ee("String","padEnd"),Pt({target:"String",stat:!0},{raw:function(t){for(var e=v(t.raw),r=st(e.length),n=arguments.length,o=[],i=0;r>i;)o.push(String(e[i++])),i<n&&o.push(String(arguments[i]));return o.join("")}}),Pt({target:"String",proto:!0},{repeat:co}),ee("String","repeat");var yo=O.f,mo="".startsWith,bo=Math.min,Eo=to("startsWith"),So=!Eo&&!!function(){var t=yo(String.prototype,"startsWith");return t&&!t.writable}();Pt({target:"String",proto:!0,forced:!So&&!Eo},{startsWith:function(t){var e=String(d(this));Qn(t);var r=st(bo(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return mo?mo.call(e,n,r):e.slice(r,r+n.length)===n}}),ee("String","startsWith");var wo=function(t){return o(function(){return!!mn[t]()||"…"!="…"[t]()||mn[t].name!==t})},Ro=Rn.start,To=wo("trimStart"),Oo=To?function(){return Ro(this)}:"".trimStart;Pt({target:"String",proto:!0,forced:To},{trimStart:Oo,trimLeft:Oo}),ee("String","trimLeft");var xo=Rn.end,Ao=wo("trimEnd"),Io=Ao?function(){return xo(this)}:"".trimEnd;Pt({target:"String",proto:!0,forced:Ao},{trimEnd:Io,trimRight:Io}),ee("String","trimRight");var _o=ot("Reflect","apply"),jo=Function.apply,Po=!o(function(){_o(function(){})});Pt({target:"Reflect",stat:!0,forced:Po},{apply:function(t,e,r){return Qt(t),x(r),_o?_o(t,e,r):jo.call(t,e,r)}});var Mo=[].slice,No={},Uo=function(t,e,r){if(!(e in No)){for(var n=[],o=0;o<e;o++)n[o]="a["+o+"]";No[e]=Function("C,a","return new C("+n.join(",")+")")}return No[e](t,r)},ko=Function.bind||function(t){var e=Qt(this),r=Mo.call(arguments,1),n=function(){var o=r.concat(Mo.call(arguments));return this instanceof n?Uo(e,o.length,o):e.apply(t,o)};return g(e.prototype)&&(n.prototype=e.prototype),n},Lo=ot("Reflect","construct"),Do=o(function(){function t(){}return!(Lo(function(){},[],t)instanceof t)}),Co=!o(function(){Lo(function(){})}),Fo=Do||Co;Pt({target:"Reflect",stat:!0,forced:Fo,sham:Fo},{construct:function(t,e){Qt(t),x(e);var r=arguments.length<3?t:Qt(arguments[2]);if(Co&&!Do)return Lo(t,e,r);if(t==r){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(ko.apply(t,n))}var o=r.prototype,i=Ht(g(o)?o:Object.prototype),a=Function.apply.call(t,i,e);return g(a)?a:i}});var Bo=o(function(){Reflect.defineProperty(I.f({},1,{value:1}),1,{value:2})});Pt({target:"Reflect",stat:!0,forced:Bo,sham:!i},{defineProperty:function(t,e,r){x(t);var n=y(e,!0);x(r);try{return I.f(t,n,r),!0}catch(t){return!1}}});var Wo=O.f;Pt({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var r=Wo(x(t),e);return!(r&&!r.configurable)&&delete t[e]}}),Pt({target:"Reflect",stat:!0},{get:function t(e,r){var n,o,i=arguments.length<3?e:arguments[2];return x(e)===i?e[r]:(n=O.f(e,r))?b(n,"value")?n.value:void 0===n.get?void 0:n.get.call(i):g(o=Te(e))?t(o,r,i):void 0}}),Pt({target:"Reflect",stat:!0,sham:!i},{getOwnPropertyDescriptor:function(t,e){return O.f(x(t),e)}}),Pt({target:"Reflect",stat:!0,sham:!Se},{getPrototypeOf:function(t){return Te(x(t))}}),Pt({target:"Reflect",stat:!0},{has:function(t,e){return e in t}});var zo=Object.isExtensible;Pt({target:"Reflect",stat:!0},{isExtensible:function(t){return x(t),!zo||zo(t)}}),Pt({target:"Reflect",stat:!0},{ownKeys:St}),Pt({target:"Reflect",stat:!0,sham:!Or},{preventExtensions:function(t){x(t);try{var e=ot("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}});var Go=o(function(){var t=function(){},e=I.f(new t,"a",{configurable:!0});return!1!==Reflect.set(t.prototype,"a",1,e)});Pt({target:"Reflect",stat:!0,forced:Go},{set:function t(e,r,n){var o,i,a=arguments.length<4?e:arguments[3],u=O.f(x(e),r);if(!u){if(g(i=Te(e)))return t(i,r,n,a);u=s(0)}if(b(u,"value")){if(!1===u.writable||!g(a))return!1;if(o=O.f(a,r)){if(o.get||o.set||!1===o.writable)return!1;o.value=n,I.f(a,r,o)}else I.f(a,r,s(0,n));return!0}return void 0!==u.set&&(u.set.call(a,n),!0)}}),ke&&Pt({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){x(t),Ue(e);try{return ke(t,e),!0}catch(t){return!1}}}),Pt({global:!0},{Reflect:{}}),je(n.Reflect,"Reflect",!0);var Ko=W("metadata"),$o=Ko.store||(Ko.store=new yn),Vo=function(t,e,r){var n=$o.get(t);if(!n){if(!r)return;$o.set(t,n=new Br)}var o=n.get(e);if(!o){if(!r)return;n.set(e,o=new Br)}return o},qo={store:$o,getMap:Vo,has:function(t,e,r){var n=Vo(e,r,!1);return void 0!==n&&n.has(t)},get:function(t,e,r){var n=Vo(e,r,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,r,n){Vo(r,n,!0).set(t,e)},keys:function(t,e){var r=Vo(t,e,!1),n=[];return r&&r.forEach(function(t,e){n.push(e)}),n},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}},Ho=qo.toKey,Xo=qo.set;Pt({target:"Reflect",stat:!0},{defineMetadata:function(t,e,r){var n=arguments.length<4?void 0:Ho(arguments[3]);Xo(t,e,x(r),n)}});var Yo=qo.toKey,Jo=qo.getMap,Qo=qo.store;Pt({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var r=arguments.length<3?void 0:Yo(arguments[2]),n=Jo(x(e),r,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var o=Qo.get(e);return o.delete(r),!!o.size||Qo.delete(e)}});var Zo=qo.has,ti=qo.get,ei=qo.toKey,ri=function(t,e,r){if(Zo(t,e,r))return ti(t,e,r);var n=Te(e);return null!==n?ri(t,n,r):void 0};Pt({target:"Reflect",stat:!0},{getMetadata:function(t,e){var r=arguments.length<3?void 0:ei(arguments[2]);return ri(t,x(e),r)}});var ni=qo.keys,oi=qo.toKey,ii=function(t,e){var r=ni(t,e),n=Te(t);if(null===n)return r;var o,i,a=ii(n,e);return a.length?r.length?(o=new nn(r.concat(a)),Ir(o,(i=[]).push,{that:i}),i):a:r};Pt({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:oi(arguments[1]);return ii(x(t),e)}});var ai=qo.get,ui=qo.toKey;Pt({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var r=arguments.length<3?void 0:ui(arguments[2]);return ai(t,x(e),r)}});var ci=qo.keys,si=qo.toKey;Pt({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:si(arguments[1]);return ci(x(t),e)}});var fi=qo.has,li=qo.toKey,hi=function(t,e,r){if(fi(t,e,r))return!0;var n=Te(e);return null!==n&&hi(t,n,r)};Pt({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var r=arguments.length<3?void 0:li(arguments[2]);return hi(t,x(e),r)}});var pi=qo.has,di=qo.toKey;Pt({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var r=arguments.length<3?void 0:di(arguments[2]);return pi(t,x(e),r)}});var vi=qo.toKey,gi=qo.set;Pt({target:"Reflect",stat:!0},{metadata:function(t,e){return function(r,n){gi(t,e,x(r),vi(n))}}});var yi=function(){var t=x(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e};function mi(t,e){return RegExp(t,e)}var bi={UNSUPPORTED_Y:o(function(){var t=mi("a","y");return t.lastIndex=2,null!=t.exec("abcd")}),BROKEN_CARET:o(function(){var t=mi("^r","gy");return t.lastIndex=2,null!=t.exec("str")})},Ei=I.f,Si=bt.f,wi=tt.set,Ri=Bt("match"),Ti=n.RegExp,Oi=Ti.prototype,xi=/a/g,Ai=/a/g,Ii=new Ti(xi)!==xi,_i=bi.UNSUPPORTED_Y;if(i&&_t("RegExp",!Ii||_i||o(function(){return Ai[Ri]=!1,Ti(xi)!=xi||Ti(Ai)==Ai||"/a/i"!=Ti(xi,"i")}))){for(var ji=function(t,e){var r,n=this instanceof ji,o=Jn(t),i=void 0===e;if(!n&&o&&t.constructor===ji&&i)return t;Ii?o&&!i&&(t=t.source):t instanceof ji&&(i&&(e=yi.call(t)),t=t.source),_i&&(r=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var a=jr(Ii?new Ti(t,e):Ti(t,e),n?this:Oi,ji);return _i&&r&&wi(a,{sticky:r}),a},Pi=function(t){t in ji||Ei(ji,t,{configurable:!0,get:function(){return Ti[t]},set:function(e){Ti[t]=e}})},Mi=Si(Ti),Ni=0;Mi.length>Ni;)Pi(Mi[Ni++]);Oi.constructor=ji,ji.prototype=Oi,et(n,"RegExp",ji)}Ur("RegExp");var Ui="toString",ki=RegExp.prototype,Li=ki.toString;(o(function(){return"/a/b"!=Li.call({source:"a",flags:"b"})})||Li.name!=Ui)&&et(RegExp.prototype,Ui,function(){var t=x(this),e=String(t.source),r=t.flags;return"/"+e+"/"+String(void 0===r&&t instanceof RegExp&&!("flags"in ki)?yi.call(t):r)},{unsafe:!0});var Di=RegExp.prototype.exec,Ci=String.prototype.replace,Fi=Di,Bi=function(){var t=/a/,e=/b*/g;return Di.call(t,"a"),Di.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Wi=bi.UNSUPPORTED_Y||bi.BROKEN_CARET,zi=void 0!==/()??/.exec("")[1];(Bi||zi||Wi)&&(Fi=function(t){var e,r,n,o,i=this,a=Wi&&i.sticky,u=yi.call(i),c=i.source,s=0,f=t;return a&&(-1===(u=u.replace("y","")).indexOf("g")&&(u+="g"),f=String(t).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\\n"!==t[i.lastIndex-1])&&(c="(?: "+c+")",f=" "+f,s++),r=new RegExp("^(?:"+c+")",u)),zi&&(r=new RegExp("^"+c+"$(?!\\\\s)",u)),Bi&&(e=i.lastIndex),n=Di.call(a?r:i,f),a?n?(n.input=n.input.slice(s),n[0]=n[0].slice(s),n.index=i.lastIndex,i.lastIndex+=n[0].length):i.lastIndex=0:Bi&&n&&(i.lastIndex=i.global?n.index+n[0].length:e),zi&&n&&n.length>1&&Ci.call(n[0],r,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(n[o]=void 0)}),n});var Gi=Fi;Pt({target:"RegExp",proto:!0,forced:/./.exec!==Gi},{exec:Gi}),i&&("g"!=/./g.flags||bi.UNSUPPORTED_Y)&&I.f(RegExp.prototype,"flags",{configurable:!0,get:yi});var Ki=tt.get,$i=RegExp.prototype;i&&bi.UNSUPPORTED_Y&&(0,I.f)(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this!==$i){if(this instanceof RegExp)return!!Ki(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}});var Vi,qi,Hi=(Vi=!1,(qi=/[ac]/).exec=function(){return Vi=!0,/./.exec.apply(this,arguments)},!0===qi.test("abc")&&Vi),Xi=/./.test;Pt({target:"RegExp",proto:!0,forced:!Hi},{test:function(t){if("function"!=typeof this.exec)return Xi.call(this,t);var e=this.exec(t);if(null!==e&&!g(e))throw new Error("RegExp exec method returned something other than an Object or null");return!!e}});var Yi=Bt("species"),Ji=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),Qi="$0"==="a".replace(/./,"$0"),Zi=Bt("replace"),ta=!!/./[Zi]&&""===/./[Zi]("a","$0"),ea=!o(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),ra=function(t,e,r,n){var i=Bt(t),a=!o(function(){var e={};return e[i]=function(){return 7},7!=""[t](e)}),u=a&&!o(function(){var e=!1,r=/a/;return"split"===t&&((r={}).constructor={},r.constructor[Yi]=function(){return r},r.flags="",r[i]=/./[i]),r.exec=function(){return e=!0,null},r[i](""),!e});if(!a||!u||"replace"===t&&(!Ji||!Qi||ta)||"split"===t&&!ea){var c=/./[i],s=r(i,""[t],function(t,e,r,n,o){return e.exec===Gi?a&&!o?{done:!0,value:c.call(e,r,n)}:{done:!0,value:t.call(r,e,n)}:{done:!1}},{REPLACE_KEEPS_$0:Qi,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:ta}),f=s[1];et(String.prototype,t,s[0]),et(RegExp.prototype,i,2==e?function(t,e){return f.call(t,this,e)}:function(t){return f.call(t,this)})}n&&_(RegExp.prototype[i],"sham",!0)},na=Ee.charAt,oa=function(t,e,r){return e+(r?na(t,e).length:1)},ia=function(t,e){var r=t.exec;if("function"==typeof r){var n=r.call(t,e);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==l(t))throw TypeError("RegExp#exec called on incompatible receiver");return Gi.call(t,e)};ra("match",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=x(t),i=String(this);if(!o.global)return ia(o,i);var a=o.unicode;o.lastIndex=0;for(var u,c=[],s=0;null!==(u=ia(o,i));){var f=String(u[0]);c[s]=f,""===f&&(o.lastIndex=oa(i,st(o.lastIndex),a)),s++}return 0===s?null:c}]});var aa=Math.floor,ua="".replace,ca=/\\$([$&\'`]|\\d\\d?|<[^>]*>)/g,sa=/\\$([$&\'`]|\\d\\d?)/g,fa=function(t,e,r,n,o,i){var a=r+t.length,u=n.length,c=sa;return void 0!==o&&(o=Mt(o),c=ca),ua.call(i,c,function(i,c){var s;switch(c.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"\'":return e.slice(a);case"<":s=o[c.slice(1,-1)];break;default:var f=+c;if(0===f)return i;if(f>u){var l=aa(f/10);return 0===l?i:l<=u?void 0===n[l-1]?c.charAt(1):n[l-1]+c.charAt(1):i}s=n[f-1]}return void 0===s?"":s})},la=Math.max,ha=Math.min;ra("replace",2,function(t,e,r,n){var o=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,i=n.REPLACE_KEEPS_$0,a=o?"$":"$0";return[function(r,n){var o=d(this),i=null==r?void 0:r[t];return void 0!==i?i.call(r,o,n):e.call(String(o),r,n)},function(t,n){if(!o&&i||"string"==typeof n&&-1===n.indexOf(a)){var u=r(e,t,this,n);if(u.done)return u.value}var c=x(t),s=String(this),f="function"==typeof n;f||(n=String(n));var l=c.global;if(l){var h=c.unicode;c.lastIndex=0}for(var p=[];;){var d=ia(c,s);if(null===d)break;if(p.push(d),!l)break;""===String(d[0])&&(c.lastIndex=oa(s,st(c.lastIndex),h))}for(var v,g="",y=0,m=0;m<p.length;m++){d=p[m];for(var b=String(d[0]),E=la(ha(ut(d.index),s.length),0),S=[],w=1;w<d.length;w++)S.push(void 0===(v=d[w])?v:String(v));var R=d.groups;if(f){var T=[b].concat(S,E,s);void 0!==R&&T.push(R);var O=String(n.apply(void 0,T))}else O=fa(b,s,E,S,R,n);E>=y&&(g+=s.slice(y,E)+O,y=E+b.length)}return g+s.slice(y)}]}),ra("search",1,function(t,e,r){return[function(e){var r=d(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,r):new RegExp(e)[t](String(r))},function(t){var n=r(e,t,this);if(n.done)return n.value;var o=x(t),i=String(this),a=o.lastIndex;$n(a,0)||(o.lastIndex=0);var u=ia(o,i);return $n(o.lastIndex,a)||(o.lastIndex=a),null===u?-1:u.index}]});var pa=[].push,da=Math.min,va=4294967295,ga=!o(function(){return!RegExp(va,"y")});ra("split",2,function(t,e,r){var n;return n="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,r){var n=String(d(this)),o=void 0===r?va:r>>>0;if(0===o)return[];if(void 0===t)return[n];if(!Jn(t))return e.call(n,t,o);for(var i,a,u,c=[],s=0,f=new RegExp(t.source,(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":"")+"g");(i=Gi.call(f,n))&&!((a=f.lastIndex)>s&&(c.push(n.slice(s,i.index)),i.length>1&&i.index<n.length&&pa.apply(c,i.slice(1)),u=i[0].length,s=a,c.length>=o));)f.lastIndex===i.index&&f.lastIndex++;return s===n.length?!u&&f.test("")||c.push(""):c.push(n.slice(s)),c.length>o?c.slice(0,o):c}:"0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:e.call(this,t,r)}:e,[function(e,r){var o=d(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,o,r):n.call(String(o),e,r)},function(t,o){var i=r(n,t,this,o,n!==e);if(i.done)return i.value;var a=x(t),u=String(this),c=en(a,RegExp),s=a.unicode,f=new c(ga?a:"^(?:"+a.source+")",(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(ga?"y":"g")),l=void 0===o?va:o>>>0;if(0===l)return[];if(0===u.length)return null===ia(f,u)?[u]:[];for(var h=0,p=0,d=[];p<u.length;){f.lastIndex=ga?p:0;var v,g=ia(f,ga?u:u.slice(p));if(null===g||(v=da(st(f.lastIndex+(ga?0:p)),u.length))===h)p=oa(u,p,s);else{if(d.push(u.slice(h,p)),d.length===l)return d;for(var y=1;y<=g.length-1;y++)if(d.push(g[y]),d.length===l)return d;p=h=v}}return d.push(u.slice(h)),d}]},!ga);var ya,ma,ba=n.process,Ea=ba&&ba.versions,Sa=Ea&&Ea.v8;Sa?ma=(ya=Sa.split("."))[0]+ya[1]:ho&&(!(ya=ho.match(/Edge\\/(\\d+)/))||ya[1]>=74)&&(ya=ho.match(/Chrome\\/(\\d+)/))&&(ma=ya[1]);var wa=ma&&+ma,Ra=Bt("species"),Ta=Bt("isConcatSpreadable"),Oa=9007199254740991,xa="Maximum allowed index exceeded",Aa=wa>=51||!o(function(){var t=[];return t[Ta]=!1,t.concat()[0]!==t}),Ia=wa>=51||!o(function(){var t=[];return(t.constructor={})[Ra]=function(){return{foo:1}},1!==t.concat(Boolean).foo}),_a=function(t){if(!g(t))return!1;var e=t[Ta];return void 0!==e?!!e:re(t)};Pt({target:"Array",proto:!0,forced:!Aa||!Ia},{concat:function(t){var e,r,n,o,i,a=Mt(this),u=oe(a,0),c=0;for(e=-1,n=arguments.length;e<n;e++)if(_a(i=-1===e?a:arguments[e])){if(c+(o=st(i.length))>Oa)throw TypeError(xa);for(r=0;r<o;r++,c++)r in i&&Ze(u,c,i[r])}else{if(c>=Oa)throw TypeError(xa);Ze(u,c++,i)}return u.length=c,u}});var ja=bt.f,Pa={}.toString,Ma="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],Na={f:function(t){return Ma&&"[object Window]"==Pa.call(t)?function(t){try{return ja(t)}catch(t){return Ma.slice()}}(t):ja(v(t))}},Ua={f:Bt},ka=I.f,La=function(t){var e=rt.Symbol||(rt.Symbol={});b(e,t)||ka(e,t,{value:Ua.f(t)})},Da=ue.forEach,Ca=V("hidden"),Fa="Symbol",Ba=Bt("toPrimitive"),Wa=tt.set,za=tt.getterFor(Fa),Ga=Object.prototype,Ka=n.Symbol,$a=ot("JSON","stringify"),Va=O.f,qa=I.f,Ha=Na.f,Xa=c.f,Ya=W("symbols"),Ja=W("op-symbols"),Qa=W("string-to-symbol-registry"),Za=W("symbol-to-string-registry"),tu=W("wks"),eu=n.QObject,ru=!eu||!eu.prototype||!eu.prototype.findChild,nu=i&&o(function(){return 7!=Ht(qa({},"a",{get:function(){return qa(this,"a",{value:7}).a}})).a})?function(t,e,r){var n=Va(Ga,e);n&&delete Ga[e],qa(t,e,r),n&&t!==Ga&&qa(Ga,e,n)}:qa,ou=function(t,e){var r=Ya[t]=Ht(Ka.prototype);return Wa(r,{type:Fa,tag:t,description:e}),i||(r.description=e),r},iu=Lt?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof Ka},au=function(t,e,r){t===Ga&&au(Ja,e,r),x(t);var n=y(e,!0);return x(r),b(Ya,n)?(r.enumerable?(b(t,Ca)&&t[Ca][n]&&(t[Ca][n]=!1),r=Ht(r,{enumerable:s(0,!1)})):(b(t,Ca)||qa(t,Ca,s(1,{})),t[Ca][n]=!0),nu(t,n,r)):qa(t,n,r)},uu=function(t,e){x(t);var r=v(e),n=Wt(r).concat(lu(r));return Da(n,function(e){i&&!cu.call(r,e)||au(t,e,r[e])}),t},cu=function(t){var e=y(t,!0),r=Xa.call(this,e);return!(this===Ga&&b(Ya,e)&&!b(Ja,e))&&(!(r||!b(this,e)||!b(Ya,e)||b(this,Ca)&&this[Ca][e])||r)},su=function(t,e){var r=v(t),n=y(e,!0);if(r!==Ga||!b(Ya,n)||b(Ja,n)){var o=Va(r,n);return!o||!b(Ya,n)||b(r,Ca)&&r[Ca][n]||(o.enumerable=!0),o}},fu=function(t){var e=Ha(v(t)),r=[];return Da(e,function(t){b(Ya,t)||b(q,t)||r.push(t)}),r},lu=function(t){var e=t===Ga,r=Ha(e?Ja:v(t)),n=[];return Da(r,function(t){!b(Ya,t)||e&&!b(Ga,t)||n.push(Ya[t])}),n};if(kt||(et((Ka=function(){if(this instanceof Ka)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=K(t),r=function(t){this===Ga&&r.call(Ja,t),b(this,Ca)&&b(this[Ca],e)&&(this[Ca][e]=!1),nu(this,e,s(1,t))};return i&&ru&&nu(Ga,e,{configurable:!0,set:r}),ou(e,t)}).prototype,"toString",function(){return za(this).tag}),et(Ka,"withoutSetter",function(t){return ou(K(t),t)}),c.f=cu,I.f=au,O.f=su,bt.f=Na.f=fu,Et.f=lu,Ua.f=function(t){return ou(Bt(t),t)},i&&(qa(Ka.prototype,"description",{configurable:!0,get:function(){return za(this).description}}),et(Ga,"propertyIsEnumerable",cu,{unsafe:!0}))),Pt({global:!0,wrap:!0,forced:!kt,sham:!kt},{Symbol:Ka}),Da(Wt(tu),function(t){La(t)}),Pt({target:Fa,stat:!0,forced:!kt},{for:function(t){var e=String(t);if(b(Qa,e))return Qa[e];var r=Ka(e);return Qa[e]=r,Za[r]=e,r},keyFor:function(t){if(!iu(t))throw TypeError(t+" is not a symbol");if(b(Za,t))return Za[t]},useSetter:function(){ru=!0},useSimple:function(){ru=!1}}),Pt({target:"Object",stat:!0,forced:!kt,sham:!i},{create:function(t,e){return void 0===e?Ht(t):uu(Ht(t),e)},defineProperty:au,defineProperties:uu,getOwnPropertyDescriptor:su}),Pt({target:"Object",stat:!0,forced:!kt},{getOwnPropertyNames:fu,getOwnPropertySymbols:lu}),Pt({target:"Object",stat:!0,forced:o(function(){Et.f(1)})},{getOwnPropertySymbols:function(t){return Et.f(Mt(t))}}),$a){var hu=!kt||o(function(){var t=Ka();return"[null]"!=$a([t])||"{}"!=$a({a:t})||"{}"!=$a(Object(t))});Pt({target:"JSON",stat:!0,forced:hu},{stringify:function(t,e,r){for(var n,o=[t],i=1;arguments.length>i;)o.push(arguments[i++]);if(n=e,(g(e)||void 0!==t)&&!iu(t))return re(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!iu(e))return e}),o[1]=e,$a.apply(null,o)}})}Ka.prototype[Ba]||_(Ka.prototype,Ba,Ka.prototype.valueOf),je(Ka,Fa),q[Ca]=!0,La("asyncIterator");var pu=I.f,du=n.Symbol;if(i&&"function"==typeof du&&(!("description"in du.prototype)||void 0!==du().description)){var vu={},gu=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof gu?new du(t):void 0===t?du():du(t);return""===t&&(vu[e]=!0),e};wt(gu,du);var yu=gu.prototype=du.prototype;yu.constructor=gu;var mu=yu.toString,bu="Symbol(test)"==String(du("test")),Eu=/^Symbol\\((.*)\\)[^)]+$/;pu(yu,"description",{configurable:!0,get:function(){var t=g(this)?this.valueOf():this,e=mu.call(t);if(b(vu,t))return"";var r=bu?e.slice(7,-1):e.replace(Eu,"$1");return""===r?void 0:r}}),Pt({global:!0,forced:!0},{Symbol:gu})}La("hasInstance"),La("isConcatSpreadable"),La("iterator"),La("match"),La("matchAll"),La("replace"),La("search"),La("species"),La("split"),La("toPrimitive"),La("toStringTag"),La("unscopables"),je(n.JSON,"JSON",!0),je(Math,"Math",!0),La("asyncDispose"),La("dispose"),La("observable"),La("patternMatch"),La("replaceAll");var Su=function(t,e){var r=this;if(!(r instanceof Su))return new Su(t,e);ke&&(r=ke(new Error(void 0),Te(r))),void 0!==e&&_(r,"message",String(e));var n=[];return Ir(t,n.push,{that:n}),_(r,"errors",n),r};Su.prototype=Ht(Error.prototype,{constructor:s(5,Su),message:s(5,""),name:s(5,"AggregateError")}),Pt({global:!0},{AggregateError:Su});var wu,Ru,Tu,Ou=n.Promise,xu=/(iphone|ipod|ipad).*applewebkit/i.test(ho),Au="process"==l(n.process),Iu=n.location,_u=n.setImmediate,ju=n.clearImmediate,Pu=n.process,Mu=n.MessageChannel,Nu=n.Dispatch,Uu=0,ku={},Lu=function(t){if(ku.hasOwnProperty(t)){var e=ku[t];delete ku[t],e()}},Du=function(t){return function(){Lu(t)}},Cu=function(t){Lu(t.data)},Fu=function(t){n.postMessage(t+"",Iu.protocol+"//"+Iu.host)};_u&&ju||(_u=function(t){for(var e=[],r=1;arguments.length>r;)e.push(arguments[r++]);return ku[++Uu]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},wu(Uu),Uu},ju=function(t){delete ku[t]},Au?wu=function(t){Pu.nextTick(Du(t))}:Nu&&Nu.now?wu=function(t){Nu.now(Du(t))}:Mu&&!xu?(Tu=(Ru=new Mu).port2,Ru.port1.onmessage=Cu,wu=Zt(Tu.postMessage,Tu,1)):n.addEventListener&&"function"==typeof postMessage&&!n.importScripts&&Iu&&"file:"!==Iu.protocol&&!o(Fu)?(wu=Fu,n.addEventListener("message",Cu,!1)):wu="onreadystatechange"in w("script")?function(t){Gt.appendChild(w("script")).onreadystatechange=function(){Gt.removeChild(this),Lu(t)}}:function(t){setTimeout(Du(t),0)});var Bu,Wu,zu,Gu,Ku,$u,Vu,qu,Hu={set:_u,clear:ju},Xu=/web0s(?!.*chrome)/i.test(ho),Yu=Hu.set,Ju=n.MutationObserver||n.WebKitMutationObserver,Qu=n.document,Zu=n.process,tc=n.Promise,ec=(0,O.f)(n,"queueMicrotask"),rc=ec&&ec.value;rc||(Bu=function(){var t,e;for(Au&&(t=Zu.domain)&&t.exit();Wu;){e=Wu.fn,Wu=Wu.next;try{e()}catch(t){throw Wu?Gu():zu=void 0,t}}zu=void 0,t&&t.enter()},xu||Au||Xu||!Ju||!Qu?tc&&tc.resolve?(Vu=tc.resolve(void 0),qu=Vu.then,Gu=function(){qu.call(Vu,Bu)}):Gu=Au?function(){Zu.nextTick(Bu)}:function(){Yu.call(n,Bu)}:(Ku=!0,$u=Qu.createTextNode(""),new Ju(Bu).observe($u,{characterData:!0}),Gu=function(){$u.data=Ku=!Ku}));var nc,oc,ic,ac,uc=rc||function(t){var e={fn:t,next:void 0};zu&&(zu.next=e),Wu||(Wu=e,Gu()),zu=e},cc=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw TypeError("Bad Promise constructor");e=t,r=n}),this.resolve=Qt(e),this.reject=Qt(r)},sc={f:function(t){return new cc(t)}},fc=function(t,e){if(x(t),g(e)&&e.constructor===t)return e;var r=sc.f(t);return(0,r.resolve)(e),r.promise},lc=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},hc=Hu.set,pc=Bt("species"),dc="Promise",vc=tt.get,gc=tt.set,yc=tt.getterFor(dc),mc=Ou,bc=n.TypeError,Ec=n.document,Sc=n.process,wc=ot("fetch"),Rc=sc.f,Tc=Rc,Oc=!!(Ec&&Ec.createEvent&&n.dispatchEvent),xc="function"==typeof PromiseRejectionEvent,Ac="unhandledrejection",Ic=_t(dc,function(){if(D(mc)===String(mc)){if(66===wa)return!0;if(!Au&&!xc)return!0}if(wa>=51&&/native code/.test(mc))return!1;var t=mc.resolve(1),e=function(t){t(function(){},function(){})};return(t.constructor={})[pc]=e,!(t.then(function(){})instanceof e)}),_c=Ic||!lr(function(t){mc.all(t).catch(function(){})}),jc=function(t){var e;return!(!g(t)||"function"!=typeof(e=t.then))&&e},Pc=function(t,e){if(!t.notified){t.notified=!0;var r=t.reactions;uc(function(){for(var n=t.value,o=1==t.state,i=0;r.length>i;){var a,u,c,s=r[i++],f=o?s.ok:s.fail,l=s.resolve,h=s.reject,p=s.domain;try{f?(o||(2===t.rejection&&kc(t),t.rejection=1),!0===f?a=n:(p&&p.enter(),a=f(n),p&&(p.exit(),c=!0)),a===s.promise?h(bc("Promise-chain cycle")):(u=jc(a))?u.call(a,l,h):l(a)):h(n)}catch(t){p&&!c&&p.exit(),h(t)}}t.reactions=[],t.notified=!1,e&&!t.rejection&&Nc(t)})}},Mc=function(t,e,r){var o,i;Oc?((o=Ec.createEvent("Event")).promise=e,o.reason=r,o.initEvent(t,!1,!0),n.dispatchEvent(o)):o={promise:e,reason:r},!xc&&(i=n["on"+t])?i(o):t===Ac&&function(t,e){var r=n.console;r&&r.error&&(1===arguments.length?r.error(t):r.error(t,e))}("Unhandled promise rejection",r)},Nc=function(t){hc.call(n,function(){var e,r=t.facade,n=t.value;if(Uc(t)&&(e=lc(function(){Au?Sc.emit("unhandledRejection",n,r):Mc(Ac,r,n)}),t.rejection=Au||Uc(t)?2:1,e.error))throw e.value})},Uc=function(t){return 1!==t.rejection&&!t.parent},kc=function(t){hc.call(n,function(){var e=t.facade;Au?Sc.emit("rejectionHandled",e):Mc("rejectionhandled",e,t.value)})},Lc=function(t,e,r){return function(n){t(e,n,r)}},Dc=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Pc(t,!0))},Cc=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw bc("Promise can\'t be resolved itself");var n=jc(e);n?uc(function(){var r={done:!1};try{n.call(e,Lc(Cc,r,t),Lc(Dc,r,t))}catch(e){Dc(r,e,t)}}):(t.value=e,t.state=1,Pc(t,!1))}catch(e){Dc({done:!1},e,t)}}};Ic&&(mc=function(t){_r(this,mc,dc),Qt(t),nc.call(this);var e=vc(this);try{t(Lc(Cc,e),Lc(Dc,e))}catch(t){Dc(e,t)}},(nc=function(t){gc(this,{type:dc,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Mr(mc.prototype,{then:function(t,e){var r=yc(this),n=Rc(en(this,mc));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=Au?Sc.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&Pc(r,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),oc=function(){var t=new nc,e=vc(t);this.promise=t,this.resolve=Lc(Cc,e),this.reject=Lc(Dc,e)},sc.f=Rc=function(t){return t===mc||t===ic?new oc(t):Tc(t)},"function"==typeof Ou&&(ac=Ou.prototype.then,et(Ou.prototype,"then",function(t,e){var r=this;return new mc(function(t,e){ac.call(r,t,e)}).then(t,e)},{unsafe:!0}),"function"==typeof wc&&Pt({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return fc(mc,wc.apply(n,arguments))}}))),Pt({global:!0,wrap:!0,forced:Ic},{Promise:mc}),je(mc,dc,!1),Ur(dc),ic=ot(dc),Pt({target:dc,stat:!0,forced:Ic},{reject:function(t){var e=Rc(this);return e.reject.call(void 0,t),e.promise}}),Pt({target:dc,stat:!0,forced:Ic},{resolve:function(t){return fc(this,t)}}),Pt({target:dc,stat:!0,forced:_c},{all:function(t){var e=this,r=Rc(e),n=r.resolve,o=r.reject,i=lc(function(){var r=Qt(e.resolve),i=[],a=0,u=1;Ir(t,function(t){var c=a++,s=!1;i.push(void 0),u++,r.call(e,t).then(function(t){s||(s=!0,i[c]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise},race:function(t){var e=this,r=Rc(e),n=r.reject,o=lc(function(){var o=Qt(e.resolve);Ir(t,function(t){o.call(e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),Pt({target:"Promise",stat:!0},{allSettled:function(t){var e=this,r=sc.f(e),n=r.resolve,o=r.reject,i=lc(function(){var r=Qt(e.resolve),o=[],i=0,a=1;Ir(t,function(t){var u=i++,c=!1;o.push(void 0),a++,r.call(e,t).then(function(t){c||(c=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){c||(c=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var Fc="No one promise resolved";Pt({target:"Promise",stat:!0},{any:function(t){var e=this,r=sc.f(e),n=r.resolve,o=r.reject,i=lc(function(){var r=Qt(e.resolve),i=[],a=0,u=1,c=!1;Ir(t,function(t){var s=a++,f=!1;i.push(void 0),u++,r.call(e,t).then(function(t){f||c||(c=!0,n(t))},function(t){f||c||(f=!0,i[s]=t,--u||o(new(ot("AggregateError"))(i,Fc)))})}),--u||o(new(ot("AggregateError"))(i,Fc))});return i.error&&o(i.value),r.promise}});var Bc=!!Ou&&o(function(){Ou.prototype.finally.call({then:function(){}},function(){})});Pt({target:"Promise",proto:!0,real:!0,forced:Bc},{finally:function(t){var e=en(this,ot("Promise")),r="function"==typeof t;return this.then(r?function(r){return fc(e,t()).then(function(){return r})}:t,r?function(r){return fc(e,t()).then(function(){throw r})}:t)}}),"function"!=typeof Ou||Ou.prototype.finally||et(Ou.prototype,"finally",ot("Promise").prototype.finally),Pt({target:"Promise",stat:!0},{try:function(t){var e=sc.f(this),r=lc(t);return(r.error?e.reject:e.resolve)(r.value),e.promise}});var Wc,zc=ue.forEach,Gc=(Wc=[].forEach)&&o(function(){Wc.call(null,function(){throw 1},1)})?[].forEach:function(t){return zc(this,t,arguments.length>1?arguments[1]:void 0)};for(var Kc in Wr){var $c=n[Kc],Vc=$c&&$c.prototype;if(Vc&&Vc.forEach!==Gc)try{_(Vc,"forEach",Gc)}catch(t){Vc.forEach=Gc}}var qc="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==qc&&qc,Hc="URLSearchParams"in qc,Xc="Symbol"in qc&&"iterator"in Symbol,Yc="FileReader"in qc&&"Blob"in qc&&function(){try{return new Blob,!0}catch(t){return!1}}(),Jc="FormData"in qc,Qc="ArrayBuffer"in qc;if(Qc)var Zc=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],ts=ArrayBuffer.isView||function(t){return t&&Zc.indexOf(Object.prototype.toString.call(t))>-1};function es(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\\-#$%&\'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function rs(t){return"string"!=typeof t&&(t=String(t)),t}function ns(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return Xc&&(e[Symbol.iterator]=function(){return e}),e}function os(t){this.map={},t instanceof os?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function is(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function as(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function us(t){var e=new FileReader,r=as(e);return e.readAsArrayBuffer(t),r}function cs(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function ss(){return this.bodyUsed=!1,this._initBody=function(t){var e;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:Yc&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:Jc&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:Hc&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():Qc&&Yc&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=cs(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Qc&&(ArrayBuffer.prototype.isPrototypeOf(t)||ts(t))?this._bodyArrayBuffer=cs(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hc&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Yc&&(this.blob=function(){var t=is(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?is(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer)):this.blob().then(us)}),this.text=function(){var t=is(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=as(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n<e.length;n++)r[n]=String.fromCharCode(e[n]);return r.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},Jc&&(this.formData=function(){return this.text().then(hs)}),this.json=function(){return this.text().then(JSON.parse)},this}os.prototype.append=function(t,e){t=es(t),e=rs(e);var r=this.map[t];this.map[t]=r?r+", "+e:e},os.prototype.delete=function(t){delete this.map[es(t)]},os.prototype.get=function(t){return t=es(t),this.has(t)?this.map[t]:null},os.prototype.has=function(t){return this.map.hasOwnProperty(es(t))},os.prototype.set=function(t,e){this.map[es(t)]=rs(e)},os.prototype.forEach=function(t,e){for(var r in this.map)this.map.hasOwnProperty(r)&&t.call(e,this.map[r],r,this)},os.prototype.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),ns(t)},os.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),ns(t)},os.prototype.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),ns(t)},Xc&&(os.prototype[Symbol.iterator]=os.prototype.entries);var fs=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function ls(t,e){if(!(this instanceof ls))throw new TypeError(\'Please use the "new" operator, this DOM object constructor cannot be called as a function.\');var r,n,o=(e=e||{}).body;if(t instanceof ls){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new os(t.headers)),this.method=t.method,this.mode=t.mode,this.signal=t.signal,o||null==t._bodyInit||(o=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"same-origin",!e.headers&&this.headers||(this.headers=new os(e.headers)),this.method=(n=(r=e.method||this.method||"GET").toUpperCase(),fs.indexOf(n)>-1?n:r),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&o)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(o),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var i=/([?&])_=[^&]*/;i.test(this.url)?this.url=this.url.replace(i,"$1_="+(new Date).getTime()):this.url+=(/\\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}function hs(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\\+/g," "),o=r.join("=").replace(/\\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function ps(t,e){if(!(this instanceof ps))throw new TypeError(\'Please use the "new" operator, this DOM object constructor cannot be called as a function.\');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"",this.headers=new os(e.headers),this.url=e.url||"",this._initBody(t)}ls.prototype.clone=function(){return new ls(this,{body:this._bodyInit})},ss.call(ls.prototype),ss.call(ps.prototype),ps.prototype.clone=function(){return new ps(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new os(this.headers),url:this.url})},ps.error=function(){var t=new ps(null,{status:0,statusText:""});return t.type="error",t};var ds=[301,302,303,307,308];ps.redirect=function(t,e){if(-1===ds.indexOf(e))throw new RangeError("Invalid status code");return new ps(null,{status:e,headers:{location:t}})};var vs=qc.DOMException;try{new vs}catch(t){(vs=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),vs.prototype.constructor=vs}function gs(t,e){return new Promise(function(r,n){var o=new ls(t,e);if(o.signal&&o.signal.aborted)return n(new vs("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new os,t.replace(/\\r?\\n[\\t ]+/g," ").split("\\r").map(function(t){return 0===t.indexOf("\\n")?t.substr(1,t.length):t}).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL");var o="response"in i?i.response:i.responseText;setTimeout(function(){r(new ps(o,n))},0)},i.onerror=function(){setTimeout(function(){n(new TypeError("Network request failed"))},0)},i.ontimeout=function(){setTimeout(function(){n(new TypeError("Network request failed"))},0)},i.onabort=function(){setTimeout(function(){n(new vs("Aborted","AbortError"))},0)},i.open(o.method,function(t){try{return""===t&&qc.location.href?qc.location.href:t}catch(e){return t}}(o.url),!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&(Yc?i.responseType="blob":Qc&&o.headers.get("Content-Type")&&-1!==o.headers.get("Content-Type").indexOf("application/octet-stream")&&(i.responseType="arraybuffer")),!e||"object"!=typeof e.headers||e.headers instanceof os?o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}):Object.getOwnPropertyNames(e.headers).forEach(function(t){i.setRequestHeader(t,rs(e.headers[t]))}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}gs.polyfill=!0,qc.fetch||(qc.fetch=gs,qc.Headers=os,qc.Request=ls,qc.Response=ps),function(t){var e=function(){try{return!!Symbol.iterator}catch(t){return!1}}(),r=function(t){var r={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return e&&(r[Symbol.iterator]=function(){return r}),r},n=function(t){return encodeURIComponent(t).replace(/%20/g,"+")},o=function(t){return decodeURIComponent(String(t).replace(/\\+/g," "))};(function(){try{var e=t.URLSearchParams;return"a=1"===new e("?a=1").toString()&&"function"==typeof e.prototype.set&&"function"==typeof e.prototype.entries}catch(t){return!1}})()||function(){var o=function t(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var r=typeof e;if("undefined"===r);else if("string"===r)""!==e&&this._fromString(e);else if(e instanceof t){var n=this;e.forEach(function(t,e){n.append(e,t)})}else{if(null===e||"object"!==r)throw new TypeError("Unsupported input\'s type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var o=0;o<e.length;o++){var i=e[o];if("[object Array]"!==Object.prototype.toString.call(i)&&2===i.length)throw new TypeError("Expected [string, any] as entry at index "+o+" of URLSearchParams\'s input");this.append(i[0],i[1])}else for(var a in e)e.hasOwnProperty(a)&&this.append(a,e[a])}},i=o.prototype;i.append=function(t,e){t in this._entries?this._entries[t].push(String(e)):this._entries[t]=[String(e)]},i.delete=function(t){delete this._entries[t]},i.get=function(t){return t in this._entries?this._entries[t][0]:null},i.getAll=function(t){return t in this._entries?this._entries[t].slice(0):[]},i.has=function(t){return t in this._entries},i.set=function(t,e){this._entries[t]=[String(e)]},i.forEach=function(t,e){var r;for(var n in this._entries)if(this._entries.hasOwnProperty(n)){r=this._entries[n];for(var o=0;o<r.length;o++)t.call(e,r[o],n,this)}},i.keys=function(){var t=[];return this.forEach(function(e,r){t.push(r)}),r(t)},i.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),r(t)},i.entries=function(){var t=[];return this.forEach(function(e,r){t.push([r,e])}),r(t)},e&&(i[Symbol.iterator]=i.entries),i.toString=function(){var t=[];return this.forEach(function(e,r){t.push(n(r)+"="+n(e))}),t.join("&")},t.URLSearchParams=o}();var i=t.URLSearchParams.prototype;"function"!=typeof i.sort&&(i.sort=function(){var t=this,e=[];this.forEach(function(r,n){e.push([n,r]),t._entries||t.delete(n)}),e.sort(function(t,e){return t[0]<e[0]?-1:t[0]>e[0]?1:0}),t._entries&&(t._entries={});for(var r=0;r<e.length;r++)this.append(e[r][0],e[r][1])}),"function"!=typeof i._fromString&&Object.defineProperty(i,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(t){if(this._entries)this._entries={};else{var e=[];this.forEach(function(t,r){e.push(r)});for(var r=0;r<e.length;r++)this.delete(e[r])}var n,i=(t=t.replace(/^\\?/,"")).split("&");for(r=0;r<i.length;r++)n=i[r].split("="),this.append(o(n[0]),n.length>1?o(n[1]):"")}})}(void 0!==t?t:"undefined"!=typeof window?window:"undefined"!=typeof self?self:t),function(t){var e,r,n;if(function(){try{var e=new t.URL("b","http://a");return e.pathname="c d","http://a/c%20d"===e.href&&e.searchParams}catch(t){return!1}}()||(e=t.URL,n=(r=function(e,r){"string"!=typeof e&&(e=String(e)),r&&"string"!=typeof r&&(r=String(r));var n,o=document;if(r&&(void 0===t.location||r!==t.location.href)){r=r.toLowerCase(),(n=(o=document.implementation.createHTMLDocument("")).createElement("base")).href=r,o.head.appendChild(n);try{if(0!==n.href.indexOf(r))throw new Error(n.href)}catch(t){throw new Error("URL unable to set base "+r+" due to "+t)}}var i=o.createElement("a");i.href=e,n&&(o.body.appendChild(i),i.href=i.href);var a=o.createElement("input");if(a.type="url",a.value=e,":"===i.protocol||!/:/.test(i.href)||!a.checkValidity()&&!r)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:i});var u=new t.URLSearchParams(this.search),c=!0,s=!0,f=this;["append","delete","set"].forEach(function(t){var e=u[t];u[t]=function(){e.apply(u,arguments),c&&(s=!1,f.search=u.toString(),s=!0)}}),Object.defineProperty(this,"searchParams",{value:u,enumerable:!0});var l=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==l&&(l=this.search,s&&(c=!1,this.searchParams._fromString(this.search),c=!0))}})}).prototype,["hash","host","hostname","port","protocol"].forEach(function(t){!function(t){Object.defineProperty(n,t,{get:function(){return this._anchorElement[t]},set:function(e){this._anchorElement[t]=e},enumerable:!0})}(t)}),Object.defineProperty(n,"search",{get:function(){return this._anchorElement.search},set:function(t){this._anchorElement.search=t,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(n,{toString:{get:function(){var t=this;return function(){return t.href}}},href:{get:function(){return this._anchorElement.href.replace(/\\?$/,"")},set:function(t){this._anchorElement.href=t,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\\/?)/,"/")},set:function(t){this._anchorElement.pathname=t},enumerable:!0},origin:{get:function(){return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(this._anchorElement.port!={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol]&&""!==this._anchorElement.port?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(t){},enumerable:!0},username:{get:function(){return""},set:function(t){},enumerable:!0}}),r.createObjectURL=function(t){return e.createObjectURL.apply(e,arguments)},r.revokeObjectURL=function(t){return e.revokeObjectURL.apply(e,arguments)},t.URL=r),void 0!==t.location&&!("origin"in t.location)){var o=function(){return t.location.protocol+"//"+t.location.hostname+(t.location.port?":"+t.location.port:"")};try{Object.defineProperty(t.location,"origin",{get:o,enumerable:!0})}catch(e){setInterval(function(){t.location.origin=o()},100)}}}(void 0!==t?t:"undefined"!=typeof window?window:"undefined"!=typeof self?self:t);var ys=Object.getOwnPropertySymbols,ms=Object.prototype.hasOwnProperty,bs=Object.prototype.propertyIsEnumerable;function Es(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}var Ss=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=Es(t),i=1;i<arguments.length;i++){for(var a in r=Object(arguments[i]))ms.call(r,a)&&(o[a]=r[a]);if(ys){n=ys(r);for(var u=0;u<n.length;u++)bs.call(r,n[u])&&(o[n[u]]=r[n[u]])}}return o};Object.assign=Ss}();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9qdXN0aWNlNDAtdG9vbC8uL25vZGVfbW9kdWxlcy9nYXRzYnktbGVnYWN5LXBvbHlmaWxscy9kaXN0L3BvbHlmaWxscy5qcz81NTc0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksc0dBQXNHLHFCQUFNLENBQUMscUJBQU0sa0NBQWtDLGtCQUFrQixZQUFZLGlCQUFpQix1QkFBdUIsa0JBQWtCLDJGQUEyRixJQUFJLHNCQUFzQixrQkFBa0IsMEJBQTBCLHdKQUF3SixZQUFZLDRDQUE0QyxJQUFJLFlBQVksU0FBUyxVQUFVLGlCQUFpQixrQ0FBa0MsSUFBSSxlQUFlLFVBQVUsS0FBSyxNQUFNLDJEQUEyRCxjQUFjLElBQUksZ0JBQWdCLGdCQUFnQix3QkFBd0IsR0FBRyxpQkFBaUIsT0FBTywrREFBK0QsS0FBSyx3QkFBd0IsNkJBQTZCLDJCQUEyQiwyQ0FBMkMsY0FBYyw0Q0FBNEMsc0JBQXNCLHNEQUFzRCxTQUFTLGVBQWUsZUFBZSxlQUFlLHVEQUF1RCxpQkFBaUIsa0JBQWtCLFFBQVEsaUVBQWlFLDZEQUE2RCxrRUFBa0UsMkRBQTJELEtBQUssZ0NBQWdDLG1CQUFtQix1REFBdUQsK0JBQStCLHFCQUFxQiw4Q0FBOEMsZUFBZSxVQUFVLElBQUksdUNBQXVDLG9CQUFvQiwwQkFBMEIsY0FBYyxVQUFVLHlDQUF5QyxlQUFlLHdEQUF3RCxTQUFTLDRCQUE0QixzQkFBc0IsNkJBQTZCLGdCQUFnQixVQUFVLG1FQUFtRSxxQ0FBcUMscUJBQXFCLHVCQUF1QixpQkFBaUIsZ0JBQWdCLGlCQUFpQixJQUFJLFNBQVMsU0FBUyxPQUFPLFNBQVMsc0NBQXNDLHNCQUFzQixpRUFBaUUsaUJBQWlCLEVBQUUsOEdBQThHLHlCQUF5QixrQ0FBa0MsRUFBRSx1QkFBdUIsK0VBQStFLEVBQUUsb0NBQW9DLGtFQUFrRSwyQkFBMkIseUJBQXlCLE1BQU0sTUFBTSxrRUFBa0UsZ0JBQWdCLGtDQUFrQyxlQUFlLHVCQUF1QixlQUFlLG9CQUFv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LFlBQVksb0JBQW9CLFNBQVMsMkRBQTJELE9BQU8sdURBQXVELGNBQWMsU0FBUyxVQUFVLCtCQUErQix3QkFBd0IsbUJBQW1CLEtBQUssOERBQThELE9BQU8sUUFBUSxZQUFZLFdBQVcsd0NBQXdDLFVBQVUsaUJBQWlCIiwiZmlsZSI6Ijg2MDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24oKXt2YXIgdD1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OlwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6e307ZnVuY3Rpb24gZSh0LGUscil7cmV0dXJuIHQocj17cGF0aDplLGV4cG9ydHM6e30scmVxdWlyZTpmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcIkR5bmFtaWMgcmVxdWlyZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IEByb2xsdXAvcGx1Z2luLWNvbW1vbmpzXCIpfSgpfX0sci5leHBvcnRzKSxyLmV4cG9ydHN9dmFyIHI9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuTWF0aD09TWF0aCYmdH0sbj1yKFwib2JqZWN0XCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8cihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxyKFwib2JqZWN0XCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8cihcIm9iamVjdFwiPT10eXBlb2YgdCYmdCl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSxvPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4hIXQoKX1jYXRjaCh0KXtyZXR1cm4hMH19LGk9IW8oZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSksYT17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsYz17Zjp1JiYhYS5jYWxsKHsxOjJ9LDEpP2Z1bmN0aW9uKHQpe3ZhciBlPXUodGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06YX0scz1mdW5jdGlvbih0LGUpe3JldHVybntlbnVtZXJhYmxlOiEoMSZ0KSxjb25maWd1cmFibGU6ISgyJnQpLHdyaXRhYmxlOiEoNCZ0KSx2YWx1ZTplfX0sZj17fS50b1N0cmluZyxsPWZ1bmN0aW9uKHQpe3JldHVybiBmLmNhbGwodCkuc2xpY2UoOCwtMSl9LGg9XCJcIi5zcGxpdCxwPW8oZnVuY3Rpb24oKXtyZXR1cm4hT2JqZWN0KFwielwiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pP2Z1bmN0aW9uKHQpe3JldHVyblwiU3RyaW5nXCI9PWwodCk/aC5jYWxsKHQsXCJcIik6T2JqZWN0KHQpfTpPYmplY3QsZD1mdW5jdGlvbih0KXtpZihudWxsPT10KXRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiK3QpO3JldHVybiB0fSx2PWZ1bmN0aW9uKHQpe3JldHVybiBwKGQodCkpfSxnPWZ1bmN0aW9uKHQpe3JldHVyblwib2JqZWN0XCI9PXR5cGVvZiB0P251bGwhPT10OlwiZnVuY3Rpb25cIj09dHlwZW9mIHR9LHk9ZnVuY3Rpb24odCxlKXtpZighZyh0KSlyZXR1cm4gdDt2YXIgcixuO2lmKGUmJlwiZnVuY3Rpb25cIj09dHlwZW9mKHI9dC50b1N0cmluZykmJiFnKG49ci5jYWxsKHQpKSlyZXR1cm4gbjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZihyPXQudmFsdWVPZikmJiFnKG49ci5jYWxsKHQpKSlyZXR1cm4gbjtpZighZSYmXCJmdW5jdGlvblwiPT10eXBlb2Yocj10LnRvU3RyaW5nKSYmIWcobj1yLmNhbGwodCkpKXJldHVybiBuO3Rocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKX0sbT17fS5oYXNPd25Qcm9wZXJ0eSxiPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG0uY2FsbCh0LGUpfSxFPW4uZG9jdW1lbnQsUz1nKEUpJiZnKEUuY3JlYXRlRWxlbWVudCksdz1mdW5jdGlvbih0KXtyZXR1cm4gUz9FLmNyZWF0ZUVsZW1lbnQodCk6e319LFI9IWkmJiFvKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3KFwiZGl2XCIpLFwiYVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSksVD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLE89e2Y6aT9UOmZ1bmN0aW9uKHQsZSl7aWYodD12KHQpLGU9eShlLCEwKSxSKXRyeXtyZXR1cm4gVCh0LGUpfWNhdGNoKHQpe31pZihiKHQsZSkpcmV0dXJuIHMoIWMuZi5jYWxsKHQsZSksdFtlXSl9fSx4PWZ1bmN0aW9uKHQpe2lmKCFnKHQpKXRocm93IFR5cGVFcnJvcihTdHJpbmcodCkrXCIgaXMgbm90IGFuIG9iamVjdFwiKTtyZXR1cm4gdH0sQT1PYmplY3QuZGVmaW5lUHJvcGVydHksST17ZjppP0E6ZnVuY3Rpb24odCxlLHIpe2lmKHgodCksZT15KGUsITApLHgociksUil0cnl7cmV0dXJuIEEodCxlLHIpfWNhdGNoKHQpe31pZihcImdldFwiaW4gcnx8XCJzZXRcImluIHIpdGhyb3cgVHlwZUVycm9yKFwiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWRcIik7cmV0dXJuXCJ2YWx1ZVwiaW4gciYmKHRbZV09ci52YWx1ZSksdH19LF89aT9mdW5jdGlvbih0LGUscil7cmV0dXJuIEkuZih0LGUscygxLHIpKX06ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0W2VdPXIsdH0saj1mdW5jdGlvbih0LGUpe3RyeXtfKG4sdCxlKX1jYXRjaChyKXtuW3RdPWV9cmV0dXJuIGV9LFA9XCJfX2NvcmUtanNfc2hhcmVkX19cIixNPW5bUF18fGooUCx7fSksTj1GdW5jdGlvbi50b1N0cmluZztcImZ1bmN0aW9uXCIhPXR5cGVvZiBNLmluc3BlY3RTb3VyY2UmJihNLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIE4uY2FsbCh0KX0pO3ZhciBVLGssTCxEPU0uaW5zcGVjdFNvdXJjZSxDPW4uV2Vha01hcCxGPVwiZnVuY3Rpb25cIj09dHlwZW9mIEMmJi9uYXRpdmUgY29kZS8udGVzdChEKEMpKSxCPSExLFc9ZShmdW5jdGlvbih0KXsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1bdF18fChNW3RdPXZvaWQgMCE9PWU/ZTp7fSl9KShcInZlcnNpb25zXCIsW10pLnB1c2goe3ZlcnNpb246XCIzLjkuMFwiLG1vZGU6XCJnbG9iYWxcIixjb3B5cmlnaHQ6XCLCqSAyMDIxIERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpXCJ9KX0pLHo9MCxHPU1hdGgucmFuZG9tKCksSz1mdW5jdGlvbih0KXtyZXR1cm5cIlN5bWJvbChcIitTdHJpbmcodm9pZCAwPT09dD9cIlwiOnQpK1wiKV9cIisoKyt6K0cpLnRvU3RyaW5nKDM2KX0sJD1XKFwia2V5c1wiKSxWPWZ1bmN0aW9uKHQpe3JldHVybiAkW3RdfHwoJFt0XT1LKHQpKX0scT17fTtpZihGKXt2YXIgSD1NLnN0YXRlfHwoTS5zdGF0ZT1uZXcoMCxuLldlYWtNYXApKSxYPUguZ2V0LFk9SC5oYXMsSj1ILnNldDtVPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZmFjYWRlPXQsSi5jYWxsKEgsdCxlKSxlfSxrPWZ1bmN0aW9uKHQpe3JldHVybiBYLmNhbGwoSCx0KXx8e319LEw9ZnVuY3Rpb24odCl7cmV0dXJuIFkuY2FsbChILHQpfX1lbHNle3ZhciBRPVYoXCJzdGF0ZVwiKTtxW1FdPSEwLFU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5mYWNhZGU9dCxfKHQsUSxlKSxlfSxrPWZ1bmN0aW9uKHQpe3JldHVybiBiKHQsUSk/dFtRXTp7fX0sTD1mdW5jdGlvbih0KXtyZXR1cm4gYih0LFEpfX12YXIgWix0dD17c2V0OlUsZ2V0OmssaGFzOkwsZW5mb3JjZTpmdW5jdGlvbih0KXtyZXR1cm4gTCh0KT9rKHQpOlUodCx7fSl9LGdldHRlckZvcjpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI7aWYoIWcoZSl8fChyPWsoZSkpLnR5cGUhPT10KXRocm93IFR5cGVFcnJvcihcIkluY29tcGF0aWJsZSByZWNlaXZlciwgXCIrdCtcIiByZXF1aXJlZFwiKTtyZXR1cm4gcn19fSxldD1lKGZ1bmN0aW9uKHQpe3ZhciBlPXR0LmdldCxyPXR0LmVuZm9yY2Usbz1TdHJpbmcoU3RyaW5nKS5zcGxpdChcIlN0cmluZ1wiKTsodC5leHBvcnRzPWZ1bmN0aW9uKHQsZSxpLGEpe3ZhciB1LGM9ISFhJiYhIWEudW5zYWZlLHM9ISFhJiYhIWEuZW51bWVyYWJsZSxmPSEhYSYmISFhLm5vVGFyZ2V0R2V0O1wiZnVuY3Rpb25cIj09dHlwZW9mIGkmJihcInN0cmluZ1wiIT10eXBlb2YgZXx8YihpLFwibmFtZVwiKXx8XyhpLFwibmFtZVwiLGUpLCh1PXIoaSkpLnNvdXJjZXx8KHUuc291cmNlPW8uam9pbihcInN0cmluZ1wiPT10eXBlb2YgZT9lOlwiXCIpKSksdCE9PW4/KGM/IWYmJnRbZV0mJihzPSEwKTpkZWxldGUgdFtlXSxzP3RbZV09aTpfKHQsZSxpKSk6cz90W2VdPWk6aihlLGkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLFwidG9TdHJpbmdcIixmdW5jdGlvbigpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMmJmUodGhpcykuc291cmNlfHxEKHRoaXMpfSl9KSxydD1uLG50PWZ1bmN0aW9uKHQpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dDp2b2lkIDB9LG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9udChydFt0XSl8fG50KG5bdF0pOnJ0W3RdJiZydFt0XVtlXXx8blt0XSYmblt0XVtlXX0saXQ9TWF0aC5jZWlsLGF0PU1hdGguZmxvb3IsdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGlzTmFOKHQ9K3QpPzA6KHQ+MD9hdDppdCkodCl9LGN0PU1hdGgubWluLHN0PWZ1bmN0aW9uKHQpe3JldHVybiB0PjA/Y3QodXQodCksOTAwNzE5OTI1NDc0MDk5MSk6MH0sZnQ9TWF0aC5tYXgsbHQ9TWF0aC5taW4saHQ9ZnVuY3Rpb24odCxlKXt2YXIgcj11dCh0KTtyZXR1cm4gcjwwP2Z0KHIrZSwwKTpsdChyLGUpfSxwdD1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4pe3ZhciBvLGk9dihlKSxhPXN0KGkubGVuZ3RoKSx1PWh0KG4sYSk7aWYodCYmciE9cil7Zm9yKDthPnU7KWlmKChvPWlbdSsrXSkhPW8pcmV0dXJuITB9ZWxzZSBmb3IoO2E+dTt1KyspaWYoKHR8fHUgaW4gaSkmJmlbdV09PT1yKXJldHVybiB0fHx1fHwwO3JldHVybiF0JiYtMX19LGR0PXtpbmNsdWRlczpwdCghMCksaW5kZXhPZjpwdCghMSl9LHZ0PWR0LmluZGV4T2YsZ3Q9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXYodCksbz0wLGk9W107Zm9yKHIgaW4gbikhYihxLHIpJiZiKG4scikmJmkucHVzaChyKTtmb3IoO2UubGVuZ3RoPm87KWIobixyPWVbbysrXSkmJih+dnQoaSxyKXx8aS5wdXNoKHIpKTtyZXR1cm4gaX0seXQ9W1wiY29uc3RydWN0b3JcIixcImhhc093blByb3BlcnR5XCIsXCJpc1Byb3RvdHlwZU9mXCIsXCJwcm9wZXJ0eUlzRW51bWVyYWJsZVwiLFwidG9Mb2NhbGVTdHJpbmdcIixcInRvU3RyaW5nXCIsXCJ2YWx1ZU9mXCJdLG10PXl0LmNvbmNhdChcImxlbmd0aFwiLFwicHJvdG90eXBlXCIpLGJ0PXtmOk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbih0KXtyZXR1cm4gZ3QodCxtdCl9fSxFdD17ZjpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSxTdD1vdChcIlJlZmxlY3RcIixcIm93bktleXNcIil8fGZ1bmN0aW9uKHQpe3ZhciBlPWJ0LmYoeCh0KSkscj1FdC5mO3JldHVybiByP2UuY29uY2F0KHIodCkpOmV9LHd0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVN0KGUpLG49SS5mLG89Ty5mLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGE9cltpXTtiKHQsYSl8fG4odCxhLG8oZSxhKSl9fSxSdD0vI3xcXC5wcm90b3R5cGVcXC4vLFR0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9eHRbT3QodCldO3JldHVybiByPT1JdHx8ciE9QXQmJihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP28oZSk6ISFlKX0sT3Q9VHQubm9ybWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCkucmVwbGFjZShSdCxcIi5cIikudG9Mb3dlckNhc2UoKX0seHQ9VHQuZGF0YT17fSxBdD1UdC5OQVRJVkU9XCJOXCIsSXQ9VHQuUE9MWUZJTEw9XCJQXCIsX3Q9VHQsanQ9Ty5mLFB0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbyxpLGEsdSxjPXQudGFyZ2V0LHM9dC5nbG9iYWwsZj10LnN0YXQ7aWYocj1zP246Zj9uW2NdfHxqKGMse30pOihuW2NdfHx7fSkucHJvdG90eXBlKWZvcihvIGluIGUpe2lmKGE9ZVtvXSxpPXQubm9UYXJnZXRHZXQ/KHU9anQocixvKSkmJnUudmFsdWU6cltvXSwhX3Qocz9vOmMrKGY/XCIuXCI6XCIjXCIpK28sdC5mb3JjZWQpJiZ2b2lkIDAhPT1pKXtpZih0eXBlb2YgYT09dHlwZW9mIGkpY29udGludWU7d3QoYSxpKX0odC5zaGFtfHxpJiZpLnNoYW0pJiZfKGEsXCJzaGFtXCIsITApLGV0KHIsbyxhLHQpfX0sTXQ9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdChkKHQpKX0sTnQ9TWF0aC5taW4sVXQ9W10uY29weVdpdGhpbnx8ZnVuY3Rpb24odCxlKXt2YXIgcj1NdCh0aGlzKSxuPXN0KHIubGVuZ3RoKSxvPWh0KHQsbiksaT1odChlLG4pLGE9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsdT1OdCgodm9pZCAwPT09YT9uOmh0KGEsbikpLWksbi1vKSxjPTE7Zm9yKGk8byYmbzxpK3UmJihjPS0xLGkrPXUtMSxvKz11LTEpO3UtLSA+MDspaSBpbiByP3Jbb109cltpXTpkZWxldGUgcltvXSxvKz1jLGkrPWM7cmV0dXJuIHJ9LGt0PSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIW8oZnVuY3Rpb24oKXtyZXR1cm4hU3RyaW5nKFN5bWJvbCgpKX0pLEx0PWt0JiYhU3ltYm9sLnNoYW0mJlwic3ltYm9sXCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IsRHQ9VyhcIndrc1wiKSxDdD1uLlN5bWJvbCxGdD1MdD9DdDpDdCYmQ3Qud2l0aG91dFNldHRlcnx8SyxCdD1mdW5jdGlvbih0KXtyZXR1cm4gYihEdCx0KXx8KER0W3RdPWt0JiZiKEN0LHQpP0N0W3RdOkZ0KFwiU3ltYm9sLlwiK3QpKSxEdFt0XX0sV3Q9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3JldHVybiBndCh0LHl0KX0senQ9aT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbih0LGUpe3godCk7Zm9yKHZhciByLG49V3QoZSksbz1uLmxlbmd0aCxpPTA7bz5pOylJLmYodCxyPW5baSsrXSxlW3JdKTtyZXR1cm4gdH0sR3Q9b3QoXCJkb2N1bWVudFwiLFwiZG9jdW1lbnRFbGVtZW50XCIpLEt0PVYoXCJJRV9QUk9UT1wiKSwkdD1mdW5jdGlvbigpe30sVnQ9ZnVuY3Rpb24odCl7cmV0dXJuXCI8c2NyaXB0PlwiK3QrXCI8XFwvc2NyaXB0PlwifSxxdD1mdW5jdGlvbigpe3RyeXtaPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoXCJodG1sZmlsZVwiKX1jYXRjaCh0KXt9dmFyIHQsZTtxdD1aP2Z1bmN0aW9uKHQpe3Qud3JpdGUoVnQoXCJcIikpLHQuY2xvc2UoKTt2YXIgZT10LnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIHQ9bnVsbCxlfShaKTooKGU9dyhcImlmcmFtZVwiKSkuc3R5bGUuZGlzcGxheT1cIm5vbmVcIixHdC5hcHBlbmRDaGlsZChlKSxlLnNyYz1TdHJpbmcoXCJqYXZhc2NyaXB0OlwiKSwodD1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKSx0LndyaXRlKFZ0KFwiZG9jdW1lbnQuRj1PYmplY3RcIikpLHQuY2xvc2UoKSx0LkYpO2Zvcih2YXIgcj15dC5sZW5ndGg7ci0tOylkZWxldGUgcXQucHJvdG90eXBlW3l0W3JdXTtyZXR1cm4gcXQoKX07cVtLdF09ITA7dmFyIEh0PU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIG51bGwhPT10PygkdC5wcm90b3R5cGU9eCh0KSxyPW5ldyAkdCwkdC5wcm90b3R5cGU9bnVsbCxyW0t0XT10KTpyPXF0KCksdm9pZCAwPT09ZT9yOnp0KHIsZSl9LFh0PUJ0KFwidW5zY29wYWJsZXNcIiksWXQ9QXJyYXkucHJvdG90eXBlO251bGw9PVl0W1h0XSYmSS5mKFl0LFh0LHtjb25maWd1cmFibGU6ITAsdmFsdWU6SHQobnVsbCl9KTt2YXIgSnQ9ZnVuY3Rpb24odCl7WXRbWHRdW3RdPSEwfTtQdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMH0se2NvcHlXaXRoaW46VXR9KSxKdChcImNvcHlXaXRoaW5cIik7dmFyIFF0PWZ1bmN0aW9uKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgVHlwZUVycm9yKFN0cmluZyh0KStcIiBpcyBub3QgYSBmdW5jdGlvblwiKTtyZXR1cm4gdH0sWnQ9ZnVuY3Rpb24odCxlLHIpe2lmKFF0KHQpLHZvaWQgMD09PWUpcmV0dXJuIHQ7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5jYWxsKGUpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0LmNhbGwoZSxyKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihyLG4pe3JldHVybiB0LmNhbGwoZSxyLG4pfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKHIsbixvKXtyZXR1cm4gdC5jYWxsKGUscixuLG8pfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLGFyZ3VtZW50cyl9fSx0ZT1GdW5jdGlvbi5jYWxsLGVlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gWnQodGUsblt0XS5wcm90b3R5cGVbZV0scil9O2VlKFwiQXJyYXlcIixcImNvcHlXaXRoaW5cIiksUHQoe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITB9LHtmaWxsOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1NdCh0aGlzKSxyPXN0KGUubGVuZ3RoKSxuPWFyZ3VtZW50cy5sZW5ndGgsbz1odChuPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxyKSxpPW4+Mj9hcmd1bWVudHNbMl06dm9pZCAwLGE9dm9pZCAwPT09aT9yOmh0KGkscik7YT5vOyllW28rK109dDtyZXR1cm4gZX19KSxKdChcImZpbGxcIiksZWUoXCJBcnJheVwiLFwiZmlsbFwiKTt2YXIgcmU9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuXCJBcnJheVwiPT1sKHQpfSxuZT1CdChcInNwZWNpZXNcIiksb2U9ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gcmUodCkmJihcImZ1bmN0aW9uXCIhPXR5cGVvZihyPXQuY29uc3RydWN0b3IpfHxyIT09QXJyYXkmJiFyZShyLnByb3RvdHlwZSk/ZyhyKSYmbnVsbD09PShyPXJbbmVdKSYmKHI9dm9pZCAwKTpyPXZvaWQgMCksbmV3KHZvaWQgMD09PXI/QXJyYXk6cikoMD09PWU/MDplKX0saWU9W10ucHVzaCxhZT1mdW5jdGlvbih0KXt2YXIgZT0xPT10LHI9Mj09dCxuPTM9PXQsbz00PT10LGk9Nj09dCxhPTc9PXQsdT01PT10fHxpO3JldHVybiBmdW5jdGlvbihjLHMsZixsKXtmb3IodmFyIGgsZCx2PU10KGMpLGc9cCh2KSx5PVp0KHMsZiwzKSxtPXN0KGcubGVuZ3RoKSxiPTAsRT1sfHxvZSxTPWU/RShjLG0pOnJ8fGE/RShjLDApOnZvaWQgMDttPmI7YisrKWlmKCh1fHxiIGluIGcpJiYoZD15KGg9Z1tiXSxiLHYpLHQpKWlmKGUpU1tiXT1kO2Vsc2UgaWYoZClzd2l0Y2godCl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gaDtjYXNlIDY6cmV0dXJuIGI7Y2FzZSAyOmllLmNhbGwoUyxoKX1lbHNlIHN3aXRjaCh0KXtjYXNlIDQ6cmV0dXJuITE7Y2FzZSA3OmllLmNhbGwoUyxoKX1yZXR1cm4gaT8tMTpufHxvP286U319LHVlPXtmb3JFYWNoOmFlKDApLG1hcDphZSgxKSxmaWx0ZXI6YWUoMiksc29tZTphZSgzKSxldmVyeTphZSg0KSxmaW5kOmFlKDUpLGZpbmRJbmRleDphZSg2KSxmaWx0ZXJPdXQ6YWUoNyl9LGNlPXVlLmZpbmQsc2U9XCJmaW5kXCIsZmU9ITA7c2UgaW5bXSYmQXJyYXkoMSkuZmluZChmdW5jdGlvbigpe2ZlPSExfSksUHQoe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITAsZm9yY2VkOmZlfSx7ZmluZDpmdW5jdGlvbih0KXtyZXR1cm4gY2UodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxKdChzZSksZWUoXCJBcnJheVwiLFwiZmluZFwiKTt2YXIgbGU9dWUuZmluZEluZGV4LGhlPVwiZmluZEluZGV4XCIscGU9ITA7aGUgaW5bXSYmQXJyYXkoMSkuZmluZEluZGV4KGZ1bmN0aW9uKCl7cGU9ITF9KSxQdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6cGV9LHtmaW5kSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuIGxlKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksSnQoaGUpLGVlKFwiQXJyYXlcIixcImZpbmRJbmRleFwiKTt2YXIgZGU9ZnVuY3Rpb24odCxlLHIsbixvLGksYSx1KXtmb3IodmFyIGMscz1vLGY9MCxsPSEhYSYmWnQoYSx1LDMpO2Y8bjspe2lmKGYgaW4gcil7aWYoYz1sP2wocltmXSxmLGUpOnJbZl0saT4wJiZyZShjKSlzPWRlKHQsZSxjLHN0KGMubGVuZ3RoKSxzLGktMSktMTtlbHNle2lmKHM+PTkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgVHlwZUVycm9yKFwiRXhjZWVkIHRoZSBhY2NlcHRhYmxlIGFycmF5IGxlbmd0aFwiKTt0W3NdPWN9cysrfWYrK31yZXR1cm4gc30sdmU9ZGU7UHQoe3RhcmdldDpcIkFycmF5XCIscHJvdG86ITB9LHtmbGF0TWFwOmZ1bmN0aW9uKHQpe3ZhciBlLHI9TXQodGhpcyksbj1zdChyLmxlbmd0aCk7cmV0dXJuIFF0KHQpLChlPW9lKHIsMCkpLmxlbmd0aD12ZShlLHIscixuLDAsMSx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKSxlfX0pLEp0KFwiZmxhdE1hcFwiKSxlZShcIkFycmF5XCIsXCJmbGF0TWFwXCIpLFB0KHt0YXJnZXQ6XCJBcnJheVwiLHByb3RvOiEwfSx7ZmxhdDpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCxlPU10KHRoaXMpLHI9c3QoZS5sZW5ndGgpLG49b2UoZSwwKTtyZXR1cm4gbi5sZW5ndGg9dmUobixlLGUsciwwLHZvaWQgMD09PXQ/MTp1dCh0KSksbn19KSxKdChcImZsYXRcIiksZWUoXCJBcnJheVwiLFwiZmxhdFwiKTt2YXIgZ2UseWUsbWUsYmU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG4sbyxpPVN0cmluZyhkKGUpKSxhPXV0KHIpLHU9aS5sZW5ndGg7cmV0dXJuIGE8MHx8YT49dT90P1wiXCI6dm9pZCAwOihuPWkuY2hhckNvZGVBdChhKSk8NTUyOTZ8fG4+NTYzMTl8fGErMT09PXV8fChvPWkuY2hhckNvZGVBdChhKzEpKTw1NjMyMHx8bz41NzM0Mz90P2kuY2hhckF0KGEpOm46dD9pLnNsaWNlKGEsYSsyKTpvLTU2MzIwKyhuLTU1Mjk2PDwxMCkrNjU1MzZ9fSxFZT17Y29kZUF0OmJlKCExKSxjaGFyQXQ6YmUoITApfSxTZT0hbyhmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyB0KSE9PXQucHJvdG90eXBlfSksd2U9VihcIklFX1BST1RPXCIpLFJlPU9iamVjdC5wcm90b3R5cGUsVGU9U2U/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiB0PU10KHQpLGIodCx3ZSk/dFt3ZV06XCJmdW5jdGlvblwiPT10eXBlb2YgdC5jb25zdHJ1Y3RvciYmdCBpbnN0YW5jZW9mIHQuY29uc3RydWN0b3I/dC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6dCBpbnN0YW5jZW9mIE9iamVjdD9SZTpudWxsfSxPZT1CdChcIml0ZXJhdG9yXCIpLHhlPSExO1tdLmtleXMmJihcIm5leHRcImluKG1lPVtdLmtleXMoKSk/KHllPVRlKFRlKG1lKSkpIT09T2JqZWN0LnByb3RvdHlwZSYmKGdlPXllKTp4ZT0hMCksKG51bGw9PWdlfHxvKGZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIGdlW09lXS5jYWxsKHQpIT09dH0pKSYmKGdlPXt9KSxiKGdlLE9lKXx8XyhnZSxPZSxmdW5jdGlvbigpe3JldHVybiB0aGlzfSk7dmFyIEFlPXtJdGVyYXRvclByb3RvdHlwZTpnZSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOnhlfSxJZT1JLmYsX2U9QnQoXCJ0b1N0cmluZ1RhZ1wiKSxqZT1mdW5jdGlvbih0LGUscil7dCYmIWIodD1yP3Q6dC5wcm90b3R5cGUsX2UpJiZJZSh0LF9lLHtjb25maWd1cmFibGU6ITAsdmFsdWU6ZX0pfSxQZT17fSxNZT1BZS5JdGVyYXRvclByb3RvdHlwZSxOZT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxVZT1mdW5jdGlvbih0KXtpZighZyh0KSYmbnVsbCE9PXQpdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3Qgc2V0IFwiK1N0cmluZyh0KStcIiBhcyBhIHByb3RvdHlwZVwiKTtyZXR1cm4gdH0sa2U9T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoXCJfX3Byb3RvX19cImlue30/ZnVuY3Rpb24oKXt2YXIgdCxlPSExLHI9e307dHJ5eyh0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSxcIl9fcHJvdG9fX1wiKS5zZXQpLmNhbGwocixbXSksZT1yIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2godCl7fXJldHVybiBmdW5jdGlvbihyLG4pe3JldHVybiB4KHIpLFVlKG4pLGU/dC5jYWxsKHIsbik6ci5fX3Byb3RvX189bixyfX0oKTp2b2lkIDApLExlPUFlLkl0ZXJhdG9yUHJvdG90eXBlLERlPUFlLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsQ2U9QnQoXCJpdGVyYXRvclwiKSxGZT1cImtleXNcIixCZT1cInZhbHVlc1wiLFdlPVwiZW50cmllc1wiLHplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEdlPWZ1bmN0aW9uKHQsZSxyLG4sbyxpLGEpeyFmdW5jdGlvbih0LGUscil7dmFyIG49ZStcIiBJdGVyYXRvclwiO3QucHJvdG90eXBlPUh0KE1lLHtuZXh0OnMoMSxyKX0pLGplKHQsbiwhMSksUGVbbl09TmV9KHIsZSxuKTt2YXIgdSxjLGYsbD1mdW5jdGlvbih0KXtpZih0PT09byYmZylyZXR1cm4gZztpZighRGUmJnQgaW4gZClyZXR1cm4gZFt0XTtzd2l0Y2godCl7Y2FzZSBGZTpjYXNlIEJlOmNhc2UgV2U6cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyByKHRoaXMsdCl9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgcih0aGlzKX19LGg9ZStcIiBJdGVyYXRvclwiLHA9ITEsZD10LnByb3RvdHlwZSx2PWRbQ2VdfHxkW1wiQEBpdGVyYXRvclwiXXx8byYmZFtvXSxnPSFEZSYmdnx8bChvKSx5PVwiQXJyYXlcIj09ZSYmZC5lbnRyaWVzfHx2O2lmKHkmJih1PVRlKHkuY2FsbChuZXcgdCkpLExlIT09T2JqZWN0LnByb3RvdHlwZSYmdS5uZXh0JiYoVGUodSkhPT1MZSYmKGtlP2tlKHUsTGUpOlwiZnVuY3Rpb25cIiE9dHlwZW9mIHVbQ2VdJiZfKHUsQ2UsemUpKSxqZSh1LGgsITApKSksbz09QmUmJnYmJnYubmFtZSE9PUJlJiYocD0hMCxnPWZ1bmN0aW9uKCl7cmV0dXJuIHYuY2FsbCh0aGlzKX0pLGRbQ2VdIT09ZyYmXyhkLENlLGcpLFBlW2VdPWcsbylpZihjPXt2YWx1ZXM6bChCZSksa2V5czppP2c6bChGZSksZW50cmllczpsKFdlKX0sYSlmb3IoZiBpbiBjKShEZXx8cHx8IShmIGluIGQpKSYmZXQoZCxmLGNbZl0pO2Vsc2UgUHQoe3RhcmdldDplLHByb3RvOiEwLGZvcmNlZDpEZXx8cH0sYyk7cmV0dXJuIGN9LEtlPUVlLmNoYXJBdCwkZT1cIlN0cmluZyBJdGVyYXRvclwiLFZlPXR0LnNldCxxZT10dC5nZXR0ZXJGb3IoJGUpO0dlKFN0cmluZyxcIlN0cmluZ1wiLGZ1bmN0aW9uKHQpe1ZlKHRoaXMse3R5cGU6JGUsc3RyaW5nOlN0cmluZyh0KSxpbmRleDowfSl9LGZ1bmN0aW9uKCl7dmFyIHQsZT1xZSh0aGlzKSxyPWUuc3RyaW5nLG49ZS5pbmRleDtyZXR1cm4gbj49ci5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfToodD1LZShyLG4pLGUuaW5kZXgrPXQubGVuZ3RoLHt2YWx1ZTp0LGRvbmU6ITF9KX0pO3ZhciBIZT1mdW5jdGlvbih0KXt2YXIgZT10LnJldHVybjtpZih2b2lkIDAhPT1lKXJldHVybiB4KGUuY2FsbCh0KSkudmFsdWV9LFhlPWZ1bmN0aW9uKHQsZSxyLG4pe3RyeXtyZXR1cm4gbj9lKHgocilbMF0sclsxXSk6ZShyKX1jYXRjaChlKXt0aHJvdyBIZSh0KSxlfX0sWWU9QnQoXCJpdGVyYXRvclwiKSxKZT1BcnJheS5wcm90b3R5cGUsUWU9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXQmJihQZS5BcnJheT09PXR8fEplW1llXT09PXQpfSxaZT1mdW5jdGlvbih0LGUscil7dmFyIG49eShlKTtuIGluIHQ/SS5mKHQsbixzKDAscikpOnRbbl09cn0sdHI9e307dHJbQnQoXCJ0b1N0cmluZ1RhZ1wiKV09XCJ6XCI7dmFyIGVyPVwiW29iamVjdCB6XVwiPT09U3RyaW5nKHRyKSxycj1CdChcInRvU3RyaW5nVGFnXCIpLG5yPVwiQXJndW1lbnRzXCI9PWwoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxvcj1lcj9sOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbjtyZXR1cm4gdm9pZCAwPT09dD9cIlVuZGVmaW5lZFwiOm51bGw9PT10P1wiTnVsbFwiOlwic3RyaW5nXCI9PXR5cGVvZihyPWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiB0W2VdfWNhdGNoKHQpe319KGU9T2JqZWN0KHQpLHJyKSk/cjpucj9sKGUpOlwiT2JqZWN0XCI9PShuPWwoZSkpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmNhbGxlZT9cIkFyZ3VtZW50c1wiOm59LGlyPUJ0KFwiaXRlcmF0b3JcIiksYXI9ZnVuY3Rpb24odCl7aWYobnVsbCE9dClyZXR1cm4gdFtpcl18fHRbXCJAQGl0ZXJhdG9yXCJdfHxQZVtvcih0KV19LHVyPUJ0KFwiaXRlcmF0b3JcIiksY3I9ITE7dHJ5e3ZhciBzcj0wLGZyPXtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ISFzcisrfX0scmV0dXJuOmZ1bmN0aW9uKCl7Y3I9ITB9fTtmclt1cl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sQXJyYXkuZnJvbShmcixmdW5jdGlvbigpe3Rocm93IDJ9KX1jYXRjaCh0KXt9dmFyIGxyPWZ1bmN0aW9uKHQsZSl7aWYoIWUmJiFjcilyZXR1cm4hMTt2YXIgcj0hMTt0cnl7dmFyIG49e307blt1cl09ZnVuY3Rpb24oKXtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOnI9ITB9fX19LHQobil9Y2F0Y2godCl7fXJldHVybiByfSxocj0hbHIoZnVuY3Rpb24odCl7QXJyYXkuZnJvbSh0KX0pO1B0KHt0YXJnZXQ6XCJBcnJheVwiLHN0YXQ6ITAsZm9yY2VkOmhyfSx7ZnJvbTpmdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxpLGEsdT1NdCh0KSxjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxzPWFyZ3VtZW50cy5sZW5ndGgsZj1zPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxsPXZvaWQgMCE9PWYsaD1hcih1KSxwPTA7aWYobCYmKGY9WnQoZixzPjI/YXJndW1lbnRzWzJdOnZvaWQgMCwyKSksbnVsbD09aHx8Yz09QXJyYXkmJlFlKGgpKWZvcihyPW5ldyBjKGU9c3QodS5sZW5ndGgpKTtlPnA7cCsrKWE9bD9mKHVbcF0scCk6dVtwXSxaZShyLHAsYSk7ZWxzZSBmb3IoaT0obz1oLmNhbGwodSkpLm5leHQscj1uZXcgYzshKG49aS5jYWxsKG8pKS5kb25lO3ArKylhPWw/WGUobyxmLFtuLnZhbHVlLHBdLCEwKTpuLnZhbHVlLFplKHIscCxhKTtyZXR1cm4gci5sZW5ndGg9cCxyfX0pO3ZhciBwcj1kdC5pbmNsdWRlcztQdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMH0se2luY2x1ZGVzOmZ1bmN0aW9uKHQpe3JldHVybiBwcih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEp0KFwiaW5jbHVkZXNcIiksZWUoXCJBcnJheVwiLFwiaW5jbHVkZXNcIik7dmFyIGRyPVwiQXJyYXkgSXRlcmF0b3JcIix2cj10dC5zZXQsZ3I9dHQuZ2V0dGVyRm9yKGRyKSx5cj1HZShBcnJheSxcIkFycmF5XCIsZnVuY3Rpb24odCxlKXt2cih0aGlzLHt0eXBlOmRyLHRhcmdldDp2KHQpLGluZGV4OjAsa2luZDplfSl9LGZ1bmN0aW9uKCl7dmFyIHQ9Z3IodGhpcyksZT10LnRhcmdldCxyPXQua2luZCxuPXQuaW5kZXgrKztyZXR1cm4hZXx8bj49ZS5sZW5ndGg/KHQudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9KTpcImtleXNcIj09cj97dmFsdWU6bixkb25lOiExfTpcInZhbHVlc1wiPT1yP3t2YWx1ZTplW25dLGRvbmU6ITF9Ont2YWx1ZTpbbixlW25dXSxkb25lOiExfX0sXCJ2YWx1ZXNcIik7UGUuQXJndW1lbnRzPVBlLkFycmF5LEp0KFwia2V5c1wiKSxKdChcInZhbHVlc1wiKSxKdChcImVudHJpZXNcIiksZWUoXCJBcnJheVwiLFwidmFsdWVzXCIpO3ZhciBtcj1vKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4hKEFycmF5Lm9mLmNhbGwodClpbnN0YW5jZW9mIHQpfSk7UHQoe3RhcmdldDpcIkFycmF5XCIsc3RhdDohMCxmb3JjZWQ6bXJ9LHtvZjpmdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyhcImZ1bmN0aW9uXCI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKGUpO2U+dDspWmUocix0LGFyZ3VtZW50c1t0KytdKTtyZXR1cm4gci5sZW5ndGg9ZSxyfX0pO3ZhciBicj1CdChcImhhc0luc3RhbmNlXCIpLEVyPUZ1bmN0aW9uLnByb3RvdHlwZTticiBpbiBFcnx8SS5mKEVyLGJyLHt2YWx1ZTpmdW5jdGlvbih0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0aGlzfHwhZyh0KSlyZXR1cm4hMTtpZighZyh0aGlzLnByb3RvdHlwZSkpcmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzO2Zvcig7dD1UZSh0KTspaWYodGhpcy5wcm90b3R5cGU9PT10KXJldHVybiEwO3JldHVybiExfX0pLEJ0KFwiaGFzSW5zdGFuY2VcIik7dmFyIFNyPUZ1bmN0aW9uLnByb3RvdHlwZSx3cj1Tci50b1N0cmluZyxScj0vXlxccypmdW5jdGlvbiAoW14gKF0qKS8sVHI9XCJuYW1lXCI7aSYmIShUciBpbiBTcikmJigwLEkuZikoU3IsVHIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHdyLmNhbGwodGhpcykubWF0Y2goUnIpWzFdfWNhdGNoKHQpe3JldHVyblwiXCJ9fX0pO3ZhciBPcj0hbyhmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSkseHI9ZShmdW5jdGlvbih0KXt2YXIgZT1JLmYscj1LKFwibWV0YVwiKSxuPTAsbz1PYmplY3QuaXNFeHRlbnNpYmxlfHxmdW5jdGlvbigpe3JldHVybiEwfSxpPWZ1bmN0aW9uKHQpe2UodCxyLHt2YWx1ZTp7b2JqZWN0SUQ6XCJPXCIrICsrbix3ZWFrRGF0YTp7fX19KX0sYT10LmV4cG9ydHM9e1JFUVVJUkVEOiExLGZhc3RLZXk6ZnVuY3Rpb24odCxlKXtpZighZyh0KSlyZXR1cm5cInN5bWJvbFwiPT10eXBlb2YgdD90OihcInN0cmluZ1wiPT10eXBlb2YgdD9cIlNcIjpcIlBcIikrdDtpZighYih0LHIpKXtpZighbyh0KSlyZXR1cm5cIkZcIjtpZighZSlyZXR1cm5cIkVcIjtpKHQpfXJldHVybiB0W3JdLm9iamVjdElEfSxnZXRXZWFrRGF0YTpmdW5jdGlvbih0LGUpe2lmKCFiKHQscikpe2lmKCFvKHQpKXJldHVybiEwO2lmKCFlKXJldHVybiExO2kodCl9cmV0dXJuIHRbcl0ud2Vha0RhdGF9LG9uRnJlZXplOmZ1bmN0aW9uKHQpe3JldHVybiBPciYmYS5SRVFVSVJFRCYmbyh0KSYmIWIodCxyKSYmaSh0KSx0fX07cVtyXT0hMH0pLEFyPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdG9wcGVkPXQsdGhpcy5yZXN1bHQ9ZX0sSXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8saSxhLHUsYyxzLGY9ISghcnx8IXIuQVNfRU5UUklFUyksbD0hKCFyfHwhci5JU19JVEVSQVRPUiksaD0hKCFyfHwhci5JTlRFUlJVUFRFRCkscD1adChlLHImJnIudGhhdCwxK2YraCksZD1mdW5jdGlvbih0KXtyZXR1cm4gbiYmSGUobiksbmV3IEFyKCEwLHQpfSx2PWZ1bmN0aW9uKHQpe3JldHVybiBmPyh4KHQpLGg/cCh0WzBdLHRbMV0sZCk6cCh0WzBdLHRbMV0pKTpoP3AodCxkKTpwKHQpfTtpZihsKW49dDtlbHNle2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mKG89YXIodCkpKXRocm93IFR5cGVFcnJvcihcIlRhcmdldCBpcyBub3QgaXRlcmFibGVcIik7aWYoUWUobykpe2ZvcihpPTAsYT1zdCh0Lmxlbmd0aCk7YT5pO2krKylpZigodT12KHRbaV0pKSYmdSBpbnN0YW5jZW9mIEFyKXJldHVybiB1O3JldHVybiBuZXcgQXIoITEpfW49by5jYWxsKHQpfWZvcihjPW4ubmV4dDshKHM9Yy5jYWxsKG4pKS5kb25lOyl7dHJ5e3U9dihzLnZhbHVlKX1jYXRjaCh0KXt0aHJvdyBIZShuKSx0fWlmKFwib2JqZWN0XCI9PXR5cGVvZiB1JiZ1JiZ1IGluc3RhbmNlb2YgQXIpcmV0dXJuIHV9cmV0dXJuIG5ldyBBcighMSl9LF9yPWZ1bmN0aW9uKHQsZSxyKXtpZighKHQgaW5zdGFuY2VvZiBlKSl0aHJvdyBUeXBlRXJyb3IoXCJJbmNvcnJlY3QgXCIrKHI/citcIiBcIjpcIlwiKStcImludm9jYXRpb25cIik7cmV0dXJuIHR9LGpyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixvO3JldHVybiBrZSYmXCJmdW5jdGlvblwiPT10eXBlb2Yobj1lLmNvbnN0cnVjdG9yKSYmbiE9PXImJmcobz1uLnByb3RvdHlwZSkmJm8hPT1yLnByb3RvdHlwZSYma2UodCxvKSx0fSxQcj1mdW5jdGlvbih0LGUscil7dmFyIGk9LTEhPT10LmluZGV4T2YoXCJNYXBcIiksYT0tMSE9PXQuaW5kZXhPZihcIldlYWtcIiksdT1pP1wic2V0XCI6XCJhZGRcIixjPW5bdF0scz1jJiZjLnByb3RvdHlwZSxmPWMsbD17fSxoPWZ1bmN0aW9uKHQpe3ZhciBlPXNbdF07ZXQocyx0LFwiYWRkXCI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIGUuY2FsbCh0aGlzLDA9PT10PzA6dCksdGhpc306XCJkZWxldGVcIj09dD9mdW5jdGlvbih0KXtyZXR1cm4hKGEmJiFnKHQpKSYmZS5jYWxsKHRoaXMsMD09PXQ/MDp0KX06XCJnZXRcIj09dD9mdW5jdGlvbih0KXtyZXR1cm4gYSYmIWcodCk/dm9pZCAwOmUuY2FsbCh0aGlzLDA9PT10PzA6dCl9OlwiaGFzXCI9PXQ/ZnVuY3Rpb24odCl7cmV0dXJuIShhJiYhZyh0KSkmJmUuY2FsbCh0aGlzLDA9PT10PzA6dCl9OmZ1bmN0aW9uKHQscil7cmV0dXJuIGUuY2FsbCh0aGlzLDA9PT10PzA6dCxyKSx0aGlzfSl9O2lmKF90KHQsXCJmdW5jdGlvblwiIT10eXBlb2YgY3x8IShhfHxzLmZvckVhY2gmJiFvKGZ1bmN0aW9uKCl7KG5ldyBjKS5lbnRyaWVzKCkubmV4dCgpfSkpKSlmPXIuZ2V0Q29uc3RydWN0b3IoZSx0LGksdSkseHIuUkVRVUlSRUQ9ITA7ZWxzZSBpZihfdCh0LCEwKSl7dmFyIHA9bmV3IGYsZD1wW3VdKGE/e306LTAsMSkhPXAsdj1vKGZ1bmN0aW9uKCl7cC5oYXMoMSl9KSx5PWxyKGZ1bmN0aW9uKHQpe25ldyBjKHQpfSksbT0hYSYmbyhmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgYyxlPTU7ZS0tOyl0W3VdKGUsZSk7cmV0dXJuIXQuaGFzKC0wKX0pO3l8fCgoZj1lKGZ1bmN0aW9uKGUscil7X3IoZSxmLHQpO3ZhciBuPWpyKG5ldyBjLGUsZik7cmV0dXJuIG51bGwhPXImJklyKHIsblt1XSx7dGhhdDpuLEFTX0VOVFJJRVM6aX0pLG59KSkucHJvdG90eXBlPXMscy5jb25zdHJ1Y3Rvcj1mKSwodnx8bSkmJihoKFwiZGVsZXRlXCIpLGgoXCJoYXNcIiksaSYmaChcImdldFwiKSksKG18fGQpJiZoKHUpLGEmJnMuY2xlYXImJmRlbGV0ZSBzLmNsZWFyfXJldHVybiBsW3RdPWYsUHQoe2dsb2JhbDohMCxmb3JjZWQ6ZiE9Y30sbCksamUoZix0KSxhfHxyLnNldFN0cm9uZyhmLHQsaSksZn0sTXI9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbiBpbiBlKWV0KHQsbixlW25dLHIpO3JldHVybiB0fSxOcj1CdChcInNwZWNpZXNcIiksVXI9ZnVuY3Rpb24odCl7dmFyIGU9b3QodCk7aSYmZSYmIWVbTnJdJiYoMCxJLmYpKGUsTnIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX0sa3I9SS5mLExyPXhyLmZhc3RLZXksRHI9dHQuc2V0LENyPXR0LmdldHRlckZvcixGcj17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24odCxlLHIsbil7dmFyIG89dChmdW5jdGlvbih0LGEpe19yKHQsbyxlKSxEcih0LHt0eXBlOmUsaW5kZXg6SHQobnVsbCksZmlyc3Q6dm9pZCAwLGxhc3Q6dm9pZCAwLHNpemU6MH0pLGl8fCh0LnNpemU9MCksbnVsbCE9YSYmSXIoYSx0W25dLHt0aGF0OnQsQVNfRU5UUklFUzpyfSl9KSxhPUNyKGUpLHU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLG8sdT1hKHQpLHM9Yyh0LGUpO3JldHVybiBzP3MudmFsdWU9cjoodS5sYXN0PXM9e2luZGV4Om89THIoZSwhMCksa2V5OmUsdmFsdWU6cixwcmV2aW91czpuPXUubGFzdCxuZXh0OnZvaWQgMCxyZW1vdmVkOiExfSx1LmZpcnN0fHwodS5maXJzdD1zKSxuJiYobi5uZXh0PXMpLGk/dS5zaXplKys6dC5zaXplKyssXCJGXCIhPT1vJiYodS5pbmRleFtvXT1zKSksdH0sYz1mdW5jdGlvbih0LGUpe3ZhciByLG49YSh0KSxvPUxyKGUpO2lmKFwiRlwiIT09bylyZXR1cm4gbi5pbmRleFtvXTtmb3Iocj1uLmZpcnN0O3I7cj1yLm5leHQpaWYoci5rZXk9PWUpcmV0dXJuIHJ9O3JldHVybiBNcihvLnByb3RvdHlwZSx7Y2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9YSh0aGlzKSxlPXQuaW5kZXgscj10LmZpcnN0O3I7KXIucmVtb3ZlZD0hMCxyLnByZXZpb3VzJiYoci5wcmV2aW91cz1yLnByZXZpb3VzLm5leHQ9dm9pZCAwKSxkZWxldGUgZVtyLmluZGV4XSxyPXIubmV4dDt0LmZpcnN0PXQubGFzdD12b2lkIDAsaT90LnNpemU9MDp0aGlzLnNpemU9MH0sZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1hKGUpLG49YyhlLHQpO2lmKG4pe3ZhciBvPW4ubmV4dCx1PW4ucHJldmlvdXM7ZGVsZXRlIHIuaW5kZXhbbi5pbmRleF0sbi5yZW1vdmVkPSEwLHUmJih1Lm5leHQ9byksbyYmKG8ucHJldmlvdXM9dSksci5maXJzdD09biYmKHIuZmlyc3Q9byksci5sYXN0PT1uJiYoci5sYXN0PXUpLGk/ci5zaXplLS06ZS5zaXplLS19cmV0dXJuISFufSxmb3JFYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPWEodGhpcyksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO2U9ZT9lLm5leHQ6ci5maXJzdDspZm9yKG4oZS52YWx1ZSxlLmtleSx0aGlzKTtlJiZlLnJlbW92ZWQ7KWU9ZS5wcmV2aW91c30saGFzOmZ1bmN0aW9uKHQpe3JldHVybiEhYyh0aGlzLHQpfX0pLE1yKG8ucHJvdG90eXBlLHI/e2dldDpmdW5jdGlvbih0KXt2YXIgZT1jKHRoaXMsdCk7cmV0dXJuIGUmJmUudmFsdWV9LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB1KHRoaXMsMD09PXQ/MDp0LGUpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gdSh0aGlzLHQ9MD09PXQ/MDp0LHQpfX0pLGkmJmtyKG8ucHJvdG90eXBlLFwic2l6ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzKS5zaXplfX0pLG99LHNldFN0cm9uZzpmdW5jdGlvbih0LGUscil7dmFyIG49ZStcIiBJdGVyYXRvclwiLG89Q3IoZSksaT1DcihuKTtHZSh0LGUsZnVuY3Rpb24odCxlKXtEcih0aGlzLHt0eXBlOm4sdGFyZ2V0OnQsc3RhdGU6byh0KSxraW5kOmUsbGFzdDp2b2lkIDB9KX0sZnVuY3Rpb24oKXtmb3IodmFyIHQ9aSh0aGlzKSxlPXQua2luZCxyPXQubGFzdDtyJiZyLnJlbW92ZWQ7KXI9ci5wcmV2aW91cztyZXR1cm4gdC50YXJnZXQmJih0Lmxhc3Q9cj1yP3IubmV4dDp0LnN0YXRlLmZpcnN0KT9cImtleXNcIj09ZT97dmFsdWU6ci5rZXksZG9uZTohMX06XCJ2YWx1ZXNcIj09ZT97dmFsdWU6ci52YWx1ZSxkb25lOiExfTp7dmFsdWU6W3Iua2V5LHIudmFsdWVdLGRvbmU6ITF9Oih0LnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSl9LHI/XCJlbnRyaWVzXCI6XCJ2YWx1ZXNcIiwhciwhMCksVXIoZSl9fSxCcj1QcihcIk1hcFwiLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0KHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LEZyKTtlcnx8ZXQoT2JqZWN0LnByb3RvdHlwZSxcInRvU3RyaW5nXCIsZXI/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm5cIltvYmplY3QgXCIrb3IodGhpcykrXCJdXCJ9LHt1bnNhZmU6ITB9KTt2YXIgV3I9e0NTU1J1bGVMaXN0OjAsQ1NTU3R5bGVEZWNsYXJhdGlvbjowLENTU1ZhbHVlTGlzdDowLENsaWVudFJlY3RMaXN0OjAsRE9NUmVjdExpc3Q6MCxET01TdHJpbmdMaXN0OjAsRE9NVG9rZW5MaXN0OjEsRGF0YVRyYW5zZmVySXRlbUxpc3Q6MCxGaWxlTGlzdDowLEhUTUxBbGxDb2xsZWN0aW9uOjAsSFRNTENvbGxlY3Rpb246MCxIVE1MRm9ybUVsZW1lbnQ6MCxIVE1MU2VsZWN0RWxlbWVudDowLE1lZGlhTGlzdDowLE1pbWVUeXBlQXJyYXk6MCxOYW1lZE5vZGVNYXA6MCxOb2RlTGlzdDoxLFBhaW50UmVxdWVzdExpc3Q6MCxQbHVnaW46MCxQbHVnaW5BcnJheTowLFNWR0xlbmd0aExpc3Q6MCxTVkdOdW1iZXJMaXN0OjAsU1ZHUGF0aFNlZ0xpc3Q6MCxTVkdQb2ludExpc3Q6MCxTVkdTdHJpbmdMaXN0OjAsU1ZHVHJhbnNmb3JtTGlzdDowLFNvdXJjZUJ1ZmZlckxpc3Q6MCxTdHlsZVNoZWV0TGlzdDowLFRleHRUcmFja0N1ZUxpc3Q6MCxUZXh0VHJhY2tMaXN0OjAsVG91Y2hMaXN0OjB9LHpyPUJ0KFwiaXRlcmF0b3JcIiksR3I9QnQoXCJ0b1N0cmluZ1RhZ1wiKSxLcj15ci52YWx1ZXM7Zm9yKHZhciAkciBpbiBXcil7dmFyIFZyPW5bJHJdLHFyPVZyJiZWci5wcm90b3R5cGU7aWYocXIpe2lmKHFyW3pyXSE9PUtyKXRyeXtfKHFyLHpyLEtyKX1jYXRjaCh0KXtxclt6cl09S3J9aWYocXJbR3JdfHxfKHFyLEdyLCRyKSxXclskcl0pZm9yKHZhciBIciBpbiB5cilpZihxcltIcl0hPT15cltIcl0pdHJ5e18ocXIsSHIseXJbSHJdKX1jYXRjaCh0KXtxcltIcl09eXJbSHJdfX19dmFyIFhyPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGk9YXJndW1lbnRzLmxlbmd0aCxhPWk+MT9hcmd1bWVudHNbMV06dm9pZCAwO3JldHVybiBRdCh0aGlzKSwoZT12b2lkIDAhPT1hKSYmUXQoYSksbnVsbD09dD9uZXcgdGhpczoocj1bXSxlPyhuPTAsbz1adChhLGk+Mj9hcmd1bWVudHNbMl06dm9pZCAwLDIpLElyKHQsZnVuY3Rpb24odCl7ci5wdXNoKG8odCxuKyspKX0pKTpJcih0LHIucHVzaCx7dGhhdDpyfSksbmV3IHRoaXMocikpfTtQdCh7dGFyZ2V0OlwiTWFwXCIsc3RhdDohMH0se2Zyb206WHJ9KTt2YXIgWXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPW5ldyBBcnJheSh0KTt0LS07KWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBuZXcgdGhpcyhlKX07UHQoe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITB9LHtvZjpZcn0pO3ZhciBKcj1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPXgodGhpcykscj1RdChlLmRlbGV0ZSksbj0hMCxvPTAsaT1hcmd1bWVudHMubGVuZ3RoO288aTtvKyspdD1yLmNhbGwoZSxhcmd1bWVudHNbb10pLG49biYmdDtyZXR1cm4hIW59O1B0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIEpyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTt2YXIgUXI9ZnVuY3Rpb24odCxlKXt2YXIgcj14KHRoaXMpLG49ci5oYXModCkmJlwidXBkYXRlXCJpbiBlP2UudXBkYXRlKHIuZ2V0KHQpLHQscik6ZS5pbnNlcnQodCxyKTtyZXR1cm4gci5zZXQodCxuKSxufTtQdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se2VtcGxhY2U6UXJ9KTt2YXIgWnI9ZnVuY3Rpb24odCl7cmV0dXJuIE1hcC5wcm90b3R5cGUuZW50cmllcy5jYWxsKHQpfTtQdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se2V2ZXJ5OmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1acihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIUlyKHIsZnVuY3Rpb24odCxyLG8pe2lmKCFuKHIsdCxlKSlyZXR1cm4gbygpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSk7dmFyIHRuPUJ0KFwic3BlY2llc1wiKSxlbj1mdW5jdGlvbih0LGUpe3ZhciByLG49eCh0KS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09bnx8bnVsbD09KHI9eChuKVt0bl0pP2U6UXQocil9O1B0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7ZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1acihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksbz1uZXcoZW4oZSxvdChcIk1hcFwiKSkpLGk9UXQoby5zZXQpO3JldHVybiBJcihyLGZ1bmN0aW9uKHQscil7bihyLHQsZSkmJmkuY2FsbChvLHQscil9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwfSksb319KSxQdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se2ZpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9eCh0aGlzKSxyPVpyKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKTtyZXR1cm4gSXIocixmdW5jdGlvbih0LHIsbyl7aWYobihyLHQsZSkpcmV0dXJuIG8ocil9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwLElOVEVSUlVQVEVEOiEwfSkucmVzdWx0fX0pLFB0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7ZmluZEtleTpmdW5jdGlvbih0KXt2YXIgZT14KHRoaXMpLHI9WnIoZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiBJcihyLGZ1bmN0aW9uKHQscixvKXtpZihuKHIsdCxlKSlyZXR1cm4gbyh0KX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5yZXN1bHR9fSksUHQoe3RhcmdldDpcIk1hcFwiLHN0YXQ6ITB9LHtncm91cEJ5OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHRoaXM7UXQoZSk7dmFyIG49UXQoci5oYXMpLG89UXQoci5nZXQpLGk9UXQoci5zZXQpO3JldHVybiBJcih0LGZ1bmN0aW9uKHQpe3ZhciBhPWUodCk7bi5jYWxsKHIsYSk/by5jYWxsKHIsYSkucHVzaCh0KTppLmNhbGwocixhLFt0XSl9KSxyfX0pLFB0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7aW5jbHVkZXM6ZnVuY3Rpb24odCl7cmV0dXJuIElyKFpyKHgodGhpcykpLGZ1bmN0aW9uKGUscixuKXtpZigobz1yKT09PShpPXQpfHxvIT1vJiZpIT1pKXJldHVybiBuKCk7dmFyIG8saX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLFB0KHt0YXJnZXQ6XCJNYXBcIixzdGF0OiEwfSx7a2V5Qnk6ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgdGhpcztRdChlKTt2YXIgbj1RdChyLnNldCk7cmV0dXJuIElyKHQsZnVuY3Rpb24odCl7bi5jYWxsKHIsZSh0KSx0KX0pLHJ9fSksUHQoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtrZXlPZjpmdW5jdGlvbih0KXtyZXR1cm4gSXIoWnIoeCh0aGlzKSksZnVuY3Rpb24oZSxyLG4pe2lmKHI9PT10KXJldHVybiBuKGUpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLnJlc3VsdH19KSxQdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se21hcEtleXM6ZnVuY3Rpb24odCl7dmFyIGU9eCh0aGlzKSxyPVpyKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxvPW5ldyhlbihlLG90KFwiTWFwXCIpKSksaT1RdChvLnNldCk7cmV0dXJuIElyKHIsZnVuY3Rpb24odCxyKXtpLmNhbGwobyxuKHIsdCxlKSxyKX0se0FTX0VOVFJJRVM6ITAsSVNfSVRFUkFUT1I6ITB9KSxvfX0pLFB0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7bWFwVmFsdWVzOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1acihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyksbz1uZXcoZW4oZSxvdChcIk1hcFwiKSkpLGk9UXQoby5zZXQpO3JldHVybiBJcihyLGZ1bmN0aW9uKHQscil7aS5jYWxsKG8sdCxuKHIsdCxlKSl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwfSksb319KSxQdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se21lcmdlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT14KHRoaXMpLHI9UXQoZS5zZXQpLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KUlyKGFyZ3VtZW50c1tuKytdLHIse3RoYXQ6ZSxBU19FTlRSSUVTOiEwfSk7cmV0dXJuIGV9fSksUHQoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtyZWR1Y2U6ZnVuY3Rpb24odCl7dmFyIGU9eCh0aGlzKSxyPVpyKGUpLG49YXJndW1lbnRzLmxlbmd0aDwyLG89bj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKFF0KHQpLElyKHIsZnVuY3Rpb24ocixpKXtuPyhuPSExLG89aSk6bz10KG8saSxyLGUpfSx7QVNfRU5UUklFUzohMCxJU19JVEVSQVRPUjohMH0pLG4pdGhyb3cgVHlwZUVycm9yKFwiUmVkdWNlIG9mIGVtcHR5IG1hcCB3aXRoIG5vIGluaXRpYWwgdmFsdWVcIik7cmV0dXJuIG99fSksUHQoe3RhcmdldDpcIk1hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtzb21lOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1acihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIElyKHIsZnVuY3Rpb24odCxyLG8pe2lmKG4ocix0LGUpKXJldHVybiBvKCl9LHtBU19FTlRSSUVTOiEwLElTX0lURVJBVE9SOiEwLElOVEVSUlVQVEVEOiEwfSkuc3RvcHBlZH19KSxQdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se3VwZGF0ZTpmdW5jdGlvbih0LGUpe3ZhciByPXgodGhpcyksbj1hcmd1bWVudHMubGVuZ3RoO1F0KGUpO3ZhciBvPXIuaGFzKHQpO2lmKCFvJiZuPDMpdGhyb3cgVHlwZUVycm9yKFwiVXBkYXRpbmcgYWJzZW50IHZhbHVlXCIpO3ZhciBpPW8/ci5nZXQodCk6UXQobj4yP2FyZ3VtZW50c1syXTp2b2lkIDApKHQscik7cmV0dXJuIHIuc2V0KHQsZShpLHQscikpLHJ9fSk7dmFyIHJuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj14KHRoaXMpLG89YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbyl0aHJvdyBUeXBlRXJyb3IoXCJBdCBsZWFzdCBvbmUgY2FsbGJhY2sgcmVxdWlyZWRcIik7cmV0dXJuIG4uaGFzKHQpPyhyPW4uZ2V0KHQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJihyPWUociksbi5zZXQodCxyKSkpOlwiZnVuY3Rpb25cIj09dHlwZW9mIG8mJihyPW8oKSxuLnNldCh0LHIpKSxyfTtQdCh7dGFyZ2V0OlwiTWFwXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se3Vwc2VydDpybn0pLFB0KHt0YXJnZXQ6XCJNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7dXBkYXRlT3JJbnNlcnQ6cm59KTt2YXIgbm49UHIoXCJTZXRcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxGcik7UHQoe3RhcmdldDpcIlNldFwiLHN0YXQ6ITB9LHtmcm9tOlhyfSksUHQoe3RhcmdldDpcIlNldFwiLHN0YXQ6ITB9LHtvZjpZcn0pO3ZhciBvbj1mdW5jdGlvbigpe2Zvcih2YXIgdD14KHRoaXMpLGU9UXQodC5hZGQpLHI9MCxuPWFyZ3VtZW50cy5sZW5ndGg7cjxuO3IrKyllLmNhbGwodCxhcmd1bWVudHNbcl0pO3JldHVybiB0fTtQdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se2FkZEFsbDpmdW5jdGlvbigpe3JldHVybiBvbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSksUHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gSnIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pO3ZhciBhbj1mdW5jdGlvbih0KXtyZXR1cm4gU2V0LnByb3RvdHlwZS52YWx1ZXMuY2FsbCh0KX07UHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtldmVyeTpmdW5jdGlvbih0KXt2YXIgZT14KHRoaXMpLHI9YW4oZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO3JldHVybiFJcihyLGZ1bmN0aW9uKHQscil7aWYoIW4odCx0LGUpKXJldHVybiByKCl9LHtJU19JVEVSQVRPUjohMCxJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSksUHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtkaWZmZXJlbmNlOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1uZXcoZW4oZSxvdChcIlNldFwiKSkpKGUpLG49UXQoci5kZWxldGUpO3JldHVybiBJcih0LGZ1bmN0aW9uKHQpe24uY2FsbChyLHQpfSkscn19KSxQdCh7dGFyZ2V0OlwiU2V0XCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Qn0se2ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgZT14KHRoaXMpLHI9YW4oZSksbj1adCh0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpLG89bmV3KGVuKGUsb3QoXCJTZXRcIikpKSxpPVF0KG8uYWRkKTtyZXR1cm4gSXIocixmdW5jdGlvbih0KXtuKHQsdCxlKSYmaS5jYWxsKG8sdCl9LHtJU19JVEVSQVRPUjohMH0pLG99fSksUHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtmaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1hbihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIElyKHIsZnVuY3Rpb24odCxyKXtpZihuKHQsdCxlKSlyZXR1cm4gcih0KX0se0lTX0lURVJBVE9SOiEwLElOVEVSUlVQVEVEOiEwfSkucmVzdWx0fX0pLFB0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7aW50ZXJzZWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1uZXcoZW4oZSxvdChcIlNldFwiKSkpLG49UXQoZS5oYXMpLG89UXQoci5hZGQpO3JldHVybiBJcih0LGZ1bmN0aW9uKHQpe24uY2FsbChlLHQpJiZvLmNhbGwocix0KX0pLHJ9fSksUHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtpc0Rpc2pvaW50RnJvbTpmdW5jdGlvbih0KXt2YXIgZT14KHRoaXMpLHI9UXQoZS5oYXMpO3JldHVybiFJcih0LGZ1bmN0aW9uKHQsbil7aWYoITA9PT1yLmNhbGwoZSx0KSlyZXR1cm4gbigpfSx7SU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLFB0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7aXNTdWJzZXRPZjpmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZT1hcih0KTtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihTdHJpbmcodCkrXCIgaXMgbm90IGl0ZXJhYmxlXCIpO3JldHVybiB4KGUuY2FsbCh0KSl9KHRoaXMpLHI9eCh0KSxuPXIuaGFzO3JldHVyblwiZnVuY3Rpb25cIiE9dHlwZW9mIG4mJihyPW5ldyhvdChcIlNldFwiKSkodCksbj1RdChyLmhhcykpLCFJcihlLGZ1bmN0aW9uKHQsZSl7aWYoITE9PT1uLmNhbGwocix0KSlyZXR1cm4gZSgpfSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLFB0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7aXNTdXBlcnNldE9mOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1RdChlLmhhcyk7cmV0dXJuIUlyKHQsZnVuY3Rpb24odCxuKXtpZighMT09PXIuY2FsbChlLHQpKXJldHVybiBuKCl9LHtJTlRFUlJVUFRFRDohMH0pLnN0b3BwZWR9fSksUHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtqb2luOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1hbihlKSxuPXZvaWQgMD09PXQ/XCIsXCI6U3RyaW5nKHQpLG89W107cmV0dXJuIElyKHIsby5wdXNoLHt0aGF0Om8sSVNfSVRFUkFUT1I6ITB9KSxvLmpvaW4obil9fSksUHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHttYXA6ZnVuY3Rpb24odCl7dmFyIGU9eCh0aGlzKSxyPWFuKGUpLG49WnQodCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCwzKSxvPW5ldyhlbihlLG90KFwiU2V0XCIpKSksaT1RdChvLmFkZCk7cmV0dXJuIElyKHIsZnVuY3Rpb24odCl7aS5jYWxsKG8sbih0LHQsZSkpfSx7SVNfSVRFUkFUT1I6ITB9KSxvfX0pLFB0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7cmVkdWNlOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1hbihlKSxuPWFyZ3VtZW50cy5sZW5ndGg8MixvPW4/dm9pZCAwOmFyZ3VtZW50c1sxXTtpZihRdCh0KSxJcihyLGZ1bmN0aW9uKHIpe24/KG49ITEsbz1yKTpvPXQobyxyLHIsZSl9LHtJU19JVEVSQVRPUjohMH0pLG4pdGhyb3cgVHlwZUVycm9yKFwiUmVkdWNlIG9mIGVtcHR5IHNldCB3aXRoIG5vIGluaXRpYWwgdmFsdWVcIik7cmV0dXJuIG99fSksUHQoe3RhcmdldDpcIlNldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtzb21lOmZ1bmN0aW9uKHQpe3ZhciBlPXgodGhpcykscj1hbihlKSxuPVp0KHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsMyk7cmV0dXJuIElyKHIsZnVuY3Rpb24odCxyKXtpZihuKHQsdCxlKSlyZXR1cm4gcigpfSx7SVNfSVRFUkFUT1I6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pLFB0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7c3ltbWV0cmljRGlmZmVyZW5jZTpmdW5jdGlvbih0KXt2YXIgZT14KHRoaXMpLHI9bmV3KGVuKGUsb3QoXCJTZXRcIikpKShlKSxuPVF0KHIuZGVsZXRlKSxvPVF0KHIuYWRkKTtyZXR1cm4gSXIodCxmdW5jdGlvbih0KXtuLmNhbGwocix0KXx8by5jYWxsKHIsdCl9KSxyfX0pLFB0KHt0YXJnZXQ6XCJTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7dW5pb246ZnVuY3Rpb24odCl7dmFyIGU9eCh0aGlzKSxyPW5ldyhlbihlLG90KFwiU2V0XCIpKSkoZSk7cmV0dXJuIElyKHQsUXQoci5hZGQpLHt0aGF0OnJ9KSxyfX0pO3ZhciB1bj14ci5nZXRXZWFrRGF0YSxjbj10dC5zZXQsc249dHQuZ2V0dGVyRm9yLGZuPXVlLmZpbmQsbG49dWUuZmluZEluZGV4LGhuPTAscG49ZnVuY3Rpb24odCl7cmV0dXJuIHQuZnJvemVufHwodC5mcm96ZW49bmV3IGRuKX0sZG49ZnVuY3Rpb24oKXt0aGlzLmVudHJpZXM9W119LHZuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZuKHQuZW50cmllcyxmdW5jdGlvbih0KXtyZXR1cm4gdFswXT09PWV9KX07ZG4ucHJvdG90eXBlPXtnZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dm4odGhpcyx0KTtpZihlKXJldHVybiBlWzFdfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuISF2bih0aGlzLHQpfSxzZXQ6ZnVuY3Rpb24odCxlKXt2YXIgcj12bih0aGlzLHQpO3I/clsxXT1lOnRoaXMuZW50cmllcy5wdXNoKFt0LGVdKX0sZGVsZXRlOmZ1bmN0aW9uKHQpe3ZhciBlPWxuKHRoaXMuZW50cmllcyxmdW5jdGlvbihlKXtyZXR1cm4gZVswXT09PXR9KTtyZXR1cm5+ZSYmdGhpcy5lbnRyaWVzLnNwbGljZShlLDEpLCEhfmV9fTt2YXIgZ249e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvPXQoZnVuY3Rpb24odCxpKXtfcih0LG8sZSksY24odCx7dHlwZTplLGlkOmhuKyssZnJvemVuOnZvaWQgMH0pLG51bGwhPWkmJklyKGksdFtuXSx7dGhhdDp0LEFTX0VOVFJJRVM6cn0pfSksaT1zbihlKSxhPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1pKHQpLG89dW4oeChlKSwhMCk7cmV0dXJuITA9PT1vP3BuKG4pLnNldChlLHIpOm9bbi5pZF09cix0fTtyZXR1cm4gTXIoby5wcm90b3R5cGUse2RlbGV0ZTpmdW5jdGlvbih0KXt2YXIgZT1pKHRoaXMpO2lmKCFnKHQpKXJldHVybiExO3ZhciByPXVuKHQpO3JldHVybiEwPT09cj9wbihlKS5kZWxldGUodCk6ciYmYihyLGUuaWQpJiZkZWxldGUgcltlLmlkXX0saGFzOmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcyk7aWYoIWcodCkpcmV0dXJuITE7dmFyIHI9dW4odCk7cmV0dXJuITA9PT1yP3BuKGUpLmhhcyh0KTpyJiZiKHIsZS5pZCl9fSksTXIoby5wcm90b3R5cGUscj97Z2V0OmZ1bmN0aW9uKHQpe3ZhciBlPWkodGhpcyk7aWYoZyh0KSl7dmFyIHI9dW4odCk7cmV0dXJuITA9PT1yP3BuKGUpLmdldCh0KTpyP3JbZS5pZF06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEodGhpcyx0LGUpfX06e2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gYSh0aGlzLHQsITApfX0pLG99fSx5bj1lKGZ1bmN0aW9uKHQpe3ZhciBlLHI9dHQuZW5mb3JjZSxvPSFuLkFjdGl2ZVhPYmplY3QmJlwiQWN0aXZlWE9iamVjdFwiaW4gbixpPU9iamVjdC5pc0V4dGVuc2libGUsYT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx1PXQuZXhwb3J0cz1QcihcIldlYWtNYXBcIixhLGduKTtpZihGJiZvKXtlPWduLmdldENvbnN0cnVjdG9yKGEsXCJXZWFrTWFwXCIsITApLHhyLlJFUVVJUkVEPSEwO3ZhciBjPXUucHJvdG90eXBlLHM9Yy5kZWxldGUsZj1jLmhhcyxsPWMuZ2V0LGg9Yy5zZXQ7TXIoYyx7ZGVsZXRlOmZ1bmN0aW9uKHQpe2lmKGcodCkmJiFpKHQpKXt2YXIgbj1yKHRoaXMpO3JldHVybiBuLmZyb3plbnx8KG4uZnJvemVuPW5ldyBlKSxzLmNhbGwodGhpcyx0KXx8bi5mcm96ZW4uZGVsZXRlKHQpfXJldHVybiBzLmNhbGwodGhpcyx0KX0saGFzOmZ1bmN0aW9uKHQpe2lmKGcodCkmJiFpKHQpKXt2YXIgbj1yKHRoaXMpO3JldHVybiBuLmZyb3plbnx8KG4uZnJvemVuPW5ldyBlKSxmLmNhbGwodGhpcyx0KXx8bi5mcm96ZW4uaGFzKHQpfXJldHVybiBmLmNhbGwodGhpcyx0KX0sZ2V0OmZ1bmN0aW9uKHQpe2lmKGcodCkmJiFpKHQpKXt2YXIgbj1yKHRoaXMpO3JldHVybiBuLmZyb3plbnx8KG4uZnJvemVuPW5ldyBlKSxmLmNhbGwodGhpcyx0KT9sLmNhbGwodGhpcyx0KTpuLmZyb3plbi5nZXQodCl9cmV0dXJuIGwuY2FsbCh0aGlzLHQpfSxzZXQ6ZnVuY3Rpb24odCxuKXtpZihnKHQpJiYhaSh0KSl7dmFyIG89cih0aGlzKTtvLmZyb3plbnx8KG8uZnJvemVuPW5ldyBlKSxmLmNhbGwodGhpcyx0KT9oLmNhbGwodGhpcyx0LG4pOm8uZnJvemVuLnNldCh0LG4pfWVsc2UgaC5jYWxsKHRoaXMsdCxuKTtyZXR1cm4gdGhpc319KX19KTtQdCh7dGFyZ2V0OlwiV2Vha01hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtlbXBsYWNlOlFyfSksUHQoe3RhcmdldDpcIldlYWtNYXBcIixzdGF0OiEwfSx7ZnJvbTpYcn0pLFB0KHt0YXJnZXQ6XCJXZWFrTWFwXCIsc3RhdDohMH0se29mOllyfSksUHQoe3RhcmdldDpcIldlYWtNYXBcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7ZGVsZXRlQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIEpyLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSxQdCh7dGFyZ2V0OlwiV2Vha01hcFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHt1cHNlcnQ6cm59KSxQcihcIldlYWtTZXRcIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdCh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxnbiksUHQoe3RhcmdldDpcIldlYWtTZXRcIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpCfSx7YWRkQWxsOmZ1bmN0aW9uKCl7cmV0dXJuIG9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSxQdCh7dGFyZ2V0OlwiV2Vha1NldFwiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOkJ9LHtkZWxldGVBbGw6ZnVuY3Rpb24oKXtyZXR1cm4gSnIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pLFB0KHt0YXJnZXQ6XCJXZWFrU2V0XCIsc3RhdDohMH0se2Zyb206WHJ9KSxQdCh7dGFyZ2V0OlwiV2Vha1NldFwiLHN0YXQ6ITB9LHtvZjpZcn0pO3ZhciBtbj1cIlxcdFxcblxcdlxcZlxcciDCoOGagOKAgOKAgeKAguKAg+KAhOKAheKAhuKAh+KAiOKAieKAiuKAr+KBn+OAgFxcdTIwMjhcXHUyMDI5XFx1ZmVmZlwiLGJuPVwiW1wiK21uK1wiXVwiLEVuPVJlZ0V4cChcIl5cIitibitibitcIipcIiksU249UmVnRXhwKGJuK2JuK1wiKiRcIiksd249ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciByPVN0cmluZyhkKGUpKTtyZXR1cm4gMSZ0JiYocj1yLnJlcGxhY2UoRW4sXCJcIikpLDImdCYmKHI9ci5yZXBsYWNlKFNuLFwiXCIpKSxyfX0sUm49e3N0YXJ0OnduKDEpLGVuZDp3bigyKSx0cmltOnduKDMpfSxUbj1idC5mLE9uPU8uZix4bj1JLmYsQW49Um4udHJpbSxJbj1cIk51bWJlclwiLF9uPW4uTnVtYmVyLGpuPV9uLnByb3RvdHlwZSxQbj1sKEh0KGpuKSk9PUluLE1uPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLGksYSx1LGMscz15KHQsITEpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBzJiZzLmxlbmd0aD4yKWlmKDQzPT09KGU9KHM9QW4ocykpLmNoYXJDb2RlQXQoMCkpfHw0NT09PWUpe2lmKDg4PT09KHI9cy5jaGFyQ29kZUF0KDIpKXx8MTIwPT09cilyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1lKXtzd2l0Y2gocy5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6bj0yLG89NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpuPTgsbz01NTticmVhaztkZWZhdWx0OnJldHVybitzfWZvcihhPShpPXMuc2xpY2UoMikpLmxlbmd0aCx1PTA7dTxhO3UrKylpZigoYz1pLmNoYXJDb2RlQXQodSkpPDQ4fHxjPm8pcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoaSxuKX1yZXR1cm4rc307aWYoX3QoSW4sIV9uKFwiIDBvMVwiKXx8IV9uKFwiMGIxXCIpfHxfbihcIisweDFcIikpKXtmb3IodmFyIE5uLFVuPWZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8MT8wOnQscj10aGlzO3JldHVybiByIGluc3RhbmNlb2YgVW4mJihQbj9vKGZ1bmN0aW9uKCl7am4udmFsdWVPZi5jYWxsKHIpfSk6bChyKSE9SW4pP2pyKG5ldyBfbihNbihlKSkscixVbik6TW4oZSl9LGtuPWk/VG4oX24pOlwiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXIsZnJvbVN0cmluZyxyYW5nZVwiLnNwbGl0KFwiLFwiKSxMbj0wO2tuLmxlbmd0aD5MbjtMbisrKWIoX24sTm49a25bTG5dKSYmIWIoVW4sTm4pJiZ4bihVbixObixPbihfbixObikpO1VuLnByb3RvdHlwZT1qbixqbi5jb25zdHJ1Y3Rvcj1VbixldChuLEluLFVuKX1QdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSk7dmFyIERuPW4uaXNGaW5pdGU7UHQoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtpc0Zpbml0ZTpOdW1iZXIuaXNGaW5pdGV8fGZ1bmN0aW9uKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0JiZEbih0KX19KTt2YXIgQ249TWF0aC5mbG9vcixGbj1mdW5jdGlvbih0KXtyZXR1cm4hZyh0KSYmaXNGaW5pdGUodCkmJkNuKHQpPT09dH07UHQoe3RhcmdldDpcIk51bWJlclwiLHN0YXQ6ITB9LHtpc0ludGVnZXI6Rm59KSxQdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se2lzTmFOOmZ1bmN0aW9uKHQpe3JldHVybiB0IT10fX0pO3ZhciBCbj1NYXRoLmFicztQdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se2lzU2FmZUludGVnZXI6ZnVuY3Rpb24odCl7cmV0dXJuIEZuKHQpJiZCbih0KTw9OTAwNzE5OTI1NDc0MDk5MX19KSxQdCh7dGFyZ2V0OlwiTnVtYmVyXCIsc3RhdDohMH0se01BWF9TQUZFX0lOVEVHRVI6OTAwNzE5OTI1NDc0MDk5MX0pLFB0KHt0YXJnZXQ6XCJOdW1iZXJcIixzdGF0OiEwfSx7TUlOX1NBRkVfSU5URUdFUjotOTAwNzE5OTI1NDc0MDk5MX0pO3ZhciBXbj1jLmYsem49ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgcixuPXYoZSksbz1XdChuKSxhPW8ubGVuZ3RoLHU9MCxjPVtdO2E+dTspcj1vW3UrK10saSYmIVduLmNhbGwobixyKXx8Yy5wdXNoKHQ/W3IsbltyXV06bltyXSk7cmV0dXJuIGN9fSxHbj17ZW50cmllczp6bighMCksdmFsdWVzOnpuKCExKX0sS249R24uZW50cmllcztQdCh7dGFyZ2V0OlwiT2JqZWN0XCIsc3RhdDohMH0se2VudHJpZXM6ZnVuY3Rpb24odCl7cmV0dXJuIEtuKHQpfX0pLFB0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLHNoYW06IWl9LHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG49dih0KSxvPU8uZixpPVN0KG4pLGE9e30sdT0wO2kubGVuZ3RoPnU7KXZvaWQgMCE9PShyPW8obixlPWlbdSsrXSkpJiZaZShhLGUscik7cmV0dXJuIGF9fSk7dmFyICRuPU9iamVjdC5pc3x8ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWU/MCE9PXR8fDEvdD09MS9lOnQhPXQmJmUhPWV9O1B0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwfSx7aXM6JG59KTt2YXIgVm49byhmdW5jdGlvbigpe1d0KDEpfSk7UHQoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITAsZm9yY2VkOlZufSx7a2V5czpmdW5jdGlvbih0KXtyZXR1cm4gV3QoTXQodCkpfX0pO3ZhciBxbj1Hbi52YWx1ZXM7UHQoe3RhcmdldDpcIk9iamVjdFwiLHN0YXQ6ITB9LHt2YWx1ZXM6ZnVuY3Rpb24odCl7cmV0dXJuIHFuKHQpfX0pO3ZhciBIbj1FZS5jb2RlQXQ7UHQoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwfSx7Y29kZVBvaW50QXQ6ZnVuY3Rpb24odCl7cmV0dXJuIEhuKHRoaXMsdCl9fSksZWUoXCJTdHJpbmdcIixcImNvZGVQb2ludEF0XCIpO3ZhciBYbixZbj1CdChcIm1hdGNoXCIpLEpuPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBnKHQpJiYodm9pZCAwIT09KGU9dFtZbl0pPyEhZTpcIlJlZ0V4cFwiPT1sKHQpKX0sUW49ZnVuY3Rpb24odCl7aWYoSm4odCkpdGhyb3cgVHlwZUVycm9yKFwiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zXCIpO3JldHVybiB0fSxabj1CdChcIm1hdGNoXCIpLHRvPWZ1bmN0aW9uKHQpe3ZhciBlPS8uLzt0cnl7XCIvLi9cIlt0XShlKX1jYXRjaChyKXt0cnl7cmV0dXJuIGVbWm5dPSExLFwiLy4vXCJbdF0oZSl9Y2F0Y2godCl7fX1yZXR1cm4hMX0sZW89Ty5mLHJvPVwiXCIuZW5kc1dpdGgsbm89TWF0aC5taW4sb289dG8oXCJlbmRzV2l0aFwiKSxpbz0hKG9vfHwoWG49ZW8oU3RyaW5nLnByb3RvdHlwZSxcImVuZHNXaXRoXCIpLCFYbnx8WG4ud3JpdGFibGUpKTtQdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOiFpbyYmIW9vfSx7ZW5kc1dpdGg6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKGQodGhpcykpO1FuKHQpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG49c3QoZS5sZW5ndGgpLG89dm9pZCAwPT09cj9uOm5vKHN0KHIpLG4pLGk9U3RyaW5nKHQpO3JldHVybiBybz9yby5jYWxsKGUsaSxvKTplLnNsaWNlKG8taS5sZW5ndGgsbyk9PT1pfX0pLGVlKFwiU3RyaW5nXCIsXCJlbmRzV2l0aFwiKTt2YXIgYW89U3RyaW5nLmZyb21DaGFyQ29kZSx1bz1TdHJpbmcuZnJvbUNvZGVQb2ludDtQdCh7dGFyZ2V0OlwiU3RyaW5nXCIsc3RhdDohMCxmb3JjZWQ6ISF1byYmMSE9dW8ubGVuZ3RofSx7ZnJvbUNvZGVQb2ludDpmdW5jdGlvbih0KXtmb3IodmFyIGUscj1bXSxuPWFyZ3VtZW50cy5sZW5ndGgsbz0wO24+bzspe2lmKGU9K2FyZ3VtZW50c1tvKytdLGh0KGUsMTExNDExMSkhPT1lKXRocm93IFJhbmdlRXJyb3IoZStcIiBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50XCIpO3IucHVzaChlPDY1NTM2P2FvKGUpOmFvKDU1Mjk2KygoZS09NjU1MzYpPj4xMCksZSUxMDI0KzU2MzIwKSl9cmV0dXJuIHIuam9pbihcIlwiKX19KSxQdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITAsZm9yY2VkOiF0byhcImluY2x1ZGVzXCIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24odCl7cmV0dXJuISF+U3RyaW5nKGQodGhpcykpLmluZGV4T2YoUW4odCksYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGVlKFwiU3RyaW5nXCIsXCJpbmNsdWRlc1wiKTt2YXIgY289XCJcIi5yZXBlYXR8fGZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZyhkKHRoaXMpKSxyPVwiXCIsbj11dCh0KTtpZihuPDB8fEluZmluaXR5PT1uKXRocm93IFJhbmdlRXJyb3IoXCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnNcIik7Zm9yKDtuPjA7KG4+Pj49MSkmJihlKz1lKSkxJm4mJihyKz1lKTtyZXR1cm4gcn0sc289TWF0aC5jZWlsLGZvPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7dmFyIG8saSxhPVN0cmluZyhkKGUpKSx1PWEubGVuZ3RoLGM9dm9pZCAwPT09bj9cIiBcIjpTdHJpbmcobikscz1zdChyKTtyZXR1cm4gczw9dXx8XCJcIj09Yz9hOigoaT1jby5jYWxsKGMsc28oKG89cy11KS9jLmxlbmd0aCkpKS5sZW5ndGg+byYmKGk9aS5zbGljZSgwLG8pKSx0P2EraTppK2EpfX0sbG89e3N0YXJ0OmZvKCExKSxlbmQ6Zm8oITApfSxobz1vdChcIm5hdmlnYXRvclwiLFwidXNlckFnZW50XCIpfHxcIlwiLHBvPS9WZXJzaW9uXFwvMTBcXC5cXGQrKFxcLlxcZCspPyggTW9iaWxlXFwvXFx3Kyk/IFNhZmFyaVxcLy8udGVzdChobyksdm89bG8uc3RhcnQ7UHQoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpwb30se3BhZFN0YXJ0OmZ1bmN0aW9uKHQpe3JldHVybiB2byh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGVlKFwiU3RyaW5nXCIsXCJwYWRTdGFydFwiKTt2YXIgZ289bG8uZW5kO1B0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6cG99LHtwYWRFbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGdvKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksZWUoXCJTdHJpbmdcIixcInBhZEVuZFwiKSxQdCh7dGFyZ2V0OlwiU3RyaW5nXCIsc3RhdDohMH0se3JhdzpmdW5jdGlvbih0KXtmb3IodmFyIGU9dih0LnJhdykscj1zdChlLmxlbmd0aCksbj1hcmd1bWVudHMubGVuZ3RoLG89W10saT0wO3I+aTspby5wdXNoKFN0cmluZyhlW2krK10pKSxpPG4mJm8ucHVzaChTdHJpbmcoYXJndW1lbnRzW2ldKSk7cmV0dXJuIG8uam9pbihcIlwiKX19KSxQdCh7dGFyZ2V0OlwiU3RyaW5nXCIscHJvdG86ITB9LHtyZXBlYXQ6Y299KSxlZShcIlN0cmluZ1wiLFwicmVwZWF0XCIpO3ZhciB5bz1PLmYsbW89XCJcIi5zdGFydHNXaXRoLGJvPU1hdGgubWluLEVvPXRvKFwic3RhcnRzV2l0aFwiKSxTbz0hRW8mJiEhZnVuY3Rpb24oKXt2YXIgdD15byhTdHJpbmcucHJvdG90eXBlLFwic3RhcnRzV2l0aFwiKTtyZXR1cm4gdCYmIXQud3JpdGFibGV9KCk7UHQoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDohU28mJiFFb30se3N0YXJ0c1dpdGg6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKGQodGhpcykpO1FuKHQpO3ZhciByPXN0KGJvKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGUubGVuZ3RoKSksbj1TdHJpbmcodCk7cmV0dXJuIG1vP21vLmNhbGwoZSxuLHIpOmUuc2xpY2UocixyK24ubGVuZ3RoKT09PW59fSksZWUoXCJTdHJpbmdcIixcInN0YXJ0c1dpdGhcIik7dmFyIHdvPWZ1bmN0aW9uKHQpe3JldHVybiBvKGZ1bmN0aW9uKCl7cmV0dXJuISFtblt0XSgpfHxcIuKAi8KF4aCOXCIhPVwi4oCLwoXhoI5cIlt0XSgpfHxtblt0XS5uYW1lIT09dH0pfSxSbz1Sbi5zdGFydCxUbz13byhcInRyaW1TdGFydFwiKSxPbz1Ubz9mdW5jdGlvbigpe3JldHVybiBSbyh0aGlzKX06XCJcIi50cmltU3RhcnQ7UHQoe3RhcmdldDpcIlN0cmluZ1wiLHByb3RvOiEwLGZvcmNlZDpUb30se3RyaW1TdGFydDpPbyx0cmltTGVmdDpPb30pLGVlKFwiU3RyaW5nXCIsXCJ0cmltTGVmdFwiKTt2YXIgeG89Um4uZW5kLEFvPXdvKFwidHJpbUVuZFwiKSxJbz1Bbz9mdW5jdGlvbigpe3JldHVybiB4byh0aGlzKX06XCJcIi50cmltRW5kO1B0KHt0YXJnZXQ6XCJTdHJpbmdcIixwcm90bzohMCxmb3JjZWQ6QW99LHt0cmltRW5kOklvLHRyaW1SaWdodDpJb30pLGVlKFwiU3RyaW5nXCIsXCJ0cmltUmlnaHRcIik7dmFyIF9vPW90KFwiUmVmbGVjdFwiLFwiYXBwbHlcIiksam89RnVuY3Rpb24uYXBwbHksUG89IW8oZnVuY3Rpb24oKXtfbyhmdW5jdGlvbigpe30pfSk7UHQoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwLGZvcmNlZDpQb30se2FwcGx5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUXQodCkseChyKSxfbz9fbyh0LGUscik6am8uY2FsbCh0LGUscil9fSk7dmFyIE1vPVtdLnNsaWNlLE5vPXt9LFVvPWZ1bmN0aW9uKHQsZSxyKXtpZighKGUgaW4gTm8pKXtmb3IodmFyIG49W10sbz0wO288ZTtvKyspbltvXT1cImFbXCIrbytcIl1cIjtOb1tlXT1GdW5jdGlvbihcIkMsYVwiLFwicmV0dXJuIG5ldyBDKFwiK24uam9pbihcIixcIikrXCIpXCIpfXJldHVybiBOb1tlXSh0LHIpfSxrbz1GdW5jdGlvbi5iaW5kfHxmdW5jdGlvbih0KXt2YXIgZT1RdCh0aGlzKSxyPU1vLmNhbGwoYXJndW1lbnRzLDEpLG49ZnVuY3Rpb24oKXt2YXIgbz1yLmNvbmNhdChNby5jYWxsKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGluc3RhbmNlb2Ygbj9VbyhlLG8ubGVuZ3RoLG8pOmUuYXBwbHkodCxvKX07cmV0dXJuIGcoZS5wcm90b3R5cGUpJiYobi5wcm90b3R5cGU9ZS5wcm90b3R5cGUpLG59LExvPW90KFwiUmVmbGVjdFwiLFwiY29uc3RydWN0XCIpLERvPW8oZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiEoTG8oZnVuY3Rpb24oKXt9LFtdLHQpaW5zdGFuY2VvZiB0KX0pLENvPSFvKGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXt9KX0pLEZvPURvfHxDbztQdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsZm9yY2VkOkZvLHNoYW06Rm99LHtjb25zdHJ1Y3Q6ZnVuY3Rpb24odCxlKXtRdCh0KSx4KGUpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz90OlF0KGFyZ3VtZW50c1syXSk7aWYoQ28mJiFEbylyZXR1cm4gTG8odCxlLHIpO2lmKHQ9PXIpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgdDtjYXNlIDE6cmV0dXJuIG5ldyB0KGVbMF0pO2Nhc2UgMjpyZXR1cm4gbmV3IHQoZVswXSxlWzFdKTtjYXNlIDM6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyB0KGVbMF0sZVsxXSxlWzJdLGVbM10pfXZhciBuPVtudWxsXTtyZXR1cm4gbi5wdXNoLmFwcGx5KG4sZSksbmV3KGtvLmFwcGx5KHQsbikpfXZhciBvPXIucHJvdG90eXBlLGk9SHQoZyhvKT9vOk9iamVjdC5wcm90b3R5cGUpLGE9RnVuY3Rpb24uYXBwbHkuY2FsbCh0LGksZSk7cmV0dXJuIGcoYSk/YTppfX0pO3ZhciBCbz1vKGZ1bmN0aW9uKCl7UmVmbGVjdC5kZWZpbmVQcm9wZXJ0eShJLmYoe30sMSx7dmFsdWU6MX0pLDEse3ZhbHVlOjJ9KX0pO1B0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxmb3JjZWQ6Qm8sc2hhbTohaX0se2RlZmluZVByb3BlcnR5OmZ1bmN0aW9uKHQsZSxyKXt4KHQpO3ZhciBuPXkoZSwhMCk7eChyKTt0cnl7cmV0dXJuIEkuZih0LG4sciksITB9Y2F0Y2godCl7cmV0dXJuITF9fX0pO3ZhciBXbz1PLmY7UHQoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7ZGVsZXRlUHJvcGVydHk6ZnVuY3Rpb24odCxlKXt2YXIgcj1Xbyh4KHQpLGUpO3JldHVybiEociYmIXIuY29uZmlndXJhYmxlKSYmZGVsZXRlIHRbZV19fSksUHQoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0OmZ1bmN0aW9uIHQoZSxyKXt2YXIgbixvLGk9YXJndW1lbnRzLmxlbmd0aDwzP2U6YXJndW1lbnRzWzJdO3JldHVybiB4KGUpPT09aT9lW3JdOihuPU8uZihlLHIpKT9iKG4sXCJ2YWx1ZVwiKT9uLnZhbHVlOnZvaWQgMD09PW4uZ2V0P3ZvaWQgMDpuLmdldC5jYWxsKGkpOmcobz1UZShlKSk/dChvLHIsaSk6dm9pZCAwfX0pLFB0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxzaGFtOiFpfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE8uZih4KHQpLGUpfX0pLFB0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMCxzaGFtOiFTZX0se2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiBUZSh4KHQpKX19KSxQdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtoYXM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSBpbiB0fX0pO3ZhciB6bz1PYmplY3QuaXNFeHRlbnNpYmxlO1B0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2lzRXh0ZW5zaWJsZTpmdW5jdGlvbih0KXtyZXR1cm4geCh0KSwhem98fHpvKHQpfX0pLFB0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se293bktleXM6U3R9KSxQdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsc2hhbTohT3J9LHtwcmV2ZW50RXh0ZW5zaW9uczpmdW5jdGlvbih0KXt4KHQpO3RyeXt2YXIgZT1vdChcIk9iamVjdFwiLFwicHJldmVudEV4dGVuc2lvbnNcIik7cmV0dXJuIGUmJmUodCksITB9Y2F0Y2godCl7cmV0dXJuITF9fX0pO3ZhciBHbz1vKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9LGU9SS5mKG5ldyB0LFwiYVwiLHtjb25maWd1cmFibGU6ITB9KTtyZXR1cm4hMSE9PVJlZmxlY3Quc2V0KHQucHJvdG90eXBlLFwiYVwiLDEsZSl9KTtQdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITAsZm9yY2VkOkdvfSx7c2V0OmZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBvLGksYT1hcmd1bWVudHMubGVuZ3RoPDQ/ZTphcmd1bWVudHNbM10sdT1PLmYoeChlKSxyKTtpZighdSl7aWYoZyhpPVRlKGUpKSlyZXR1cm4gdChpLHIsbixhKTt1PXMoMCl9aWYoYih1LFwidmFsdWVcIikpe2lmKCExPT09dS53cml0YWJsZXx8IWcoYSkpcmV0dXJuITE7aWYobz1PLmYoYSxyKSl7aWYoby5nZXR8fG8uc2V0fHwhMT09PW8ud3JpdGFibGUpcmV0dXJuITE7by52YWx1ZT1uLEkuZihhLHIsbyl9ZWxzZSBJLmYoYSxyLHMoMCxuKSk7cmV0dXJuITB9cmV0dXJuIHZvaWQgMCE9PXUuc2V0JiYodS5zZXQuY2FsbChhLG4pLCEwKX19KSxrZSYmUHQoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7c2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24odCxlKXt4KHQpLFVlKGUpO3RyeXtyZXR1cm4ga2UodCxlKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSksUHQoe2dsb2JhbDohMH0se1JlZmxlY3Q6e319KSxqZShuLlJlZmxlY3QsXCJSZWZsZWN0XCIsITApO3ZhciBLbz1XKFwibWV0YWRhdGFcIiksJG89S28uc3RvcmV8fChLby5zdG9yZT1uZXcgeW4pLFZvPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0kby5nZXQodCk7aWYoIW4pe2lmKCFyKXJldHVybjskby5zZXQodCxuPW5ldyBCcil9dmFyIG89bi5nZXQoZSk7aWYoIW8pe2lmKCFyKXJldHVybjtuLnNldChlLG89bmV3IEJyKX1yZXR1cm4gb30scW89e3N0b3JlOiRvLGdldE1hcDpWbyxoYXM6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVZvKGUsciwhMSk7cmV0dXJuIHZvaWQgMCE9PW4mJm4uaGFzKHQpfSxnZXQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVZvKGUsciwhMSk7cmV0dXJuIHZvaWQgMD09PW4/dm9pZCAwOm4uZ2V0KHQpfSxzZXQ6ZnVuY3Rpb24odCxlLHIsbil7Vm8ocixuLCEwKS5zZXQodCxlKX0sa2V5czpmdW5jdGlvbih0LGUpe3ZhciByPVZvKHQsZSwhMSksbj1bXTtyZXR1cm4gciYmci5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bi5wdXNoKGUpfSksbn0sdG9LZXk6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXR8fFwic3ltYm9sXCI9PXR5cGVvZiB0P3Q6U3RyaW5nKHQpfX0sSG89cW8udG9LZXksWG89cW8uc2V0O1B0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2RlZmluZU1ldGFkYXRhOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPDQ/dm9pZCAwOkhvKGFyZ3VtZW50c1szXSk7WG8odCxlLHgociksbil9fSk7dmFyIFlvPXFvLnRvS2V5LEpvPXFvLmdldE1hcCxRbz1xby5zdG9yZTtQdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtkZWxldGVNZXRhZGF0YTpmdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6WW8oYXJndW1lbnRzWzJdKSxuPUpvKHgoZSksciwhMSk7aWYodm9pZCAwPT09bnx8IW4uZGVsZXRlKHQpKXJldHVybiExO2lmKG4uc2l6ZSlyZXR1cm4hMDt2YXIgbz1Rby5nZXQoZSk7cmV0dXJuIG8uZGVsZXRlKHIpLCEhby5zaXplfHxRby5kZWxldGUoZSl9fSk7dmFyIFpvPXFvLmhhcyx0aT1xby5nZXQsZWk9cW8udG9LZXkscmk9ZnVuY3Rpb24odCxlLHIpe2lmKFpvKHQsZSxyKSlyZXR1cm4gdGkodCxlLHIpO3ZhciBuPVRlKGUpO3JldHVybiBudWxsIT09bj9yaSh0LG4scik6dm9pZCAwfTtQdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtnZXRNZXRhZGF0YTpmdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6ZWkoYXJndW1lbnRzWzJdKTtyZXR1cm4gcmkodCx4KGUpLHIpfX0pO3ZhciBuaT1xby5rZXlzLG9pPXFvLnRvS2V5LGlpPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmkodCxlKSxuPVRlKHQpO2lmKG51bGw9PT1uKXJldHVybiByO3ZhciBvLGksYT1paShuLGUpO3JldHVybiBhLmxlbmd0aD9yLmxlbmd0aD8obz1uZXcgbm4oci5jb25jYXQoYSkpLElyKG8sKGk9W10pLnB1c2gse3RoYXQ6aX0pLGkpOmE6cn07UHQoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0TWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6b2koYXJndW1lbnRzWzFdKTtyZXR1cm4gaWkoeCh0KSxlKX19KTt2YXIgYWk9cW8uZ2V0LHVpPXFvLnRvS2V5O1B0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2dldE93bk1ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDp1aShhcmd1bWVudHNbMl0pO3JldHVybiBhaSh0LHgoZSkscil9fSk7dmFyIGNpPXFvLmtleXMsc2k9cW8udG9LZXk7UHQoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7Z2V0T3duTWV0YWRhdGFLZXlzOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6c2koYXJndW1lbnRzWzFdKTtyZXR1cm4gY2koeCh0KSxlKX19KTt2YXIgZmk9cW8uaGFzLGxpPXFvLnRvS2V5LGhpPWZ1bmN0aW9uKHQsZSxyKXtpZihmaSh0LGUscikpcmV0dXJuITA7dmFyIG49VGUoZSk7cmV0dXJuIG51bGwhPT1uJiZoaSh0LG4scil9O1B0KHt0YXJnZXQ6XCJSZWZsZWN0XCIsc3RhdDohMH0se2hhc01ldGFkYXRhOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpsaShhcmd1bWVudHNbMl0pO3JldHVybiBoaSh0LHgoZSkscil9fSk7dmFyIHBpPXFvLmhhcyxkaT1xby50b0tleTtQdCh7dGFyZ2V0OlwiUmVmbGVjdFwiLHN0YXQ6ITB9LHtoYXNPd25NZXRhZGF0YTpmdW5jdGlvbih0LGUpe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6ZGkoYXJndW1lbnRzWzJdKTtyZXR1cm4gcGkodCx4KGUpLHIpfX0pO3ZhciB2aT1xby50b0tleSxnaT1xby5zZXQ7UHQoe3RhcmdldDpcIlJlZmxlY3RcIixzdGF0OiEwfSx7bWV0YWRhdGE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixuKXtnaSh0LGUseChyKSx2aShuKSl9fX0pO3ZhciB5aT1mdW5jdGlvbigpe3ZhciB0PXgodGhpcyksZT1cIlwiO3JldHVybiB0Lmdsb2JhbCYmKGUrPVwiZ1wiKSx0Lmlnbm9yZUNhc2UmJihlKz1cImlcIiksdC5tdWx0aWxpbmUmJihlKz1cIm1cIiksdC5kb3RBbGwmJihlKz1cInNcIiksdC51bmljb2RlJiYoZSs9XCJ1XCIpLHQuc3RpY2t5JiYoZSs9XCJ5XCIpLGV9O2Z1bmN0aW9uIG1pKHQsZSl7cmV0dXJuIFJlZ0V4cCh0LGUpfXZhciBiaT17VU5TVVBQT1JURURfWTpvKGZ1bmN0aW9uKCl7dmFyIHQ9bWkoXCJhXCIsXCJ5XCIpO3JldHVybiB0Lmxhc3RJbmRleD0yLG51bGwhPXQuZXhlYyhcImFiY2RcIil9KSxCUk9LRU5fQ0FSRVQ6byhmdW5jdGlvbigpe3ZhciB0PW1pKFwiXnJcIixcImd5XCIpO3JldHVybiB0Lmxhc3RJbmRleD0yLG51bGwhPXQuZXhlYyhcInN0clwiKX0pfSxFaT1JLmYsU2k9YnQuZix3aT10dC5zZXQsUmk9QnQoXCJtYXRjaFwiKSxUaT1uLlJlZ0V4cCxPaT1UaS5wcm90b3R5cGUseGk9L2EvZyxBaT0vYS9nLElpPW5ldyBUaSh4aSkhPT14aSxfaT1iaS5VTlNVUFBPUlRFRF9ZO2lmKGkmJl90KFwiUmVnRXhwXCIsIUlpfHxfaXx8byhmdW5jdGlvbigpe3JldHVybiBBaVtSaV09ITEsVGkoeGkpIT14aXx8VGkoQWkpPT1BaXx8XCIvYS9pXCIhPVRpKHhpLFwiaVwiKX0pKSl7Zm9yKHZhciBqaT1mdW5jdGlvbih0LGUpe3ZhciByLG49dGhpcyBpbnN0YW5jZW9mIGppLG89Sm4odCksaT12b2lkIDA9PT1lO2lmKCFuJiZvJiZ0LmNvbnN0cnVjdG9yPT09amkmJmkpcmV0dXJuIHQ7SWk/byYmIWkmJih0PXQuc291cmNlKTp0IGluc3RhbmNlb2YgamkmJihpJiYoZT15aS5jYWxsKHQpKSx0PXQuc291cmNlKSxfaSYmKHI9ISFlJiZlLmluZGV4T2YoXCJ5XCIpPi0xKSYmKGU9ZS5yZXBsYWNlKC95L2csXCJcIikpO3ZhciBhPWpyKElpP25ldyBUaSh0LGUpOlRpKHQsZSksbj90aGlzOk9pLGppKTtyZXR1cm4gX2kmJnImJndpKGEse3N0aWNreTpyfSksYX0sUGk9ZnVuY3Rpb24odCl7dCBpbiBqaXx8RWkoamksdCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBUaVt0XX0sc2V0OmZ1bmN0aW9uKGUpe1RpW3RdPWV9fSl9LE1pPVNpKFRpKSxOaT0wO01pLmxlbmd0aD5OaTspUGkoTWlbTmkrK10pO09pLmNvbnN0cnVjdG9yPWppLGppLnByb3RvdHlwZT1PaSxldChuLFwiUmVnRXhwXCIsamkpfVVyKFwiUmVnRXhwXCIpO3ZhciBVaT1cInRvU3RyaW5nXCIsa2k9UmVnRXhwLnByb3RvdHlwZSxMaT1raS50b1N0cmluZzsobyhmdW5jdGlvbigpe3JldHVyblwiL2EvYlwiIT1MaS5jYWxsKHtzb3VyY2U6XCJhXCIsZmxhZ3M6XCJiXCJ9KX0pfHxMaS5uYW1lIT1VaSkmJmV0KFJlZ0V4cC5wcm90b3R5cGUsVWksZnVuY3Rpb24oKXt2YXIgdD14KHRoaXMpLGU9U3RyaW5nKHQuc291cmNlKSxyPXQuZmxhZ3M7cmV0dXJuXCIvXCIrZStcIi9cIitTdHJpbmcodm9pZCAwPT09ciYmdCBpbnN0YW5jZW9mIFJlZ0V4cCYmIShcImZsYWdzXCJpbiBraSk/eWkuY2FsbCh0KTpyKX0se3Vuc2FmZTohMH0pO3ZhciBEaT1SZWdFeHAucHJvdG90eXBlLmV4ZWMsQ2k9U3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLEZpPURpLEJpPWZ1bmN0aW9uKCl7dmFyIHQ9L2EvLGU9L2IqL2c7cmV0dXJuIERpLmNhbGwodCxcImFcIiksRGkuY2FsbChlLFwiYVwiKSwwIT09dC5sYXN0SW5kZXh8fDAhPT1lLmxhc3RJbmRleH0oKSxXaT1iaS5VTlNVUFBPUlRFRF9ZfHxiaS5CUk9LRU5fQ0FSRVQsemk9dm9pZCAwIT09LygpPz8vLmV4ZWMoXCJcIilbMV07KEJpfHx6aXx8V2kpJiYoRmk9ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saT10aGlzLGE9V2kmJmkuc3RpY2t5LHU9eWkuY2FsbChpKSxjPWkuc291cmNlLHM9MCxmPXQ7cmV0dXJuIGEmJigtMT09PSh1PXUucmVwbGFjZShcInlcIixcIlwiKSkuaW5kZXhPZihcImdcIikmJih1Kz1cImdcIiksZj1TdHJpbmcodCkuc2xpY2UoaS5sYXN0SW5kZXgpLGkubGFzdEluZGV4PjAmJighaS5tdWx0aWxpbmV8fGkubXVsdGlsaW5lJiZcIlxcblwiIT09dFtpLmxhc3RJbmRleC0xXSkmJihjPVwiKD86IFwiK2MrXCIpXCIsZj1cIiBcIitmLHMrKykscj1uZXcgUmVnRXhwKFwiXig/OlwiK2MrXCIpXCIsdSkpLHppJiYocj1uZXcgUmVnRXhwKFwiXlwiK2MrXCIkKD8hXFxcXHMpXCIsdSkpLEJpJiYoZT1pLmxhc3RJbmRleCksbj1EaS5jYWxsKGE/cjppLGYpLGE/bj8obi5pbnB1dD1uLmlucHV0LnNsaWNlKHMpLG5bMF09blswXS5zbGljZShzKSxuLmluZGV4PWkubGFzdEluZGV4LGkubGFzdEluZGV4Kz1uWzBdLmxlbmd0aCk6aS5sYXN0SW5kZXg9MDpCaSYmbiYmKGkubGFzdEluZGV4PWkuZ2xvYmFsP24uaW5kZXgrblswXS5sZW5ndGg6ZSksemkmJm4mJm4ubGVuZ3RoPjEmJkNpLmNhbGwoblswXSxyLGZ1bmN0aW9uKCl7Zm9yKG89MTtvPGFyZ3VtZW50cy5sZW5ndGgtMjtvKyspdm9pZCAwPT09YXJndW1lbnRzW29dJiYobltvXT12b2lkIDApfSksbn0pO3ZhciBHaT1GaTtQdCh7dGFyZ2V0OlwiUmVnRXhwXCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09R2l9LHtleGVjOkdpfSksaSYmKFwiZ1wiIT0vLi9nLmZsYWdzfHxiaS5VTlNVUFBPUlRFRF9ZKSYmSS5mKFJlZ0V4cC5wcm90b3R5cGUsXCJmbGFnc1wiLHtjb25maWd1cmFibGU6ITAsZ2V0OnlpfSk7dmFyIEtpPXR0LmdldCwkaT1SZWdFeHAucHJvdG90eXBlO2kmJmJpLlVOU1VQUE9SVEVEX1kmJigwLEkuZikoUmVnRXhwLnByb3RvdHlwZSxcInN0aWNreVwiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYodGhpcyE9PSRpKXtpZih0aGlzIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiEhS2kodGhpcykuc3RpY2t5O3Rocm93IFR5cGVFcnJvcihcIkluY29tcGF0aWJsZSByZWNlaXZlciwgUmVnRXhwIHJlcXVpcmVkXCIpfX19KTt2YXIgVmkscWksSGk9KFZpPSExLChxaT0vW2FjXS8pLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gVmk9ITAsLy4vLmV4ZWMuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwhMD09PXFpLnRlc3QoXCJhYmNcIikmJlZpKSxYaT0vLi8udGVzdDtQdCh7dGFyZ2V0OlwiUmVnRXhwXCIscHJvdG86ITAsZm9yY2VkOiFIaX0se3Rlc3Q6ZnVuY3Rpb24odCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgdGhpcy5leGVjKXJldHVybiBYaS5jYWxsKHRoaXMsdCk7dmFyIGU9dGhpcy5leGVjKHQpO2lmKG51bGwhPT1lJiYhZyhlKSl0aHJvdyBuZXcgRXJyb3IoXCJSZWdFeHAgZXhlYyBtZXRob2QgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gT2JqZWN0IG9yIG51bGxcIik7cmV0dXJuISFlfX0pO3ZhciBZaT1CdChcInNwZWNpZXNcIiksSmk9IW8oZnVuY3Rpb24oKXt2YXIgdD0vLi87cmV0dXJuIHQuZXhlYz1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0Lmdyb3Vwcz17YTpcIjdcIn0sdH0sXCI3XCIhPT1cIlwiLnJlcGxhY2UodCxcIiQ8YT5cIil9KSxRaT1cIiQwXCI9PT1cImFcIi5yZXBsYWNlKC8uLyxcIiQwXCIpLFppPUJ0KFwicmVwbGFjZVwiKSx0YT0hIS8uL1taaV0mJlwiXCI9PT0vLi9bWmldKFwiYVwiLFwiJDBcIiksZWE9IW8oZnVuY3Rpb24oKXt2YXIgdD0vKD86KS8sZT10LmV4ZWM7dC5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgcj1cImFiXCIuc3BsaXQodCk7cmV0dXJuIDIhPT1yLmxlbmd0aHx8XCJhXCIhPT1yWzBdfHxcImJcIiE9PXJbMV19KSxyYT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1CdCh0KSxhPSFvKGZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGVbaV09ZnVuY3Rpb24oKXtyZXR1cm4gN30sNyE9XCJcIlt0XShlKX0pLHU9YSYmIW8oZnVuY3Rpb24oKXt2YXIgZT0hMSxyPS9hLztyZXR1cm5cInNwbGl0XCI9PT10JiYoKHI9e30pLmNvbnN0cnVjdG9yPXt9LHIuY29uc3RydWN0b3JbWWldPWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHIuZmxhZ3M9XCJcIixyW2ldPS8uL1tpXSksci5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGU9ITAsbnVsbH0scltpXShcIlwiKSwhZX0pO2lmKCFhfHwhdXx8XCJyZXBsYWNlXCI9PT10JiYoIUppfHwhUWl8fHRhKXx8XCJzcGxpdFwiPT09dCYmIWVhKXt2YXIgYz0vLi9baV0scz1yKGksXCJcIlt0XSxmdW5jdGlvbih0LGUscixuLG8pe3JldHVybiBlLmV4ZWM9PT1HaT9hJiYhbz97ZG9uZTohMCx2YWx1ZTpjLmNhbGwoZSxyLG4pfTp7ZG9uZTohMCx2YWx1ZTp0LmNhbGwocixlLG4pfTp7ZG9uZTohMX19LHtSRVBMQUNFX0tFRVBTXyQwOlFpLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOnRhfSksZj1zWzFdO2V0KFN0cmluZy5wcm90b3R5cGUsdCxzWzBdKSxldChSZWdFeHAucHJvdG90eXBlLGksMj09ZT9mdW5jdGlvbih0LGUpe3JldHVybiBmLmNhbGwodCx0aGlzLGUpfTpmdW5jdGlvbih0KXtyZXR1cm4gZi5jYWxsKHQsdGhpcyl9KX1uJiZfKFJlZ0V4cC5wcm90b3R5cGVbaV0sXCJzaGFtXCIsITApfSxuYT1FZS5jaGFyQXQsb2E9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlKyhyP25hKHQsZSkubGVuZ3RoOjEpfSxpYT1mdW5jdGlvbih0LGUpe3ZhciByPXQuZXhlYztpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXt2YXIgbj1yLmNhbGwodCxlKTtpZihcIm9iamVjdFwiIT10eXBlb2Ygbil0aHJvdyBUeXBlRXJyb3IoXCJSZWdFeHAgZXhlYyBtZXRob2QgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gT2JqZWN0IG9yIG51bGxcIik7cmV0dXJuIG59aWYoXCJSZWdFeHBcIiE9PWwodCkpdGhyb3cgVHlwZUVycm9yKFwiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlclwiKTtyZXR1cm4gR2kuY2FsbCh0LGUpfTtyYShcIm1hdGNoXCIsMSxmdW5jdGlvbih0LGUscil7cmV0dXJuW2Z1bmN0aW9uKGUpe3ZhciByPWQodGhpcyksbj1udWxsPT1lP3ZvaWQgMDplW3RdO3JldHVybiB2b2lkIDAhPT1uP24uY2FsbChlLHIpOm5ldyBSZWdFeHAoZSlbdF0oU3RyaW5nKHIpKX0sZnVuY3Rpb24odCl7dmFyIG49cihlLHQsdGhpcyk7aWYobi5kb25lKXJldHVybiBuLnZhbHVlO3ZhciBvPXgodCksaT1TdHJpbmcodGhpcyk7aWYoIW8uZ2xvYmFsKXJldHVybiBpYShvLGkpO3ZhciBhPW8udW5pY29kZTtvLmxhc3RJbmRleD0wO2Zvcih2YXIgdSxjPVtdLHM9MDtudWxsIT09KHU9aWEobyxpKSk7KXt2YXIgZj1TdHJpbmcodVswXSk7Y1tzXT1mLFwiXCI9PT1mJiYoby5sYXN0SW5kZXg9b2EoaSxzdChvLmxhc3RJbmRleCksYSkpLHMrK31yZXR1cm4gMD09PXM/bnVsbDpjfV19KTt2YXIgYWE9TWF0aC5mbG9vcix1YT1cIlwiLnJlcGxhY2UsY2E9L1xcJChbJCYnYF18XFxkXFxkP3w8W14+XSo+KS9nLHNhPS9cXCQoWyQmJ2BdfFxcZFxcZD8pL2csZmE9ZnVuY3Rpb24odCxlLHIsbixvLGkpe3ZhciBhPXIrdC5sZW5ndGgsdT1uLmxlbmd0aCxjPXNhO3JldHVybiB2b2lkIDAhPT1vJiYobz1NdChvKSxjPWNhKSx1YS5jYWxsKGksYyxmdW5jdGlvbihpLGMpe3ZhciBzO3N3aXRjaChjLmNoYXJBdCgwKSl7Y2FzZVwiJFwiOnJldHVyblwiJFwiO2Nhc2VcIiZcIjpyZXR1cm4gdDtjYXNlXCJgXCI6cmV0dXJuIGUuc2xpY2UoMCxyKTtjYXNlXCInXCI6cmV0dXJuIGUuc2xpY2UoYSk7Y2FzZVwiPFwiOnM9b1tjLnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBmPStjO2lmKDA9PT1mKXJldHVybiBpO2lmKGY+dSl7dmFyIGw9YWEoZi8xMCk7cmV0dXJuIDA9PT1sP2k6bDw9dT92b2lkIDA9PT1uW2wtMV0/Yy5jaGFyQXQoMSk6bltsLTFdK2MuY2hhckF0KDEpOml9cz1uW2YtMV19cmV0dXJuIHZvaWQgMD09PXM/XCJcIjpzfSl9LGxhPU1hdGgubWF4LGhhPU1hdGgubWluO3JhKFwicmVwbGFjZVwiLDIsZnVuY3Rpb24odCxlLHIsbil7dmFyIG89bi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSxpPW4uUkVQTEFDRV9LRUVQU18kMCxhPW8/XCIkXCI6XCIkMFwiO3JldHVybltmdW5jdGlvbihyLG4pe3ZhciBvPWQodGhpcyksaT1udWxsPT1yP3ZvaWQgMDpyW3RdO3JldHVybiB2b2lkIDAhPT1pP2kuY2FsbChyLG8sbik6ZS5jYWxsKFN0cmluZyhvKSxyLG4pfSxmdW5jdGlvbih0LG4pe2lmKCFvJiZpfHxcInN0cmluZ1wiPT10eXBlb2YgbiYmLTE9PT1uLmluZGV4T2YoYSkpe3ZhciB1PXIoZSx0LHRoaXMsbik7aWYodS5kb25lKXJldHVybiB1LnZhbHVlfXZhciBjPXgodCkscz1TdHJpbmcodGhpcyksZj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBuO2Z8fChuPVN0cmluZyhuKSk7dmFyIGw9Yy5nbG9iYWw7aWYobCl7dmFyIGg9Yy51bmljb2RlO2MubGFzdEluZGV4PTB9Zm9yKHZhciBwPVtdOzspe3ZhciBkPWlhKGMscyk7aWYobnVsbD09PWQpYnJlYWs7aWYocC5wdXNoKGQpLCFsKWJyZWFrO1wiXCI9PT1TdHJpbmcoZFswXSkmJihjLmxhc3RJbmRleD1vYShzLHN0KGMubGFzdEluZGV4KSxoKSl9Zm9yKHZhciB2LGc9XCJcIix5PTAsbT0wO208cC5sZW5ndGg7bSsrKXtkPXBbbV07Zm9yKHZhciBiPVN0cmluZyhkWzBdKSxFPWxhKGhhKHV0KGQuaW5kZXgpLHMubGVuZ3RoKSwwKSxTPVtdLHc9MTt3PGQubGVuZ3RoO3crKylTLnB1c2godm9pZCAwPT09KHY9ZFt3XSk/djpTdHJpbmcodikpO3ZhciBSPWQuZ3JvdXBzO2lmKGYpe3ZhciBUPVtiXS5jb25jYXQoUyxFLHMpO3ZvaWQgMCE9PVImJlQucHVzaChSKTt2YXIgTz1TdHJpbmcobi5hcHBseSh2b2lkIDAsVCkpfWVsc2UgTz1mYShiLHMsRSxTLFIsbik7RT49eSYmKGcrPXMuc2xpY2UoeSxFKStPLHk9RStiLmxlbmd0aCl9cmV0dXJuIGcrcy5zbGljZSh5KX1dfSkscmEoXCJzZWFyY2hcIiwxLGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZnVuY3Rpb24oZSl7dmFyIHI9ZCh0aGlzKSxuPW51bGw9PWU/dm9pZCAwOmVbdF07cmV0dXJuIHZvaWQgMCE9PW4/bi5jYWxsKGUscik6bmV3IFJlZ0V4cChlKVt0XShTdHJpbmcocikpfSxmdW5jdGlvbih0KXt2YXIgbj1yKGUsdCx0aGlzKTtpZihuLmRvbmUpcmV0dXJuIG4udmFsdWU7dmFyIG89eCh0KSxpPVN0cmluZyh0aGlzKSxhPW8ubGFzdEluZGV4OyRuKGEsMCl8fChvLmxhc3RJbmRleD0wKTt2YXIgdT1pYShvLGkpO3JldHVybiAkbihvLmxhc3RJbmRleCxhKXx8KG8ubGFzdEluZGV4PWEpLG51bGw9PT11Py0xOnUuaW5kZXh9XX0pO3ZhciBwYT1bXS5wdXNoLGRhPU1hdGgubWluLHZhPTQyOTQ5NjcyOTUsZ2E9IW8oZnVuY3Rpb24oKXtyZXR1cm4hUmVnRXhwKHZhLFwieVwiKX0pO3JhKFwic3BsaXRcIiwyLGZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtyZXR1cm4gbj1cImNcIj09XCJhYmJjXCIuc3BsaXQoLyhiKSovKVsxXXx8NCE9XCJ0ZXN0XCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8fDIhPVwiYWJcIi5zcGxpdCgvKD86YWIpKi8pLmxlbmd0aHx8NCE9XCIuXCIuc3BsaXQoLyguPykoLj8pLykubGVuZ3RofHxcIi5cIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHxcIlwiLnNwbGl0KC8uPy8pLmxlbmd0aD9mdW5jdGlvbih0LHIpe3ZhciBuPVN0cmluZyhkKHRoaXMpKSxvPXZvaWQgMD09PXI/dmE6cj4+PjA7aWYoMD09PW8pcmV0dXJuW107aWYodm9pZCAwPT09dClyZXR1cm5bbl07aWYoIUpuKHQpKXJldHVybiBlLmNhbGwobix0LG8pO2Zvcih2YXIgaSxhLHUsYz1bXSxzPTAsZj1uZXcgUmVnRXhwKHQuc291cmNlLCh0Lmlnbm9yZUNhc2U/XCJpXCI6XCJcIikrKHQubXVsdGlsaW5lP1wibVwiOlwiXCIpKyh0LnVuaWNvZGU/XCJ1XCI6XCJcIikrKHQuc3RpY2t5P1wieVwiOlwiXCIpK1wiZ1wiKTsoaT1HaS5jYWxsKGYsbikpJiYhKChhPWYubGFzdEluZGV4KT5zJiYoYy5wdXNoKG4uc2xpY2UocyxpLmluZGV4KSksaS5sZW5ndGg+MSYmaS5pbmRleDxuLmxlbmd0aCYmcGEuYXBwbHkoYyxpLnNsaWNlKDEpKSx1PWlbMF0ubGVuZ3RoLHM9YSxjLmxlbmd0aD49bykpOylmLmxhc3RJbmRleD09PWkuaW5kZXgmJmYubGFzdEluZGV4Kys7cmV0dXJuIHM9PT1uLmxlbmd0aD8hdSYmZi50ZXN0KFwiXCIpfHxjLnB1c2goXCJcIik6Yy5wdXNoKG4uc2xpY2UocykpLGMubGVuZ3RoPm8/Yy5zbGljZSgwLG8pOmN9OlwiMFwiLnNwbGl0KHZvaWQgMCwwKS5sZW5ndGg/ZnVuY3Rpb24odCxyKXtyZXR1cm4gdm9pZCAwPT09dCYmMD09PXI/W106ZS5jYWxsKHRoaXMsdCxyKX06ZSxbZnVuY3Rpb24oZSxyKXt2YXIgbz1kKHRoaXMpLGk9bnVsbD09ZT92b2lkIDA6ZVt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwoZSxvLHIpOm4uY2FsbChTdHJpbmcobyksZSxyKX0sZnVuY3Rpb24odCxvKXt2YXIgaT1yKG4sdCx0aGlzLG8sbiE9PWUpO2lmKGkuZG9uZSlyZXR1cm4gaS52YWx1ZTt2YXIgYT14KHQpLHU9U3RyaW5nKHRoaXMpLGM9ZW4oYSxSZWdFeHApLHM9YS51bmljb2RlLGY9bmV3IGMoZ2E/YTpcIl4oPzpcIithLnNvdXJjZStcIilcIiwoYS5pZ25vcmVDYXNlP1wiaVwiOlwiXCIpKyhhLm11bHRpbGluZT9cIm1cIjpcIlwiKSsoYS51bmljb2RlP1widVwiOlwiXCIpKyhnYT9cInlcIjpcImdcIikpLGw9dm9pZCAwPT09bz92YTpvPj4+MDtpZigwPT09bClyZXR1cm5bXTtpZigwPT09dS5sZW5ndGgpcmV0dXJuIG51bGw9PT1pYShmLHUpP1t1XTpbXTtmb3IodmFyIGg9MCxwPTAsZD1bXTtwPHUubGVuZ3RoOyl7Zi5sYXN0SW5kZXg9Z2E/cDowO3ZhciB2LGc9aWEoZixnYT91OnUuc2xpY2UocCkpO2lmKG51bGw9PT1nfHwodj1kYShzdChmLmxhc3RJbmRleCsoZ2E/MDpwKSksdS5sZW5ndGgpKT09PWgpcD1vYSh1LHAscyk7ZWxzZXtpZihkLnB1c2godS5zbGljZShoLHApKSxkLmxlbmd0aD09PWwpcmV0dXJuIGQ7Zm9yKHZhciB5PTE7eTw9Zy5sZW5ndGgtMTt5KyspaWYoZC5wdXNoKGdbeV0pLGQubGVuZ3RoPT09bClyZXR1cm4gZDtwPWg9dn19cmV0dXJuIGQucHVzaCh1LnNsaWNlKGgpKSxkfV19LCFnYSk7dmFyIHlhLG1hLGJhPW4ucHJvY2VzcyxFYT1iYSYmYmEudmVyc2lvbnMsU2E9RWEmJkVhLnY4O1NhP21hPSh5YT1TYS5zcGxpdChcIi5cIikpWzBdK3lhWzFdOmhvJiYoISh5YT1oby5tYXRjaCgvRWRnZVxcLyhcXGQrKS8pKXx8eWFbMV0+PTc0KSYmKHlhPWhvLm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKSkmJihtYT15YVsxXSk7dmFyIHdhPW1hJiYrbWEsUmE9QnQoXCJzcGVjaWVzXCIpLFRhPUJ0KFwiaXNDb25jYXRTcHJlYWRhYmxlXCIpLE9hPTkwMDcxOTkyNTQ3NDA5OTEseGE9XCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWRcIixBYT13YT49NTF8fCFvKGZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRbVGFdPSExLHQuY29uY2F0KClbMF0hPT10fSksSWE9d2E+PTUxfHwhbyhmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybih0LmNvbnN0cnVjdG9yPXt9KVtSYV09ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09dC5jb25jYXQoQm9vbGVhbikuZm9vfSksX2E9ZnVuY3Rpb24odCl7aWYoIWcodCkpcmV0dXJuITE7dmFyIGU9dFtUYV07cmV0dXJuIHZvaWQgMCE9PWU/ISFlOnJlKHQpfTtQdCh7dGFyZ2V0OlwiQXJyYXlcIixwcm90bzohMCxmb3JjZWQ6IUFhfHwhSWF9LHtjb25jYXQ6ZnVuY3Rpb24odCl7dmFyIGUscixuLG8saSxhPU10KHRoaXMpLHU9b2UoYSwwKSxjPTA7Zm9yKGU9LTEsbj1hcmd1bWVudHMubGVuZ3RoO2U8bjtlKyspaWYoX2EoaT0tMT09PWU/YTphcmd1bWVudHNbZV0pKXtpZihjKyhvPXN0KGkubGVuZ3RoKSk+T2EpdGhyb3cgVHlwZUVycm9yKHhhKTtmb3Iocj0wO3I8bztyKyssYysrKXIgaW4gaSYmWmUodSxjLGlbcl0pfWVsc2V7aWYoYz49T2EpdGhyb3cgVHlwZUVycm9yKHhhKTtaZSh1LGMrKyxpKX1yZXR1cm4gdS5sZW5ndGg9Yyx1fX0pO3ZhciBqYT1idC5mLFBhPXt9LnRvU3RyaW5nLE1hPVwib2JqZWN0XCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXSxOYT17ZjpmdW5jdGlvbih0KXtyZXR1cm4gTWEmJlwiW29iamVjdCBXaW5kb3ddXCI9PVBhLmNhbGwodCk/ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBqYSh0KX1jYXRjaCh0KXtyZXR1cm4gTWEuc2xpY2UoKX19KHQpOmphKHYodCkpfX0sVWE9e2Y6QnR9LGthPUkuZixMYT1mdW5jdGlvbih0KXt2YXIgZT1ydC5TeW1ib2x8fChydC5TeW1ib2w9e30pO2IoZSx0KXx8a2EoZSx0LHt2YWx1ZTpVYS5mKHQpfSl9LERhPXVlLmZvckVhY2gsQ2E9VihcImhpZGRlblwiKSxGYT1cIlN5bWJvbFwiLEJhPUJ0KFwidG9QcmltaXRpdmVcIiksV2E9dHQuc2V0LHphPXR0LmdldHRlckZvcihGYSksR2E9T2JqZWN0LnByb3RvdHlwZSxLYT1uLlN5bWJvbCwkYT1vdChcIkpTT05cIixcInN0cmluZ2lmeVwiKSxWYT1PLmYscWE9SS5mLEhhPU5hLmYsWGE9Yy5mLFlhPVcoXCJzeW1ib2xzXCIpLEphPVcoXCJvcC1zeW1ib2xzXCIpLFFhPVcoXCJzdHJpbmctdG8tc3ltYm9sLXJlZ2lzdHJ5XCIpLFphPVcoXCJzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5XCIpLHR1PVcoXCJ3a3NcIiksZXU9bi5RT2JqZWN0LHJ1PSFldXx8IWV1LnByb3RvdHlwZXx8IWV1LnByb3RvdHlwZS5maW5kQ2hpbGQsbnU9aSYmbyhmdW5jdGlvbigpe3JldHVybiA3IT1IdChxYSh7fSxcImFcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHFhKHRoaXMsXCJhXCIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVZhKEdhLGUpO24mJmRlbGV0ZSBHYVtlXSxxYSh0LGUsciksbiYmdCE9PUdhJiZxYShHYSxlLG4pfTpxYSxvdT1mdW5jdGlvbih0LGUpe3ZhciByPVlhW3RdPUh0KEthLnByb3RvdHlwZSk7cmV0dXJuIFdhKHIse3R5cGU6RmEsdGFnOnQsZGVzY3JpcHRpb246ZX0pLGl8fChyLmRlc2NyaXB0aW9uPWUpLHJ9LGl1PUx0P2Z1bmN0aW9uKHQpe3JldHVyblwic3ltYm9sXCI9PXR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0KHQpaW5zdGFuY2VvZiBLYX0sYXU9ZnVuY3Rpb24odCxlLHIpe3Q9PT1HYSYmYXUoSmEsZSxyKSx4KHQpO3ZhciBuPXkoZSwhMCk7cmV0dXJuIHgociksYihZYSxuKT8oci5lbnVtZXJhYmxlPyhiKHQsQ2EpJiZ0W0NhXVtuXSYmKHRbQ2FdW25dPSExKSxyPUh0KHIse2VudW1lcmFibGU6cygwLCExKX0pKTooYih0LENhKXx8cWEodCxDYSxzKDEse30pKSx0W0NhXVtuXT0hMCksbnUodCxuLHIpKTpxYSh0LG4scil9LHV1PWZ1bmN0aW9uKHQsZSl7eCh0KTt2YXIgcj12KGUpLG49V3QocikuY29uY2F0KGx1KHIpKTtyZXR1cm4gRGEobixmdW5jdGlvbihlKXtpJiYhY3UuY2FsbChyLGUpfHxhdSh0LGUscltlXSl9KSx0fSxjdT1mdW5jdGlvbih0KXt2YXIgZT15KHQsITApLHI9WGEuY2FsbCh0aGlzLGUpO3JldHVybiEodGhpcz09PUdhJiZiKFlhLGUpJiYhYihKYSxlKSkmJighKHJ8fCFiKHRoaXMsZSl8fCFiKFlhLGUpfHxiKHRoaXMsQ2EpJiZ0aGlzW0NhXVtlXSl8fHIpfSxzdT1mdW5jdGlvbih0LGUpe3ZhciByPXYodCksbj15KGUsITApO2lmKHIhPT1HYXx8IWIoWWEsbil8fGIoSmEsbikpe3ZhciBvPVZhKHIsbik7cmV0dXJuIW98fCFiKFlhLG4pfHxiKHIsQ2EpJiZyW0NhXVtuXXx8KG8uZW51bWVyYWJsZT0hMCksb319LGZ1PWZ1bmN0aW9uKHQpe3ZhciBlPUhhKHYodCkpLHI9W107cmV0dXJuIERhKGUsZnVuY3Rpb24odCl7YihZYSx0KXx8YihxLHQpfHxyLnB1c2godCl9KSxyfSxsdT1mdW5jdGlvbih0KXt2YXIgZT10PT09R2Escj1IYShlP0phOnYodCkpLG49W107cmV0dXJuIERhKHIsZnVuY3Rpb24odCl7IWIoWWEsdCl8fGUmJiFiKEdhLHQpfHxuLnB1c2goWWFbdF0pfSksbn07aWYoa3R8fChldCgoS2E9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgS2EpdGhyb3cgVHlwZUVycm9yKFwiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yXCIpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9TdHJpbmcoYXJndW1lbnRzWzBdKTp2b2lkIDAsZT1LKHQpLHI9ZnVuY3Rpb24odCl7dGhpcz09PUdhJiZyLmNhbGwoSmEsdCksYih0aGlzLENhKSYmYih0aGlzW0NhXSxlKSYmKHRoaXNbQ2FdW2VdPSExKSxudSh0aGlzLGUscygxLHQpKX07cmV0dXJuIGkmJnJ1JiZudShHYSxlLHtjb25maWd1cmFibGU6ITAsc2V0OnJ9KSxvdShlLHQpfSkucHJvdG90eXBlLFwidG9TdHJpbmdcIixmdW5jdGlvbigpe3JldHVybiB6YSh0aGlzKS50YWd9KSxldChLYSxcIndpdGhvdXRTZXR0ZXJcIixmdW5jdGlvbih0KXtyZXR1cm4gb3UoSyh0KSx0KX0pLGMuZj1jdSxJLmY9YXUsTy5mPXN1LGJ0LmY9TmEuZj1mdSxFdC5mPWx1LFVhLmY9ZnVuY3Rpb24odCl7cmV0dXJuIG91KEJ0KHQpLHQpfSxpJiYocWEoS2EucHJvdG90eXBlLFwiZGVzY3JpcHRpb25cIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB6YSh0aGlzKS5kZXNjcmlwdGlvbn19KSxldChHYSxcInByb3BlcnR5SXNFbnVtZXJhYmxlXCIsY3Use3Vuc2FmZTohMH0pKSksUHQoe2dsb2JhbDohMCx3cmFwOiEwLGZvcmNlZDoha3Qsc2hhbToha3R9LHtTeW1ib2w6S2F9KSxEYShXdCh0dSksZnVuY3Rpb24odCl7TGEodCl9KSxQdCh7dGFyZ2V0OkZhLHN0YXQ6ITAsZm9yY2VkOiFrdH0se2ZvcjpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcodCk7aWYoYihRYSxlKSlyZXR1cm4gUWFbZV07dmFyIHI9S2EoZSk7cmV0dXJuIFFhW2VdPXIsWmFbcl09ZSxyfSxrZXlGb3I6ZnVuY3Rpb24odCl7aWYoIWl1KHQpKXRocm93IFR5cGVFcnJvcih0K1wiIGlzIG5vdCBhIHN5bWJvbFwiKTtpZihiKFphLHQpKXJldHVybiBaYVt0XX0sdXNlU2V0dGVyOmZ1bmN0aW9uKCl7cnU9ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe3J1PSExfX0pLFB0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDoha3Qsc2hhbTohaX0se2NyZWF0ZTpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lP0h0KHQpOnV1KEh0KHQpLGUpfSxkZWZpbmVQcm9wZXJ0eTphdSxkZWZpbmVQcm9wZXJ0aWVzOnV1LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpzdX0pLFB0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDoha3R9LHtnZXRPd25Qcm9wZXJ0eU5hbWVzOmZ1LGdldE93blByb3BlcnR5U3ltYm9sczpsdX0pLFB0KHt0YXJnZXQ6XCJPYmplY3RcIixzdGF0OiEwLGZvcmNlZDpvKGZ1bmN0aW9uKCl7RXQuZigxKX0pfSx7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKHQpe3JldHVybiBFdC5mKE10KHQpKX19KSwkYSl7dmFyIGh1PSFrdHx8byhmdW5jdGlvbigpe3ZhciB0PUthKCk7cmV0dXJuXCJbbnVsbF1cIiE9JGEoW3RdKXx8XCJ7fVwiIT0kYSh7YTp0fSl8fFwie31cIiE9JGEoT2JqZWN0KHQpKX0pO1B0KHt0YXJnZXQ6XCJKU09OXCIsc3RhdDohMCxmb3JjZWQ6aHV9LHtzdHJpbmdpZnk6ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixvPVt0XSxpPTE7YXJndW1lbnRzLmxlbmd0aD5pOylvLnB1c2goYXJndW1lbnRzW2krK10pO2lmKG49ZSwoZyhlKXx8dm9pZCAwIT09dCkmJiFpdSh0KSlyZXR1cm4gcmUoZSl8fChlPWZ1bmN0aW9uKHQsZSl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgbiYmKGU9bi5jYWxsKHRoaXMsdCxlKSksIWl1KGUpKXJldHVybiBlfSksb1sxXT1lLCRhLmFwcGx5KG51bGwsbyl9fSl9S2EucHJvdG90eXBlW0JhXXx8XyhLYS5wcm90b3R5cGUsQmEsS2EucHJvdG90eXBlLnZhbHVlT2YpLGplKEthLEZhKSxxW0NhXT0hMCxMYShcImFzeW5jSXRlcmF0b3JcIik7dmFyIHB1PUkuZixkdT1uLlN5bWJvbDtpZihpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBkdSYmKCEoXCJkZXNjcmlwdGlvblwiaW4gZHUucHJvdG90eXBlKXx8dm9pZCAwIT09ZHUoKS5kZXNjcmlwdGlvbikpe3ZhciB2dT17fSxndT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg8MXx8dm9pZCAwPT09YXJndW1lbnRzWzBdP3ZvaWQgMDpTdHJpbmcoYXJndW1lbnRzWzBdKSxlPXRoaXMgaW5zdGFuY2VvZiBndT9uZXcgZHUodCk6dm9pZCAwPT09dD9kdSgpOmR1KHQpO3JldHVyblwiXCI9PT10JiYodnVbZV09ITApLGV9O3d0KGd1LGR1KTt2YXIgeXU9Z3UucHJvdG90eXBlPWR1LnByb3RvdHlwZTt5dS5jb25zdHJ1Y3Rvcj1ndTt2YXIgbXU9eXUudG9TdHJpbmcsYnU9XCJTeW1ib2wodGVzdClcIj09U3RyaW5nKGR1KFwidGVzdFwiKSksRXU9L15TeW1ib2xcXCgoLiopXFwpW14pXSskLztwdSh5dSxcImRlc2NyaXB0aW9uXCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1nKHRoaXMpP3RoaXMudmFsdWVPZigpOnRoaXMsZT1tdS5jYWxsKHQpO2lmKGIodnUsdCkpcmV0dXJuXCJcIjt2YXIgcj1idT9lLnNsaWNlKDcsLTEpOmUucmVwbGFjZShFdSxcIiQxXCIpO3JldHVyblwiXCI9PT1yP3ZvaWQgMDpyfX0pLFB0KHtnbG9iYWw6ITAsZm9yY2VkOiEwfSx7U3ltYm9sOmd1fSl9TGEoXCJoYXNJbnN0YW5jZVwiKSxMYShcImlzQ29uY2F0U3ByZWFkYWJsZVwiKSxMYShcIml0ZXJhdG9yXCIpLExhKFwibWF0Y2hcIiksTGEoXCJtYXRjaEFsbFwiKSxMYShcInJlcGxhY2VcIiksTGEoXCJzZWFyY2hcIiksTGEoXCJzcGVjaWVzXCIpLExhKFwic3BsaXRcIiksTGEoXCJ0b1ByaW1pdGl2ZVwiKSxMYShcInRvU3RyaW5nVGFnXCIpLExhKFwidW5zY29wYWJsZXNcIiksamUobi5KU09OLFwiSlNPTlwiLCEwKSxqZShNYXRoLFwiTWF0aFwiLCEwKSxMYShcImFzeW5jRGlzcG9zZVwiKSxMYShcImRpc3Bvc2VcIiksTGEoXCJvYnNlcnZhYmxlXCIpLExhKFwicGF0dGVybk1hdGNoXCIpLExhKFwicmVwbGFjZUFsbFwiKTt2YXIgU3U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO2lmKCEociBpbnN0YW5jZW9mIFN1KSlyZXR1cm4gbmV3IFN1KHQsZSk7a2UmJihyPWtlKG5ldyBFcnJvcih2b2lkIDApLFRlKHIpKSksdm9pZCAwIT09ZSYmXyhyLFwibWVzc2FnZVwiLFN0cmluZyhlKSk7dmFyIG49W107cmV0dXJuIElyKHQsbi5wdXNoLHt0aGF0Om59KSxfKHIsXCJlcnJvcnNcIixuKSxyfTtTdS5wcm90b3R5cGU9SHQoRXJyb3IucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpzKDUsU3UpLG1lc3NhZ2U6cyg1LFwiXCIpLG5hbWU6cyg1LFwiQWdncmVnYXRlRXJyb3JcIil9KSxQdCh7Z2xvYmFsOiEwfSx7QWdncmVnYXRlRXJyb3I6U3V9KTt2YXIgd3UsUnUsVHUsT3U9bi5Qcm9taXNlLHh1PS8oaXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChobyksQXU9XCJwcm9jZXNzXCI9PWwobi5wcm9jZXNzKSxJdT1uLmxvY2F0aW9uLF91PW4uc2V0SW1tZWRpYXRlLGp1PW4uY2xlYXJJbW1lZGlhdGUsUHU9bi5wcm9jZXNzLE11PW4uTWVzc2FnZUNoYW5uZWwsTnU9bi5EaXNwYXRjaCxVdT0wLGt1PXt9LEx1PWZ1bmN0aW9uKHQpe2lmKGt1Lmhhc093blByb3BlcnR5KHQpKXt2YXIgZT1rdVt0XTtkZWxldGUga3VbdF0sZSgpfX0sRHU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7THUodCl9fSxDdT1mdW5jdGlvbih0KXtMdSh0LmRhdGEpfSxGdT1mdW5jdGlvbih0KXtuLnBvc3RNZXNzYWdlKHQrXCJcIixJdS5wcm90b2NvbCtcIi8vXCIrSXUuaG9zdCl9O191JiZqdXx8KF91PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTE7YXJndW1lbnRzLmxlbmd0aD5yOyllLnB1c2goYXJndW1lbnRzW3IrK10pO3JldHVybiBrdVsrK1V1XT1mdW5jdGlvbigpeyhcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3Q6RnVuY3Rpb24odCkpLmFwcGx5KHZvaWQgMCxlKX0sd3UoVXUpLFV1fSxqdT1mdW5jdGlvbih0KXtkZWxldGUga3VbdF19LEF1P3d1PWZ1bmN0aW9uKHQpe1B1Lm5leHRUaWNrKER1KHQpKX06TnUmJk51Lm5vdz93dT1mdW5jdGlvbih0KXtOdS5ub3coRHUodCkpfTpNdSYmIXh1PyhUdT0oUnU9bmV3IE11KS5wb3J0MixSdS5wb3J0MS5vbm1lc3NhZ2U9Q3Usd3U9WnQoVHUucG9zdE1lc3NhZ2UsVHUsMSkpOm4uYWRkRXZlbnRMaXN0ZW5lciYmXCJmdW5jdGlvblwiPT10eXBlb2YgcG9zdE1lc3NhZ2UmJiFuLmltcG9ydFNjcmlwdHMmJkl1JiZcImZpbGU6XCIhPT1JdS5wcm90b2NvbCYmIW8oRnUpPyh3dT1GdSxuLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsQ3UsITEpKTp3dT1cIm9ucmVhZHlzdGF0ZWNoYW5nZVwiaW4gdyhcInNjcmlwdFwiKT9mdW5jdGlvbih0KXtHdC5hcHBlbmRDaGlsZCh3KFwic2NyaXB0XCIpKS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtHdC5yZW1vdmVDaGlsZCh0aGlzKSxMdSh0KX19OmZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoRHUodCksMCl9KTt2YXIgQnUsV3UsenUsR3UsS3UsJHUsVnUscXUsSHU9e3NldDpfdSxjbGVhcjpqdX0sWHU9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChobyksWXU9SHUuc2V0LEp1PW4uTXV0YXRpb25PYnNlcnZlcnx8bi5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLFF1PW4uZG9jdW1lbnQsWnU9bi5wcm9jZXNzLHRjPW4uUHJvbWlzZSxlYz0oMCxPLmYpKG4sXCJxdWV1ZU1pY3JvdGFza1wiKSxyYz1lYyYmZWMudmFsdWU7cmN8fChCdT1mdW5jdGlvbigpe3ZhciB0LGU7Zm9yKEF1JiYodD1adS5kb21haW4pJiZ0LmV4aXQoKTtXdTspe2U9V3UuZm4sV3U9V3UubmV4dDt0cnl7ZSgpfWNhdGNoKHQpe3Rocm93IFd1P0d1KCk6enU9dm9pZCAwLHR9fXp1PXZvaWQgMCx0JiZ0LmVudGVyKCl9LHh1fHxBdXx8WHV8fCFKdXx8IVF1P3RjJiZ0Yy5yZXNvbHZlPyhWdT10Yy5yZXNvbHZlKHZvaWQgMCkscXU9VnUudGhlbixHdT1mdW5jdGlvbigpe3F1LmNhbGwoVnUsQnUpfSk6R3U9QXU/ZnVuY3Rpb24oKXtadS5uZXh0VGljayhCdSl9OmZ1bmN0aW9uKCl7WXUuY2FsbChuLEJ1KX06KEt1PSEwLCR1PVF1LmNyZWF0ZVRleHROb2RlKFwiXCIpLG5ldyBKdShCdSkub2JzZXJ2ZSgkdSx7Y2hhcmFjdGVyRGF0YTohMH0pLEd1PWZ1bmN0aW9uKCl7JHUuZGF0YT1LdT0hS3V9KSk7dmFyIG5jLG9jLGljLGFjLHVjPXJjfHxmdW5jdGlvbih0KXt2YXIgZT17Zm46dCxuZXh0OnZvaWQgMH07enUmJih6dS5uZXh0PWUpLFd1fHwoV3U9ZSxHdSgpKSx6dT1lfSxjYz1mdW5jdGlvbih0KXt2YXIgZSxyO3RoaXMucHJvbWlzZT1uZXcgdChmdW5jdGlvbih0LG4pe2lmKHZvaWQgMCE9PWV8fHZvaWQgMCE9PXIpdGhyb3cgVHlwZUVycm9yKFwiQmFkIFByb21pc2UgY29uc3RydWN0b3JcIik7ZT10LHI9bn0pLHRoaXMucmVzb2x2ZT1RdChlKSx0aGlzLnJlamVjdD1RdChyKX0sc2M9e2Y6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjYyh0KX19LGZjPWZ1bmN0aW9uKHQsZSl7aWYoeCh0KSxnKGUpJiZlLmNvbnN0cnVjdG9yPT09dClyZXR1cm4gZTt2YXIgcj1zYy5mKHQpO3JldHVybigwLHIucmVzb2x2ZSkoZSksci5wcm9taXNlfSxsYz1mdW5jdGlvbih0KXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOnQoKX19Y2F0Y2godCl7cmV0dXJue2Vycm9yOiEwLHZhbHVlOnR9fX0saGM9SHUuc2V0LHBjPUJ0KFwic3BlY2llc1wiKSxkYz1cIlByb21pc2VcIix2Yz10dC5nZXQsZ2M9dHQuc2V0LHljPXR0LmdldHRlckZvcihkYyksbWM9T3UsYmM9bi5UeXBlRXJyb3IsRWM9bi5kb2N1bWVudCxTYz1uLnByb2Nlc3Msd2M9b3QoXCJmZXRjaFwiKSxSYz1zYy5mLFRjPVJjLE9jPSEhKEVjJiZFYy5jcmVhdGVFdmVudCYmbi5kaXNwYXRjaEV2ZW50KSx4Yz1cImZ1bmN0aW9uXCI9PXR5cGVvZiBQcm9taXNlUmVqZWN0aW9uRXZlbnQsQWM9XCJ1bmhhbmRsZWRyZWplY3Rpb25cIixJYz1fdChkYyxmdW5jdGlvbigpe2lmKEQobWMpPT09U3RyaW5nKG1jKSl7aWYoNjY9PT13YSlyZXR1cm4hMDtpZighQXUmJiF4YylyZXR1cm4hMH1pZih3YT49NTEmJi9uYXRpdmUgY29kZS8udGVzdChtYykpcmV0dXJuITE7dmFyIHQ9bWMucmVzb2x2ZSgxKSxlPWZ1bmN0aW9uKHQpe3QoZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7fSl9O3JldHVybih0LmNvbnN0cnVjdG9yPXt9KVtwY109ZSwhKHQudGhlbihmdW5jdGlvbigpe30paW5zdGFuY2VvZiBlKX0pLF9jPUljfHwhbHIoZnVuY3Rpb24odCl7bWMuYWxsKHQpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9KSxqYz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4hKCFnKHQpfHxcImZ1bmN0aW9uXCIhPXR5cGVvZihlPXQudGhlbikpJiZlfSxQYz1mdW5jdGlvbih0LGUpe2lmKCF0Lm5vdGlmaWVkKXt0Lm5vdGlmaWVkPSEwO3ZhciByPXQucmVhY3Rpb25zO3VjKGZ1bmN0aW9uKCl7Zm9yKHZhciBuPXQudmFsdWUsbz0xPT10LnN0YXRlLGk9MDtyLmxlbmd0aD5pOyl7dmFyIGEsdSxjLHM9cltpKytdLGY9bz9zLm9rOnMuZmFpbCxsPXMucmVzb2x2ZSxoPXMucmVqZWN0LHA9cy5kb21haW47dHJ5e2Y/KG98fCgyPT09dC5yZWplY3Rpb24mJmtjKHQpLHQucmVqZWN0aW9uPTEpLCEwPT09Zj9hPW46KHAmJnAuZW50ZXIoKSxhPWYobikscCYmKHAuZXhpdCgpLGM9ITApKSxhPT09cy5wcm9taXNlP2goYmMoXCJQcm9taXNlLWNoYWluIGN5Y2xlXCIpKToodT1qYyhhKSk/dS5jYWxsKGEsbCxoKTpsKGEpKTpoKG4pfWNhdGNoKHQpe3AmJiFjJiZwLmV4aXQoKSxoKHQpfX10LnJlYWN0aW9ucz1bXSx0Lm5vdGlmaWVkPSExLGUmJiF0LnJlamVjdGlvbiYmTmModCl9KX19LE1jPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbyxpO09jPygobz1FYy5jcmVhdGVFdmVudChcIkV2ZW50XCIpKS5wcm9taXNlPWUsby5yZWFzb249cixvLmluaXRFdmVudCh0LCExLCEwKSxuLmRpc3BhdGNoRXZlbnQobykpOm89e3Byb21pc2U6ZSxyZWFzb246cn0sIXhjJiYoaT1uW1wib25cIit0XSk/aShvKTp0PT09QWMmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5jb25zb2xlO3ImJnIuZXJyb3ImJigxPT09YXJndW1lbnRzLmxlbmd0aD9yLmVycm9yKHQpOnIuZXJyb3IodCxlKSl9KFwiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uXCIscil9LE5jPWZ1bmN0aW9uKHQpe2hjLmNhbGwobixmdW5jdGlvbigpe3ZhciBlLHI9dC5mYWNhZGUsbj10LnZhbHVlO2lmKFVjKHQpJiYoZT1sYyhmdW5jdGlvbigpe0F1P1NjLmVtaXQoXCJ1bmhhbmRsZWRSZWplY3Rpb25cIixuLHIpOk1jKEFjLHIsbil9KSx0LnJlamVjdGlvbj1BdXx8VWModCk/MjoxLGUuZXJyb3IpKXRocm93IGUudmFsdWV9KX0sVWM9ZnVuY3Rpb24odCl7cmV0dXJuIDEhPT10LnJlamVjdGlvbiYmIXQucGFyZW50fSxrYz1mdW5jdGlvbih0KXtoYy5jYWxsKG4sZnVuY3Rpb24oKXt2YXIgZT10LmZhY2FkZTtBdT9TYy5lbWl0KFwicmVqZWN0aW9uSGFuZGxlZFwiLGUpOk1jKFwicmVqZWN0aW9uaGFuZGxlZFwiLGUsdC52YWx1ZSl9KX0sTGM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbihuKXt0KGUsbixyKX19LERjPWZ1bmN0aW9uKHQsZSxyKXt0LmRvbmV8fCh0LmRvbmU9ITAsciYmKHQ9ciksdC52YWx1ZT1lLHQuc3RhdGU9MixQYyh0LCEwKSl9LENjPWZ1bmN0aW9uKHQsZSxyKXtpZighdC5kb25lKXt0LmRvbmU9ITAsciYmKHQ9cik7dHJ5e2lmKHQuZmFjYWRlPT09ZSl0aHJvdyBiYyhcIlByb21pc2UgY2FuJ3QgYmUgcmVzb2x2ZWQgaXRzZWxmXCIpO3ZhciBuPWpjKGUpO24/dWMoZnVuY3Rpb24oKXt2YXIgcj17ZG9uZTohMX07dHJ5e24uY2FsbChlLExjKENjLHIsdCksTGMoRGMscix0KSl9Y2F0Y2goZSl7RGMocixlLHQpfX0pOih0LnZhbHVlPWUsdC5zdGF0ZT0xLFBjKHQsITEpKX1jYXRjaChlKXtEYyh7ZG9uZTohMX0sZSx0KX19fTtJYyYmKG1jPWZ1bmN0aW9uKHQpe19yKHRoaXMsbWMsZGMpLFF0KHQpLG5jLmNhbGwodGhpcyk7dmFyIGU9dmModGhpcyk7dHJ5e3QoTGMoQ2MsZSksTGMoRGMsZSkpfWNhdGNoKHQpe0RjKGUsdCl9fSwobmM9ZnVuY3Rpb24odCl7Z2ModGhpcyx7dHlwZTpkYyxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9TXIobWMucHJvdG90eXBlLHt0aGVuOmZ1bmN0aW9uKHQsZSl7dmFyIHI9eWModGhpcyksbj1SYyhlbih0aGlzLG1jKSk7cmV0dXJuIG4ub2s9XCJmdW5jdGlvblwiIT10eXBlb2YgdHx8dCxuLmZhaWw9XCJmdW5jdGlvblwiPT10eXBlb2YgZSYmZSxuLmRvbWFpbj1BdT9TYy5kb21haW46dm9pZCAwLHIucGFyZW50PSEwLHIucmVhY3Rpb25zLnB1c2gobiksMCE9ci5zdGF0ZSYmUGMociwhMSksbi5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50aGVuKHZvaWQgMCx0KX19KSxvYz1mdW5jdGlvbigpe3ZhciB0PW5ldyBuYyxlPXZjKHQpO3RoaXMucHJvbWlzZT10LHRoaXMucmVzb2x2ZT1MYyhDYyxlKSx0aGlzLnJlamVjdD1MYyhEYyxlKX0sc2MuZj1SYz1mdW5jdGlvbih0KXtyZXR1cm4gdD09PW1jfHx0PT09aWM/bmV3IG9jKHQpOlRjKHQpfSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBPdSYmKGFjPU91LnByb3RvdHlwZS50aGVuLGV0KE91LnByb3RvdHlwZSxcInRoZW5cIixmdW5jdGlvbih0LGUpe3ZhciByPXRoaXM7cmV0dXJuIG5ldyBtYyhmdW5jdGlvbih0LGUpe2FjLmNhbGwocix0LGUpfSkudGhlbih0LGUpfSx7dW5zYWZlOiEwfSksXCJmdW5jdGlvblwiPT10eXBlb2Ygd2MmJlB0KHtnbG9iYWw6ITAsZW51bWVyYWJsZTohMCxmb3JjZWQ6ITB9LHtmZXRjaDpmdW5jdGlvbih0KXtyZXR1cm4gZmMobWMsd2MuYXBwbHkobixhcmd1bWVudHMpKX19KSkpLFB0KHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6SWN9LHtQcm9taXNlOm1jfSksamUobWMsZGMsITEpLFVyKGRjKSxpYz1vdChkYyksUHQoe3RhcmdldDpkYyxzdGF0OiEwLGZvcmNlZDpJY30se3JlamVjdDpmdW5jdGlvbih0KXt2YXIgZT1SYyh0aGlzKTtyZXR1cm4gZS5yZWplY3QuY2FsbCh2b2lkIDAsdCksZS5wcm9taXNlfX0pLFB0KHt0YXJnZXQ6ZGMsc3RhdDohMCxmb3JjZWQ6SWN9LHtyZXNvbHZlOmZ1bmN0aW9uKHQpe3JldHVybiBmYyh0aGlzLHQpfX0pLFB0KHt0YXJnZXQ6ZGMsc3RhdDohMCxmb3JjZWQ6X2N9LHthbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPVJjKGUpLG49ci5yZXNvbHZlLG89ci5yZWplY3QsaT1sYyhmdW5jdGlvbigpe3ZhciByPVF0KGUucmVzb2x2ZSksaT1bXSxhPTAsdT0xO0lyKHQsZnVuY3Rpb24odCl7dmFyIGM9YSsrLHM9ITE7aS5wdXNoKHZvaWQgMCksdSsrLHIuY2FsbChlLHQpLnRoZW4oZnVuY3Rpb24odCl7c3x8KHM9ITAsaVtjXT10LC0tdXx8bihpKSl9LG8pfSksLS11fHxuKGkpfSk7cmV0dXJuIGkuZXJyb3ImJm8oaS52YWx1ZSksci5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1SYyhlKSxuPXIucmVqZWN0LG89bGMoZnVuY3Rpb24oKXt2YXIgbz1RdChlLnJlc29sdmUpO0lyKHQsZnVuY3Rpb24odCl7by5jYWxsKGUsdCkudGhlbihyLnJlc29sdmUsbil9KX0pO3JldHVybiBvLmVycm9yJiZuKG8udmFsdWUpLHIucHJvbWlzZX19KSxQdCh7dGFyZ2V0OlwiUHJvbWlzZVwiLHN0YXQ6ITB9LHthbGxTZXR0bGVkOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1zYy5mKGUpLG49ci5yZXNvbHZlLG89ci5yZWplY3QsaT1sYyhmdW5jdGlvbigpe3ZhciByPVF0KGUucmVzb2x2ZSksbz1bXSxpPTAsYT0xO0lyKHQsZnVuY3Rpb24odCl7dmFyIHU9aSsrLGM9ITE7by5wdXNoKHZvaWQgMCksYSsrLHIuY2FsbChlLHQpLnRoZW4oZnVuY3Rpb24odCl7Y3x8KGM9ITAsb1t1XT17c3RhdHVzOlwiZnVsZmlsbGVkXCIsdmFsdWU6dH0sLS1hfHxuKG8pKX0sZnVuY3Rpb24odCl7Y3x8KGM9ITAsb1t1XT17c3RhdHVzOlwicmVqZWN0ZWRcIixyZWFzb246dH0sLS1hfHxuKG8pKX0pfSksLS1hfHxuKG8pfSk7cmV0dXJuIGkuZXJyb3ImJm8oaS52YWx1ZSksci5wcm9taXNlfX0pO3ZhciBGYz1cIk5vIG9uZSBwcm9taXNlIHJlc29sdmVkXCI7UHQoe3RhcmdldDpcIlByb21pc2VcIixzdGF0OiEwfSx7YW55OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1zYy5mKGUpLG49ci5yZXNvbHZlLG89ci5yZWplY3QsaT1sYyhmdW5jdGlvbigpe3ZhciByPVF0KGUucmVzb2x2ZSksaT1bXSxhPTAsdT0xLGM9ITE7SXIodCxmdW5jdGlvbih0KXt2YXIgcz1hKyssZj0hMTtpLnB1c2godm9pZCAwKSx1Kyssci5jYWxsKGUsdCkudGhlbihmdW5jdGlvbih0KXtmfHxjfHwoYz0hMCxuKHQpKX0sZnVuY3Rpb24odCl7Znx8Y3x8KGY9ITAsaVtzXT10LC0tdXx8byhuZXcob3QoXCJBZ2dyZWdhdGVFcnJvclwiKSkoaSxGYykpKX0pfSksLS11fHxvKG5ldyhvdChcIkFnZ3JlZ2F0ZUVycm9yXCIpKShpLEZjKSl9KTtyZXR1cm4gaS5lcnJvciYmbyhpLnZhbHVlKSxyLnByb21pc2V9fSk7dmFyIEJjPSEhT3UmJm8oZnVuY3Rpb24oKXtPdS5wcm90b3R5cGUuZmluYWxseS5jYWxsKHt0aGVuOmZ1bmN0aW9uKCl7fX0sZnVuY3Rpb24oKXt9KX0pO1B0KHt0YXJnZXQ6XCJQcm9taXNlXCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6QmN9LHtmaW5hbGx5OmZ1bmN0aW9uKHQpe3ZhciBlPWVuKHRoaXMsb3QoXCJQcm9taXNlXCIpKSxyPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ7cmV0dXJuIHRoaXMudGhlbihyP2Z1bmN0aW9uKHIpe3JldHVybiBmYyhlLHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiByfSl9OnQscj9mdW5jdGlvbihyKXtyZXR1cm4gZmMoZSx0KCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyByfSl9OnQpfX0pLFwiZnVuY3Rpb25cIiE9dHlwZW9mIE91fHxPdS5wcm90b3R5cGUuZmluYWxseXx8ZXQoT3UucHJvdG90eXBlLFwiZmluYWxseVwiLG90KFwiUHJvbWlzZVwiKS5wcm90b3R5cGUuZmluYWxseSksUHQoe3RhcmdldDpcIlByb21pc2VcIixzdGF0OiEwfSx7dHJ5OmZ1bmN0aW9uKHQpe3ZhciBlPXNjLmYodGhpcykscj1sYyh0KTtyZXR1cm4oci5lcnJvcj9lLnJlamVjdDplLnJlc29sdmUpKHIudmFsdWUpLGUucHJvbWlzZX19KTt2YXIgV2MsemM9dWUuZm9yRWFjaCxHYz0oV2M9W10uZm9yRWFjaCkmJm8oZnVuY3Rpb24oKXtXYy5jYWxsKG51bGwsZnVuY3Rpb24oKXt0aHJvdyAxfSwxKX0pP1tdLmZvckVhY2g6ZnVuY3Rpb24odCl7cmV0dXJuIHpjKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9O2Zvcih2YXIgS2MgaW4gV3Ipe3ZhciAkYz1uW0tjXSxWYz0kYyYmJGMucHJvdG90eXBlO2lmKFZjJiZWYy5mb3JFYWNoIT09R2MpdHJ5e18oVmMsXCJmb3JFYWNoXCIsR2MpfWNhdGNoKHQpe1ZjLmZvckVhY2g9R2N9fXZhciBxYz1cInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpc3x8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fHZvaWQgMCE9PXFjJiZxYyxIYz1cIlVSTFNlYXJjaFBhcmFtc1wiaW4gcWMsWGM9XCJTeW1ib2xcImluIHFjJiZcIml0ZXJhdG9yXCJpbiBTeW1ib2wsWWM9XCJGaWxlUmVhZGVyXCJpbiBxYyYmXCJCbG9iXCJpbiBxYyYmZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKSxKYz1cIkZvcm1EYXRhXCJpbiBxYyxRYz1cIkFycmF5QnVmZmVyXCJpbiBxYztpZihRYyl2YXIgWmM9W1wiW29iamVjdCBJbnQ4QXJyYXldXCIsXCJbb2JqZWN0IFVpbnQ4QXJyYXldXCIsXCJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XVwiLFwiW29iamVjdCBJbnQxNkFycmF5XVwiLFwiW29iamVjdCBVaW50MTZBcnJheV1cIixcIltvYmplY3QgSW50MzJBcnJheV1cIixcIltvYmplY3QgVWludDMyQXJyYXldXCIsXCJbb2JqZWN0IEZsb2F0MzJBcnJheV1cIixcIltvYmplY3QgRmxvYXQ2NEFycmF5XVwiXSx0cz1BcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKHQpe3JldHVybiB0JiZaYy5pbmRleE9mKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSk+LTF9O2Z1bmN0aW9uIGVzKHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0JiYodD1TdHJpbmcodCkpLC9bXmEtejAtOVxcLSMkJSYnKisuXl9gfH4hXS9pLnRlc3QodCl8fFwiXCI9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZVwiKTtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHJzKHQpe3JldHVyblwic3RyaW5nXCIhPXR5cGVvZiB0JiYodD1TdHJpbmcodCkpLHR9ZnVuY3Rpb24gbnModCl7dmFyIGU9e25leHQ6ZnVuY3Rpb24oKXt2YXIgZT10LnNoaWZ0KCk7cmV0dXJue2RvbmU6dm9pZCAwPT09ZSx2YWx1ZTplfX19O3JldHVybiBYYyYmKGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiBlfSksZX1mdW5jdGlvbiBvcyh0KXt0aGlzLm1hcD17fSx0IGluc3RhbmNlb2Ygb3M/dC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dGhpcy5hcHBlbmQoZSx0KX0sdGhpcyk6QXJyYXkuaXNBcnJheSh0KT90LmZvckVhY2goZnVuY3Rpb24odCl7dGhpcy5hcHBlbmQodFswXSx0WzFdKX0sdGhpcyk6dCYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaChmdW5jdGlvbihlKXt0aGlzLmFwcGVuZChlLHRbZV0pfSx0aGlzKX1mdW5jdGlvbiBpcyh0KXtpZih0LmJvZHlVc2VkKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKFwiQWxyZWFkeSByZWFkXCIpKTt0LmJvZHlVc2VkPSEwfWZ1bmN0aW9uIGFzKHQpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlLHIpe3Qub25sb2FkPWZ1bmN0aW9uKCl7ZSh0LnJlc3VsdCl9LHQub25lcnJvcj1mdW5jdGlvbigpe3IodC5lcnJvcil9fSl9ZnVuY3Rpb24gdXModCl7dmFyIGU9bmV3IEZpbGVSZWFkZXIscj1hcyhlKTtyZXR1cm4gZS5yZWFkQXNBcnJheUJ1ZmZlcih0KSxyfWZ1bmN0aW9uIGNzKHQpe2lmKHQuc2xpY2UpcmV0dXJuIHQuc2xpY2UoMCk7dmFyIGU9bmV3IFVpbnQ4QXJyYXkodC5ieXRlTGVuZ3RoKTtyZXR1cm4gZS5zZXQobmV3IFVpbnQ4QXJyYXkodCkpLGUuYnVmZmVyfWZ1bmN0aW9uIHNzKCl7cmV0dXJuIHRoaXMuYm9keVVzZWQ9ITEsdGhpcy5faW5pdEJvZHk9ZnVuY3Rpb24odCl7dmFyIGU7dGhpcy5ib2R5VXNlZD10aGlzLmJvZHlVc2VkLHRoaXMuX2JvZHlJbml0PXQsdD9cInN0cmluZ1wiPT10eXBlb2YgdD90aGlzLl9ib2R5VGV4dD10OlljJiZCbG9iLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpP3RoaXMuX2JvZHlCbG9iPXQ6SmMmJkZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKHQpP3RoaXMuX2JvZHlGb3JtRGF0YT10OkhjJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCk/dGhpcy5fYm9keVRleHQ9dC50b1N0cmluZygpOlFjJiZZYyYmKGU9dCkmJkRhdGFWaWV3LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGUpPyh0aGlzLl9ib2R5QXJyYXlCdWZmZXI9Y3ModC5idWZmZXIpLHRoaXMuX2JvZHlJbml0PW5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk6UWMmJihBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZih0KXx8dHModCkpP3RoaXMuX2JvZHlBcnJheUJ1ZmZlcj1jcyh0KTp0aGlzLl9ib2R5VGV4dD10PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KTp0aGlzLl9ib2R5VGV4dD1cIlwiLHRoaXMuaGVhZGVycy5nZXQoXCJjb250ZW50LXR5cGVcIil8fChcInN0cmluZ1wiPT10eXBlb2YgdD90aGlzLmhlYWRlcnMuc2V0KFwiY29udGVudC10eXBlXCIsXCJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThcIik6dGhpcy5fYm9keUJsb2ImJnRoaXMuX2JvZHlCbG9iLnR5cGU/dGhpcy5oZWFkZXJzLnNldChcImNvbnRlbnQtdHlwZVwiLHRoaXMuX2JvZHlCbG9iLnR5cGUpOkhjJiZVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmlzUHJvdG90eXBlT2YodCkmJnRoaXMuaGVhZGVycy5zZXQoXCJjb250ZW50LXR5cGVcIixcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04XCIpKX0sWWMmJih0aGlzLmJsb2I9ZnVuY3Rpb24oKXt2YXIgdD1pcyh0aGlzKTtpZih0KXJldHVybiB0O2lmKHRoaXMuX2JvZHlCbG9iKXJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk7aWYodGhpcy5fYm9keUZvcm1EYXRhKXRocm93IG5ldyBFcnJvcihcImNvdWxkIG5vdCByZWFkIEZvcm1EYXRhIGJvZHkgYXMgYmxvYlwiKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5VGV4dF0pKX0sdGhpcy5hcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ib2R5QXJyYXlCdWZmZXI/aXModGhpcyl8fChBcnJheUJ1ZmZlci5pc1ZpZXcodGhpcy5fYm9keUFycmF5QnVmZmVyKT9Qcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUFycmF5QnVmZmVyLmJ1ZmZlci5zbGljZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZU9mZnNldCx0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZU9mZnNldCt0aGlzLl9ib2R5QXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCkpOlByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpKTp0aGlzLmJsb2IoKS50aGVuKHVzKX0pLHRoaXMudGV4dD1mdW5jdGlvbigpe3ZhciB0PWlzKHRoaXMpO2lmKHQpcmV0dXJuIHQ7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBGaWxlUmVhZGVyLHI9YXMoZSk7cmV0dXJuIGUucmVhZEFzVGV4dCh0KSxyfSh0aGlzLl9ib2R5QmxvYik7aWYodGhpcy5fYm9keUFycmF5QnVmZmVyKXJldHVybiBQcm9taXNlLnJlc29sdmUoZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBVaW50OEFycmF5KHQpLHI9bmV3IEFycmF5KGUubGVuZ3RoKSxuPTA7bjxlLmxlbmd0aDtuKyspcltuXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGVbbl0pO3JldHVybiByLmpvaW4oXCJcIil9KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcikpO2lmKHRoaXMuX2JvZHlGb3JtRGF0YSl0aHJvdyBuZXcgRXJyb3IoXCJjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIHRleHRcIik7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dCl9LEpjJiYodGhpcy5mb3JtRGF0YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKGhzKX0pLHRoaXMuanNvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRleHQoKS50aGVuKEpTT04ucGFyc2UpfSx0aGlzfW9zLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24odCxlKXt0PWVzKHQpLGU9cnMoZSk7dmFyIHI9dGhpcy5tYXBbdF07dGhpcy5tYXBbdF09cj9yK1wiLCBcIitlOmV9LG9zLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7ZGVsZXRlIHRoaXMubWFwW2VzKHQpXX0sb3MucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdD1lcyh0KSx0aGlzLmhhcyh0KT90aGlzLm1hcFt0XTpudWxsfSxvcy5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShlcyh0KSl9LG9zLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLm1hcFtlcyh0KV09cnMoZSl9LG9zLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIHRoaXMubWFwKXRoaXMubWFwLmhhc093blByb3BlcnR5KHIpJiZ0LmNhbGwoZSx0aGlzLm1hcFtyXSxyLHRoaXMpfSxvcy5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSxyKXt0LnB1c2gocil9KSxucyh0KX0sb3MucHJvdG90eXBlLnZhbHVlcz1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSl7dC5wdXNoKGUpfSksbnModCl9LG9zLnByb3RvdHlwZS5lbnRyaWVzPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlLHIpe3QucHVzaChbcixlXSl9KSxucyh0KX0sWGMmJihvcy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1vcy5wcm90b3R5cGUuZW50cmllcyk7dmFyIGZzPVtcIkRFTEVURVwiLFwiR0VUXCIsXCJIRUFEXCIsXCJPUFRJT05TXCIsXCJQT1NUXCIsXCJQVVRcIl07ZnVuY3Rpb24gbHModCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBscykpdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgXCJuZXdcIiBvcGVyYXRvciwgdGhpcyBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4nKTt2YXIgcixuLG89KGU9ZXx8e30pLmJvZHk7aWYodCBpbnN0YW5jZW9mIGxzKXtpZih0LmJvZHlVc2VkKXRocm93IG5ldyBUeXBlRXJyb3IoXCJBbHJlYWR5IHJlYWRcIik7dGhpcy51cmw9dC51cmwsdGhpcy5jcmVkZW50aWFscz10LmNyZWRlbnRpYWxzLGUuaGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgb3ModC5oZWFkZXJzKSksdGhpcy5tZXRob2Q9dC5tZXRob2QsdGhpcy5tb2RlPXQubW9kZSx0aGlzLnNpZ25hbD10LnNpZ25hbCxvfHxudWxsPT10Ll9ib2R5SW5pdHx8KG89dC5fYm9keUluaXQsdC5ib2R5VXNlZD0hMCl9ZWxzZSB0aGlzLnVybD1TdHJpbmcodCk7aWYodGhpcy5jcmVkZW50aWFscz1lLmNyZWRlbnRpYWxzfHx0aGlzLmNyZWRlbnRpYWxzfHxcInNhbWUtb3JpZ2luXCIsIWUuaGVhZGVycyYmdGhpcy5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyBvcyhlLmhlYWRlcnMpKSx0aGlzLm1ldGhvZD0obj0ocj1lLm1ldGhvZHx8dGhpcy5tZXRob2R8fFwiR0VUXCIpLnRvVXBwZXJDYXNlKCksZnMuaW5kZXhPZihuKT4tMT9uOnIpLHRoaXMubW9kZT1lLm1vZGV8fHRoaXMubW9kZXx8bnVsbCx0aGlzLnNpZ25hbD1lLnNpZ25hbHx8dGhpcy5zaWduYWwsdGhpcy5yZWZlcnJlcj1udWxsLChcIkdFVFwiPT09dGhpcy5tZXRob2R8fFwiSEVBRFwiPT09dGhpcy5tZXRob2QpJiZvKXRocm93IG5ldyBUeXBlRXJyb3IoXCJCb2R5IG5vdCBhbGxvd2VkIGZvciBHRVQgb3IgSEVBRCByZXF1ZXN0c1wiKTtpZih0aGlzLl9pbml0Qm9keShvKSwhKFwiR0VUXCIhPT10aGlzLm1ldGhvZCYmXCJIRUFEXCIhPT10aGlzLm1ldGhvZHx8XCJuby1zdG9yZVwiIT09ZS5jYWNoZSYmXCJuby1jYWNoZVwiIT09ZS5jYWNoZSkpe3ZhciBpPS8oWz8mXSlfPVteJl0qLztpLnRlc3QodGhpcy51cmwpP3RoaXMudXJsPXRoaXMudXJsLnJlcGxhY2UoaSxcIiQxXz1cIisobmV3IERhdGUpLmdldFRpbWUoKSk6dGhpcy51cmwrPSgvXFw/Ly50ZXN0KHRoaXMudXJsKT9cIiZcIjpcIj9cIikrXCJfPVwiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpfX1mdW5jdGlvbiBocyh0KXt2YXIgZT1uZXcgRm9ybURhdGE7cmV0dXJuIHQudHJpbSgpLnNwbGl0KFwiJlwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHQpe3ZhciByPXQuc3BsaXQoXCI9XCIpLG49ci5zaGlmdCgpLnJlcGxhY2UoL1xcKy9nLFwiIFwiKSxvPXIuam9pbihcIj1cIikucmVwbGFjZSgvXFwrL2csXCIgXCIpO2UuYXBwZW5kKGRlY29kZVVSSUNvbXBvbmVudChuKSxkZWNvZGVVUklDb21wb25lbnQobykpfX0pLGV9ZnVuY3Rpb24gcHModCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBwcykpdGhyb3cgbmV3IFR5cGVFcnJvcignUGxlYXNlIHVzZSB0aGUgXCJuZXdcIiBvcGVyYXRvciwgdGhpcyBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4nKTtlfHwoZT17fSksdGhpcy50eXBlPVwiZGVmYXVsdFwiLHRoaXMuc3RhdHVzPXZvaWQgMD09PWUuc3RhdHVzPzIwMDplLnN0YXR1cyx0aGlzLm9rPXRoaXMuc3RhdHVzPj0yMDAmJnRoaXMuc3RhdHVzPDMwMCx0aGlzLnN0YXR1c1RleHQ9XCJzdGF0dXNUZXh0XCJpbiBlP2Uuc3RhdHVzVGV4dDpcIlwiLHRoaXMuaGVhZGVycz1uZXcgb3MoZS5oZWFkZXJzKSx0aGlzLnVybD1lLnVybHx8XCJcIix0aGlzLl9pbml0Qm9keSh0KX1scy5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxzKHRoaXMse2JvZHk6dGhpcy5fYm9keUluaXR9KX0sc3MuY2FsbChscy5wcm90b3R5cGUpLHNzLmNhbGwocHMucHJvdG90eXBlKSxwcy5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHBzKHRoaXMuX2JvZHlJbml0LHtzdGF0dXM6dGhpcy5zdGF0dXMsc3RhdHVzVGV4dDp0aGlzLnN0YXR1c1RleHQsaGVhZGVyczpuZXcgb3ModGhpcy5oZWFkZXJzKSx1cmw6dGhpcy51cmx9KX0scHMuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgcHMobnVsbCx7c3RhdHVzOjAsc3RhdHVzVGV4dDpcIlwifSk7cmV0dXJuIHQudHlwZT1cImVycm9yXCIsdH07dmFyIGRzPVszMDEsMzAyLDMwMywzMDcsMzA4XTtwcy5yZWRpcmVjdD1mdW5jdGlvbih0LGUpe2lmKC0xPT09ZHMuaW5kZXhPZihlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIkludmFsaWQgc3RhdHVzIGNvZGVcIik7cmV0dXJuIG5ldyBwcyhudWxsLHtzdGF0dXM6ZSxoZWFkZXJzOntsb2NhdGlvbjp0fX0pfTt2YXIgdnM9cWMuRE9NRXhjZXB0aW9uO3RyeXtuZXcgdnN9Y2F0Y2godCl7KHZzPWZ1bmN0aW9uKHQsZSl7dGhpcy5tZXNzYWdlPXQsdGhpcy5uYW1lPWU7dmFyIHI9RXJyb3IodCk7dGhpcy5zdGFjaz1yLnN0YWNrfSkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSx2cy5wcm90b3R5cGUuY29uc3RydWN0b3I9dnN9ZnVuY3Rpb24gZ3ModCxlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixuKXt2YXIgbz1uZXcgbHModCxlKTtpZihvLnNpZ25hbCYmby5zaWduYWwuYWJvcnRlZClyZXR1cm4gbihuZXcgdnMoXCJBYm9ydGVkXCIsXCJBYm9ydEVycm9yXCIpKTt2YXIgaT1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gYSgpe2kuYWJvcnQoKX1pLm9ubG9hZD1mdW5jdGlvbigpe3ZhciB0LGUsbj17c3RhdHVzOmkuc3RhdHVzLHN0YXR1c1RleHQ6aS5zdGF0dXNUZXh0LGhlYWRlcnM6KHQ9aS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKXx8XCJcIixlPW5ldyBvcyx0LnJlcGxhY2UoL1xccj9cXG5bXFx0IF0rL2csXCIgXCIpLnNwbGl0KFwiXFxyXCIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQuaW5kZXhPZihcIlxcblwiKT90LnN1YnN0cigxLHQubGVuZ3RoKTp0fSkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcj10LnNwbGl0KFwiOlwiKSxuPXIuc2hpZnQoKS50cmltKCk7aWYobil7dmFyIG89ci5qb2luKFwiOlwiKS50cmltKCk7ZS5hcHBlbmQobixvKX19KSxlKX07bi51cmw9XCJyZXNwb25zZVVSTFwiaW4gaT9pLnJlc3BvbnNlVVJMOm4uaGVhZGVycy5nZXQoXCJYLVJlcXVlc3QtVVJMXCIpO3ZhciBvPVwicmVzcG9uc2VcImluIGk/aS5yZXNwb25zZTppLnJlc3BvbnNlVGV4dDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cihuZXcgcHMobyxuKSl9LDApfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bihuZXcgVHlwZUVycm9yKFwiTmV0d29yayByZXF1ZXN0IGZhaWxlZFwiKSl9LDApfSxpLm9udGltZW91dD1mdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtuKG5ldyBUeXBlRXJyb3IoXCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkXCIpKX0sMCl9LGkub25hYm9ydD1mdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtuKG5ldyB2cyhcIkFib3J0ZWRcIixcIkFib3J0RXJyb3JcIikpfSwwKX0saS5vcGVuKG8ubWV0aG9kLGZ1bmN0aW9uKHQpe3RyeXtyZXR1cm5cIlwiPT09dCYmcWMubG9jYXRpb24uaHJlZj9xYy5sb2NhdGlvbi5ocmVmOnR9Y2F0Y2goZSl7cmV0dXJuIHR9fShvLnVybCksITApLFwiaW5jbHVkZVwiPT09by5jcmVkZW50aWFscz9pLndpdGhDcmVkZW50aWFscz0hMDpcIm9taXRcIj09PW8uY3JlZGVudGlhbHMmJihpLndpdGhDcmVkZW50aWFscz0hMSksXCJyZXNwb25zZVR5cGVcImluIGkmJihZYz9pLnJlc3BvbnNlVHlwZT1cImJsb2JcIjpRYyYmby5oZWFkZXJzLmdldChcIkNvbnRlbnQtVHlwZVwiKSYmLTEhPT1vLmhlYWRlcnMuZ2V0KFwiQ29udGVudC1UeXBlXCIpLmluZGV4T2YoXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIikmJihpLnJlc3BvbnNlVHlwZT1cImFycmF5YnVmZmVyXCIpKSwhZXx8XCJvYmplY3RcIiE9dHlwZW9mIGUuaGVhZGVyc3x8ZS5oZWFkZXJzIGluc3RhbmNlb2Ygb3M/by5oZWFkZXJzLmZvckVhY2goZnVuY3Rpb24odCxlKXtpLnNldFJlcXVlc3RIZWFkZXIoZSx0KX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUuaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbih0KXtpLnNldFJlcXVlc3RIZWFkZXIodCxycyhlLmhlYWRlcnNbdF0pKX0pLG8uc2lnbmFsJiYoby5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsYSksaS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09aS5yZWFkeVN0YXRlJiZvLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIixhKX0pLGkuc2VuZCh2b2lkIDA9PT1vLl9ib2R5SW5pdD9udWxsOm8uX2JvZHlJbml0KX0pfWdzLnBvbHlmaWxsPSEwLHFjLmZldGNofHwocWMuZmV0Y2g9Z3MscWMuSGVhZGVycz1vcyxxYy5SZXF1ZXN0PWxzLHFjLlJlc3BvbnNlPXBzKSxmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbigpe3RyeXtyZXR1cm4hIVN5bWJvbC5pdGVyYXRvcn1jYXRjaCh0KXtyZXR1cm4hMX19KCkscj1mdW5jdGlvbih0KXt2YXIgcj17bmV4dDpmdW5jdGlvbigpe3ZhciBlPXQuc2hpZnQoKTtyZXR1cm57ZG9uZTp2b2lkIDA9PT1lLHZhbHVlOmV9fX07cmV0dXJuIGUmJihyW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gcn0pLHJ9LG49ZnVuY3Rpb24odCl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lMjAvZyxcIitcIil9LG89ZnVuY3Rpb24odCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChTdHJpbmcodCkucmVwbGFjZSgvXFwrL2csXCIgXCIpKX07KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPXQuVVJMU2VhcmNoUGFyYW1zO3JldHVyblwiYT0xXCI9PT1uZXcgZShcIj9hPTFcIikudG9TdHJpbmcoKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5wcm90b3R5cGUuc2V0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnByb3RvdHlwZS5lbnRyaWVzfWNhdGNoKHQpe3JldHVybiExfX0pKCl8fGZ1bmN0aW9uKCl7dmFyIG89ZnVuY3Rpb24gdChlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIl9lbnRyaWVzXCIse3dyaXRhYmxlOiEwLHZhbHVlOnt9fSk7dmFyIHI9dHlwZW9mIGU7aWYoXCJ1bmRlZmluZWRcIj09PXIpO2Vsc2UgaWYoXCJzdHJpbmdcIj09PXIpXCJcIiE9PWUmJnRoaXMuX2Zyb21TdHJpbmcoZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgdCl7dmFyIG49dGhpcztlLmZvckVhY2goZnVuY3Rpb24odCxlKXtuLmFwcGVuZChlLHQpfSl9ZWxzZXtpZihudWxsPT09ZXx8XCJvYmplY3RcIiE9PXIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlVuc3VwcG9ydGVkIGlucHV0J3MgdHlwZSBmb3IgVVJMU2VhcmNoUGFyYW1zXCIpO2lmKFwiW29iamVjdCBBcnJheV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIGk9ZVtvXTtpZihcIltvYmplY3QgQXJyYXldXCIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaSkmJjI9PT1pLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgW3N0cmluZywgYW55XSBhcyBlbnRyeSBhdCBpbmRleCBcIitvK1wiIG9mIFVSTFNlYXJjaFBhcmFtcydzIGlucHV0XCIpO3RoaXMuYXBwZW5kKGlbMF0saVsxXSl9ZWxzZSBmb3IodmFyIGEgaW4gZSllLmhhc093blByb3BlcnR5KGEpJiZ0aGlzLmFwcGVuZChhLGVbYV0pfX0saT1vLnByb3RvdHlwZTtpLmFwcGVuZD1mdW5jdGlvbih0LGUpe3QgaW4gdGhpcy5fZW50cmllcz90aGlzLl9lbnRyaWVzW3RdLnB1c2goU3RyaW5nKGUpKTp0aGlzLl9lbnRyaWVzW3RdPVtTdHJpbmcoZSldfSxpLmRlbGV0ZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5fZW50cmllc1t0XX0saS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gdGhpcy5fZW50cmllcz90aGlzLl9lbnRyaWVzW3RdWzBdOm51bGx9LGkuZ2V0QWxsPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluIHRoaXMuX2VudHJpZXM/dGhpcy5fZW50cmllc1t0XS5zbGljZSgwKTpbXX0saS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gdGhpcy5fZW50cmllc30saS5zZXQ9ZnVuY3Rpb24odCxlKXt0aGlzLl9lbnRyaWVzW3RdPVtTdHJpbmcoZSldfSxpLmZvckVhY2g9ZnVuY3Rpb24odCxlKXt2YXIgcjtmb3IodmFyIG4gaW4gdGhpcy5fZW50cmllcylpZih0aGlzLl9lbnRyaWVzLmhhc093blByb3BlcnR5KG4pKXtyPXRoaXMuX2VudHJpZXNbbl07Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspdC5jYWxsKGUscltvXSxuLHRoaXMpfX0saS5rZXlzPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlLHIpe3QucHVzaChyKX0pLHIodCl9LGkudmFsdWVzPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlKXt0LnB1c2goZSl9KSxyKHQpfSxpLmVudHJpZXM9ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7dC5wdXNoKFtyLGVdKX0pLHIodCl9LGUmJihpW1N5bWJvbC5pdGVyYXRvcl09aS5lbnRyaWVzKSxpLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihlLHIpe3QucHVzaChuKHIpK1wiPVwiK24oZSkpfSksdC5qb2luKFwiJlwiKX0sdC5VUkxTZWFyY2hQYXJhbXM9b30oKTt2YXIgaT10LlVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGU7XCJmdW5jdGlvblwiIT10eXBlb2YgaS5zb3J0JiYoaS5zb3J0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVtdO3RoaXMuZm9yRWFjaChmdW5jdGlvbihyLG4pe2UucHVzaChbbixyXSksdC5fZW50cmllc3x8dC5kZWxldGUobil9KSxlLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXTxlWzBdPy0xOnRbMF0+ZVswXT8xOjB9KSx0Ll9lbnRyaWVzJiYodC5fZW50cmllcz17fSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdGhpcy5hcHBlbmQoZVtyXVswXSxlW3JdWzFdKX0pLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGkuX2Zyb21TdHJpbmcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLFwiX2Zyb21TdHJpbmdcIix7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITEsd3JpdGFibGU6ITEsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5fZW50cmllcyl0aGlzLl9lbnRyaWVzPXt9O2Vsc2V7dmFyIGU9W107dGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHQscil7ZS5wdXNoKHIpfSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdGhpcy5kZWxldGUoZVtyXSl9dmFyIG4saT0odD10LnJlcGxhY2UoL15cXD8vLFwiXCIpKS5zcGxpdChcIiZcIik7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyluPWlbcl0uc3BsaXQoXCI9XCIpLHRoaXMuYXBwZW5kKG8oblswXSksbi5sZW5ndGg+MT9vKG5bMV0pOlwiXCIpfX0pfSh2b2lkIDAhPT10P3Q6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0KSxmdW5jdGlvbih0KXt2YXIgZSxyLG47aWYoZnVuY3Rpb24oKXt0cnl7dmFyIGU9bmV3IHQuVVJMKFwiYlwiLFwiaHR0cDovL2FcIik7cmV0dXJuIGUucGF0aG5hbWU9XCJjIGRcIixcImh0dHA6Ly9hL2MlMjBkXCI9PT1lLmhyZWYmJmUuc2VhcmNoUGFyYW1zfWNhdGNoKHQpe3JldHVybiExfX0oKXx8KGU9dC5VUkwsbj0ocj1mdW5jdGlvbihlLHIpe1wic3RyaW5nXCIhPXR5cGVvZiBlJiYoZT1TdHJpbmcoZSkpLHImJlwic3RyaW5nXCIhPXR5cGVvZiByJiYocj1TdHJpbmcocikpO3ZhciBuLG89ZG9jdW1lbnQ7aWYociYmKHZvaWQgMD09PXQubG9jYXRpb258fHIhPT10LmxvY2F0aW9uLmhyZWYpKXtyPXIudG9Mb3dlckNhc2UoKSwobj0obz1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoXCJcIikpLmNyZWF0ZUVsZW1lbnQoXCJiYXNlXCIpKS5ocmVmPXIsby5oZWFkLmFwcGVuZENoaWxkKG4pO3RyeXtpZigwIT09bi5ocmVmLmluZGV4T2YocikpdGhyb3cgbmV3IEVycm9yKG4uaHJlZil9Y2F0Y2godCl7dGhyb3cgbmV3IEVycm9yKFwiVVJMIHVuYWJsZSB0byBzZXQgYmFzZSBcIityK1wiIGR1ZSB0byBcIit0KX19dmFyIGk9by5jcmVhdGVFbGVtZW50KFwiYVwiKTtpLmhyZWY9ZSxuJiYoby5ib2R5LmFwcGVuZENoaWxkKGkpLGkuaHJlZj1pLmhyZWYpO3ZhciBhPW8uY3JlYXRlRWxlbWVudChcImlucHV0XCIpO2lmKGEudHlwZT1cInVybFwiLGEudmFsdWU9ZSxcIjpcIj09PWkucHJvdG9jb2x8fCEvOi8udGVzdChpLmhyZWYpfHwhYS5jaGVja1ZhbGlkaXR5KCkmJiFyKXRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIFVSTFwiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcIl9hbmNob3JFbGVtZW50XCIse3ZhbHVlOml9KTt2YXIgdT1uZXcgdC5VUkxTZWFyY2hQYXJhbXModGhpcy5zZWFyY2gpLGM9ITAscz0hMCxmPXRoaXM7W1wiYXBwZW5kXCIsXCJkZWxldGVcIixcInNldFwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXVbdF07dVt0XT1mdW5jdGlvbigpe2UuYXBwbHkodSxhcmd1bWVudHMpLGMmJihzPSExLGYuc2VhcmNoPXUudG9TdHJpbmcoKSxzPSEwKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxcInNlYXJjaFBhcmFtc1wiLHt2YWx1ZTp1LGVudW1lcmFibGU6ITB9KTt2YXIgbD12b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsXCJfdXBkYXRlU2VhcmNoUGFyYW1zXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWFyY2ghPT1sJiYobD10aGlzLnNlYXJjaCxzJiYoYz0hMSx0aGlzLnNlYXJjaFBhcmFtcy5fZnJvbVN0cmluZyh0aGlzLnNlYXJjaCksYz0hMCkpfX0pfSkucHJvdG90eXBlLFtcImhhc2hcIixcImhvc3RcIixcImhvc3RuYW1lXCIsXCJwb3J0XCIsXCJwcm90b2NvbFwiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkobix0LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYW5jaG9yRWxlbWVudFt0XX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXMuX2FuY2hvckVsZW1lbnRbdF09ZX0sZW51bWVyYWJsZTohMH0pfSh0KX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwic2VhcmNoXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmNob3JFbGVtZW50LnNlYXJjaH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2FuY2hvckVsZW1lbnQuc2VhcmNoPXQsdGhpcy5fdXBkYXRlU2VhcmNoUGFyYW1zKCl9LGVudW1lcmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLHt0b1N0cmluZzp7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5ocmVmfX19LGhyZWY6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmNob3JFbGVtZW50LmhyZWYucmVwbGFjZSgvXFw/JC8sXCJcIil9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9hbmNob3JFbGVtZW50LmhyZWY9dCx0aGlzLl91cGRhdGVTZWFyY2hQYXJhbXMoKX0sZW51bWVyYWJsZTohMH0scGF0aG5hbWU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmNob3JFbGVtZW50LnBhdGhuYW1lLnJlcGxhY2UoLyheXFwvPykvLFwiL1wiKX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX2FuY2hvckVsZW1lbnQucGF0aG5hbWU9dH0sZW51bWVyYWJsZTohMH0sb3JpZ2luOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYW5jaG9yRWxlbWVudC5wcm90b2NvbCtcIi8vXCIrdGhpcy5fYW5jaG9yRWxlbWVudC5ob3N0bmFtZSsodGhpcy5fYW5jaG9yRWxlbWVudC5wb3J0IT17XCJodHRwOlwiOjgwLFwiaHR0cHM6XCI6NDQzLFwiZnRwOlwiOjIxfVt0aGlzLl9hbmNob3JFbGVtZW50LnByb3RvY29sXSYmXCJcIiE9PXRoaXMuX2FuY2hvckVsZW1lbnQucG9ydD9cIjpcIit0aGlzLl9hbmNob3JFbGVtZW50LnBvcnQ6XCJcIil9LGVudW1lcmFibGU6ITB9LHBhc3N3b3JkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIlwifSxzZXQ6ZnVuY3Rpb24odCl7fSxlbnVtZXJhYmxlOiEwfSx1c2VybmFtZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuXCJcIn0sc2V0OmZ1bmN0aW9uKHQpe30sZW51bWVyYWJsZTohMH19KSxyLmNyZWF0ZU9iamVjdFVSTD1mdW5jdGlvbih0KXtyZXR1cm4gZS5jcmVhdGVPYmplY3RVUkwuYXBwbHkoZSxhcmd1bWVudHMpfSxyLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbih0KXtyZXR1cm4gZS5yZXZva2VPYmplY3RVUkwuYXBwbHkoZSxhcmd1bWVudHMpfSx0LlVSTD1yKSx2b2lkIDAhPT10LmxvY2F0aW9uJiYhKFwib3JpZ2luXCJpbiB0LmxvY2F0aW9uKSl7dmFyIG89ZnVuY3Rpb24oKXtyZXR1cm4gdC5sb2NhdGlvbi5wcm90b2NvbCtcIi8vXCIrdC5sb2NhdGlvbi5ob3N0bmFtZSsodC5sb2NhdGlvbi5wb3J0P1wiOlwiK3QubG9jYXRpb24ucG9ydDpcIlwiKX07dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmxvY2F0aW9uLFwib3JpZ2luXCIse2dldDpvLGVudW1lcmFibGU6ITB9KX1jYXRjaChlKXtzZXRJbnRlcnZhbChmdW5jdGlvbigpe3QubG9jYXRpb24ub3JpZ2luPW8oKX0sMTAwKX19fSh2b2lkIDAhPT10P3Q6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0KTt2YXIgeXM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxtcz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGJzPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7ZnVuY3Rpb24gRXModCl7aWYobnVsbD09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWRcIik7cmV0dXJuIE9iamVjdCh0KX12YXIgU3M9ZnVuY3Rpb24oKXt0cnl7aWYoIU9iamVjdC5hc3NpZ24pcmV0dXJuITE7dmFyIHQ9bmV3IFN0cmluZyhcImFiY1wiKTtpZih0WzVdPVwiZGVcIixcIjVcIj09PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpWzBdKXJldHVybiExO2Zvcih2YXIgZT17fSxyPTA7cjwxMDtyKyspZVtcIl9cIitTdHJpbmcuZnJvbUNoYXJDb2RlKHIpXT1yO2lmKFwiMDEyMzQ1Njc4OVwiIT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSkuam9pbihcIlwiKSlyZXR1cm4hMTt2YXIgbj17fTtyZXR1cm5cImFiY2RlZmdoaWprbG1ub3BxcnN0XCIuc3BsaXQoXCJcIikuZm9yRWFjaChmdW5jdGlvbih0KXtuW3RdPXR9KSxcImFiY2RlZmdoaWprbG1ub3BxcnN0XCI9PT1PYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LG4pKS5qb2luKFwiXCIpfWNhdGNoKHQpe3JldHVybiExfX0oKT9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG4sbz1Fcyh0KSxpPTE7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7Zm9yKHZhciBhIGluIHI9T2JqZWN0KGFyZ3VtZW50c1tpXSkpbXMuY2FsbChyLGEpJiYob1thXT1yW2FdKTtpZih5cyl7bj15cyhyKTtmb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKylicy5jYWxsKHIsblt1XSkmJihvW25bdV1dPXJbblt1XV0pfX1yZXR1cm4gb307T2JqZWN0LmFzc2lnbj1Tc30oKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8609\n')},2947:function(__unused_webpack_module,__unused_webpack___webpack_exports__,__webpack_require__){"use strict";eval("/* harmony import */ var gatsby_legacy_polyfills__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8609);\n/* harmony import */ var gatsby_legacy_polyfills__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(gatsby_legacy_polyfills__WEBPACK_IMPORTED_MODULE_0__);\nif(false){}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9qdXN0aWNlNDAtdG9vbC8uLy5jYWNoZS9wb2x5ZmlsbC1lbnRyeS5qcz81OTViIl0sIm5hbWVzIjpbInByb2Nlc3MiXSwibWFwcGluZ3MiOiI7O0FBRUEsR0FBSUEsS0FBSixDQUE0QyIsImZpbGUiOiIyOTQ3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiZ2F0c2J5LWxlZ2FjeS1wb2x5ZmlsbHNcIlxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IGBkZXZlbG9wbWVudGApIHtcbiAgcmVxdWlyZShgZXZlbnQtc291cmNlLXBvbHlmaWxsYClcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2947\n")}},function(t){"use strict";var e;e=2947,t(t.s=e)}]);