resolver-egretimp-plus 0.0.89 → 0.0.91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/const/index.js +1 -2
- package/dist/h5/index.js +18 -19
- package/dist/web/index.js +75 -76
- package/package.json +1 -1
- package/scripts/webpack.config.js +1 -1
- package/src/analysisComponent.jsx +5 -0
- package/src/components/packages-H5/CmiCell.vue +10 -2
- package/src/components/packages-H5/CustomComponentTableH5.vue +42 -26
- package/src/index.jsx +3 -0
- package/src/utils/common.js +4 -1
- package/src/utils/render.jsx +5 -4
package/dist/const/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
var r={48618:(r,t,e)=>{e.d(t,{E1:()=>A,M6:()=>x,fN:()=>T}),e(16280),e(76918),e(54743),e(11745),e(38309),e(16573),e(78100),e(77936),e(23288),e(2892),e(79432),e(26099),e(84864),e(57465),e(27495),e(87745),e(90906),e(38781),e(25440),e(50375),e(21489),e(48140),e(81630),e(72170),e(75044),e(69539),e(31694),e(89955),e(21903),e(91134),e(33206),e(44496),e(66651),e(12887),e(19369),e(66812),e(8995),e(31575),e(36072),e(88747),e(28845),e(29423),e(57301),e(373),e(86614),e(41405),e(37467),e(44732),e(33684),e(79577);var n=e(27681),o=e.n(n),a=e(71426),i=e.n(a),u=e(27124),c=e.n(u),s=e(36586),f=e.n(s),p=e(18979),l=e.n(p),v=e(73363),y=e.n(v),d=(e(86226),e(50697),e(11393),e(66615),e(11265),e(48079)),h=e.n(d);function g(r){var t=o()(null);return function(e){return t[e]||(t[e]=r(e))}}function x(r){if(!r)return null;var t=Number(r);if(isNaN(t)){var e=["px","%","vh","vw","rem","em"],n=i()(e).call(e,(function(t){return null==r?void 0:c()(r).call(r,t)}));return n?f()(r)+n:null}return t+"px"}var m=/-(\w)/g,b=g((function(r){return r.replace(m,(function(r,t){return t?t.toUpperCase():""}))})),w=g((function(r){return r.charAt(0).toUpperCase()+l()(r).call(r,1)}));function E(r,t){var e=function(r,t){if("string"!=typeof t)return null;var e=r;if(void 0!==e[t]&&null!==e[t])return e[t];var n=b(t);if(void 0!==e[n]&&null!==e[n])return e[n];var o=w(n);return void 0!==e[o]&&null!==e[o]?e[o]:null}(y()(r).call(r,(function(r,t,e){return r[t]=e,r}),{}),t);return null==e?-1:e}function A(r,t){return-1!==E(r,null==t?void 0:t.renderby)||-1!==E(r,null==t?void 0:t.metaType)}function T(r,t){var e,n,o,a=r.referenceOptions,i=r.selectKey,u=[];try{var c;u=h()(c=JSON.parse((null==r?void 0:r.optionItems)||"[]")).call(c,(function(r){return{columnValue:r.value,columnDesc_zh:r.label,columnDesc:r.label_en||r.label,columnStatus:r.columnStatus}}))}catch(r){u=[]}return(null==t?void 0:t.value)&&(null==t||null===(e=t.value)||void 0===e?void 0:e[i])||(null==t?void 0:t.value)&&(null==t||null===(n=t.value)||void 0===n?void 0:n["".concat(r.metaCode,"ListValue")])||(null==t?void 0:t.value)&&(null==t||null===(o=t.value)||void 0===o?void 0:o[a])||u||[]}Object.prototype.hasOwnProperty},66615:(r,t,e)=>{e(18402)},11393:(r,t,e)=>{r.exports=e(50530)},27124:(r,t,e)=>{r.exports=e(85837)},71426:(r,t,e)=>{r.exports=e(99617)},86226:(r,t,e)=>{e(24525)},64007:(r,t,e)=>{r.exports=e(77852)},48079:(r,t,e)=>{r.exports=e(98894)},73363:(r,t,e)=>{r.exports=e(79528)},18979:(r,t,e)=>{r.exports=e(6686)},11265:(r,t,e)=>{e(12217)},27681:(r,t,e)=>{r.exports=e(93658)},50697:(r,t,e)=>{e(76490)},36586:(r,t,e)=>{r.exports=e(91921)},13531:(r,t,e)=>{e(92425);var n=e(92046);r.exports=n.Array.isArray},96275:(r,t,e)=>{e(58545);var n=e(61747);r.exports=n("Array","concat")},94668:(r,t,e)=>{e(6290);var n=e(61747);r.exports=n("Array","find")},22092:(r,t,e)=>{e(95650);var n=e(61747);r.exports=n("Array","forEach")},83309:(r,t,e)=>{e(66391);var n=e(61747);r.exports=n("Array","indexOf")},28253:(r,t,e)=>{e(6687);var n=e(61747);r.exports=n("Array","map")},16693:(r,t,e)=>{e(46339);var n=e(61747);r.exports=n("Array","reduce")},75265:(r,t,e)=>{e(62099);var n=e(61747);r.exports=n("Array","slice")},45837:(r,t,e)=>{var n=e(88280),o=e(96275),a=Array.prototype;r.exports=function(r){var t=r.concat;return r===a||n(a,r)&&t===a.concat?o:t}},64048:(r,t,e)=>{var n=e(88280),o=e(48270),a=String.prototype;r.exports=function(r){var t=r.endsWith;return"string"==typeof r||r===a||n(a,r)&&t===a.endsWith?o:t}},63246:(r,t,e)=>{var n=e(88280),o=e(94668),a=Array.prototype;r.exports=function(r){var t=r.find;return r===a||n(a,r)&&t===a.find?o:t}},44507:(r,t,e)=>{var n=e(88280),o=e(83309),a=Array.prototype;r.exports=function(r){var t=r.indexOf;return r===a||n(a,r)&&t===a.indexOf?o:t}},39299:(r,t,e)=>{var n=e(88280),o=e(28253),a=Array.prototype;r.exports=function(r){var t=r.map;return r===a||n(a,r)&&t===a.map?o:t}},28823:(r,t,e)=>{var n=e(88280),o=e(16693),a=Array.prototype;r.exports=function(r){var t=r.reduce;return r===a||n(a,r)&&t===a.reduce?o:t}},40303:(r,t,e)=>{var n=e(88280),o=e(75265),a=Array.prototype;r.exports=function(r){var t=r.slice;return r===a||n(a,r)&&t===a.slice?o:t}},8661:(r,t,e)=>{var n=e(88280),o=e(77511),a=String.prototype;r.exports=function(r){var t=r.trim;return"string"==typeof r||r===a||n(a,r)&&t===a.trim?o:t}},80149:(r,t,e)=>{e(25837);var n=e(92046).Object;r.exports=function(r,t){return n.create(r,t)}},19661:(r,t,e)=>{e(83589);var n=e(92046);r.exports=n.Object.keys},84326:(r,t,e)=>{e(42193);var n=e(92046);r.exports=n.parseInt},48270:(r,t,e)=>{e(80430);var n=e(61747);r.exports=n("String","endsWith")},77511:(r,t,e)=>{e(50727);var n=e(61747);r.exports=n("String","trim")},82159:(r,t,e)=>{var n=e(62250),o=e(4640),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},42156:r=>{r.exports=function(){}},36624:(r,t,e)=>{var n=e(46285),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},22914:(r,t,e)=>{var n=e(70726).forEach,o=e(77623)("forEach");r.exports=o?[].forEach:function(r){return n(this,r,arguments.length>1?arguments[1]:void 0)}},74436:(r,t,e)=>{var n=e(27374),o=e(34849),a=e(20575),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},70726:(r,t,e)=>{var n=e(28311),o=e(1907),a=e(16946),i=e(39298),u=e(20575),c=e(56968),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},59552:(r,t,e)=>{var n=e(98828),o=e(76264),a=e(20798),i=o("species");r.exports=function(r){return a>=51||!n((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[r](Boolean).foo}))}},77623:(r,t,e)=>{var n=e(98828);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},35043:(r,t,e)=>{var n=e(82159),o=e(39298),a=e(16946),i=e(20575),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},93427:(r,t,e)=>{var n=e(1907);r.exports=n([].slice)},64010:(r,t,e)=>{var n=e(11793),o=e(25468),a=e(46285),i=e(76264)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},56968:(r,t,e)=>{var n=e(64010);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},45807:(r,t,e)=>{var n=e(1907),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},73948:(r,t,e)=>{var n=e(52623),o=e(62250),a=e(45807),i=e(76264)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},25735:(r,t,e)=>{var n=e(76264)("match");r.exports=function(r){var t=/./;try{"/./"[r](t)}catch(e){try{return t[n]=!1,"/./"[r](t)}catch(r){}}return!1}},61626:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},75817:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},5543:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=function(r,t,e){n?o.f(r,t,a(0,e)):r[t]=e}},2532:(r,t,e)=>{var n=e(45951),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},39447:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},49552:(r,t,e)=>{var n=e(45951),o=e(46285),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88024:r=>{var t=TypeError;r.exports=function(r){if(r>9007199254740991)throw t("Maximum allowed index exceeded");return r}},80376:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},47586:(r,t,e)=>{var n=e(42832);r.exports="NODE"===n},96794:(r,t,e)=>{var n=e(45951).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},20798:(r,t,e)=>{var n,o,a=e(45951),i=e(96794),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},42832:(r,t,e)=>{var n=e(45951),o=e(96794),a=e(45807),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},11091:(r,t,e)=>{var n=e(45951),o=e(76024),a=e(92361),i=e(62250),u=e(13846).f,c=e(7463),s=e(92046),f=e(28311),p=e(61626),l=e(49724);e(36128);var v=function(r){var t=function(e,n,a){if(this instanceof t){switch(arguments.length){case 0:return new r;case 1:return new r(e);case 2:return new r(e,n)}return new r(e,n,a)}return o(r,this,arguments)};return t.prototype=r.prototype,t};r.exports=function(r,t){var e,o,y,d,h,g,x,m,b,w=r.target,E=r.global,A=r.stat,T=r.proto,O=E?n:A?n[w]:n[w]&&n[w].prototype,S=E?s:s[w]||p(s,w,{})[w],C=S.prototype;for(d in t)o=!(e=c(E?d:w+(A?".":"#")+d,r.forced))&&O&&l(O,d),g=S[d],o&&(x=r.dontCallGetSet?(b=u(O,d))&&b.value:O[d]),h=o&&x?x:t[d],(e||T||typeof g!=typeof h)&&(m=r.bind&&o?f(h,n):r.wrap&&o?v(h):T&&i(h)?a(h):h,(r.sham||h&&h.sham||g&&g.sham)&&p(m,"sham",!0),p(S,d,m),T&&(l(s,y=w+"Prototype")||p(s,y,{}),p(s[y],d,h),r.real&&C&&(e||!C[d])&&p(C,d,h)))}},98828:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},76024:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},28311:(r,t,e)=>{var n=e(92361),o=e(82159),a=e(41505),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},41505:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},13930:(r,t,e)=>{var n=e(41505),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},36833:(r,t,e)=>{var n=e(39447),o=e(49724),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},92361:(r,t,e)=>{var n=e(45807),o=e(1907);r.exports=function(r){if("Function"===n(r))return o(r)}},1907:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},61747:(r,t,e)=>{var n=e(45951),o=e(92046);r.exports=function(r,t){var e=o[r+"Prototype"],a=e&&e[t];if(a)return a;var i=n[r],u=i&&i.prototype;return u&&u[t]}},85582:(r,t,e)=>{var n=e(92046),o=e(45951),a=e(62250),i=function(r){return a(r)?r:void 0};r.exports=function(r,t){return arguments.length<2?i(n[r])||i(o[r]):n[r]&&n[r][t]||o[r]&&o[r][t]}},29367:(r,t,e)=>{var n=e(82159),o=e(87136);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},45951:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},49724:(r,t,e)=>{var n=e(1907),o=e(39298),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},38530:r=>{r.exports={}},62416:(r,t,e)=>{var n=e(85582);r.exports=n("document","documentElement")},73648:(r,t,e)=>{var n=e(39447),o=e(98828),a=e(49552);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},16946:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(45807),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},12647:(r,t,e)=>{var n=e(1907),o=e(62250),a=e(36128),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},11793:(r,t,e)=>{var n=e(45807);r.exports=Array.isArray||function(r){return"Array"===n(r)}},62250:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},25468:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(62250),i=e(73948),u=e(85582),c=e(12647),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},7463:(r,t,e)=>{var n=e(98828),o=e(62250),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},87136:r=>{r.exports=function(r){return null==r}},46285:(r,t,e)=>{var n=e(62250);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},7376:r=>{r.exports=!0},72087:(r,t,e)=>{var n=e(46285),o=e(45807),a=e(76264)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},25594:(r,t,e)=>{var n=e(85582),o=e(62250),a=e(88280),i=e(51175),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},20575:(r,t,e)=>{var n=e(3121);r.exports=function(r){return n(r.length)}},41176:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},12074:(r,t,e)=>{var n=e(72087),o=TypeError;r.exports=function(r){if(n(r))throw new o("The method doesn't accept regular expressions");return r}},72778:(r,t,e)=>{var n=e(45951),o=e(98828),a=e(1907),i=e(90160),u=e(65993).trim,c=e(86395),s=n.parseInt,f=n.Symbol,p=f&&f.iterator,l=/^[+-]?0x/i,v=a(l.exec),y=8!==s(c+"08")||22!==s(c+"0x16")||p&&!o((function(){s(Object(p))}));r.exports=y?function(r,t){var e=u(i(r));return s(e,t>>>0||(v(l,e)?16:10))}:s},58075:(r,t,e)=>{var n,o=e(36624),a=e(42220),i=e(80376),u=e(38530),c=e(62416),s=e(49552),f=e(92522),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},42220:(r,t,e)=>{var n=e(39447),o=e(58661),a=e(74284),i=e(36624),u=e(27374),c=e(2875);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},74284:(r,t,e)=>{var n=e(39447),o=e(73648),a=e(58661),i=e(36624),u=e(70470),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},13846:(r,t,e)=>{var n=e(39447),o=e(13930),a=e(22574),i=e(75817),u=e(27374),c=e(70470),s=e(49724),f=e(73648),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},88280:(r,t,e)=>{var n=e(1907);r.exports=n({}.isPrototypeOf)},23045:(r,t,e)=>{var n=e(1907),o=e(49724),a=e(27374),i=e(74436).indexOf,u=e(38530),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},2875:(r,t,e)=>{var n=e(23045),o=e(80376);r.exports=Object.keys||function(r){return n(r,o)}},22574:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},60581:(r,t,e)=>{var n=e(13930),o=e(62250),a=e(46285),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},92046:r=>{r.exports={}},74239:(r,t,e)=>{var n=e(87136),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},92522:(r,t,e)=>{var n=e(85816),o=e(6499),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},36128:(r,t,e)=>{var n=e(7376),o=e(45951),a=e(2532),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},85816:(r,t,e)=>{var n=e(36128);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},95819:(r,t,e)=>{var n=e(36833),o=e(98828),a=e(86395);r.exports=function(r){return o((function(){return!!a[r]()||"
"!=="
"[r]()||n&&a[r].name!==r}))}},65993:(r,t,e)=>{var n=e(1907),o=e(74239),a=e(90160),i=e(86395),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},19846:(r,t,e)=>{var n=e(20798),o=e(98828),a=e(45951).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},34849:(r,t,e)=>{var n=e(65482),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},27374:(r,t,e)=>{var n=e(16946),o=e(74239);r.exports=function(r){return n(o(r))}},65482:(r,t,e)=>{var n=e(41176);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},3121:(r,t,e)=>{var n=e(65482),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},39298:(r,t,e)=>{var n=e(74239),o=Object;r.exports=function(r){return o(n(r))}},46028:(r,t,e)=>{var n=e(13930),o=e(46285),a=e(25594),i=e(29367),u=e(60581),c=e(76264),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},70470:(r,t,e)=>{var n=e(46028),o=e(25594);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},52623:(r,t,e)=>{var n={};n[e(76264)("toStringTag")]="z",r.exports="[object z]"===String(n)},90160:(r,t,e)=>{var n=e(73948),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},4640:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},6499:(r,t,e)=>{var n=e(1907),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},51175:(r,t,e)=>{var n=e(19846);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},58661:(r,t,e)=>{var n=e(39447),o=e(98828);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},76264:(r,t,e)=>{var n=e(45951),o=e(85816),a=e(49724),i=e(6499),u=e(19846),c=e(51175),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},86395:r=>{r.exports="\t\n\v\f\r \u2028\u2029\ufeff"},58545:(r,t,e)=>{var n=e(11091),o=e(98828),a=e(11793),i=e(46285),u=e(39298),c=e(20575),s=e(88024),f=e(5543),p=e(56968),l=e(59552),v=e(76264),y=e(20798),d=v("isConcatSpreadable"),h=y>=51||!o((function(){var r=[];return r[d]=!1,r.concat()[0]!==r})),g=function(r){if(!i(r))return!1;var t=r[d];return void 0!==t?!!t:a(r)};n({target:"Array",proto:!0,arity:1,forced:!h||!l("concat")},{concat:function(r){var t,e,n,o,a,i=u(this),l=p(i,0),v=0;for(t=-1,n=arguments.length;t<n;t++)if(g(a=-1===t?i:arguments[t]))for(o=c(a),s(v+o),e=0;e<o;e++,v++)e in a&&f(l,v,a[e]);else s(v+1),f(l,v++,a);return l.length=v,l}})},6290:(r,t,e)=>{var n=e(11091),o=e(70726).find,a=e(42156),i="find",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),n({target:"Array",proto:!0,forced:u},{find:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}}),a(i)},95650:(r,t,e)=>{var n=e(11091),o=e(22914);n({target:"Array",proto:!0,forced:[].forEach!==o},{forEach:o})},66391:(r,t,e)=>{var n=e(11091),o=e(92361),a=e(74436).indexOf,i=e(77623),u=o([].indexOf),c=!!u&&1/u([1],1,-0)<0;n({target:"Array",proto:!0,forced:c||!i("indexOf")},{indexOf:function(r){var t=arguments.length>1?arguments[1]:void 0;return c?u(this,r,t)||0:a(this,r,t)}})},92425:(r,t,e)=>{e(11091)({target:"Array",stat:!0},{isArray:e(11793)})},6687:(r,t,e)=>{var n=e(11091),o=e(70726).map;n({target:"Array",proto:!0,forced:!e(59552)("map")},{map:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}})},46339:(r,t,e)=>{var n=e(11091),o=e(35043).left,a=e(77623),i=e(20798);n({target:"Array",proto:!0,forced:!e(47586)&&i>79&&i<83||!a("reduce")},{reduce:function(r){var t=arguments.length;return o(this,r,t,t>1?arguments[1]:void 0)}})},62099:(r,t,e)=>{var n=e(11091),o=e(11793),a=e(25468),i=e(46285),u=e(34849),c=e(20575),s=e(27374),f=e(5543),p=e(76264),l=e(59552),v=e(93427),y=l("slice"),d=p("species"),h=Array,g=Math.max;n({target:"Array",proto:!0,forced:!y},{slice:function(r,t){var e,n,p,l=s(this),y=c(l),x=u(r,y),m=u(void 0===t?y:t,y);if(o(l)&&(e=l.constructor,(a(e)&&(e===h||o(e.prototype))||i(e)&&null===(e=e[d]))&&(e=void 0),e===h||void 0===e))return v(l,x,m);for(n=new(void 0===e?h:e)(g(m-x,0)),p=0;x<m;x++,p++)x in l&&f(n,p,l[x]);return n.length=p,n}})},25837:(r,t,e)=>{e(11091)({target:"Object",stat:!0,sham:!e(39447)},{create:e(58075)})},83589:(r,t,e)=>{var n=e(11091),o=e(39298),a=e(2875);n({target:"Object",stat:!0,forced:e(98828)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},42193:(r,t,e)=>{var n=e(11091),o=e(72778);n({global:!0,forced:parseInt!==o},{parseInt:o})},80430:(r,t,e)=>{var n,o=e(11091),a=e(92361),i=e(13846).f,u=e(3121),c=e(90160),s=e(12074),f=e(74239),p=e(25735),l=e(7376),v=a("".slice),y=Math.min,d=p("endsWith");o({target:"String",proto:!0,forced:!(!l&&!d&&(n=i(String.prototype,"endsWith"),n&&!n.writable)||d)},{endsWith:function(r){var t=c(f(this));s(r);var e=arguments.length>1?arguments[1]:void 0,n=t.length,o=void 0===e?n:y(u(e),n),a=c(r);return v(t,o-a.length,o)===a}})},50727:(r,t,e)=>{var n=e(11091),o=e(65993).trim;n({target:"String",proto:!0,forced:e(95819)("trim")},{trim:function(){return o(this)}})},60237:()=>{},18402:(r,t,e)=>{var n=e(13531);r.exports=n},41969:(r,t,e)=>{var n=e(22092);r.exports=n},50530:(r,t,e)=>{var n=e(45837);r.exports=n},85837:(r,t,e)=>{var n=e(64048);r.exports=n},99617:(r,t,e)=>{var n=e(63246);r.exports=n},24525:(r,t,e)=>{var n=e(73948),o=e(49724),a=e(88280),i=e(41969);e(60237);var u=Array.prototype,c={DOMTokenList:!0,NodeList:!0};r.exports=function(r){var t=r.forEach;return r===u||a(u,r)&&t===u.forEach||o(c,n(r))?i:t}},77852:(r,t,e)=>{var n=e(44507);r.exports=n},98894:(r,t,e)=>{var n=e(39299);r.exports=n},79528:(r,t,e)=>{var n=e(28823);r.exports=n},6686:(r,t,e)=>{var n=e(40303);r.exports=n},12217:(r,t,e)=>{var n=e(8661);r.exports=n},93658:(r,t,e)=>{var n=e(80149);r.exports=n},76490:(r,t,e)=>{var n=e(19661);r.exports=n},91921:(r,t,e)=>{var n=e(84326);r.exports=n},79306:(r,t,e)=>{var n=e(94901),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},35548:(r,t,e)=>{var n=e(33517),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a constructor")}},73506:(r,t,e)=>{var n=e(13925),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a("Can't set "+o(r)+" as a prototype")}},6469:(r,t,e)=>{var n=e(78227),o=e(2360),a=e(24913).f,i=n("unscopables"),u=Array.prototype;void 0===u[i]&&a(u,i,{configurable:!0,value:o(null)}),r.exports=function(r){u[i][r]=!0}},57829:(r,t,e)=>{var n=e(68183).charAt;r.exports=function(r,t,e){return t+(e?n(r,t).length:1)}},90679:(r,t,e)=>{var n=e(1625),o=TypeError;r.exports=function(r,t){if(n(t,r))return r;throw new o("Incorrect invocation")}},28551:(r,t,e)=>{var n=e(20034),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},77811:r=>{r.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},67394:(r,t,e)=>{var n=e(44576),o=e(46706),a=e(22195),i=n.ArrayBuffer,u=n.TypeError;r.exports=i&&o(i.prototype,"byteLength","get")||function(r){if("ArrayBuffer"!==a(r))throw new u("ArrayBuffer expected");return r.byteLength}},3238:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(67394),i=n.ArrayBuffer,u=i&&i.prototype,c=u&&o(u.slice);r.exports=function(r){if(0!==a(r))return!1;if(!c)return!1;try{return c(r,0,0),!1}catch(r){return!0}}},55169:(r,t,e)=>{var n=e(3238),o=TypeError;r.exports=function(r){if(n(r))throw new o("ArrayBuffer is detached");return r}},95636:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(46706),i=e(57696),u=e(55169),c=e(67394),s=e(94483),f=e(1548),p=n.structuredClone,l=n.ArrayBuffer,v=n.DataView,y=Math.min,d=l.prototype,h=v.prototype,g=o(d.slice),x=a(d,"resizable","get"),m=a(d,"maxByteLength","get"),b=o(h.getInt8),w=o(h.setInt8);r.exports=(f||s)&&function(r,t,e){var n,o=c(r),a=void 0===t?o:i(t),d=!x||!x(r);if(u(r),f&&(r=p(r,{transfer:[r]}),o===a&&(e||d)))return r;if(o>=a&&(!e||d))n=g(r,0,a);else{var h=e&&!d&&m?{maxByteLength:m(r)}:void 0;n=new l(a,h);for(var E=new v(r),A=new v(n),T=y(a,o),O=0;O<T;O++)w(A,O,b(E,O))}return f||s(r),n}},94644:(r,t,e)=>{var n,o,a,i=e(77811),u=e(43724),c=e(44576),s=e(94901),f=e(20034),p=e(39297),l=e(36955),v=e(16823),y=e(66699),d=e(36840),h=e(62106),g=e(1625),x=e(42787),m=e(52967),b=e(78227),w=e(33392),E=e(91181),A=E.enforce,T=E.get,O=c.Int8Array,S=O&&O.prototype,C=c.Uint8ClampedArray,I=C&&C.prototype,P=O&&x(O),R=S&&x(S),_=Object.prototype,j=c.TypeError,M=b("toStringTag"),L=w("TYPED_ARRAY_TAG"),N="TypedArrayConstructor",D=i&&!!m&&"Opera"!==l(c.opera),F=!1,k={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},B={BigInt64Array:8,BigUint64Array:8},U=function(r){var t=x(r);if(f(t)){var e=T(t);return e&&p(e,N)?e[N]:U(t)}},V=function(r){if(!f(r))return!1;var t=l(r);return p(k,t)||p(B,t)};for(n in k)(a=(o=c[n])&&o.prototype)?A(a)[N]=o:D=!1;for(n in B)(a=(o=c[n])&&o.prototype)&&(A(a)[N]=o);if((!D||!s(P)||P===Function.prototype)&&(P=function(){throw new j("Incorrect invocation")},D))for(n in k)c[n]&&m(c[n],P);if((!D||!R||R===_)&&(R=P.prototype,D))for(n in k)c[n]&&m(c[n].prototype,R);if(D&&x(I)!==R&&m(I,R),u&&!p(R,M))for(n in F=!0,h(R,M,{configurable:!0,get:function(){return f(this)?this[L]:void 0}}),k)c[n]&&y(c[n],L,n);r.exports={NATIVE_ARRAY_BUFFER_VIEWS:D,TYPED_ARRAY_TAG:F&&L,aTypedArray:function(r){if(V(r))return r;throw new j("Target is not a typed array")},aTypedArrayConstructor:function(r){if(s(r)&&(!m||g(P,r)))return r;throw new j(v(r)+" is not a typed array constructor")},exportTypedArrayMethod:function(r,t,e,n){if(u){if(e)for(var o in k){var a=c[o];if(a&&p(a.prototype,r))try{delete a.prototype[r]}catch(e){try{a.prototype[r]=t}catch(r){}}}R[r]&&!e||d(R,r,e?t:D&&S[r]||t,n)}},exportTypedArrayStaticMethod:function(r,t,e){var n,o;if(u){if(m){if(e)for(n in k)if((o=c[n])&&p(o,r))try{delete o[r]}catch(r){}if(P[r]&&!e)return;try{return d(P,r,e?t:D&&P[r]||t)}catch(r){}}for(n in k)!(o=c[n])||o[r]&&!e||d(o,r,t)}},getTypedArrayConstructor:U,isView:function(r){if(!f(r))return!1;var t=l(r);return"DataView"===t||p(k,t)||p(B,t)},isTypedArray:V,TypedArray:P,TypedArrayPrototype:R}},66346:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(43724),i=e(77811),u=e(10350),c=e(66699),s=e(62106),f=e(56279),p=e(79039),l=e(90679),v=e(91291),y=e(18014),d=e(57696),h=e(15617),g=e(88490),x=e(42787),m=e(52967),b=e(84373),w=e(67680),E=e(23167),A=e(77740),T=e(10687),O=e(91181),S=u.PROPER,C=u.CONFIGURABLE,I="ArrayBuffer",P="DataView",R="prototype",_="Wrong index",j=O.getterFor(I),M=O.getterFor(P),L=O.set,N=n[I],D=N,F=D&&D[R],k=n[P],B=k&&k[R],U=Object.prototype,V=n.Array,Y=n.RangeError,W=o(b),G=o([].reverse),H=g.pack,z=g.unpack,$=function(r){return[255&r]},X=function(r){return[255&r,r>>8&255]},q=function(r){return[255&r,r>>8&255,r>>16&255,r>>24&255]},K=function(r){return r[3]<<24|r[2]<<16|r[1]<<8|r[0]},J=function(r){return H(h(r),23,4)},Q=function(r){return H(r,52,8)},Z=function(r,t,e){s(r[R],t,{configurable:!0,get:function(){return e(this)[t]}})},rr=function(r,t,e,n){var o=M(r),a=d(e),i=!!n;if(a+t>o.byteLength)throw new Y(_);var u=o.bytes,c=a+o.byteOffset,s=w(u,c,c+t);return i?s:G(s)},tr=function(r,t,e,n,o,a){var i=M(r),u=d(e),c=n(+o),s=!!a;if(u+t>i.byteLength)throw new Y(_);for(var f=i.bytes,p=u+i.byteOffset,l=0;l<t;l++)f[p+l]=c[s?l:t-l-1]};if(i){var er=S&&N.name!==I;p((function(){N(1)}))&&p((function(){new N(-1)}))&&!p((function(){return new N,new N(1.5),new N(NaN),1!==N.length||er&&!C}))?er&&C&&c(N,"name",I):((D=function(r){return l(this,F),E(new N(d(r)),this,D)})[R]=F,F.constructor=D,A(D,N)),m&&x(B)!==U&&m(B,U);var nr=new k(new D(2)),or=o(B.setInt8);nr.setInt8(0,2147483648),nr.setInt8(1,2147483649),!nr.getInt8(0)&&nr.getInt8(1)||f(B,{setInt8:function(r,t){or(this,r,t<<24>>24)},setUint8:function(r,t){or(this,r,t<<24>>24)}},{unsafe:!0})}else F=(D=function(r){l(this,F);var t=d(r);L(this,{type:I,bytes:W(V(t),0),byteLength:t}),a||(this.byteLength=t,this.detached=!1)})[R],B=(k=function(r,t,e){l(this,B),l(r,F);var n=j(r),o=n.byteLength,i=v(t);if(i<0||i>o)throw new Y("Wrong offset");if(i+(e=void 0===e?o-i:y(e))>o)throw new Y("Wrong length");L(this,{type:P,buffer:r,byteLength:e,byteOffset:i,bytes:n.bytes}),a||(this.buffer=r,this.byteLength=e,this.byteOffset=i)})[R],a&&(Z(D,"byteLength",j),Z(k,"buffer",M),Z(k,"byteLength",M),Z(k,"byteOffset",M)),f(B,{getInt8:function(r){return rr(this,1,r)[0]<<24>>24},getUint8:function(r){return rr(this,1,r)[0]},getInt16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))},getUint32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(r){return z(rr(this,4,r,arguments.length>1&&arguments[1]),23)},getFloat64:function(r){return z(rr(this,8,r,arguments.length>1&&arguments[1]),52)},setInt8:function(r,t){tr(this,1,r,$,t)},setUint8:function(r,t){tr(this,1,r,$,t)},setInt16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setUint16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setInt32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setUint32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setFloat32:function(r,t){tr(this,4,r,J,t,arguments.length>2&&arguments[2])},setFloat64:function(r,t){tr(this,8,r,Q,t,arguments.length>2&&arguments[2])}});T(D,I),T(k,P),r.exports={ArrayBuffer:D,DataView:k}},57029:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198),i=e(84606),u=Math.min;r.exports=[].copyWithin||function(r,t){var e=n(this),c=a(e),s=o(r,c),f=o(t,c),p=arguments.length>2?arguments[2]:void 0,l=u((void 0===p?c:o(p,c))-f,c-s),v=1;for(f<s&&s<f+l&&(v=-1,f+=l-1,s+=l-1);l-- >0;)f in e?e[s]=e[f]:i(e,s),s+=v,f+=v;return e}},84373:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198);r.exports=function(r){for(var t=n(this),e=a(t),i=arguments.length,u=o(i>1?arguments[1]:void 0,e),c=i>2?arguments[2]:void 0,s=void 0===c?e:o(c,e);s>u;)t[u++]=r;return t}},35370:(r,t,e)=>{var n=e(26198);r.exports=function(r,t,e){for(var o=0,a=arguments.length>2?e:n(t),i=new r(a);a>o;)i[o]=t[o++];return i}},19617:(r,t,e)=>{var n=e(25397),o=e(35610),a=e(26198),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},43839:(r,t,e)=>{var n=e(76080),o=e(47055),a=e(48981),i=e(26198),u=function(r){var t=1===r;return function(e,u,c){for(var s,f=a(e),p=o(f),l=i(p),v=n(u,c);l-- >0;)if(v(s=p[l],l,f))switch(r){case 0:return s;case 1:return l}return t?-1:void 0}};r.exports={findLast:u(0),findLastIndex:u(1)}},59213:(r,t,e)=>{var n=e(76080),o=e(79504),a=e(47055),i=e(48981),u=e(26198),c=e(1469),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},8379:(r,t,e)=>{var n=e(18745),o=e(25397),a=e(91291),i=e(26198),u=e(34598),c=Math.min,s=[].lastIndexOf,f=!!s&&1/[1].lastIndexOf(1,-0)<0,p=u("lastIndexOf"),l=f||!p;r.exports=l?function(r){if(f)return n(s,this,arguments)||0;var t=o(this),e=i(t);if(0===e)return-1;var u=e-1;for(arguments.length>1&&(u=c(u,a(arguments[1]))),u<0&&(u=e+u);u>=0;u--)if(u in t&&t[u]===r)return u||0;return-1}:s},34598:(r,t,e)=>{var n=e(79039);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},80926:(r,t,e)=>{var n=e(79306),o=e(48981),a=e(47055),i=e(26198),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},67680:(r,t,e)=>{var n=e(79504);r.exports=n([].slice)},74488:(r,t,e)=>{var n=e(67680),o=Math.floor,a=function(r,t){var e=r.length;if(e<8)for(var i,u,c=1;c<e;){for(u=c,i=r[c];u&&t(r[u-1],i)>0;)r[u]=r[--u];u!==c++&&(r[u]=i)}else for(var s=o(e/2),f=a(n(r,0,s),t),p=a(n(r,s),t),l=f.length,v=p.length,y=0,d=0;y<l||d<v;)r[y+d]=y<l&&d<v?t(f[y],p[d])<=0?f[y++]:p[d++]:y<l?f[y++]:p[d++];return r};r.exports=a},87433:(r,t,e)=>{var n=e(34376),o=e(33517),a=e(20034),i=e(78227)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},1469:(r,t,e)=>{var n=e(87433);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},37628:(r,t,e)=>{var n=e(26198);r.exports=function(r,t){for(var e=n(r),o=new t(e),a=0;a<e;a++)o[a]=r[e-a-1];return o}},39928:(r,t,e)=>{var n=e(26198),o=e(91291),a=RangeError;r.exports=function(r,t,e,i){var u=n(r),c=o(e),s=c<0?u+c:c;if(s>=u||s<0)throw new a("Incorrect index");for(var f=new t(u),p=0;p<u;p++)f[p]=p===s?i:r[p];return f}},84428:(r,t,e)=>{var n=e(78227)("iterator"),o=!1;try{var a=0,i={next:function(){return{done:!!a++}},return:function(){o=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(r){}r.exports=function(r,t){try{if(!t&&!o)return!1}catch(r){return!1}var e=!1;try{var a={};a[n]=function(){return{next:function(){return{done:e=!0}}}},r(a)}catch(r){}return e}},22195:(r,t,e)=>{var n=e(79504),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},36955:(r,t,e)=>{var n=e(92140),o=e(94901),a=e(22195),i=e(78227)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},77740:(r,t,e)=>{var n=e(39297),o=e(35031),a=e(77347),i=e(24913);r.exports=function(r,t,e){for(var u=o(t),c=i.f,s=a.f,f=0;f<u.length;f++){var p=u[f];n(r,p)||e&&n(e,p)||c(r,p,s(t,p))}}},12211:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype}))},62529:r=>{r.exports=function(r,t){return{value:r,done:t}}},66699:(r,t,e)=>{var n=e(43724),o=e(24913),a=e(6980);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},6980:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},62106:(r,t,e)=>{var n=e(50283),o=e(24913);r.exports=function(r,t,e){return e.get&&n(e.get,t,{getter:!0}),e.set&&n(e.set,t,{setter:!0}),o.f(r,t,e)}},36840:(r,t,e)=>{var n=e(94901),o=e(24913),a=e(50283),i=e(39433);r.exports=function(r,t,e,u){u||(u={});var c=u.enumerable,s=void 0!==u.name?u.name:t;if(n(e)&&a(e,s,u),u.global)c?r[t]=e:i(t,e);else{try{u.unsafe?r[t]&&(c=!0):delete r[t]}catch(r){}c?r[t]=e:o.f(r,t,{value:e,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return r}},56279:(r,t,e)=>{var n=e(36840);r.exports=function(r,t,e){for(var o in t)n(r,o,t[o],e);return r}},39433:(r,t,e)=>{var n=e(44576),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},84606:(r,t,e)=>{var n=e(16823),o=TypeError;r.exports=function(r,t){if(!delete r[t])throw new o("Cannot delete property "+n(t)+" of "+n(r))}},43724:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},94483:(r,t,e)=>{var n,o,a,i,u=e(44576),c=e(89429),s=e(1548),f=u.structuredClone,p=u.ArrayBuffer,l=u.MessageChannel,v=!1;if(s)v=function(r){f(r,{transfer:[r]})};else if(p)try{l||(n=c("worker_threads"))&&(l=n.MessageChannel),l&&(o=new l,a=new p(2),i=function(r){o.port1.postMessage(null,[r])},2===a.byteLength&&(i(a),0===a.byteLength&&(v=i)))}catch(r){}r.exports=v},4055:(r,t,e)=>{var n=e(44576),o=e(20034),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88727:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},13709:(r,t,e)=>{var n=e(82839).match(/firefox\/(\d+)/i);r.exports=!!n&&+n[1]},13763:(r,t,e)=>{var n=e(82839);r.exports=/MSIE|Trident/.test(n)},38574:(r,t,e)=>{var n=e(84215);r.exports="NODE"===n},82839:(r,t,e)=>{var n=e(44576).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},39519:(r,t,e)=>{var n,o,a=e(44576),i=e(82839),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},3607:(r,t,e)=>{var n=e(82839).match(/AppleWebKit\/(\d+)\./);r.exports=!!n&&+n[1]},84215:(r,t,e)=>{var n=e(44576),o=e(82839),a=e(22195),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},16193:(r,t,e)=>{var n=e(79504),o=Error,a=n("".replace),i=String(new o("zxcasd").stack),u=/\n\s*at [^:]*:[^\n]*/,c=u.test(i);r.exports=function(r,t){if(c&&"string"==typeof r&&!o.prepareStackTrace)for(;t--;)r=a(r,u,"");return r}},80747:(r,t,e)=>{var n=e(66699),o=e(16193),a=e(24659),i=Error.captureStackTrace;r.exports=function(r,t,e,u){a&&(i?i(r,t):n(r,"stack",o(e,u)))}},24659:(r,t,e)=>{var n=e(79039),o=e(6980);r.exports=!n((function(){var r=new Error("a");return!("stack"in r)||(Object.defineProperty(r,"stack",o(1,7)),7!==r.stack)}))},77536:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(28551),i=e(32603),u=Error.prototype.toString,c=o((function(){if(n){var r=Object.create(Object.defineProperty({},"name",{get:function(){return this===r}}));if("true"!==u.call(r))return!0}return"2: 1"!==u.call({message:1,name:2})||"Error"!==u.call({})}));r.exports=c?function(){var r=a(this),t=i(r.name,"Error"),e=i(r.message);return t?e?t+": "+e:t:e}:u},46518:(r,t,e)=>{var n=e(44576),o=e(77347).f,a=e(66699),i=e(36840),u=e(39433),c=e(77740),s=e(92796);r.exports=function(r,t){var e,f,p,l,v,y=r.target,d=r.global,h=r.stat;if(e=d?n:h?n[y]||u(y,{}):n[y]&&n[y].prototype)for(f in t){if(l=t[f],p=r.dontCallGetSet?(v=o(e,f))&&v.value:e[f],!s(d?f:y+(h?".":"#")+f,r.forced)&&void 0!==p){if(typeof l==typeof p)continue;c(l,p)}(r.sham||p&&p.sham)&&a(l,"sham",!0),i(e,f,l,r)}}},79039:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},89228:(r,t,e)=>{e(27495);var n=e(69565),o=e(36840),a=e(57323),i=e(79039),u=e(78227),c=e(66699),s=u("species"),f=RegExp.prototype;r.exports=function(r,t,e,p){var l=u(r),v=!i((function(){var t={};return t[l]=function(){return 7},7!==""[r](t)})),y=v&&!i((function(){var t=!1,e=/a/;return"split"===r&&((e={}).constructor={},e.constructor[s]=function(){return e},e.flags="",e[l]=/./[l]),e.exec=function(){return t=!0,null},e[l](""),!t}));if(!v||!y||e){var d=/./[l],h=t(l,""[r],(function(r,t,e,o,i){var u=t.exec;return u===a||u===f.exec?v&&!i?{done:!0,value:n(d,t,e,o)}:{done:!0,value:n(r,e,t,o)}:{done:!1}}));o(String.prototype,r,h[0]),o(f,l,h[1])}p&&c(f[l],"sham",!0)}},18745:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},76080:(r,t,e)=>{var n=e(27476),o=e(79306),a=e(40616),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},40616:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},69565:(r,t,e)=>{var n=e(40616),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},10350:(r,t,e)=>{var n=e(43724),o=e(39297),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},46706:(r,t,e)=>{var n=e(79504),o=e(79306);r.exports=function(r,t,e){try{return n(o(Object.getOwnPropertyDescriptor(r,t)[e]))}catch(r){}}},27476:(r,t,e)=>{var n=e(22195),o=e(79504);r.exports=function(r){if("Function"===n(r))return o(r)}},79504:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},89429:(r,t,e)=>{var n=e(44576),o=e(38574);r.exports=function(r){if(o){try{return n.process.getBuiltinModule(r)}catch(r){}try{return Function('return require("'+r+'")')()}catch(r){}}}},97751:(r,t,e)=>{var n=e(44576),o=e(94901);r.exports=function(r,t){return arguments.length<2?(e=n[r],o(e)?e:void 0):n[r]&&n[r][t];var e}},50851:(r,t,e)=>{var n=e(36955),o=e(55966),a=e(64117),i=e(26269),u=e(78227)("iterator");r.exports=function(r){if(!a(r))return o(r,u)||o(r,"@@iterator")||i[n(r)]}},70081:(r,t,e)=>{var n=e(69565),o=e(79306),a=e(28551),i=e(16823),u=e(50851),c=TypeError;r.exports=function(r,t){var e=arguments.length<2?u(r):t;if(o(e))return a(n(e,r));throw new c(i(r)+" is not iterable")}},55966:(r,t,e)=>{var n=e(79306),o=e(64117);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},2478:(r,t,e)=>{var n=e(79504),o=e(48981),a=Math.floor,i=n("".charAt),u=n("".replace),c=n("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;r.exports=function(r,t,e,n,p,l){var v=e+r.length,y=n.length,d=f;return void 0!==p&&(p=o(p),d=s),u(l,d,(function(o,u){var s;switch(i(u,0)){case"$":return"$";case"&":return r;case"`":return c(t,0,e);case"'":return c(t,v);case"<":s=p[c(u,1,-1)];break;default:var f=+u;if(0===f)return o;if(f>y){var l=a(f/10);return 0===l?o:l<=y?void 0===n[l-1]?i(u,1):n[l-1]+i(u,1):o}s=n[f-1]}return void 0===s?"":s}))}},44576:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},39297:(r,t,e)=>{var n=e(79504),o=e(48981),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},30421:r=>{r.exports={}},20397:(r,t,e)=>{var n=e(97751);r.exports=n("document","documentElement")},35917:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(4055);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},88490:r=>{var t=Array,e=Math.abs,n=Math.pow,o=Math.floor,a=Math.log,i=Math.LN2;r.exports={pack:function(r,u,c){var s,f,p,l=t(c),v=8*c-u-1,y=(1<<v)-1,d=y>>1,h=23===u?n(2,-24)-n(2,-77):0,g=r<0||0===r&&1/r<0?1:0,x=0;for((r=e(r))!=r||r===1/0?(f=r!=r?1:0,s=y):(s=o(a(r)/i),r*(p=n(2,-s))<1&&(s--,p*=2),(r+=s+d>=1?h/p:h*n(2,1-d))*p>=2&&(s++,p/=2),s+d>=y?(f=0,s=y):s+d>=1?(f=(r*p-1)*n(2,u),s+=d):(f=r*n(2,d-1)*n(2,u),s=0));u>=8;)l[x++]=255&f,f/=256,u-=8;for(s=s<<u|f,v+=u;v>0;)l[x++]=255&s,s/=256,v-=8;return l[x-1]|=128*g,l},unpack:function(r,t){var e,o=r.length,a=8*o-t-1,i=(1<<a)-1,u=i>>1,c=a-7,s=o-1,f=r[s--],p=127&f;for(f>>=7;c>0;)p=256*p+r[s--],c-=8;for(e=p&(1<<-c)-1,p>>=-c,c+=t;c>0;)e=256*e+r[s--],c-=8;if(0===p)p=1-u;else{if(p===i)return e?NaN:f?-1/0:1/0;e+=n(2,t),p-=u}return(f?-1:1)*e*n(2,p-t)}}},47055:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(22195),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},23167:(r,t,e)=>{var n=e(94901),o=e(20034),a=e(52967);r.exports=function(r,t,e){var i,u;return a&&n(i=t.constructor)&&i!==e&&o(u=i.prototype)&&u!==e.prototype&&a(r,u),r}},33706:(r,t,e)=>{var n=e(79504),o=e(94901),a=e(77629),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},77584:(r,t,e)=>{var n=e(20034),o=e(66699);r.exports=function(r,t){n(t)&&"cause"in t&&o(r,"cause",t.cause)}},91181:(r,t,e)=>{var n,o,a,i=e(58622),u=e(44576),c=e(20034),s=e(66699),f=e(39297),p=e(77629),l=e(66119),v=e(30421),y="Object already initialized",d=u.TypeError,h=u.WeakMap;if(i||p.state){var g=p.state||(p.state=new h);g.get=g.get,g.has=g.has,g.set=g.set,n=function(r,t){if(g.has(r))throw new d(y);return t.facade=r,g.set(r,t),t},o=function(r){return g.get(r)||{}},a=function(r){return g.has(r)}}else{var x=l("state");v[x]=!0,n=function(r,t){if(f(r,x))throw new d(y);return t.facade=r,s(r,x,t),t},o=function(r){return f(r,x)?r[x]:{}},a=function(r){return f(r,x)}}r.exports={set:n,get:o,has:a,enforce:function(r){return a(r)?o(r):n(r,{})},getterFor:function(r){return function(t){var e;if(!c(t)||(e=o(t)).type!==r)throw new d("Incompatible receiver, "+r+" required");return e}}}},44209:(r,t,e)=>{var n=e(78227),o=e(26269),a=n("iterator"),i=Array.prototype;r.exports=function(r){return void 0!==r&&(o.Array===r||i[a]===r)}},34376:(r,t,e)=>{var n=e(22195);r.exports=Array.isArray||function(r){return"Array"===n(r)}},18727:(r,t,e)=>{var n=e(36955);r.exports=function(r){var t=n(r);return"BigInt64Array"===t||"BigUint64Array"===t}},94901:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},33517:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(36955),u=e(97751),c=e(33706),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},92796:(r,t,e)=>{var n=e(79039),o=e(94901),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},2087:(r,t,e)=>{var n=e(20034),o=Math.floor;r.exports=Number.isInteger||function(r){return!n(r)&&isFinite(r)&&o(r)===r}},64117:r=>{r.exports=function(r){return null==r}},20034:(r,t,e)=>{var n=e(94901);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},13925:(r,t,e)=>{var n=e(20034);r.exports=function(r){return n(r)||null===r}},96395:r=>{r.exports=!1},60788:(r,t,e)=>{var n=e(20034),o=e(22195),a=e(78227)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},10757:(r,t,e)=>{var n=e(97751),o=e(94901),a=e(1625),i=e(7040),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},33994:(r,t,e)=>{var n=e(57657).IteratorPrototype,o=e(2360),a=e(6980),i=e(10687),u=e(26269),c=function(){return this};r.exports=function(r,t,e,s){var f=t+" Iterator";return r.prototype=o(n,{next:a(+!s,e)}),i(r,f,!1,!0),u[f]=c,r}},51088:(r,t,e)=>{var n=e(46518),o=e(69565),a=e(96395),i=e(10350),u=e(94901),c=e(33994),s=e(42787),f=e(52967),p=e(10687),l=e(66699),v=e(36840),y=e(78227),d=e(26269),h=e(57657),g=i.PROPER,x=i.CONFIGURABLE,m=h.IteratorPrototype,b=h.BUGGY_SAFARI_ITERATORS,w=y("iterator"),E="keys",A="values",T="entries",O=function(){return this};r.exports=function(r,t,e,i,y,h,S){c(e,t,i);var C,I,P,R=function(r){if(r===y&&N)return N;if(!b&&r&&r in M)return M[r];switch(r){case E:case A:case T:return function(){return new e(this,r)}}return function(){return new e(this)}},_=t+" Iterator",j=!1,M=r.prototype,L=M[w]||M["@@iterator"]||y&&M[y],N=!b&&L||R(y),D="Array"===t&&M.entries||L;if(D&&(C=s(D.call(new r)))!==Object.prototype&&C.next&&(a||s(C)===m||(f?f(C,m):u(C[w])||v(C,w,O)),p(C,_,!0,!0),a&&(d[_]=O)),g&&y===A&&L&&L.name!==A&&(!a&&x?l(M,"name",A):(j=!0,N=function(){return o(L,this)})),y)if(I={values:R(A),keys:h?N:R(E),entries:R(T)},S)for(P in I)(b||j||!(P in M))&&v(M,P,I[P]);else n({target:t,proto:!0,forced:b||j},I);return a&&!S||M[w]===N||v(M,w,N,{name:y}),d[t]=N,I}},57657:(r,t,e)=>{var n,o,a,i=e(79039),u=e(94901),c=e(20034),s=e(2360),f=e(42787),p=e(36840),l=e(78227),v=e(96395),y=l("iterator"),d=!1;[].keys&&("next"in(a=[].keys())?(o=f(f(a)))!==Object.prototype&&(n=o):d=!0),!c(n)||i((function(){var r={};return n[y].call(r)!==r}))?n={}:v&&(n=s(n)),u(n[y])||p(n,y,(function(){return this})),r.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:d}},26269:r=>{r.exports={}},26198:(r,t,e)=>{var n=e(18014);r.exports=function(r){return n(r.length)}},50283:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(39297),u=e(43724),c=e(10350).CONFIGURABLE,s=e(33706),f=e(91181),p=f.enforce,l=f.get,v=String,y=Object.defineProperty,d=n("".slice),h=n("".replace),g=n([].join),x=u&&!o((function(){return 8!==y((function(){}),"length",{value:8}).length})),m=String(String).split("String"),b=r.exports=function(r,t,e){"Symbol("===d(v(t),0,7)&&(t="["+h(v(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),e&&e.getter&&(t="get "+t),e&&e.setter&&(t="set "+t),(!i(r,"name")||c&&r.name!==t)&&(u?y(r,"name",{value:t,configurable:!0}):r.name=t),x&&e&&i(e,"arity")&&r.length!==e.arity&&y(r,"length",{value:e.arity});try{e&&i(e,"constructor")&&e.constructor?u&&y(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch(r){}var n=p(r);return i(n,"source")||(n.source=g(m,"string"==typeof t?t:"")),r};Function.prototype.toString=b((function(){return a(this)&&l(this).source||s(this)}),"toString")},33164:(r,t,e)=>{var n=e(77782),o=Math.abs,a=2220446049250313e-31,i=1/a;r.exports=function(r,t,e,u){var c=+r,s=o(c),f=n(c);if(s<u)return f*function(r){return r+i-i}(s/u/t)*u*t;var p=(1+t/a)*s,l=p-(p-s);return l>e||l!=l?f*(1/0):f*l}},15617:(r,t,e)=>{var n=e(33164);r.exports=Math.fround||function(r){return n(r,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)}},77782:r=>{r.exports=Math.sign||function(r){var t=+r;return 0===t||t!=t?t:t<0?-1:1}},80741:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},32603:(r,t,e)=>{var n=e(655);r.exports=function(r,t){return void 0===r?arguments.length<2?"":t:n(r)}},2360:(r,t,e)=>{var n,o=e(28551),a=e(96801),i=e(88727),u=e(30421),c=e(20397),s=e(4055),f=e(66119),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},96801:(r,t,e)=>{var n=e(43724),o=e(48686),a=e(24913),i=e(28551),u=e(25397),c=e(71072);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},24913:(r,t,e)=>{var n=e(43724),o=e(35917),a=e(48686),i=e(28551),u=e(56969),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},77347:(r,t,e)=>{var n=e(43724),o=e(69565),a=e(48773),i=e(6980),u=e(25397),c=e(56969),s=e(39297),f=e(35917),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},38480:(r,t,e)=>{var n=e(61828),o=e(88727).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(r){return n(r,o)}},33717:(r,t)=>{t.f=Object.getOwnPropertySymbols},42787:(r,t,e)=>{var n=e(39297),o=e(94901),a=e(48981),i=e(66119),u=e(12211),c=i("IE_PROTO"),s=Object,f=s.prototype;r.exports=u?s.getPrototypeOf:function(r){var t=a(r);if(n(t,c))return t[c];var e=t.constructor;return o(e)&&t instanceof e?e.prototype:t instanceof s?f:null}},1625:(r,t,e)=>{var n=e(79504);r.exports=n({}.isPrototypeOf)},61828:(r,t,e)=>{var n=e(79504),o=e(39297),a=e(25397),i=e(19617).indexOf,u=e(30421),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},71072:(r,t,e)=>{var n=e(61828),o=e(88727);r.exports=Object.keys||function(r){return n(r,o)}},48773:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},52967:(r,t,e)=>{var n=e(46706),o=e(20034),a=e(67750),i=e(73506);r.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r,t=!1,e={};try{(r=n(Object.prototype,"__proto__","set"))(e,[]),t=e instanceof Array}catch(r){}return function(e,n){return a(e),i(n),o(e)?(t?r(e,n):e.__proto__=n,e):e}}():void 0)},53179:(r,t,e)=>{var n=e(92140),o=e(36955);r.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},84270:(r,t,e)=>{var n=e(69565),o=e(94901),a=e(20034),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},35031:(r,t,e)=>{var n=e(97751),o=e(79504),a=e(38480),i=e(33717),u=e(28551),c=o([].concat);r.exports=n("Reflect","ownKeys")||function(r){var t=a.f(u(r)),e=i.f;return e?c(t,e(r)):t}},19167:(r,t,e)=>{var n=e(44576);r.exports=n},11056:(r,t,e)=>{var n=e(24913).f;r.exports=function(r,t,e){e in r||n(r,e,{configurable:!0,get:function(){return t[e]},set:function(r){t[e]=r}})}},56682:(r,t,e)=>{var n=e(69565),o=e(28551),a=e(94901),i=e(22195),u=e(57323),c=TypeError;r.exports=function(r,t){var e=r.exec;if(a(e)){var s=n(e,r,t);return null!==s&&o(s),s}if("RegExp"===i(r))return n(u,r,t);throw new c("RegExp#exec called on incompatible receiver")}},57323:(r,t,e)=>{var n,o,a=e(69565),i=e(79504),u=e(655),c=e(67979),s=e(58429),f=e(25745),p=e(2360),l=e(91181).get,v=e(83635),y=e(18814),d=f("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,g=h,x=i("".charAt),m=i("".indexOf),b=i("".replace),w=i("".slice),E=(o=/b*/g,a(h,n=/a/,"a"),a(h,o,"a"),0!==n.lastIndex||0!==o.lastIndex),A=s.BROKEN_CARET,T=void 0!==/()??/.exec("")[1];(E||T||A||v||y)&&(g=function(r){var t,e,n,o,i,s,f,v=this,y=l(v),O=u(r),S=y.raw;if(S)return S.lastIndex=v.lastIndex,t=a(g,S,O),v.lastIndex=S.lastIndex,t;var C=y.groups,I=A&&v.sticky,P=a(c,v),R=v.source,_=0,j=O;if(I&&(P=b(P,"y",""),-1===m(P,"g")&&(P+="g"),j=w(O,v.lastIndex),v.lastIndex>0&&(!v.multiline||v.multiline&&"\n"!==x(O,v.lastIndex-1))&&(R="(?: "+R+")",j=" "+j,_++),e=new RegExp("^(?:"+R+")",P)),T&&(e=new RegExp("^"+R+"$(?!\\s)",P)),E&&(n=v.lastIndex),o=a(h,I?e:v,j),I?o?(o.input=w(o.input,_),o[0]=w(o[0],_),o.index=v.lastIndex,v.lastIndex+=o[0].length):v.lastIndex=0:E&&o&&(v.lastIndex=v.global?o.index+o[0].length:n),T&&o&&o.length>1&&a(d,o[0],e,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(o[i]=void 0)})),o&&C)for(o.groups=s=p(null),i=0;i<C.length;i++)s[(f=C[i])[0]]=o[f[1]];return o}),r.exports=g},67979:(r,t,e)=>{var n=e(28551);r.exports=function(){var r=n(this),t="";return r.hasIndices&&(t+="d"),r.global&&(t+="g"),r.ignoreCase&&(t+="i"),r.multiline&&(t+="m"),r.dotAll&&(t+="s"),r.unicode&&(t+="u"),r.unicodeSets&&(t+="v"),r.sticky&&(t+="y"),t}},61034:(r,t,e)=>{var n=e(69565),o=e(39297),a=e(1625),i=e(67979),u=RegExp.prototype;r.exports=function(r){var t=r.flags;return void 0!==t||"flags"in u||o(r,"flags")||!a(u,r)?t:n(i,r)}},58429:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp,a=n((function(){var r=o("a","y");return r.lastIndex=2,null!==r.exec("abcd")})),i=a||n((function(){return!o("a","y").sticky})),u=a||n((function(){var r=o("^r","gy");return r.lastIndex=2,null!==r.exec("str")}));r.exports={BROKEN_CARET:u,MISSED_STICKY:i,UNSUPPORTED_Y:a}},83635:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o(".","s");return!(r.dotAll&&r.test("\n")&&"s"===r.flags)}))},18814:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o("(?<a>b)","g");return"b"!==r.exec("b").groups.a||"bc"!=="b".replace(r,"$<a>c")}))},67750:(r,t,e)=>{var n=e(64117),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},87633:(r,t,e)=>{var n=e(97751),o=e(62106),a=e(78227),i=e(43724),u=a("species");r.exports=function(r){var t=n(r);i&&t&&!t[u]&&o(t,u,{configurable:!0,get:function(){return this}})}},10687:(r,t,e)=>{var n=e(24913).f,o=e(39297),a=e(78227)("toStringTag");r.exports=function(r,t,e){r&&!e&&(r=r.prototype),r&&!o(r,a)&&n(r,a,{configurable:!0,value:t})}},66119:(r,t,e)=>{var n=e(25745),o=e(33392),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},77629:(r,t,e)=>{var n=e(96395),o=e(44576),a=e(39433),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},25745:(r,t,e)=>{var n=e(77629);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},2293:(r,t,e)=>{var n=e(28551),o=e(35548),a=e(64117),i=e(78227)("species");r.exports=function(r,t){var e,u=n(r).constructor;return void 0===u||a(e=n(u)[i])?t:o(e)}},68183:(r,t,e)=>{var n=e(79504),o=e(91291),a=e(655),i=e(67750),u=n("".charAt),c=n("".charCodeAt),s=n("".slice),f=function(r){return function(t,e){var n,f,p=a(i(t)),l=o(e),v=p.length;return l<0||l>=v?r?"":void 0:(n=c(p,l))<55296||n>56319||l+1===v||(f=c(p,l+1))<56320||f>57343?r?u(p,l):n:r?s(p,l,l+2):f-56320+(n-55296<<10)+65536}};r.exports={codeAt:f(!1),charAt:f(!0)}},43802:(r,t,e)=>{var n=e(79504),o=e(67750),a=e(655),i=e(47452),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},1548:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(39519),i=e(84215),u=n.structuredClone;r.exports=!!u&&!o((function(){if("DENO"===i&&a>92||"NODE"===i&&a>94||"BROWSER"===i&&a>97)return!1;var r=new ArrayBuffer(8),t=u(r,{transfer:[r]});return 0!==r.byteLength||8!==t.byteLength}))},4495:(r,t,e)=>{var n=e(39519),o=e(79039),a=e(44576).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},31240:(r,t,e)=>{var n=e(79504);r.exports=n(1..valueOf)},35610:(r,t,e)=>{var n=e(91291),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},75854:(r,t,e)=>{var n=e(72777),o=TypeError;r.exports=function(r){var t=n(r,"number");if("number"==typeof t)throw new o("Can't convert number to bigint");return BigInt(t)}},57696:(r,t,e)=>{var n=e(91291),o=e(18014),a=RangeError;r.exports=function(r){if(void 0===r)return 0;var t=n(r),e=o(t);if(t!==e)throw new a("Wrong length or index");return e}},25397:(r,t,e)=>{var n=e(47055),o=e(67750);r.exports=function(r){return n(o(r))}},91291:(r,t,e)=>{var n=e(80741);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},18014:(r,t,e)=>{var n=e(91291),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},48981:(r,t,e)=>{var n=e(67750),o=Object;r.exports=function(r){return o(n(r))}},58229:(r,t,e)=>{var n=e(99590),o=RangeError;r.exports=function(r,t){var e=n(r);if(e%t)throw new o("Wrong offset");return e}},99590:(r,t,e)=>{var n=e(91291),o=RangeError;r.exports=function(r){var t=n(r);if(t<0)throw new o("The argument can't be less than 0");return t}},72777:(r,t,e)=>{var n=e(69565),o=e(20034),a=e(10757),i=e(55966),u=e(84270),c=e(78227),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},56969:(r,t,e)=>{var n=e(72777),o=e(10757);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},92140:(r,t,e)=>{var n={};n[e(78227)("toStringTag")]="z",r.exports="[object z]"===String(n)},655:(r,t,e)=>{var n=e(36955),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},58319:r=>{var t=Math.round;r.exports=function(r){var e=t(r);return e<0?0:e>255?255:255&e}},16823:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},15823:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(69565),i=e(43724),u=e(72805),c=e(94644),s=e(66346),f=e(90679),p=e(6980),l=e(66699),v=e(2087),y=e(18014),d=e(57696),h=e(58229),g=e(58319),x=e(56969),m=e(39297),b=e(36955),w=e(20034),E=e(10757),A=e(2360),T=e(1625),O=e(52967),S=e(38480).f,C=e(43251),I=e(59213).forEach,P=e(87633),R=e(62106),_=e(24913),j=e(77347),M=e(35370),L=e(91181),N=e(23167),D=L.get,F=L.set,k=L.enforce,B=_.f,U=j.f,V=o.RangeError,Y=s.ArrayBuffer,W=Y.prototype,G=s.DataView,H=c.NATIVE_ARRAY_BUFFER_VIEWS,z=c.TYPED_ARRAY_TAG,$=c.TypedArray,X=c.TypedArrayPrototype,q=c.isTypedArray,K="BYTES_PER_ELEMENT",J="Wrong length",Q=function(r,t){R(r,t,{configurable:!0,get:function(){return D(this)[t]}})},Z=function(r){var t;return T(W,r)||"ArrayBuffer"===(t=b(r))||"SharedArrayBuffer"===t},rr=function(r,t){return q(r)&&!E(t)&&t in r&&v(+t)&&t>=0},tr=function(r,t){return t=x(t),rr(r,t)?p(2,r[t]):U(r,t)},er=function(r,t,e){return t=x(t),!(rr(r,t)&&w(e)&&m(e,"value"))||m(e,"get")||m(e,"set")||e.configurable||m(e,"writable")&&!e.writable||m(e,"enumerable")&&!e.enumerable?B(r,t,e):(r[t]=e.value,r)};i?(H||(j.f=tr,_.f=er,Q(X,"buffer"),Q(X,"byteOffset"),Q(X,"byteLength"),Q(X,"length")),n({target:"Object",stat:!0,forced:!H},{getOwnPropertyDescriptor:tr,defineProperty:er}),r.exports=function(r,t,e){var i=r.match(/\d+/)[0]/8,c=r+(e?"Clamped":"")+"Array",s="get"+r,p="set"+r,v=o[c],x=v,m=x&&x.prototype,b={},E=function(r,t){B(r,t,{get:function(){return function(r,t){var e=D(r);return e.view[s](t*i+e.byteOffset,!0)}(this,t)},set:function(r){return function(r,t,n){var o=D(r);o.view[p](t*i+o.byteOffset,e?g(n):n,!0)}(this,t,r)},enumerable:!0})};H?u&&(x=t((function(r,t,e,n){return f(r,m),N(w(t)?Z(t)?void 0!==n?new v(t,h(e,i),n):void 0!==e?new v(t,h(e,i)):new v(t):q(t)?M(x,t):a(C,x,t):new v(d(t)),r,x)})),O&&O(x,$),I(S(v),(function(r){r in x||l(x,r,v[r])})),x.prototype=m):(x=t((function(r,t,e,n){f(r,m);var o,u,c,s=0,p=0;if(w(t)){if(!Z(t))return q(t)?M(x,t):a(C,x,t);o=t,p=h(e,i);var l=t.byteLength;if(void 0===n){if(l%i)throw new V(J);if((u=l-p)<0)throw new V(J)}else if((u=y(n)*i)+p>l)throw new V(J);c=u/i}else c=d(t),o=new Y(u=c*i);for(F(r,{buffer:o,byteOffset:p,byteLength:u,length:c,view:new G(o)});s<c;)E(r,s++)})),O&&O(x,$),m=x.prototype=A(X)),m.constructor!==x&&l(m,"constructor",x),k(m).TypedArrayConstructor=x,z&&l(m,z,c);var T=x!==v;b[c]=x,n({global:!0,constructor:!0,forced:T,sham:!H},b),K in x||l(x,K,i),K in m||l(m,K,i),P(c)}):r.exports=function(){}},72805:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(84428),i=e(94644).NATIVE_ARRAY_BUFFER_VIEWS,u=n.ArrayBuffer,c=n.Int8Array;r.exports=!i||!o((function(){c(1)}))||!o((function(){new c(-1)}))||!a((function(r){new c,new c(null),new c(1.5),new c(r)}),!0)||o((function(){return 1!==new c(new u(2),1,void 0).length}))},26357:(r,t,e)=>{var n=e(35370),o=e(61412);r.exports=function(r,t){return n(o(r),t)}},43251:(r,t,e)=>{var n=e(76080),o=e(69565),a=e(35548),i=e(48981),u=e(26198),c=e(70081),s=e(50851),f=e(44209),p=e(18727),l=e(94644).aTypedArrayConstructor,v=e(75854);r.exports=function(r){var t,e,y,d,h,g,x,m,b=a(this),w=i(r),E=arguments.length,A=E>1?arguments[1]:void 0,T=void 0!==A,O=s(w);if(O&&!f(O))for(m=(x=c(w,O)).next,w=[];!(g=o(m,x)).done;)w.push(g.value);for(T&&E>2&&(A=n(A,arguments[2])),e=u(w),y=new(l(b))(e),d=p(y),t=0;e>t;t++)h=T?A(w[t],t):w[t],y[t]=d?v(h):+h;return y}},61412:(r,t,e)=>{var n=e(94644),o=e(2293),a=n.aTypedArrayConstructor,i=n.getTypedArrayConstructor;r.exports=function(r){return a(o(r,i(r)))}},33392:(r,t,e)=>{var n=e(79504),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},7040:(r,t,e)=>{var n=e(4495);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},48686:(r,t,e)=>{var n=e(43724),o=e(79039);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},58622:(r,t,e)=>{var n=e(44576),o=e(94901),a=n.WeakMap;r.exports=o(a)&&/native code/.test(String(a))},78227:(r,t,e)=>{var n=e(44576),o=e(25745),a=e(39297),i=e(33392),u=e(4495),c=e(7040),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},47452:r=>{r.exports="\t\n\v\f\r \u2028\u2029\ufeff"},14601:(r,t,e)=>{var n=e(97751),o=e(39297),a=e(66699),i=e(1625),u=e(52967),c=e(77740),s=e(11056),f=e(23167),p=e(32603),l=e(77584),v=e(80747),y=e(43724),d=e(96395);r.exports=function(r,t,e,h){var g="stackTraceLimit",x=h?2:1,m=r.split("."),b=m[m.length-1],w=n.apply(null,m);if(w){var E=w.prototype;if(!d&&o(E,"cause")&&delete E.cause,!e)return w;var A=n("Error"),T=t((function(r,t){var e=p(h?t:r,void 0),n=h?new w(r):new w;return void 0!==e&&a(n,"message",e),v(n,T,n.stack,2),this&&i(E,this)&&f(n,this,T),arguments.length>x&&l(n,arguments[x]),n}));if(T.prototype=E,"Error"!==b?u?u(T,A):c(T,A,{name:!0}):y&&g in w&&(s(T,w,g),s(T,w,"prepareStackTrace")),c(T,w),!d)try{E.name!==b&&a(E,"name",b),E.constructor=T}catch(r){}return T}}},54743:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(66346),i=e(87633),u="ArrayBuffer",c=a[u];n({global:!0,constructor:!0,forced:o[u]!==c},{ArrayBuffer:c}),i(u)},16573:(r,t,e)=>{var n=e(43724),o=e(62106),a=e(3238),i=ArrayBuffer.prototype;n&&!("detached"in i)&&o(i,"detached",{configurable:!0,get:function(){return a(this)}})},11745:(r,t,e)=>{var n=e(46518),o=e(27476),a=e(79039),i=e(66346),u=e(28551),c=e(35610),s=e(18014),f=e(2293),p=i.ArrayBuffer,l=i.DataView,v=l.prototype,y=o(p.prototype.slice),d=o(v.getUint8),h=o(v.setUint8);n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:a((function(){return!new p(2).slice(1,void 0).byteLength}))},{slice:function(r,t){if(y&&void 0===t)return y(u(this),r);for(var e=u(this).byteLength,n=c(r,e),o=c(void 0===t?e:t,e),a=new(f(this,p))(s(o-n)),i=new l(this),v=new l(a),g=0;n<o;)h(v,g++,d(i,n++));return a}})},77936:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return o(this,arguments.length?arguments[0]:void 0,!1)}})},78100:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transfer:function(){return o(this,arguments.length?arguments[0]:void 0,!0)}})},23792:(r,t,e)=>{var n=e(25397),o=e(6469),a=e(26269),i=e(91181),u=e(24913).f,c=e(51088),s=e(62529),f=e(96395),p=e(43724),l="Array Iterator",v=i.set,y=i.getterFor(l);r.exports=c(Array,"Array",(function(r,t){v(this,{type:l,target:n(r),index:0,kind:t})}),(function(){var r=y(this),t=r.target,e=r.index++;if(!t||e>=t.length)return r.target=null,s(void 0,!0);switch(r.kind){case"keys":return s(e,!1);case"values":return s(t[e],!1)}return s([e,t[e]],!1)}),"values");var d=a.Arguments=a.Array;if(o("keys"),o("values"),o("entries"),!f&&p&&"values"!==d.name)try{u(d,"name",{value:"values"})}catch(r){}},24359:(r,t,e)=>{var n=e(46518),o=e(66346);n({global:!0,constructor:!0,forced:!e(77811)},{DataView:o.DataView})},38309:(r,t,e)=>{e(24359)},23288:(r,t,e)=>{var n=e(79504),o=e(36840),a=Date.prototype,i="Invalid Date",u="toString",c=n(a[u]),s=n(a.getTime);String(new Date(NaN))!==i&&o(a,u,(function(){var r=s(this);return r==r?c(this):i}))},16280:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(18745),i=e(14601),u="WebAssembly",c=o[u],s=7!==new Error("e",{cause:7}).cause,f=function(r,t){var e={};e[r]=i(r,t,s),n({global:!0,constructor:!0,arity:1,forced:s},e)},p=function(r,t){if(c&&c[r]){var e={};e[r]=i(u+"."+r,t,s),n({target:u,stat:!0,constructor:!0,arity:1,forced:s},e)}};f("Error",(function(r){return function(t){return a(r,this,arguments)}})),f("EvalError",(function(r){return function(t){return a(r,this,arguments)}})),f("RangeError",(function(r){return function(t){return a(r,this,arguments)}})),f("ReferenceError",(function(r){return function(t){return a(r,this,arguments)}})),f("SyntaxError",(function(r){return function(t){return a(r,this,arguments)}})),f("TypeError",(function(r){return function(t){return a(r,this,arguments)}})),f("URIError",(function(r){return function(t){return a(r,this,arguments)}})),p("CompileError",(function(r){return function(t){return a(r,this,arguments)}})),p("LinkError",(function(r){return function(t){return a(r,this,arguments)}})),p("RuntimeError",(function(r){return function(t){return a(r,this,arguments)}}))},76918:(r,t,e)=>{var n=e(36840),o=e(77536),a=Error.prototype;a.toString!==o&&n(a,"toString",o)},2892:(r,t,e)=>{var n=e(46518),o=e(96395),a=e(43724),i=e(44576),u=e(19167),c=e(79504),s=e(92796),f=e(39297),p=e(23167),l=e(1625),v=e(10757),y=e(72777),d=e(79039),h=e(38480).f,g=e(77347).f,x=e(24913).f,m=e(31240),b=e(43802).trim,w="Number",E=i[w],A=u[w],T=E.prototype,O=i.TypeError,S=c("".slice),C=c("".charCodeAt),I=s(w,!E(" 0o1")||!E("0b1")||E("+0x1")),P=function(r){var t,e=arguments.length<1?0:E(function(r){var t=y(r,"number");return"bigint"==typeof t?t:function(r){var t,e,n,o,a,i,u,c,s=y(r,"number");if(v(s))throw new O("Cannot convert a Symbol value to a number");if("string"==typeof s&&s.length>2)if(s=b(s),43===(t=C(s,0))||45===t){if(88===(e=C(s,2))||120===e)return NaN}else if(48===t){switch(C(s,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+s}for(i=(a=S(s,2)).length,u=0;u<i;u++)if((c=C(a,u))<48||c>o)return NaN;return parseInt(a,n)}return+s}(t)}(r));return l(T,t=this)&&d((function(){m(t)}))?p(Object(e),this,P):e};P.prototype=T,I&&!o&&(T.constructor=P),n({global:!0,constructor:!0,wrap:!0,forced:I},{Number:P});var R=function(r,t){for(var e,n=a?h(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)f(t,e=n[o])&&!f(r,e)&&x(r,e,g(t,e))};o&&A&&R(u[w],A),(I||o)&&R(u[w],E)},79432:(r,t,e)=>{var n=e(46518),o=e(48981),a=e(71072);n({target:"Object",stat:!0,forced:e(79039)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},26099:(r,t,e)=>{var n=e(92140),o=e(36840),a=e(53179);n||o(Object.prototype,"toString",a,{unsafe:!0})},84864:(r,t,e)=>{var n=e(43724),o=e(44576),a=e(79504),i=e(92796),u=e(23167),c=e(66699),s=e(2360),f=e(38480).f,p=e(1625),l=e(60788),v=e(655),y=e(61034),d=e(58429),h=e(11056),g=e(36840),x=e(79039),m=e(39297),b=e(91181).enforce,w=e(87633),E=e(78227),A=e(83635),T=e(18814),O=E("match"),S=o.RegExp,C=S.prototype,I=o.SyntaxError,P=a(C.exec),R=a("".charAt),_=a("".replace),j=a("".indexOf),M=a("".slice),L=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,N=/a/g,D=/a/g,F=new S(N)!==N,k=d.MISSED_STICKY,B=d.UNSUPPORTED_Y;if(i("RegExp",n&&(!F||k||A||T||x((function(){return D[O]=!1,S(N)!==N||S(D)===D||"/a/i"!==String(S(N,"i"))}))))){for(var U=function(r,t){var e,n,o,a,i,f,d=p(C,this),h=l(r),g=void 0===t,x=[],w=r;if(!d&&h&&g&&r.constructor===U)return r;if((h||p(C,r))&&(r=r.source,g&&(t=y(w))),r=void 0===r?"":v(r),t=void 0===t?"":v(t),w=r,A&&"dotAll"in N&&(n=!!t&&j(t,"s")>-1)&&(t=_(t,/s/g,"")),e=t,k&&"sticky"in N&&(o=!!t&&j(t,"y")>-1)&&B&&(t=_(t,/y/g,"")),T&&(a=function(r){for(var t,e=r.length,n=0,o="",a=[],i=s(null),u=!1,c=!1,f=0,p="";n<=e;n++){if("\\"===(t=R(r,n)))t+=R(r,++n);else if("]"===t)u=!1;else if(!u)switch(!0){case"["===t:u=!0;break;case"("===t:if(o+=t,"?:"===M(r,n+1,n+3))continue;P(L,M(r,n+1))&&(n+=2,c=!0),f++;continue;case">"===t&&c:if(""===p||m(i,p))throw new I("Invalid capture group name");i[p]=!0,a[a.length]=[p,f],c=!1,p="";continue}c?p+=t:o+=t}return[o,a]}(r),r=a[0],x=a[1]),i=u(S(r,t),d?this:C,U),(n||o||x.length)&&(f=b(i),n&&(f.dotAll=!0,f.raw=U(function(r){for(var t,e=r.length,n=0,o="",a=!1;n<=e;n++)"\\"!==(t=R(r,n))?a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),o+=t):o+="[\\s\\S]":o+=t+R(r,++n);return o}(r),e)),o&&(f.sticky=!0),x.length&&(f.groups=x)),r!==w)try{c(i,"source",""===w?"(?:)":w)}catch(r){}return i},V=f(S),Y=0;V.length>Y;)h(U,S,V[Y++]);C.constructor=U,U.prototype=C,g(o,"RegExp",U,{constructor:!0})}w("RegExp")},57465:(r,t,e)=>{var n=e(43724),o=e(83635),a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"dotAll",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).dotAll;throw new s("Incompatible receiver, RegExp required")}}})},27495:(r,t,e)=>{var n=e(46518),o=e(57323);n({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},87745:(r,t,e)=>{var n=e(43724),o=e(58429).MISSED_STICKY,a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).sticky;throw new s("Incompatible receiver, RegExp required")}}})},90906:(r,t,e)=>{e(27495);var n,o,a=e(46518),i=e(69565),u=e(94901),c=e(28551),s=e(655),f=(n=!1,(o=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&n),p=/./.test;a({target:"RegExp",proto:!0,forced:!f},{test:function(r){var t=c(this),e=s(r),n=t.exec;if(!u(n))return i(p,t,e);var o=i(n,t,e);return null!==o&&(c(o),!0)}})},38781:(r,t,e)=>{var n=e(10350).PROPER,o=e(36840),a=e(28551),i=e(655),u=e(79039),c=e(61034),s="toString",f=RegExp.prototype,p=f[s],l=u((function(){return"/a/b"!==p.call({source:"a",flags:"b"})})),v=n&&p.name!==s;(l||v)&&o(f,s,(function(){var r=a(this);return"/"+i(r.source)+"/"+i(c(r))}),{unsafe:!0})},25440:(r,t,e)=>{var n=e(18745),o=e(69565),a=e(79504),i=e(89228),u=e(79039),c=e(28551),s=e(94901),f=e(64117),p=e(91291),l=e(18014),v=e(655),y=e(67750),d=e(57829),h=e(55966),g=e(2478),x=e(56682),m=e(78227)("replace"),b=Math.max,w=Math.min,E=a([].concat),A=a([].push),T=a("".indexOf),O=a("".slice),S="$0"==="a".replace(/./,"$0"),C=!!/./[m]&&""===/./[m]("a","$0");i("replace",(function(r,t,e){var a=C?"$":"$0";return[function(r,e){var n=y(this),a=f(r)?void 0:h(r,m);return a?o(a,r,n,e):o(t,v(n),r,e)},function(r,o){var i=c(this),u=v(r);if("string"==typeof o&&-1===T(o,a)&&-1===T(o,"$<")){var f=e(t,i,u,o);if(f.done)return f.value}var y=s(o);y||(o=v(o));var h,m=i.global;m&&(h=i.unicode,i.lastIndex=0);for(var S,C=[];null!==(S=x(i,u))&&(A(C,S),m);)""===v(S[0])&&(i.lastIndex=d(u,l(i.lastIndex),h));for(var I,P="",R=0,_=0;_<C.length;_++){for(var j,M=v((S=C[_])[0]),L=b(w(p(S.index),u.length),0),N=[],D=1;D<S.length;D++)A(N,void 0===(I=S[D])?I:String(I));var F=S.groups;if(y){var k=E([M],N,L,u);void 0!==F&&A(k,F),j=v(n(o,void 0,k))}else j=g(M,u,L,N,F,o);L>=R&&(P+=O(u,R,L)+j,R=L+M.length)}return P+O(u,R)}]}),!!u((function(){var r=/./;return r.exec=function(){var r=[];return r.groups={a:"7"},r},"7"!=="".replace(r,"$<a>")}))||!S||C)},50375:(r,t,e)=>{var n=e(46518),o=e(79504),a=e(67750),i=e(91291),u=e(655),c=o("".slice),s=Math.max,f=Math.min;n({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(r,t){var e,n,o=u(a(this)),p=o.length,l=i(r);return l===1/0&&(l=0),l<0&&(l=s(p+l,0)),(e=void 0===t?p:i(t))<=0||e===1/0||l>=(n=f(l+e,p))?"":c(o,l,n)}})},48140:(r,t,e)=>{var n=e(94644),o=e(26198),a=e(91291),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("at",(function(r){var t=i(this),e=o(t),n=a(r),u=n>=0?n:e+n;return u<0||u>=e?void 0:t[u]}))},81630:(r,t,e)=>{var n=e(79504),o=e(94644),a=n(e(57029)),i=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(r,t){return a(i(this),r,t,arguments.length>2?arguments[2]:void 0)}))},72170:(r,t,e)=>{var n=e(94644),o=e(59213).every,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},75044:(r,t,e)=>{var n=e(94644),o=e(84373),a=e(75854),i=e(36955),u=e(69565),c=e(79504),s=e(79039),f=n.aTypedArray,p=n.exportTypedArrayMethod,l=c("".slice);p("fill",(function(r){var t=arguments.length;f(this);var e="Big"===l(i(this),0,3)?a(r):+r;return u(o,this,e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),s((function(){var r=0;return new Int8Array(2).fill({valueOf:function(){return r++}}),1!==r})))},69539:(r,t,e)=>{var n=e(94644),o=e(59213).filter,a=e(26357),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("filter",(function(r){var t=o(i(this),r,arguments.length>1?arguments[1]:void 0);return a(this,t)}))},89955:(r,t,e)=>{var n=e(94644),o=e(59213).findIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},91134:(r,t,e)=>{var n=e(94644),o=e(43839).findLastIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLastIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},21903:(r,t,e)=>{var n=e(94644),o=e(43839).findLast,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLast",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},31694:(r,t,e)=>{var n=e(94644),o=e(59213).find,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},33206:(r,t,e)=>{var n=e(94644),o=e(59213).forEach,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",(function(r){o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},44496:(r,t,e)=>{var n=e(94644),o=e(19617).includes,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},66651:(r,t,e)=>{var n=e(94644),o=e(19617).indexOf,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},12887:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(79504),i=e(94644),u=e(23792),c=e(78227)("iterator"),s=n.Uint8Array,f=a(u.values),p=a(u.keys),l=a(u.entries),v=i.aTypedArray,y=i.exportTypedArrayMethod,d=s&&s.prototype,h=!o((function(){d[c].call([1])})),g=!!d&&d.values&&d[c]===d.values&&"values"===d.values.name,x=function(){return f(v(this))};y("entries",(function(){return l(v(this))}),h),y("keys",(function(){return p(v(this))}),h),y("values",x,h||!g,{name:"values"}),y(c,x,h||!g,{name:"values"})},19369:(r,t,e)=>{var n=e(94644),o=e(79504),a=n.aTypedArray,i=n.exportTypedArrayMethod,u=o([].join);i("join",(function(r){return u(a(this),r)}))},66812:(r,t,e)=>{var n=e(94644),o=e(18745),a=e(8379),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",(function(r){var t=arguments.length;return o(a,i(this),t>1?[r,arguments[1]]:[r])}))},8995:(r,t,e)=>{var n=e(94644),o=e(59213).map,a=e(61412),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("map",(function(r){return o(i(this),r,arguments.length>1?arguments[1]:void 0,(function(r,t){return new(a(r))(t)}))}))},36072:(r,t,e)=>{var n=e(94644),o=e(80926).right,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},31575:(r,t,e)=>{var n=e(94644),o=e(80926).left,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},88747:(r,t,e)=>{var n=e(94644),o=n.aTypedArray,a=n.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var r,t=this,e=o(t).length,n=i(e/2),a=0;a<n;)r=t[a],t[a++]=t[--e],t[e]=r;return t}))},28845:(r,t,e)=>{var n=e(44576),o=e(69565),a=e(94644),i=e(26198),u=e(58229),c=e(48981),s=e(79039),f=n.RangeError,p=n.Int8Array,l=p&&p.prototype,v=l&&l.set,y=a.aTypedArray,d=a.exportTypedArrayMethod,h=!s((function(){var r=new Uint8ClampedArray(2);return o(v,r,{length:1,0:3},1),3!==r[1]})),g=h&&a.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var r=new p(2);return r.set(1),r.set("2",1),0!==r[0]||2!==r[1]}));d("set",(function(r){y(this);var t=u(arguments.length>1?arguments[1]:void 0,1),e=c(r);if(h)return o(v,this,e,t);var n=this.length,a=i(e),s=0;if(a+t>n)throw new f("Wrong length");for(;s<a;)this[t+s]=e[s++]}),!h||g)},29423:(r,t,e)=>{var n=e(94644),o=e(61412),a=e(79039),i=e(67680),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("slice",(function(r,t){for(var e=i(u(this),r,t),n=o(this),a=0,c=e.length,s=new n(c);c>a;)s[a]=e[a++];return s}),a((function(){new Int8Array(1).slice()})))},57301:(r,t,e)=>{var n=e(94644),o=e(59213).some,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},373:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(79039),i=e(79306),u=e(74488),c=e(94644),s=e(13709),f=e(13763),p=e(39519),l=e(3607),v=c.aTypedArray,y=c.exportTypedArrayMethod,d=n.Uint16Array,h=d&&o(d.prototype.sort),g=!(!h||a((function(){h(new d(2),null)}))&&a((function(){h(new d(2),{})}))),x=!!h&&!a((function(){if(p)return p<74;if(s)return s<67;if(f)return!0;if(l)return l<602;var r,t,e=new d(516),n=Array(516);for(r=0;r<516;r++)t=r%4,e[r]=515-r,n[r]=r-2*t+3;for(h(e,(function(r,t){return(r/4|0)-(t/4|0)})),r=0;r<516;r++)if(e[r]!==n[r])return!0}));y("sort",(function(r){return void 0!==r&&i(r),x?h(this,r):u(v(this),function(r){return function(t,e){return void 0!==r?+r(t,e)||0:e!=e?-1:t!=t?1:0===t&&0===e?1/t>0&&1/e<0?1:-1:t>e}}(r))}),!x||g)},86614:(r,t,e)=>{var n=e(94644),o=e(18014),a=e(35610),i=e(61412),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("subarray",(function(r,t){var e=u(this),n=e.length,c=a(r,n);return new(i(e))(e.buffer,e.byteOffset+c*e.BYTES_PER_ELEMENT,o((void 0===t?n:a(t,n))-c))}))},41405:(r,t,e)=>{var n=e(44576),o=e(18745),a=e(94644),i=e(79039),u=e(67680),c=n.Int8Array,s=a.aTypedArray,f=a.exportTypedArrayMethod,p=[].toLocaleString,l=!!c&&i((function(){p.call(new c(1))}));f("toLocaleString",(function(){return o(p,l?u(s(this)):s(this),u(arguments))}),i((function(){return[1,2].toLocaleString()!==new c([1,2]).toLocaleString()}))||!i((function(){c.prototype.toLocaleString.call([1,2])})))},37467:(r,t,e)=>{var n=e(37628),o=e(94644),a=o.aTypedArray,i=o.exportTypedArrayMethod,u=o.getTypedArrayConstructor;i("toReversed",(function(){return n(a(this),u(this))}))},44732:(r,t,e)=>{var n=e(94644),o=e(79504),a=e(79306),i=e(35370),u=n.aTypedArray,c=n.getTypedArrayConstructor,s=n.exportTypedArrayMethod,f=o(n.TypedArrayPrototype.sort);s("toSorted",(function(r){void 0!==r&&a(r);var t=u(this),e=i(c(t),t);return f(e,r)}))},33684:(r,t,e)=>{var n=e(94644).exportTypedArrayMethod,o=e(79039),a=e(44576),i=e(79504),u=a.Uint8Array,c=u&&u.prototype||{},s=[].toString,f=i([].join);o((function(){s.call({})}))&&(s=function(){return f(this)});var p=c.toString!==s;n("toString",s,p)},21489:(r,t,e)=>{e(15823)("Uint8",(function(r){return function(t,e,n){return r(this,t,e,n)}}))},79577:(r,t,e)=>{var n=e(39928),o=e(94644),a=e(18727),i=e(91291),u=e(75854),c=o.aTypedArray,s=o.getTypedArrayConstructor,f=o.exportTypedArrayMethod,p=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(r){return 8===r}}();f("with",{with:function(r,t){var e=c(this),o=i(r),f=a(e)?u(t):+t;return n(e,s(e),o,f)}}.with,!p)}},t={};function e(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return r[n].call(a.exports,a,a.exports,e),a.exports}e.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return e.d(t,{a:t}),t},e.d=(r,t)=>{for(var n in t)e.o(t,n)&&!e.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:t[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),e.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t);var n={};e.d(n,{AP:()=>_,Bv:()=>T,DE:()=>f,KD:()=>R,LX:()=>h,Lu:()=>g,MD:()=>b,Nl:()=>y,Op:()=>O,R_:()=>d,UP:()=>m,V6:()=>x,Xj:()=>I,aX:()=>E,dF:()=>P,fH:()=>A,g:()=>s,of:()=>v,pL:()=>w,qT:()=>p,s1:()=>j,ue:()=>C,un:()=>l,yD:()=>S,yz:()=>R});var o=e(64007),a=e.n(o),i=e(11393),u=e.n(i),c=(e(2892),e(48618)),s={OPERATE:"operate",DETAIL:"detail",LOG:"log"},f={CURRENT_DATE:"_currentDate",REF_VAL:"_refVal"},p=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentTabPaneH5"],l="CustomComponentFormLayout",v="CustomComponentFormLayoutH5",y=["CustomComponentDialog"],d=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentDialog","ElButton","CustomComponentTable","CustomComponentRow","CustomComponentCol","CustomComponentCardH5","CustomComponentCollapseH5","CustomComponentTabsH5","CustomComponentTabPaneH5","CustomComponentTableH5","cmi-cell","cmi-button","cmi-link","cmi-dropdown-menu","cmi-divider"],h=["CustomComponentTabPane","CustomComponentDialog","CustomComponentCol","CustomComponentTabPaneH5"],g=["CustomComponentTable"],x=["el-select","el-date-picker","el-time-picker","el-time-select","el-cascader","el-input-number","CustomComponentTree","CustomComponentSteps"],m=["el-span"],b="el-",w="t-",E="cmi-",A="H5-",T="1",O="0",S=["ElText"],C=["ElInput","ElDatePicker","ElInputNumber"],I=["ElSelect"],P="/gcweb/External_Mail",R={compInfo:{type:Object,getValue:function(r,t,e){return r}},modelValue:{type:[String,Number,Object,Array,void 0,null],getValue:function(r,t,e){return e.value}},config:{type:Object,getValue:function(r,t,e){return r}},refValue:{type:[Object,Number,String],default:"",getValue:function(r,t,e){return e}},disabled:{type:Boolean,default:!1,getValue:function(r,t,e){return _(r,t.mode)}},clearable:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.clearableFlag}},required:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.requiredFlag}},onlyRequiredFlag:{type:Boolean,default:!1,getValue:function(r,t,e){return r.onlyRequiredFlag}},tableData:{type:Array,default:function(){return[]},getValue:function(r,t,e){return t.tableData}},rowScope:{type:Object,getValue:function(r,t,e){return t.rowScope}},width:{type:[String,Number],default:"",getValue:function(r,t,e){return r.width?(0,c.M6)(r.width):null}},mode:{type:[String],default:"",getValue:function(r,t){return t.mode}},options:{type:Array,default:function(){return[]},getValue:function(r,t,e,n){return(0,c.fN)(r,n)}},placeholder:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return((null==o?void 0:a()(o).call(o,"zh"))>-1?r.defPlacehold:r.defPlaceholdEn)||""}},placeholderEn:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return r.defPlaceholdEn}}};function _(r,t){var e,n;return!(0,c.E1)(["CustomComponentTabs"],r)&&(t===s.LOG?!r.logAlong&&!(0,c.E1)(u()(e=[l]).call(e,p),r)||"0"===r.editFlag:t===s.DETAIL&&!r.detailAlong&&!(0,c.E1)(u()(n=[l]).call(n,p),r)||"0"===r.editFlag)}var j={row:"CustomComponentRow",grid:"CustomComponentRow","grid-col":"CustomComponentCol",table:"CustomComponentTable","checkbox-table":"CustomComponentTable",tab:"CustomComponentTabs","tab-pane":"CustomComponentTabPane",collapse:"CustomComponentCollapse",card:"CustomComponentCollapse",cycle:"CustomComponentCycle",input:"ElInput",textarea:"ElInput",button:"ElButton","static-text":"ElText",number:"ElInputNumber",radio:"ElRadio",checkbox:"ElCheckbox",select:"ElSelect",time:"ElTimePicker","time-range":"ElTimePicker",date:"ElDatePicker","date-range":"ElDatePicker",cascader:"ElCascader","select-employees":"CustomComponentSelectEmployees","rich-editor":"CustomComponentEditor",pagination:"ElPagination",tree:"CustomComponentTree",steps:"CustomComponentSteps","mail-send":"CustomComponentSendMail","cmi-card":"CustomComponentCardH5","cmi-collapse":"CustomComponentCollapseH5","cmi-tab":"CustomComponentTabsH5","cmi-tab-pane":"CustomComponentTabPaneH5","cmi-table":"CustomComponentTableH5","cmi-datetime":"CmiDatetimePicker"},M=n.DE,L=n.Nl,N=n.Op,D=n.Bv,F=n.un,k=n.of,B=n.aX,U=n.fH,V=n.dF,Y=n.s1,W=n.g,G=n.Lu,H=n.qT,z=n.LX,$=n.R_,X=n.yD,q=n.ue,K=n.Xj,J=n.MD,Q=n.pL,Z=n.V6,rr=n.UP,tr=n.AP,er=n.yz,nr=n.KD;export{M as ARG_FLAGS,L as CONTEXT_PEDDING_TYPE,N as DISPLAY_HIDDEN,D as DISPLAY_SHOW,F as FORM_META_TYPE,k as FORM_META_TYPE_H5,B as H5_PREFIX_FLAG,U as H5_REPLACE_PREFIX_FLAG,V as MAIL_SEND_URL,Y as META_TYPE_MAP,W as MODE,G as MULTI_PAGE_META_LIST_TYPES,H as NOT_LOG_EFFECT_TYPE,z as NOT_NEED_COL_ITEM_META_TYPE,$ as NOT_NEED_FORM_ITEM_META_TYPE,X as PLAIN_TYPE_ALONG_COLUMNS,q as PLAIN_TYPE_COLUMNS,K as PLAIN_TYPE_OPTIONS_COLUMNS,J as PREFIX_FLAG,Q as REPLACE_PREFIX_FLAG,Z as SPECIAL_SET_FULL_WIDTH_ITEM_META_TYPE,rr as TABLE_COLUMN_NOT_RENDER_META_TYPE,tr as calcDisable,er as commonPropsType,nr as componentPropsType};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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WixPQUFVLFdBQ1YsY0FBZSxTQUNmLE9BQVUsZ0JBQ1YsTUFBUyxVQUNULFNBQVksYUFDWixPQUFVLFdBQ1YsS0FBUSxlQUNSLGFBQWMsZUFDZCxLQUFRLGVBQ1IsYUFBYyxlQUNkLFNBQVksYUFDWixtQkFBb0IsaUNBQ3BCLGNBQWUsd0JBQ2YsV0FBYyxlQUNkLEtBQVEsc0JBQ1IsTUFBUyx1QkFDVCxZQUFhLDBCQUViLFdBQVksd0JBQ1osZUFBZ0IsNEJBQ2hCLFVBQVcsd0JBQ1gsZUFBZ0IsMkJBQ2hCLFlBQWEseUJBQ2IsZUFBZ0IscUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vc3JjL3V0aWxzL2NvbW1vbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvYXJyYXkvaXMtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL2luc3RhbmNlL2NvbmNhdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvZW5kcy13aXRoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvaW5kZXgtb2YuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL2luc3RhbmNlL21hcC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvcmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUtY29yZWpzMy9jb3JlLWpzLXN0YWJsZS9pbnN0YW5jZS9zbGljZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvaW5zdGFuY2UvdHJpbS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvb2JqZWN0L2NyZWF0ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lLWNvcmVqczMvY29yZS1qcy1zdGFibGUvb2JqZWN0L2tleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS1jb3JlanMzL2NvcmUtanMtc3RhYmxlL3BhcnNlLWludC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL2NvbmNhdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL2ZpbmQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvYXJyYXkvdmlydHVhbC9mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9hcnJheS92aXJ0dWFsL2luZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvbWFwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvcmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2FycmF5L3ZpcnR1YWwvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvY29uY2F0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL2VuZHMtd2l0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL2luZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL2luc3RhbmNlL21hcC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9pbnN0YW5jZS9yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2Uvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvaW5zdGFuY2UvdHJpbS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9vYmplY3QvY3JlYXRlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL29iamVjdC9rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2VzL3BhcnNlLWludC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9lcy9zdHJpbmcvdmlydHVhbC9lbmRzLXdpdGguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvZXMvc3RyaW5nL3ZpcnR1YWwvdHJpbS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYS1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2FycmF5LWZvci1lYWNoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktcmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9hcnJheS1zbGljZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jbGFzc29mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jb3JyZWN0LWlzLXJlZ2V4cC1sb2dpYy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2RvZXMtbm90LWV4Y2VlZC1zYWZlLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LWlzLW5vZGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2Vudmlyb25tZW50LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9leHBvcnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2ZhaWxzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1hcHBseS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nZXQtbWV0aG9kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9nbG9iYWwtdGhpcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2h0bWwuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLWZvcmNlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvaXMtcmVnZXhwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9pcy1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9tYXRoLXRydW5jLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9ub3QtYS1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL251bWJlci1wYXJzZS1pbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL29iamVjdC1rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvb3JkaW5hcnktdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9wYXRoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC1rZXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvc2hhcmVkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zdHJpbmctdHJpbS1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3N0cmluZy10cmltLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tb2JqZWN0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy90by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3RyeS10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3VpZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9pbnRlcm5hbHMvd2hpdGVzcGFjZXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5hcnJheS5pbmRleC1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9tb2R1bGVzL2VzLmFycmF5LmlzLWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5vYmplY3QuY3JlYXRlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5wYXJzZS1pbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvbW9kdWxlcy9lcy5zdHJpbmcuZW5kcy13aXRoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2FycmF5L2lzLWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9hcnJheS92aXJ0dWFsL2Zvci1lYWNoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9jb25jYXQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2VuZHMtd2l0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZmluZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2luZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9tYXAuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL3JlZHVjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2Uvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL3RyaW0uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzLXB1cmUvc3RhYmxlL29iamVjdC9rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy1wdXJlL3N0YWJsZS9wYXJzZS1pbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hLWNhbGxhYmxlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hbi1pbnN0YW5jZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci1iYXNpYy1kZXRlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1idWZmZXItaXMtZGV0YWNoZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1idWZmZXItbm90LWRldGFjaGVkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXRyYW5zZmVyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWNvcHktd2l0aGluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktZmlsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWZyb20tY29uc3RydWN0b3ItYW5kLWxpc3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi1mcm9tLWxhc3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1sYXN0LWluZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXJlZHVjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNsaWNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktc29ydC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXRvLXJldmVyc2VkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktd2l0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NsYXNzb2YtcmF3LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1pdGVyLXJlc3VsdC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3Nvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVsZXRlLXByb3BlcnR5LW9yLXRocm93LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZXRhY2gtdHJhbnNmZXJhYmxlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW52aXJvbm1lbnQtZmYtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Vudmlyb25tZW50LWlzLWllLW9yLWVkZ2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnZpcm9ubWVudC1pcy1ub2RlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdXNlci1hZ2VudC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnZpcm9ubWVudC13ZWJraXQtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Vudmlyb25tZW50LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZXJyb3Itc3RhY2stY2xlYXIuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lcnJvci1zdGFjay1pbnN0YWxsLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZXJyb3Itc3RhY2staW5zdGFsbGFibGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lcnJvci10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9leHBvcnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mYWlscy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi1hcHBseS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtYWNjZXNzb3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLW5vZGUtbW9kdWxlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtc3Vic3RpdHV0aW9uLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9odG1sLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pZWVlNzU0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnN0YWxsLWVycm9yLWNhdXNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS1pdGVyYXRvci1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWJpZy1pbnQtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtZm9yY2VkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtaW50ZWdyYWwtbnVtYmVyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1wb3NzaWJsZS1wcm90b3R5cGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1wdXJlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcmVnZXhwLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtc3ltYm9sLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3ItY3JlYXRlLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3ItZGVmaW5lLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pdGVyYXRvcnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLWZsb2F0LXJvdW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWF0aC1mcm91bmQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLXNpZ24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLXRydW5jLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbm9ybWFsaXplLXN0cmluZy1hcmd1bWVudC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnRpZXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL293bi1rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcGF0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3Byb3h5LWFjY2Vzc29yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZXhlYy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1mbGFncy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1nZXQtZmxhZ3MuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1uY2cuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zZXQtc3BlY2llcy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLWtleS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3RyaW5nLXRyaW0uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJ1Y3R1cmVkLWNsb25lLXByb3Blci10cmFuc2Zlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90aGlzLW51bWJlci12YWx1ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tYmlnLWludC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWluZGV4LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tb2JqZWN0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tb2Zmc2V0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tcG9zaXRpdmUtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXVpbnQ4LWNsYW1wZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90cnktdG8tc3RyaW5nLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcnMtcmVxdWlyZS13cmFwcGVycy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3R5cGVkLWFycmF5LWZyb20tc3BlY2llcy1hbmQtbGlzdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3R5cGVkLWFycmF5LWZyb20uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90eXBlZC1hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdWlkLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92OC1wcm90b3R5cGUtZGVmaW5lLWJ1Zy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlYWstbWFwLWJhc2ljLWRldGVjdGlvbi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2hpdGVzcGFjZXMuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy93cmFwLWVycm9yLWNvbnN0cnVjdG9yLXdpdGgtY2F1c2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXktYnVmZmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LWJ1ZmZlci5kZXRhY2hlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS1idWZmZXIuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXktYnVmZmVyLnRyYW5zZmVyLXRvLWZpeGVkLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS1idWZmZXIudHJhbnNmZXIuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZGF0YS12aWV3LmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmRhdGEtdmlldy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5kYXRlLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5lcnJvci5jYXVzZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5lcnJvci50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5kb3QtYWxsLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5zdGlja3kuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc3Vic3RyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmF0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmNvcHktd2l0aGluLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmV2ZXJ5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbGwuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmlsdGVyLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbmQtaW5kZXguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmluZC1sYXN0LWluZGV4LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbmQtbGFzdC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5maW5kLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZvci1lYWNoLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmluY2x1ZGVzLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmluZGV4LW9mLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5Lml0ZXJhdG9yLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmpvaW4uanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkubGFzdC1pbmRleC1vZi5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5tYXAuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkucmVkdWNlLXJpZ2h0LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnJlZHVjZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5yZXZlcnNlLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNldC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5zbGljZS5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5zb21lLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNvcnQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuc3ViYXJyYXkuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudG8tbG9jYWxlLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS50by1yZXZlcnNlZC5qcyIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS50by1zb3J0ZWQuanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudG8tc3RyaW5nLmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnVpbnQ4LWFycmF5LmpzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LndpdGguanMiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3Jlc29sdmVyLWVncmV0aW1wLXBsdXMvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9yZXNvbHZlci1lZ3JldGltcC1wbHVzL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vcmVzb2x2ZXItZWdyZXRpbXAtcGx1cy8uL3NyYy91dGlscy9jb25zdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IGludGVyc2VjdGlvbldpdGgsIGlzRXF1YWwsIG1lcmdlV2l0aCwgdW5pb25XaXRoLCBpc0FycmF5LCBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnXG5cbmV4cG9ydCB7XG4gIGNsb25lRGVlcCxcbiAgdW5pb25XaXRoXG59XG5cbmZ1bmN0aW9uIGNhY2hlZChmbikge1xuICBjb25zdCBjYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbClcbiAgcmV0dXJuIGZ1bmN0aW9uIGNhY2hlZEZuKHN0cikge1xuICAgIGNvbnN0IGhpdCA9IGNhY2hlW3N0cl1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXR1cm4tYXNzaWduICovXG4gICAgcmV0dXJuIGhpdCB8fCAoY2FjaGVbc3RyXSA9IGZuKHN0cikpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbFBpeGVsKHBpeGVsKSB7XG4gIGlmICghcGl4ZWwpIHJldHVybiBudWxsXG4gIGNvbnN0IHdpZHRoID0gTnVtYmVyKHBpeGVsKVxuICBpZiAoIWlzTmFOKHdpZHRoKSkge1xuICAgIHJldHVybiB3aWR0aCArICdweCdcbiAgfSBlbHNlIHtcbiAgICBsZXQgZW5kRmxhZ3MgPSBbJ3B4JywgJyUnLCAndmgnLCAndncnLCAncmVtJywgJ2VtJ11cbiAgICBjb25zdCBmaW5kRmxhZyA9IGVuZEZsYWdzLmZpbmQoZmxhZyA9PiBwaXhlbD8uZW5kc1dpdGgoZmxhZykpXG4gICAgaWYgKGZpbmRGbGFnKSB7XG4gICAgICByZXR1cm4gcGFyc2VJbnQocGl4ZWwpICsgZmluZEZsYWdcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb25SZWZUeXBlKHZhbHVlKSB7XG4gIGNvbnN0IHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gIGlmICh0eXBlID09PSAndW5kZWZpbmVkJyB8fCB0eXBlID09PSAnYm9vbGVhbicgfHwgdHlwZSA9PT0gJ251bWJlcicgfHwgdHlwZSA9PT0gJ3N0cmluZycgfHwgdHlwZSA9PT0gJ3N5bWJvbCcgfHwgdHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2FtZWxpemUgYSBoeXBoZW4tZGVsaW1pdGVkIHN0cmluZy5cbiAqL1xuY29uc3QgY2FtZWxpemVSRSA9IC8tKFxcdykvZ1xuLyogZXNsaW50LWRpc2FibGUgcHJlZmVyLWFycm93LWNhbGxiYWNrICovXG5leHBvcnQgY29uc3QgY2FtZWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItYXJyb3ctY2FsbGJhY2sgKi9cbiAgcmV0dXJuIHN0ci5yZXBsYWNlKGNhbWVsaXplUkUsIGZ1bmN0aW9uIChfLCBjKSB7IHJldHVybiBjID8gYy50b1VwcGVyQ2FzZSgpIDogJycgfSlcbn0pXG5cbi8qKlxuICogQ2FwaXRhbGl6ZSBhIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNhcGl0YWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpXG59KVxuXG4vLyDmoIforrDmlbDnu4TkuK3nmoTmmK/lkKbmnInlr7nlupTnmoTnu4Tku7ZcbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29tcG9uZW50KGNvbXBzLCBjb21wKSB7XG4gIGNvbnN0IGNvbXBzVG9PYmogPSBjb21wcy5yZWR1Y2UoKHJldCwga2V5LCBpZHgpID0+IHtyZXRba2V5XSA9IGlkeDsgcmV0dXJuIHJldH0sIHt9KVxuICBjb25zdCByZXNvbHZlSWR4ID0gcmVzb2x2ZUFzc2V0Q29tcG9uZW50cyhjb21wc1RvT2JqLCBjb21wKVxuICByZXR1cm4gKHJlc29sdmVJZHggPT09IHVuZGVmaW5lZCB8fCByZXNvbHZlSWR4ID09PSBudWxsKSA/IC0xIDogcmVzb2x2ZUlkeFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQYXRjaENvbXBvbmVudChjb21wb25lbnRzLCBjb25maWcpIHtcbiAgcmV0dXJuIChmaW5kQ29tcG9uZW50KGNvbXBvbmVudHMsIGNvbmZpZz8ucmVuZGVyYnkpICE9PSAtMSB8fCBmaW5kQ29tcG9uZW50KGNvbXBvbmVudHMsIGNvbmZpZz8ubWV0YVR5cGUpICE9PSAtMSlcbn1cblxuLy8gXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFzc2V0Q29tcG9uZW50cyhcbiAgY29tcG9uZW50cyxcbiAgaWRcbikge1xuICBpZiAodHlwZW9mIGlkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgYXNzZXRzID0gY29tcG9uZW50c1xuICBpZiAoYXNzZXRzW2lkXSAhPT0gdW5kZWZpbmVkICYmIGFzc2V0c1tpZF0gIT09IG51bGwpIHtcbiAgICByZXR1cm4gYXNzZXRzW2lkXVxuICB9XG4gIGNvbnN0IGNhbWVsaXplZElkID0gY2FtZWxpemUoaWQpXG4gIGlmIChhc3NldHNbY2FtZWxpemVkSWRdICE9PSB1bmRlZmluZWQgJiYgYXNzZXRzW2NhbWVsaXplZElkXSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBhc3NldHNbY2FtZWxpemVkSWRdXG4gIH1cbiAgY29uc3QgUGFzY2FsQ2FzZUlkID0gY2FwaXRhbGl6ZShjYW1lbGl6ZWRJZClcbiAgaWYgKGFzc2V0c1tQYXNjYWxDYXNlSWRdICE9PSB1bmRlZmluZWQgJiYgYXNzZXRzW1Bhc2NhbENhc2VJZF0gIT09IG51bGwpIHtcbiAgICByZXR1cm4gYXNzZXRzW1Bhc2NhbENhc2VJZF1cbiAgfVxuICAvLyBmdW5jdGlvbiBpc1Z1ZUluc3RhbmNlKENvdHIpIHtcbiAgLy8gICByZXR1cm4gQ290ci5wcm90b3R5cGUgaW5zdGFuY2VvZiBWdWVcbiAgLy8gfVxuICByZXR1cm4gbnVsbFxufVxuXG4vLyDmiormiYDmnInnu4Tku7bpg73ovazmjaLkuLrlpKfpqbzls7DnmoTnu4Tku7ZcbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxDYXBpdGFsaXplQ29tcG9uZW50KGNvbXBvbmVudCkge1xuICBpZiAodHlwZW9mIGNvbXBvbmVudCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gY29tcG9uZW50XG4gIH1cbiAgcmV0dXJuIGNhcGl0YWxpemUoY2FtZWxpemUoY29tcG9uZW50KSlcbn1cblxuLy8g5a+55bqU5Lik5Liq57uE5Lu25ZCN5piv5ZCm5Li65ZCM5LiA5LiqXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZUNvbXBvbmV0KGNvbXAxLCBjb21wMikge1xuICBpZiAodHlwZW9mIGNvbXAxICE9PSAnc3RyaW5nJyB8fCB0eXBlb2YgY29tcDIgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgdHJhbnNDb21wMSA9IGNhcGl0YWxpemUoY2FtZWxpemUoY29tcDEpKVxuICBjb25zdCB0cmFuc0NvbXAyID0gY2FwaXRhbGl6ZShjYW1lbGl6ZShjb21wMikpXG4gIHJldHVybiB0cmFuc0NvbXAxID09PSB0cmFuc0NvbXAyXG59XG5cbmNvbnN0IGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eVxuZXhwb3J0IGZ1bmN0aW9uIGhhc093bihvYmosIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gJ1tvYmplY3QgT2JqZWN0XScgJiYgb2JqICE9PSBudWxsICYmIG9iaiAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUsIGZtdCkge1xuICBpZiAoLyh5KykvLnRlc3QoZm10KSkge1xuICAgIGZtdCA9IGZtdC5yZXBsYWNlKFJlZ0V4cC4kMSwgKGAke2RhdGUuZ2V0RnVsbFllYXIoKX1gKS5zdWJzdHIoNCAtIFJlZ0V4cC4kMS5sZW5ndGgpKVxuICB9XG4gIGNvbnN0IG8gPSB7XG4gICAgJ00rJzogZGF0ZS5nZXRNb250aCgpICsgMSxcbiAgICAnZCsnOiBkYXRlLmdldERhdGUoKSxcbiAgICAnaCsnOiBkYXRlLmdldEhvdXJzKCksXG4gICAgJ20rJzogZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgJ3MrJzogZGF0ZS5nZXRTZWNvbmRzKClcbiAgfVxuICBPYmplY3Qua2V5cyhvKS5mb3JFYWNoKGsgPT4ge1xuICAgIGNvbnN0IHN0ciA9IGAke29ba119YFxuICAgIGlmIChuZXcgUmVnRXhwKGAoJHtrfSlgKS50ZXN0KGZtdCkpIHtcbiAgICAgIGZtdCA9IGZtdC5yZXBsYWNlKFJlZ0V4cC4kMSwgKFJlZ0V4cC4kMS5sZW5ndGggPT09IDEpID8gc3RyIDogcGFkTGVmdFplcm8oc3RyKSlcbiAgICB9XG4gIH0pXG4gIHJldHVybiBmbXRcbn1cblxuZnVuY3Rpb24gcGFkTGVmdFplcm8oc3RyKSB7XG4gIHJldHVybiAoYDAwJHtzdHJ9YCkuc3Vic3RyKHN0ci5sZW5ndGgpXG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgbWVyZ2UgdHdvIG9iamVjdHMuXG4gKiDpgJLlvZLlkIjlubbkuKTkuKrlr7nosaHjgIJcbiAqXG4gKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2JqZWN0IHRvIG1lcmdlIGZyb20uIOimgeWQiOW5tueahOa6kOWvueixoeOAglxuICogQHBhcmFtIHRhcmdldCBUaGUgdGFyZ2V0IG9iamVjdCB0byBtZXJnZSBpbnRvLiDnm67moIflr7nosaHvvIzlkIjlubblkI7nu5PmnpzlrZjmlL7kuo7mraTjgIJcbiAqIEBwYXJhbSBtZXJnZUFycmF5cyBIb3cgdG8gbWVyZ2UgYXJyYXlzLiBEZWZhdWx0IGlzIFwicmVwbGFjZVwiLlxuICogICAgICAgIOWmguS9leWQiOW5tuaVsOe7hOOAgum7mOiupOS4unJlcGxhY2XjgIJcbiAqICAgICAgICAtIFwidW5pb25cIjogVW5pb24gdGhlIGFycmF5cy4g5a+55pWw57uE5omn6KGM5bm26ZuG5pON5L2c44CCXG4gKiAgICAgICAgLSBcImludGVyc2VjdGlvblwiOiBJbnRlcnNlY3QgdGhlIGFycmF5cy4g5a+55pWw57uE5omn6KGM5Lqk6ZuG5pON5L2c44CCXG4gKiAgICAgICAgLSBcImNvbmNhdFwiOiBDb25jYXRlbmF0ZSB0aGUgYXJyYXlzLiDov57mjqXmlbDnu4TjgIJcbiAqICAgICAgICAtIFwicmVwbGFjZVwiOiBSZXBsYWNlIHRoZSBzb3VyY2UgYXJyYXkgd2l0aCB0aGUgdGFyZ2V0IGFycmF5LiDnlKjnm67moIfmlbDnu4Tmm7/mjaLmupDmlbDnu4TjgIJcbiAqIEByZXR1cm5zIFRoZSBtZXJnZWQgb2JqZWN0LiDlkIjlubblkI7nmoTlr7nosaHjgIJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZShcbiAgc291cmNlLFxuICB0YXJnZXQsXG4gIG1lcmdlQXJyYXlzLCAvLyAndW5pb24nIHwgJ2ludGVyc2VjdGlvbicgfCAnY29uY2F0JyB8ICdyZXBsYWNlJyA9ICdyZXBsYWNlJ1xuKSB7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuICBpZiAoIXNvdXJjZSkge1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cbiAgbGV0IHJldCA9IG1lcmdlV2l0aChzb3VyY2UsIHRhcmdldCwgKHNvdXJjZVZhbHVlLCB0YXJnZXRWYWx1ZSkgPT4ge1xuICAgIGlmICghdGFyZ2V0VmFsdWUpIHtcbiAgICAgIHJldHVybiBzb3VyY2VWYWx1ZVxuICAgIH1cbiAgICBpZiAoIXNvdXJjZVZhbHVlKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0VmFsdWVcbiAgICB9XG4gICAgaWYgKGlzQXJyYXkodGFyZ2V0VmFsdWUpICYmIGlzQXJyYXkoc291cmNlVmFsdWUpKSB7XG4gICAgICBzd2l0Y2ggKG1lcmdlQXJyYXlzKSB7XG4gICAgICAgIGNhc2UgJ3VuaW9uJzpcbiAgICAgICAgICByZXR1cm4gdW5pb25XaXRoKHNvdXJjZVZhbHVlLCB0YXJnZXRWYWx1ZSwgaXNFcXVhbCk7XG4gICAgICAgIGNhc2UgJ2ludGVyc2VjdGlvbic6XG4gICAgICAgICAgcmV0dXJuIGludGVyc2VjdGlvbldpdGgoc291cmNlVmFsdWUsIHRhcmdldFZhbHVlLCBpc0VxdWFsKTtcbiAgICAgICAgY2FzZSAnY29uY2F0JzpcbiAgICAgICAgICByZXR1cm4gc291cmNlVmFsdWUuY29uY2F0KHRhcmdldFZhbHVlKTtcbiAgICAgICAgY2FzZSAncmVwbGFjZSc6XG4gICAgICAgICAgcmV0dXJuIHRhcmdldFZhbHVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBtZXJnZSBhcnJheSBzdHJhdGVneTogJHttZXJnZUFycmF5c31gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzUGxhaW5PYmplY3QodGFyZ2V0VmFsdWUpICYmIGlzUGxhaW5PYmplY3Qoc291cmNlVmFsdWUpKSB7XG4gICAgICByZXR1cm4gZGVlcE1lcmdlKHNvdXJjZVZhbHVlLCB0YXJnZXRWYWx1ZSwgbWVyZ2VBcnJheXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0VmFsdWU7XG4gIH0pO1xuICBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgaWYgKHJldCAmJiAhQXJyYXkuaXNBcnJheShyZXQpKSB7XG4gICAgICBsZXQgYXJyID0gW11cbiAgICAgIE9iamVjdC5rZXlzKHJldCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBhcnJba2V5XSA9IHJldFtrZXldXG4gICAgICB9KVxuICAgICAgcmV0ID0gYXJyXG4gICAgfVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm5TdHIoc3RyKSB7XG4gIC8vIOWMuemFjeWFt+WQjeWHveaVsOWSjOWMv+WQjeWHveaVsO+8iOS9huS4jeWMheaLrOeureWktOWHveaVsO+8iVxuICBjb25zdCBmdW5jdGlvblJlZ2V4ID0gL15cXHMqKD86ZnVuY3Rpb25cXHMqKD86XFx3K1xccyopP1xcKFteKCldKlxcKVxccypcXHtbXFxzXFxTXSo/XFx9KVxccyokL1xuICAvLyDljLnphY3nrq3lpLTlh73mlbBcbiAgY29uc3QgYXJyb3dGdW5jdGlvblJlZ2V4ID0gL15cXHMqXFwoKD86XFxzKlxcdysoPzpcXHMqPVxccypcXHcrKT9cXHMqKD86LFxccyopPykqXFwpXFxzKj0+XFxzKig/Olxce1tcXHNcXFNdKj9cXH18W1xcc1xcU10rPylcXHMqJC87XG4gIHJldHVybiBmdW5jdGlvblJlZ2V4LnRlc3Qoc3RyKSB8fCBhcnJvd0Z1bmN0aW9uUmVnZXgudGVzdChzdHIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0RnVuY3Rpb25Cb2R5KGZ1bmNTdHIpIHtcbiAgLy8g5q2j5YiZ6KGo6L6+5byP55So5LqO5Yy56YWN5Ye95pWw5L2TXG4gIGNvbnN0IGJvZHlSZWdleCA9IC8oPzw9eykoLiopKD89fSkvcztcbiAgY29uc3QgbWF0Y2ggPSBib2R5UmVnZXguZXhlYyhmdW5jU3RyKTtcbiAgaWYgKG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICByZXR1cm4gbWF0Y2hbMV0udHJpbSgpOyAvLyDov5Tlm57ljLnphY3liLDnmoTlh73mlbDkvZNcbiAgfVxuICByZXR1cm4gbnVsbDsgLy8g5aaC5p6c5rKh5pyJ5Yy56YWN5Yiw77yM6L+U5ZuebnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlKGZuKSB7XG4gIHJldHVybiBmbiAmJiB0eXBlb2YgZm4udGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGUoLi4uYXJnKSB7XG4gIHJldHVybiBuZXcgRGF0ZSguLi5hcmcpXG59XG4vLyDnlJ/miJDllK/kuIDlgLxcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKCkge1xuICByZXR1cm4gYCR7Zm9ybWF0RGF0ZShuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZCBoaDptbTpzcycpfS0ke2dldFV1aWQoKX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXVpZCAoKSB7XG4gIGlmICh0eXBlb2YgY3J5cHRvID09PSAnb2JqZWN0Jykge1xuICAgIGlmICh0eXBlb2YgY3J5cHRvLnJhbmRvbVVVSUQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIFVpbnQ4QXJyYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrID0gKGMpID0+IHtcbiAgICAgICAgY29uc3QgbnVtID0gTnVtYmVyKGMpO1xuICAgICAgICByZXR1cm4gKG51bSBeIChjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDEpKVswXSAmICgxNSA+PiAobnVtIC8gNCkpKSkudG9TdHJpbmcoMTYpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiAoWzFlN10rLTFlMystNGUzKy04ZTMrLTFlMTEpLnJlcGxhY2UoL1swMThdL2csIGNhbGxiYWNrKTtcbiAgICB9XG4gIH1cbiAgbGV0IHRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICBsZXQgcGVyZm9yTm93ID0gKHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCcgJiYgcGVyZm9ybWFuY2Uubm93ICYmIHBlcmZvcm1hbmNlLm5vdygpICogMTAwMCkgfHwgMDtcbiAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgKGMpID0+IHtcbiAgICBsZXQgcmFuZG9tID0gTWF0aC5yYW5kb20oKSAqIDE2O1xuICAgIGlmICh0aW1lc3RhbXAgPiAwKSB7XG4gICAgICByYW5kb20gPSAodGltZXN0YW1wICsgcmFuZG9tKSAlIDE2IHwgMDtcbiAgICAgIHRpbWVzdGFtcCA9IE1hdGguZmxvb3IodGltZXN0YW1wIC8gMTYpO1xuICAgIH0gZWxzZSB7XG4gICAgICByYW5kb20gPSAocGVyZm9yTm93ICsgcmFuZG9tKSAlIDE2IHwgMDtcbiAgICAgIHBlcmZvck5vdyA9IE1hdGguZmxvb3IocGVyZm9yTm93IC8gMTYpO1xuICAgIH1cbiAgICByZXR1cm4gKGMgPT09ICd4JyA/IHJhbmRvbSA6IChyYW5kb20gJiAweDMpIHwgMHg4KS50b1N0cmluZygxNik7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uZmlnT3B0aW9ucyhjb25maWcsIHNlbGVjdHMpIHtcbiAgY29uc3QgcmVmZXJlbmNlT3B0aW9ucyA9IGNvbmZpZy5yZWZlcmVuY2VPcHRpb25zXG4gIGNvbnN0IHNlbGVjdEtleSA9IGNvbmZpZy5zZWxlY3RLZXlcbiAgbGV0IG9wdGlvbkl0ZW1zTGlzdCA9IFtdXG4gIHRyeSB7XG4gICAgb3B0aW9uSXRlbXNMaXN0ID0gSlNPTi5wYXJzZShjb25maWc/Lm9wdGlvbkl0ZW1zIHx8ICdbXScpLm1hcChpdGVtID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbHVtblZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICBjb2x1bW5EZXNjX3poOiBpdGVtLmxhYmVsLFxuICAgICAgICBjb2x1bW5EZXNjOiBpdGVtLmxhYmVsX2VuIHx8IGl0ZW0ubGFiZWwsXG4gICAgICAgIGNvbHVtblN0YXR1czogaXRlbS5jb2x1bW5TdGF0dXNcbiAgICAgIH1cbiAgICB9KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIG9wdGlvbkl0ZW1zTGlzdCA9IFtdXG4gIH1cbiAgY29uc3Qgb3B0aW9ucyA9IChzZWxlY3RzPy52YWx1ZSAmJiBzZWxlY3RzPy52YWx1ZT8uW3NlbGVjdEtleV0pIHx8IChzZWxlY3RzPy52YWx1ZSAmJiBzZWxlY3RzPy52YWx1ZT8uW2Ake2NvbmZpZy5tZXRhQ29kZX1MaXN0VmFsdWVgXSkgfHwgKHNlbGVjdHM/LnZhbHVlICYmIHNlbGVjdHM/LnZhbHVlPy5bcmVmZXJlbmNlT3B0aW9uc10pIHx8IG9wdGlvbkl0ZW1zTGlzdCB8fCBbXVxuICByZXR1cm4gb3B0aW9uc1xuICAvLyBjb25zdCBkaXNhYmxlZCA9IGNhbGNEaXNhYmxlKGNvbmZpZywgcHJvcHMubW9kZSlcbiAgLy8gaWYgKGRpc2FibGVkKSB7XG4gIC8vICAgcmV0dXJuIG9wdGlvbnNcbiAgLy8gfSBlbHNlIHtcbiAgLy8gICByZXR1cm4gb3B0aW9ucy5maWx0ZXIoaXRlbSA9PiAhKGl0ZW0uY29sdW1uU3RhdHVzID09ICcwJyB8fCBpdGVtLmNvbHVtblN0YXR1cyA9PSAnMicpKVxuICAvLyB9XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2FycmF5L2lzLWFycmF5XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvY29uY2F0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZW5kcy13aXRoXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvZmluZFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL2Zvci1lYWNoXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvaW5zdGFuY2UvaW5kZXgtb2ZcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9tYXBcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9yZWR1Y2VcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9pbnN0YW5jZS9zbGljZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJjb3JlLWpzLXB1cmUvc3RhYmxlL2luc3RhbmNlL3RyaW1cIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9vYmplY3QvY3JlYXRlXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImNvcmUtanMtcHVyZS9zdGFibGUvb2JqZWN0L2tleXNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiY29yZS1qcy1wdXJlL3N0YWJsZS9wYXJzZS1pbnRcIik7IiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5pcy1hcnJheScpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGguQXJyYXkuaXNBcnJheTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0Jyk7XG52YXIgZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QoJ0FycmF5JywgJ2NvbmNhdCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5maW5kJyk7XG52YXIgZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QoJ0FycmF5JywgJ2ZpbmQnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2gnKTtcbnZhciBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCgnQXJyYXknLCAnZm9yRWFjaCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5pbmRleC1vZicpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdBcnJheScsICdpbmRleE9mJyk7XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi8uLi9tb2R1bGVzL2VzLmFycmF5Lm1hcCcpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdBcnJheScsICdtYXAnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlJyk7XG52YXIgZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCA9IHJlcXVpcmUoJy4uLy4uLy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4tcHJvdG90eXBlLW1ldGhvZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QoJ0FycmF5JywgJ3JlZHVjZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vLi4vbW9kdWxlcy9lcy5hcnJheS5zbGljZScpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdBcnJheScsICdzbGljZScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIG1ldGhvZCA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvY29uY2F0Jyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmNvbmNhdDtcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXNQcm90b3R5cGVPZihBcnJheVByb3RvdHlwZSwgaXQpICYmIG93biA9PT0gQXJyYXlQcm90b3R5cGUuY29uY2F0KSA/IG1ldGhvZCA6IG93bjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vc3RyaW5nL3ZpcnR1YWwvZW5kcy13aXRoJyk7XG5cbnZhciBTdHJpbmdQcm90b3R5cGUgPSBTdHJpbmcucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQuZW5kc1dpdGg7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N0cmluZycgfHwgaXQgPT09IFN0cmluZ1Byb3RvdHlwZVxuICAgIHx8IChpc1Byb3RvdHlwZU9mKFN0cmluZ1Byb3RvdHlwZSwgaXQpICYmIG93biA9PT0gU3RyaW5nUHJvdG90eXBlLmVuZHNXaXRoKSA/IG1ldGhvZCA6IG93bjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9maW5kJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmZpbmQ7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLmZpbmQpID8gbWV0aG9kIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBtZXRob2QgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL2luZGV4LW9mJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LmluZGV4T2Y7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLmluZGV4T2YpID8gbWV0aG9kIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBtZXRob2QgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL21hcCcpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5tYXA7XG4gIHJldHVybiBpdCA9PT0gQXJyYXlQcm90b3R5cGUgfHwgKGlzUHJvdG90eXBlT2YoQXJyYXlQcm90b3R5cGUsIGl0KSAmJiBvd24gPT09IEFycmF5UHJvdG90eXBlLm1hcCkgPyBtZXRob2QgOiBvd247XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi8uLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIG1ldGhvZCA9IHJlcXVpcmUoJy4uL2FycmF5L3ZpcnR1YWwvcmVkdWNlJyk7XG5cbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG93biA9IGl0LnJlZHVjZTtcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXNQcm90b3R5cGVPZihBcnJheVByb3RvdHlwZSwgaXQpICYmIG93biA9PT0gQXJyYXlQcm90b3R5cGUucmVkdWNlKSA/IG1ldGhvZCA6IG93bjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgbWV0aG9kID0gcmVxdWlyZSgnLi4vYXJyYXkvdmlydHVhbC9zbGljZScpO1xuXG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBvd24gPSBpdC5zbGljZTtcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXNQcm90b3R5cGVPZihBcnJheVByb3RvdHlwZSwgaXQpICYmIG93biA9PT0gQXJyYXlQcm90b3R5cGUuc2xpY2UpID8gbWV0aG9kIDogb3duO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBtZXRob2QgPSByZXF1aXJlKCcuLi9zdHJpbmcvdmlydHVhbC90cmltJyk7XG5cbnZhciBTdHJpbmdQcm90b3R5cGUgPSBTdHJpbmcucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQudHJpbTtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3RyaW5nJyB8fCBpdCA9PT0gU3RyaW5nUHJvdG90eXBlXG4gICAgfHwgKGlzUHJvdG90eXBlT2YoU3RyaW5nUHJvdG90eXBlLCBpdCkgJiYgb3duID09PSBTdHJpbmdQcm90b3R5cGUudHJpbSkgPyBtZXRob2QgOiBvd247XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lcy5vYmplY3QuY3JlYXRlJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9wYXRoJyk7XG5cbnZhciBPYmplY3QgPSBwYXRoLk9iamVjdDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjcmVhdGUoUCwgRCkge1xuICByZXR1cm4gT2JqZWN0LmNyZWF0ZShQLCBEKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL2VzLm9iamVjdC5rZXlzJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9wYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aC5PYmplY3Qua2V5cztcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucGFyc2UtaW50Jyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aC5wYXJzZUludDtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuc3RyaW5nLmVuZHMtd2l0aCcpO1xudmFyIGdldEJ1aWx0SW5Qcm90b3R5cGVNZXRob2QgPSByZXF1aXJlKCcuLi8uLi8uLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLXByb3RvdHlwZS1tZXRob2QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kKCdTdHJpbmcnLCAnZW5kc1dpdGgnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnJlcXVpcmUoJy4uLy4uLy4uL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0nKTtcbnZhciBnZXRCdWlsdEluUHJvdG90eXBlTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1wcm90b3R5cGUtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCgnU3RyaW5nJywgJ3RyaW0nKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgdHJ5VG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZycpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYEFzc2VydDogSXNDYWxsYWJsZShhcmd1bWVudCkgaXMgdHJ1ZWBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGFyZ3VtZW50O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IFR5cGUoYXJndW1lbnQpIGlzIE9iamVjdGBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChpc09iamVjdChhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJFN0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhbiBvYmplY3QnKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZm9yRWFjaDtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcblxudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdmb3JFYWNoJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5mb3JlYWNoXG5tb2R1bGUuZXhwb3J0cyA9ICFTVFJJQ1RfTUVUSE9EID8gZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJGZvckVhY2godGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LXByb3RvdHlwZS1mb3JlYWNoIC0tIHNhZmVcbn0gOiBbXS5mb3JFYWNoO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBpbmRleE9mLCBpbmNsdWRlcyB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKE8pO1xuICAgIGlmIChsZW5ndGggPT09IDApIHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTtcbiAgICB2YXIgdmFsdWU7XG4gICAgLy8gQXJyYXkjaW5jbHVkZXMgdXNlcyBTYW1lVmFsdWVaZXJvIGVxdWFsaXR5IGFsZ29yaXRobVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9PSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgICAgaWYgKHZhbHVlICE9PSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5cbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmb3JFYWNoLCBtYXAsIGZpbHRlciwgc29tZSwgZXZlcnksIGZpbmQsIGZpbmRJbmRleCwgZmlsdGVyUmVqZWN0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PT0gMTtcbiAgdmFyIElTX0ZJTFRFUiA9IFRZUEUgPT09IDI7XG4gIHZhciBJU19TT01FID0gVFlQRSA9PT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PT0gNDtcbiAgdmFyIElTX0ZJTkRfSU5ERVggPSBUWVBFID09PSA2O1xuICB2YXIgSVNfRklMVEVSX1JFSkVDVCA9IFRZUEUgPT09IDc7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT09IDUgfHwgSVNfRklORF9JTkRFWDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgY2FsbGJhY2tmbiwgdGhhdCwgc3BlY2lmaWNDcmVhdGUpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKHNlbGYpO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCB0aGF0KTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBjcmVhdGUgPSBzcGVjaWZpY0NyZWF0ZSB8fCBhcnJheVNwZWNpZXNDcmVhdGU7XG4gICAgdmFyIHRhcmdldCA9IElTX01BUCA/IGNyZWF0ZSgkdGhpcywgbGVuZ3RoKSA6IElTX0ZJTFRFUiB8fCBJU19GSUxURVJfUkVKRUNUID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsdWUsIHJlc3VsdDtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHtcbiAgICAgIHZhbHVlID0gc2VsZltpbmRleF07XG4gICAgICByZXN1bHQgPSBib3VuZEZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSB0YXJnZXRbaW5kZXhdID0gcmVzdWx0OyAvLyBtYXBcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0KSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiB0cnVlOyAgICAgICAgICAgICAgLy8gc29tZVxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIHZhbHVlOyAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgIC8vIGZpbmRJbmRleFxuICAgICAgICAgIGNhc2UgMjogcHVzaCh0YXJnZXQsIHZhbHVlKTsgICAgICAvLyBmaWx0ZXJcbiAgICAgICAgfSBlbHNlIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgNDogcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAvLyBldmVyeVxuICAgICAgICAgIGNhc2UgNzogcHVzaCh0YXJnZXQsIHZhbHVlKTsgICAgICAvLyBmaWx0ZXJSZWplY3RcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gSVNfRklORF9JTkRFWCA/IC0xIDogSVNfU09NRSB8fCBJU19FVkVSWSA/IElTX0VWRVJZIDogdGFyZ2V0O1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbiAgZm9yRWFjaDogY3JlYXRlTWV0aG9kKDApLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuICBtYXA6IGNyZWF0ZU1ldGhvZCgxKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWx0ZXJcbiAgZmlsdGVyOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuc29tZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnNvbWVcbiAgc29tZTogY3JlYXRlTWV0aG9kKDMpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmV2ZXJ5YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZXZlcnlcbiAgZXZlcnk6IGNyZWF0ZU1ldGhvZCg0KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZFxuICBmaW5kOiBjcmVhdGVNZXRob2QoNSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZEluZGV4YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZEluZGV4XG4gIGZpbmRJbmRleDogY3JlYXRlTWV0aG9kKDYpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlclJlamVjdGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWFycmF5LWZpbHRlcmluZ1xuICBmaWx0ZXJSZWplY3Q6IGNyZWF0ZU1ldGhvZCg3KVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbicpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICAvLyBXZSBjYW4ndCB1c2UgdGhpcyBmZWF0dXJlIGRldGVjdGlvbiBpbiBWOCBzaW5jZSBpdCBjYXVzZXNcbiAgLy8gZGVvcHRpbWl6YXRpb24gYW5kIHNlcmlvdXMgcGVyZm9ybWFuY2UgZGVncmFkYXRpb25cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3N1xuICByZXR1cm4gVjhfVkVSU0lPTiA+PSA1MSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcnJheSA9IFtdO1xuICAgIHZhciBjb25zdHJ1Y3RvciA9IGFycmF5LmNvbnN0cnVjdG9yID0ge307XG4gICAgY29uc3RydWN0b3JbU1BFQ0lFU10gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4geyBmb286IDEgfTtcbiAgICB9O1xuICAgIHJldHVybiBhcnJheVtNRVRIT0RfTkFNRV0oQm9vbGVhbikuZm9vICE9PSAxO1xuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUsIGFyZ3VtZW50KSB7XG4gIHZhciBtZXRob2QgPSBbXVtNRVRIT0RfTkFNRV07XG4gIHJldHVybiAhIW1ldGhvZCAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY2FsbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICAgIG1ldGhvZC5jYWxsKG51bGwsIGFyZ3VtZW50IHx8IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbnZhciBSRURVQ0VfRU1QVFkgPSAnUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSc7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyByZWR1Y2UsIHJlZHVjZVJpZ2h0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoSVNfUklHSFQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBjYWxsYmFja2ZuLCBhcmd1bWVudHNMZW5ndGgsIG1lbW8pIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KHRoYXQpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gICAgYUNhbGxhYmxlKGNhbGxiYWNrZm4pO1xuICAgIGlmIChsZW5ndGggPT09IDAgJiYgYXJndW1lbnRzTGVuZ3RoIDwgMikgdGhyb3cgbmV3ICRUeXBlRXJyb3IoUkVEVUNFX0VNUFRZKTtcbiAgICB2YXIgaW5kZXggPSBJU19SSUdIVCA/IGxlbmd0aCAtIDEgOiAwO1xuICAgIHZhciBpID0gSVNfUklHSFQgPyAtMSA6IDE7XG4gICAgaWYgKGFyZ3VtZW50c0xlbmd0aCA8IDIpIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoaW5kZXggaW4gc2VsZikge1xuICAgICAgICBtZW1vID0gc2VsZltpbmRleF07XG4gICAgICAgIGluZGV4ICs9IGk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaW5kZXggKz0gaTtcbiAgICAgIGlmIChJU19SSUdIVCA/IGluZGV4IDwgMCA6IGxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihSRURVQ0VfRU1QVFkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKDtJU19SSUdIVCA/IGluZGV4ID49IDAgOiBsZW5ndGggPiBpbmRleDsgaW5kZXggKz0gaSkgaWYgKGluZGV4IGluIHNlbGYpIHtcbiAgICAgIG1lbW8gPSBjYWxsYmFja2ZuKG1lbW8sIHNlbGZbaW5kZXhdLCBpbmRleCwgTyk7XG4gICAgfVxuICAgIHJldHVybiBtZW1vO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUucmVkdWNlYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmVkdWNlXG4gIGxlZnQ6IGNyZWF0ZU1ldGhvZChmYWxzZSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5yZWR1Y2VyaWdodFxuICByaWdodDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVuY3VycnlUaGlzKFtdLnNsaWNlKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jb25zdHJ1Y3RvcicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xudmFyICRBcnJheSA9IEFycmF5O1xuXG4vLyBhIHBhcnQgb2YgYEFycmF5U3BlY2llc0NyZWF0ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5c3BlY2llc2NyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWxBcnJheSkge1xuICB2YXIgQztcbiAgaWYgKGlzQXJyYXkob3JpZ2luYWxBcnJheSkpIHtcbiAgICBDID0gb3JpZ2luYWxBcnJheS5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmIChpc0NvbnN0cnVjdG9yKEMpICYmIChDID09PSAkQXJyYXkgfHwgaXNBcnJheShDLnByb3RvdHlwZSkpKSBDID0gdW5kZWZpbmVkO1xuICAgIGVsc2UgaWYgKGlzT2JqZWN0KEMpKSB7XG4gICAgICBDID0gQ1tTUEVDSUVTXTtcbiAgICAgIGlmIChDID09PSBudWxsKSBDID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSByZXR1cm4gQyA9PT0gdW5kZWZpbmVkID8gJEFycmF5IDogQztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYXJyYXlTcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG4vLyBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5LCBsZW5ndGgpIHtcbiAgcmV0dXJuIG5ldyAoYXJyYXlTcGVjaWVzQ29uc3RydWN0b3Iob3JpZ2luYWxBcnJheSkpKGxlbmd0aCA9PT0gMCA/IDAgOiBsZW5ndGgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIHRvU3RyaW5nID0gdW5jdXJyeVRoaXMoe30udG9TdHJpbmcpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gc3RyaW5nU2xpY2UodG9TdHJpbmcoaXQpLCA4LCAtMSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZlJhdyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIENPUlJFQ1RfQVJHVU1FTlRTID0gY2xhc3NvZlJhdyhmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGl0W2tleV07XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbi8vIGdldHRpbmcgdGFnIGZyb20gRVM2KyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2Bcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8gY2xhc3NvZlJhdyA6IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgTywgdGFnLCByZXN1bHQ7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gJ1VuZGVmaW5lZCcgOiBpdCA9PT0gbnVsbCA/ICdOdWxsJ1xuICAgIC8vIEBAdG9TdHJpbmdUYWcgY2FzZVxuICAgIDogdHlwZW9mICh0YWcgPSB0cnlHZXQoTyA9ICRPYmplY3QoaXQpLCBUT19TVFJJTkdfVEFHKSkgPT0gJ3N0cmluZycgPyB0YWdcbiAgICAvLyBidWlsdGluVGFnIGNhc2VcbiAgICA6IENPUlJFQ1RfQVJHVU1FTlRTID8gY2xhc3NvZlJhdyhPKVxuICAgIC8vIEVTMyBhcmd1bWVudHMgZmFsbGJhY2tcbiAgICA6IChyZXN1bHQgPSBjbGFzc29mUmF3KE8pKSA9PT0gJ09iamVjdCcgJiYgaXNDYWxsYWJsZShPLmNhbGxlZSkgPyAnQXJndW1lbnRzJyA6IHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBNQVRDSCA9IHdlbGxLbm93blN5bWJvbCgnbWF0Y2gnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUpIHtcbiAgdmFyIHJlZ2V4cCA9IC8uLztcbiAgdHJ5IHtcbiAgICAnLy4vJ1tNRVRIT0RfTkFNRV0ocmVnZXhwKTtcbiAgfSBjYXRjaCAoZXJyb3IxKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlZ2V4cFtNQVRDSF0gPSBmYWxzZTtcbiAgICAgIHJldHVybiAnLy4vJ1tNRVRIT0RfTkFNRV0ocmVnZXhwKTtcbiAgICB9IGNhdGNoIChlcnJvcjIpIHsgLyogZW1wdHkgKi8gfVxuICB9IHJldHVybiBmYWxzZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwga2V5LCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIHJldHVybiBvYmplY3Q7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIGlmIChERVNDUklQVE9SUykgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3QsIGtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDAsIHZhbHVlKSk7XG4gIGVsc2Ugb2JqZWN0W2tleV0gPSB2YWx1ZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICB0cnkge1xuICAgIGRlZmluZVByb3BlcnR5KGdsb2JhbFRoaXMsIGtleSwgeyB2YWx1ZTogdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsVGhpc1trZXldID0gdmFsdWU7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBEZXRlY3QgSUU4J3MgaW5jb21wbGV0ZSBkZWZpbmVQcm9wZXJ0eSBpbXBsZW1lbnRhdGlvblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIDEsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pWzFdICE9PSA3O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgZG9jdW1lbnQgPSBnbG9iYWxUaGlzLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgRVhJU1RTID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gRVhJU1RTID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gMHgxRkZGRkZGRkZGRkZGRjsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPiBNQVhfU0FGRV9JTlRFR0VSKSB0aHJvdyAkVHlwZUVycm9yKCdNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIElFOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSBbXG4gICdjb25zdHJ1Y3RvcicsXG4gICdoYXNPd25Qcm9wZXJ0eScsXG4gICdpc1Byb3RvdHlwZU9mJyxcbiAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgJ3RvTG9jYWxlU3RyaW5nJyxcbiAgJ3RvU3RyaW5nJyxcbiAgJ3ZhbHVlT2YnXG5dO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEVOVklST05NRU5UID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gRU5WSVJPTk1FTlQgPT09ICdOT0RFJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbnZhciBuYXZpZ2F0b3IgPSBnbG9iYWxUaGlzLm5hdmlnYXRvcjtcbnZhciB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudDtcblxubW9kdWxlLmV4cG9ydHMgPSB1c2VyQWdlbnQgPyBTdHJpbmcodXNlckFnZW50KSA6ICcnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdXNlci1hZ2VudCcpO1xuXG52YXIgcHJvY2VzcyA9IGdsb2JhbFRoaXMucHJvY2VzcztcbnZhciBEZW5vID0gZ2xvYmFsVGhpcy5EZW5vO1xudmFyIHZlcnNpb25zID0gcHJvY2VzcyAmJiBwcm9jZXNzLnZlcnNpb25zIHx8IERlbm8gJiYgRGVuby52ZXJzaW9uO1xudmFyIHY4ID0gdmVyc2lvbnMgJiYgdmVyc2lvbnMudjg7XG52YXIgbWF0Y2gsIHZlcnNpb247XG5cbmlmICh2OCkge1xuICBtYXRjaCA9IHY4LnNwbGl0KCcuJyk7XG4gIC8vIGluIG9sZCBDaHJvbWUsIHZlcnNpb25zIG9mIFY4IGlzbid0IFY4ID0gQ2hyb21lIC8gMTBcbiAgLy8gYnV0IHRoZWlyIGNvcnJlY3QgdmVyc2lvbnMgYXJlIG5vdCBpbnRlcmVzdGluZyBmb3IgdXNcbiAgdmVyc2lvbiA9IG1hdGNoWzBdID4gMCAmJiBtYXRjaFswXSA8IDQgPyAxIDogKyhtYXRjaFswXSArIG1hdGNoWzFdKTtcbn1cblxuLy8gQnJvd3NlckZTIE5vZGVKUyBgcHJvY2Vzc2AgcG9seWZpbGwgaW5jb3JyZWN0bHkgc2V0IGAudjhgIHRvIGAwLjBgXG4vLyBzbyBjaGVjayBgdXNlckFnZW50YCBldmVuIGlmIGAudjhgIGV4aXN0cywgYnV0IDBcbmlmICghdmVyc2lvbiAmJiB1c2VyQWdlbnQpIHtcbiAgbWF0Y2ggPSB1c2VyQWdlbnQubWF0Y2goL0VkZ2VcXC8oXFxkKykvKTtcbiAgaWYgKCFtYXRjaCB8fCBtYXRjaFsxXSA+PSA3NCkge1xuICAgIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9DaHJvbWVcXC8oXFxkKykvKTtcbiAgICBpZiAobWF0Y2gpIHZlcnNpb24gPSArbWF0Y2hbMV07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2ZXJzaW9uO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZ2xvYmFsIEJ1biwgRGVubyAtLSBkZXRlY3Rpb24gKi9cbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbnZhciB1c2VyQWdlbnRTdGFydHNXaXRoID0gZnVuY3Rpb24gKHN0cmluZykge1xuICByZXR1cm4gdXNlckFnZW50LnNsaWNlKDAsIHN0cmluZy5sZW5ndGgpID09PSBzdHJpbmc7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IChmdW5jdGlvbiAoKSB7XG4gIGlmICh1c2VyQWdlbnRTdGFydHNXaXRoKCdCdW4vJykpIHJldHVybiAnQlVOJztcbiAgaWYgKHVzZXJBZ2VudFN0YXJ0c1dpdGgoJ0Nsb3VkZmxhcmUtV29ya2VycycpKSByZXR1cm4gJ0NMT1VERkxBUkUnO1xuICBpZiAodXNlckFnZW50U3RhcnRzV2l0aCgnRGVuby8nKSkgcmV0dXJuICdERU5PJztcbiAgaWYgKHVzZXJBZ2VudFN0YXJ0c1dpdGgoJ05vZGUuanMvJykpIHJldHVybiAnTk9ERSc7XG4gIGlmIChnbG9iYWxUaGlzLkJ1biAmJiB0eXBlb2YgQnVuLnZlcnNpb24gPT0gJ3N0cmluZycpIHJldHVybiAnQlVOJztcbiAgaWYgKGdsb2JhbFRoaXMuRGVubyAmJiB0eXBlb2YgRGVuby52ZXJzaW9uID09ICdvYmplY3QnKSByZXR1cm4gJ0RFTk8nO1xuICBpZiAoY2xhc3NvZihnbG9iYWxUaGlzLnByb2Nlc3MpID09PSAncHJvY2VzcycpIHJldHVybiAnTk9ERSc7XG4gIGlmIChnbG9iYWxUaGlzLndpbmRvdyAmJiBnbG9iYWxUaGlzLmRvY3VtZW50KSByZXR1cm4gJ0JST1dTRVInO1xuICByZXR1cm4gJ1JFU1QnO1xufSkoKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgYXBwbHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHknKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xuLy8gYWRkIGRlYnVnZ2luZyBpbmZvXG5yZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbnZhciB3cmFwQ29uc3RydWN0b3IgPSBmdW5jdGlvbiAoTmF0aXZlQ29uc3RydWN0b3IpIHtcbiAgdmFyIFdyYXBwZXIgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgV3JhcHBlcikge1xuICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBOYXRpdmVDb25zdHJ1Y3RvcigpO1xuICAgICAgICBjYXNlIDE6IHJldHVybiBuZXcgTmF0aXZlQ29uc3RydWN0b3IoYSk7XG4gICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBOYXRpdmVDb25zdHJ1Y3RvcihhLCBiKTtcbiAgICAgIH0gcmV0dXJuIG5ldyBOYXRpdmVDb25zdHJ1Y3RvcihhLCBiLCBjKTtcbiAgICB9IHJldHVybiBhcHBseShOYXRpdmVDb25zdHJ1Y3RvciwgdGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgV3JhcHBlci5wcm90b3R5cGUgPSBOYXRpdmVDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIHJldHVybiBXcmFwcGVyO1xufTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgICAgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5kb250Q2FsbEdldFNldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiAgb3B0aW9ucy5uYW1lICAgICAgICAgICAtIHRoZSAubmFtZSBvZiB0aGUgZnVuY3Rpb24gaWYgaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGtleVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdGlvbnMsIHNvdXJjZSkge1xuICB2YXIgVEFSR0VUID0gb3B0aW9ucy50YXJnZXQ7XG4gIHZhciBHTE9CQUwgPSBvcHRpb25zLmdsb2JhbDtcbiAgdmFyIFNUQVRJQyA9IG9wdGlvbnMuc3RhdDtcbiAgdmFyIFBST1RPID0gb3B0aW9ucy5wcm90bztcblxuICB2YXIgbmF0aXZlU291cmNlID0gR0xPQkFMID8gZ2xvYmFsVGhpcyA6IFNUQVRJQyA/IGdsb2JhbFRoaXNbVEFSR0VUXSA6IGdsb2JhbFRoaXNbVEFSR0VUXSAmJiBnbG9iYWxUaGlzW1RBUkdFVF0ucHJvdG90eXBlO1xuXG4gIHZhciB0YXJnZXQgPSBHTE9CQUwgPyBwYXRoIDogcGF0aFtUQVJHRVRdIHx8IGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShwYXRoLCBUQVJHRVQsIHt9KVtUQVJHRVRdO1xuICB2YXIgdGFyZ2V0UHJvdG90eXBlID0gdGFyZ2V0LnByb3RvdHlwZTtcblxuICB2YXIgRk9SQ0VELCBVU0VfTkFUSVZFLCBWSVJUVUFMX1BST1RPVFlQRTtcbiAgdmFyIGtleSwgc291cmNlUHJvcGVydHksIHRhcmdldFByb3BlcnR5LCBuYXRpdmVQcm9wZXJ0eSwgcmVzdWx0UHJvcGVydHksIGRlc2NyaXB0b3I7XG5cbiAgZm9yIChrZXkgaW4gc291cmNlKSB7XG4gICAgRk9SQ0VEID0gaXNGb3JjZWQoR0xPQkFMID8ga2V5IDogVEFSR0VUICsgKFNUQVRJQyA/ICcuJyA6ICcjJykgKyBrZXksIG9wdGlvbnMuZm9yY2VkKTtcbiAgICAvLyBjb250YWlucyBpbiBuYXRpdmVcbiAgICBVU0VfTkFUSVZFID0gIUZPUkNFRCAmJiBuYXRpdmVTb3VyY2UgJiYgaGFzT3duKG5hdGl2ZVNvdXJjZSwga2V5KTtcblxuICAgIHRhcmdldFByb3BlcnR5ID0gdGFyZ2V0W2tleV07XG5cbiAgICBpZiAoVVNFX05BVElWRSkgaWYgKG9wdGlvbnMuZG9udENhbGxHZXRTZXQpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobmF0aXZlU291cmNlLCBrZXkpO1xuICAgICAgbmF0aXZlUHJvcGVydHkgPSBkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IudmFsdWU7XG4gICAgfSBlbHNlIG5hdGl2ZVByb3BlcnR5ID0gbmF0aXZlU291cmNlW2tleV07XG5cbiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIGltcGxlbWVudGF0aW9uXG4gICAgc291cmNlUHJvcGVydHkgPSAoVVNFX05BVElWRSAmJiBuYXRpdmVQcm9wZXJ0eSkgPyBuYXRpdmVQcm9wZXJ0eSA6IHNvdXJjZVtrZXldO1xuXG4gICAgaWYgKCFGT1JDRUQgJiYgIVBST1RPICYmIHR5cGVvZiB0YXJnZXRQcm9wZXJ0eSA9PSB0eXBlb2Ygc291cmNlUHJvcGVydHkpIGNvbnRpbnVlO1xuXG4gICAgLy8gYmluZCBtZXRob2RzIHRvIGdsb2JhbCBmb3IgY2FsbGluZyBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgaWYgKG9wdGlvbnMuYmluZCAmJiBVU0VfTkFUSVZFKSByZXN1bHRQcm9wZXJ0eSA9IGJpbmQoc291cmNlUHJvcGVydHksIGdsb2JhbFRoaXMpO1xuICAgIC8vIHdyYXAgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgcHJldmVudCBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvblxuICAgIGVsc2UgaWYgKG9wdGlvbnMud3JhcCAmJiBVU0VfTkFUSVZFKSByZXN1bHRQcm9wZXJ0eSA9IHdyYXBDb25zdHJ1Y3Rvcihzb3VyY2VQcm9wZXJ0eSk7XG4gICAgLy8gbWFrZSBzdGF0aWMgdmVyc2lvbnMgZm9yIHByb3RvdHlwZSBtZXRob2RzXG4gICAgZWxzZSBpZiAoUFJPVE8gJiYgaXNDYWxsYWJsZShzb3VyY2VQcm9wZXJ0eSkpIHJlc3VsdFByb3BlcnR5ID0gdW5jdXJyeVRoaXMoc291cmNlUHJvcGVydHkpO1xuICAgIC8vIGRlZmF1bHQgY2FzZVxuICAgIGVsc2UgcmVzdWx0UHJvcGVydHkgPSBzb3VyY2VQcm9wZXJ0eTtcblxuICAgIC8vIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgICBpZiAob3B0aW9ucy5zaGFtIHx8IChzb3VyY2VQcm9wZXJ0eSAmJiBzb3VyY2VQcm9wZXJ0eS5zaGFtKSB8fCAodGFyZ2V0UHJvcGVydHkgJiYgdGFyZ2V0UHJvcGVydHkuc2hhbSkpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShyZXN1bHRQcm9wZXJ0eSwgJ3NoYW0nLCB0cnVlKTtcbiAgICB9XG5cbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodGFyZ2V0LCBrZXksIHJlc3VsdFByb3BlcnR5KTtcblxuICAgIGlmIChQUk9UTykge1xuICAgICAgVklSVFVBTF9QUk9UT1RZUEUgPSBUQVJHRVQgKyAnUHJvdG90eXBlJztcbiAgICAgIGlmICghaGFzT3duKHBhdGgsIFZJUlRVQUxfUFJPVE9UWVBFKSkge1xuICAgICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocGF0aCwgVklSVFVBTF9QUk9UT1RZUEUsIHt9KTtcbiAgICAgIH1cbiAgICAgIC8vIGV4cG9ydCB2aXJ0dWFsIHByb3RvdHlwZSBtZXRob2RzXG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocGF0aFtWSVJUVUFMX1BST1RPVFlQRV0sIGtleSwgc291cmNlUHJvcGVydHkpO1xuICAgICAgLy8gZXhwb3J0IHJlYWwgcHJvdG90eXBlIG1ldGhvZHNcbiAgICAgIGlmIChvcHRpb25zLnJlYWwgJiYgdGFyZ2V0UHJvdG90eXBlICYmIChGT1JDRUQgfHwgIXRhcmdldFByb3RvdHlwZVtrZXldKSkge1xuICAgICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodGFyZ2V0UHJvdG90eXBlLCBrZXksIHNvdXJjZVByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhZXhlYygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBhcHBseSA9IEZ1bmN0aW9uUHJvdG90eXBlLmFwcGx5O1xudmFyIGNhbGwgPSBGdW5jdGlvblByb3RvdHlwZS5jYWxsO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tcmVmbGVjdCAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBSZWZsZWN0ID09ICdvYmplY3QnICYmIFJlZmxlY3QuYXBwbHkgfHwgKE5BVElWRV9CSU5EID8gY2FsbC5iaW5kKGFwcGx5KSA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbGwuYXBwbHkoYXBwbHksIGFyZ3VtZW50cyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgYmluZCA9IHVuY3VycnlUaGlzKHVuY3VycnlUaGlzLmJpbmQpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0KSB7XG4gIGFDYWxsYWJsZShmbik7XG4gIHJldHVybiB0aGF0ID09PSB1bmRlZmluZWQgPyBmbiA6IE5BVElWRV9CSU5EID8gYmluZChmbiwgdGhhdCkgOiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1mdW5jdGlvbi1wcm90b3R5cGUtYmluZCAtLSBzYWZlXG4gIHZhciB0ZXN0ID0gKGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSkuYmluZCgpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zIC0tIHNhZmVcbiAgcmV0dXJuIHR5cGVvZiB0ZXN0ICE9ICdmdW5jdGlvbicgfHwgdGVzdC5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgY2FsbCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9CSU5EID8gY2FsbC5iaW5kKGNhbGwpIDogZnVuY3Rpb24gKCkge1xuICByZXR1cm4gY2FsbC5hcHBseShjYWxsLCBhcmd1bWVudHMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciBnZXREZXNjcmlwdG9yID0gREVTQ1JJUFRPUlMgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxudmFyIEVYSVNUUyA9IGhhc093bihGdW5jdGlvblByb3RvdHlwZSwgJ25hbWUnKTtcbi8vIGFkZGl0aW9uYWwgcHJvdGVjdGlvbiBmcm9tIG1pbmlmaWVkIC8gbWFuZ2xlZCAvIGRyb3BwZWQgZnVuY3Rpb24gbmFtZXNcbnZhciBQUk9QRVIgPSBFWElTVFMgJiYgKGZ1bmN0aW9uIHNvbWV0aGluZygpIHsgLyogZW1wdHkgKi8gfSkubmFtZSA9PT0gJ3NvbWV0aGluZyc7XG52YXIgQ09ORklHVVJBQkxFID0gRVhJU1RTICYmICghREVTQ1JJUFRPUlMgfHwgKERFU0NSSVBUT1JTICYmIGdldERlc2NyaXB0b3IoRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJykuY29uZmlndXJhYmxlKSk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBFWElTVFM6IEVYSVNUUyxcbiAgUFJPUEVSOiBQUk9QRVIsXG4gIENPTkZJR1VSQUJMRTogQ09ORklHVVJBQkxFXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4pIHtcbiAgLy8gTmFzaG9ybiBidWc6XG4gIC8vICAgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzExMjhcbiAgLy8gICBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTEzMFxuICBpZiAoY2xhc3NvZlJhdyhmbikgPT09ICdGdW5jdGlvbicpIHJldHVybiB1bmN1cnJ5VGhpcyhmbik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBjYWxsID0gRnVuY3Rpb25Qcm90b3R5cGUuY2FsbDtcbnZhciB1bmN1cnJ5VGhpc1dpdGhCaW5kID0gTkFUSVZFX0JJTkQgJiYgRnVuY3Rpb25Qcm90b3R5cGUuYmluZC5iaW5kKGNhbGwsIGNhbGwpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9CSU5EID8gdW5jdXJyeVRoaXNXaXRoQmluZCA6IGZ1bmN0aW9uIChmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBjYWxsLmFwcGx5KGZuLCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENPTlNUUlVDVE9SLCBNRVRIT0QpIHtcbiAgdmFyIE5hbWVzcGFjZSA9IHBhdGhbQ09OU1RSVUNUT1IgKyAnUHJvdG90eXBlJ107XG4gIHZhciBwdXJlTWV0aG9kID0gTmFtZXNwYWNlICYmIE5hbWVzcGFjZVtNRVRIT0RdO1xuICBpZiAocHVyZU1ldGhvZCkgcmV0dXJuIHB1cmVNZXRob2Q7XG4gIHZhciBOYXRpdmVDb25zdHJ1Y3RvciA9IGdsb2JhbFRoaXNbQ09OU1RSVUNUT1JdO1xuICB2YXIgTmF0aXZlUHJvdG90eXBlID0gTmF0aXZlQ29uc3RydWN0b3IgJiYgTmF0aXZlQ29uc3RydWN0b3IucHJvdG90eXBlO1xuICByZXR1cm4gTmF0aXZlUHJvdG90eXBlICYmIE5hdGl2ZVByb3RvdHlwZVtNRVRIT0RdO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG52YXIgYUZ1bmN0aW9uID0gZnVuY3Rpb24gKHZhcmlhYmxlKSB7XG4gIHJldHVybiBpc0NhbGxhYmxlKHZhcmlhYmxlKSA/IHZhcmlhYmxlIDogdW5kZWZpbmVkO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZXNwYWNlLCBtZXRob2QpIHtcbiAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPCAyID8gYUZ1bmN0aW9uKHBhdGhbbmFtZXNwYWNlXSkgfHwgYUZ1bmN0aW9uKGdsb2JhbFRoaXNbbmFtZXNwYWNlXSlcbiAgICA6IHBhdGhbbmFtZXNwYWNlXSAmJiBwYXRoW25hbWVzcGFjZV1bbWV0aG9kXSB8fCBnbG9iYWxUaGlzW25hbWVzcGFjZV0gJiYgZ2xvYmFsVGhpc1tuYW1lc3BhY2VdW21ldGhvZF07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcblxuLy8gYEdldE1ldGhvZGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldG1ldGhvZFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoViwgUCkge1xuICB2YXIgZnVuYyA9IFZbUF07XG4gIHJldHVybiBpc051bGxPclVuZGVmaW5lZChmdW5jKSA/IHVuZGVmaW5lZCA6IGFDYWxsYWJsZShmdW5jKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT09IE1hdGggJiYgaXQ7XG59O1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxubW9kdWxlLmV4cG9ydHMgPVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tZ2xvYmFsLXRoaXMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2YgZ2xvYmFsVGhpcyA9PSAnb2JqZWN0JyAmJiBnbG9iYWxUaGlzKSB8fFxuICBjaGVjayh0eXBlb2Ygd2luZG93ID09ICdvYmplY3QnICYmIHdpbmRvdykgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtZ2xvYmFscyAtLSBzYWZlXG4gIGNoZWNrKHR5cGVvZiBzZWxmID09ICdvYmplY3QnICYmIHNlbGYpIHx8XG4gIGNoZWNrKHR5cGVvZiBnbG9iYWwgPT0gJ29iamVjdCcgJiYgZ2xvYmFsKSB8fFxuICBjaGVjayh0eXBlb2YgdGhpcyA9PSAnb2JqZWN0JyAmJiB0aGlzKSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmMgLS0gZmFsbGJhY2tcbiAgKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pKCkgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxudmFyIGhhc093blByb3BlcnR5ID0gdW5jdXJyeVRoaXMoe30uaGFzT3duUHJvcGVydHkpO1xuXG4vLyBgSGFzT3duUHJvcGVydHlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1oYXNvd25wcm9wZXJ0eVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1oYXNvd24gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaGFzT3duIHx8IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksIGtleSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ2RvY3VtZW50JywgJ2RvY3VtZW50RWxlbWVudCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rcyB0byBJRTggZm9yIGl0cyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGNyZWF0ZUVsZW1lbnQoJ2RpdicpLCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH1cbiAgfSkuYSAhPT0gNztcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcbnZhciBzcGxpdCA9IHVuY3VycnlUaGlzKCcnLnNwbGl0KTtcblxuLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3Ncbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyB0aHJvd3MgYW4gZXJyb3IgaW4gcmhpbm8sIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9yaGluby9pc3N1ZXMvMzQ2XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgLS0gc2FmZVxuICByZXR1cm4gISRPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKTtcbn0pID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBjbGFzc29mKGl0KSA9PT0gJ1N0cmluZycgPyBzcGxpdChpdCwgJycpIDogJE9iamVjdChpdCk7XG59IDogJE9iamVjdDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbnZhciBmdW5jdGlvblRvU3RyaW5nID0gdW5jdXJyeVRoaXMoRnVuY3Rpb24udG9TdHJpbmcpO1xuXG4vLyB0aGlzIGhlbHBlciBicm9rZW4gaW4gYGNvcmUtanNAMy40LjEtMy40LjRgLCBzbyB3ZSBjYW4ndCB1c2UgYHNoYXJlZGAgaGVscGVyXG5pZiAoIWlzQ2FsbGFibGUoc3RvcmUuaW5zcGVjdFNvdXJjZSkpIHtcbiAgc3RvcmUuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBmdW5jdGlvblRvU3RyaW5nKGl0KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZS5pbnNwZWN0U291cmNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxuLy8gYElzQXJyYXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2FycmF5XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktaXNhcnJheSAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gaXNBcnJheShhcmd1bWVudCkge1xuICByZXR1cm4gY2xhc3NvZihhcmd1bWVudCkgPT09ICdBcnJheSc7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1Jc0hUTUxEREEtaW50ZXJuYWwtc2xvdFxudmFyIGRvY3VtZW50QWxsID0gdHlwZW9mIGRvY3VtZW50ID09ICdvYmplY3QnICYmIGRvY3VtZW50LmFsbDtcblxuLy8gYElzQ2FsbGFibGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2NhbGxhYmxlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby10eXBlb2YtdW5kZWZpbmVkIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBkb2N1bWVudEFsbCA9PSAndW5kZWZpbmVkJyAmJiBkb2N1bWVudEFsbCAhPT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiB0eXBlb2YgYXJndW1lbnQgPT0gJ2Z1bmN0aW9uJyB8fCBhcmd1bWVudCA9PT0gZG9jdW1lbnRBbGw7XG59IDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiB0eXBlb2YgYXJndW1lbnQgPT0gJ2Z1bmN0aW9uJztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBub29wID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xudmFyIGNvbnN0cnVjdCA9IGdldEJ1aWx0SW4oJ1JlZmxlY3QnLCAnY29uc3RydWN0Jyk7XG52YXIgY29uc3RydWN0b3JSZWdFeHAgPSAvXlxccyooPzpjbGFzc3xmdW5jdGlvbilcXGIvO1xudmFyIGV4ZWMgPSB1bmN1cnJ5VGhpcyhjb25zdHJ1Y3RvclJlZ0V4cC5leGVjKTtcbnZhciBJTkNPUlJFQ1RfVE9fU1RSSU5HID0gIWNvbnN0cnVjdG9yUmVnRXhwLnRlc3Qobm9vcCk7XG5cbnZhciBpc0NvbnN0cnVjdG9yTW9kZXJuID0gZnVuY3Rpb24gaXNDb25zdHJ1Y3Rvcihhcmd1bWVudCkge1xuICBpZiAoIWlzQ2FsbGFibGUoYXJndW1lbnQpKSByZXR1cm4gZmFsc2U7XG4gIHRyeSB7XG4gICAgY29uc3RydWN0KG5vb3AsIFtdLCBhcmd1bWVudCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG52YXIgaXNDb25zdHJ1Y3RvckxlZ2FjeSA9IGZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoYXJndW1lbnQpIHtcbiAgaWYgKCFpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGZhbHNlO1xuICBzd2l0Y2ggKGNsYXNzb2YoYXJndW1lbnQpKSB7XG4gICAgY2FzZSAnQXN5bmNGdW5jdGlvbic6XG4gICAgY2FzZSAnR2VuZXJhdG9yRnVuY3Rpb24nOlxuICAgIGNhc2UgJ0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24nOiByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyB3ZSBjYW4ndCBjaGVjayAucHJvdG90eXBlIHNpbmNlIGNvbnN0cnVjdG9ycyBwcm9kdWNlZCBieSAuYmluZCBoYXZlbid0IGl0XG4gICAgLy8gYEZ1bmN0aW9uI3RvU3RyaW5nYCB0aHJvd3Mgb24gc29tZSBidWlsdC1pdCBmdW5jdGlvbiBpbiBzb21lIGxlZ2FjeSBlbmdpbmVzXG4gICAgLy8gKGZvciBleGFtcGxlLCBgRE9NUXVhZGAgYW5kIHNpbWlsYXIgaW4gRkY0MS0pXG4gICAgcmV0dXJuIElOQ09SUkVDVF9UT19TVFJJTkcgfHwgISFleGVjKGNvbnN0cnVjdG9yUmVnRXhwLCBpbnNwZWN0U291cmNlKGFyZ3VtZW50KSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cbmlzQ29uc3RydWN0b3JMZWdhY3kuc2hhbSA9IHRydWU7XG5cbi8vIGBJc0NvbnN0cnVjdG9yYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjb25zdHJ1Y3RvclxubW9kdWxlLmV4cG9ydHMgPSAhY29uc3RydWN0IHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGNhbGxlZDtcbiAgcmV0dXJuIGlzQ29uc3RydWN0b3JNb2Rlcm4oaXNDb25zdHJ1Y3Rvck1vZGVybi5jYWxsKVxuICAgIHx8ICFpc0NvbnN0cnVjdG9yTW9kZXJuKE9iamVjdClcbiAgICB8fCAhaXNDb25zdHJ1Y3Rvck1vZGVybihmdW5jdGlvbiAoKSB7IGNhbGxlZCA9IHRydWU7IH0pXG4gICAgfHwgY2FsbGVkO1xufSkgPyBpc0NvbnN0cnVjdG9yTGVnYWN5IDogaXNDb25zdHJ1Y3Rvck1vZGVybjtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIHJlcGxhY2VtZW50ID0gLyN8XFwucHJvdG90eXBlXFwuLztcblxudmFyIGlzRm9yY2VkID0gZnVuY3Rpb24gKGZlYXR1cmUsIGRldGVjdGlvbikge1xuICB2YXIgdmFsdWUgPSBkYXRhW25vcm1hbGl6ZShmZWF0dXJlKV07XG4gIHJldHVybiB2YWx1ZSA9PT0gUE9MWUZJTEwgPyB0cnVlXG4gICAgOiB2YWx1ZSA9PT0gTkFUSVZFID8gZmFsc2VcbiAgICA6IGlzQ2FsbGFibGUoZGV0ZWN0aW9uKSA/IGZhaWxzKGRldGVjdGlvbilcbiAgICA6ICEhZGV0ZWN0aW9uO1xufTtcblxudmFyIG5vcm1hbGl6ZSA9IGlzRm9yY2VkLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgcmV0dXJuIFN0cmluZyhzdHJpbmcpLnJlcGxhY2UocmVwbGFjZW1lbnQsICcuJykudG9Mb3dlckNhc2UoKTtcbn07XG5cbnZhciBkYXRhID0gaXNGb3JjZWQuZGF0YSA9IHt9O1xudmFyIE5BVElWRSA9IGlzRm9yY2VkLk5BVElWRSA9ICdOJztcbnZhciBQT0xZRklMTCA9IGlzRm9yY2VkLlBPTFlGSUxMID0gJ1AnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRm9yY2VkO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gd2UgY2FuJ3QgdXNlIGp1c3QgYGl0ID09IG51bGxgIHNpbmNlIG9mIGBkb2N1bWVudC5hbGxgIHNwZWNpYWwgY2FzZVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1Jc0hUTUxEREEtaW50ZXJuYWwtc2xvdC1hZWNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA9PT0gbnVsbCB8fCBpdCA9PT0gdW5kZWZpbmVkO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IGlzQ2FsbGFibGUoaXQpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gdHJ1ZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBNQVRDSCA9IHdlbGxLbm93blN5bWJvbCgnbWF0Y2gnKTtcblxuLy8gYElzUmVnRXhwYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNyZWdleHBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBpc1JlZ0V4cDtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiAoKGlzUmVnRXhwID0gaXRbTUFUQ0hdKSAhPT0gdW5kZWZpbmVkID8gISFpc1JlZ0V4cCA6IGNsYXNzb2YoaXQpID09PSAnUmVnRXhwJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIFVTRV9TWU1CT0xfQVNfVUlEID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VzZS1zeW1ib2wtYXMtdWlkJyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFVTRV9TWU1CT0xfQVNfVUlEID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N5bWJvbCc7XG59IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciAkU3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJyk7XG4gIHJldHVybiBpc0NhbGxhYmxlKCRTeW1ib2wpICYmIGlzUHJvdG90eXBlT2YoJFN5bWJvbC5wcm90b3R5cGUsICRPYmplY3QoaXQpKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG5cbi8vIGBMZW5ndGhPZkFycmF5TGlrZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWxlbmd0aG9mYXJyYXlsaWtlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgcmV0dXJuIHRvTGVuZ3RoKG9iai5sZW5ndGgpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYE1hdGgudHJ1bmNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1tYXRoLnRydW5jXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tbWF0aC10cnVuYyAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgudHJ1bmMgfHwgZnVuY3Rpb24gdHJ1bmMoeCkge1xuICB2YXIgbiA9ICt4O1xuICByZXR1cm4gKG4gPiAwID8gZmxvb3IgOiBjZWlsKShuKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNSZWdFeHAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcmVnZXhwJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNSZWdFeHAoaXQpKSB7XG4gICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJUaGUgbWV0aG9kIGRvZXNuJ3QgYWNjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnNcIik7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciB0cmltID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy10cmltJykudHJpbTtcbnZhciB3aGl0ZXNwYWNlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93aGl0ZXNwYWNlcycpO1xuXG52YXIgJHBhcnNlSW50ID0gZ2xvYmFsVGhpcy5wYXJzZUludDtcbnZhciBTeW1ib2wgPSBnbG9iYWxUaGlzLlN5bWJvbDtcbnZhciBJVEVSQVRPUiA9IFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3I7XG52YXIgaGV4ID0gL15bKy1dPzB4L2k7XG52YXIgZXhlYyA9IHVuY3VycnlUaGlzKGhleC5leGVjKTtcbnZhciBGT1JDRUQgPSAkcGFyc2VJbnQod2hpdGVzcGFjZXMgKyAnMDgnKSAhPT0gOCB8fCAkcGFyc2VJbnQod2hpdGVzcGFjZXMgKyAnMHgxNicpICE9PSAyMlxuICAvLyBNUyBFZGdlIDE4LSBicm9rZW4gd2l0aCBib3hlZCBzeW1ib2xzXG4gIHx8IChJVEVSQVRPUiAmJiAhZmFpbHMoZnVuY3Rpb24gKCkgeyAkcGFyc2VJbnQoT2JqZWN0KElURVJBVE9SKSk7IH0pKTtcblxuLy8gYHBhcnNlSW50YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcGFyc2VpbnQtc3RyaW5nLXJhZGl4XG5tb2R1bGUuZXhwb3J0cyA9IEZPUkNFRCA/IGZ1bmN0aW9uIHBhcnNlSW50KHN0cmluZywgcmFkaXgpIHtcbiAgdmFyIFMgPSB0cmltKHRvU3RyaW5nKHN0cmluZykpO1xuICByZXR1cm4gJHBhcnNlSW50KFMsIChyYWRpeCA+Pj4gMCkgfHwgKGV4ZWMoaGV4LCBTKSA/IDE2IDogMTApKTtcbn0gOiAkcGFyc2VJbnQ7XG4iLCIndXNlIHN0cmljdCc7XG4vKiBnbG9iYWwgQWN0aXZlWE9iamVjdCAtLSBvbGQgSUUsIFdTSCAqL1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGRlZmluZVByb3BlcnRpZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBkb2N1bWVudENyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xuXG52YXIgR1QgPSAnPic7XG52YXIgTFQgPSAnPCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgU0NSSVBUID0gJ3NjcmlwdCc7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBFbXB0eUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG52YXIgc2NyaXB0VGFnID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIExUICsgU0NSSVBUICsgR1QgKyBjb250ZW50ICsgTFQgKyAnLycgKyBTQ1JJUFQgKyBHVDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBBY3RpdmVYIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCA9IGZ1bmN0aW9uIChhY3RpdmVYRG9jdW1lbnQpIHtcbiAgYWN0aXZlWERvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnJykpO1xuICBhY3RpdmVYRG9jdW1lbnQuY2xvc2UoKTtcbiAgdmFyIHRlbXAgPSBhY3RpdmVYRG9jdW1lbnQucGFyZW50V2luZG93Lk9iamVjdDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudCAtLSBhdm9pZCBtZW1vcnkgbGVha1xuICBhY3RpdmVYRG9jdW1lbnQgPSBudWxsO1xuICByZXR1cm4gdGVtcDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSBkb2N1bWVudENyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICB2YXIgSlMgPSAnamF2YScgKyBTQ1JJUFQgKyAnOic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGh0bWwuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzQ3NVxuICBpZnJhbWUuc3JjID0gU3RyaW5nKEpTKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJ2RvY3VtZW50LkY9T2JqZWN0JykpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICByZXR1cm4gaWZyYW1lRG9jdW1lbnQuRjtcbn07XG5cbi8vIENoZWNrIGZvciBkb2N1bWVudC5kb21haW4gYW5kIGFjdGl2ZSB4IHN1cHBvcnRcbi8vIE5vIG5lZWQgdG8gdXNlIGFjdGl2ZSB4IGFwcHJvYWNoIHdoZW4gZG9jdW1lbnQuZG9tYWluIGlzIG5vdCBzZXRcbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZXMtc2hpbXMvZXM1LXNoaW0vaXNzdWVzLzE1MFxuLy8gdmFyaWF0aW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9raXRjYW1icmlkZ2UvZXM1LXNoaW0vY29tbWl0LzRmNzM4YWMwNjYzNDZcbi8vIGF2b2lkIElFIEdDIGJ1Z1xudmFyIGFjdGl2ZVhEb2N1bWVudDtcbnZhciBOdWxsUHJvdG9PYmplY3QgPSBmdW5jdGlvbiAoKSB7XG4gIHRyeSB7XG4gICAgYWN0aXZlWERvY3VtZW50ID0gbmV3IEFjdGl2ZVhPYmplY3QoJ2h0bWxmaWxlJyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGlnbm9yZSAqLyB9XG4gIE51bGxQcm90b09iamVjdCA9IHR5cGVvZiBkb2N1bWVudCAhPSAndW5kZWZpbmVkJ1xuICAgID8gZG9jdW1lbnQuZG9tYWluICYmIGFjdGl2ZVhEb2N1bWVudFxuICAgICAgPyBOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGFjdGl2ZVhEb2N1bWVudCkgLy8gb2xkIElFXG4gICAgICA6IE51bGxQcm90b09iamVjdFZpYUlGcmFtZSgpXG4gICAgOiBOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGFjdGl2ZVhEb2N1bWVudCk7IC8vIFdTSFxuICB2YXIgbGVuZ3RoID0gZW51bUJ1Z0tleXMubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIGRlbGV0ZSBOdWxsUHJvdG9PYmplY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tsZW5ndGhdXTtcbiAgcmV0dXJuIE51bGxQcm90b09iamVjdCgpO1xufTtcblxuaGlkZGVuS2V5c1tJRV9QUk9UT10gPSB0cnVlO1xuXG4vLyBgT2JqZWN0LmNyZWF0ZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5jcmVhdGVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtY3JlYXRlIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eUNvbnN0cnVjdG9yKCk7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBOdWxsUHJvdG9PYmplY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRlZmluZVByb3BlcnRpZXNNb2R1bGUuZihyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydGllcyAtLSBzYWZlXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyAmJiAhVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIHByb3BzID0gdG9JbmRleGVkT2JqZWN0KFByb3BlcnRpZXMpO1xuICB2YXIga2V5cyA9IG9iamVjdEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSA9IGtleXNbaW5kZXgrK10sIHByb3BzW2tleV0pO1xuICByZXR1cm4gTztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xudmFyIFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXknKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbnZhciAkZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgRU5VTUVSQUJMRSA9ICdlbnVtZXJhYmxlJztcbnZhciBDT05GSUdVUkFCTEUgPSAnY29uZmlndXJhYmxlJztcbnZhciBXUklUQUJMRSA9ICd3cml0YWJsZSc7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZGVmaW5lcHJvcGVydHlcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmICh0eXBlb2YgTyA9PT0gJ2Z1bmN0aW9uJyAmJiBQID09PSAncHJvdG90eXBlJyAmJiAndmFsdWUnIGluIEF0dHJpYnV0ZXMgJiYgV1JJVEFCTEUgaW4gQXR0cmlidXRlcyAmJiAhQXR0cmlidXRlc1tXUklUQUJMRV0pIHtcbiAgICB2YXIgY3VycmVudCA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudFtXUklUQUJMRV0pIHtcbiAgICAgIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICAgICAgQXR0cmlidXRlcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiBDT05GSUdVUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbQ09ORklHVVJBQkxFXSA6IGN1cnJlbnRbQ09ORklHVVJBQkxFXSxcbiAgICAgICAgZW51bWVyYWJsZTogRU5VTUVSQUJMRSBpbiBBdHRyaWJ1dGVzID8gQXR0cmlidXRlc1tFTlVNRVJBQkxFXSA6IGN1cnJlbnRbRU5VTUVSQUJMRV0sXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gIH0gcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbn0gOiAkZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gJGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IG5ldyAkVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCcpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b1Byb3BlcnR5S2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUnKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0luZGV4ZWRPYmplY3QoTyk7XG4gIFAgPSB0b1Byb3BlcnR5S2V5KFApO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhc093bihPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighY2FsbChwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZS5mLCBPLCBQKSwgT1tQXSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHVuY3VycnlUaGlzKHt9LmlzUHJvdG90eXBlT2YpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgaW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pbmNsdWRlcycpLmluZGV4T2Y7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgcHVzaCA9IHVuY3VycnlUaGlzKFtdLnB1c2gpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIG5hbWVzKSB7XG4gIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KG9iamVjdCk7XG4gIHZhciBpID0gMDtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIga2V5O1xuICBmb3IgKGtleSBpbiBPKSAhaGFzT3duKGhpZGRlbktleXMsIGtleSkgJiYgaGFzT3duKE8sIGtleSkgJiYgcHVzaChyZXN1bHQsIGtleSk7XG4gIC8vIERvbid0IGVudW0gYnVnICYgaGlkZGVuIGtleXNcbiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIGlmIChoYXNPd24oTywga2V5ID0gbmFtZXNbaSsrXSkpIHtcbiAgICB+aW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcHVzaChyZXN1bHQsIGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaW50ZXJuYWxPYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xuXG4vLyBgT2JqZWN0LmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3Qua2V5c1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1rZXlzIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkcHJvcGVydHlJc0VudW1lcmFibGUgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG4vLyBOYXNob3JuIH4gSkRLOCBidWdcbnZhciBOQVNIT1JOX0JVRyA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvciAmJiAhJHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoeyAxOiAyIH0sIDEpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZWAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUucHJvcGVydHlpc2VudW1lcmFibGVcbmV4cG9ydHMuZiA9IE5BU0hPUk5fQlVHID8gZnVuY3Rpb24gcHJvcGVydHlJc0VudW1lcmFibGUoVikge1xuICB2YXIgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLCBWKTtcbiAgcmV0dXJuICEhZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLmVudW1lcmFibGU7XG59IDogJHByb3BlcnR5SXNFbnVtZXJhYmxlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBPcmRpbmFyeVRvUHJpbWl0aXZlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb3JkaW5hcnl0b3ByaW1pdGl2ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQsIHByZWYpIHtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChwcmVmID09PSAnc3RyaW5nJyAmJiBpc0NhbGxhYmxlKGZuID0gaW5wdXQudG9TdHJpbmcpICYmICFpc09iamVjdCh2YWwgPSBjYWxsKGZuLCBpbnB1dCkpKSByZXR1cm4gdmFsO1xuICBpZiAoaXNDYWxsYWJsZShmbiA9IGlucHV0LnZhbHVlT2YpICYmICFpc09iamVjdCh2YWwgPSBjYWxsKGZuLCBpbnB1dCkpKSByZXR1cm4gdmFsO1xuICBpZiAocHJlZiAhPT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc051bGxPclVuZGVmaW5lZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1udWxsLW9yLXVuZGVmaW5lZCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYFJlcXVpcmVPYmplY3RDb2VyY2libGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZXF1aXJlb2JqZWN0Y29lcmNpYmxlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoaXQpKSB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG5cbnZhciBrZXlzID0gc2hhcmVkKCdrZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4ga2V5c1trZXldIHx8IChrZXlzW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG5cbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IG1vZHVsZS5leHBvcnRzID0gZ2xvYmFsVGhpc1tTSEFSRURdIHx8IGRlZmluZUdsb2JhbFByb3BlcnR5KFNIQVJFRCwge30pO1xuXG4oc3RvcmUudmVyc2lvbnMgfHwgKHN0b3JlLnZlcnNpb25zID0gW10pKS5wdXNoKHtcbiAgdmVyc2lvbjogJzMuMzguMScsXG4gIG1vZGU6IElTX1BVUkUgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxNC0yMDI0IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJyxcbiAgbGljZW5zZTogJ2h0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMzguMS9MSUNFTlNFJyxcbiAgc291cmNlOiAnaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMnXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBzdG9yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQtc3RvcmUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlIHx8IHt9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgUFJPUEVSX0ZVTkNUSU9OX05BTUUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZScpLlBST1BFUjtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHdoaXRlc3BhY2VzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3doaXRlc3BhY2VzJyk7XG5cbnZhciBub24gPSAnXFx1MjAwQlxcdTAwODVcXHUxODBFJztcblxuLy8gY2hlY2sgdGhhdCBhIG1ldGhvZCB3b3JrcyB3aXRoIHRoZSBjb3JyZWN0IGxpc3Rcbi8vIG9mIHdoaXRlc3BhY2VzIGFuZCBoYXMgYSBjb3JyZWN0IG5hbWVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FKSB7XG4gIHJldHVybiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuICEhd2hpdGVzcGFjZXNbTUVUSE9EX05BTUVdKClcbiAgICAgIHx8IG5vbltNRVRIT0RfTkFNRV0oKSAhPT0gbm9uXG4gICAgICB8fCAoUFJPUEVSX0ZVTkNUSU9OX05BTUUgJiYgd2hpdGVzcGFjZXNbTUVUSE9EX05BTUVdLm5hbWUgIT09IE1FVEhPRF9OQU1FKTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgd2hpdGVzcGFjZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2hpdGVzcGFjZXMnKTtcblxudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBsdHJpbSA9IFJlZ0V4cCgnXlsnICsgd2hpdGVzcGFjZXMgKyAnXSsnKTtcbnZhciBydHJpbSA9IFJlZ0V4cCgnKF58W14nICsgd2hpdGVzcGFjZXMgKyAnXSlbJyArIHdoaXRlc3BhY2VzICsgJ10rJCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW0sIHRyaW1TdGFydCwgdHJpbUVuZCwgdHJpbUxlZnQsIHRyaW1SaWdodCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcykge1xuICAgIHZhciBzdHJpbmcgPSB0b1N0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCR0aGlzKSk7XG4gICAgaWYgKFRZUEUgJiAxKSBzdHJpbmcgPSByZXBsYWNlKHN0cmluZywgbHRyaW0sICcnKTtcbiAgICBpZiAoVFlQRSAmIDIpIHN0cmluZyA9IHJlcGxhY2Uoc3RyaW5nLCBydHJpbSwgJyQxJyk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1MZWZ0LCB0cmltU3RhcnQgfWAgbWV0aG9kc1xuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbXN0YXJ0XG4gIHN0YXJ0OiBjcmVhdGVNZXRob2QoMSksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbVJpZ2h0LCB0cmltRW5kIH1gIG1ldGhvZHNcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1lbmRcbiAgZW5kOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnRyaW1gIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbVxuICB0cmltOiBjcmVhdGVNZXRob2QoMylcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBlcy9uby1zeW1ib2wgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxudmFyICRTdHJpbmcgPSBnbG9iYWxUaGlzLlN0cmluZztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gcmVxdWlyZWQgZm9yIHRlc3Rpbmdcbm1vZHVsZS5leHBvcnRzID0gISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBzeW1ib2wgPSBTeW1ib2woJ3N5bWJvbCBkZXRlY3Rpb24nKTtcbiAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgLy8gYGdldC1vd24tcHJvcGVydHktc3ltYm9sc2AgcG9seWZpbGwgc3ltYm9scyBjb252ZXJ0ZWQgdG8gb2JqZWN0IGFyZSBub3QgU3ltYm9sIGluc3RhbmNlc1xuICAvLyBuYjogRG8gbm90IGNhbGwgYFN0cmluZ2AgZGlyZWN0bHkgdG8gYXZvaWQgdGhpcyBiZWluZyBvcHRpbWl6ZWQgb3V0IHRvIGBzeW1ib2wrJydgIHdoaWNoIHdpbGwsXG4gIC8vIG9mIGNvdXJzZSwgZmFpbC5cbiAgcmV0dXJuICEkU3RyaW5nKHN5bWJvbCkgfHwgIShPYmplY3Qoc3ltYm9sKSBpbnN0YW5jZW9mIFN5bWJvbCkgfHxcbiAgICAvLyBDaHJvbWUgMzgtNDAgc3ltYm9scyBhcmUgbm90IGluaGVyaXRlZCBmcm9tIERPTSBjb2xsZWN0aW9ucyBwcm90b3R5cGVzIHRvIGluc3RhbmNlc1xuICAgICFTeW1ib2wuc2hhbSAmJiBWOF9WRVJTSU9OICYmIFY4X1ZFUlNJT04gPCA0MTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIEhlbHBlciBmb3IgYSBwb3B1bGFyIHJlcGVhdGluZyBjYXNlIG9mIHRoZSBzcGVjOlxuLy8gTGV0IGludGVnZXIgYmUgPyBUb0ludGVnZXIoaW5kZXgpLlxuLy8gSWYgaW50ZWdlciA8IDAsIGxldCByZXN1bHQgYmUgbWF4KChsZW5ndGggKyBpbnRlZ2VyKSwgMCk7IGVsc2UgbGV0IHJlc3VsdCBiZSBtaW4oaW50ZWdlciwgbGVuZ3RoKS5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgdmFyIGludGVnZXIgPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEluZGV4ZWRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShpdCkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0cnVuYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLXRydW5jJyk7XG5cbi8vIGBUb0ludGVnZXJPckluZmluaXR5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9pbnRlZ2Vyb3JpbmZpbml0eVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIG51bWJlciA9ICthcmd1bWVudDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgcmV0dXJuIG51bWJlciAhPT0gbnVtYmVyIHx8IG51bWJlciA9PT0gMCA/IDAgOiB0cnVuYyhudW1iZXIpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcblxudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBgVG9MZW5ndGhgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2xlbmd0aFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGxlbiA9IHRvSW50ZWdlck9ySW5maW5pdHkoYXJndW1lbnQpO1xuICByZXR1cm4gbGVuID4gMCA/IG1pbihsZW4sIDB4MUZGRkZGRkZGRkZGRkYpIDogMDsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxuLy8gYFRvT2JqZWN0YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9vYmplY3Rcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiAkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgZ2V0TWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1tZXRob2QnKTtcbnZhciBvcmRpbmFyeVRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbnZhciBUT19QUklNSVRJVkUgPSB3ZWxsS25vd25TeW1ib2woJ3RvUHJpbWl0aXZlJyk7XG5cbi8vIGBUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJpbWl0aXZlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbnB1dCwgcHJlZikge1xuICBpZiAoIWlzT2JqZWN0KGlucHV0KSB8fCBpc1N5bWJvbChpbnB1dCkpIHJldHVybiBpbnB1dDtcbiAgdmFyIGV4b3RpY1RvUHJpbSA9IGdldE1ldGhvZChpbnB1dCwgVE9fUFJJTUlUSVZFKTtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKGV4b3RpY1RvUHJpbSkge1xuICAgIGlmIChwcmVmID09PSB1bmRlZmluZWQpIHByZWYgPSAnZGVmYXVsdCc7XG4gICAgcmVzdWx0ID0gY2FsbChleG90aWNUb1ByaW0sIGlucHV0LCBwcmVmKTtcbiAgICBpZiAoIWlzT2JqZWN0KHJlc3VsdCkgfHwgaXNTeW1ib2wocmVzdWx0KSkgcmV0dXJuIHJlc3VsdDtcbiAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbiAgfVxuICBpZiAocHJlZiA9PT0gdW5kZWZpbmVkKSBwcmVmID0gJ251bWJlcic7XG4gIHJldHVybiBvcmRpbmFyeVRvUHJpbWl0aXZlKGlucHV0LCBwcmVmKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG5cbi8vIGBUb1Byb3BlcnR5S2V5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9wcm9wZXJ0eWtleVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGtleSA9IHRvUHJpbWl0aXZlKGFyZ3VtZW50LCAnc3RyaW5nJyk7XG4gIHJldHVybiBpc1N5bWJvbChrZXkpID8ga2V5IDoga2V5ICsgJyc7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciB0ZXN0ID0ge307XG5cbnRlc3RbVE9fU1RSSU5HX1RBR10gPSAneic7XG5cbm1vZHVsZS5leHBvcnRzID0gU3RyaW5nKHRlc3QpID09PSAnW29iamVjdCB6XSc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoY2xhc3NvZihhcmd1bWVudCkgPT09ICdTeW1ib2wnKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZycpO1xuICByZXR1cm4gJFN0cmluZyhhcmd1bWVudCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnT2JqZWN0JztcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKDEuMC50b1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArIHRvU3RyaW5nKCsraWQgKyBwb3N0Zml4LCAzNik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tc3ltYm9sIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nICovXG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX1NZTUJPTFxuICAmJiAhU3ltYm9sLnNoYW1cbiAgJiYgdHlwZW9mIFN5bWJvbC5pdGVyYXRvciA9PSAnc3ltYm9sJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbi8vIFY4IH4gQ2hyb21lIDM2LVxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzMzNFxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0sICdwcm90b3R5cGUnLCB7XG4gICAgdmFsdWU6IDQyLFxuICAgIHdyaXRhYmxlOiBmYWxzZVxuICB9KS5wcm90b3R5cGUgIT09IDQyO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24nKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgU3ltYm9sID0gZ2xvYmFsVGhpcy5TeW1ib2w7XG52YXIgV2VsbEtub3duU3ltYm9sc1N0b3JlID0gc2hhcmVkKCd3a3MnKTtcbnZhciBjcmVhdGVXZWxsS25vd25TeW1ib2wgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IFN5bWJvbFsnZm9yJ10gfHwgU3ltYm9sIDogU3ltYm9sICYmIFN5bWJvbC53aXRob3V0U2V0dGVyIHx8IHVpZDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICBpZiAoIWhhc093bihXZWxsS25vd25TeW1ib2xzU3RvcmUsIG5hbWUpKSB7XG4gICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gTkFUSVZFX1NZTUJPTCAmJiBoYXNPd24oU3ltYm9sLCBuYW1lKVxuICAgICAgPyBTeW1ib2xbbmFtZV1cbiAgICAgIDogY3JlYXRlV2VsbEtub3duU3ltYm9sKCdTeW1ib2wuJyArIG5hbWUpO1xuICB9IHJldHVybiBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gYSBzdHJpbmcgb2YgYWxsIHZhbGlkIHVuaWNvZGUgd2hpdGVzcGFjZXNcbm1vZHVsZS5leHBvcnRzID0gJ1xcdTAwMDlcXHUwMDBBXFx1MDAwQlxcdTAwMENcXHUwMDBEXFx1MDAyMFxcdTAwQTBcXHUxNjgwXFx1MjAwMFxcdTIwMDFcXHUyMDAyJyArXG4gICdcXHUyMDAzXFx1MjAwNFxcdTIwMDVcXHUyMDA2XFx1MjAwN1xcdTIwMDhcXHUyMDA5XFx1MjAwQVxcdTIwMkZcXHUyMDVGXFx1MzAwMFxcdTIwMjhcXHUyMDI5XFx1RkVGRic7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xudmFyIGRvZXNOb3RFeGNlZWRTYWZlSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2VzLW5vdC1leGNlZWQtc2FmZS1pbnRlZ2VyJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbicpO1xuXG52YXIgSVNfQ09OQ0FUX1NQUkVBREFCTEUgPSB3ZWxsS25vd25TeW1ib2woJ2lzQ29uY2F0U3ByZWFkYWJsZScpO1xuXG4vLyBXZSBjYW4ndCB1c2UgdGhpcyBmZWF0dXJlIGRldGVjdGlvbiBpbiBWOCBzaW5jZSBpdCBjYXVzZXNcbi8vIGRlb3B0aW1pemF0aW9uIGFuZCBzZXJpb3VzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjc5XG52YXIgSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCA9IFY4X1ZFUlNJT04gPj0gNTEgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFycmF5ID0gW107XG4gIGFycmF5W0lTX0NPTkNBVF9TUFJFQURBQkxFXSA9IGZhbHNlO1xuICByZXR1cm4gYXJyYXkuY29uY2F0KClbMF0gIT09IGFycmF5O1xufSk7XG5cbnZhciBpc0NvbmNhdFNwcmVhZGFibGUgPSBmdW5jdGlvbiAoTykge1xuICBpZiAoIWlzT2JqZWN0KE8pKSByZXR1cm4gZmFsc2U7XG4gIHZhciBzcHJlYWRhYmxlID0gT1tJU19DT05DQVRfU1BSRUFEQUJMRV07XG4gIHJldHVybiBzcHJlYWRhYmxlICE9PSB1bmRlZmluZWQgPyAhIXNwcmVhZGFibGUgOiBpc0FycmF5KE8pO1xufTtcblxudmFyIEZPUkNFRCA9ICFJU19DT05DQVRfU1BSRUFEQUJMRV9TVVBQT1JUIHx8ICFhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdjb25jYXQnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5jb25jYXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuY29uY2F0XG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAaXNDb25jYXRTcHJlYWRhYmxlIGFuZCBAQHNwZWNpZXNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBhcml0eTogMSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMgLS0gcmVxdWlyZWQgZm9yIGAubGVuZ3RoYFxuICBjb25jYXQ6IGZ1bmN0aW9uIGNvbmNhdChhcmcpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgIHZhciBBID0gYXJyYXlTcGVjaWVzQ3JlYXRlKE8sIDApO1xuICAgIHZhciBuID0gMDtcbiAgICB2YXIgaSwgaywgbGVuZ3RoLCBsZW4sIEU7XG4gICAgZm9yIChpID0gLTEsIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgRSA9IGkgPT09IC0xID8gTyA6IGFyZ3VtZW50c1tpXTtcbiAgICAgIGlmIChpc0NvbmNhdFNwcmVhZGFibGUoRSkpIHtcbiAgICAgICAgbGVuID0gbGVuZ3RoT2ZBcnJheUxpa2UoRSk7XG4gICAgICAgIGRvZXNOb3RFeGNlZWRTYWZlSW50ZWdlcihuICsgbGVuKTtcbiAgICAgICAgZm9yIChrID0gMDsgayA8IGxlbjsgaysrLCBuKyspIGlmIChrIGluIEUpIGNyZWF0ZVByb3BlcnR5KEEsIG4sIEVba10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9lc05vdEV4Y2VlZFNhZmVJbnRlZ2VyKG4gKyAxKTtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkoQSwgbisrLCBFKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQS5sZW5ndGggPSBuO1xuICAgIHJldHVybiBBO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRmaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbmQ7XG52YXIgYWRkVG9VbnNjb3BhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMnKTtcblxudmFyIEZJTkQgPSAnZmluZCc7XG52YXIgU0tJUFNfSE9MRVMgPSB0cnVlO1xuXG4vLyBTaG91bGRuJ3Qgc2tpcCBob2xlc1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWFycmF5LXByb3RvdHlwZS1maW5kIC0tIHRlc3RpbmdcbmlmIChGSU5EIGluIFtdKSBBcnJheSgxKVtGSU5EXShmdW5jdGlvbiAoKSB7IFNLSVBTX0hPTEVTID0gZmFsc2U7IH0pO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmluZFxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogU0tJUFNfSE9MRVMgfSwge1xuICBmaW5kOiBmdW5jdGlvbiBmaW5kKGNhbGxiYWNrZm4gLyogLCB0aGF0ID0gdW5kZWZpbmVkICovKSB7XG4gICAgcmV0dXJuICRmaW5kKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG5cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAdW5zY29wYWJsZXNcbmFkZFRvVW5zY29wYWJsZXMoRklORCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZvci1lYWNoJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5mb3JlYWNoXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWZvcmVhY2ggLS0gc2FmZVxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogW10uZm9yRWFjaCAhPT0gZm9yRWFjaCB9LCB7XG4gIGZvckVhY2g6IGZvckVhY2hcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWluZGV4b2YgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1jbGF1c2UnKTtcbnZhciAkaW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pbmNsdWRlcycpLmluZGV4T2Y7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG5cbnZhciBuYXRpdmVJbmRleE9mID0gdW5jdXJyeVRoaXMoW10uaW5kZXhPZik7XG5cbnZhciBORUdBVElWRV9aRVJPID0gISFuYXRpdmVJbmRleE9mICYmIDEgLyBuYXRpdmVJbmRleE9mKFsxXSwgMSwgLTApIDwgMDtcbnZhciBGT1JDRUQgPSBORUdBVElWRV9aRVJPIHx8ICFhcnJheU1ldGhvZElzU3RyaWN0KCdpbmRleE9mJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuaW5kZXhPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5pbmRleG9mXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBpbmRleE9mOiBmdW5jdGlvbiBpbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggPSAwICovKSB7XG4gICAgdmFyIGZyb21JbmRleCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBORUdBVElWRV9aRVJPXG4gICAgICAvLyBjb252ZXJ0IC0wIHRvICswXG4gICAgICA/IG5hdGl2ZUluZGV4T2YodGhpcywgc2VhcmNoRWxlbWVudCwgZnJvbUluZGV4KSB8fCAwXG4gICAgICA6ICRpbmRleE9mKHRoaXMsIHNlYXJjaEVsZW1lbnQsIGZyb21JbmRleCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xuXG4vLyBgQXJyYXkuaXNBcnJheWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LmlzYXJyYXlcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHN0YXQ6IHRydWUgfSwge1xuICBpc0FycmF5OiBpc0FycmF5XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRtYXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykubWFwO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdtYXAnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5tYXBgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUubWFwXG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAc3BlY2llc1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfSwge1xuICBtYXA6IGZ1bmN0aW9uIG1hcChjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkbWFwKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkcmVkdWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXJlZHVjZScpLmxlZnQ7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG52YXIgQ0hST01FX1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbicpO1xudmFyIElTX05PREUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtaXMtbm9kZScpO1xuXG4vLyBDaHJvbWUgODAtODIgaGFzIGEgY3JpdGljYWwgYnVnXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMDQ5OTgyXG52YXIgQ0hST01FX0JVRyA9ICFJU19OT0RFICYmIENIUk9NRV9WRVJTSU9OID4gNzkgJiYgQ0hST01FX1ZFUlNJT04gPCA4MztcbnZhciBGT1JDRUQgPSBDSFJPTUVfQlVHIHx8ICFhcnJheU1ldGhvZElzU3RyaWN0KCdyZWR1Y2UnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5yZWR1Y2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmVkdWNlXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICByZWR1Y2U6IGZ1bmN0aW9uIHJlZHVjZShjYWxsYmFja2ZuIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgcmV0dXJuICRyZWR1Y2UodGhpcywgY2FsbGJhY2tmbiwgbGVuZ3RoLCBsZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jb25zdHJ1Y3RvcicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xudmFyIG5hdGl2ZVNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG5cbnZhciBIQVNfU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnc2xpY2UnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbnZhciAkQXJyYXkgPSBBcnJheTtcbnZhciBtYXggPSBNYXRoLm1heDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5zbGljZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zbGljZVxuLy8gZmFsbGJhY2sgZm9yIG5vdCBhcnJheS1saWtlIEVTMyBzdHJpbmdzIGFuZCBET00gb2JqZWN0c1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfSwge1xuICBzbGljZTogZnVuY3Rpb24gc2xpY2Uoc3RhcnQsIGVuZCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICB2YXIgayA9IHRvQWJzb2x1dGVJbmRleChzdGFydCwgbGVuZ3RoKTtcbiAgICB2YXIgZmluID0gdG9BYnNvbHV0ZUluZGV4KGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogZW5kLCBsZW5ndGgpO1xuICAgIC8vIGlubGluZSBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBmb3IgdXNhZ2UgbmF0aXZlIGBBcnJheSNzbGljZWAgd2hlcmUgaXQncyBwb3NzaWJsZVxuICAgIHZhciBDb25zdHJ1Y3RvciwgcmVzdWx0LCBuO1xuICAgIGlmIChpc0FycmF5KE8pKSB7XG4gICAgICBDb25zdHJ1Y3RvciA9IE8uY29uc3RydWN0b3I7XG4gICAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgICAgaWYgKGlzQ29uc3RydWN0b3IoQ29uc3RydWN0b3IpICYmIChDb25zdHJ1Y3RvciA9PT0gJEFycmF5IHx8IGlzQXJyYXkoQ29uc3RydWN0b3IucHJvdG90eXBlKSkpIHtcbiAgICAgICAgQ29uc3RydWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KENvbnN0cnVjdG9yKSkge1xuICAgICAgICBDb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yW1NQRUNJRVNdO1xuICAgICAgICBpZiAoQ29uc3RydWN0b3IgPT09IG51bGwpIENvbnN0cnVjdG9yID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKENvbnN0cnVjdG9yID09PSAkQXJyYXkgfHwgQ29uc3RydWN0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbmF0aXZlU2xpY2UoTywgaywgZmluKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0ID0gbmV3IChDb25zdHJ1Y3RvciA9PT0gdW5kZWZpbmVkID8gJEFycmF5IDogQ29uc3RydWN0b3IpKG1heChmaW4gLSBrLCAwKSk7XG4gICAgZm9yIChuID0gMDsgayA8IGZpbjsgaysrLCBuKyspIGlmIChrIGluIE8pIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgbiwgT1trXSk7XG4gICAgcmVzdWx0Lmxlbmd0aCA9IG47XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YFxudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xuXG4vLyBgT2JqZWN0LmNyZWF0ZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5jcmVhdGVcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICBjcmVhdGU6IGNyZWF0ZVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBuYXRpdmVLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IG5hdGl2ZUtleXMoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3Qua2V5c1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRkFJTFNfT05fUFJJTUlUSVZFUyB9LCB7XG4gIGtleXM6IGZ1bmN0aW9uIGtleXMoaXQpIHtcbiAgICByZXR1cm4gbmF0aXZlS2V5cyh0b09iamVjdChpdCkpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRwYXJzZUludCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9udW1iZXItcGFyc2UtaW50Jyk7XG5cbi8vIGBwYXJzZUludGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXBhcnNlaW50LXN0cmluZy1yYWRpeFxuJCh7IGdsb2JhbDogdHJ1ZSwgZm9yY2VkOiBwYXJzZUludCAhPT0gJHBhcnNlSW50IH0sIHtcbiAgcGFyc2VJbnQ6ICRwYXJzZUludFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKS5mO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIG5vdEFSZWdFeHAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbm90LWEtcmVnZXhwJyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciBjb3JyZWN0SXNSZWdFeHBMb2dpYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LWlzLXJlZ2V4cC1sb2dpYycpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xuXG52YXIgc2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG52YXIgbWluID0gTWF0aC5taW47XG5cbnZhciBDT1JSRUNUX0lTX1JFR0VYUF9MT0dJQyA9IGNvcnJlY3RJc1JlZ0V4cExvZ2ljKCdlbmRzV2l0aCcpO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvcHVsbC83MDJcbnZhciBNRE5fUE9MWUZJTExfQlVHID0gIUlTX1BVUkUgJiYgIUNPUlJFQ1RfSVNfUkVHRVhQX0xPR0lDICYmICEhZnVuY3Rpb24gKCkge1xuICB2YXIgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAnZW5kc1dpdGgnKTtcbiAgcmV0dXJuIGRlc2NyaXB0b3IgJiYgIWRlc2NyaXB0b3Iud3JpdGFibGU7XG59KCk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5lbmRzd2l0aFxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFNRE5fUE9MWUZJTExfQlVHICYmICFDT1JSRUNUX0lTX1JFR0VYUF9MT0dJQyB9LCB7XG4gIGVuZHNXaXRoOiBmdW5jdGlvbiBlbmRzV2l0aChzZWFyY2hTdHJpbmcgLyogLCBlbmRQb3NpdGlvbiA9IEBsZW5ndGggKi8pIHtcbiAgICB2YXIgdGhhdCA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpO1xuICAgIG5vdEFSZWdFeHAoc2VhcmNoU3RyaW5nKTtcbiAgICB2YXIgZW5kUG9zaXRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgbGVuID0gdGhhdC5sZW5ndGg7XG4gICAgdmFyIGVuZCA9IGVuZFBvc2l0aW9uID09PSB1bmRlZmluZWQgPyBsZW4gOiBtaW4odG9MZW5ndGgoZW5kUG9zaXRpb24pLCBsZW4pO1xuICAgIHZhciBzZWFyY2ggPSB0b1N0cmluZyhzZWFyY2hTdHJpbmcpO1xuICAgIHJldHVybiBzbGljZSh0aGF0LCBlbmQgLSBzZWFyY2gubGVuZ3RoLCBlbmQpID09PSBzZWFyY2g7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHRyaW0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXRyaW0nKS50cmltO1xudmFyIGZvcmNlZFN0cmluZ1RyaW1NZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXRyaW0tZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnRyaW1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1cbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBmb3JjZWRTdHJpbmdUcmltTWV0aG9kKCd0cmltJykgfSwge1xuICB0cmltOiBmdW5jdGlvbiB0cmltKCkge1xuICAgIHJldHVybiAkdHJpbSh0aGlzKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvYXJyYXkvaXMtYXJyYXknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vLi4vZXMvYXJyYXkvdmlydHVhbC9mb3ItZWFjaCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9jb25jYXQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2UvZW5kcy13aXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL2ZpbmQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uLy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBtZXRob2QgPSByZXF1aXJlKCcuLi9hcnJheS92aXJ0dWFsL2Zvci1lYWNoJyk7XG5yZXF1aXJlKCcuLi8uLi9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2gnKTtcblxudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG52YXIgRE9NSXRlcmFibGVzID0ge1xuICBET01Ub2tlbkxpc3Q6IHRydWUsXG4gIE5vZGVMaXN0OiB0cnVlXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgb3duID0gaXQuZm9yRWFjaDtcbiAgcmV0dXJuIGl0ID09PSBBcnJheVByb3RvdHlwZSB8fCAoaXNQcm90b3R5cGVPZihBcnJheVByb3RvdHlwZSwgaXQpICYmIG93biA9PT0gQXJyYXlQcm90b3R5cGUuZm9yRWFjaClcbiAgICB8fCBoYXNPd24oRE9NSXRlcmFibGVzLCBjbGFzc29mKGl0KSkgPyBtZXRob2QgOiBvd247XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL2luZGV4LW9mJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL2luc3RhbmNlL21hcCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9pbnN0YW5jZS9yZWR1Y2UnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2Uvc2xpY2UnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi4vLi4vZXMvaW5zdGFuY2UvdHJpbScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLi8uLi9lcy9vYmplY3QvY3JlYXRlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uLy4uL2VzL29iamVjdC9rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4uL2VzL3BhcnNlLWludCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgdHJ5VG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZycpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYEFzc2VydDogSXNDYWxsYWJsZShhcmd1bWVudCkgaXMgdHJ1ZWBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGFyZ3VtZW50O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3InKTtcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgQXNzZXJ0OiBJc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSBpcyB0cnVlYFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGlzQ29uc3RydWN0b3IoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKHRyeVRvU3RyaW5nKGFyZ3VtZW50KSArICcgaXMgbm90IGEgY29uc3RydWN0b3InKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNQb3NzaWJsZVByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wb3NzaWJsZS1wcm90b3R5cGUnKTtcblxudmFyICRTdHJpbmcgPSBTdHJpbmc7XG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGlzUG9zc2libGVQcm90b3R5cGUoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKFwiQ2FuJ3Qgc2V0IFwiICsgJFN0cmluZyhhcmd1bWVudCkgKyAnIGFzIGEgcHJvdG90eXBlJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG5cbnZhciBVTlNDT1BBQkxFUyA9IHdlbGxLbm93blN5bWJvbCgndW5zY29wYWJsZXMnKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxuLy8gQXJyYXkucHJvdG90eXBlW0BAdW5zY29wYWJsZXNdXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5pZiAoQXJyYXlQcm90b3R5cGVbVU5TQ09QQUJMRVNdID09PSB1bmRlZmluZWQpIHtcbiAgZGVmaW5lUHJvcGVydHkoQXJyYXlQcm90b3R5cGUsIFVOU0NPUEFCTEVTLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHZhbHVlOiBjcmVhdGUobnVsbClcbiAgfSk7XG59XG5cbi8vIGFkZCBhIGtleSB0byBBcnJheS5wcm90b3R5cGVbQEB1bnNjb3BhYmxlc11cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICBBcnJheVByb3RvdHlwZVtVTlNDT1BBQkxFU11ba2V5XSA9IHRydWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNoYXJBdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlJykuY2hhckF0O1xuXG4vLyBgQWR2YW5jZVN0cmluZ0luZGV4YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWR2YW5jZXN0cmluZ2luZGV4XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChTLCBpbmRleCwgdW5pY29kZSkge1xuICByZXR1cm4gaW5kZXggKyAodW5pY29kZSA/IGNoYXJBdChTLCBpbmRleCkubGVuZ3RoIDogMSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFByb3RvdHlwZSkge1xuICBpZiAoaXNQcm90b3R5cGVPZihQcm90b3R5cGUsIGl0KSkgcmV0dXJuIGl0O1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcignSW5jb3JyZWN0IGludm9jYXRpb24nKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IFR5cGUoYXJndW1lbnQpIGlzIE9iamVjdGBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmIChpc09iamVjdChhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJFN0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhbiBvYmplY3QnKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tdHlwZWQtYXJyYXlzIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIEFycmF5QnVmZmVyICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiBEYXRhVmlldyAhPSAndW5kZWZpbmVkJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdW5jdXJyeVRoaXNBY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtYWNjZXNzb3InKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbnZhciBBcnJheUJ1ZmZlciA9IGdsb2JhbFRoaXMuQXJyYXlCdWZmZXI7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsVGhpcy5UeXBlRXJyb3I7XG5cbi8vIEluY2x1ZGVzXG4vLyAtIFBlcmZvcm0gPyBSZXF1aXJlSW50ZXJuYWxTbG90KE8sIFtbQXJyYXlCdWZmZXJEYXRhXV0pLlxuLy8gLSBJZiBJc1NoYXJlZEFycmF5QnVmZmVyKE8pIGlzIHRydWUsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi5cbm1vZHVsZS5leHBvcnRzID0gQXJyYXlCdWZmZXIgJiYgdW5jdXJyeVRoaXNBY2Nlc3NvcihBcnJheUJ1ZmZlci5wcm90b3R5cGUsICdieXRlTGVuZ3RoJywgJ2dldCcpIHx8IGZ1bmN0aW9uIChPKSB7XG4gIGlmIChjbGFzc29mKE8pICE9PSAnQXJyYXlCdWZmZXInKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcnJheUJ1ZmZlciBleHBlY3RlZCcpO1xuICByZXR1cm4gTy5ieXRlTGVuZ3RoO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWNsYXVzZScpO1xudmFyIGFycmF5QnVmZmVyQnl0ZUxlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItYnl0ZS1sZW5ndGgnKTtcblxudmFyIEFycmF5QnVmZmVyID0gZ2xvYmFsVGhpcy5BcnJheUJ1ZmZlcjtcbnZhciBBcnJheUJ1ZmZlclByb3RvdHlwZSA9IEFycmF5QnVmZmVyICYmIEFycmF5QnVmZmVyLnByb3RvdHlwZTtcbnZhciBzbGljZSA9IEFycmF5QnVmZmVyUHJvdG90eXBlICYmIHVuY3VycnlUaGlzKEFycmF5QnVmZmVyUHJvdG90eXBlLnNsaWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTykge1xuICBpZiAoYXJyYXlCdWZmZXJCeXRlTGVuZ3RoKE8pICE9PSAwKSByZXR1cm4gZmFsc2U7XG4gIGlmICghc2xpY2UpIHJldHVybiBmYWxzZTtcbiAgdHJ5IHtcbiAgICBzbGljZShPLCAwLCAwKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNEZXRhY2hlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItaXMtZGV0YWNoZWQnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpc0RldGFjaGVkKGl0KSkgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJ0FycmF5QnVmZmVyIGlzIGRldGFjaGVkJyk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHVuY3VycnlUaGlzQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzLWFjY2Vzc29yJyk7XG52YXIgdG9JbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleCcpO1xudmFyIG5vdERldGFjaGVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci1ub3QtZGV0YWNoZWQnKTtcbnZhciBhcnJheUJ1ZmZlckJ5dGVMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLWJ5dGUtbGVuZ3RoJyk7XG52YXIgZGV0YWNoVHJhbnNmZXJhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RldGFjaC10cmFuc2ZlcmFibGUnKTtcbnZhciBQUk9QRVJfU1RSVUNUVVJFRF9DTE9ORV9UUkFOU0ZFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJ1Y3R1cmVkLWNsb25lLXByb3Blci10cmFuc2ZlcicpO1xuXG52YXIgc3RydWN0dXJlZENsb25lID0gZ2xvYmFsVGhpcy5zdHJ1Y3R1cmVkQ2xvbmU7XG52YXIgQXJyYXlCdWZmZXIgPSBnbG9iYWxUaGlzLkFycmF5QnVmZmVyO1xudmFyIERhdGFWaWV3ID0gZ2xvYmFsVGhpcy5EYXRhVmlldztcbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciBBcnJheUJ1ZmZlclByb3RvdHlwZSA9IEFycmF5QnVmZmVyLnByb3RvdHlwZTtcbnZhciBEYXRhVmlld1Byb3RvdHlwZSA9IERhdGFWaWV3LnByb3RvdHlwZTtcbnZhciBzbGljZSA9IHVuY3VycnlUaGlzKEFycmF5QnVmZmVyUHJvdG90eXBlLnNsaWNlKTtcbnZhciBpc1Jlc2l6YWJsZSA9IHVuY3VycnlUaGlzQWNjZXNzb3IoQXJyYXlCdWZmZXJQcm90b3R5cGUsICdyZXNpemFibGUnLCAnZ2V0Jyk7XG52YXIgbWF4Qnl0ZUxlbmd0aCA9IHVuY3VycnlUaGlzQWNjZXNzb3IoQXJyYXlCdWZmZXJQcm90b3R5cGUsICdtYXhCeXRlTGVuZ3RoJywgJ2dldCcpO1xudmFyIGdldEludDggPSB1bmN1cnJ5VGhpcyhEYXRhVmlld1Byb3RvdHlwZS5nZXRJbnQ4KTtcbnZhciBzZXRJbnQ4ID0gdW5jdXJyeVRoaXMoRGF0YVZpZXdQcm90b3R5cGUuc2V0SW50OCk7XG5cbm1vZHVsZS5leHBvcnRzID0gKFBST1BFUl9TVFJVQ1RVUkVEX0NMT05FX1RSQU5TRkVSIHx8IGRldGFjaFRyYW5zZmVyYWJsZSkgJiYgZnVuY3Rpb24gKGFycmF5QnVmZmVyLCBuZXdMZW5ndGgsIHByZXNlcnZlUmVzaXphYmlsaXR5KSB7XG4gIHZhciBieXRlTGVuZ3RoID0gYXJyYXlCdWZmZXJCeXRlTGVuZ3RoKGFycmF5QnVmZmVyKTtcbiAgdmFyIG5ld0J5dGVMZW5ndGggPSBuZXdMZW5ndGggPT09IHVuZGVmaW5lZCA/IGJ5dGVMZW5ndGggOiB0b0luZGV4KG5ld0xlbmd0aCk7XG4gIHZhciBmaXhlZExlbmd0aCA9ICFpc1Jlc2l6YWJsZSB8fCAhaXNSZXNpemFibGUoYXJyYXlCdWZmZXIpO1xuICB2YXIgbmV3QnVmZmVyO1xuICBub3REZXRhY2hlZChhcnJheUJ1ZmZlcik7XG4gIGlmIChQUk9QRVJfU1RSVUNUVVJFRF9DTE9ORV9UUkFOU0ZFUikge1xuICAgIGFycmF5QnVmZmVyID0gc3RydWN0dXJlZENsb25lKGFycmF5QnVmZmVyLCB7IHRyYW5zZmVyOiBbYXJyYXlCdWZmZXJdIH0pO1xuICAgIGlmIChieXRlTGVuZ3RoID09PSBuZXdCeXRlTGVuZ3RoICYmIChwcmVzZXJ2ZVJlc2l6YWJpbGl0eSB8fCBmaXhlZExlbmd0aCkpIHJldHVybiBhcnJheUJ1ZmZlcjtcbiAgfVxuICBpZiAoYnl0ZUxlbmd0aCA+PSBuZXdCeXRlTGVuZ3RoICYmICghcHJlc2VydmVSZXNpemFiaWxpdHkgfHwgZml4ZWRMZW5ndGgpKSB7XG4gICAgbmV3QnVmZmVyID0gc2xpY2UoYXJyYXlCdWZmZXIsIDAsIG5ld0J5dGVMZW5ndGgpO1xuICB9IGVsc2Uge1xuICAgIHZhciBvcHRpb25zID0gcHJlc2VydmVSZXNpemFiaWxpdHkgJiYgIWZpeGVkTGVuZ3RoICYmIG1heEJ5dGVMZW5ndGggPyB7IG1heEJ5dGVMZW5ndGg6IG1heEJ5dGVMZW5ndGgoYXJyYXlCdWZmZXIpIH0gOiB1bmRlZmluZWQ7XG4gICAgbmV3QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKG5ld0J5dGVMZW5ndGgsIG9wdGlvbnMpO1xuICAgIHZhciBhID0gbmV3IERhdGFWaWV3KGFycmF5QnVmZmVyKTtcbiAgICB2YXIgYiA9IG5ldyBEYXRhVmlldyhuZXdCdWZmZXIpO1xuICAgIHZhciBjb3B5TGVuZ3RoID0gbWluKG5ld0J5dGVMZW5ndGgsIGJ5dGVMZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29weUxlbmd0aDsgaSsrKSBzZXRJbnQ4KGIsIGksIGdldEludDgoYSwgaSkpO1xuICB9XG4gIGlmICghUFJPUEVSX1NUUlVDVFVSRURfQ0xPTkVfVFJBTlNGRVIpIGRldGFjaFRyYW5zZmVyYWJsZShhcnJheUJ1ZmZlcik7XG4gIHJldHVybiBuZXdCdWZmZXI7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9BUlJBWV9CVUZGRVIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLWJhc2ljLWRldGVjdGlvbicpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBlbmZvcmNlSW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZW5mb3JjZTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgSW50OEFycmF5ID0gZ2xvYmFsVGhpcy5JbnQ4QXJyYXk7XG52YXIgSW50OEFycmF5UHJvdG90eXBlID0gSW50OEFycmF5ICYmIEludDhBcnJheS5wcm90b3R5cGU7XG52YXIgVWludDhDbGFtcGVkQXJyYXkgPSBnbG9iYWxUaGlzLlVpbnQ4Q2xhbXBlZEFycmF5O1xudmFyIFVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlID0gVWludDhDbGFtcGVkQXJyYXkgJiYgVWludDhDbGFtcGVkQXJyYXkucHJvdG90eXBlO1xudmFyIFR5cGVkQXJyYXkgPSBJbnQ4QXJyYXkgJiYgZ2V0UHJvdG90eXBlT2YoSW50OEFycmF5KTtcbnZhciBUeXBlZEFycmF5UHJvdG90eXBlID0gSW50OEFycmF5UHJvdG90eXBlICYmIGdldFByb3RvdHlwZU9mKEludDhBcnJheVByb3RvdHlwZSk7XG52YXIgT2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcbnZhciBUeXBlRXJyb3IgPSBnbG9iYWxUaGlzLlR5cGVFcnJvcjtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgVFlQRURfQVJSQVlfVEFHID0gdWlkKCdUWVBFRF9BUlJBWV9UQUcnKTtcbnZhciBUWVBFRF9BUlJBWV9DT05TVFJVQ1RPUiA9ICdUeXBlZEFycmF5Q29uc3RydWN0b3InO1xuLy8gRml4aW5nIG5hdGl2ZSB0eXBlZCBhcnJheXMgaW4gT3BlcmEgUHJlc3RvIGNyYXNoZXMgdGhlIGJyb3dzZXIsIHNlZSAjNTk1XG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyA9IE5BVElWRV9BUlJBWV9CVUZGRVIgJiYgISFzZXRQcm90b3R5cGVPZiAmJiBjbGFzc29mKGdsb2JhbFRoaXMub3BlcmEpICE9PSAnT3BlcmEnO1xudmFyIFRZUEVEX0FSUkFZX1RBR19SRVFVSVJFRCA9IGZhbHNlO1xudmFyIE5BTUUsIENvbnN0cnVjdG9yLCBQcm90b3R5cGU7XG5cbnZhciBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCA9IHtcbiAgSW50OEFycmF5OiAxLFxuICBVaW50OEFycmF5OiAxLFxuICBVaW50OENsYW1wZWRBcnJheTogMSxcbiAgSW50MTZBcnJheTogMixcbiAgVWludDE2QXJyYXk6IDIsXG4gIEludDMyQXJyYXk6IDQsXG4gIFVpbnQzMkFycmF5OiA0LFxuICBGbG9hdDMyQXJyYXk6IDQsXG4gIEZsb2F0NjRBcnJheTogOFxufTtcblxudmFyIEJpZ0ludEFycmF5Q29uc3RydWN0b3JzTGlzdCA9IHtcbiAgQmlnSW50NjRBcnJheTogOCxcbiAgQmlnVWludDY0QXJyYXk6IDhcbn07XG5cbnZhciBpc1ZpZXcgPSBmdW5jdGlvbiBpc1ZpZXcoaXQpIHtcbiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBmYWxzZTtcbiAgdmFyIGtsYXNzID0gY2xhc3NvZihpdCk7XG4gIHJldHVybiBrbGFzcyA9PT0gJ0RhdGFWaWV3J1xuICAgIHx8IGhhc093bihUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCwga2xhc3MpXG4gICAgfHwgaGFzT3duKEJpZ0ludEFycmF5Q29uc3RydWN0b3JzTGlzdCwga2xhc3MpO1xufTtcblxudmFyIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgcHJvdG8gPSBnZXRQcm90b3R5cGVPZihpdCk7XG4gIGlmICghaXNPYmplY3QocHJvdG8pKSByZXR1cm47XG4gIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUocHJvdG8pO1xuICByZXR1cm4gKHN0YXRlICYmIGhhc093bihzdGF0ZSwgVFlQRURfQVJSQVlfQ09OU1RSVUNUT1IpKSA/IHN0YXRlW1RZUEVEX0FSUkFZX0NPTlNUUlVDVE9SXSA6IGdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcihwcm90byk7XG59O1xuXG52YXIgaXNUeXBlZEFycmF5ID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gZmFsc2U7XG4gIHZhciBrbGFzcyA9IGNsYXNzb2YoaXQpO1xuICByZXR1cm4gaGFzT3duKFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0LCBrbGFzcylcbiAgICB8fCBoYXNPd24oQmlnSW50QXJyYXlDb25zdHJ1Y3RvcnNMaXN0LCBrbGFzcyk7XG59O1xuXG52YXIgYVR5cGVkQXJyYXkgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGlzVHlwZWRBcnJheShpdCkpIHJldHVybiBpdDtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Jyk7XG59O1xuXG52YXIgYVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uIChDKSB7XG4gIGlmIChpc0NhbGxhYmxlKEMpICYmICghc2V0UHJvdG90eXBlT2YgfHwgaXNQcm90b3R5cGVPZihUeXBlZEFycmF5LCBDKSkpIHJldHVybiBDO1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKHRyeVRvU3RyaW5nKEMpICsgJyBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvcicpO1xufTtcblxudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBmdW5jdGlvbiAoS0VZLCBwcm9wZXJ0eSwgZm9yY2VkLCBvcHRpb25zKSB7XG4gIGlmICghREVTQ1JJUFRPUlMpIHJldHVybjtcbiAgaWYgKGZvcmNlZCkgZm9yICh2YXIgQVJSQVkgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QpIHtcbiAgICB2YXIgVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gZ2xvYmFsVGhpc1tBUlJBWV07XG4gICAgaWYgKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciAmJiBoYXNPd24oVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZSwgS0VZKSkgdHJ5IHtcbiAgICAgIGRlbGV0ZSBUeXBlZEFycmF5Q29uc3RydWN0b3IucHJvdG90eXBlW0tFWV07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIG9sZCBXZWJLaXQgYnVnIC0gc29tZSBtZXRob2RzIGFyZSBub24tY29uZmlndXJhYmxlXG4gICAgICB0cnkge1xuICAgICAgICBUeXBlZEFycmF5Q29uc3RydWN0b3IucHJvdG90eXBlW0tFWV0gPSBwcm9wZXJ0eTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yMikgeyAvKiBlbXB0eSAqLyB9XG4gICAgfVxuICB9XG4gIGlmICghVHlwZWRBcnJheVByb3RvdHlwZVtLRVldIHx8IGZvcmNlZCkge1xuICAgIGRlZmluZUJ1aWx0SW4oVHlwZWRBcnJheVByb3RvdHlwZSwgS0VZLCBmb3JjZWQgPyBwcm9wZXJ0eVxuICAgICAgOiBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTICYmIEludDhBcnJheVByb3RvdHlwZVtLRVldIHx8IHByb3BlcnR5LCBvcHRpb25zKTtcbiAgfVxufTtcblxudmFyIGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QgPSBmdW5jdGlvbiAoS0VZLCBwcm9wZXJ0eSwgZm9yY2VkKSB7XG4gIHZhciBBUlJBWSwgVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xuICBpZiAoIURFU0NSSVBUT1JTKSByZXR1cm47XG4gIGlmIChzZXRQcm90b3R5cGVPZikge1xuICAgIGlmIChmb3JjZWQpIGZvciAoQVJSQVkgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QpIHtcbiAgICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IGdsb2JhbFRoaXNbQVJSQVldO1xuICAgICAgaWYgKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciAmJiBoYXNPd24oVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBLRVkpKSB0cnkge1xuICAgICAgICBkZWxldGUgVHlwZWRBcnJheUNvbnN0cnVjdG9yW0tFWV07XG4gICAgICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gICAgfVxuICAgIGlmICghVHlwZWRBcnJheVtLRVldIHx8IGZvcmNlZCkge1xuICAgICAgLy8gVjggfiBDaHJvbWUgNDktNTAgYCVUeXBlZEFycmF5JWAgbWV0aG9kcyBhcmUgbm9uLXdyaXRhYmxlIG5vbi1jb25maWd1cmFibGVcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWZpbmVCdWlsdEluKFR5cGVkQXJyYXksIEtFWSwgZm9yY2VkID8gcHJvcGVydHkgOiBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTICYmIFR5cGVkQXJyYXlbS0VZXSB8fCBwcm9wZXJ0eSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gICAgfSBlbHNlIHJldHVybjtcbiAgfVxuICBmb3IgKEFSUkFZIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gZ2xvYmFsVGhpc1tBUlJBWV07XG4gICAgaWYgKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciAmJiAoIVR5cGVkQXJyYXlDb25zdHJ1Y3RvcltLRVldIHx8IGZvcmNlZCkpIHtcbiAgICAgIGRlZmluZUJ1aWx0SW4oVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBLRVksIHByb3BlcnR5KTtcbiAgICB9XG4gIH1cbn07XG5cbmZvciAoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkge1xuICBDb25zdHJ1Y3RvciA9IGdsb2JhbFRoaXNbTkFNRV07XG4gIFByb3RvdHlwZSA9IENvbnN0cnVjdG9yICYmIENvbnN0cnVjdG9yLnByb3RvdHlwZTtcbiAgaWYgKFByb3RvdHlwZSkgZW5mb3JjZUludGVybmFsU3RhdGUoUHJvdG90eXBlKVtUWVBFRF9BUlJBWV9DT05TVFJVQ1RPUl0gPSBDb25zdHJ1Y3RvcjtcbiAgZWxzZSBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTID0gZmFsc2U7XG59XG5cbmZvciAoTkFNRSBpbiBCaWdJbnRBcnJheUNvbnN0cnVjdG9yc0xpc3QpIHtcbiAgQ29uc3RydWN0b3IgPSBnbG9iYWxUaGlzW05BTUVdO1xuICBQcm90b3R5cGUgPSBDb25zdHJ1Y3RvciAmJiBDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIGlmIChQcm90b3R5cGUpIGVuZm9yY2VJbnRlcm5hbFN0YXRlKFByb3RvdHlwZSlbVFlQRURfQVJSQVlfQ09OU1RSVUNUT1JdID0gQ29uc3RydWN0b3I7XG59XG5cbi8vIFdlYktpdCBidWcgLSB0eXBlZCBhcnJheXMgY29uc3RydWN0b3JzIHByb3RvdHlwZSBpcyBPYmplY3QucHJvdG90eXBlXG5pZiAoIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgfHwgIWlzQ2FsbGFibGUoVHlwZWRBcnJheSkgfHwgVHlwZWRBcnJheSA9PT0gRnVuY3Rpb24ucHJvdG90eXBlKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3cgLS0gc2FmZVxuICBUeXBlZEFycmF5ID0gZnVuY3Rpb24gVHlwZWRBcnJheSgpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbmNvcnJlY3QgaW52b2NhdGlvbicpO1xuICB9O1xuICBpZiAoTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUykgZm9yIChOQU1FIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gICAgaWYgKGdsb2JhbFRoaXNbTkFNRV0pIHNldFByb3RvdHlwZU9mKGdsb2JhbFRoaXNbTkFNRV0sIFR5cGVkQXJyYXkpO1xuICB9XG59XG5cbmlmICghTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyB8fCAhVHlwZWRBcnJheVByb3RvdHlwZSB8fCBUeXBlZEFycmF5UHJvdG90eXBlID09PSBPYmplY3RQcm90b3R5cGUpIHtcbiAgVHlwZWRBcnJheVByb3RvdHlwZSA9IFR5cGVkQXJyYXkucHJvdG90eXBlO1xuICBpZiAoTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUykgZm9yIChOQU1FIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gICAgaWYgKGdsb2JhbFRoaXNbTkFNRV0pIHNldFByb3RvdHlwZU9mKGdsb2JhbFRoaXNbTkFNRV0ucHJvdG90eXBlLCBUeXBlZEFycmF5UHJvdG90eXBlKTtcbiAgfVxufVxuXG4vLyBXZWJLaXQgYnVnIC0gb25lIG1vcmUgb2JqZWN0IGluIFVpbnQ4Q2xhbXBlZEFycmF5IHByb3RvdHlwZSBjaGFpblxuaWYgKE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgJiYgZ2V0UHJvdG90eXBlT2YoVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUpICE9PSBUeXBlZEFycmF5UHJvdG90eXBlKSB7XG4gIHNldFByb3RvdHlwZU9mKFVpbnQ4Q2xhbXBlZEFycmF5UHJvdG90eXBlLCBUeXBlZEFycmF5UHJvdG90eXBlKTtcbn1cblxuaWYgKERFU0NSSVBUT1JTICYmICFoYXNPd24oVHlwZWRBcnJheVByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRykpIHtcbiAgVFlQRURfQVJSQVlfVEFHX1JFUVVJUkVEID0gdHJ1ZTtcbiAgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKFR5cGVkQXJyYXlQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaXNPYmplY3QodGhpcykgPyB0aGlzW1RZUEVEX0FSUkFZX1RBR10gOiB1bmRlZmluZWQ7XG4gICAgfVxuICB9KTtcbiAgZm9yIChOQU1FIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSBpZiAoZ2xvYmFsVGhpc1tOQU1FXSkge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShnbG9iYWxUaGlzW05BTUVdLCBUWVBFRF9BUlJBWV9UQUcsIE5BTUUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOiBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTLFxuICBUWVBFRF9BUlJBWV9UQUc6IFRZUEVEX0FSUkFZX1RBR19SRVFVSVJFRCAmJiBUWVBFRF9BUlJBWV9UQUcsXG4gIGFUeXBlZEFycmF5OiBhVHlwZWRBcnJheSxcbiAgYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjogYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcixcbiAgZXhwb3J0VHlwZWRBcnJheU1ldGhvZDogZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxcbiAgZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZDogZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZCxcbiAgZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yOiBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IsXG4gIGlzVmlldzogaXNWaWV3LFxuICBpc1R5cGVkQXJyYXk6IGlzVHlwZWRBcnJheSxcbiAgVHlwZWRBcnJheTogVHlwZWRBcnJheSxcbiAgVHlwZWRBcnJheVByb3RvdHlwZTogVHlwZWRBcnJheVByb3RvdHlwZVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBOQVRJVkVfQVJSQVlfQlVGRkVSID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci1iYXNpYy1kZXRlY3Rpb24nKTtcbnZhciBGdW5jdGlvbk5hbWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZScpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgZGVmaW5lQnVpbHRJbnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWlucycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1pbnN0YW5jZScpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXgnKTtcbnZhciBmcm91bmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC1mcm91bmQnKTtcbnZhciBJRUVFNzU0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llZWU3NTQnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgYXJyYXlGaWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZpbGwnKTtcbnZhciBhcnJheVNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG52YXIgaW5oZXJpdElmUmVxdWlyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZCcpO1xudmFyIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBQUk9QRVJfRlVOQ1RJT05fTkFNRSA9IEZ1bmN0aW9uTmFtZS5QUk9QRVI7XG52YXIgQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUgPSBGdW5jdGlvbk5hbWUuQ09ORklHVVJBQkxFO1xudmFyIEFSUkFZX0JVRkZFUiA9ICdBcnJheUJ1ZmZlcic7XG52YXIgREFUQV9WSUVXID0gJ0RhdGFWaWV3JztcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBXUk9OR19MRU5HVEggPSAnV3JvbmcgbGVuZ3RoJztcbnZhciBXUk9OR19JTkRFWCA9ICdXcm9uZyBpbmRleCc7XG52YXIgZ2V0SW50ZXJuYWxBcnJheUJ1ZmZlclN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoQVJSQVlfQlVGRkVSKTtcbnZhciBnZXRJbnRlcm5hbERhdGFWaWV3U3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihEQVRBX1ZJRVcpO1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBOYXRpdmVBcnJheUJ1ZmZlciA9IGdsb2JhbFRoaXNbQVJSQVlfQlVGRkVSXTtcbnZhciAkQXJyYXlCdWZmZXIgPSBOYXRpdmVBcnJheUJ1ZmZlcjtcbnZhciBBcnJheUJ1ZmZlclByb3RvdHlwZSA9ICRBcnJheUJ1ZmZlciAmJiAkQXJyYXlCdWZmZXJbUFJPVE9UWVBFXTtcbnZhciAkRGF0YVZpZXcgPSBnbG9iYWxUaGlzW0RBVEFfVklFV107XG52YXIgRGF0YVZpZXdQcm90b3R5cGUgPSAkRGF0YVZpZXcgJiYgJERhdGFWaWV3W1BST1RPVFlQRV07XG52YXIgT2JqZWN0UHJvdG90eXBlID0gT2JqZWN0LnByb3RvdHlwZTtcbnZhciBBcnJheSA9IGdsb2JhbFRoaXMuQXJyYXk7XG52YXIgUmFuZ2VFcnJvciA9IGdsb2JhbFRoaXMuUmFuZ2VFcnJvcjtcbnZhciBmaWxsID0gdW5jdXJyeVRoaXMoYXJyYXlGaWxsKTtcbnZhciByZXZlcnNlID0gdW5jdXJyeVRoaXMoW10ucmV2ZXJzZSk7XG5cbnZhciBwYWNrSUVFRTc1NCA9IElFRUU3NTQucGFjaztcbnZhciB1bnBhY2tJRUVFNzU0ID0gSUVFRTc1NC51bnBhY2s7XG5cbnZhciBwYWNrSW50OCA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgcmV0dXJuIFtudW1iZXIgJiAweEZGXTtcbn07XG5cbnZhciBwYWNrSW50MTYgPSBmdW5jdGlvbiAobnVtYmVyKSB7XG4gIHJldHVybiBbbnVtYmVyICYgMHhGRiwgbnVtYmVyID4+IDggJiAweEZGXTtcbn07XG5cbnZhciBwYWNrSW50MzIgPSBmdW5jdGlvbiAobnVtYmVyKSB7XG4gIHJldHVybiBbbnVtYmVyICYgMHhGRiwgbnVtYmVyID4+IDggJiAweEZGLCBudW1iZXIgPj4gMTYgJiAweEZGLCBudW1iZXIgPj4gMjQgJiAweEZGXTtcbn07XG5cbnZhciB1bnBhY2tJbnQzMiA9IGZ1bmN0aW9uIChidWZmZXIpIHtcbiAgcmV0dXJuIGJ1ZmZlclszXSA8PCAyNCB8IGJ1ZmZlclsyXSA8PCAxNiB8IGJ1ZmZlclsxXSA8PCA4IHwgYnVmZmVyWzBdO1xufTtcblxudmFyIHBhY2tGbG9hdDMyID0gZnVuY3Rpb24gKG51bWJlcikge1xuICByZXR1cm4gcGFja0lFRUU3NTQoZnJvdW5kKG51bWJlciksIDIzLCA0KTtcbn07XG5cbnZhciBwYWNrRmxvYXQ2NCA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgcmV0dXJuIHBhY2tJRUVFNzU0KG51bWJlciwgNTIsIDgpO1xufTtcblxudmFyIGFkZEdldHRlciA9IGZ1bmN0aW9uIChDb25zdHJ1Y3Rvciwga2V5LCBnZXRJbnRlcm5hbFN0YXRlKSB7XG4gIGRlZmluZUJ1aWx0SW5BY2Nlc3NvcihDb25zdHJ1Y3RvcltQUk9UT1RZUEVdLCBrZXksIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKVtrZXldO1xuICAgIH1cbiAgfSk7XG59O1xuXG52YXIgZ2V0ID0gZnVuY3Rpb24gKHZpZXcsIGNvdW50LCBpbmRleCwgaXNMaXR0bGVFbmRpYW4pIHtcbiAgdmFyIHN0b3JlID0gZ2V0SW50ZXJuYWxEYXRhVmlld1N0YXRlKHZpZXcpO1xuICB2YXIgaW50SW5kZXggPSB0b0luZGV4KGluZGV4KTtcbiAgdmFyIGJvb2xJc0xpdHRsZUVuZGlhbiA9ICEhaXNMaXR0bGVFbmRpYW47XG4gIGlmIChpbnRJbmRleCArIGNvdW50ID4gc3RvcmUuYnl0ZUxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoV1JPTkdfSU5ERVgpO1xuICB2YXIgYnl0ZXMgPSBzdG9yZS5ieXRlcztcbiAgdmFyIHN0YXJ0ID0gaW50SW5kZXggKyBzdG9yZS5ieXRlT2Zmc2V0O1xuICB2YXIgcGFjayA9IGFycmF5U2xpY2UoYnl0ZXMsIHN0YXJ0LCBzdGFydCArIGNvdW50KTtcbiAgcmV0dXJuIGJvb2xJc0xpdHRsZUVuZGlhbiA/IHBhY2sgOiByZXZlcnNlKHBhY2spO1xufTtcblxudmFyIHNldCA9IGZ1bmN0aW9uICh2aWV3LCBjb3VudCwgaW5kZXgsIGNvbnZlcnNpb24sIHZhbHVlLCBpc0xpdHRsZUVuZGlhbikge1xuICB2YXIgc3RvcmUgPSBnZXRJbnRlcm5hbERhdGFWaWV3U3RhdGUodmlldyk7XG4gIHZhciBpbnRJbmRleCA9IHRvSW5kZXgoaW5kZXgpO1xuICB2YXIgcGFjayA9IGNvbnZlcnNpb24oK3ZhbHVlKTtcbiAgdmFyIGJvb2xJc0xpdHRsZUVuZGlhbiA9ICEhaXNMaXR0bGVFbmRpYW47XG4gIGlmIChpbnRJbmRleCArIGNvdW50ID4gc3RvcmUuYnl0ZUxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoV1JPTkdfSU5ERVgpO1xuICB2YXIgYnl0ZXMgPSBzdG9yZS5ieXRlcztcbiAgdmFyIHN0YXJ0ID0gaW50SW5kZXggKyBzdG9yZS5ieXRlT2Zmc2V0O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyBpKyspIGJ5dGVzW3N0YXJ0ICsgaV0gPSBwYWNrW2Jvb2xJc0xpdHRsZUVuZGlhbiA/IGkgOiBjb3VudCAtIGkgLSAxXTtcbn07XG5cbmlmICghTkFUSVZFX0FSUkFZX0JVRkZFUikge1xuICAkQXJyYXlCdWZmZXIgPSBmdW5jdGlvbiBBcnJheUJ1ZmZlcihsZW5ndGgpIHtcbiAgICBhbkluc3RhbmNlKHRoaXMsIEFycmF5QnVmZmVyUHJvdG90eXBlKTtcbiAgICB2YXIgYnl0ZUxlbmd0aCA9IHRvSW5kZXgobGVuZ3RoKTtcbiAgICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICAgIHR5cGU6IEFSUkFZX0JVRkZFUixcbiAgICAgIGJ5dGVzOiBmaWxsKEFycmF5KGJ5dGVMZW5ndGgpLCAwKSxcbiAgICAgIGJ5dGVMZW5ndGg6IGJ5dGVMZW5ndGhcbiAgICB9KTtcbiAgICBpZiAoIURFU0NSSVBUT1JTKSB7XG4gICAgICB0aGlzLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoO1xuICAgICAgdGhpcy5kZXRhY2hlZCA9IGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICBBcnJheUJ1ZmZlclByb3RvdHlwZSA9ICRBcnJheUJ1ZmZlcltQUk9UT1RZUEVdO1xuXG4gICREYXRhVmlldyA9IGZ1bmN0aW9uIERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCwgYnl0ZUxlbmd0aCkge1xuICAgIGFuSW5zdGFuY2UodGhpcywgRGF0YVZpZXdQcm90b3R5cGUpO1xuICAgIGFuSW5zdGFuY2UoYnVmZmVyLCBBcnJheUJ1ZmZlclByb3RvdHlwZSk7XG4gICAgdmFyIGJ1ZmZlclN0YXRlID0gZ2V0SW50ZXJuYWxBcnJheUJ1ZmZlclN0YXRlKGJ1ZmZlcik7XG4gICAgdmFyIGJ1ZmZlckxlbmd0aCA9IGJ1ZmZlclN0YXRlLmJ5dGVMZW5ndGg7XG4gICAgdmFyIG9mZnNldCA9IHRvSW50ZWdlck9ySW5maW5pdHkoYnl0ZU9mZnNldCk7XG4gICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ID4gYnVmZmVyTGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignV3Jvbmcgb2Zmc2V0Jyk7XG4gICAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggPT09IHVuZGVmaW5lZCA/IGJ1ZmZlckxlbmd0aCAtIG9mZnNldCA6IHRvTGVuZ3RoKGJ5dGVMZW5ndGgpO1xuICAgIGlmIChvZmZzZXQgKyBieXRlTGVuZ3RoID4gYnVmZmVyTGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgICAgdHlwZTogREFUQV9WSUVXLFxuICAgICAgYnVmZmVyOiBidWZmZXIsXG4gICAgICBieXRlTGVuZ3RoOiBieXRlTGVuZ3RoLFxuICAgICAgYnl0ZU9mZnNldDogb2Zmc2V0LFxuICAgICAgYnl0ZXM6IGJ1ZmZlclN0YXRlLmJ5dGVzXG4gICAgfSk7XG4gICAgaWYgKCFERVNDUklQVE9SUykge1xuICAgICAgdGhpcy5idWZmZXIgPSBidWZmZXI7XG4gICAgICB0aGlzLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoO1xuICAgICAgdGhpcy5ieXRlT2Zmc2V0ID0gb2Zmc2V0O1xuICAgIH1cbiAgfTtcblxuICBEYXRhVmlld1Byb3RvdHlwZSA9ICREYXRhVmlld1tQUk9UT1RZUEVdO1xuXG4gIGlmIChERVNDUklQVE9SUykge1xuICAgIGFkZEdldHRlcigkQXJyYXlCdWZmZXIsICdieXRlTGVuZ3RoJywgZ2V0SW50ZXJuYWxBcnJheUJ1ZmZlclN0YXRlKTtcbiAgICBhZGRHZXR0ZXIoJERhdGFWaWV3LCAnYnVmZmVyJywgZ2V0SW50ZXJuYWxEYXRhVmlld1N0YXRlKTtcbiAgICBhZGRHZXR0ZXIoJERhdGFWaWV3LCAnYnl0ZUxlbmd0aCcsIGdldEludGVybmFsRGF0YVZpZXdTdGF0ZSk7XG4gICAgYWRkR2V0dGVyKCREYXRhVmlldywgJ2J5dGVPZmZzZXQnLCBnZXRJbnRlcm5hbERhdGFWaWV3U3RhdGUpO1xuICB9XG5cbiAgZGVmaW5lQnVpbHRJbnMoRGF0YVZpZXdQcm90b3R5cGUsIHtcbiAgICBnZXRJbnQ4OiBmdW5jdGlvbiBnZXRJbnQ4KGJ5dGVPZmZzZXQpIHtcbiAgICAgIHJldHVybiBnZXQodGhpcywgMSwgYnl0ZU9mZnNldClbMF0gPDwgMjQgPj4gMjQ7XG4gICAgfSxcbiAgICBnZXRVaW50ODogZnVuY3Rpb24gZ2V0VWludDgoYnl0ZU9mZnNldCkge1xuICAgICAgcmV0dXJuIGdldCh0aGlzLCAxLCBieXRlT2Zmc2V0KVswXTtcbiAgICB9LFxuICAgIGdldEludDE2OiBmdW5jdGlvbiBnZXRJbnQxNihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICB2YXIgYnl0ZXMgPSBnZXQodGhpcywgMiwgYnl0ZU9mZnNldCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiBmYWxzZSk7XG4gICAgICByZXR1cm4gKGJ5dGVzWzFdIDw8IDggfCBieXRlc1swXSkgPDwgMTYgPj4gMTY7XG4gICAgfSxcbiAgICBnZXRVaW50MTY6IGZ1bmN0aW9uIGdldFVpbnQxNihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICB2YXIgYnl0ZXMgPSBnZXQodGhpcywgMiwgYnl0ZU9mZnNldCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiBmYWxzZSk7XG4gICAgICByZXR1cm4gYnl0ZXNbMV0gPDwgOCB8IGJ5dGVzWzBdO1xuICAgIH0sXG4gICAgZ2V0SW50MzI6IGZ1bmN0aW9uIGdldEludDMyKGJ5dGVPZmZzZXQgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHJldHVybiB1bnBhY2tJbnQzMihnZXQodGhpcywgNCwgYnl0ZU9mZnNldCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiBmYWxzZSkpO1xuICAgIH0sXG4gICAgZ2V0VWludDMyOiBmdW5jdGlvbiBnZXRVaW50MzIoYnl0ZU9mZnNldCAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgcmV0dXJuIHVucGFja0ludDMyKGdldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlKSkgPj4+IDA7XG4gICAgfSxcbiAgICBnZXRGbG9hdDMyOiBmdW5jdGlvbiBnZXRGbG9hdDMyKGJ5dGVPZmZzZXQgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHJldHVybiB1bnBhY2tJRUVFNzU0KGdldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IGZhbHNlKSwgMjMpO1xuICAgIH0sXG4gICAgZ2V0RmxvYXQ2NDogZnVuY3Rpb24gZ2V0RmxvYXQ2NChieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSUVFRTc1NChnZXQodGhpcywgOCwgYnl0ZU9mZnNldCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiBmYWxzZSksIDUyKTtcbiAgICB9LFxuICAgIHNldEludDg6IGZ1bmN0aW9uIHNldEludDgoYnl0ZU9mZnNldCwgdmFsdWUpIHtcbiAgICAgIHNldCh0aGlzLCAxLCBieXRlT2Zmc2V0LCBwYWNrSW50OCwgdmFsdWUpO1xuICAgIH0sXG4gICAgc2V0VWludDg6IGZ1bmN0aW9uIHNldFVpbnQ4KGJ5dGVPZmZzZXQsIHZhbHVlKSB7XG4gICAgICBzZXQodGhpcywgMSwgYnl0ZU9mZnNldCwgcGFja0ludDgsIHZhbHVlKTtcbiAgICB9LFxuICAgIHNldEludDE2OiBmdW5jdGlvbiBzZXRJbnQxNihieXRlT2Zmc2V0LCB2YWx1ZSAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgc2V0KHRoaXMsIDIsIGJ5dGVPZmZzZXQsIHBhY2tJbnQxNiwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0VWludDE2OiBmdW5jdGlvbiBzZXRVaW50MTYoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCAyLCBieXRlT2Zmc2V0LCBwYWNrSW50MTYsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IGZhbHNlKTtcbiAgICB9LFxuICAgIHNldEludDMyOiBmdW5jdGlvbiBzZXRJbnQzMihieXRlT2Zmc2V0LCB2YWx1ZSAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgc2V0KHRoaXMsIDQsIGJ5dGVPZmZzZXQsIHBhY2tJbnQzMiwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0VWludDMyOiBmdW5jdGlvbiBzZXRVaW50MzIoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBwYWNrSW50MzIsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IGZhbHNlKTtcbiAgICB9LFxuICAgIHNldEZsb2F0MzI6IGZ1bmN0aW9uIHNldEZsb2F0MzIoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBwYWNrRmxvYXQzMiwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0RmxvYXQ2NDogZnVuY3Rpb24gc2V0RmxvYXQ2NChieXRlT2Zmc2V0LCB2YWx1ZSAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgc2V0KHRoaXMsIDgsIGJ5dGVPZmZzZXQsIHBhY2tGbG9hdDY0LCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiBmYWxzZSk7XG4gICAgfVxuICB9KTtcbn0gZWxzZSB7XG4gIHZhciBJTkNPUlJFQ1RfQVJSQVlfQlVGRkVSX05BTUUgPSBQUk9QRVJfRlVOQ1RJT05fTkFNRSAmJiBOYXRpdmVBcnJheUJ1ZmZlci5uYW1lICE9PSBBUlJBWV9CVUZGRVI7XG4gIC8qIGVzbGludC1kaXNhYmxlIG5vLW5ldywgc29uYXIvaW5jb25zaXN0ZW50LWZ1bmN0aW9uLWNhbGwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbiAgaWYgKCFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgTmF0aXZlQXJyYXlCdWZmZXIoMSk7XG4gIH0pIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgbmV3IE5hdGl2ZUFycmF5QnVmZmVyKC0xKTtcbiAgfSkgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIG5ldyBOYXRpdmVBcnJheUJ1ZmZlcigpO1xuICAgIG5ldyBOYXRpdmVBcnJheUJ1ZmZlcigxLjUpO1xuICAgIG5ldyBOYXRpdmVBcnJheUJ1ZmZlcihOYU4pO1xuICAgIHJldHVybiBOYXRpdmVBcnJheUJ1ZmZlci5sZW5ndGggIT09IDEgfHwgSU5DT1JSRUNUX0FSUkFZX0JVRkZFUl9OQU1FICYmICFDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRTtcbiAgfSkpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLW5ldywgc29uYXIvaW5jb25zaXN0ZW50LWZ1bmN0aW9uLWNhbGwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbiAgICAkQXJyYXlCdWZmZXIgPSBmdW5jdGlvbiBBcnJheUJ1ZmZlcihsZW5ndGgpIHtcbiAgICAgIGFuSW5zdGFuY2UodGhpcywgQXJyYXlCdWZmZXJQcm90b3R5cGUpO1xuICAgICAgcmV0dXJuIGluaGVyaXRJZlJlcXVpcmVkKG5ldyBOYXRpdmVBcnJheUJ1ZmZlcih0b0luZGV4KGxlbmd0aCkpLCB0aGlzLCAkQXJyYXlCdWZmZXIpO1xuICAgIH07XG5cbiAgICAkQXJyYXlCdWZmZXJbUFJPVE9UWVBFXSA9IEFycmF5QnVmZmVyUHJvdG90eXBlO1xuXG4gICAgQXJyYXlCdWZmZXJQcm90b3R5cGUuY29uc3RydWN0b3IgPSAkQXJyYXlCdWZmZXI7XG5cbiAgICBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKCRBcnJheUJ1ZmZlciwgTmF0aXZlQXJyYXlCdWZmZXIpO1xuICB9IGVsc2UgaWYgKElOQ09SUkVDVF9BUlJBWV9CVUZGRVJfTkFNRSAmJiBDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRSkge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShOYXRpdmVBcnJheUJ1ZmZlciwgJ25hbWUnLCBBUlJBWV9CVUZGRVIpO1xuICB9XG5cbiAgLy8gV2ViS2l0IGJ1ZyAtIHRoZSBzYW1lIHBhcmVudCBwcm90b3R5cGUgZm9yIHR5cGVkIGFycmF5cyBhbmQgZGF0YSB2aWV3XG4gIGlmIChzZXRQcm90b3R5cGVPZiAmJiBnZXRQcm90b3R5cGVPZihEYXRhVmlld1Byb3RvdHlwZSkgIT09IE9iamVjdFByb3RvdHlwZSkge1xuICAgIHNldFByb3RvdHlwZU9mKERhdGFWaWV3UHJvdG90eXBlLCBPYmplY3RQcm90b3R5cGUpO1xuICB9XG5cbiAgLy8gaU9TIFNhZmFyaSA3LnggYnVnXG4gIHZhciB0ZXN0VmlldyA9IG5ldyAkRGF0YVZpZXcobmV3ICRBcnJheUJ1ZmZlcigyKSk7XG4gIHZhciAkc2V0SW50OCA9IHVuY3VycnlUaGlzKERhdGFWaWV3UHJvdG90eXBlLnNldEludDgpO1xuICB0ZXN0Vmlldy5zZXRJbnQ4KDAsIDIxNDc0ODM2NDgpO1xuICB0ZXN0Vmlldy5zZXRJbnQ4KDEsIDIxNDc0ODM2NDkpO1xuICBpZiAodGVzdFZpZXcuZ2V0SW50OCgwKSB8fCAhdGVzdFZpZXcuZ2V0SW50OCgxKSkgZGVmaW5lQnVpbHRJbnMoRGF0YVZpZXdQcm90b3R5cGUsIHtcbiAgICBzZXRJbnQ4OiBmdW5jdGlvbiBzZXRJbnQ4KGJ5dGVPZmZzZXQsIHZhbHVlKSB7XG4gICAgICAkc2V0SW50OCh0aGlzLCBieXRlT2Zmc2V0LCB2YWx1ZSA8PCAyNCA+PiAyNCk7XG4gICAgfSxcbiAgICBzZXRVaW50ODogZnVuY3Rpb24gc2V0VWludDgoYnl0ZU9mZnNldCwgdmFsdWUpIHtcbiAgICAgICRzZXRJbnQ4KHRoaXMsIGJ5dGVPZmZzZXQsIHZhbHVlIDw8IDI0ID4+IDI0KTtcbiAgICB9XG4gIH0sIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuXG5zZXRUb1N0cmluZ1RhZygkQXJyYXlCdWZmZXIsIEFSUkFZX0JVRkZFUik7XG5zZXRUb1N0cmluZ1RhZygkRGF0YVZpZXcsIERBVEFfVklFVyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBBcnJheUJ1ZmZlcjogJEFycmF5QnVmZmVyLFxuICBEYXRhVmlldzogJERhdGFWaWV3XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgZGVsZXRlUHJvcGVydHlPclRocm93ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlbGV0ZS1wcm9wZXJ0eS1vci10aHJvdycpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbmAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5jb3B5d2l0aGluXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWNvcHl3aXRoaW4gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBbXS5jb3B5V2l0aGluIHx8IGZ1bmN0aW9uIGNvcHlXaXRoaW4odGFyZ2V0IC8qID0gMCAqLywgc3RhcnQgLyogPSAwLCBlbmQgPSBAbGVuZ3RoICovKSB7XG4gIHZhciBPID0gdG9PYmplY3QodGhpcyk7XG4gIHZhciBsZW4gPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgdmFyIHRvID0gdG9BYnNvbHV0ZUluZGV4KHRhcmdldCwgbGVuKTtcbiAgdmFyIGZyb20gPSB0b0Fic29sdXRlSW5kZXgoc3RhcnQsIGxlbik7XG4gIHZhciBlbmQgPSBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZDtcbiAgdmFyIGNvdW50ID0gbWluKChlbmQgPT09IHVuZGVmaW5lZCA/IGxlbiA6IHRvQWJzb2x1dGVJbmRleChlbmQsIGxlbikpIC0gZnJvbSwgbGVuIC0gdG8pO1xuICB2YXIgaW5jID0gMTtcbiAgaWYgKGZyb20gPCB0byAmJiB0byA8IGZyb20gKyBjb3VudCkge1xuICAgIGluYyA9IC0xO1xuICAgIGZyb20gKz0gY291bnQgLSAxO1xuICAgIHRvICs9IGNvdW50IC0gMTtcbiAgfVxuICB3aGlsZSAoY291bnQtLSA+IDApIHtcbiAgICBpZiAoZnJvbSBpbiBPKSBPW3RvXSA9IE9bZnJvbV07XG4gICAgZWxzZSBkZWxldGVQcm9wZXJ0eU9yVGhyb3coTywgdG8pO1xuICAgIHRvICs9IGluYztcbiAgICBmcm9tICs9IGluYztcbiAgfSByZXR1cm4gTztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5maWxsYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbGxcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZmlsbCh2YWx1ZSAvKiAsIHN0YXJ0ID0gMCwgZW5kID0gQGxlbmd0aCAqLykge1xuICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICB2YXIgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoYXJndW1lbnRzTGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgbGVuZ3RoKTtcbiAgdmFyIGVuZCA9IGFyZ3VtZW50c0xlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQ7XG4gIHZhciBlbmRQb3MgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IHRvQWJzb2x1dGVJbmRleChlbmQsIGxlbmd0aCk7XG4gIHdoaWxlIChlbmRQb3MgPiBpbmRleCkgT1tpbmRleCsrXSA9IHZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIGxpc3QsICRsZW5ndGgpIHtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyID8gJGxlbmd0aCA6IGxlbmd0aE9mQXJyYXlMaWtlKGxpc3QpO1xuICB2YXIgcmVzdWx0ID0gbmV3IENvbnN0cnVjdG9yKGxlbmd0aCk7XG4gIHdoaWxlIChsZW5ndGggPiBpbmRleCkgcmVzdWx0W2luZGV4XSA9IGxpc3RbaW5kZXgrK107XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBpbmRleE9mLCBpbmNsdWRlcyB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX0lOQ0xVREVTKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGVsLCBmcm9tSW5kZXgpIHtcbiAgICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdCgkdGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKE8pO1xuICAgIGlmIChsZW5ndGggPT09IDApIHJldHVybiAhSVNfSU5DTFVERVMgJiYgLTE7XG4gICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTtcbiAgICB2YXIgdmFsdWU7XG4gICAgLy8gQXJyYXkjaW5jbHVkZXMgdXNlcyBTYW1lVmFsdWVaZXJvIGVxdWFsaXR5IGFsZ29yaXRobVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9PSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7XG4gICAgICB2YWx1ZSA9IE9baW5kZXgrK107XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgICAgaWYgKHZhbHVlICE9PSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmaW5kTGFzdCwgZmluZExhc3RJbmRleCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgdmFyIElTX0ZJTkRfTEFTVF9JTkRFWCA9IFRZUEUgPT09IDE7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGNhbGxiYWNrZm4sIHRoYXQpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGluZGV4ID0gbGVuZ3RoT2ZBcnJheUxpa2Uoc2VsZik7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIHRoYXQpO1xuICAgIHZhciB2YWx1ZSwgcmVzdWx0O1xuICAgIHdoaWxlIChpbmRleC0tID4gMCkge1xuICAgICAgdmFsdWUgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlc3VsdCA9IGJvdW5kRnVuY3Rpb24odmFsdWUsIGluZGV4LCBPKTtcbiAgICAgIGlmIChyZXN1bHQpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICBjYXNlIDA6IHJldHVybiB2YWx1ZTsgLy8gZmluZExhc3RcbiAgICAgICAgY2FzZSAxOiByZXR1cm4gaW5kZXg7IC8vIGZpbmRMYXN0SW5kZXhcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIElTX0ZJTkRfTEFTVF9JTkRFWCA/IC0xIDogdW5kZWZpbmVkO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmluZExhc3RgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1hcnJheS1maW5kLWZyb20tbGFzdFxuICBmaW5kTGFzdDogY3JlYXRlTWV0aG9kKDApLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0SW5kZXhgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1hcnJheS1maW5kLWZyb20tbGFzdFxuICBmaW5kTGFzdEluZGV4OiBjcmVhdGVNZXRob2QoMSlcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBhcnJheVNwZWNpZXNDcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcblxudmFyIHB1c2ggPSB1bmN1cnJ5VGhpcyhbXS5wdXNoKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IGZvckVhY2gsIG1hcCwgZmlsdGVyLCBzb21lLCBldmVyeSwgZmluZCwgZmluZEluZGV4LCBmaWx0ZXJSZWplY3QgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHZhciBJU19NQVAgPSBUWVBFID09PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PT0gMjtcbiAgdmFyIElTX1NPTUUgPSBUWVBFID09PSAzO1xuICB2YXIgSVNfRVZFUlkgPSBUWVBFID09PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT09IDY7XG4gIHZhciBJU19GSUxURVJfUkVKRUNUID0gVFlQRSA9PT0gNztcbiAgdmFyIE5PX0hPTEVTID0gVFlQRSA9PT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0LCBzcGVjaWZpY0NyZWF0ZSkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2Uoc2VsZik7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIHRoYXQpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGNyZWF0ZSA9IHNwZWNpZmljQ3JlYXRlIHx8IGFycmF5U3BlY2llc0NyZWF0ZTtcbiAgICB2YXIgdGFyZ2V0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSIHx8IElTX0ZJTFRFUl9SRUpFQ1QgPyBjcmVhdGUoJHRoaXMsIDApIDogdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSwgcmVzdWx0O1xuICAgIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoTk9fSE9MRVMgfHwgaW5kZXggaW4gc2VsZikge1xuICAgICAgdmFsdWUgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlc3VsdCA9IGJvdW5kRnVuY3Rpb24odmFsdWUsIGluZGV4LCBPKTtcbiAgICAgIGlmIChUWVBFKSB7XG4gICAgICAgIGlmIChJU19NQVApIHRhcmdldFtpbmRleF0gPSByZXN1bHQ7IC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXN1bHQpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAvLyBzb21lXG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gdmFsdWU7ICAgICAgICAgICAgIC8vIGZpbmRcbiAgICAgICAgICBjYXNlIDY6IHJldHVybiBpbmRleDsgICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclxuICAgICAgICB9IGVsc2Ugc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgIC8vIGV2ZXJ5XG4gICAgICAgICAgY2FzZSA3OiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclJlamVjdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBJU19GSU5EX0lOREVYID8gLTEgOiBJU19TT01FIHx8IElTX0VWRVJZID8gSVNfRVZFUlkgOiB0YXJnZXQ7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuICBmb3JFYWNoOiBjcmVhdGVNZXRob2QoMCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUubWFwXG4gIG1hcDogY3JlYXRlTWV0aG9kKDEpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbHRlclxuICBmaWx0ZXI6IGNyZWF0ZU1ldGhvZCgyKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5zb21lYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc29tZVxuICBzb21lOiBjcmVhdGVNZXRob2QoMyksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5ldmVyeVxuICBldmVyeTogY3JlYXRlTWV0aG9kKDQpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kXG4gIGZpbmQ6IGNyZWF0ZU1ldGhvZCg1KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhcbiAgZmluZEluZGV4OiBjcmVhdGVNZXRob2QoNiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyUmVqZWN0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXJyYXktZmlsdGVyaW5nXG4gIGZpbHRlclJlamVjdDogY3JlYXRlTWV0aG9kKDcpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgZXMvbm8tYXJyYXktcHJvdG90eXBlLWxhc3RpbmRleG9mIC0tIHNhZmUgKi9cbnZhciBhcHBseSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1hcHBseScpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG5cbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciAkbGFzdEluZGV4T2YgPSBbXS5sYXN0SW5kZXhPZjtcbnZhciBORUdBVElWRV9aRVJPID0gISEkbGFzdEluZGV4T2YgJiYgMSAvIFsxXS5sYXN0SW5kZXhPZigxLCAtMCkgPCAwO1xudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdsYXN0SW5kZXhPZicpO1xudmFyIEZPUkNFRCA9IE5FR0FUSVZFX1pFUk8gfHwgIVNUUklDVF9NRVRIT0Q7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2ZgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUubGFzdGluZGV4b2Zcbm1vZHVsZS5leHBvcnRzID0gRk9SQ0VEID8gZnVuY3Rpb24gbGFzdEluZGV4T2Yoc2VhcmNoRWxlbWVudCAvKiAsIGZyb21JbmRleCA9IEBbKi0xXSAqLykge1xuICAvLyBjb252ZXJ0IC0wIHRvICswXG4gIGlmIChORUdBVElWRV9aRVJPKSByZXR1cm4gYXBwbHkoJGxhc3RJbmRleE9mLCB0aGlzLCBhcmd1bWVudHMpIHx8IDA7XG4gIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KHRoaXMpO1xuICB2YXIgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gIGlmIChsZW5ndGggPT09IDApIHJldHVybiAtMTtcbiAgdmFyIGluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSBpbmRleCA9IG1pbihpbmRleCwgdG9JbnRlZ2VyT3JJbmZpbml0eShhcmd1bWVudHNbMV0pKTtcbiAgaWYgKGluZGV4IDwgMCkgaW5kZXggPSBsZW5ndGggKyBpbmRleDtcbiAgZm9yICg7aW5kZXggPj0gMDsgaW5kZXgtLSkgaWYgKGluZGV4IGluIE8gJiYgT1tpbmRleF0gPT09IHNlYXJjaEVsZW1lbnQpIHJldHVybiBpbmRleCB8fCAwO1xuICByZXR1cm4gLTE7XG59IDogJGxhc3RJbmRleE9mO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FLCBhcmd1bWVudCkge1xuICB2YXIgbWV0aG9kID0gW11bTUVUSE9EX05BTUVdO1xuICByZXR1cm4gISFtZXRob2QgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2VsZXNzLWNhbGwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICBtZXRob2QuY2FsbChudWxsLCBhcmd1bWVudCB8fCBmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9LCAxKTtcbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG52YXIgUkVEVUNFX0VNUFRZID0gJ1JlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUnO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgcmVkdWNlLCByZWR1Y2VSaWdodCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX1JJR0hUKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodGhhdCwgY2FsbGJhY2tmbiwgYXJndW1lbnRzTGVuZ3RoLCBtZW1vKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGF0KTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKE8pO1xuICAgIGFDYWxsYWJsZShjYWxsYmFja2ZuKTtcbiAgICBpZiAobGVuZ3RoID09PSAwICYmIGFyZ3VtZW50c0xlbmd0aCA8IDIpIHRocm93IG5ldyAkVHlwZUVycm9yKFJFRFVDRV9FTVBUWSk7XG4gICAgdmFyIGluZGV4ID0gSVNfUklHSFQgPyBsZW5ndGggLSAxIDogMDtcbiAgICB2YXIgaSA9IElTX1JJR0hUID8gLTEgOiAxO1xuICAgIGlmIChhcmd1bWVudHNMZW5ndGggPCAyKSB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGluZGV4IGluIHNlbGYpIHtcbiAgICAgICAgbWVtbyA9IHNlbGZbaW5kZXhdO1xuICAgICAgICBpbmRleCArPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGluZGV4ICs9IGk7XG4gICAgICBpZiAoSVNfUklHSFQgPyBpbmRleCA8IDAgOiBsZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoUkVEVUNFX0VNUFRZKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICg7SVNfUklHSFQgPyBpbmRleCA+PSAwIDogbGVuZ3RoID4gaW5kZXg7IGluZGV4ICs9IGkpIGlmIChpbmRleCBpbiBzZWxmKSB7XG4gICAgICBtZW1vID0gY2FsbGJhY2tmbihtZW1vLCBzZWxmW2luZGV4XSwgaW5kZXgsIE8pO1xuICAgIH1cbiAgICByZXR1cm4gbWVtbztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnJlZHVjZVxuICBsZWZ0OiBjcmVhdGVNZXRob2QoZmFsc2UpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZVJpZ2h0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmVkdWNlcmlnaHRcbiAgcmlnaHQ6IGNyZWF0ZU1ldGhvZCh0cnVlKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1bmN1cnJ5VGhpcyhbXS5zbGljZSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYXJyYXlTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZScpO1xuXG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXG52YXIgc29ydCA9IGZ1bmN0aW9uIChhcnJheSwgY29tcGFyZWZuKSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgaWYgKGxlbmd0aCA8IDgpIHtcbiAgICAvLyBpbnNlcnRpb24gc29ydFxuICAgIHZhciBpID0gMTtcbiAgICB2YXIgZWxlbWVudCwgajtcblxuICAgIHdoaWxlIChpIDwgbGVuZ3RoKSB7XG4gICAgICBqID0gaTtcbiAgICAgIGVsZW1lbnQgPSBhcnJheVtpXTtcbiAgICAgIHdoaWxlIChqICYmIGNvbXBhcmVmbihhcnJheVtqIC0gMV0sIGVsZW1lbnQpID4gMCkge1xuICAgICAgICBhcnJheVtqXSA9IGFycmF5Wy0tal07XG4gICAgICB9XG4gICAgICBpZiAoaiAhPT0gaSsrKSBhcnJheVtqXSA9IGVsZW1lbnQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIG1lcmdlIHNvcnRcbiAgICB2YXIgbWlkZGxlID0gZmxvb3IobGVuZ3RoIC8gMik7XG4gICAgdmFyIGxlZnQgPSBzb3J0KGFycmF5U2xpY2UoYXJyYXksIDAsIG1pZGRsZSksIGNvbXBhcmVmbik7XG4gICAgdmFyIHJpZ2h0ID0gc29ydChhcnJheVNsaWNlKGFycmF5LCBtaWRkbGUpLCBjb21wYXJlZm4pO1xuICAgIHZhciBsbGVuZ3RoID0gbGVmdC5sZW5ndGg7XG4gICAgdmFyIHJsZW5ndGggPSByaWdodC5sZW5ndGg7XG4gICAgdmFyIGxpbmRleCA9IDA7XG4gICAgdmFyIHJpbmRleCA9IDA7XG5cbiAgICB3aGlsZSAobGluZGV4IDwgbGxlbmd0aCB8fCByaW5kZXggPCBybGVuZ3RoKSB7XG4gICAgICBhcnJheVtsaW5kZXggKyByaW5kZXhdID0gKGxpbmRleCA8IGxsZW5ndGggJiYgcmluZGV4IDwgcmxlbmd0aClcbiAgICAgICAgPyBjb21wYXJlZm4obGVmdFtsaW5kZXhdLCByaWdodFtyaW5kZXhdKSA8PSAwID8gbGVmdFtsaW5kZXgrK10gOiByaWdodFtyaW5kZXgrK11cbiAgICAgICAgOiBsaW5kZXggPCBsbGVuZ3RoID8gbGVmdFtsaW5kZXgrK10gOiByaWdodFtyaW5kZXgrK107XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFycmF5O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBzb3J0O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcbnZhciBpc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG52YXIgJEFycmF5ID0gQXJyYXk7XG5cbi8vIGEgcGFydCBvZiBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5KSB7XG4gIHZhciBDO1xuICBpZiAoaXNBcnJheShvcmlnaW5hbEFycmF5KSkge1xuICAgIEMgPSBvcmlnaW5hbEFycmF5LmNvbnN0cnVjdG9yO1xuICAgIC8vIGNyb3NzLXJlYWxtIGZhbGxiYWNrXG4gICAgaWYgKGlzQ29uc3RydWN0b3IoQykgJiYgKEMgPT09ICRBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgZWxzZSBpZiAoaXNPYmplY3QoQykpIHtcbiAgICAgIEMgPSBDW1NQRUNJRVNdO1xuICAgICAgaWYgKEMgPT09IG51bGwpIEMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IHJldHVybiBDID09PSB1bmRlZmluZWQgPyAkQXJyYXkgOiBDO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhcnJheVNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbi8vIGBBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXksIGxlbmd0aCkge1xuICByZXR1cm4gbmV3IChhcnJheVNwZWNpZXNDb25zdHJ1Y3RvcihvcmlnaW5hbEFycmF5KSkobGVuZ3RoID09PSAwID8gMCA6IGxlbmd0aCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG5cbi8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1jaGFuZ2UtYXJyYXktYnktY29weS8jc2VjLWFycmF5LnByb3RvdHlwZS50b1JldmVyc2VkXG4vLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtY2hhbmdlLWFycmF5LWJ5LWNvcHkvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnRvUmV2ZXJzZWRcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIEMpIHtcbiAgdmFyIGxlbiA9IGxlbmd0aE9mQXJyYXlMaWtlKE8pO1xuICB2YXIgQSA9IG5ldyBDKGxlbik7XG4gIHZhciBrID0gMDtcbiAgZm9yICg7IGsgPCBsZW47IGsrKykgQVtrXSA9IE9bbGVuIC0gayAtIDFdO1xuICByZXR1cm4gQTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcblxudmFyICRSYW5nZUVycm9yID0gUmFuZ2VFcnJvcjtcblxuLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWNoYW5nZS1hcnJheS1ieS1jb3B5LyNzZWMtYXJyYXkucHJvdG90eXBlLndpdGhcbi8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1jaGFuZ2UtYXJyYXktYnktY29weS8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUud2l0aFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywgQywgaW5kZXgsIHZhbHVlKSB7XG4gIHZhciBsZW4gPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgdmFyIHJlbGF0aXZlSW5kZXggPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgdmFyIGFjdHVhbEluZGV4ID0gcmVsYXRpdmVJbmRleCA8IDAgPyBsZW4gKyByZWxhdGl2ZUluZGV4IDogcmVsYXRpdmVJbmRleDtcbiAgaWYgKGFjdHVhbEluZGV4ID49IGxlbiB8fCBhY3R1YWxJbmRleCA8IDApIHRocm93IG5ldyAkUmFuZ2VFcnJvcignSW5jb3JyZWN0IGluZGV4Jyk7XG4gIHZhciBBID0gbmV3IEMobGVuKTtcbiAgdmFyIGsgPSAwO1xuICBmb3IgKDsgayA8IGxlbjsgaysrKSBBW2tdID0gayA9PT0gYWN0dWFsSW5kZXggPyB2YWx1ZSA6IE9ba107XG4gIHJldHVybiBBO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFNBRkVfQ0xPU0lORyA9IGZhbHNlO1xuXG50cnkge1xuICB2YXIgY2FsbGVkID0gMDtcbiAgdmFyIGl0ZXJhdG9yV2l0aFJldHVybiA9IHtcbiAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4geyBkb25lOiAhIWNhbGxlZCsrIH07XG4gICAgfSxcbiAgICAncmV0dXJuJzogZnVuY3Rpb24gKCkge1xuICAgICAgU0FGRV9DTE9TSU5HID0gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIGl0ZXJhdG9yV2l0aFJldHVybltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1hcnJheS1mcm9tLCBuby10aHJvdy1saXRlcmFsIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIEFycmF5LmZyb20oaXRlcmF0b3JXaXRoUmV0dXJuLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjLCBTS0lQX0NMT1NJTkcpIHtcbiAgdHJ5IHtcbiAgICBpZiAoIVNLSVBfQ0xPU0lORyAmJiAhU0FGRV9DTE9TSU5HKSByZXR1cm4gZmFsc2U7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IHJldHVybiBmYWxzZTsgfSAvLyB3b3JrYXJvdW5kIG9mIG9sZCBXZWJLaXQgKyBgZXZhbGAgYnVnXG4gIHZhciBJVEVSQVRJT05fU1VQUE9SVCA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBvYmplY3QgPSB7fTtcbiAgICBvYmplY3RbSVRFUkFUT1JdID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV4dDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiB7IGRvbmU6IElURVJBVElPTl9TVVBQT1JUID0gdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG4gICAgZXhlYyhvYmplY3QpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBJVEVSQVRJT05fU1VQUE9SVDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKHt9LnRvU3RyaW5nKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHN0cmluZ1NsaWNlKHRvU3RyaW5nKGl0KSwgOCwgLTEpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNsYXNzb2ZSYXcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09PSAnQXJndW1lbnRzJztcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgU2NyaXB0IEFjY2VzcyBEZW5pZWQgZXJyb3JcbnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG4vLyBnZXR0aW5nIHRhZyBmcm9tIEVTNisgYE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdgXG5tb2R1bGUuZXhwb3J0cyA9IFRPX1NUUklOR19UQUdfU1VQUE9SVCA/IGNsYXNzb2ZSYXcgOiBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIE8sIHRhZywgcmVzdWx0O1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/ICdVbmRlZmluZWQnIDogaXQgPT09IG51bGwgPyAnTnVsbCdcbiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2VcbiAgICA6IHR5cGVvZiAodGFnID0gdHJ5R2V0KE8gPSAkT2JqZWN0KGl0KSwgVE9fU1RSSU5HX1RBRykpID09ICdzdHJpbmcnID8gdGFnXG4gICAgLy8gYnVpbHRpblRhZyBjYXNlXG4gICAgOiBDT1JSRUNUX0FSR1VNRU5UUyA/IGNsYXNzb2ZSYXcoTylcbiAgICAvLyBFUzMgYXJndW1lbnRzIGZhbGxiYWNrXG4gICAgOiAocmVzdWx0ID0gY2xhc3NvZlJhdyhPKSkgPT09ICdPYmplY3QnICYmIGlzQ2FsbGFibGUoTy5jYWxsZWUpID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSwgZXhjZXB0aW9ucykge1xuICB2YXIga2V5cyA9IG93bktleXMoc291cmNlKTtcbiAgdmFyIGRlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbiAgdmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoIWhhc093bih0YXJnZXQsIGtleSkgJiYgIShleGNlcHRpb25zICYmIGhhc093bihleGNlcHRpb25zLCBrZXkpKSkge1xuICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgIH1cbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgRi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBudWxsO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldHByb3RvdHlwZW9mIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YobmV3IEYoKSkgIT09IEYucHJvdG90eXBlO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBgQ3JlYXRlSXRlclJlc3VsdE9iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWNyZWF0ZWl0ZXJyZXN1bHRvYmplY3Rcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHZhbHVlLCBkb25lKSB7XG4gIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogZG9uZSB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIG1ha2VCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21ha2UtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRhcmdldCwgbmFtZSwgZGVzY3JpcHRvcikge1xuICBpZiAoZGVzY3JpcHRvci5nZXQpIG1ha2VCdWlsdEluKGRlc2NyaXB0b3IuZ2V0LCBuYW1lLCB7IGdldHRlcjogdHJ1ZSB9KTtcbiAgaWYgKGRlc2NyaXB0b3Iuc2V0KSBtYWtlQnVpbHRJbihkZXNjcmlwdG9yLnNldCwgbmFtZSwgeyBzZXR0ZXI6IHRydWUgfSk7XG4gIHJldHVybiBkZWZpbmVQcm9wZXJ0eS5mKHRhcmdldCwgbmFtZSwgZGVzY3JpcHRvcik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgbWFrZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWFrZS1idWlsdC1pbicpO1xudmFyIGRlZmluZUdsb2JhbFByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWx1ZSwgb3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcbiAgdmFyIHNpbXBsZSA9IG9wdGlvbnMuZW51bWVyYWJsZTtcbiAgdmFyIG5hbWUgPSBvcHRpb25zLm5hbWUgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMubmFtZSA6IGtleTtcbiAgaWYgKGlzQ2FsbGFibGUodmFsdWUpKSBtYWtlQnVpbHRJbih2YWx1ZSwgbmFtZSwgb3B0aW9ucyk7XG4gIGlmIChvcHRpb25zLmdsb2JhbCkge1xuICAgIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICAgIGVsc2UgZGVmaW5lR2xvYmFsUHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghb3B0aW9ucy51bnNhZmUpIGRlbGV0ZSBPW2tleV07XG4gICAgICBlbHNlIGlmIChPW2tleV0pIHNpbXBsZSA9IHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICAgIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICAgIGVsc2UgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiAhb3B0aW9ucy5ub25Db25maWd1cmFibGUsXG4gICAgICB3cml0YWJsZTogIW9wdGlvbnMubm9uV3JpdGFibGVcbiAgICB9KTtcbiAgfSByZXR1cm4gTztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBzcmMsIG9wdGlvbnMpIHtcbiAgZm9yICh2YXIga2V5IGluIHNyYykgZGVmaW5lQnVpbHRJbih0YXJnZXQsIGtleSwgc3JjW2tleV0sIG9wdGlvbnMpO1xuICByZXR1cm4gdGFyZ2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gc2FmZVxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHRyeSB7XG4gICAgZGVmaW5lUHJvcGVydHkoZ2xvYmFsVGhpcywga2V5LCB7IHZhbHVlOiB2YWx1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBnbG9iYWxUaGlzW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIFApIHtcbiAgaWYgKCFkZWxldGUgT1tQXSkgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJ0Nhbm5vdCBkZWxldGUgcHJvcGVydHkgJyArIHRyeVRvU3RyaW5nKFApICsgJyBvZiAnICsgdHJ5VG9TdHJpbmcoTykpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBEZXRlY3QgSUU4J3MgaW5jb21wbGV0ZSBkZWZpbmVQcm9wZXJ0eSBpbXBsZW1lbnRhdGlvblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIDEsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pWzFdICE9PSA3O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGdldEJ1aWx0SW5Ob2RlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbi1ub2RlLW1vZHVsZScpO1xudmFyIFBST1BFUl9TVFJVQ1RVUkVEX0NMT05FX1RSQU5TRkVSID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cnVjdHVyZWQtY2xvbmUtcHJvcGVyLXRyYW5zZmVyJyk7XG5cbnZhciBzdHJ1Y3R1cmVkQ2xvbmUgPSBnbG9iYWxUaGlzLnN0cnVjdHVyZWRDbG9uZTtcbnZhciAkQXJyYXlCdWZmZXIgPSBnbG9iYWxUaGlzLkFycmF5QnVmZmVyO1xudmFyICRNZXNzYWdlQ2hhbm5lbCA9IGdsb2JhbFRoaXMuTWVzc2FnZUNoYW5uZWw7XG52YXIgZGV0YWNoID0gZmFsc2U7XG52YXIgV29ya2VyVGhyZWFkcywgY2hhbm5lbCwgYnVmZmVyLCAkZGV0YWNoO1xuXG5pZiAoUFJPUEVSX1NUUlVDVFVSRURfQ0xPTkVfVFJBTlNGRVIpIHtcbiAgZGV0YWNoID0gZnVuY3Rpb24gKHRyYW5zZmVyYWJsZSkge1xuICAgIHN0cnVjdHVyZWRDbG9uZSh0cmFuc2ZlcmFibGUsIHsgdHJhbnNmZXI6IFt0cmFuc2ZlcmFibGVdIH0pO1xuICB9O1xufSBlbHNlIGlmICgkQXJyYXlCdWZmZXIpIHRyeSB7XG4gIGlmICghJE1lc3NhZ2VDaGFubmVsKSB7XG4gICAgV29ya2VyVGhyZWFkcyA9IGdldEJ1aWx0SW5Ob2RlTW9kdWxlKCd3b3JrZXJfdGhyZWFkcycpO1xuICAgIGlmIChXb3JrZXJUaHJlYWRzKSAkTWVzc2FnZUNoYW5uZWwgPSBXb3JrZXJUaHJlYWRzLk1lc3NhZ2VDaGFubmVsO1xuICB9XG5cbiAgaWYgKCRNZXNzYWdlQ2hhbm5lbCkge1xuICAgIGNoYW5uZWwgPSBuZXcgJE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgYnVmZmVyID0gbmV3ICRBcnJheUJ1ZmZlcigyKTtcblxuICAgICRkZXRhY2ggPSBmdW5jdGlvbiAodHJhbnNmZXJhYmxlKSB7XG4gICAgICBjaGFubmVsLnBvcnQxLnBvc3RNZXNzYWdlKG51bGwsIFt0cmFuc2ZlcmFibGVdKTtcbiAgICB9O1xuXG4gICAgaWYgKGJ1ZmZlci5ieXRlTGVuZ3RoID09PSAyKSB7XG4gICAgICAkZGV0YWNoKGJ1ZmZlcik7XG4gICAgICBpZiAoYnVmZmVyLmJ5dGVMZW5ndGggPT09IDApIGRldGFjaCA9ICRkZXRhY2g7XG4gICAgfVxuICB9XG59IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG5cbm1vZHVsZS5leHBvcnRzID0gZGV0YWNoO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsVGhpcy5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIEVYSVNUUyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEVYSVNUUyA/IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaXQpIDoge307XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxudmFyIGZpcmVmb3ggPSB1c2VyQWdlbnQubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvaSk7XG5cbm1vZHVsZS5leHBvcnRzID0gISFmaXJlZm94ICYmICtmaXJlZm94WzFdO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIFVBID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAvTVNJRXxUcmlkZW50Ly50ZXN0KFVBKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBFTlZJUk9OTUVOVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEVOVklST05NRU5UID09PSAnTk9ERSc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG52YXIgbmF2aWdhdG9yID0gZ2xvYmFsVGhpcy5uYXZpZ2F0b3I7XG52YXIgdXNlckFnZW50ID0gbmF2aWdhdG9yICYmIG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cbm1vZHVsZS5leHBvcnRzID0gdXNlckFnZW50ID8gU3RyaW5nKHVzZXJBZ2VudCkgOiAnJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgdXNlckFnZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LXVzZXItYWdlbnQnKTtcblxudmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG52YXIgRGVubyA9IGdsb2JhbFRoaXMuRGVubztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucyB8fCBEZW5vICYmIERlbm8udmVyc2lvbjtcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICAvLyBpbiBvbGQgQ2hyb21lLCB2ZXJzaW9ucyBvZiBWOCBpc24ndCBWOCA9IENocm9tZSAvIDEwXG4gIC8vIGJ1dCB0aGVpciBjb3JyZWN0IHZlcnNpb25zIGFyZSBub3QgaW50ZXJlc3RpbmcgZm9yIHVzXG4gIHZlcnNpb24gPSBtYXRjaFswXSA+IDAgJiYgbWF0Y2hbMF0gPCA0ID8gMSA6ICsobWF0Y2hbMF0gKyBtYXRjaFsxXSk7XG59XG5cbi8vIEJyb3dzZXJGUyBOb2RlSlMgYHByb2Nlc3NgIHBvbHlmaWxsIGluY29ycmVjdGx5IHNldCBgLnY4YCB0byBgMC4wYFxuLy8gc28gY2hlY2sgYHVzZXJBZ2VudGAgZXZlbiBpZiBgLnY4YCBleGlzdHMsIGJ1dCAwXG5pZiAoIXZlcnNpb24gJiYgdXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gK21hdGNoWzFdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyc2lvbjtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdXNlci1hZ2VudCcpO1xuXG52YXIgd2Via2l0ID0gdXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFxcLyhcXGQrKVxcLi8pO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICEhd2Via2l0ICYmICt3ZWJraXRbMV07XG4iLCIndXNlIHN0cmljdCc7XG4vKiBnbG9iYWwgQnVuLCBEZW5vIC0tIGRldGVjdGlvbiAqL1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdXNlci1hZ2VudCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxudmFyIHVzZXJBZ2VudFN0YXJ0c1dpdGggPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiB1c2VyQWdlbnQuc2xpY2UoMCwgc3RyaW5nLmxlbmd0aCkgPT09IHN0cmluZztcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gKGZ1bmN0aW9uICgpIHtcbiAgaWYgKHVzZXJBZ2VudFN0YXJ0c1dpdGgoJ0J1bi8nKSkgcmV0dXJuICdCVU4nO1xuICBpZiAodXNlckFnZW50U3RhcnRzV2l0aCgnQ2xvdWRmbGFyZS1Xb3JrZXJzJykpIHJldHVybiAnQ0xPVURGTEFSRSc7XG4gIGlmICh1c2VyQWdlbnRTdGFydHNXaXRoKCdEZW5vLycpKSByZXR1cm4gJ0RFTk8nO1xuICBpZiAodXNlckFnZW50U3RhcnRzV2l0aCgnTm9kZS5qcy8nKSkgcmV0dXJuICdOT0RFJztcbiAgaWYgKGdsb2JhbFRoaXMuQnVuICYmIHR5cGVvZiBCdW4udmVyc2lvbiA9PSAnc3RyaW5nJykgcmV0dXJuICdCVU4nO1xuICBpZiAoZ2xvYmFsVGhpcy5EZW5vICYmIHR5cGVvZiBEZW5vLnZlcnNpb24gPT0gJ29iamVjdCcpIHJldHVybiAnREVOTyc7XG4gIGlmIChjbGFzc29mKGdsb2JhbFRoaXMucHJvY2VzcykgPT09ICdwcm9jZXNzJykgcmV0dXJuICdOT0RFJztcbiAgaWYgKGdsb2JhbFRoaXMud2luZG93ICYmIGdsb2JhbFRoaXMuZG9jdW1lbnQpIHJldHVybiAnQlJPV1NFUic7XG4gIHJldHVybiAnUkVTVCc7XG59KSgpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG52YXIgJEVycm9yID0gRXJyb3I7XG52YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xuXG52YXIgVEVTVCA9IChmdW5jdGlvbiAoYXJnKSB7IHJldHVybiBTdHJpbmcobmV3ICRFcnJvcihhcmcpLnN0YWNrKTsgfSkoJ3p4Y2FzZCcpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZG9zL25vLXZ1bG5lcmFibGUgLS0gc2FmZVxudmFyIFY4X09SX0NIQUtSQV9TVEFDS19FTlRSWSA9IC9cXG5cXHMqYXQgW146XSo6W15cXG5dKi87XG52YXIgSVNfVjhfT1JfQ0hBS1JBX1NUQUNLID0gVjhfT1JfQ0hBS1JBX1NUQUNLX0VOVFJZLnRlc3QoVEVTVCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHN0YWNrLCBkcm9wRW50cmllcykge1xuICBpZiAoSVNfVjhfT1JfQ0hBS1JBX1NUQUNLICYmIHR5cGVvZiBzdGFjayA9PSAnc3RyaW5nJyAmJiAhJEVycm9yLnByZXBhcmVTdGFja1RyYWNlKSB7XG4gICAgd2hpbGUgKGRyb3BFbnRyaWVzLS0pIHN0YWNrID0gcmVwbGFjZShzdGFjaywgVjhfT1JfQ0hBS1JBX1NUQUNLX0VOVFJZLCAnJyk7XG4gIH0gcmV0dXJuIHN0YWNrO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgY2xlYXJFcnJvclN0YWNrID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vycm9yLXN0YWNrLWNsZWFyJyk7XG52YXIgRVJST1JfU1RBQ0tfSU5TVEFMTEFCTEUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXJyb3Itc3RhY2staW5zdGFsbGFibGUnKTtcblxuLy8gbm9uLXN0YW5kYXJkIFY4XG52YXIgY2FwdHVyZVN0YWNrVHJhY2UgPSBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXJyb3IsIEMsIHN0YWNrLCBkcm9wRW50cmllcykge1xuICBpZiAoRVJST1JfU1RBQ0tfSU5TVEFMTEFCTEUpIHtcbiAgICBpZiAoY2FwdHVyZVN0YWNrVHJhY2UpIGNhcHR1cmVTdGFja1RyYWNlKGVycm9yLCBDKTtcbiAgICBlbHNlIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShlcnJvciwgJ3N0YWNrJywgY2xlYXJFcnJvclN0YWNrKHN0YWNrLCBkcm9wRW50cmllcykpO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGVycm9yID0gbmV3IEVycm9yKCdhJyk7XG4gIGlmICghKCdzdGFjaycgaW4gZXJyb3IpKSByZXR1cm4gdHJ1ZTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlcnJvciwgJ3N0YWNrJywgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIDcpKTtcbiAgcmV0dXJuIGVycm9yLnN0YWNrICE9PSA3O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIG5vcm1hbGl6ZVN0cmluZ0FyZ3VtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25vcm1hbGl6ZS1zdHJpbmctYXJndW1lbnQnKTtcblxudmFyIG5hdGl2ZUVycm9yVG9TdHJpbmcgPSBFcnJvci5wcm90b3R5cGUudG9TdHJpbmc7XG5cbnZhciBJTkNPUlJFQ1RfVE9fU1RSSU5HID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICBpZiAoREVTQ1JJUFRPUlMpIHtcbiAgICAvLyBDaHJvbWUgMzItIGluY29ycmVjdGx5IGNhbGwgYWNjZXNzb3JcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWNyZWF0ZSwgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbiAgICB2YXIgb2JqZWN0ID0gT2JqZWN0LmNyZWF0ZShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICduYW1lJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB0aGlzID09PSBvYmplY3Q7XG4gICAgfSB9KSk7XG4gICAgaWYgKG5hdGl2ZUVycm9yVG9TdHJpbmcuY2FsbChvYmplY3QpICE9PSAndHJ1ZScpIHJldHVybiB0cnVlO1xuICB9XG4gIC8vIEZGMTAtIGRvZXMgbm90IHByb3Blcmx5IGhhbmRsZSBub24tc3RyaW5nc1xuICByZXR1cm4gbmF0aXZlRXJyb3JUb1N0cmluZy5jYWxsKHsgbWVzc2FnZTogMSwgbmFtZTogMiB9KSAhPT0gJzI6IDEnXG4gICAgLy8gSUU4IGRvZXMgbm90IHByb3Blcmx5IGhhbmRsZSBkZWZhdWx0c1xuICAgIHx8IG5hdGl2ZUVycm9yVG9TdHJpbmcuY2FsbCh7fSkgIT09ICdFcnJvcic7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBJTkNPUlJFQ1RfVE9fU1RSSU5HID8gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHZhciBPID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciBuYW1lID0gbm9ybWFsaXplU3RyaW5nQXJndW1lbnQoTy5uYW1lLCAnRXJyb3InKTtcbiAgdmFyIG1lc3NhZ2UgPSBub3JtYWxpemVTdHJpbmdBcmd1bWVudChPLm1lc3NhZ2UpO1xuICByZXR1cm4gIW5hbWUgPyBtZXNzYWdlIDogIW1lc3NhZ2UgPyBuYW1lIDogbmFtZSArICc6ICcgKyBtZXNzYWdlO1xufSA6IG5hdGl2ZUVycm9yVG9TdHJpbmc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgICAgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5kb250Q2FsbEdldFNldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiAgb3B0aW9ucy5uYW1lICAgICAgICAgICAtIHRoZSAubmFtZSBvZiB0aGUgZnVuY3Rpb24gaWYgaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGtleVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdGlvbnMsIHNvdXJjZSkge1xuICB2YXIgVEFSR0VUID0gb3B0aW9ucy50YXJnZXQ7XG4gIHZhciBHTE9CQUwgPSBvcHRpb25zLmdsb2JhbDtcbiAgdmFyIFNUQVRJQyA9IG9wdGlvbnMuc3RhdDtcbiAgdmFyIEZPUkNFRCwgdGFyZ2V0LCBrZXksIHRhcmdldFByb3BlcnR5LCBzb3VyY2VQcm9wZXJ0eSwgZGVzY3JpcHRvcjtcbiAgaWYgKEdMT0JBTCkge1xuICAgIHRhcmdldCA9IGdsb2JhbFRoaXM7XG4gIH0gZWxzZSBpZiAoU1RBVElDKSB7XG4gICAgdGFyZ2V0ID0gZ2xvYmFsVGhpc1tUQVJHRVRdIHx8IGRlZmluZUdsb2JhbFByb3BlcnR5KFRBUkdFVCwge30pO1xuICB9IGVsc2Uge1xuICAgIHRhcmdldCA9IGdsb2JhbFRoaXNbVEFSR0VUXSAmJiBnbG9iYWxUaGlzW1RBUkdFVF0ucHJvdG90eXBlO1xuICB9XG4gIGlmICh0YXJnZXQpIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIHNvdXJjZVByb3BlcnR5ID0gc291cmNlW2tleV07XG4gICAgaWYgKG9wdGlvbnMuZG9udENhbGxHZXRTZXQpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpO1xuICAgICAgdGFyZ2V0UHJvcGVydHkgPSBkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IudmFsdWU7XG4gICAgfSBlbHNlIHRhcmdldFByb3BlcnR5ID0gdGFyZ2V0W2tleV07XG4gICAgRk9SQ0VEID0gaXNGb3JjZWQoR0xPQkFMID8ga2V5IDogVEFSR0VUICsgKFNUQVRJQyA/ICcuJyA6ICcjJykgKyBrZXksIG9wdGlvbnMuZm9yY2VkKTtcbiAgICAvLyBjb250YWluZWQgaW4gdGFyZ2V0XG4gICAgaWYgKCFGT1JDRUQgJiYgdGFyZ2V0UHJvcGVydHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2VQcm9wZXJ0eSA9PSB0eXBlb2YgdGFyZ2V0UHJvcGVydHkpIGNvbnRpbnVlO1xuICAgICAgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyhzb3VyY2VQcm9wZXJ0eSwgdGFyZ2V0UHJvcGVydHkpO1xuICAgIH1cbiAgICAvLyBhZGQgYSBmbGFnIHRvIG5vdCBjb21wbGV0ZWx5IGZ1bGwgcG9seWZpbGxzXG4gICAgaWYgKG9wdGlvbnMuc2hhbSB8fCAodGFyZ2V0UHJvcGVydHkgJiYgdGFyZ2V0UHJvcGVydHkuc2hhbSkpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShzb3VyY2VQcm9wZXJ0eSwgJ3NoYW0nLCB0cnVlKTtcbiAgICB9XG4gICAgZGVmaW5lQnVpbHRJbih0YXJnZXQsIGtleSwgc291cmNlUHJvcGVydHksIG9wdGlvbnMpO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIFRPRE86IFJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgIHNpbmNlIGl0J3MgbW92ZWQgdG8gZW50cnkgcG9pbnRzXG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjJyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBleGVjLCBGT1JDRUQsIFNIQU0pIHtcbiAgdmFyIFNZTUJPTCA9IHdlbGxLbm93blN5bWJvbChLRVkpO1xuXG4gIHZhciBERUxFR0FURVNfVE9fU1lNQk9MID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBTdHJpbmcgbWV0aG9kcyBjYWxsIHN5bWJvbC1uYW1lZCBSZWdFeHAgbWV0aG9kc1xuICAgIHZhciBPID0ge307XG4gICAgT1tTWU1CT0xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfTtcbiAgICByZXR1cm4gJydbS0VZXShPKSAhPT0gNztcbiAgfSk7XG5cbiAgdmFyIERFTEVHQVRFU19UT19FWEVDID0gREVMRUdBVEVTX1RPX1NZTUJPTCAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIC8vIFN5bWJvbC1uYW1lZCBSZWdFeHAgbWV0aG9kcyBjYWxsIC5leGVjXG4gICAgdmFyIGV4ZWNDYWxsZWQgPSBmYWxzZTtcbiAgICB2YXIgcmUgPSAvYS87XG5cbiAgICBpZiAoS0VZID09PSAnc3BsaXQnKSB7XG4gICAgICAvLyBXZSBjYW4ndCB1c2UgcmVhbCByZWdleCBoZXJlIHNpbmNlIGl0IGNhdXNlcyBkZW9wdGltaXphdGlvblxuICAgICAgLy8gYW5kIHNlcmlvdXMgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24gaW4gVjhcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8zMDZcbiAgICAgIHJlID0ge307XG4gICAgICAvLyBSZWdFeHBbQEBzcGxpdF0gZG9lc24ndCBjYWxsIHRoZSByZWdleCdzIGV4ZWMgbWV0aG9kLCBidXQgZmlyc3QgY3JlYXRlc1xuICAgICAgLy8gYSBuZXcgb25lLiBXZSBuZWVkIHRvIHJldHVybiB0aGUgcGF0Y2hlZCByZWdleCB3aGVuIGNyZWF0aW5nIHRoZSBuZXcgb25lLlxuICAgICAgcmUuY29uc3RydWN0b3IgPSB7fTtcbiAgICAgIHJlLmNvbnN0cnVjdG9yW1NQRUNJRVNdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcmU7IH07XG4gICAgICByZS5mbGFncyA9ICcnO1xuICAgICAgcmVbU1lNQk9MXSA9IC8uL1tTWU1CT0xdO1xuICAgIH1cblxuICAgIHJlLmV4ZWMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBleGVjQ2FsbGVkID0gdHJ1ZTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICByZVtTWU1CT0xdKCcnKTtcbiAgICByZXR1cm4gIWV4ZWNDYWxsZWQ7XG4gIH0pO1xuXG4gIGlmIChcbiAgICAhREVMRUdBVEVTX1RPX1NZTUJPTCB8fFxuICAgICFERUxFR0FURVNfVE9fRVhFQyB8fFxuICAgIEZPUkNFRFxuICApIHtcbiAgICB2YXIgbmF0aXZlUmVnRXhwTWV0aG9kID0gLy4vW1NZTUJPTF07XG4gICAgdmFyIG1ldGhvZHMgPSBleGVjKFNZTUJPTCwgJydbS0VZXSwgZnVuY3Rpb24gKG5hdGl2ZU1ldGhvZCwgcmVnZXhwLCBzdHIsIGFyZzIsIGZvcmNlU3RyaW5nTWV0aG9kKSB7XG4gICAgICB2YXIgJGV4ZWMgPSByZWdleHAuZXhlYztcbiAgICAgIGlmICgkZXhlYyA9PT0gcmVnZXhwRXhlYyB8fCAkZXhlYyA9PT0gUmVnRXhwUHJvdG90eXBlLmV4ZWMpIHtcbiAgICAgICAgaWYgKERFTEVHQVRFU19UT19TWU1CT0wgJiYgIWZvcmNlU3RyaW5nTWV0aG9kKSB7XG4gICAgICAgICAgLy8gVGhlIG5hdGl2ZSBTdHJpbmcgbWV0aG9kIGFscmVhZHkgZGVsZWdhdGVzIHRvIEBAbWV0aG9kICh0aGlzXG4gICAgICAgICAgLy8gcG9seWZpbGxlZCBmdW5jdGlvbiksIGxlYXNpbmcgdG8gaW5maW5pdGUgcmVjdXJzaW9uLlxuICAgICAgICAgIC8vIFdlIGF2b2lkIGl0IGJ5IGRpcmVjdGx5IGNhbGxpbmcgdGhlIG5hdGl2ZSBAQG1ldGhvZCBtZXRob2QuXG4gICAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IGNhbGwobmF0aXZlUmVnRXhwTWV0aG9kLCByZWdleHAsIHN0ciwgYXJnMikgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogY2FsbChuYXRpdmVNZXRob2QsIHN0ciwgcmVnZXhwLCBhcmcyKSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UgfTtcbiAgICB9KTtcblxuICAgIGRlZmluZUJ1aWx0SW4oU3RyaW5nLnByb3RvdHlwZSwgS0VZLCBtZXRob2RzWzBdKTtcbiAgICBkZWZpbmVCdWlsdEluKFJlZ0V4cFByb3RvdHlwZSwgU1lNQk9MLCBtZXRob2RzWzFdKTtcbiAgfVxuXG4gIGlmIChTSEFNKSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoUmVnRXhwUHJvdG90eXBlW1NZTUJPTF0sICdzaGFtJywgdHJ1ZSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbnZhciBhcHBseSA9IEZ1bmN0aW9uUHJvdG90eXBlLmFwcGx5O1xudmFyIGNhbGwgPSBGdW5jdGlvblByb3RvdHlwZS5jYWxsO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tcmVmbGVjdCAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBSZWZsZWN0ID09ICdvYmplY3QnICYmIFJlZmxlY3QuYXBwbHkgfHwgKE5BVElWRV9CSU5EID8gY2FsbC5iaW5kKGFwcGx5KSA6IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGNhbGwuYXBwbHkoYXBwbHksIGFyZ3VtZW50cyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgYmluZCA9IHVuY3VycnlUaGlzKHVuY3VycnlUaGlzLmJpbmQpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0KSB7XG4gIGFDYWxsYWJsZShmbik7XG4gIHJldHVybiB0aGF0ID09PSB1bmRlZmluZWQgPyBmbiA6IE5BVElWRV9CSU5EID8gYmluZChmbiwgdGhhdCkgOiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1mdW5jdGlvbi1wcm90b3R5cGUtYmluZCAtLSBzYWZlXG4gIHZhciB0ZXN0ID0gKGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSkuYmluZCgpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zIC0tIHNhZmVcbiAgcmV0dXJuIHR5cGVvZiB0ZXN0ICE9ICdmdW5jdGlvbicgfHwgdGVzdC5oYXNPd25Qcm9wZXJ0eSgncHJvdG90eXBlJyk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgY2FsbCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE5BVElWRV9CSU5EID8gY2FsbC5iaW5kKGNhbGwpIDogZnVuY3Rpb24gKCkge1xuICByZXR1cm4gY2FsbC5hcHBseShjYWxsLCBhcmd1bWVudHMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG5cbnZhciBGdW5jdGlvblByb3RvdHlwZSA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciBnZXREZXNjcmlwdG9yID0gREVTQ1JJUFRPUlMgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxudmFyIEVYSVNUUyA9IGhhc093bihGdW5jdGlvblByb3RvdHlwZSwgJ25hbWUnKTtcbi8vIGFkZGl0aW9uYWwgcHJvdGVjdGlvbiBmcm9tIG1pbmlmaWVkIC8gbWFuZ2xlZCAvIGRyb3BwZWQgZnVuY3Rpb24gbmFtZXNcbnZhciBQUk9QRVIgPSBFWElTVFMgJiYgKGZ1bmN0aW9uIHNvbWV0aGluZygpIHsgLyogZW1wdHkgKi8gfSkubmFtZSA9PT0gJ3NvbWV0aGluZyc7XG52YXIgQ09ORklHVVJBQkxFID0gRVhJU1RTICYmICghREVTQ1JJUFRPUlMgfHwgKERFU0NSSVBUT1JTICYmIGdldERlc2NyaXB0b3IoRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJykuY29uZmlndXJhYmxlKSk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBFWElTVFM6IEVYSVNUUyxcbiAgUFJPUEVSOiBQUk9QRVIsXG4gIENPTkZJR1VSQUJMRTogQ09ORklHVVJBQkxFXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwga2V5LCBtZXRob2QpIHtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG4gICAgcmV0dXJuIHVuY3VycnlUaGlzKGFDYWxsYWJsZShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwga2V5KVttZXRob2RdKSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZlJhdyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChmbikge1xuICAvLyBOYXNob3JuIGJ1ZzpcbiAgLy8gICBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTEyOFxuICAvLyAgIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8xMTMwXG4gIGlmIChjbGFzc29mUmF3KGZuKSA9PT0gJ0Z1bmN0aW9uJykgcmV0dXJuIHVuY3VycnlUaGlzKGZuKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIGNhbGwgPSBGdW5jdGlvblByb3RvdHlwZS5jYWxsO1xudmFyIHVuY3VycnlUaGlzV2l0aEJpbmQgPSBOQVRJVkVfQklORCAmJiBGdW5jdGlvblByb3RvdHlwZS5iaW5kLmJpbmQoY2FsbCwgY2FsbCk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX0JJTkQgPyB1bmN1cnJ5VGhpc1dpdGhCaW5kIDogZnVuY3Rpb24gKGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGNhbGwuYXBwbHkoZm4sIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBJU19OT0RFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vudmlyb25tZW50LWlzLW5vZGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICBpZiAoSVNfTk9ERSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZ2xvYmFsVGhpcy5wcm9jZXNzLmdldEJ1aWx0aW5Nb2R1bGUobmFtZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICAgIHRyeSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmMgLS0gc2FmZVxuICAgICAgcmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gcmVxdWlyZShcIicgKyBuYW1lICsgJ1wiKScpKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciBhRnVuY3Rpb24gPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzQ2FsbGFibGUoYXJndW1lbnQpID8gYXJndW1lbnQgOiB1bmRlZmluZWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lc3BhY2UsIG1ldGhvZCkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBhRnVuY3Rpb24oZ2xvYmFsVGhpc1tuYW1lc3BhY2VdKSA6IGdsb2JhbFRoaXNbbmFtZXNwYWNlXSAmJiBnbG9iYWxUaGlzW25hbWVzcGFjZV1bbWV0aG9kXTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgZ2V0TWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1tZXRob2QnKTtcbnZhciBpc051bGxPclVuZGVmaW5lZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1udWxsLW9yLXVuZGVmaW5lZCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGl0KSkgcmV0dXJuIGdldE1ldGhvZChpdCwgSVRFUkFUT1IpXG4gICAgfHwgZ2V0TWV0aG9kKGl0LCAnQEBpdGVyYXRvcicpXG4gICAgfHwgSXRlcmF0b3JzW2NsYXNzb2YoaXQpXTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQsIHVzaW5nSXRlcmF0b3IpIHtcbiAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBnZXRJdGVyYXRvck1ldGhvZChhcmd1bWVudCkgOiB1c2luZ0l0ZXJhdG9yO1xuICBpZiAoYUNhbGxhYmxlKGl0ZXJhdG9yTWV0aG9kKSkgcmV0dXJuIGFuT2JqZWN0KGNhbGwoaXRlcmF0b3JNZXRob2QsIGFyZ3VtZW50KSk7XG4gIHRocm93IG5ldyAkVHlwZUVycm9yKHRyeVRvU3RyaW5nKGFyZ3VtZW50KSArICcgaXMgbm90IGl0ZXJhYmxlJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcblxuLy8gYEdldE1ldGhvZGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldG1ldGhvZFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoViwgUCkge1xuICB2YXIgZnVuYyA9IFZbUF07XG4gIHJldHVybiBpc051bGxPclVuZGVmaW5lZChmdW5jKSA/IHVuZGVmaW5lZCA6IGFDYWxsYWJsZShmdW5jKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgY2hhckF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckF0KTtcbnZhciByZXBsYWNlID0gdW5jdXJyeVRoaXMoJycucmVwbGFjZSk7XG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVkb3Mvbm8tdnVsbmVyYWJsZSAtLSBzYWZlXG52YXIgU1VCU1RJVFVUSU9OX1NZTUJPTFMgPSAvXFwkKFskJidgXXxcXGR7MSwyfXw8W14+XSo+KS9nO1xudmFyIFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEID0gL1xcJChbJCYnYF18XFxkezEsMn0pL2c7XG5cbi8vIGBHZXRTdWJzdGl0dXRpb25gIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXRzdWJzdGl0dXRpb25cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG1hdGNoZWQsIHN0ciwgcG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlbWVudCkge1xuICB2YXIgdGFpbFBvcyA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gIHZhciBtID0gY2FwdHVyZXMubGVuZ3RoO1xuICB2YXIgc3ltYm9scyA9IFNVQlNUSVRVVElPTl9TWU1CT0xTX05PX05BTUVEO1xuICBpZiAobmFtZWRDYXB0dXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbmFtZWRDYXB0dXJlcyA9IHRvT2JqZWN0KG5hbWVkQ2FwdHVyZXMpO1xuICAgIHN5bWJvbHMgPSBTVUJTVElUVVRJT05fU1lNQk9MUztcbiAgfVxuICByZXR1cm4gcmVwbGFjZShyZXBsYWNlbWVudCwgc3ltYm9scywgZnVuY3Rpb24gKG1hdGNoLCBjaCkge1xuICAgIHZhciBjYXB0dXJlO1xuICAgIHN3aXRjaCAoY2hhckF0KGNoLCAwKSkge1xuICAgICAgY2FzZSAnJCc6IHJldHVybiAnJCc7XG4gICAgICBjYXNlICcmJzogcmV0dXJuIG1hdGNoZWQ7XG4gICAgICBjYXNlICdgJzogcmV0dXJuIHN0cmluZ1NsaWNlKHN0ciwgMCwgcG9zaXRpb24pO1xuICAgICAgY2FzZSBcIidcIjogcmV0dXJuIHN0cmluZ1NsaWNlKHN0ciwgdGFpbFBvcyk7XG4gICAgICBjYXNlICc8JzpcbiAgICAgICAgY2FwdHVyZSA9IG5hbWVkQ2FwdHVyZXNbc3RyaW5nU2xpY2UoY2gsIDEsIC0xKV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDogLy8gXFxkXFxkP1xuICAgICAgICB2YXIgbiA9ICtjaDtcbiAgICAgICAgaWYgKG4gPT09IDApIHJldHVybiBtYXRjaDtcbiAgICAgICAgaWYgKG4gPiBtKSB7XG4gICAgICAgICAgdmFyIGYgPSBmbG9vcihuIC8gMTApO1xuICAgICAgICAgIGlmIChmID09PSAwKSByZXR1cm4gbWF0Y2g7XG4gICAgICAgICAgaWYgKGYgPD0gbSkgcmV0dXJuIGNhcHR1cmVzW2YgLSAxXSA9PT0gdW5kZWZpbmVkID8gY2hhckF0KGNoLCAxKSA6IGNhcHR1cmVzW2YgLSAxXSArIGNoYXJBdChjaCwgMSk7XG4gICAgICAgICAgcmV0dXJuIG1hdGNoO1xuICAgICAgICB9XG4gICAgICAgIGNhcHR1cmUgPSBjYXB0dXJlc1tuIC0gMV07XG4gICAgfVxuICAgIHJldHVybiBjYXB0dXJlID09PSB1bmRlZmluZWQgPyAnJyA6IGNhcHR1cmU7XG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjaGVjayA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgJiYgaXQuTWF0aCA9PT0gTWF0aCAmJiBpdDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG5tb2R1bGUuZXhwb3J0cyA9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1nbG9iYWwtdGhpcyAtLSBzYWZlXG4gIGNoZWNrKHR5cGVvZiBnbG9iYWxUaGlzID09ICdvYmplY3QnICYmIGdsb2JhbFRoaXMpIHx8XG4gIGNoZWNrKHR5cGVvZiB3aW5kb3cgPT0gJ29iamVjdCcgJiYgd2luZG93KSB8fFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzIC0tIHNhZmVcbiAgY2hlY2sodHlwZW9mIHNlbGYgPT0gJ29iamVjdCcgJiYgc2VsZikgfHxcbiAgY2hlY2sodHlwZW9mIGdsb2JhbCA9PSAnb2JqZWN0JyAmJiBnbG9iYWwpIHx8XG4gIGNoZWNrKHR5cGVvZiB0aGlzID09ICdvYmplY3QnICYmIHRoaXMpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuYyAtLSBmYWxsYmFja1xuICAoZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSkoKSB8fCBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xuXG52YXIgaGFzT3duUHJvcGVydHkgPSB1bmN1cnJ5VGhpcyh7fS5oYXNPd25Qcm9wZXJ0eSk7XG5cbi8vIGBIYXNPd25Qcm9wZXJ0eWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWhhc293bnByb3BlcnR5XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWhhc293biAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5oYXNPd24gfHwgZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5KHRvT2JqZWN0KGl0KSwga2V5KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJbignZG9jdW1lbnQnLCAnZG9jdW1lbnRFbGVtZW50Jyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcblxuLy8gVGhhbmtzIHRvIElFOCBmb3IgaXRzIGZ1bm55IGRlZmluZVByb3BlcnR5XG5tb2R1bGUuZXhwb3J0cyA9ICFERVNDUklQVE9SUyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlRWxlbWVudCgnZGl2JyksICdhJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfVxuICB9KS5hICE9PSA3O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBJRUVFNzU0IGNvbnZlcnNpb25zIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvaWVlZTc1NFxudmFyICRBcnJheSA9IEFycmF5O1xudmFyIGFicyA9IE1hdGguYWJzO1xudmFyIHBvdyA9IE1hdGgucG93O1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbnZhciBsb2cgPSBNYXRoLmxvZztcbnZhciBMTjIgPSBNYXRoLkxOMjtcblxudmFyIHBhY2sgPSBmdW5jdGlvbiAobnVtYmVyLCBtYW50aXNzYUxlbmd0aCwgYnl0ZXMpIHtcbiAgdmFyIGJ1ZmZlciA9ICRBcnJheShieXRlcyk7XG4gIHZhciBleHBvbmVudExlbmd0aCA9IGJ5dGVzICogOCAtIG1hbnRpc3NhTGVuZ3RoIC0gMTtcbiAgdmFyIGVNYXggPSAoMSA8PCBleHBvbmVudExlbmd0aCkgLSAxO1xuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDE7XG4gIHZhciBydCA9IG1hbnRpc3NhTGVuZ3RoID09PSAyMyA/IHBvdygyLCAtMjQpIC0gcG93KDIsIC03NykgOiAwO1xuICB2YXIgc2lnbiA9IG51bWJlciA8IDAgfHwgbnVtYmVyID09PSAwICYmIDEgLyBudW1iZXIgPCAwID8gMSA6IDA7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBleHBvbmVudCwgbWFudGlzc2EsIGM7XG4gIG51bWJlciA9IGFicyhudW1iZXIpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICBpZiAobnVtYmVyICE9PSBudW1iZXIgfHwgbnVtYmVyID09PSBJbmZpbml0eSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gICAgbWFudGlzc2EgPSBudW1iZXIgIT09IG51bWJlciA/IDEgOiAwO1xuICAgIGV4cG9uZW50ID0gZU1heDtcbiAgfSBlbHNlIHtcbiAgICBleHBvbmVudCA9IGZsb29yKGxvZyhudW1iZXIpIC8gTE4yKTtcbiAgICBjID0gcG93KDIsIC1leHBvbmVudCk7XG4gICAgaWYgKG51bWJlciAqIGMgPCAxKSB7XG4gICAgICBleHBvbmVudC0tO1xuICAgICAgYyAqPSAyO1xuICAgIH1cbiAgICBpZiAoZXhwb25lbnQgKyBlQmlhcyA+PSAxKSB7XG4gICAgICBudW1iZXIgKz0gcnQgLyBjO1xuICAgIH0gZWxzZSB7XG4gICAgICBudW1iZXIgKz0gcnQgKiBwb3coMiwgMSAtIGVCaWFzKTtcbiAgICB9XG4gICAgaWYgKG51bWJlciAqIGMgPj0gMikge1xuICAgICAgZXhwb25lbnQrKztcbiAgICAgIGMgLz0gMjtcbiAgICB9XG4gICAgaWYgKGV4cG9uZW50ICsgZUJpYXMgPj0gZU1heCkge1xuICAgICAgbWFudGlzc2EgPSAwO1xuICAgICAgZXhwb25lbnQgPSBlTWF4O1xuICAgIH0gZWxzZSBpZiAoZXhwb25lbnQgKyBlQmlhcyA+PSAxKSB7XG4gICAgICBtYW50aXNzYSA9IChudW1iZXIgKiBjIC0gMSkgKiBwb3coMiwgbWFudGlzc2FMZW5ndGgpO1xuICAgICAgZXhwb25lbnQgKz0gZUJpYXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1hbnRpc3NhID0gbnVtYmVyICogcG93KDIsIGVCaWFzIC0gMSkgKiBwb3coMiwgbWFudGlzc2FMZW5ndGgpO1xuICAgICAgZXhwb25lbnQgPSAwO1xuICAgIH1cbiAgfVxuICB3aGlsZSAobWFudGlzc2FMZW5ndGggPj0gOCkge1xuICAgIGJ1ZmZlcltpbmRleCsrXSA9IG1hbnRpc3NhICYgMjU1O1xuICAgIG1hbnRpc3NhIC89IDI1NjtcbiAgICBtYW50aXNzYUxlbmd0aCAtPSA4O1xuICB9XG4gIGV4cG9uZW50ID0gZXhwb25lbnQgPDwgbWFudGlzc2FMZW5ndGggfCBtYW50aXNzYTtcbiAgZXhwb25lbnRMZW5ndGggKz0gbWFudGlzc2FMZW5ndGg7XG4gIHdoaWxlIChleHBvbmVudExlbmd0aCA+IDApIHtcbiAgICBidWZmZXJbaW5kZXgrK10gPSBleHBvbmVudCAmIDI1NTtcbiAgICBleHBvbmVudCAvPSAyNTY7XG4gICAgZXhwb25lbnRMZW5ndGggLT0gODtcbiAgfVxuICBidWZmZXJbaW5kZXggLSAxXSB8PSBzaWduICogMTI4O1xuICByZXR1cm4gYnVmZmVyO1xufTtcblxudmFyIHVucGFjayA9IGZ1bmN0aW9uIChidWZmZXIsIG1hbnRpc3NhTGVuZ3RoKSB7XG4gIHZhciBieXRlcyA9IGJ1ZmZlci5sZW5ndGg7XG4gIHZhciBleHBvbmVudExlbmd0aCA9IGJ5dGVzICogOCAtIG1hbnRpc3NhTGVuZ3RoIC0gMTtcbiAgdmFyIGVNYXggPSAoMSA8PCBleHBvbmVudExlbmd0aCkgLSAxO1xuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDE7XG4gIHZhciBuQml0cyA9IGV4cG9uZW50TGVuZ3RoIC0gNztcbiAgdmFyIGluZGV4ID0gYnl0ZXMgLSAxO1xuICB2YXIgc2lnbiA9IGJ1ZmZlcltpbmRleC0tXTtcbiAgdmFyIGV4cG9uZW50ID0gc2lnbiAmIDEyNztcbiAgdmFyIG1hbnRpc3NhO1xuICBzaWduID4+PSA3O1xuICB3aGlsZSAobkJpdHMgPiAwKSB7XG4gICAgZXhwb25lbnQgPSBleHBvbmVudCAqIDI1NiArIGJ1ZmZlcltpbmRleC0tXTtcbiAgICBuQml0cyAtPSA4O1xuICB9XG4gIG1hbnRpc3NhID0gZXhwb25lbnQgJiAoMSA8PCAtbkJpdHMpIC0gMTtcbiAgZXhwb25lbnQgPj49IC1uQml0cztcbiAgbkJpdHMgKz0gbWFudGlzc2FMZW5ndGg7XG4gIHdoaWxlIChuQml0cyA+IDApIHtcbiAgICBtYW50aXNzYSA9IG1hbnRpc3NhICogMjU2ICsgYnVmZmVyW2luZGV4LS1dO1xuICAgIG5CaXRzIC09IDg7XG4gIH1cbiAgaWYgKGV4cG9uZW50ID09PSAwKSB7XG4gICAgZXhwb25lbnQgPSAxIC0gZUJpYXM7XG4gIH0gZWxzZSBpZiAoZXhwb25lbnQgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbWFudGlzc2EgPyBOYU4gOiBzaWduID8gLUluZmluaXR5IDogSW5maW5pdHk7XG4gIH0gZWxzZSB7XG4gICAgbWFudGlzc2EgKz0gcG93KDIsIG1hbnRpc3NhTGVuZ3RoKTtcbiAgICBleHBvbmVudCAtPSBlQmlhcztcbiAgfSByZXR1cm4gKHNpZ24gPyAtMSA6IDEpICogbWFudGlzc2EgKiBwb3coMiwgZXhwb25lbnQgLSBtYW50aXNzYUxlbmd0aCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgcGFjazogcGFjayxcbiAgdW5wYWNrOiB1bnBhY2tcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xudmFyIHNwbGl0ID0gdW5jdXJyeVRoaXMoJycuc3BsaXQpO1xuXG4vLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5nc1xubW9kdWxlLmV4cG9ydHMgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIHRocm93cyBhbiBlcnJvciBpbiByaGlubywgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL3JoaW5vL2lzc3Vlcy8zNDZcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucyAtLSBzYWZlXG4gIHJldHVybiAhJE9iamVjdCgneicpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApO1xufSkgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNsYXNzb2YoaXQpID09PSAnU3RyaW5nJyA/IHNwbGl0KGl0LCAnJykgOiAkT2JqZWN0KGl0KTtcbn0gOiAkT2JqZWN0O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xuXG4vLyBtYWtlcyBzdWJjbGFzc2luZyB3b3JrIGNvcnJlY3QgZm9yIHdyYXBwZWQgYnVpbHQtaW5zXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgkdGhpcywgZHVtbXksIFdyYXBwZXIpIHtcbiAgdmFyIE5ld1RhcmdldCwgTmV3VGFyZ2V0UHJvdG90eXBlO1xuICBpZiAoXG4gICAgLy8gaXQgY2FuIHdvcmsgb25seSB3aXRoIG5hdGl2ZSBgc2V0UHJvdG90eXBlT2ZgXG4gICAgc2V0UHJvdG90eXBlT2YgJiZcbiAgICAvLyB3ZSBoYXZlbid0IGNvbXBsZXRlbHkgY29ycmVjdCBwcmUtRVM2IHdheSBmb3IgZ2V0dGluZyBgbmV3LnRhcmdldGAsIHNvIHVzZSB0aGlzXG4gICAgaXNDYWxsYWJsZShOZXdUYXJnZXQgPSBkdW1teS5jb25zdHJ1Y3RvcikgJiZcbiAgICBOZXdUYXJnZXQgIT09IFdyYXBwZXIgJiZcbiAgICBpc09iamVjdChOZXdUYXJnZXRQcm90b3R5cGUgPSBOZXdUYXJnZXQucHJvdG90eXBlKSAmJlxuICAgIE5ld1RhcmdldFByb3RvdHlwZSAhPT0gV3JhcHBlci5wcm90b3R5cGVcbiAgKSBzZXRQcm90b3R5cGVPZigkdGhpcywgTmV3VGFyZ2V0UHJvdG90eXBlKTtcbiAgcmV0dXJuICR0aGlzO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbnZhciBmdW5jdGlvblRvU3RyaW5nID0gdW5jdXJyeVRoaXMoRnVuY3Rpb24udG9TdHJpbmcpO1xuXG4vLyB0aGlzIGhlbHBlciBicm9rZW4gaW4gYGNvcmUtanNAMy40LjEtMy40LjRgLCBzbyB3ZSBjYW4ndCB1c2UgYHNoYXJlZGAgaGVscGVyXG5pZiAoIWlzQ2FsbGFibGUoc3RvcmUuaW5zcGVjdFNvdXJjZSkpIHtcbiAgc3RvcmUuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBmdW5jdGlvblRvU3RyaW5nKGl0KTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZS5pbnNwZWN0U291cmNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcblxuLy8gYEluc3RhbGxFcnJvckNhdXNlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1lcnJvci1jYXVzZS8jc2VjLWVycm9yb2JqZWN0cy1pbnN0YWxsLWVycm9yLWNhdXNlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBvcHRpb25zKSB7XG4gIGlmIChpc09iamVjdChvcHRpb25zKSAmJiAnY2F1c2UnIGluIG9wdGlvbnMpIHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoTywgJ2NhdXNlJywgb3B0aW9ucy5jYXVzZSk7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgTkFUSVZFX1dFQUtfTUFQID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlYWstbWFwLWJhc2ljLWRldGVjdGlvbicpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCA9ICdPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCc7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsVGhpcy5UeXBlRXJyb3I7XG52YXIgV2Vha01hcCA9IGdsb2JhbFRoaXMuV2Vha01hcDtcbnZhciBzZXQsIGdldCwgaGFzO1xuXG52YXIgZW5mb3JjZSA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaGFzKGl0KSA/IGdldChpdCkgOiBzZXQoaXQsIHt9KTtcbn07XG5cbnZhciBnZXR0ZXJGb3IgPSBmdW5jdGlvbiAoVFlQRSkge1xuICByZXR1cm4gZnVuY3Rpb24gKGl0KSB7XG4gICAgdmFyIHN0YXRlO1xuICAgIGlmICghaXNPYmplY3QoaXQpIHx8IChzdGF0ZSA9IGdldChpdCkpLnR5cGUgIT09IFRZUEUpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0luY29tcGF0aWJsZSByZWNlaXZlciwgJyArIFRZUEUgKyAnIHJlcXVpcmVkJyk7XG4gICAgfSByZXR1cm4gc3RhdGU7XG4gIH07XG59O1xuXG5pZiAoTkFUSVZFX1dFQUtfTUFQIHx8IHNoYXJlZC5zdGF0ZSkge1xuICB2YXIgc3RvcmUgPSBzaGFyZWQuc3RhdGUgfHwgKHNoYXJlZC5zdGF0ZSA9IG5ldyBXZWFrTWFwKCkpO1xuICAvKiBlc2xpbnQtZGlzYWJsZSBuby1zZWxmLWFzc2lnbiAtLSBwcm90b3R5cGUgbWV0aG9kcyBwcm90ZWN0aW9uICovXG4gIHN0b3JlLmdldCA9IHN0b3JlLmdldDtcbiAgc3RvcmUuaGFzID0gc3RvcmUuaGFzO1xuICBzdG9yZS5zZXQgPSBzdG9yZS5zZXQ7XG4gIC8qIGVzbGludC1lbmFibGUgbm8tc2VsZi1hc3NpZ24gLS0gcHJvdG90eXBlIG1ldGhvZHMgcHJvdGVjdGlvbiAqL1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKHN0b3JlLmhhcyhpdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIHN0b3JlLnNldChpdCwgbWV0YWRhdGEpO1xuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfTtcbiAgZ2V0ID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIHN0b3JlLmdldChpdCkgfHwge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBzdG9yZS5oYXMoaXQpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIFNUQVRFID0gc2hhcmVkS2V5KCdzdGF0ZScpO1xuICBoaWRkZW5LZXlzW1NUQVRFXSA9IHRydWU7XG4gIHNldCA9IGZ1bmN0aW9uIChpdCwgbWV0YWRhdGEpIHtcbiAgICBpZiAoaGFzT3duKGl0LCBTVEFURSkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShpdCwgU1RBVEUsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBoYXNPd24oaXQsIFNUQVRFKSA/IGl0W1NUQVRFXSA6IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gaGFzT3duKGl0LCBTVEFURSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldCxcbiAgZ2V0OiBnZXQsXG4gIGhhczogaGFzLFxuICBlbmZvcmNlOiBlbmZvcmNlLFxuICBnZXR0ZXJGb3I6IGdldHRlckZvclxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxuLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b3R5cGVbSVRFUkFUT1JdID09PSBpdCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxuLy8gYElzQXJyYXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2FycmF5XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tYXJyYXktaXNhcnJheSAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gaXNBcnJheShhcmd1bWVudCkge1xuICByZXR1cm4gY2xhc3NvZihhcmd1bWVudCkgPT09ICdBcnJheSc7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIga2xhc3MgPSBjbGFzc29mKGl0KTtcbiAgcmV0dXJuIGtsYXNzID09PSAnQmlnSW50NjRBcnJheScgfHwga2xhc3MgPT09ICdCaWdVaW50NjRBcnJheSc7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1Jc0hUTUxEREEtaW50ZXJuYWwtc2xvdFxudmFyIGRvY3VtZW50QWxsID0gdHlwZW9mIGRvY3VtZW50ID09ICdvYmplY3QnICYmIGRvY3VtZW50LmFsbDtcblxuLy8gYElzQ2FsbGFibGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2NhbGxhYmxlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby10eXBlb2YtdW5kZWZpbmVkIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG5tb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiBkb2N1bWVudEFsbCA9PSAndW5kZWZpbmVkJyAmJiBkb2N1bWVudEFsbCAhPT0gdW5kZWZpbmVkID8gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiB0eXBlb2YgYXJndW1lbnQgPT0gJ2Z1bmN0aW9uJyB8fCBhcmd1bWVudCA9PT0gZG9jdW1lbnRBbGw7XG59IDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiB0eXBlb2YgYXJndW1lbnQgPT0gJ2Z1bmN0aW9uJztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBub29wID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xudmFyIGNvbnN0cnVjdCA9IGdldEJ1aWx0SW4oJ1JlZmxlY3QnLCAnY29uc3RydWN0Jyk7XG52YXIgY29uc3RydWN0b3JSZWdFeHAgPSAvXlxccyooPzpjbGFzc3xmdW5jdGlvbilcXGIvO1xudmFyIGV4ZWMgPSB1bmN1cnJ5VGhpcyhjb25zdHJ1Y3RvclJlZ0V4cC5leGVjKTtcbnZhciBJTkNPUlJFQ1RfVE9fU1RSSU5HID0gIWNvbnN0cnVjdG9yUmVnRXhwLnRlc3Qobm9vcCk7XG5cbnZhciBpc0NvbnN0cnVjdG9yTW9kZXJuID0gZnVuY3Rpb24gaXNDb25zdHJ1Y3Rvcihhcmd1bWVudCkge1xuICBpZiAoIWlzQ2FsbGFibGUoYXJndW1lbnQpKSByZXR1cm4gZmFsc2U7XG4gIHRyeSB7XG4gICAgY29uc3RydWN0KG5vb3AsIFtdLCBhcmd1bWVudCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG52YXIgaXNDb25zdHJ1Y3RvckxlZ2FjeSA9IGZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoYXJndW1lbnQpIHtcbiAgaWYgKCFpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGZhbHNlO1xuICBzd2l0Y2ggKGNsYXNzb2YoYXJndW1lbnQpKSB7XG4gICAgY2FzZSAnQXN5bmNGdW5jdGlvbic6XG4gICAgY2FzZSAnR2VuZXJhdG9yRnVuY3Rpb24nOlxuICAgIGNhc2UgJ0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24nOiByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyB3ZSBjYW4ndCBjaGVjayAucHJvdG90eXBlIHNpbmNlIGNvbnN0cnVjdG9ycyBwcm9kdWNlZCBieSAuYmluZCBoYXZlbid0IGl0XG4gICAgLy8gYEZ1bmN0aW9uI3RvU3RyaW5nYCB0aHJvd3Mgb24gc29tZSBidWlsdC1pdCBmdW5jdGlvbiBpbiBzb21lIGxlZ2FjeSBlbmdpbmVzXG4gICAgLy8gKGZvciBleGFtcGxlLCBgRE9NUXVhZGAgYW5kIHNpbWlsYXIgaW4gRkY0MS0pXG4gICAgcmV0dXJuIElOQ09SUkVDVF9UT19TVFJJTkcgfHwgISFleGVjKGNvbnN0cnVjdG9yUmVnRXhwLCBpbnNwZWN0U291cmNlKGFyZ3VtZW50KSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cbmlzQ29uc3RydWN0b3JMZWdhY3kuc2hhbSA9IHRydWU7XG5cbi8vIGBJc0NvbnN0cnVjdG9yYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjb25zdHJ1Y3RvclxubW9kdWxlLmV4cG9ydHMgPSAhY29uc3RydWN0IHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGNhbGxlZDtcbiAgcmV0dXJuIGlzQ29uc3RydWN0b3JNb2Rlcm4oaXNDb25zdHJ1Y3Rvck1vZGVybi5jYWxsKVxuICAgIHx8ICFpc0NvbnN0cnVjdG9yTW9kZXJuKE9iamVjdClcbiAgICB8fCAhaXNDb25zdHJ1Y3Rvck1vZGVybihmdW5jdGlvbiAoKSB7IGNhbGxlZCA9IHRydWU7IH0pXG4gICAgfHwgY2FsbGVkO1xufSkgPyBpc0NvbnN0cnVjdG9yTGVnYWN5IDogaXNDb25zdHJ1Y3Rvck1vZGVybjtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIHJlcGxhY2VtZW50ID0gLyN8XFwucHJvdG90eXBlXFwuLztcblxudmFyIGlzRm9yY2VkID0gZnVuY3Rpb24gKGZlYXR1cmUsIGRldGVjdGlvbikge1xuICB2YXIgdmFsdWUgPSBkYXRhW25vcm1hbGl6ZShmZWF0dXJlKV07XG4gIHJldHVybiB2YWx1ZSA9PT0gUE9MWUZJTEwgPyB0cnVlXG4gICAgOiB2YWx1ZSA9PT0gTkFUSVZFID8gZmFsc2VcbiAgICA6IGlzQ2FsbGFibGUoZGV0ZWN0aW9uKSA/IGZhaWxzKGRldGVjdGlvbilcbiAgICA6ICEhZGV0ZWN0aW9uO1xufTtcblxudmFyIG5vcm1hbGl6ZSA9IGlzRm9yY2VkLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgcmV0dXJuIFN0cmluZyhzdHJpbmcpLnJlcGxhY2UocmVwbGFjZW1lbnQsICcuJykudG9Mb3dlckNhc2UoKTtcbn07XG5cbnZhciBkYXRhID0gaXNGb3JjZWQuZGF0YSA9IHt9O1xudmFyIE5BVElWRSA9IGlzRm9yY2VkLk5BVElWRSA9ICdOJztcbnZhciBQT0xZRklMTCA9IGlzRm9yY2VkLlBPTFlGSUxMID0gJ1AnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRm9yY2VkO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXG4vLyBgSXNJbnRlZ3JhbE51bWJlcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzaW50ZWdyYWxudW1iZXJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1udW1iZXItaXNpbnRlZ2VyIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gTnVtYmVyLmlzSW50ZWdlciB8fCBmdW5jdGlvbiBpc0ludGVnZXIoaXQpIHtcbiAgcmV0dXJuICFpc09iamVjdChpdCkgJiYgaXNGaW5pdGUoaXQpICYmIGZsb29yKGl0KSA9PT0gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gd2UgY2FuJ3QgdXNlIGp1c3QgYGl0ID09IG51bGxgIHNpbmNlIG9mIGBkb2N1bWVudC5hbGxgIHNwZWNpYWwgY2FzZVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1Jc0hUTUxEREEtaW50ZXJuYWwtc2xvdC1hZWNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA9PT0gbnVsbCB8fCBpdCA9PT0gdW5kZWZpbmVkO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IGlzQ2FsbGFibGUoaXQpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGlzT2JqZWN0KGFyZ3VtZW50KSB8fCBhcmd1bWVudCA9PT0gbnVsbDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IGZhbHNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xuXG4vLyBgSXNSZWdFeHBgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc3JlZ2V4cFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGlzUmVnRXhwO1xuICByZXR1cm4gaXNPYmplY3QoaXQpICYmICgoaXNSZWdFeHAgPSBpdFtNQVRDSF0pICE9PSB1bmRlZmluZWQgPyAhIWlzUmVnRXhwIDogY2xhc3NvZihpdCkgPT09ICdSZWdFeHAnKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgVVNFX1NZTUJPTF9BU19VSUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG5cbm1vZHVsZS5leHBvcnRzID0gVVNFX1NZTUJPTF9BU19VSUQgPyBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJztcbn0gOiBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyICRTeW1ib2wgPSBnZXRCdWlsdEluKCdTeW1ib2wnKTtcbiAgcmV0dXJuIGlzQ2FsbGFibGUoJFN5bWJvbCkgJiYgaXNQcm90b3R5cGVPZigkU3ltYm9sLnByb3RvdHlwZSwgJE9iamVjdChpdCkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCwgRU5VTUVSQUJMRV9ORVhUKSB7XG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICBJdGVyYXRvckNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoKyFFTlVNRVJBQkxFX05FWFQsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvckNvbnN0cnVjdG9yLCBUT19TVFJJTkdfVEFHLCBmYWxzZSwgdHJ1ZSk7XG4gIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gIHJldHVybiBJdGVyYXRvckNvbnN0cnVjdG9yO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIEZ1bmN0aW9uTmFtZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1uYW1lJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItY3JlYXRlLWNvbnN0cnVjdG9yJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIEl0ZXJhdG9yc0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUnKTtcblxudmFyIFBST1BFUl9GVU5DVElPTl9OQU1FID0gRnVuY3Rpb25OYW1lLlBST1BFUjtcbnZhciBDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRSA9IEZ1bmN0aW9uTmFtZS5DT05GSUdVUkFCTEU7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSBJdGVyYXRvcnNDb3JlLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSBJdGVyYXRvcnNDb3JlLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlM7XG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgS0VZUyA9ICdrZXlzJztcbnZhciBWQUxVRVMgPSAndmFsdWVzJztcbnZhciBFTlRSSUVTID0gJ2VudHJpZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEl0ZXJhYmxlLCBOQU1FLCBJdGVyYXRvckNvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICBjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yKEl0ZXJhdG9yQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpO1xuXG4gIHZhciBnZXRJdGVyYXRpb25NZXRob2QgPSBmdW5jdGlvbiAoS0lORCkge1xuICAgIGlmIChLSU5EID09PSBERUZBVUxUICYmIGRlZmF1bHRJdGVyYXRvcikgcmV0dXJuIGRlZmF1bHRJdGVyYXRvcjtcbiAgICBpZiAoIUJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgJiYgS0lORCAmJiBLSU5EIGluIEl0ZXJhYmxlUHJvdG90eXBlKSByZXR1cm4gSXRlcmFibGVQcm90b3R5cGVbS0lORF07XG5cbiAgICBzd2l0Y2ggKEtJTkQpIHtcbiAgICAgIGNhc2UgS0VZUzogcmV0dXJuIGZ1bmN0aW9uIGtleXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICAgIGNhc2UgVkFMVUVTOiByZXR1cm4gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgICBjYXNlIEVOVFJJRVM6IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMpOyB9O1xuICB9O1xuXG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gZmFsc2U7XG4gIHZhciBJdGVyYWJsZVByb3RvdHlwZSA9IEl0ZXJhYmxlLnByb3RvdHlwZTtcbiAgdmFyIG5hdGl2ZUl0ZXJhdG9yID0gSXRlcmFibGVQcm90b3R5cGVbSVRFUkFUT1JdXG4gICAgfHwgSXRlcmFibGVQcm90b3R5cGVbJ0BAaXRlcmF0b3InXVxuICAgIHx8IERFRkFVTFQgJiYgSXRlcmFibGVQcm90b3R5cGVbREVGQVVMVF07XG4gIHZhciBkZWZhdWx0SXRlcmF0b3IgPSAhQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBuYXRpdmVJdGVyYXRvciB8fCBnZXRJdGVyYXRpb25NZXRob2QoREVGQVVMVCk7XG4gIHZhciBhbnlOYXRpdmVJdGVyYXRvciA9IE5BTUUgPT09ICdBcnJheScgPyBJdGVyYWJsZVByb3RvdHlwZS5lbnRyaWVzIHx8IG5hdGl2ZUl0ZXJhdG9yIDogbmF0aXZlSXRlcmF0b3I7XG4gIHZhciBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIG1ldGhvZHMsIEtFWTtcblxuICAvLyBmaXggbmF0aXZlXG4gIGlmIChhbnlOYXRpdmVJdGVyYXRvcikge1xuICAgIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKGFueU5hdGl2ZUl0ZXJhdG9yLmNhbGwobmV3IEl0ZXJhYmxlKCkpKTtcbiAgICBpZiAoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZS5uZXh0KSB7XG4gICAgICBpZiAoIUlTX1BVUkUgJiYgZ2V0UHJvdG90eXBlT2YoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlKSAhPT0gSXRlcmF0b3JQcm90b3R5cGUpIHtcbiAgICAgICAgaWYgKHNldFByb3RvdHlwZU9mKSB7XG4gICAgICAgICAgc2V0UHJvdG90eXBlT2YoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBJdGVyYXRvclByb3RvdHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzQ2FsbGFibGUoQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSkpIHtcbiAgICAgICAgICBkZWZpbmVCdWlsdEluKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsIHRydWUsIHRydWUpO1xuICAgICAgaWYgKElTX1BVUkUpIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gICAgfVxuICB9XG5cbiAgLy8gZml4IEFycmF5LnByb3RvdHlwZS57IHZhbHVlcywgQEBpdGVyYXRvciB9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoUFJPUEVSX0ZVTkNUSU9OX05BTUUgJiYgREVGQVVMVCA9PT0gVkFMVUVTICYmIG5hdGl2ZUl0ZXJhdG9yICYmIG5hdGl2ZUl0ZXJhdG9yLm5hbWUgIT09IFZBTFVFUykge1xuICAgIGlmICghSVNfUFVSRSAmJiBDT05GSUdVUkFCTEVfRlVOQ1RJT05fTkFNRSkge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEl0ZXJhYmxlUHJvdG90eXBlLCAnbmFtZScsIFZBTFVFUyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIElOQ09SUkVDVF9WQUxVRVNfTkFNRSA9IHRydWU7XG4gICAgICBkZWZhdWx0SXRlcmF0b3IgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBjYWxsKG5hdGl2ZUl0ZXJhdG9yLCB0aGlzKTsgfTtcbiAgICB9XG4gIH1cblxuICAvLyBleHBvcnQgYWRkaXRpb25hbCBtZXRob2RzXG4gIGlmIChERUZBVUxUKSB7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogZ2V0SXRlcmF0aW9uTWV0aG9kKFZBTFVFUyksXG4gICAgICBrZXlzOiBJU19TRVQgPyBkZWZhdWx0SXRlcmF0b3IgOiBnZXRJdGVyYXRpb25NZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiBnZXRJdGVyYXRpb25NZXRob2QoRU5UUklFUylcbiAgICB9O1xuICAgIGlmIChGT1JDRUQpIGZvciAoS0VZIGluIG1ldGhvZHMpIHtcbiAgICAgIGlmIChCVUdHWV9TQUZBUklfSVRFUkFUT1JTIHx8IElOQ09SUkVDVF9WQUxVRVNfTkFNRSB8fCAhKEtFWSBpbiBJdGVyYWJsZVByb3RvdHlwZSkpIHtcbiAgICAgICAgZGVmaW5lQnVpbHRJbihJdGVyYWJsZVByb3RvdHlwZSwgS0VZLCBtZXRob2RzW0tFWV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSAkKHsgdGFyZ2V0OiBOQU1FLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBCVUdHWV9TQUZBUklfSVRFUkFUT1JTIHx8IElOQ09SUkVDVF9WQUxVRVNfTkFNRSB9LCBtZXRob2RzKTtcbiAgfVxuXG4gIC8vIGRlZmluZSBpdGVyYXRvclxuICBpZiAoKCFJU19QVVJFIHx8IEZPUkNFRCkgJiYgSXRlcmFibGVQcm90b3R5cGVbSVRFUkFUT1JdICE9PSBkZWZhdWx0SXRlcmF0b3IpIHtcbiAgICBkZWZpbmVCdWlsdEluKEl0ZXJhYmxlUHJvdG90eXBlLCBJVEVSQVRPUiwgZGVmYXVsdEl0ZXJhdG9yLCB7IG5hbWU6IERFRkFVTFQgfSk7XG4gIH1cbiAgSXRlcmF0b3JzW05BTUVdID0gZGVmYXVsdEl0ZXJhdG9yO1xuXG4gIHJldHVybiBtZXRob2RzO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSBmYWxzZTtcblxuLy8gYCVJdGVyYXRvclByb3RvdHlwZSVgIG9iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0laXRlcmF0b3Jwcm90b3R5cGUlLW9iamVjdFxudmFyIEl0ZXJhdG9yUHJvdG90eXBlLCBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUsIGFycmF5SXRlcmF0b3I7XG5cbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLWFycmF5LXByb3RvdHlwZS1rZXlzIC0tIHNhZmUgKi9cbmlmIChbXS5rZXlzKSB7XG4gIGFycmF5SXRlcmF0b3IgPSBbXS5rZXlzKCk7XG4gIC8vIFNhZmFyaSA4IGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxuICBpZiAoISgnbmV4dCcgaW4gYXJyYXlJdGVyYXRvcikpIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSB0cnVlO1xuICBlbHNlIHtcbiAgICBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZihnZXRQcm90b3R5cGVPZihhcnJheUl0ZXJhdG9yKSk7XG4gICAgaWYgKFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSkgSXRlcmF0b3JQcm90b3R5cGUgPSBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGU7XG4gIH1cbn1cblxudmFyIE5FV19JVEVSQVRPUl9QUk9UT1RZUEUgPSAhaXNPYmplY3QoSXRlcmF0b3JQcm90b3R5cGUpIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgLy8gRkY0NC0gbGVnYWN5IGl0ZXJhdG9ycyBjYXNlXG4gIHJldHVybiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0uY2FsbCh0ZXN0KSAhPT0gdGVzdDtcbn0pO1xuXG5pZiAoTkVXX0lURVJBVE9SX1BST1RPVFlQRSkgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcbmVsc2UgaWYgKElTX1BVUkUpIEl0ZXJhdG9yUHJvdG90eXBlID0gY3JlYXRlKEl0ZXJhdG9yUHJvdG90eXBlKTtcblxuLy8gYCVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVpdGVyYXRvcnByb3RvdHlwZSUtQEBpdGVyYXRvclxuaWYgKCFpc0NhbGxhYmxlKEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSkpIHtcbiAgZGVmaW5lQnVpbHRJbihJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBJdGVyYXRvclByb3RvdHlwZTogSXRlcmF0b3JQcm90b3R5cGUsXG4gIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlNcbn07XG4iLCIndXNlIHN0cmljdCc7XG5tb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xuXG4vLyBgTGVuZ3RoT2ZBcnJheUxpa2VgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1sZW5ndGhvZmFycmF5bGlrZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiB0b0xlbmd0aChvYmoubGVuZ3RoKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKS5DT05GSUdVUkFCTEU7XG52YXIgaW5zcGVjdFNvdXJjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZScpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcblxudmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5lbmZvcmNlO1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbnZhciAkU3RyaW5nID0gU3RyaW5nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG52YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xudmFyIGpvaW4gPSB1bmN1cnJ5VGhpcyhbXS5qb2luKTtcblxudmFyIENPTkZJR1VSQUJMRV9MRU5HVEggPSBERVNDUklQVE9SUyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAnbGVuZ3RoJywgeyB2YWx1ZTogOCB9KS5sZW5ndGggIT09IDg7XG59KTtcblxudmFyIFRFTVBMQVRFID0gU3RyaW5nKFN0cmluZykuc3BsaXQoJ1N0cmluZycpO1xuXG52YXIgbWFrZUJ1aWx0SW4gPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh2YWx1ZSwgbmFtZSwgb3B0aW9ucykge1xuICBpZiAoc3RyaW5nU2xpY2UoJFN0cmluZyhuYW1lKSwgMCwgNykgPT09ICdTeW1ib2woJykge1xuICAgIG5hbWUgPSAnWycgKyByZXBsYWNlKCRTdHJpbmcobmFtZSksIC9eU3ltYm9sXFwoKFteKV0qKVxcKS4qJC8sICckMScpICsgJ10nO1xuICB9XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZ2V0dGVyKSBuYW1lID0gJ2dldCAnICsgbmFtZTtcbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zZXR0ZXIpIG5hbWUgPSAnc2V0ICcgKyBuYW1lO1xuICBpZiAoIWhhc093bih2YWx1ZSwgJ25hbWUnKSB8fCAoQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUgJiYgdmFsdWUubmFtZSAhPT0gbmFtZSkpIHtcbiAgICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5KHZhbHVlLCAnbmFtZScsIHsgdmFsdWU6IG5hbWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICBlbHNlIHZhbHVlLm5hbWUgPSBuYW1lO1xuICB9XG4gIGlmIChDT05GSUdVUkFCTEVfTEVOR1RIICYmIG9wdGlvbnMgJiYgaGFzT3duKG9wdGlvbnMsICdhcml0eScpICYmIHZhbHVlLmxlbmd0aCAhPT0gb3B0aW9ucy5hcml0eSkge1xuICAgIGRlZmluZVByb3BlcnR5KHZhbHVlLCAnbGVuZ3RoJywgeyB2YWx1ZTogb3B0aW9ucy5hcml0eSB9KTtcbiAgfVxuICB0cnkge1xuICAgIGlmIChvcHRpb25zICYmIGhhc093bihvcHRpb25zLCAnY29uc3RydWN0b3InKSAmJiBvcHRpb25zLmNvbnN0cnVjdG9yKSB7XG4gICAgICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5KHZhbHVlLCAncHJvdG90eXBlJywgeyB3cml0YWJsZTogZmFsc2UgfSk7XG4gICAgLy8gaW4gVjggfiBDaHJvbWUgNTMsIHByb3RvdHlwZXMgb2Ygc29tZSBtZXRob2RzLCBsaWtlIGBBcnJheS5wcm90b3R5cGUudmFsdWVzYCwgYXJlIG5vbi13cml0YWJsZVxuICAgIH0gZWxzZSBpZiAodmFsdWUucHJvdG90eXBlKSB2YWx1ZS5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgdmFyIHN0YXRlID0gZW5mb3JjZUludGVybmFsU3RhdGUodmFsdWUpO1xuICBpZiAoIWhhc093bihzdGF0ZSwgJ3NvdXJjZScpKSB7XG4gICAgc3RhdGUuc291cmNlID0gam9pbihURU1QTEFURSwgdHlwZW9mIG5hbWUgPT0gJ3N0cmluZycgPyBuYW1lIDogJycpO1xuICB9IHJldHVybiB2YWx1ZTtcbn07XG5cbi8vIGFkZCBmYWtlIEZ1bmN0aW9uI3RvU3RyaW5nIGZvciBjb3JyZWN0IHdvcmsgd3JhcHBlZCBtZXRob2RzIC8gY29uc3RydWN0b3JzIHdpdGggbWV0aG9kcyBsaWtlIExvRGFzaCBpc05hdGl2ZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dGVuZC1uYXRpdmUgLS0gcmVxdWlyZWRcbkZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyA9IG1ha2VCdWlsdEluKGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICByZXR1cm4gaXNDYWxsYWJsZSh0aGlzKSAmJiBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLnNvdXJjZSB8fCBpbnNwZWN0U291cmNlKHRoaXMpO1xufSwgJ3RvU3RyaW5nJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgc2lnbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLXNpZ24nKTtcblxudmFyIGFicyA9IE1hdGguYWJzO1xuXG52YXIgRVBTSUxPTiA9IDIuMjIwNDQ2MDQ5MjUwMzEzZS0xNjsgLy8gTnVtYmVyLkVQU0lMT05cbnZhciBJTlZFUlNFX0VQU0lMT04gPSAxIC8gRVBTSUxPTjtcblxudmFyIHJvdW5kVGllc1RvRXZlbiA9IGZ1bmN0aW9uIChuKSB7XG4gIHJldHVybiBuICsgSU5WRVJTRV9FUFNJTE9OIC0gSU5WRVJTRV9FUFNJTE9OO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoeCwgRkxPQVRfRVBTSUxPTiwgRkxPQVRfTUFYX1ZBTFVFLCBGTE9BVF9NSU5fVkFMVUUpIHtcbiAgdmFyIG4gPSAreDtcbiAgdmFyIGFic29sdXRlID0gYWJzKG4pO1xuICB2YXIgcyA9IHNpZ24obik7XG4gIGlmIChhYnNvbHV0ZSA8IEZMT0FUX01JTl9WQUxVRSkgcmV0dXJuIHMgKiByb3VuZFRpZXNUb0V2ZW4oYWJzb2x1dGUgLyBGTE9BVF9NSU5fVkFMVUUgLyBGTE9BVF9FUFNJTE9OKSAqIEZMT0FUX01JTl9WQUxVRSAqIEZMT0FUX0VQU0lMT047XG4gIHZhciBhID0gKDEgKyBGTE9BVF9FUFNJTE9OIC8gRVBTSUxPTikgKiBhYnNvbHV0ZTtcbiAgdmFyIHJlc3VsdCA9IGEgLSAoYSAtIGFic29sdXRlKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgaWYgKHJlc3VsdCA+IEZMT0FUX01BWF9WQUxVRSB8fCByZXN1bHQgIT09IHJlc3VsdCkgcmV0dXJuIHMgKiBJbmZpbml0eTtcbiAgcmV0dXJuIHMgKiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZsb2F0Um91bmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC1mbG9hdC1yb3VuZCcpO1xuXG52YXIgRkxPQVQzMl9FUFNJTE9OID0gMS4xOTIwOTI4OTU1MDc4MTI1ZS03OyAvLyAyICoqIC0yMztcbnZhciBGTE9BVDMyX01BWF9WQUxVRSA9IDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzg7IC8vIDIgKiogMTI4IC0gMiAqKiAxMDRcbnZhciBGTE9BVDMyX01JTl9WQUxVRSA9IDEuMTc1NDk0MzUwODIyMjg3NWUtMzg7IC8vIDIgKiogLTEyNjtcblxuLy8gYE1hdGguZnJvdW5kYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbWF0aC5mcm91bmRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1tYXRoLWZyb3VuZCAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGguZnJvdW5kIHx8IGZ1bmN0aW9uIGZyb3VuZCh4KSB7XG4gIHJldHVybiBmbG9hdFJvdW5kKHgsIEZMT0FUMzJfRVBTSUxPTiwgRkxPQVQzMl9NQVhfVkFMVUUsIEZMT0FUMzJfTUlOX1ZBTFVFKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBgTWF0aC5zaWduYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbWF0aC5zaWduXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tbWF0aC1zaWduIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gTWF0aC5zaWduIHx8IGZ1bmN0aW9uIHNpZ24oeCkge1xuICB2YXIgbiA9ICt4O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICByZXR1cm4gbiA9PT0gMCB8fCBuICE9PSBuID8gbiA6IG4gPCAwID8gLTEgOiAxO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYE1hdGgudHJ1bmNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1tYXRoLnRydW5jXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tbWF0aC10cnVuYyAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgudHJ1bmMgfHwgZnVuY3Rpb24gdHJ1bmMoeCkge1xuICB2YXIgbiA9ICt4O1xuICByZXR1cm4gKG4gPiAwID8gZmxvb3IgOiBjZWlsKShuKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50LCAkZGVmYXVsdCkge1xuICByZXR1cm4gYXJndW1lbnQgPT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50cy5sZW5ndGggPCAyID8gJycgOiAkZGVmYXVsdCA6IHRvU3RyaW5nKGFyZ3VtZW50KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vKiBnbG9iYWwgQWN0aXZlWE9iamVjdCAtLSBvbGQgSUUsIFdTSCAqL1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGRlZmluZVByb3BlcnRpZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBkb2N1bWVudENyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xuXG52YXIgR1QgPSAnPic7XG52YXIgTFQgPSAnPCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgU0NSSVBUID0gJ3NjcmlwdCc7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBFbXB0eUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG52YXIgc2NyaXB0VGFnID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIExUICsgU0NSSVBUICsgR1QgKyBjb250ZW50ICsgTFQgKyAnLycgKyBTQ1JJUFQgKyBHVDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBBY3RpdmVYIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCA9IGZ1bmN0aW9uIChhY3RpdmVYRG9jdW1lbnQpIHtcbiAgYWN0aXZlWERvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnJykpO1xuICBhY3RpdmVYRG9jdW1lbnQuY2xvc2UoKTtcbiAgdmFyIHRlbXAgPSBhY3RpdmVYRG9jdW1lbnQucGFyZW50V2luZG93Lk9iamVjdDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudCAtLSBhdm9pZCBtZW1vcnkgbGVha1xuICBhY3RpdmVYRG9jdW1lbnQgPSBudWxsO1xuICByZXR1cm4gdGVtcDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIFRocmFzaCwgd2FzdGUgYW5kIHNvZG9teTogSUUgR0MgYnVnXG4gIHZhciBpZnJhbWUgPSBkb2N1bWVudENyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICB2YXIgSlMgPSAnamF2YScgKyBTQ1JJUFQgKyAnOic7XG4gIHZhciBpZnJhbWVEb2N1bWVudDtcbiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGh0bWwuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzQ3NVxuICBpZnJhbWUuc3JjID0gU3RyaW5nKEpTKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJ2RvY3VtZW50LkY9T2JqZWN0JykpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICByZXR1cm4gaWZyYW1lRG9jdW1lbnQuRjtcbn07XG5cbi8vIENoZWNrIGZvciBkb2N1bWVudC5kb21haW4gYW5kIGFjdGl2ZSB4IHN1cHBvcnRcbi8vIE5vIG5lZWQgdG8gdXNlIGFjdGl2ZSB4IGFwcHJvYWNoIHdoZW4gZG9jdW1lbnQuZG9tYWluIGlzIG5vdCBzZXRcbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZXMtc2hpbXMvZXM1LXNoaW0vaXNzdWVzLzE1MFxuLy8gdmFyaWF0aW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9raXRjYW1icmlkZ2UvZXM1LXNoaW0vY29tbWl0LzRmNzM4YWMwNjYzNDZcbi8vIGF2b2lkIElFIEdDIGJ1Z1xudmFyIGFjdGl2ZVhEb2N1bWVudDtcbnZhciBOdWxsUHJvdG9PYmplY3QgPSBmdW5jdGlvbiAoKSB7XG4gIHRyeSB7XG4gICAgYWN0aXZlWERvY3VtZW50ID0gbmV3IEFjdGl2ZVhPYmplY3QoJ2h0bWxmaWxlJyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGlnbm9yZSAqLyB9XG4gIE51bGxQcm90b09iamVjdCA9IHR5cGVvZiBkb2N1bWVudCAhPSAndW5kZWZpbmVkJ1xuICAgID8gZG9jdW1lbnQuZG9tYWluICYmIGFjdGl2ZVhEb2N1bWVudFxuICAgICAgPyBOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGFjdGl2ZVhEb2N1bWVudCkgLy8gb2xkIElFXG4gICAgICA6IE51bGxQcm90b09iamVjdFZpYUlGcmFtZSgpXG4gICAgOiBOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYKGFjdGl2ZVhEb2N1bWVudCk7IC8vIFdTSFxuICB2YXIgbGVuZ3RoID0gZW51bUJ1Z0tleXMubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIGRlbGV0ZSBOdWxsUHJvdG9PYmplY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tsZW5ndGhdXTtcbiAgcmV0dXJuIE51bGxQcm90b09iamVjdCgpO1xufTtcblxuaGlkZGVuS2V5c1tJRV9QUk9UT10gPSB0cnVlO1xuXG4vLyBgT2JqZWN0LmNyZWF0ZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5jcmVhdGVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtY3JlYXRlIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eUNvbnN0cnVjdG9yKCk7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBOdWxsUHJvdG9PYmplY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRlZmluZVByb3BlcnRpZXNNb2R1bGUuZihyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZGVmaW5lcHJvcGVydGllcyAtLSBzYWZlXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyAmJiAhVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIHByb3BzID0gdG9JbmRleGVkT2JqZWN0KFByb3BlcnRpZXMpO1xuICB2YXIga2V5cyA9IG9iamVjdEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGtleTtcbiAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSA9IGtleXNbaW5kZXgrK10sIHByb3BzW2tleV0pO1xuICByZXR1cm4gTztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xudmFyIFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9Qcm9wZXJ0eUtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcm9wZXJ0eS1rZXknKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbnZhciAkZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgRU5VTUVSQUJMRSA9ICdlbnVtZXJhYmxlJztcbnZhciBDT05GSUdVUkFCTEUgPSAnY29uZmlndXJhYmxlJztcbnZhciBXUklUQUJMRSA9ICd3cml0YWJsZSc7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZGVmaW5lcHJvcGVydHlcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmICh0eXBlb2YgTyA9PT0gJ2Z1bmN0aW9uJyAmJiBQID09PSAncHJvdG90eXBlJyAmJiAndmFsdWUnIGluIEF0dHJpYnV0ZXMgJiYgV1JJVEFCTEUgaW4gQXR0cmlidXRlcyAmJiAhQXR0cmlidXRlc1tXUklUQUJMRV0pIHtcbiAgICB2YXIgY3VycmVudCA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudFtXUklUQUJMRV0pIHtcbiAgICAgIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICAgICAgQXR0cmlidXRlcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiBDT05GSUdVUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbQ09ORklHVVJBQkxFXSA6IGN1cnJlbnRbQ09ORklHVVJBQkxFXSxcbiAgICAgICAgZW51bWVyYWJsZTogRU5VTUVSQUJMRSBpbiBBdHRyaWJ1dGVzID8gQXR0cmlidXRlc1tFTlVNRVJBQkxFXSA6IGN1cnJlbnRbRU5VTUVSQUJMRV0sXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gIH0gcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbn0gOiAkZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gJGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93IG5ldyAkVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCcpO1xuICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTtcbiAgcmV0dXJuIE87XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b1Byb3BlcnR5S2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUnKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihPLCBQKSB7XG4gIE8gPSB0b0luZGV4ZWRPYmplY3QoTyk7XG4gIFAgPSB0b1Byb3BlcnR5S2V5KFApO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKGhhc093bihPLCBQKSkgcmV0dXJuIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcighY2FsbChwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZS5mLCBPLCBQKSwgT1tQXSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxudmFyIGhpZGRlbktleXMgPSBlbnVtQnVnS2V5cy5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3QtZ2V0b3ducHJvcGVydHluYW1lcyAtLSBzYWZlXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBoaWRkZW5LZXlzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5c3ltYm9scyAtLSBzYWZlXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlcicpO1xuXG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG52YXIgJE9iamVjdCA9IE9iamVjdDtcbnZhciBPYmplY3RQcm90b3R5cGUgPSAkT2JqZWN0LnByb3RvdHlwZTtcblxuLy8gYE9iamVjdC5nZXRQcm90b3R5cGVPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRwcm90b3R5cGVvZlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1nZXRwcm90b3R5cGVvZiAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA/ICRPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiAoTykge1xuICB2YXIgb2JqZWN0ID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXNPd24ob2JqZWN0LCBJRV9QUk9UTykpIHJldHVybiBvYmplY3RbSUVfUFJPVE9dO1xuICB2YXIgY29uc3RydWN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIGlmIChpc0NhbGxhYmxlKGNvbnN0cnVjdG9yKSAmJiBvYmplY3QgaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBjb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mICRPYmplY3QgPyBPYmplY3RQcm90b3R5cGUgOiBudWxsO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1bmN1cnJ5VGhpcyh7fS5pc1Byb3RvdHlwZU9mKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxudmFyIHB1c2ggPSB1bmN1cnJ5VGhpcyhbXS5wdXNoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhc093bihoaWRkZW5LZXlzLCBrZXkpICYmIGhhc093bihPLCBrZXkpICYmIHB1c2gocmVzdWx0LCBrZXkpO1xuICAvLyBEb24ndCBlbnVtIGJ1ZyAmIGhpZGRlbiBrZXlzXG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzT3duKE8sIGtleSA9IG5hbWVzW2krK10pKSB7XG4gICAgfmluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHB1c2gocmVzdWx0LCBrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy9uby1vYmplY3Qta2V5cyAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykge1xuICByZXR1cm4gaW50ZXJuYWxPYmplY3RLZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJHByb3BlcnR5SXNFbnVtZXJhYmxlID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gTmFzaG9ybiB+IEpESzggYnVnXG52YXIgTkFTSE9STl9CVUcgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgJiYgISRwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHsgMTogMiB9LCAxKTtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGVgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QucHJvdG90eXBlLnByb3BlcnR5aXNlbnVtZXJhYmxlXG5leHBvcnRzLmYgPSBOQVNIT1JOX0JVRyA/IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKFYpIHtcbiAgdmFyIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywgVik7XG4gIHJldHVybiAhIWRlc2NyaXB0b3IgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlO1xufSA6ICRwcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvIC0tIHNhZmUgKi9cbnZhciB1bmN1cnJ5VGhpc0FjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1hY2Nlc3NvcicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgYVBvc3NpYmxlUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlJyk7XG5cbi8vIGBPYmplY3Quc2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3Quc2V0cHJvdG90eXBlb2Zcbi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1zZXRwcm90b3R5cGVvZiAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCAoJ19fcHJvdG9fXycgaW4ge30gPyBmdW5jdGlvbiAoKSB7XG4gIHZhciBDT1JSRUNUX1NFVFRFUiA9IGZhbHNlO1xuICB2YXIgdGVzdCA9IHt9O1xuICB2YXIgc2V0dGVyO1xuICB0cnkge1xuICAgIHNldHRlciA9IHVuY3VycnlUaGlzQWNjZXNzb3IoT2JqZWN0LnByb3RvdHlwZSwgJ19fcHJvdG9fXycsICdzZXQnKTtcbiAgICBzZXR0ZXIodGVzdCwgW10pO1xuICAgIENPUlJFQ1RfU0VUVEVSID0gdGVzdCBpbnN0YW5jZW9mIEFycmF5O1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgIHJlcXVpcmVPYmplY3RDb2VyY2libGUoTyk7XG4gICAgYVBvc3NpYmxlUHJvdG90eXBlKHByb3RvKTtcbiAgICBpZiAoIWlzT2JqZWN0KE8pKSByZXR1cm4gTztcbiAgICBpZiAoQ09SUkVDVF9TRVRURVIpIHNldHRlcihPLCBwcm90byk7XG4gICAgZWxzZSBPLl9fcHJvdG9fXyA9IHByb3RvO1xuICAgIHJldHVybiBPO1xuICB9O1xufSgpIDogdW5kZWZpbmVkKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZ1xubW9kdWxlLmV4cG9ydHMgPSBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPyB7fS50b1N0cmluZyA6IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICByZXR1cm4gJ1tvYmplY3QgJyArIGNsYXNzb2YodGhpcykgKyAnXSc7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBPcmRpbmFyeVRvUHJpbWl0aXZlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb3JkaW5hcnl0b3ByaW1pdGl2ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQsIHByZWYpIHtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmIChwcmVmID09PSAnc3RyaW5nJyAmJiBpc0NhbGxhYmxlKGZuID0gaW5wdXQudG9TdHJpbmcpICYmICFpc09iamVjdCh2YWwgPSBjYWxsKGZuLCBpbnB1dCkpKSByZXR1cm4gdmFsO1xuICBpZiAoaXNDYWxsYWJsZShmbiA9IGlucHV0LnZhbHVlT2YpICYmICFpc09iamVjdCh2YWwgPSBjYWxsKGZuLCBpbnB1dCkpKSByZXR1cm4gdmFsO1xuICBpZiAocHJlZiAhPT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcycpO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbnZhciBjb25jYXQgPSB1bmN1cnJ5VGhpcyhbXS5jb25jYXQpO1xuXG4vLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ1JlZmxlY3QnLCAnb3duS2V5cycpIHx8IGZ1bmN0aW9uIG93bktleXMoaXQpIHtcbiAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYoYW5PYmplY3QoaXQpKTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gY29uY2F0KGtleXMsIGdldE93blByb3BlcnR5U3ltYm9scyhpdCkpIDoga2V5cztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFRoaXM7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRhcmdldCwgU291cmNlLCBrZXkpIHtcbiAga2V5IGluIFRhcmdldCB8fCBkZWZpbmVQcm9wZXJ0eShUYXJnZXQsIGtleSwge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFNvdXJjZVtrZXldOyB9LFxuICAgIHNldDogZnVuY3Rpb24gKGl0KSB7IFNvdXJjZVtrZXldID0gaXQ7IH1cbiAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgcmVnZXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYycpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYFJlZ0V4cEV4ZWNgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHBleGVjXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChSLCBTKSB7XG4gIHZhciBleGVjID0gUi5leGVjO1xuICBpZiAoaXNDYWxsYWJsZShleGVjKSkge1xuICAgIHZhciByZXN1bHQgPSBjYWxsKGV4ZWMsIFIsIFMpO1xuICAgIGlmIChyZXN1bHQgIT09IG51bGwpIGFuT2JqZWN0KHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICBpZiAoY2xhc3NvZihSKSA9PT0gJ1JlZ0V4cCcpIHJldHVybiBjYWxsKHJlZ2V4cEV4ZWMsIFIsIFMpO1xuICB0aHJvdyBuZXcgJFR5cGVFcnJvcignUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlcicpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIHJlZ2V4cC9uby1lbXB0eS1jYXB0dXJpbmctZ3JvdXAsIHJlZ2V4cC9uby1lbXB0eS1ncm91cCwgcmVnZXhwL25vLWxhenktZW5kcyAtLSB0ZXN0aW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWdleHAvbm8tdXNlbGVzcy1xdWFudGlmaWVyIC0tIHRlc3RpbmcgKi9cbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciByZWdleHBGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcbnZhciBzdGlja3lIZWxwZXJzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGdldEludGVybmFsU3RhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKS5nZXQ7XG52YXIgVU5TVVBQT1JURURfRE9UX0FMTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbCcpO1xudmFyIFVOU1VQUE9SVEVEX05DRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtbmNnJyk7XG5cbnZhciBuYXRpdmVSZXBsYWNlID0gc2hhcmVkKCduYXRpdmUtc3RyaW5nLXJlcGxhY2UnLCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpO1xudmFyIG5hdGl2ZUV4ZWMgPSBSZWdFeHAucHJvdG90eXBlLmV4ZWM7XG52YXIgcGF0Y2hlZEV4ZWMgPSBuYXRpdmVFeGVjO1xudmFyIGNoYXJBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJBdCk7XG52YXIgaW5kZXhPZiA9IHVuY3VycnlUaGlzKCcnLmluZGV4T2YpO1xudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciByZTEgPSAvYS87XG4gIHZhciByZTIgPSAvYiovZztcbiAgY2FsbChuYXRpdmVFeGVjLCByZTEsICdhJyk7XG4gIGNhbGwobmF0aXZlRXhlYywgcmUyLCAnYScpO1xuICByZXR1cm4gcmUxLmxhc3RJbmRleCAhPT0gMCB8fCByZTIubGFzdEluZGV4ICE9PSAwO1xufSkoKTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLkJST0tFTl9DQVJFVDtcblxuLy8gbm9ucGFydGljaXBhdGluZyBjYXB0dXJpbmcgZ3JvdXAsIGNvcGllZCBmcm9tIGVzNS1zaGltJ3MgU3RyaW5nI3NwbGl0IHBhdGNoLlxudmFyIE5QQ0dfSU5DTFVERUQgPSAvKCk/Py8uZXhlYygnJylbMV0gIT09IHVuZGVmaW5lZDtcblxudmFyIFBBVENIID0gVVBEQVRFU19MQVNUX0lOREVYX1dST05HIHx8IE5QQ0dfSU5DTFVERUQgfHwgVU5TVVBQT1JURURfWSB8fCBVTlNVUFBPUlRFRF9ET1RfQUxMIHx8IFVOU1VQUE9SVEVEX05DRztcblxuaWYgKFBBVENIKSB7XG4gIHBhdGNoZWRFeGVjID0gZnVuY3Rpb24gZXhlYyhzdHJpbmcpIHtcbiAgICB2YXIgcmUgPSB0aGlzO1xuICAgIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUocmUpO1xuICAgIHZhciBzdHIgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgIHZhciByYXcgPSBzdGF0ZS5yYXc7XG4gICAgdmFyIHJlc3VsdCwgcmVDb3B5LCBsYXN0SW5kZXgsIG1hdGNoLCBpLCBvYmplY3QsIGdyb3VwO1xuXG4gICAgaWYgKHJhdykge1xuICAgICAgcmF3Lmxhc3RJbmRleCA9IHJlLmxhc3RJbmRleDtcbiAgICAgIHJlc3VsdCA9IGNhbGwocGF0Y2hlZEV4ZWMsIHJhdywgc3RyKTtcbiAgICAgIHJlLmxhc3RJbmRleCA9IHJhdy5sYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHZhciBncm91cHMgPSBzdGF0ZS5ncm91cHM7XG4gICAgdmFyIHN0aWNreSA9IFVOU1VQUE9SVEVEX1kgJiYgcmUuc3RpY2t5O1xuICAgIHZhciBmbGFncyA9IGNhbGwocmVnZXhwRmxhZ3MsIHJlKTtcbiAgICB2YXIgc291cmNlID0gcmUuc291cmNlO1xuICAgIHZhciBjaGFyc0FkZGVkID0gMDtcbiAgICB2YXIgc3RyQ29weSA9IHN0cjtcblxuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGZsYWdzID0gcmVwbGFjZShmbGFncywgJ3knLCAnJyk7XG4gICAgICBpZiAoaW5kZXhPZihmbGFncywgJ2cnKSA9PT0gLTEpIHtcbiAgICAgICAgZmxhZ3MgKz0gJ2cnO1xuICAgICAgfVxuXG4gICAgICBzdHJDb3B5ID0gc3RyaW5nU2xpY2Uoc3RyLCByZS5sYXN0SW5kZXgpO1xuICAgICAgLy8gU3VwcG9ydCBhbmNob3JlZCBzdGlja3kgYmVoYXZpb3IuXG4gICAgICBpZiAocmUubGFzdEluZGV4ID4gMCAmJiAoIXJlLm11bHRpbGluZSB8fCByZS5tdWx0aWxpbmUgJiYgY2hhckF0KHN0ciwgcmUubGFzdEluZGV4IC0gMSkgIT09ICdcXG4nKSkge1xuICAgICAgICBzb3VyY2UgPSAnKD86ICcgKyBzb3VyY2UgKyAnKSc7XG4gICAgICAgIHN0ckNvcHkgPSAnICcgKyBzdHJDb3B5O1xuICAgICAgICBjaGFyc0FkZGVkKys7XG4gICAgICB9XG4gICAgICAvLyBeKD8gKyByeCArICkgaXMgbmVlZGVkLCBpbiBjb21iaW5hdGlvbiB3aXRoIHNvbWUgc3RyIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeKD86JyArIHNvdXJjZSArICcpJywgZmxhZ3MpO1xuICAgIH1cblxuICAgIGlmIChOUENHX0lOQ0xVREVEKSB7XG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeJyArIHNvdXJjZSArICckKD8hXFxcXHMpJywgZmxhZ3MpO1xuICAgIH1cbiAgICBpZiAoVVBEQVRFU19MQVNUX0lOREVYX1dST05HKSBsYXN0SW5kZXggPSByZS5sYXN0SW5kZXg7XG5cbiAgICBtYXRjaCA9IGNhbGwobmF0aXZlRXhlYywgc3RpY2t5ID8gcmVDb3B5IDogcmUsIHN0ckNvcHkpO1xuXG4gICAgaWYgKHN0aWNreSkge1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIG1hdGNoLmlucHV0ID0gc3RyaW5nU2xpY2UobWF0Y2guaW5wdXQsIGNoYXJzQWRkZWQpO1xuICAgICAgICBtYXRjaFswXSA9IHN0cmluZ1NsaWNlKG1hdGNoWzBdLCBjaGFyc0FkZGVkKTtcbiAgICAgICAgbWF0Y2guaW5kZXggPSByZS5sYXN0SW5kZXg7XG4gICAgICAgIHJlLmxhc3RJbmRleCArPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICB9IGVsc2UgcmUubGFzdEluZGV4ID0gMDtcbiAgICB9IGVsc2UgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyAmJiBtYXRjaCkge1xuICAgICAgcmUubGFzdEluZGV4ID0gcmUuZ2xvYmFsID8gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggOiBsYXN0SW5kZXg7XG4gICAgfVxuICAgIGlmIChOUENHX0lOQ0xVREVEICYmIG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIEZpeCBicm93c2VycyB3aG9zZSBgZXhlY2AgbWV0aG9kcyBkb24ndCBjb25zaXN0ZW50bHkgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgICAvLyBmb3IgTlBDRywgbGlrZSBJRTguIE5PVEU6IFRoaXMgZG9lc24ndCB3b3JrIGZvciAvKC4/KT8vXG4gICAgICBjYWxsKG5hdGl2ZVJlcGxhY2UsIG1hdGNoWzBdLCByZUNvcHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAyOyBpKyspIHtcbiAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09PSB1bmRlZmluZWQpIG1hdGNoW2ldID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobWF0Y2ggJiYgZ3JvdXBzKSB7XG4gICAgICBtYXRjaC5ncm91cHMgPSBvYmplY3QgPSBjcmVhdGUobnVsbCk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICBvYmplY3RbZ3JvdXBbMF1dID0gbWF0Y2hbZ3JvdXBbMV1dO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXRjaDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXRjaGVkRXhlYztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NgIGdldHRlciBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0aGF0ID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgaWYgKHRoYXQuaGFzSW5kaWNlcykgcmVzdWx0ICs9ICdkJztcbiAgaWYgKHRoYXQuZ2xvYmFsKSByZXN1bHQgKz0gJ2cnO1xuICBpZiAodGhhdC5pZ25vcmVDYXNlKSByZXN1bHQgKz0gJ2knO1xuICBpZiAodGhhdC5tdWx0aWxpbmUpIHJlc3VsdCArPSAnbSc7XG4gIGlmICh0aGF0LmRvdEFsbCkgcmVzdWx0ICs9ICdzJztcbiAgaWYgKHRoYXQudW5pY29kZSkgcmVzdWx0ICs9ICd1JztcbiAgaWYgKHRoYXQudW5pY29kZVNldHMpIHJlc3VsdCArPSAndic7XG4gIGlmICh0aGF0LnN0aWNreSkgcmVzdWx0ICs9ICd5JztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciByZWdFeHBGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcblxudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFIpIHtcbiAgdmFyIGZsYWdzID0gUi5mbGFncztcbiAgcmV0dXJuIGZsYWdzID09PSB1bmRlZmluZWQgJiYgISgnZmxhZ3MnIGluIFJlZ0V4cFByb3RvdHlwZSkgJiYgIWhhc093bihSLCAnZmxhZ3MnKSAmJiBpc1Byb3RvdHlwZU9mKFJlZ0V4cFByb3RvdHlwZSwgUilcbiAgICA/IGNhbGwocmVnRXhwRmxhZ3MsIFIpIDogZmxhZ3M7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG4vLyBiYWJlbC1taW5pZnkgYW5kIENsb3N1cmUgQ29tcGlsZXIgdHJhbnNwaWxlcyBSZWdFeHAoJ2EnLCAneScpIC0+IC9hL3kgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyICRSZWdFeHAgPSBnbG9iYWxUaGlzLlJlZ0V4cDtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciByZSA9ICRSZWdFeHAoJ2EnLCAneScpO1xuICByZS5sYXN0SW5kZXggPSAyO1xuICByZXR1cm4gcmUuZXhlYygnYWJjZCcpICE9PSBudWxsO1xufSk7XG5cbi8vIFVDIEJyb3dzZXIgYnVnXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTAwOFxudmFyIE1JU1NFRF9TVElDS1kgPSBVTlNVUFBPUlRFRF9ZIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICEkUmVnRXhwKCdhJywgJ3knKS5zdGlja3k7XG59KTtcblxudmFyIEJST0tFTl9DQVJFVCA9IFVOU1VQUE9SVEVEX1kgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM2ODdcbiAgdmFyIHJlID0gJFJlZ0V4cCgnXnInLCAnZ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ3N0cicpICE9PSBudWxsO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBCUk9LRU5fQ0FSRVQ6IEJST0tFTl9DQVJFVCxcbiAgTUlTU0VEX1NUSUNLWTogTUlTU0VEX1NUSUNLWSxcbiAgVU5TVVBQT1JURURfWTogVU5TVVBQT1JURURfWVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcblxuLy8gYmFiZWwtbWluaWZ5IGFuZCBDbG9zdXJlIENvbXBpbGVyIHRyYW5zcGlsZXMgUmVnRXhwKCcuJywgJ3MnKSAtPiAvLi9zIGFuZCBpdCBjYXVzZXMgU3ludGF4RXJyb3JcbnZhciAkUmVnRXhwID0gZ2xvYmFsVGhpcy5SZWdFeHA7XG5cbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgcmUgPSAkUmVnRXhwKCcuJywgJ3MnKTtcbiAgcmV0dXJuICEocmUuZG90QWxsICYmIHJlLnRlc3QoJ1xcbicpICYmIHJlLmZsYWdzID09PSAncycpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG5cbi8vIGJhYmVsLW1pbmlmeSBhbmQgQ2xvc3VyZSBDb21waWxlciB0cmFuc3BpbGVzIFJlZ0V4cCgnKD88YT5iKScsICdnJykgLT4gLyg/PGE+YikvZyBhbmQgaXQgY2F1c2VzIFN5bnRheEVycm9yXG52YXIgJFJlZ0V4cCA9IGdsb2JhbFRoaXMuUmVnRXhwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gJFJlZ0V4cCgnKD88YT5iKScsICdnJyk7XG4gIHJldHVybiByZS5leGVjKCdiJykuZ3JvdXBzLmEgIT09ICdiJyB8fFxuICAgICdiJy5yZXBsYWNlKHJlLCAnJDxhPmMnKSAhPT0gJ2JjJztcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzTnVsbE9yVW5kZWZpbmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW51bGwtb3ItdW5kZWZpbmVkJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgUmVxdWlyZU9iamVjdENvZXJjaWJsZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlcXVpcmVvYmplY3Rjb2VyY2libGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpc051bGxPclVuZGVmaW5lZChpdCkpIHRocm93IG5ldyAkVHlwZUVycm9yKFwiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gXCIgKyBpdCk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ09OU1RSVUNUT1JfTkFNRSkge1xuICB2YXIgQ29uc3RydWN0b3IgPSBnZXRCdWlsdEluKENPTlNUUlVDVE9SX05BTUUpO1xuXG4gIGlmIChERVNDUklQVE9SUyAmJiBDb25zdHJ1Y3RvciAmJiAhQ29uc3RydWN0b3JbU1BFQ0lFU10pIHtcbiAgICBkZWZpbmVCdWlsdEluQWNjZXNzb3IoQ29uc3RydWN0b3IsIFNQRUNJRVMsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfVxuICAgIH0pO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIFRBRywgU1RBVElDKSB7XG4gIGlmICh0YXJnZXQgJiYgIVNUQVRJQykgdGFyZ2V0ID0gdGFyZ2V0LnByb3RvdHlwZTtcbiAgaWYgKHRhcmdldCAmJiAhaGFzT3duKHRhcmdldCwgVE9fU1RSSU5HX1RBRykpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIFRPX1NUUklOR19UQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogVEFHIH0pO1xuICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG5cbnZhciBrZXlzID0gc2hhcmVkKCdrZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4ga2V5c1trZXldIHx8IChrZXlzW2tleV0gPSB1aWQoa2V5KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG5cbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IG1vZHVsZS5leHBvcnRzID0gZ2xvYmFsVGhpc1tTSEFSRURdIHx8IGRlZmluZUdsb2JhbFByb3BlcnR5KFNIQVJFRCwge30pO1xuXG4oc3RvcmUudmVyc2lvbnMgfHwgKHN0b3JlLnZlcnNpb25zID0gW10pKS5wdXNoKHtcbiAgdmVyc2lvbjogJzMuMzguMScsXG4gIG1vZGU6IElTX1BVUkUgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxNC0yMDI0IERlbmlzIFB1c2hrYXJldiAoemxvaXJvY2sucnUpJyxcbiAgbGljZW5zZTogJ2h0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMzguMS9MSUNFTlNFJyxcbiAgc291cmNlOiAnaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMnXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBzdG9yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQtc3RvcmUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlIHx8IHt9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY29uc3RydWN0b3InKTtcbnZhciBpc051bGxPclVuZGVmaW5lZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1udWxsLW9yLXVuZGVmaW5lZCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG4vLyBgU3BlY2llc0NvbnN0cnVjdG9yYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3BlY2llc2NvbnN0cnVjdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBkZWZhdWx0Q29uc3RydWN0b3IpIHtcbiAgdmFyIEMgPSBhbk9iamVjdChPKS5jb25zdHJ1Y3RvcjtcbiAgdmFyIFM7XG4gIHJldHVybiBDID09PSB1bmRlZmluZWQgfHwgaXNOdWxsT3JVbmRlZmluZWQoUyA9IGFuT2JqZWN0KEMpW1NQRUNJRVNdKSA/IGRlZmF1bHRDb25zdHJ1Y3RvciA6IGFDb25zdHJ1Y3RvcihTKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxudmFyIGNoYXJBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJBdCk7XG52YXIgY2hhckNvZGVBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJDb2RlQXQpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKENPTlZFUlRfVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIHBvcykge1xuICAgIHZhciBTID0gdG9TdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZSgkdGhpcykpO1xuICAgIHZhciBwb3NpdGlvbiA9IHRvSW50ZWdlck9ySW5maW5pdHkocG9zKTtcbiAgICB2YXIgc2l6ZSA9IFMubGVuZ3RoO1xuICAgIHZhciBmaXJzdCwgc2Vjb25kO1xuICAgIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPj0gc2l6ZSkgcmV0dXJuIENPTlZFUlRfVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgZmlyc3QgPSBjaGFyQ29kZUF0KFMsIHBvc2l0aW9uKTtcbiAgICByZXR1cm4gZmlyc3QgPCAweEQ4MDAgfHwgZmlyc3QgPiAweERCRkYgfHwgcG9zaXRpb24gKyAxID09PSBzaXplXG4gICAgICB8fCAoc2Vjb25kID0gY2hhckNvZGVBdChTLCBwb3NpdGlvbiArIDEpKSA8IDB4REMwMCB8fCBzZWNvbmQgPiAweERGRkZcbiAgICAgICAgPyBDT05WRVJUX1RPX1NUUklOR1xuICAgICAgICAgID8gY2hhckF0KFMsIHBvc2l0aW9uKVxuICAgICAgICAgIDogZmlyc3RcbiAgICAgICAgOiBDT05WRVJUX1RPX1NUUklOR1xuICAgICAgICAgID8gc3RyaW5nU2xpY2UoUywgcG9zaXRpb24sIHBvc2l0aW9uICsgMilcbiAgICAgICAgICA6IChmaXJzdCAtIDB4RDgwMCA8PCAxMCkgKyAoc2Vjb25kIC0gMHhEQzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuY29kZXBvaW50YXRcbiAgY29kZUF0OiBjcmVhdGVNZXRob2QoZmFsc2UpLFxuICAvLyBgU3RyaW5nLnByb3RvdHlwZS5hdGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRoaWFzYnluZW5zL1N0cmluZy5wcm90b3R5cGUuYXRcbiAgY2hhckF0OiBjcmVhdGVNZXRob2QodHJ1ZSlcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciB3aGl0ZXNwYWNlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93aGl0ZXNwYWNlcycpO1xuXG52YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xudmFyIGx0cmltID0gUmVnRXhwKCdeWycgKyB3aGl0ZXNwYWNlcyArICddKycpO1xudmFyIHJ0cmltID0gUmVnRXhwKCcoXnxbXicgKyB3aGl0ZXNwYWNlcyArICddKVsnICsgd2hpdGVzcGFjZXMgKyAnXSskJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbSwgdHJpbVN0YXJ0LCB0cmltRW5kLCB0cmltTGVmdCwgdHJpbVJpZ2h0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzKSB7XG4gICAgdmFyIHN0cmluZyA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICBpZiAoVFlQRSAmIDEpIHN0cmluZyA9IHJlcGxhY2Uoc3RyaW5nLCBsdHJpbSwgJycpO1xuICAgIGlmIChUWVBFICYgMikgc3RyaW5nID0gcmVwbGFjZShzdHJpbmcsIHJ0cmltLCAnJDEnKTtcbiAgICByZXR1cm4gc3RyaW5nO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbUxlZnQsIHRyaW1TdGFydCB9YCBtZXRob2RzXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS50cmltc3RhcnRcbiAgc3RhcnQ6IGNyZWF0ZU1ldGhvZCgxKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUueyB0cmltUmlnaHQsIHRyaW1FbmQgfWAgbWV0aG9kc1xuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbWVuZFxuICBlbmQ6IGNyZWF0ZU1ldGhvZCgyKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUudHJpbWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS50cmltXG4gIHRyaW06IGNyZWF0ZU1ldGhvZCgzKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBWOCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC12OC12ZXJzaW9uJyk7XG52YXIgRU5WSVJPTk1FTlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQnKTtcblxudmFyIHN0cnVjdHVyZWRDbG9uZSA9IGdsb2JhbFRoaXMuc3RydWN0dXJlZENsb25lO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICEhc3RydWN0dXJlZENsb25lICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIHByZXZlbnQgVjggQXJyYXlCdWZmZXJEZXRhY2hpbmcgcHJvdGVjdG9yIGNlbGwgaW52YWxpZGF0aW9uIGFuZCBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjc5XG4gIGlmICgoRU5WSVJPTk1FTlQgPT09ICdERU5PJyAmJiBWOCA+IDkyKSB8fCAoRU5WSVJPTk1FTlQgPT09ICdOT0RFJyAmJiBWOCA+IDk0KSB8fCAoRU5WSVJPTk1FTlQgPT09ICdCUk9XU0VSJyAmJiBWOCA+IDk3KSkgcmV0dXJuIGZhbHNlO1xuICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDgpO1xuICB2YXIgY2xvbmUgPSBzdHJ1Y3R1cmVkQ2xvbmUoYnVmZmVyLCB7IHRyYW5zZmVyOiBbYnVmZmVyXSB9KTtcbiAgcmV0dXJuIGJ1ZmZlci5ieXRlTGVuZ3RoICE9PSAwIHx8IGNsb25lLmJ5dGVMZW5ndGggIT09IDg7XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIGVzL25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbicpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xuXG52YXIgJFN0cmluZyA9IGdsb2JhbFRoaXMuU3RyaW5nO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5c3ltYm9scyAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xubW9kdWxlLmV4cG9ydHMgPSAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN5bWJvbCA9IFN5bWJvbCgnc3ltYm9sIGRldGVjdGlvbicpO1xuICAvLyBDaHJvbWUgMzggU3ltYm9sIGhhcyBpbmNvcnJlY3QgdG9TdHJpbmcgY29udmVyc2lvblxuICAvLyBgZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzYCBwb2x5ZmlsbCBzeW1ib2xzIGNvbnZlcnRlZCB0byBvYmplY3QgYXJlIG5vdCBTeW1ib2wgaW5zdGFuY2VzXG4gIC8vIG5iOiBEbyBub3QgY2FsbCBgU3RyaW5nYCBkaXJlY3RseSB0byBhdm9pZCB0aGlzIGJlaW5nIG9wdGltaXplZCBvdXQgdG8gYHN5bWJvbCsnJ2Agd2hpY2ggd2lsbCxcbiAgLy8gb2YgY291cnNlLCBmYWlsLlxuICByZXR1cm4gISRTdHJpbmcoc3ltYm9sKSB8fCAhKE9iamVjdChzeW1ib2wpIGluc3RhbmNlb2YgU3ltYm9sKSB8fFxuICAgIC8vIENocm9tZSAzOC00MCBzeW1ib2xzIGFyZSBub3QgaW5oZXJpdGVkIGZyb20gRE9NIGNvbGxlY3Rpb25zIHByb3RvdHlwZXMgdG8gaW5zdGFuY2VzXG4gICAgIVN5bWJvbC5zaGFtICYmIFY4X1ZFUlNJT04gJiYgVjhfVkVSU0lPTiA8IDQxO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbi8vIGB0aGlzTnVtYmVyVmFsdWVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10aGlzbnVtYmVydmFsdWVcbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoMS4wLnZhbHVlT2YpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIEhlbHBlciBmb3IgYSBwb3B1bGFyIHJlcGVhdGluZyBjYXNlIG9mIHRoZSBzcGVjOlxuLy8gTGV0IGludGVnZXIgYmUgPyBUb0ludGVnZXIoaW5kZXgpLlxuLy8gSWYgaW50ZWdlciA8IDAsIGxldCByZXN1bHQgYmUgbWF4KChsZW5ndGggKyBpbnRlZ2VyKSwgMCk7IGVsc2UgbGV0IHJlc3VsdCBiZSBtaW4oaW50ZWdlciwgbGVuZ3RoKS5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgdmFyIGludGVnZXIgPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxuLy8gYFRvQmlnSW50YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9iaWdpbnRcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBwcmltID0gdG9QcmltaXRpdmUoYXJndW1lbnQsICdudW1iZXInKTtcbiAgaWYgKHR5cGVvZiBwcmltID09ICdudW1iZXInKSB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgbnVtYmVyIHRvIGJpZ2ludFwiKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWJpZ2ludCAtLSBzYWZlXG4gIHJldHVybiBCaWdJbnQocHJpbSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xuXG52YXIgJFJhbmdlRXJyb3IgPSBSYW5nZUVycm9yO1xuXG4vLyBgVG9JbmRleGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW5kZXhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gMDtcbiAgdmFyIG51bWJlciA9IHRvSW50ZWdlck9ySW5maW5pdHkoaXQpO1xuICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgobnVtYmVyKTtcbiAgaWYgKG51bWJlciAhPT0gbGVuZ3RoKSB0aHJvdyBuZXcgJFJhbmdlRXJyb3IoJ1dyb25nIGxlbmd0aCBvciBpbmRleCcpO1xuICByZXR1cm4gbGVuZ3RoO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdHJ1bmMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC10cnVuYycpO1xuXG4vLyBgVG9JbnRlZ2VyT3JJbmZpbml0eWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvaW50ZWdlcm9yaW5maW5pdHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBudW1iZXIgPSArYXJndW1lbnQ7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUgLS0gTmFOIGNoZWNrXG4gIHJldHVybiBudW1iZXIgIT09IG51bWJlciB8fCBudW1iZXIgPT09IDAgPyAwIDogdHJ1bmMobnVtYmVyKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG5cbnZhciBtaW4gPSBNYXRoLm1pbjtcblxuLy8gYFRvTGVuZ3RoYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9sZW5ndGhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBsZW4gPSB0b0ludGVnZXJPckluZmluaXR5KGFyZ3VtZW50KTtcbiAgcmV0dXJuIGxlbiA+IDAgPyBtaW4obGVuLCAweDFGRkZGRkZGRkZGRkZGKSA6IDA7IC8vIDIgKiogNTMgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvb2JqZWN0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gJE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvUG9zaXRpdmVJbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXBvc2l0aXZlLWludGVnZXInKTtcblxudmFyICRSYW5nZUVycm9yID0gUmFuZ2VFcnJvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIEJZVEVTKSB7XG4gIHZhciBvZmZzZXQgPSB0b1Bvc2l0aXZlSW50ZWdlcihpdCk7XG4gIGlmIChvZmZzZXQgJSBCWVRFUykgdGhyb3cgbmV3ICRSYW5nZUVycm9yKCdXcm9uZyBvZmZzZXQnKTtcbiAgcmV0dXJuIG9mZnNldDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciByZXN1bHQgPSB0b0ludGVnZXJPckluZmluaXR5KGl0KTtcbiAgaWYgKHJlc3VsdCA8IDApIHRocm93IG5ldyAkUmFuZ2VFcnJvcihcIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMFwiKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgZ2V0TWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1tZXRob2QnKTtcbnZhciBvcmRpbmFyeVRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29yZGluYXJ5LXRvLXByaW1pdGl2ZScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbnZhciBUT19QUklNSVRJVkUgPSB3ZWxsS25vd25TeW1ib2woJ3RvUHJpbWl0aXZlJyk7XG5cbi8vIGBUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJpbWl0aXZlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbnB1dCwgcHJlZikge1xuICBpZiAoIWlzT2JqZWN0KGlucHV0KSB8fCBpc1N5bWJvbChpbnB1dCkpIHJldHVybiBpbnB1dDtcbiAgdmFyIGV4b3RpY1RvUHJpbSA9IGdldE1ldGhvZChpbnB1dCwgVE9fUFJJTUlUSVZFKTtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKGV4b3RpY1RvUHJpbSkge1xuICAgIGlmIChwcmVmID09PSB1bmRlZmluZWQpIHByZWYgPSAnZGVmYXVsdCc7XG4gICAgcmVzdWx0ID0gY2FsbChleG90aWNUb1ByaW0sIGlucHV0LCBwcmVmKTtcbiAgICBpZiAoIWlzT2JqZWN0KHJlc3VsdCkgfHwgaXNTeW1ib2wocmVzdWx0KSkgcmV0dXJuIHJlc3VsdDtcbiAgICB0aHJvdyBuZXcgJFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbiAgfVxuICBpZiAocHJlZiA9PT0gdW5kZWZpbmVkKSBwcmVmID0gJ251bWJlcic7XG4gIHJldHVybiBvcmRpbmFyeVRvUHJpbWl0aXZlKGlucHV0LCBwcmVmKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG5cbi8vIGBUb1Byb3BlcnR5S2V5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9wcm9wZXJ0eWtleVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGtleSA9IHRvUHJpbWl0aXZlKGFyZ3VtZW50LCAnc3RyaW5nJyk7XG4gIHJldHVybiBpc1N5bWJvbChrZXkpID8ga2V5IDoga2V5ICsgJyc7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciB0ZXN0ID0ge307XG5cbnRlc3RbVE9fU1RSSU5HX1RBR10gPSAneic7XG5cbm1vZHVsZS5leHBvcnRzID0gU3RyaW5nKHRlc3QpID09PSAnW29iamVjdCB6XSc7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoY2xhc3NvZihhcmd1bWVudCkgPT09ICdTeW1ib2wnKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZycpO1xuICByZXR1cm4gJFN0cmluZyhhcmd1bWVudCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHJvdW5kID0gTWF0aC5yb3VuZDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHZhbHVlID0gcm91bmQoaXQpO1xuICByZXR1cm4gdmFsdWUgPCAwID8gMCA6IHZhbHVlID4gMHhGRiA/IDB4RkYgOiB2YWx1ZSAmIDB4RkY7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnT2JqZWN0JztcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIFRZUEVEX0FSUkFZU19DT05TVFJVQ1RPUlNfUkVRVUlSRVNfV1JBUFBFUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3JzLXJlcXVpcmUtd3JhcHBlcnMnKTtcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBBcnJheUJ1ZmZlck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXInKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLWluc3RhbmNlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGlzSW50ZWdyYWxOdW1iZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtaW50ZWdyYWwtbnVtYmVyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9JbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleCcpO1xudmFyIHRvT2Zmc2V0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9mZnNldCcpO1xudmFyIHRvVWludDhDbGFtcGVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXVpbnQ4LWNsYW1wZWQnKTtcbnZhciB0b1Byb3BlcnR5S2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKS5mO1xudmFyIHR5cGVkQXJyYXlGcm9tID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWZyb20nKTtcbnZhciBmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZvckVhY2g7XG52YXIgc2V0U3BlY2llcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtc3BlY2llcycpO1xudmFyIGRlZmluZUJ1aWx0SW5BY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4tYWNjZXNzb3InKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBhcnJheUZyb21Db25zdHJ1Y3RvckFuZExpc3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZnJvbS1jb25zdHJ1Y3Rvci1hbmQtbGlzdCcpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG5cbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5lbmZvcmNlO1xudmFyIG5hdGl2ZURlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZjtcbnZhciBSYW5nZUVycm9yID0gZ2xvYmFsVGhpcy5SYW5nZUVycm9yO1xudmFyIEFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXJNb2R1bGUuQXJyYXlCdWZmZXI7XG52YXIgQXJyYXlCdWZmZXJQcm90b3R5cGUgPSBBcnJheUJ1ZmZlci5wcm90b3R5cGU7XG52YXIgRGF0YVZpZXcgPSBBcnJheUJ1ZmZlck1vZHVsZS5EYXRhVmlldztcbnZhciBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTO1xudmFyIFRZUEVEX0FSUkFZX1RBRyA9IEFycmF5QnVmZmVyVmlld0NvcmUuVFlQRURfQVJSQVlfVEFHO1xudmFyIFR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLlR5cGVkQXJyYXk7XG52YXIgVHlwZWRBcnJheVByb3RvdHlwZSA9IEFycmF5QnVmZmVyVmlld0NvcmUuVHlwZWRBcnJheVByb3RvdHlwZTtcbnZhciBpc1R5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmlzVHlwZWRBcnJheTtcbnZhciBCWVRFU19QRVJfRUxFTUVOVCA9ICdCWVRFU19QRVJfRUxFTUVOVCc7XG52YXIgV1JPTkdfTEVOR1RIID0gJ1dyb25nIGxlbmd0aCc7XG5cbnZhciBhZGRHZXR0ZXIgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICBkZWZpbmVCdWlsdEluQWNjZXNzb3IoaXQsIGtleSwge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpW2tleV07XG4gICAgfVxuICB9KTtcbn07XG5cbnZhciBpc0FycmF5QnVmZmVyID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBrbGFzcztcbiAgcmV0dXJuIGlzUHJvdG90eXBlT2YoQXJyYXlCdWZmZXJQcm90b3R5cGUsIGl0KSB8fCAoa2xhc3MgPSBjbGFzc29mKGl0KSkgPT09ICdBcnJheUJ1ZmZlcicgfHwga2xhc3MgPT09ICdTaGFyZWRBcnJheUJ1ZmZlcic7XG59O1xuXG52YXIgaXNUeXBlZEFycmF5SW5kZXggPSBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHtcbiAgcmV0dXJuIGlzVHlwZWRBcnJheSh0YXJnZXQpXG4gICAgJiYgIWlzU3ltYm9sKGtleSlcbiAgICAmJiBrZXkgaW4gdGFyZ2V0XG4gICAgJiYgaXNJbnRlZ3JhbE51bWJlcigra2V5KVxuICAgICYmIGtleSA+PSAwO1xufTtcblxudmFyIHdyYXBwZWRHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIHtcbiAga2V5ID0gdG9Qcm9wZXJ0eUtleShrZXkpO1xuICByZXR1cm4gaXNUeXBlZEFycmF5SW5kZXgodGFyZ2V0LCBrZXkpXG4gICAgPyBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMiwgdGFyZ2V0W2tleV0pXG4gICAgOiBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpO1xufTtcblxudmFyIHdyYXBwZWREZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKSB7XG4gIGtleSA9IHRvUHJvcGVydHlLZXkoa2V5KTtcbiAgaWYgKGlzVHlwZWRBcnJheUluZGV4KHRhcmdldCwga2V5KVxuICAgICYmIGlzT2JqZWN0KGRlc2NyaXB0b3IpXG4gICAgJiYgaGFzT3duKGRlc2NyaXB0b3IsICd2YWx1ZScpXG4gICAgJiYgIWhhc093bihkZXNjcmlwdG9yLCAnZ2V0JylcbiAgICAmJiAhaGFzT3duKGRlc2NyaXB0b3IsICdzZXQnKVxuICAgIC8vIFRPRE86IGFkZCB2YWxpZGF0aW9uIGRlc2NyaXB0b3Igdy9vIGNhbGxpbmcgYWNjZXNzb3JzXG4gICAgJiYgIWRlc2NyaXB0b3IuY29uZmlndXJhYmxlXG4gICAgJiYgKCFoYXNPd24oZGVzY3JpcHRvciwgJ3dyaXRhYmxlJykgfHwgZGVzY3JpcHRvci53cml0YWJsZSlcbiAgICAmJiAoIWhhc093bihkZXNjcmlwdG9yLCAnZW51bWVyYWJsZScpIHx8IGRlc2NyaXB0b3IuZW51bWVyYWJsZSlcbiAgKSB7XG4gICAgdGFyZ2V0W2tleV0gPSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH0gcmV0dXJuIG5hdGl2ZURlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKTtcbn07XG5cbmlmIChERVNDUklQVE9SUykge1xuICBpZiAoIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MpIHtcbiAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZiA9IHdyYXBwZWRHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZGVmaW5lUHJvcGVydHlNb2R1bGUuZiA9IHdyYXBwZWREZWZpbmVQcm9wZXJ0eTtcbiAgICBhZGRHZXR0ZXIoVHlwZWRBcnJheVByb3RvdHlwZSwgJ2J1ZmZlcicpO1xuICAgIGFkZEdldHRlcihUeXBlZEFycmF5UHJvdG90eXBlLCAnYnl0ZU9mZnNldCcpO1xuICAgIGFkZEdldHRlcihUeXBlZEFycmF5UHJvdG90eXBlLCAnYnl0ZUxlbmd0aCcpO1xuICAgIGFkZEdldHRlcihUeXBlZEFycmF5UHJvdG90eXBlLCAnbGVuZ3RoJyk7XG4gIH1cblxuICAkKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyB9LCB7XG4gICAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiB3cmFwcGVkR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFxuICAgIGRlZmluZVByb3BlcnR5OiB3cmFwcGVkRGVmaW5lUHJvcGVydHlcbiAgfSk7XG5cbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoVFlQRSwgd3JhcHBlciwgQ0xBTVBFRCkge1xuICAgIHZhciBCWVRFUyA9IFRZUEUubWF0Y2goL1xcZCsvKVswXSAvIDg7XG4gICAgdmFyIENPTlNUUlVDVE9SX05BTUUgPSBUWVBFICsgKENMQU1QRUQgPyAnQ2xhbXBlZCcgOiAnJykgKyAnQXJyYXknO1xuICAgIHZhciBHRVRURVIgPSAnZ2V0JyArIFRZUEU7XG4gICAgdmFyIFNFVFRFUiA9ICdzZXQnICsgVFlQRTtcbiAgICB2YXIgTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gZ2xvYmFsVGhpc1tDT05TVFJVQ1RPUl9OQU1FXTtcbiAgICB2YXIgVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xuICAgIHZhciBUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUgPSBUeXBlZEFycmF5Q29uc3RydWN0b3IgJiYgVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZTtcbiAgICB2YXIgZXhwb3J0ZWQgPSB7fTtcblxuICAgIHZhciBnZXR0ZXIgPSBmdW5jdGlvbiAodGhhdCwgaW5kZXgpIHtcbiAgICAgIHZhciBkYXRhID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGF0KTtcbiAgICAgIHJldHVybiBkYXRhLnZpZXdbR0VUVEVSXShpbmRleCAqIEJZVEVTICsgZGF0YS5ieXRlT2Zmc2V0LCB0cnVlKTtcbiAgICB9O1xuXG4gICAgdmFyIHNldHRlciA9IGZ1bmN0aW9uICh0aGF0LCBpbmRleCwgdmFsdWUpIHtcbiAgICAgIHZhciBkYXRhID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGF0KTtcbiAgICAgIGRhdGEudmlld1tTRVRURVJdKGluZGV4ICogQllURVMgKyBkYXRhLmJ5dGVPZmZzZXQsIENMQU1QRUQgPyB0b1VpbnQ4Q2xhbXBlZCh2YWx1ZSkgOiB2YWx1ZSwgdHJ1ZSk7XG4gICAgfTtcblxuICAgIHZhciBhZGRFbGVtZW50ID0gZnVuY3Rpb24gKHRoYXQsIGluZGV4KSB7XG4gICAgICBuYXRpdmVEZWZpbmVQcm9wZXJ0eSh0aGF0LCBpbmRleCwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0dGVyKHRoaXMsIGluZGV4KTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICByZXR1cm4gc2V0dGVyKHRoaXMsIGluZGV4LCB2YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBpZiAoIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MpIHtcbiAgICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHdyYXBwZXIoZnVuY3Rpb24gKHRoYXQsIGRhdGEsIG9mZnNldCwgJGxlbmd0aCkge1xuICAgICAgICBhbkluc3RhbmNlKHRoYXQsIFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSk7XG4gICAgICAgIHZhciBpbmRleCA9IDA7XG4gICAgICAgIHZhciBieXRlT2Zmc2V0ID0gMDtcbiAgICAgICAgdmFyIGJ1ZmZlciwgYnl0ZUxlbmd0aCwgbGVuZ3RoO1xuICAgICAgICBpZiAoIWlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICAgICAgbGVuZ3RoID0gdG9JbmRleChkYXRhKTtcbiAgICAgICAgICBieXRlTGVuZ3RoID0gbGVuZ3RoICogQllURVM7XG4gICAgICAgICAgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGJ5dGVMZW5ndGgpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQXJyYXlCdWZmZXIoZGF0YSkpIHtcbiAgICAgICAgICBidWZmZXIgPSBkYXRhO1xuICAgICAgICAgIGJ5dGVPZmZzZXQgPSB0b09mZnNldChvZmZzZXQsIEJZVEVTKTtcbiAgICAgICAgICB2YXIgJGxlbiA9IGRhdGEuYnl0ZUxlbmd0aDtcbiAgICAgICAgICBpZiAoJGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoJGxlbiAlIEJZVEVTKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgICAgICAgICAgYnl0ZUxlbmd0aCA9ICRsZW4gLSBieXRlT2Zmc2V0O1xuICAgICAgICAgICAgaWYgKGJ5dGVMZW5ndGggPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBieXRlTGVuZ3RoID0gdG9MZW5ndGgoJGxlbmd0aCkgKiBCWVRFUztcbiAgICAgICAgICAgIGlmIChieXRlTGVuZ3RoICsgYnl0ZU9mZnNldCA+ICRsZW4pIHRocm93IG5ldyBSYW5nZUVycm9yKFdST05HX0xFTkdUSCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxlbmd0aCA9IGJ5dGVMZW5ndGggLyBCWVRFUztcbiAgICAgICAgfSBlbHNlIGlmIChpc1R5cGVkQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICByZXR1cm4gYXJyYXlGcm9tQ29uc3RydWN0b3JBbmRMaXN0KFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGNhbGwodHlwZWRBcnJheUZyb20sIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0SW50ZXJuYWxTdGF0ZSh0aGF0LCB7XG4gICAgICAgICAgYnVmZmVyOiBidWZmZXIsXG4gICAgICAgICAgYnl0ZU9mZnNldDogYnl0ZU9mZnNldCxcbiAgICAgICAgICBieXRlTGVuZ3RoOiBieXRlTGVuZ3RoLFxuICAgICAgICAgIGxlbmd0aDogbGVuZ3RoLFxuICAgICAgICAgIHZpZXc6IG5ldyBEYXRhVmlldyhidWZmZXIpXG4gICAgICAgIH0pO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIGFkZEVsZW1lbnQodGhhdCwgaW5kZXgrKyk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHNldFByb3RvdHlwZU9mKSBzZXRQcm90b3R5cGVPZihUeXBlZEFycmF5Q29uc3RydWN0b3IsIFR5cGVkQXJyYXkpO1xuICAgICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlID0gVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShUeXBlZEFycmF5UHJvdG90eXBlKTtcbiAgICB9IGVsc2UgaWYgKFRZUEVEX0FSUkFZU19DT05TVFJVQ1RPUlNfUkVRVUlSRVNfV1JBUFBFUlMpIHtcbiAgICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHdyYXBwZXIoZnVuY3Rpb24gKGR1bW15LCBkYXRhLCB0eXBlZEFycmF5T2Zmc2V0LCAkbGVuZ3RoKSB7XG4gICAgICAgIGFuSW5zdGFuY2UoZHVtbXksIFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSk7XG4gICAgICAgIHJldHVybiBpbmhlcml0SWZSZXF1aXJlZChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFpc09iamVjdChkYXRhKSkgcmV0dXJuIG5ldyBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IodG9JbmRleChkYXRhKSk7XG4gICAgICAgICAgaWYgKGlzQXJyYXlCdWZmZXIoZGF0YSkpIHJldHVybiAkbGVuZ3RoICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gbmV3IE5hdGl2ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcihkYXRhLCB0b09mZnNldCh0eXBlZEFycmF5T2Zmc2V0LCBCWVRFUyksICRsZW5ndGgpXG4gICAgICAgICAgICA6IHR5cGVkQXJyYXlPZmZzZXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IG5ldyBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IoZGF0YSwgdG9PZmZzZXQodHlwZWRBcnJheU9mZnNldCwgQllURVMpKVxuICAgICAgICAgICAgICA6IG5ldyBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IoZGF0YSk7XG4gICAgICAgICAgaWYgKGlzVHlwZWRBcnJheShkYXRhKSkgcmV0dXJuIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdChUeXBlZEFycmF5Q29uc3RydWN0b3IsIGRhdGEpO1xuICAgICAgICAgIHJldHVybiBjYWxsKHR5cGVkQXJyYXlGcm9tLCBUeXBlZEFycmF5Q29uc3RydWN0b3IsIGRhdGEpO1xuICAgICAgICB9KCksIGR1bW15LCBUeXBlZEFycmF5Q29uc3RydWN0b3IpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChzZXRQcm90b3R5cGVPZikgc2V0UHJvdG90eXBlT2YoVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBUeXBlZEFycmF5KTtcbiAgICAgIGZvckVhY2goZ2V0T3duUHJvcGVydHlOYW1lcyhOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IpLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmICghKGtleSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFR5cGVkQXJyYXlDb25zdHJ1Y3Rvciwga2V5LCBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3Jba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZTtcbiAgICB9XG5cbiAgICBpZiAoVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlLmNvbnN0cnVjdG9yICE9PSBUeXBlZEFycmF5Q29uc3RydWN0b3IpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUsICdjb25zdHJ1Y3RvcicsIFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcik7XG4gICAgfVxuXG4gICAgZW5mb3JjZUludGVybmFsU3RhdGUoVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlKS5UeXBlZEFycmF5Q29uc3RydWN0b3IgPSBUeXBlZEFycmF5Q29uc3RydWN0b3I7XG5cbiAgICBpZiAoVFlQRURfQVJSQVlfVEFHKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlLCBUWVBFRF9BUlJBWV9UQUcsIENPTlNUUlVDVE9SX05BTUUpO1xuICAgIH1cblxuICAgIHZhciBGT1JDRUQgPSBUeXBlZEFycmF5Q29uc3RydWN0b3IgIT09IE5hdGl2ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcblxuICAgIGV4cG9ydGVkW0NPTlNUUlVDVE9SX05BTUVdID0gVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xuXG4gICAgJCh7IGdsb2JhbDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIGZvcmNlZDogRk9SQ0VELCBzaGFtOiAhTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyB9LCBleHBvcnRlZCk7XG5cbiAgICBpZiAoIShCWVRFU19QRVJfRUxFTUVOVCBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3IpKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBCWVRFU19QRVJfRUxFTUVOVCwgQllURVMpO1xuICAgIH1cblxuICAgIGlmICghKEJZVEVTX1BFUl9FTEVNRU5UIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSkpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUsIEJZVEVTX1BFUl9FTEVNRU5ULCBCWVRFUyk7XG4gICAgfVxuXG4gICAgc2V0U3BlY2llcyhDT05TVFJVQ1RPUl9OQU1FKTtcbiAgfTtcbn0gZWxzZSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIG5vLW5ldywgc29uYXIvaW5jb25zaXN0ZW50LWZ1bmN0aW9uLWNhbGwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2hlY2stY29ycmVjdG5lc3Mtb2YtaXRlcmF0aW9uJyk7XG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJykuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUztcblxudmFyIEFycmF5QnVmZmVyID0gZ2xvYmFsVGhpcy5BcnJheUJ1ZmZlcjtcbnZhciBJbnQ4QXJyYXkgPSBnbG9iYWxUaGlzLkludDhBcnJheTtcblxubW9kdWxlLmV4cG9ydHMgPSAhTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICBJbnQ4QXJyYXkoMSk7XG59KSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICBuZXcgSW50OEFycmF5KC0xKTtcbn0pIHx8ICFjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24oZnVuY3Rpb24gKGl0ZXJhYmxlKSB7XG4gIG5ldyBJbnQ4QXJyYXkoKTtcbiAgbmV3IEludDhBcnJheShudWxsKTtcbiAgbmV3IEludDhBcnJheSgxLjUpO1xuICBuZXcgSW50OEFycmF5KGl0ZXJhYmxlKTtcbn0sIHRydWUpIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gU2FmYXJpICgxMSspIGJ1ZyAtIGEgcmVhc29uIHdoeSBldmVuIFNhZmFyaSAxMyBzaG91bGQgbG9hZCBhIHR5cGVkIGFycmF5IHBvbHlmaWxsXG4gIHJldHVybiBuZXcgSW50OEFycmF5KG5ldyBBcnJheUJ1ZmZlcigyKSwgMSwgdW5kZWZpbmVkKS5sZW5ndGggIT09IDE7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhcnJheUZyb21Db25zdHJ1Y3RvckFuZExpc3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZnJvbS1jb25zdHJ1Y3Rvci1hbmQtbGlzdCcpO1xudmFyIHR5cGVkQXJyYXlTcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgbGlzdCkge1xuICByZXR1cm4gYXJyYXlGcm9tQ29uc3RydWN0b3JBbmRMaXN0KHR5cGVkQXJyYXlTcGVjaWVzQ29uc3RydWN0b3IoaW5zdGFuY2UpLCBsaXN0KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBhQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jb25zdHJ1Y3RvcicpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgZ2V0SXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yJyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xudmFyIGlzQXJyYXlJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheS1pdGVyYXRvci1tZXRob2QnKTtcbnZhciBpc0JpZ0ludEFycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWJpZy1pbnQtYXJyYXknKTtcbnZhciBhVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xudmFyIHRvQmlnSW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWJpZy1pbnQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmcm9tKHNvdXJjZSAvKiAsIG1hcGZuLCB0aGlzQXJnICovKSB7XG4gIHZhciBDID0gYUNvbnN0cnVjdG9yKHRoaXMpO1xuICB2YXIgTyA9IHRvT2JqZWN0KHNvdXJjZSk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgbWFwZm4gPSBhcmd1bWVudHNMZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICB2YXIgbWFwcGluZyA9IG1hcGZuICE9PSB1bmRlZmluZWQ7XG4gIHZhciBpdGVyYXRvck1ldGhvZCA9IGdldEl0ZXJhdG9yTWV0aG9kKE8pO1xuICB2YXIgaSwgbGVuZ3RoLCByZXN1bHQsIHRoaXNJc0JpZ0ludEFycmF5LCB2YWx1ZSwgc3RlcCwgaXRlcmF0b3IsIG5leHQ7XG4gIGlmIChpdGVyYXRvck1ldGhvZCAmJiAhaXNBcnJheUl0ZXJhdG9yTWV0aG9kKGl0ZXJhdG9yTWV0aG9kKSkge1xuICAgIGl0ZXJhdG9yID0gZ2V0SXRlcmF0b3IoTywgaXRlcmF0b3JNZXRob2QpO1xuICAgIG5leHQgPSBpdGVyYXRvci5uZXh0O1xuICAgIE8gPSBbXTtcbiAgICB3aGlsZSAoIShzdGVwID0gY2FsbChuZXh0LCBpdGVyYXRvcikpLmRvbmUpIHtcbiAgICAgIE8ucHVzaChzdGVwLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgaWYgKG1hcHBpbmcgJiYgYXJndW1lbnRzTGVuZ3RoID4gMikge1xuICAgIG1hcGZuID0gYmluZChtYXBmbiwgYXJndW1lbnRzWzJdKTtcbiAgfVxuICBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgcmVzdWx0ID0gbmV3IChhVHlwZWRBcnJheUNvbnN0cnVjdG9yKEMpKShsZW5ndGgpO1xuICB0aGlzSXNCaWdJbnRBcnJheSA9IGlzQmlnSW50QXJyYXkocmVzdWx0KTtcbiAgZm9yIChpID0gMDsgbGVuZ3RoID4gaTsgaSsrKSB7XG4gICAgdmFsdWUgPSBtYXBwaW5nID8gbWFwZm4oT1tpXSwgaSkgOiBPW2ldO1xuICAgIC8vIEZGMzAtIHR5cGVkIGFycmF5cyBkb2Vzbid0IHByb3Blcmx5IGNvbnZlcnQgb2JqZWN0cyB0byB0eXBlZCBhcnJheSB2YWx1ZXNcbiAgICByZXN1bHRbaV0gPSB0aGlzSXNCaWdJbnRBcnJheSA/IHRvQmlnSW50KHZhbHVlKSA6ICt2YWx1ZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG52YXIgYVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcbnZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcblxuLy8gYSBwYXJ0IG9mIGBUeXBlZEFycmF5U3BlY2llc0NyZWF0ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jdHlwZWRhcnJheS1zcGVjaWVzLWNyZWF0ZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWxBcnJheSkge1xuICByZXR1cm4gYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcihzcGVjaWVzQ29uc3RydWN0b3Iob3JpZ2luYWxBcnJheSwgZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yKG9yaWdpbmFsQXJyYXkpKSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG52YXIgaWQgPSAwO1xudmFyIHBvc3RmaXggPSBNYXRoLnJhbmRvbSgpO1xudmFyIHRvU3RyaW5nID0gdW5jdXJyeVRoaXMoMS4wLnRvU3RyaW5nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcgKyAoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSkgKyAnKV8nICsgdG9TdHJpbmcoKytpZCArIHBvc3RmaXgsIDM2KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBlcy9uby1zeW1ib2wgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1jb25zdHJ1Y3Rvci1kZXRlY3Rpb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfU1lNQk9MXG4gICYmICFTeW1ib2wuc2hhbVxuICAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICdzeW1ib2wnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gVjggfiBDaHJvbWUgMzYtXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMzM0XG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSwgJ3Byb3RvdHlwZScsIHtcbiAgICB2YWx1ZTogNDIsXG4gICAgd3JpdGFibGU6IGZhbHNlXG4gIH0pLnByb3RvdHlwZSAhPT0gNDI7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWxUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbC10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG52YXIgV2Vha01hcCA9IGdsb2JhbFRoaXMuV2Vha01hcDtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0NhbGxhYmxlKFdlYWtNYXApICYmIC9uYXRpdmUgY29kZS8udGVzdChTdHJpbmcoV2Vha01hcCkpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zeW1ib2wtY29uc3RydWN0b3ItZGV0ZWN0aW9uJyk7XG52YXIgVVNFX1NZTUJPTF9BU19VSUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQnKTtcblxudmFyIFN5bWJvbCA9IGdsb2JhbFRoaXMuU3ltYm9sO1xudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG52YXIgY3JlYXRlV2VsbEtub3duU3ltYm9sID0gVVNFX1NZTUJPTF9BU19VSUQgPyBTeW1ib2xbJ2ZvciddIHx8IFN5bWJvbCA6IFN5bWJvbCAmJiBTeW1ib2wud2l0aG91dFNldHRlciB8fCB1aWQ7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKCFoYXNPd24oV2VsbEtub3duU3ltYm9sc1N0b3JlLCBuYW1lKSkge1xuICAgIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IE5BVElWRV9TWU1CT0wgJiYgaGFzT3duKFN5bWJvbCwgbmFtZSlcbiAgICAgID8gU3ltYm9sW25hbWVdXG4gICAgICA6IGNyZWF0ZVdlbGxLbm93blN5bWJvbCgnU3ltYm9sLicgKyBuYW1lKTtcbiAgfSByZXR1cm4gV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGEgc3RyaW5nIG9mIGFsbCB2YWxpZCB1bmljb2RlIHdoaXRlc3BhY2VzXG5tb2R1bGUuZXhwb3J0cyA9ICdcXHUwMDA5XFx1MDAwQVxcdTAwMEJcXHUwMDBDXFx1MDAwRFxcdTAwMjBcXHUwMEEwXFx1MTY4MFxcdTIwMDBcXHUyMDAxXFx1MjAwMicgK1xuICAnXFx1MjAwM1xcdTIwMDRcXHUyMDA1XFx1MjAwNlxcdTIwMDdcXHUyMDA4XFx1MjAwOVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBcXHUyMDI4XFx1MjAyOVxcdUZFRkYnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcbnZhciBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcycpO1xudmFyIHByb3h5QWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcHJveHktYWNjZXNzb3InKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG52YXIgbm9ybWFsaXplU3RyaW5nQXJndW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbm9ybWFsaXplLXN0cmluZy1hcmd1bWVudCcpO1xudmFyIGluc3RhbGxFcnJvckNhdXNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3RhbGwtZXJyb3ItY2F1c2UnKTtcbnZhciBpbnN0YWxsRXJyb3JTdGFjayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lcnJvci1zdGFjay1pbnN0YWxsJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoRlVMTF9OQU1FLCB3cmFwcGVyLCBGT1JDRUQsIElTX0FHR1JFR0FURV9FUlJPUikge1xuICB2YXIgU1RBQ0tfVFJBQ0VfTElNSVQgPSAnc3RhY2tUcmFjZUxpbWl0JztcbiAgdmFyIE9QVElPTlNfUE9TSVRJT04gPSBJU19BR0dSRUdBVEVfRVJST1IgPyAyIDogMTtcbiAgdmFyIHBhdGggPSBGVUxMX05BTUUuc3BsaXQoJy4nKTtcbiAgdmFyIEVSUk9SX05BTUUgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG4gIHZhciBPcmlnaW5hbEVycm9yID0gZ2V0QnVpbHRJbi5hcHBseShudWxsLCBwYXRoKTtcblxuICBpZiAoIU9yaWdpbmFsRXJyb3IpIHJldHVybjtcblxuICB2YXIgT3JpZ2luYWxFcnJvclByb3RvdHlwZSA9IE9yaWdpbmFsRXJyb3IucHJvdG90eXBlO1xuXG4gIC8vIFY4IDkuMy0gYnVnIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTEyMDA2XG4gIGlmICghSVNfUFVSRSAmJiBoYXNPd24oT3JpZ2luYWxFcnJvclByb3RvdHlwZSwgJ2NhdXNlJykpIGRlbGV0ZSBPcmlnaW5hbEVycm9yUHJvdG90eXBlLmNhdXNlO1xuXG4gIGlmICghRk9SQ0VEKSByZXR1cm4gT3JpZ2luYWxFcnJvcjtcblxuICB2YXIgQmFzZUVycm9yID0gZ2V0QnVpbHRJbignRXJyb3InKTtcblxuICB2YXIgV3JhcHBlZEVycm9yID0gd3JhcHBlcihmdW5jdGlvbiAoYSwgYikge1xuICAgIHZhciBtZXNzYWdlID0gbm9ybWFsaXplU3RyaW5nQXJndW1lbnQoSVNfQUdHUkVHQVRFX0VSUk9SID8gYiA6IGEsIHVuZGVmaW5lZCk7XG4gICAgdmFyIHJlc3VsdCA9IElTX0FHR1JFR0FURV9FUlJPUiA/IG5ldyBPcmlnaW5hbEVycm9yKGEpIDogbmV3IE9yaWdpbmFsRXJyb3IoKTtcbiAgICBpZiAobWVzc2FnZSAhPT0gdW5kZWZpbmVkKSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkocmVzdWx0LCAnbWVzc2FnZScsIG1lc3NhZ2UpO1xuICAgIGluc3RhbGxFcnJvclN0YWNrKHJlc3VsdCwgV3JhcHBlZEVycm9yLCByZXN1bHQuc3RhY2ssIDIpO1xuICAgIGlmICh0aGlzICYmIGlzUHJvdG90eXBlT2YoT3JpZ2luYWxFcnJvclByb3RvdHlwZSwgdGhpcykpIGluaGVyaXRJZlJlcXVpcmVkKHJlc3VsdCwgdGhpcywgV3JhcHBlZEVycm9yKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IE9QVElPTlNfUE9TSVRJT04pIGluc3RhbGxFcnJvckNhdXNlKHJlc3VsdCwgYXJndW1lbnRzW09QVElPTlNfUE9TSVRJT05dKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9KTtcblxuICBXcmFwcGVkRXJyb3IucHJvdG90eXBlID0gT3JpZ2luYWxFcnJvclByb3RvdHlwZTtcblxuICBpZiAoRVJST1JfTkFNRSAhPT0gJ0Vycm9yJykge1xuICAgIGlmIChzZXRQcm90b3R5cGVPZikgc2V0UHJvdG90eXBlT2YoV3JhcHBlZEVycm9yLCBCYXNlRXJyb3IpO1xuICAgIGVsc2UgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyhXcmFwcGVkRXJyb3IsIEJhc2VFcnJvciwgeyBuYW1lOiB0cnVlIH0pO1xuICB9IGVsc2UgaWYgKERFU0NSSVBUT1JTICYmIFNUQUNLX1RSQUNFX0xJTUlUIGluIE9yaWdpbmFsRXJyb3IpIHtcbiAgICBwcm94eUFjY2Vzc29yKFdyYXBwZWRFcnJvciwgT3JpZ2luYWxFcnJvciwgU1RBQ0tfVFJBQ0VfTElNSVQpO1xuICAgIHByb3h5QWNjZXNzb3IoV3JhcHBlZEVycm9yLCBPcmlnaW5hbEVycm9yLCAncHJlcGFyZVN0YWNrVHJhY2UnKTtcbiAgfVxuXG4gIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMoV3JhcHBlZEVycm9yLCBPcmlnaW5hbEVycm9yKTtcblxuICBpZiAoIUlTX1BVUkUpIHRyeSB7XG4gICAgLy8gU2FmYXJpIDEzLSBidWc6IFdlYkFzc2VtYmx5IGVycm9ycyBkb2VzIG5vdCBoYXZlIGEgcHJvcGVyIGAubmFtZWBcbiAgICBpZiAoT3JpZ2luYWxFcnJvclByb3RvdHlwZS5uYW1lICE9PSBFUlJPUl9OQU1FKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoT3JpZ2luYWxFcnJvclByb3RvdHlwZSwgJ25hbWUnLCBFUlJPUl9OQU1FKTtcbiAgICB9XG4gICAgT3JpZ2luYWxFcnJvclByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFdyYXBwZWRFcnJvcjtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuXG4gIHJldHVybiBXcmFwcGVkRXJyb3I7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGFycmF5QnVmZmVyTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlcicpO1xudmFyIHNldFNwZWNpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXNwZWNpZXMnKTtcblxudmFyIEFSUkFZX0JVRkZFUiA9ICdBcnJheUJ1ZmZlcic7XG52YXIgQXJyYXlCdWZmZXIgPSBhcnJheUJ1ZmZlck1vZHVsZVtBUlJBWV9CVUZGRVJdO1xudmFyIE5hdGl2ZUFycmF5QnVmZmVyID0gZ2xvYmFsVGhpc1tBUlJBWV9CVUZGRVJdO1xuXG4vLyBgQXJyYXlCdWZmZXJgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5YnVmZmVyLWNvbnN0cnVjdG9yXG4kKHsgZ2xvYmFsOiB0cnVlLCBjb25zdHJ1Y3RvcjogdHJ1ZSwgZm9yY2VkOiBOYXRpdmVBcnJheUJ1ZmZlciAhPT0gQXJyYXlCdWZmZXIgfSwge1xuICBBcnJheUJ1ZmZlcjogQXJyYXlCdWZmZXJcbn0pO1xuXG5zZXRTcGVjaWVzKEFSUkFZX0JVRkZFUik7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgaXNEZXRhY2hlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItaXMtZGV0YWNoZWQnKTtcblxudmFyIEFycmF5QnVmZmVyUHJvdG90eXBlID0gQXJyYXlCdWZmZXIucHJvdG90eXBlO1xuXG5pZiAoREVTQ1JJUFRPUlMgJiYgISgnZGV0YWNoZWQnIGluIEFycmF5QnVmZmVyUHJvdG90eXBlKSkge1xuICBkZWZpbmVCdWlsdEluQWNjZXNzb3IoQXJyYXlCdWZmZXJQcm90b3R5cGUsICdkZXRhY2hlZCcsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiBkZXRhY2hlZCgpIHtcbiAgICAgIHJldHVybiBpc0RldGFjaGVkKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMtY2xhdXNlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBBcnJheUJ1ZmZlck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXInKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xuXG52YXIgQXJyYXlCdWZmZXIgPSBBcnJheUJ1ZmZlck1vZHVsZS5BcnJheUJ1ZmZlcjtcbnZhciBEYXRhVmlldyA9IEFycmF5QnVmZmVyTW9kdWxlLkRhdGFWaWV3O1xudmFyIERhdGFWaWV3UHJvdG90eXBlID0gRGF0YVZpZXcucHJvdG90eXBlO1xudmFyIG5hdGl2ZUFycmF5QnVmZmVyU2xpY2UgPSB1bmN1cnJ5VGhpcyhBcnJheUJ1ZmZlci5wcm90b3R5cGUuc2xpY2UpO1xudmFyIGdldFVpbnQ4ID0gdW5jdXJyeVRoaXMoRGF0YVZpZXdQcm90b3R5cGUuZ2V0VWludDgpO1xudmFyIHNldFVpbnQ4ID0gdW5jdXJyeVRoaXMoRGF0YVZpZXdQcm90b3R5cGUuc2V0VWludDgpO1xuXG52YXIgSU5DT1JSRUNUX1NMSUNFID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gIW5ldyBBcnJheUJ1ZmZlcigyKS5zbGljZSgxLCB1bmRlZmluZWQpLmJ5dGVMZW5ndGg7XG59KTtcblxuLy8gYEFycmF5QnVmZmVyLnByb3RvdHlwZS5zbGljZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5YnVmZmVyLnByb3RvdHlwZS5zbGljZVxuJCh7IHRhcmdldDogJ0FycmF5QnVmZmVyJywgcHJvdG86IHRydWUsIHVuc2FmZTogdHJ1ZSwgZm9yY2VkOiBJTkNPUlJFQ1RfU0xJQ0UgfSwge1xuICBzbGljZTogZnVuY3Rpb24gc2xpY2Uoc3RhcnQsIGVuZCkge1xuICAgIGlmIChuYXRpdmVBcnJheUJ1ZmZlclNsaWNlICYmIGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbmF0aXZlQXJyYXlCdWZmZXJTbGljZShhbk9iamVjdCh0aGlzKSwgc3RhcnQpOyAvLyBGRiBmaXhcbiAgICB9XG4gICAgdmFyIGxlbmd0aCA9IGFuT2JqZWN0KHRoaXMpLmJ5dGVMZW5ndGg7XG4gICAgdmFyIGZpcnN0ID0gdG9BYnNvbHV0ZUluZGV4KHN0YXJ0LCBsZW5ndGgpO1xuICAgIHZhciBmaW4gPSB0b0Fic29sdXRlSW5kZXgoZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiBlbmQsIGxlbmd0aCk7XG4gICAgdmFyIHJlc3VsdCA9IG5ldyAoc3BlY2llc0NvbnN0cnVjdG9yKHRoaXMsIEFycmF5QnVmZmVyKSkodG9MZW5ndGgoZmluIC0gZmlyc3QpKTtcbiAgICB2YXIgdmlld1NvdXJjZSA9IG5ldyBEYXRhVmlldyh0aGlzKTtcbiAgICB2YXIgdmlld1RhcmdldCA9IG5ldyBEYXRhVmlldyhyZXN1bHQpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGZpcnN0IDwgZmluKSB7XG4gICAgICBzZXRVaW50OCh2aWV3VGFyZ2V0LCBpbmRleCsrLCBnZXRVaW50OCh2aWV3U291cmNlLCBmaXJzdCsrKSk7XG4gICAgfSByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICR0cmFuc2ZlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdHJhbnNmZXInKTtcblxuLy8gYEFycmF5QnVmZmVyLnByb3RvdHlwZS50cmFuc2ZlclRvRml4ZWRMZW5ndGhgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWFycmF5YnVmZmVyLXRyYW5zZmVyLyNzZWMtYXJyYXlidWZmZXIucHJvdG90eXBlLnRyYW5zZmVydG9maXhlZGxlbmd0aFxuaWYgKCR0cmFuc2ZlcikgJCh7IHRhcmdldDogJ0FycmF5QnVmZmVyJywgcHJvdG86IHRydWUgfSwge1xuICB0cmFuc2ZlclRvRml4ZWRMZW5ndGg6IGZ1bmN0aW9uIHRyYW5zZmVyVG9GaXhlZExlbmd0aCgpIHtcbiAgICByZXR1cm4gJHRyYW5zZmVyKHRoaXMsIGFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVudHNbMF0gOiB1bmRlZmluZWQsIGZhbHNlKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkdHJhbnNmZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXRyYW5zZmVyJyk7XG5cbi8vIGBBcnJheUJ1ZmZlci5wcm90b3R5cGUudHJhbnNmZXJgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWFycmF5YnVmZmVyLXRyYW5zZmVyLyNzZWMtYXJyYXlidWZmZXIucHJvdG90eXBlLnRyYW5zZmVyXG5pZiAoJHRyYW5zZmVyKSAkKHsgdGFyZ2V0OiAnQXJyYXlCdWZmZXInLCBwcm90bzogdHJ1ZSB9LCB7XG4gIHRyYW5zZmVyOiBmdW5jdGlvbiB0cmFuc2ZlcigpIHtcbiAgICByZXR1cm4gJHRyYW5zZmVyKHRoaXMsIGFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVudHNbMF0gOiB1bmRlZmluZWQsIHRydWUpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItZGVmaW5lJyk7XG52YXIgY3JlYXRlSXRlclJlc3VsdE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlci1yZXN1bHQtb2JqZWN0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcblxudmFyIEFSUkFZX0lURVJBVE9SID0gJ0FycmF5IEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKEFSUkFZX0lURVJBVE9SKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5lbnRyaWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmVudHJpZXNcbi8vIGBBcnJheS5wcm90b3R5cGUua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5rZXlzXG4vLyBgQXJyYXkucHJvdG90eXBlLnZhbHVlc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS52YWx1ZXNcbi8vIGBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEBpdGVyYXRvclxuLy8gYENyZWF0ZUFycmF5SXRlcmF0b3JgIGludGVybmFsIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVhcnJheWl0ZXJhdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGRlZmluZUl0ZXJhdG9yKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbiAoaXRlcmF0ZWQsIGtpbmQpIHtcbiAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgdHlwZTogQVJSQVlfSVRFUkFUT1IsXG4gICAgdGFyZ2V0OiB0b0luZGV4ZWRPYmplY3QoaXRlcmF0ZWQpLCAvLyB0YXJnZXRcbiAgICBpbmRleDogMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5leHQgaW5kZXhcbiAgICBraW5kOiBraW5kICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGtpbmRcbiAgfSk7XG4vLyBgJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlLm5leHRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0lYXJyYXlpdGVyYXRvcnByb3RvdHlwZSUubmV4dFxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICB2YXIgdGFyZ2V0ID0gc3RhdGUudGFyZ2V0O1xuICB2YXIgaW5kZXggPSBzdGF0ZS5pbmRleCsrO1xuICBpZiAoIXRhcmdldCB8fCBpbmRleCA+PSB0YXJnZXQubGVuZ3RoKSB7XG4gICAgc3RhdGUudGFyZ2V0ID0gbnVsbDtcbiAgICByZXR1cm4gY3JlYXRlSXRlclJlc3VsdE9iamVjdCh1bmRlZmluZWQsIHRydWUpO1xuICB9XG4gIHN3aXRjaCAoc3RhdGUua2luZCkge1xuICAgIGNhc2UgJ2tleXMnOiByZXR1cm4gY3JlYXRlSXRlclJlc3VsdE9iamVjdChpbmRleCwgZmFsc2UpO1xuICAgIGNhc2UgJ3ZhbHVlcyc6IHJldHVybiBjcmVhdGVJdGVyUmVzdWx0T2JqZWN0KHRhcmdldFtpbmRleF0sIGZhbHNlKTtcbiAgfSByZXR1cm4gY3JlYXRlSXRlclJlc3VsdE9iamVjdChbaW5kZXgsIHRhcmdldFtpbmRleF1dLCBmYWxzZSk7XG59LCAndmFsdWVzJyk7XG5cbi8vIGFyZ3VtZW50c0xpc3RbQEBpdGVyYXRvcl0gaXMgJUFycmF5UHJvdG9fdmFsdWVzJVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGV1bm1hcHBlZGFyZ3VtZW50c29iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVtYXBwZWRhcmd1bWVudHNvYmplY3RcbnZhciB2YWx1ZXMgPSBJdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcblxuLy8gVjggfiBDaHJvbWUgNDUtIGJ1Z1xuaWYgKCFJU19QVVJFICYmIERFU0NSSVBUT1JTICYmIHZhbHVlcy5uYW1lICE9PSAndmFsdWVzJykgdHJ5IHtcbiAgZGVmaW5lUHJvcGVydHkodmFsdWVzLCAnbmFtZScsIHsgdmFsdWU6ICd2YWx1ZXMnIH0pO1xufSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgQXJyYXlCdWZmZXJNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyJyk7XG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItYmFzaWMtZGV0ZWN0aW9uJyk7XG5cbi8vIGBEYXRhVmlld2AgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZGF0YXZpZXctY29uc3RydWN0b3JcbiQoeyBnbG9iYWw6IHRydWUsIGNvbnN0cnVjdG9yOiB0cnVlLCBmb3JjZWQ6ICFOQVRJVkVfQVJSQVlfQlVGRkVSIH0sIHtcbiAgRGF0YVZpZXc6IEFycmF5QnVmZmVyTW9kdWxlLkRhdGFWaWV3XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIFRPRE86IFJlbW92ZSB0aGlzIG1vZHVsZSBmcm9tIGBjb3JlLWpzQDRgIHNpbmNlIGl0J3MgcmVwbGFjZWQgdG8gbW9kdWxlIGJlbG93XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmRhdGEtdmlldy5jb25zdHJ1Y3RvcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xuXG52YXIgRGF0ZVByb3RvdHlwZSA9IERhdGUucHJvdG90eXBlO1xudmFyIElOVkFMSURfREFURSA9ICdJbnZhbGlkIERhdGUnO1xudmFyIFRPX1NUUklORyA9ICd0b1N0cmluZyc7XG52YXIgbmF0aXZlRGF0ZVRvU3RyaW5nID0gdW5jdXJyeVRoaXMoRGF0ZVByb3RvdHlwZVtUT19TVFJJTkddKTtcbnZhciB0aGlzVGltZVZhbHVlID0gdW5jdXJyeVRoaXMoRGF0ZVByb3RvdHlwZS5nZXRUaW1lKTtcblxuLy8gYERhdGUucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZGF0ZS5wcm90b3R5cGUudG9zdHJpbmdcbmlmIChTdHJpbmcobmV3IERhdGUoTmFOKSkgIT09IElOVkFMSURfREFURSkge1xuICBkZWZpbmVCdWlsdEluKERhdGVQcm90b3R5cGUsIFRPX1NUUklORywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgdmFyIHZhbHVlID0gdGhpc1RpbWVWYWx1ZSh0aGlzKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyBuYXRpdmVEYXRlVG9TdHJpbmcodGhpcykgOiBJTlZBTElEX0RBVEU7XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgLS0gcmVxdWlyZWQgZm9yIGZ1bmN0aW9ucyBgLmxlbmd0aGAgKi9cbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBhcHBseSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1hcHBseScpO1xudmFyIHdyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dyYXAtZXJyb3ItY29uc3RydWN0b3Itd2l0aC1jYXVzZScpO1xuXG52YXIgV0VCX0FTU0VNQkxZID0gJ1dlYkFzc2VtYmx5JztcbnZhciBXZWJBc3NlbWJseSA9IGdsb2JhbFRoaXNbV0VCX0FTU0VNQkxZXTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLWVycm9yLWNhdXNlIC0tIGZlYXR1cmUgZGV0ZWN0aW9uXG52YXIgRk9SQ0VEID0gbmV3IEVycm9yKCdlJywgeyBjYXVzZTogNyB9KS5jYXVzZSAhPT0gNztcblxudmFyIGV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyID0gZnVuY3Rpb24gKEVSUk9SX05BTUUsIHdyYXBwZXIpIHtcbiAgdmFyIE8gPSB7fTtcbiAgT1tFUlJPUl9OQU1FXSA9IHdyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlKEVSUk9SX05BTUUsIHdyYXBwZXIsIEZPUkNFRCk7XG4gICQoeyBnbG9iYWw6IHRydWUsIGNvbnN0cnVjdG9yOiB0cnVlLCBhcml0eTogMSwgZm9yY2VkOiBGT1JDRUQgfSwgTyk7XG59O1xuXG52YXIgZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlciA9IGZ1bmN0aW9uIChFUlJPUl9OQU1FLCB3cmFwcGVyKSB7XG4gIGlmIChXZWJBc3NlbWJseSAmJiBXZWJBc3NlbWJseVtFUlJPUl9OQU1FXSkge1xuICAgIHZhciBPID0ge307XG4gICAgT1tFUlJPUl9OQU1FXSA9IHdyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlKFdFQl9BU1NFTUJMWSArICcuJyArIEVSUk9SX05BTUUsIHdyYXBwZXIsIEZPUkNFRCk7XG4gICAgJCh7IHRhcmdldDogV0VCX0FTU0VNQkxZLCBzdGF0OiB0cnVlLCBjb25zdHJ1Y3RvcjogdHJ1ZSwgYXJpdHk6IDEsIGZvcmNlZDogRk9SQ0VEIH0sIE8pO1xuICB9XG59O1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW5hdGl2ZWVycm9yXG5leHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcignRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gRXJyb3IobWVzc2FnZSkgeyByZXR1cm4gYXBwbHkoaW5pdCwgdGhpcywgYXJndW1lbnRzKTsgfTtcbn0pO1xuZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoJ0V2YWxFcnJvcicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBFdmFsRXJyb3IobWVzc2FnZSkgeyByZXR1cm4gYXBwbHkoaW5pdCwgdGhpcywgYXJndW1lbnRzKTsgfTtcbn0pO1xuZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoJ1JhbmdlRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gUmFuZ2VFcnJvcihtZXNzYWdlKSB7IHJldHVybiBhcHBseShpbml0LCB0aGlzLCBhcmd1bWVudHMpOyB9O1xufSk7XG5leHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlcignUmVmZXJlbmNlRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gUmVmZXJlbmNlRXJyb3IobWVzc2FnZSkgeyByZXR1cm4gYXBwbHkoaW5pdCwgdGhpcywgYXJndW1lbnRzKTsgfTtcbn0pO1xuZXhwb3J0R2xvYmFsRXJyb3JDYXVzZVdyYXBwZXIoJ1N5bnRheEVycm9yJywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFN5bnRheEVycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGFwcGx5KGluaXQsIHRoaXMsIGFyZ3VtZW50cyk7IH07XG59KTtcbmV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCdUeXBlRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gVHlwZUVycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGFwcGx5KGluaXQsIHRoaXMsIGFyZ3VtZW50cyk7IH07XG59KTtcbmV4cG9ydEdsb2JhbEVycm9yQ2F1c2VXcmFwcGVyKCdVUklFcnJvcicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBVUklFcnJvcihtZXNzYWdlKSB7IHJldHVybiBhcHBseShpbml0LCB0aGlzLCBhcmd1bWVudHMpOyB9O1xufSk7XG5leHBvcnRXZWJBc3NlbWJseUVycm9yQ2F1c2VXcmFwcGVyKCdDb21waWxlRXJyb3InLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gQ29tcGlsZUVycm9yKG1lc3NhZ2UpIHsgcmV0dXJuIGFwcGx5KGluaXQsIHRoaXMsIGFyZ3VtZW50cyk7IH07XG59KTtcbmV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIoJ0xpbmtFcnJvcicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBMaW5rRXJyb3IobWVzc2FnZSkgeyByZXR1cm4gYXBwbHkoaW5pdCwgdGhpcywgYXJndW1lbnRzKTsgfTtcbn0pO1xuZXhwb3J0V2ViQXNzZW1ibHlFcnJvckNhdXNlV3JhcHBlcignUnVudGltZUVycm9yJywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFJ1bnRpbWVFcnJvcihtZXNzYWdlKSB7IHJldHVybiBhcHBseShpbml0LCB0aGlzLCBhcmd1bWVudHMpOyB9O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciBlcnJvclRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Vycm9yLXRvLXN0cmluZycpO1xuXG52YXIgRXJyb3JQcm90b3R5cGUgPSBFcnJvci5wcm90b3R5cGU7XG5cbi8vIGBFcnJvci5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZCBmaXhcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZXJyb3IucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAoRXJyb3JQcm90b3R5cGUudG9TdHJpbmcgIT09IGVycm9yVG9TdHJpbmcpIHtcbiAgZGVmaW5lQnVpbHRJbihFcnJvclByb3RvdHlwZSwgJ3RvU3RyaW5nJywgZXJyb3JUb1N0cmluZyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGluaGVyaXRJZlJlcXVpcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luaGVyaXQtaWYtcmVxdWlyZWQnKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1zeW1ib2wnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKS5mO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciB0aGlzTnVtYmVyVmFsdWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdGhpcy1udW1iZXItdmFsdWUnKTtcbnZhciB0cmltID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy10cmltJykudHJpbTtcblxudmFyIE5VTUJFUiA9ICdOdW1iZXInO1xudmFyIE5hdGl2ZU51bWJlciA9IGdsb2JhbFRoaXNbTlVNQkVSXTtcbnZhciBQdXJlTnVtYmVyTmFtZXNwYWNlID0gcGF0aFtOVU1CRVJdO1xudmFyIE51bWJlclByb3RvdHlwZSA9IE5hdGl2ZU51bWJlci5wcm90b3R5cGU7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsVGhpcy5UeXBlRXJyb3I7XG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG52YXIgY2hhckNvZGVBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJDb2RlQXQpO1xuXG4vLyBgVG9OdW1lcmljYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9udW1lcmljXG52YXIgdG9OdW1lcmljID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIHZhciBwcmltVmFsdWUgPSB0b1ByaW1pdGl2ZSh2YWx1ZSwgJ251bWJlcicpO1xuICByZXR1cm4gdHlwZW9mIHByaW1WYWx1ZSA9PSAnYmlnaW50JyA/IHByaW1WYWx1ZSA6IHRvTnVtYmVyKHByaW1WYWx1ZSk7XG59O1xuXG4vLyBgVG9OdW1iZXJgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b251bWJlclxudmFyIHRvTnVtYmVyID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBpdCA9IHRvUHJpbWl0aXZlKGFyZ3VtZW50LCAnbnVtYmVyJyk7XG4gIHZhciBmaXJzdCwgdGhpcmQsIHJhZGl4LCBtYXhDb2RlLCBkaWdpdHMsIGxlbmd0aCwgaW5kZXgsIGNvZGU7XG4gIGlmIChpc1N5bWJvbChpdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgbnVtYmVyJyk7XG4gIGlmICh0eXBlb2YgaXQgPT0gJ3N0cmluZycgJiYgaXQubGVuZ3RoID4gMikge1xuICAgIGl0ID0gdHJpbShpdCk7XG4gICAgZmlyc3QgPSBjaGFyQ29kZUF0KGl0LCAwKTtcbiAgICBpZiAoZmlyc3QgPT09IDQzIHx8IGZpcnN0ID09PSA0NSkge1xuICAgICAgdGhpcmQgPSBjaGFyQ29kZUF0KGl0LCAyKTtcbiAgICAgIGlmICh0aGlyZCA9PT0gODggfHwgdGhpcmQgPT09IDEyMCkgcmV0dXJuIE5hTjsgLy8gTnVtYmVyKCcrMHgxJykgc2hvdWxkIGJlIE5hTiwgb2xkIFY4IGZpeFxuICAgIH0gZWxzZSBpZiAoZmlyc3QgPT09IDQ4KSB7XG4gICAgICBzd2l0Y2ggKGNoYXJDb2RlQXQoaXQsIDEpKSB7XG4gICAgICAgIC8vIGZhc3QgZXF1YWwgb2YgL14wYlswMV0rJC9pXG4gICAgICAgIGNhc2UgNjY6XG4gICAgICAgIGNhc2UgOTg6XG4gICAgICAgICAgcmFkaXggPSAyO1xuICAgICAgICAgIG1heENvZGUgPSA0OTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgLy8gZmFzdCBlcXVhbCBvZiAvXjBvWzAtN10rJC9pXG4gICAgICAgIGNhc2UgNzk6XG4gICAgICAgIGNhc2UgMTExOlxuICAgICAgICAgIHJhZGl4ID0gODtcbiAgICAgICAgICBtYXhDb2RlID0gNTU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICtpdDtcbiAgICAgIH1cbiAgICAgIGRpZ2l0cyA9IHN0cmluZ1NsaWNlKGl0LCAyKTtcbiAgICAgIGxlbmd0aCA9IGRpZ2l0cy5sZW5ndGg7XG4gICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29kZSA9IGNoYXJDb2RlQXQoZGlnaXRzLCBpbmRleCk7XG4gICAgICAgIC8vIHBhcnNlSW50IHBhcnNlcyBhIHN0cmluZyB0byBhIGZpcnN0IHVuYXZhaWxhYmxlIHN5bWJvbFxuICAgICAgICAvLyBidXQgVG9OdW1iZXIgc2hvdWxkIHJldHVybiBOYU4gaWYgYSBzdHJpbmcgY29udGFpbnMgdW5hdmFpbGFibGUgc3ltYm9sc1xuICAgICAgICBpZiAoY29kZSA8IDQ4IHx8IGNvZGUgPiBtYXhDb2RlKSByZXR1cm4gTmFOO1xuICAgICAgfSByZXR1cm4gcGFyc2VJbnQoZGlnaXRzLCByYWRpeCk7XG4gICAgfVxuICB9IHJldHVybiAraXQ7XG59O1xuXG52YXIgRk9SQ0VEID0gaXNGb3JjZWQoTlVNQkVSLCAhTmF0aXZlTnVtYmVyKCcgMG8xJykgfHwgIU5hdGl2ZU51bWJlcignMGIxJykgfHwgTmF0aXZlTnVtYmVyKCcrMHgxJykpO1xuXG52YXIgY2FsbGVkV2l0aE5ldyA9IGZ1bmN0aW9uIChkdW1teSkge1xuICAvLyBpbmNsdWRlcyBjaGVjayBvbiAxLi5jb25zdHJ1Y3Rvcihmb28pIGNhc2VcbiAgcmV0dXJuIGlzUHJvdG90eXBlT2YoTnVtYmVyUHJvdG90eXBlLCBkdW1teSkgJiYgZmFpbHMoZnVuY3Rpb24gKCkgeyB0aGlzTnVtYmVyVmFsdWUoZHVtbXkpOyB9KTtcbn07XG5cbi8vIGBOdW1iZXJgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW51bWJlci1jb25zdHJ1Y3RvclxudmFyIE51bWJlcldyYXBwZXIgPSBmdW5jdGlvbiBOdW1iZXIodmFsdWUpIHtcbiAgdmFyIG4gPSBhcmd1bWVudHMubGVuZ3RoIDwgMSA/IDAgOiBOYXRpdmVOdW1iZXIodG9OdW1lcmljKHZhbHVlKSk7XG4gIHJldHVybiBjYWxsZWRXaXRoTmV3KHRoaXMpID8gaW5oZXJpdElmUmVxdWlyZWQoT2JqZWN0KG4pLCB0aGlzLCBOdW1iZXJXcmFwcGVyKSA6IG47XG59O1xuXG5OdW1iZXJXcmFwcGVyLnByb3RvdHlwZSA9IE51bWJlclByb3RvdHlwZTtcbmlmIChGT1JDRUQgJiYgIUlTX1BVUkUpIE51bWJlclByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE51bWJlcldyYXBwZXI7XG5cbiQoeyBnbG9iYWw6IHRydWUsIGNvbnN0cnVjdG9yOiB0cnVlLCB3cmFwOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIE51bWJlcjogTnVtYmVyV3JhcHBlclxufSk7XG5cbi8vIFVzZSBgaW50ZXJuYWwvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzYCBoZWxwZXIgaW4gYGNvcmUtanNANGBcbnZhciBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzID0gZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG4gIGZvciAodmFyIGtleXMgPSBERVNDUklQVE9SUyA/IGdldE93blByb3BlcnR5TmFtZXMoc291cmNlKSA6IChcbiAgICAvLyBFUzM6XG4gICAgJ01BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLCcgK1xuICAgIC8vIEVTMjAxNSAoaW4gY2FzZSwgaWYgbW9kdWxlcyB3aXRoIEVTMjAxNSBOdW1iZXIgc3RhdGljcyByZXF1aXJlZCBiZWZvcmUpOlxuICAgICdFUFNJTE9OLE1BWF9TQUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5URUdFUixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixwYXJzZUZsb2F0LHBhcnNlSW50LCcgK1xuICAgIC8vIEVTTmV4dFxuICAgICdmcm9tU3RyaW5nLHJhbmdlJ1xuICApLnNwbGl0KCcsJyksIGogPSAwLCBrZXk7IGtleXMubGVuZ3RoID4gajsgaisrKSB7XG4gICAgaWYgKGhhc093bihzb3VyY2UsIGtleSA9IGtleXNbal0pICYmICFoYXNPd24odGFyZ2V0LCBrZXkpKSB7XG4gICAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gICAgfVxuICB9XG59O1xuXG5pZiAoSVNfUFVSRSAmJiBQdXJlTnVtYmVyTmFtZXNwYWNlKSBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKHBhdGhbTlVNQkVSXSwgUHVyZU51bWJlck5hbWVzcGFjZSk7XG5pZiAoRk9SQ0VEIHx8IElTX1BVUkUpIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMocGF0aFtOVU1CRVJdLCBOYXRpdmVOdW1iZXIpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbmF0aXZlS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVLZXlzKDEpOyB9KTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBrZXlzOiBmdW5jdGlvbiBrZXlzKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXModG9PYmplY3QoaXQpKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXRvLXN0cmluZycpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbmlmICghVE9fU1RSSU5HX1RBR19TVVBQT1JUKSB7XG4gIGRlZmluZUJ1aWx0SW4oT2JqZWN0LnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgdG9TdHJpbmcsIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGlzRm9yY2VkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWZvcmNlZCcpO1xudmFyIGluaGVyaXRJZlJlcXVpcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luaGVyaXQtaWYtcmVxdWlyZWQnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBpc1JlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1yZWdleHAnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciBnZXRSZWdFeHBGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZ2V0LWZsYWdzJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKTtcbnZhciBwcm94eUFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Byb3h5LWFjY2Vzc29yJyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgZW5mb3JjZUludGVybmFsU3RhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKS5lbmZvcmNlO1xudmFyIHNldFNwZWNpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXNwZWNpZXMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBVTlNVUFBPUlRFRF9ET1RfQUxMID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1kb3QtYWxsJyk7XG52YXIgVU5TVVBQT1JURURfTkNHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC11bnN1cHBvcnRlZC1uY2cnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xudmFyIE5hdGl2ZVJlZ0V4cCA9IGdsb2JhbFRoaXMuUmVnRXhwO1xudmFyIFJlZ0V4cFByb3RvdHlwZSA9IE5hdGl2ZVJlZ0V4cC5wcm90b3R5cGU7XG52YXIgU3ludGF4RXJyb3IgPSBnbG9iYWxUaGlzLlN5bnRheEVycm9yO1xudmFyIGV4ZWMgPSB1bmN1cnJ5VGhpcyhSZWdFeHBQcm90b3R5cGUuZXhlYyk7XG52YXIgY2hhckF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckF0KTtcbnZhciByZXBsYWNlID0gdW5jdXJyeVRoaXMoJycucmVwbGFjZSk7XG52YXIgc3RyaW5nSW5kZXhPZiA9IHVuY3VycnlUaGlzKCcnLmluZGV4T2YpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuLy8gVE9ETzogVXNlIG9ubHkgcHJvcGVyIFJlZ0V4cElkZW50aWZpZXJOYW1lXG52YXIgSVNfTkNHID0gL15cXD88W15cXHNcXGQhIyUmKis8PT5AXl1bXlxccyEjJSYqKzw9PkBeXSo+LztcbnZhciByZTEgPSAvYS9nO1xudmFyIHJlMiA9IC9hL2c7XG5cbi8vIFwibmV3XCIgc2hvdWxkIGNyZWF0ZSBhIG5ldyBvYmplY3QsIG9sZCB3ZWJraXQgYnVnXG52YXIgQ09SUkVDVF9ORVcgPSBuZXcgTmF0aXZlUmVnRXhwKHJlMSkgIT09IHJlMTtcblxudmFyIE1JU1NFRF9TVElDS1kgPSBzdGlja3lIZWxwZXJzLk1JU1NFRF9TVElDS1k7XG52YXIgVU5TVVBQT1JURURfWSA9IHN0aWNreUhlbHBlcnMuVU5TVVBQT1JURURfWTtcblxudmFyIEJBU0VfRk9SQ0VEID0gREVTQ1JJUFRPUlMgJiZcbiAgKCFDT1JSRUNUX05FVyB8fCBNSVNTRURfU1RJQ0tZIHx8IFVOU1VQUE9SVEVEX0RPVF9BTEwgfHwgVU5TVVBQT1JURURfTkNHIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICByZTJbTUFUQ0hdID0gZmFsc2U7XG4gICAgLy8gUmVnRXhwIGNvbnN0cnVjdG9yIGNhbiBhbHRlciBmbGFncyBhbmQgSXNSZWdFeHAgd29ya3MgY29ycmVjdCB3aXRoIEBAbWF0Y2hcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXIvaW5jb25zaXN0ZW50LWZ1bmN0aW9uLWNhbGwgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICByZXR1cm4gTmF0aXZlUmVnRXhwKHJlMSkgIT09IHJlMSB8fCBOYXRpdmVSZWdFeHAocmUyKSA9PT0gcmUyIHx8IFN0cmluZyhOYXRpdmVSZWdFeHAocmUxLCAnaScpKSAhPT0gJy9hL2knO1xuICB9KSk7XG5cbnZhciBoYW5kbGVEb3RBbGwgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIHZhciBicmFja2V0cyA9IGZhbHNlO1xuICB2YXIgY2hyO1xuICBmb3IgKDsgaW5kZXggPD0gbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY2hyID0gY2hhckF0KHN0cmluZywgaW5kZXgpO1xuICAgIGlmIChjaHIgPT09ICdcXFxcJykge1xuICAgICAgcmVzdWx0ICs9IGNociArIGNoYXJBdChzdHJpbmcsICsraW5kZXgpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICghYnJhY2tldHMgJiYgY2hyID09PSAnLicpIHtcbiAgICAgIHJlc3VsdCArPSAnW1xcXFxzXFxcXFNdJztcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNociA9PT0gJ1snKSB7XG4gICAgICAgIGJyYWNrZXRzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoY2hyID09PSAnXScpIHtcbiAgICAgICAgYnJhY2tldHMgPSBmYWxzZTtcbiAgICAgIH0gcmVzdWx0ICs9IGNocjtcbiAgICB9XG4gIH0gcmV0dXJuIHJlc3VsdDtcbn07XG5cbnZhciBoYW5kbGVOQ0cgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIHZhciBuYW1lZCA9IFtdO1xuICB2YXIgbmFtZXMgPSBjcmVhdGUobnVsbCk7XG4gIHZhciBicmFja2V0cyA9IGZhbHNlO1xuICB2YXIgbmNnID0gZmFsc2U7XG4gIHZhciBncm91cGlkID0gMDtcbiAgdmFyIGdyb3VwbmFtZSA9ICcnO1xuICB2YXIgY2hyO1xuICBmb3IgKDsgaW5kZXggPD0gbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY2hyID0gY2hhckF0KHN0cmluZywgaW5kZXgpO1xuICAgIGlmIChjaHIgPT09ICdcXFxcJykge1xuICAgICAgY2hyICs9IGNoYXJBdChzdHJpbmcsICsraW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoY2hyID09PSAnXScpIHtcbiAgICAgIGJyYWNrZXRzID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICghYnJhY2tldHMpIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSBjaHIgPT09ICdbJzpcbiAgICAgICAgYnJhY2tldHMgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgY2hyID09PSAnKCc6XG4gICAgICAgIHJlc3VsdCArPSBjaHI7XG4gICAgICAgIC8vIGlnbm9yZSBub24tY2FwdHVyaW5nIGdyb3Vwc1xuICAgICAgICBpZiAoc3RyaW5nU2xpY2Uoc3RyaW5nLCBpbmRleCArIDEsIGluZGV4ICsgMykgPT09ICc/OicpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXhlYyhJU19OQ0csIHN0cmluZ1NsaWNlKHN0cmluZywgaW5kZXggKyAxKSkpIHtcbiAgICAgICAgICBpbmRleCArPSAyO1xuICAgICAgICAgIG5jZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZ3JvdXBpZCsrO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIGNhc2UgY2hyID09PSAnPicgJiYgbmNnOlxuICAgICAgICBpZiAoZ3JvdXBuYW1lID09PSAnJyB8fCBoYXNPd24obmFtZXMsIGdyb3VwbmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoJ0ludmFsaWQgY2FwdHVyZSBncm91cCBuYW1lJyk7XG4gICAgICAgIH1cbiAgICAgICAgbmFtZXNbZ3JvdXBuYW1lXSA9IHRydWU7XG4gICAgICAgIG5hbWVkW25hbWVkLmxlbmd0aF0gPSBbZ3JvdXBuYW1lLCBncm91cGlkXTtcbiAgICAgICAgbmNnID0gZmFsc2U7XG4gICAgICAgIGdyb3VwbmFtZSA9ICcnO1xuICAgICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKG5jZykgZ3JvdXBuYW1lICs9IGNocjtcbiAgICBlbHNlIHJlc3VsdCArPSBjaHI7XG4gIH0gcmV0dXJuIFtyZXN1bHQsIG5hbWVkXTtcbn07XG5cbi8vIGBSZWdFeHBgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC1jb25zdHJ1Y3RvclxuaWYgKGlzRm9yY2VkKCdSZWdFeHAnLCBCQVNFX0ZPUkNFRCkpIHtcbiAgdmFyIFJlZ0V4cFdyYXBwZXIgPSBmdW5jdGlvbiBSZWdFeHAocGF0dGVybiwgZmxhZ3MpIHtcbiAgICB2YXIgdGhpc0lzUmVnRXhwID0gaXNQcm90b3R5cGVPZihSZWdFeHBQcm90b3R5cGUsIHRoaXMpO1xuICAgIHZhciBwYXR0ZXJuSXNSZWdFeHAgPSBpc1JlZ0V4cChwYXR0ZXJuKTtcbiAgICB2YXIgZmxhZ3NBcmVVbmRlZmluZWQgPSBmbGFncyA9PT0gdW5kZWZpbmVkO1xuICAgIHZhciBncm91cHMgPSBbXTtcbiAgICB2YXIgcmF3UGF0dGVybiA9IHBhdHRlcm47XG4gICAgdmFyIHJhd0ZsYWdzLCBkb3RBbGwsIHN0aWNreSwgaGFuZGxlZCwgcmVzdWx0LCBzdGF0ZTtcblxuICAgIGlmICghdGhpc0lzUmVnRXhwICYmIHBhdHRlcm5Jc1JlZ0V4cCAmJiBmbGFnc0FyZVVuZGVmaW5lZCAmJiBwYXR0ZXJuLmNvbnN0cnVjdG9yID09PSBSZWdFeHBXcmFwcGVyKSB7XG4gICAgICByZXR1cm4gcGF0dGVybjtcbiAgICB9XG5cbiAgICBpZiAocGF0dGVybklzUmVnRXhwIHx8IGlzUHJvdG90eXBlT2YoUmVnRXhwUHJvdG90eXBlLCBwYXR0ZXJuKSkge1xuICAgICAgcGF0dGVybiA9IHBhdHRlcm4uc291cmNlO1xuICAgICAgaWYgKGZsYWdzQXJlVW5kZWZpbmVkKSBmbGFncyA9IGdldFJlZ0V4cEZsYWdzKHJhd1BhdHRlcm4pO1xuICAgIH1cblxuICAgIHBhdHRlcm4gPSBwYXR0ZXJuID09PSB1bmRlZmluZWQgPyAnJyA6IHRvU3RyaW5nKHBhdHRlcm4pO1xuICAgIGZsYWdzID0gZmxhZ3MgPT09IHVuZGVmaW5lZCA/ICcnIDogdG9TdHJpbmcoZmxhZ3MpO1xuICAgIHJhd1BhdHRlcm4gPSBwYXR0ZXJuO1xuXG4gICAgaWYgKFVOU1VQUE9SVEVEX0RPVF9BTEwgJiYgJ2RvdEFsbCcgaW4gcmUxKSB7XG4gICAgICBkb3RBbGwgPSAhIWZsYWdzICYmIHN0cmluZ0luZGV4T2YoZmxhZ3MsICdzJykgPiAtMTtcbiAgICAgIGlmIChkb3RBbGwpIGZsYWdzID0gcmVwbGFjZShmbGFncywgL3MvZywgJycpO1xuICAgIH1cblxuICAgIHJhd0ZsYWdzID0gZmxhZ3M7XG5cbiAgICBpZiAoTUlTU0VEX1NUSUNLWSAmJiAnc3RpY2t5JyBpbiByZTEpIHtcbiAgICAgIHN0aWNreSA9ICEhZmxhZ3MgJiYgc3RyaW5nSW5kZXhPZihmbGFncywgJ3knKSA+IC0xO1xuICAgICAgaWYgKHN0aWNreSAmJiBVTlNVUFBPUlRFRF9ZKSBmbGFncyA9IHJlcGxhY2UoZmxhZ3MsIC95L2csICcnKTtcbiAgICB9XG5cbiAgICBpZiAoVU5TVVBQT1JURURfTkNHKSB7XG4gICAgICBoYW5kbGVkID0gaGFuZGxlTkNHKHBhdHRlcm4pO1xuICAgICAgcGF0dGVybiA9IGhhbmRsZWRbMF07XG4gICAgICBncm91cHMgPSBoYW5kbGVkWzFdO1xuICAgIH1cblxuICAgIHJlc3VsdCA9IGluaGVyaXRJZlJlcXVpcmVkKE5hdGl2ZVJlZ0V4cChwYXR0ZXJuLCBmbGFncyksIHRoaXNJc1JlZ0V4cCA/IHRoaXMgOiBSZWdFeHBQcm90b3R5cGUsIFJlZ0V4cFdyYXBwZXIpO1xuXG4gICAgaWYgKGRvdEFsbCB8fCBzdGlja3kgfHwgZ3JvdXBzLmxlbmd0aCkge1xuICAgICAgc3RhdGUgPSBlbmZvcmNlSW50ZXJuYWxTdGF0ZShyZXN1bHQpO1xuICAgICAgaWYgKGRvdEFsbCkge1xuICAgICAgICBzdGF0ZS5kb3RBbGwgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5yYXcgPSBSZWdFeHBXcmFwcGVyKGhhbmRsZURvdEFsbChwYXR0ZXJuKSwgcmF3RmxhZ3MpO1xuICAgICAgfVxuICAgICAgaWYgKHN0aWNreSkgc3RhdGUuc3RpY2t5ID0gdHJ1ZTtcbiAgICAgIGlmIChncm91cHMubGVuZ3RoKSBzdGF0ZS5ncm91cHMgPSBncm91cHM7XG4gICAgfVxuXG4gICAgaWYgKHBhdHRlcm4gIT09IHJhd1BhdHRlcm4pIHRyeSB7XG4gICAgICAvLyBmYWlscyBpbiBvbGQgZW5naW5lcywgYnV0IHdlIGhhdmUgbm8gYWx0ZXJuYXRpdmVzIGZvciB1bnN1cHBvcnRlZCByZWdleCBzeW50YXhcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShyZXN1bHQsICdzb3VyY2UnLCByYXdQYXR0ZXJuID09PSAnJyA/ICcoPzopJyA6IHJhd1BhdHRlcm4pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgZm9yICh2YXIga2V5cyA9IGdldE93blByb3BlcnR5TmFtZXMoTmF0aXZlUmVnRXhwKSwgaW5kZXggPSAwOyBrZXlzLmxlbmd0aCA+IGluZGV4Oykge1xuICAgIHByb3h5QWNjZXNzb3IoUmVnRXhwV3JhcHBlciwgTmF0aXZlUmVnRXhwLCBrZXlzW2luZGV4KytdKTtcbiAgfVxuXG4gIFJlZ0V4cFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFJlZ0V4cFdyYXBwZXI7XG4gIFJlZ0V4cFdyYXBwZXIucHJvdG90eXBlID0gUmVnRXhwUHJvdG90eXBlO1xuICBkZWZpbmVCdWlsdEluKGdsb2JhbFRoaXMsICdSZWdFeHAnLCBSZWdFeHBXcmFwcGVyLCB7IGNvbnN0cnVjdG9yOiB0cnVlIH0pO1xufVxuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldC1yZWdleHAtQEBzcGVjaWVzXG5zZXRTcGVjaWVzKCdSZWdFeHAnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIFVOU1VQUE9SVEVEX0RPVF9BTEwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLWRvdC1hbGwnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgZGVmaW5lQnVpbHRJbkFjY2Vzc29yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbi1hY2Nlc3NvcicpO1xudmFyIGdldEludGVybmFsU3RhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKS5nZXQ7XG5cbnZhciBSZWdFeHBQcm90b3R5cGUgPSBSZWdFeHAucHJvdG90eXBlO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZWdFeHAucHJvdG90eXBlLmRvdEFsbGAgZ2V0dGVyXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWdldC1yZWdleHAucHJvdG90eXBlLmRvdGFsbFxuaWYgKERFU0NSSVBUT1JTICYmIFVOU1VQUE9SVEVEX0RPVF9BTEwpIHtcbiAgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKFJlZ0V4cFByb3RvdHlwZSwgJ2RvdEFsbCcsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiBkb3RBbGwoKSB7XG4gICAgICBpZiAodGhpcyA9PT0gUmVnRXhwUHJvdG90eXBlKSByZXR1cm47XG4gICAgICAvLyBXZSBjYW4ndCB1c2UgSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IgYmVjYXVzZVxuICAgICAgLy8gd2UgZG9uJ3QgYWRkIG1ldGFkYXRhIGZvciByZWdleHBzIGNyZWF0ZWQgYnkgYSBsaXRlcmFsLlxuICAgICAgaWYgKGNsYXNzb2YodGhpcykgPT09ICdSZWdFeHAnKSB7XG4gICAgICAgIHJldHVybiAhIWdldEludGVybmFsU3RhdGUodGhpcykuZG90QWxsO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3ICRUeXBlRXJyb3IoJ0luY29tcGF0aWJsZSByZWNlaXZlciwgUmVnRXhwIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZXhlY2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUuZXhlY1xuJCh7IHRhcmdldDogJ1JlZ0V4cCcsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IC8uLy5leGVjICE9PSBleGVjIH0sIHtcbiAgZXhlYzogZXhlY1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBNSVNTRURfU1RJQ0tZID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycycpLk1JU1NFRF9TVElDS1k7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIGRlZmluZUJ1aWx0SW5BY2Nlc3NvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4tYWNjZXNzb3InKTtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJykuZ2V0O1xuXG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS5zdGlja3lgIGdldHRlclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5zdGlja3lcbmlmIChERVNDUklQVE9SUyAmJiBNSVNTRURfU1RJQ0tZKSB7XG4gIGRlZmluZUJ1aWx0SW5BY2Nlc3NvcihSZWdFeHBQcm90b3R5cGUsICdzdGlja3knLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gc3RpY2t5KCkge1xuICAgICAgaWYgKHRoaXMgPT09IFJlZ0V4cFByb3RvdHlwZSkgcmV0dXJuO1xuICAgICAgLy8gV2UgY2FuJ3QgdXNlIEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yIGJlY2F1c2VcbiAgICAgIC8vIHdlIGRvbid0IGFkZCBtZXRhZGF0YSBmb3IgcmVnZXhwcyBjcmVhdGVkIGJ5IGEgbGl0ZXJhbC5cbiAgICAgIGlmIChjbGFzc29mKHRoaXMpID09PSAnUmVnRXhwJykge1xuICAgICAgICByZXR1cm4gISFnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLnN0aWNreTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyAkVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsIFJlZ0V4cCByZXF1aXJlZCcpO1xuICAgIH1cbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIG1vdmVkIHRvIGVudHJ5IHBvaW50c1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWdleHAuZXhlYycpO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xuXG52YXIgREVMRUdBVEVTX1RPX0VYRUMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBleGVjQ2FsbGVkID0gZmFsc2U7XG4gIHZhciByZSA9IC9bYWNdLztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBleGVjQ2FsbGVkID0gdHJ1ZTtcbiAgICByZXR1cm4gLy4vLmV4ZWMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHJlLnRlc3QoJ2FiYycpID09PSB0cnVlICYmIGV4ZWNDYWxsZWQ7XG59KCk7XG5cbnZhciBuYXRpdmVUZXN0ID0gLy4vLnRlc3Q7XG5cbi8vIGBSZWdFeHAucHJvdG90eXBlLnRlc3RgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLnRlc3RcbiQoeyB0YXJnZXQ6ICdSZWdFeHAnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhREVMRUdBVEVTX1RPX0VYRUMgfSwge1xuICB0ZXN0OiBmdW5jdGlvbiAoUykge1xuICAgIHZhciBSID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIHN0cmluZyA9IHRvU3RyaW5nKFMpO1xuICAgIHZhciBleGVjID0gUi5leGVjO1xuICAgIGlmICghaXNDYWxsYWJsZShleGVjKSkgcmV0dXJuIGNhbGwobmF0aXZlVGVzdCwgUiwgc3RyaW5nKTtcbiAgICB2YXIgcmVzdWx0ID0gY2FsbChleGVjLCBSLCBzdHJpbmcpO1xuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHJldHVybiBmYWxzZTtcbiAgICBhbk9iamVjdChyZXN1bHQpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBQUk9QRVJfRlVOQ1RJT05fTkFNRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1uYW1lJykuUFJPUEVSO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgJHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2V0UmVnRXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWdldC1mbGFncycpO1xuXG52YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcbnZhciBSZWdFeHBQcm90b3R5cGUgPSBSZWdFeHAucHJvdG90eXBlO1xudmFyIG5hdGl2ZVRvU3RyaW5nID0gUmVnRXhwUHJvdG90eXBlW1RPX1NUUklOR107XG5cbnZhciBOT1RfR0VORVJJQyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5hdGl2ZVRvU3RyaW5nLmNhbGwoeyBzb3VyY2U6ICdhJywgZmxhZ3M6ICdiJyB9KSAhPT0gJy9hL2InOyB9KTtcbi8vIEZGNDQtIFJlZ0V4cCN0b1N0cmluZyBoYXMgYSB3cm9uZyBuYW1lXG52YXIgSU5DT1JSRUNUX05BTUUgPSBQUk9QRVJfRlVOQ1RJT05fTkFNRSAmJiBuYXRpdmVUb1N0cmluZy5uYW1lICE9PSBUT19TVFJJTkc7XG5cbi8vIGBSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS50b3N0cmluZ1xuaWYgKE5PVF9HRU5FUklDIHx8IElOQ09SUkVDVF9OQU1FKSB7XG4gIGRlZmluZUJ1aWx0SW4oUmVnRXhwUHJvdG90eXBlLCBUT19TVFJJTkcsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHZhciBSID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIHBhdHRlcm4gPSAkdG9TdHJpbmcoUi5zb3VyY2UpO1xuICAgIHZhciBmbGFncyA9ICR0b1N0cmluZyhnZXRSZWdFeHBGbGFncyhSKSk7XG4gICAgcmV0dXJuICcvJyArIHBhdHRlcm4gKyAnLycgKyBmbGFncztcbiAgfSwgeyB1bnNhZmU6IHRydWUgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYXBwbHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHknKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmaXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNOdWxsT3JVbmRlZmluZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtbnVsbC1vci11bmRlZmluZWQnKTtcbnZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGFkdmFuY2VTdHJpbmdJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZHZhbmNlLXN0cmluZy1pbmRleCcpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgZ2V0U3Vic3RpdHV0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1zdWJzdGl0dXRpb24nKTtcbnZhciByZWdFeHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjLWFic3RyYWN0Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBSRVBMQUNFID0gd2VsbEtub3duU3ltYm9sKCdyZXBsYWNlJyk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG52YXIgY29uY2F0ID0gdW5jdXJyeVRoaXMoW10uY29uY2F0KTtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG52YXIgc3RyaW5nSW5kZXhPZiA9IHVuY3VycnlUaGlzKCcnLmluZGV4T2YpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG52YXIgbWF5YmVUb1N0cmluZyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgPT09IHVuZGVmaW5lZCA/IGl0IDogU3RyaW5nKGl0KTtcbn07XG5cbi8vIElFIDw9IDExIHJlcGxhY2VzICQwIHdpdGggdGhlIHdob2xlIG1hdGNoLCBhcyBpZiBpdCB3YXMgJCZcbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYwMjQ2NjYvZ2V0dGluZy1pZS10by1yZXBsYWNlLWEtcmVnZXgtd2l0aC10aGUtbGl0ZXJhbC1zdHJpbmctMFxudmFyIFJFUExBQ0VfS0VFUFNfJDAgPSAoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVnZXhwL3ByZWZlci1lc2NhcGUtcmVwbGFjZW1lbnQtZG9sbGFyLWNoYXIgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuICdhJy5yZXBsYWNlKC8uLywgJyQwJykgPT09ICckMCc7XG59KSgpO1xuXG4vLyBTYWZhcmkgPD0gMTMuMC4zKD8pIHN1YnN0aXR1dGVzIG50aCBjYXB0dXJlIHdoZXJlIG4+bSB3aXRoIGFuIGVtcHR5IHN0cmluZ1xudmFyIFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFID0gKGZ1bmN0aW9uICgpIHtcbiAgaWYgKC8uL1tSRVBMQUNFXSkge1xuICAgIHJldHVybiAvLi9bUkVQTEFDRV0oJ2EnLCAnJDAnKSA9PT0gJyc7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufSkoKTtcblxudmFyIFJFUExBQ0VfU1VQUE9SVFNfTkFNRURfR1JPVVBTID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gLy4vO1xuICByZS5leGVjID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICByZXN1bHQuZ3JvdXBzID0geyBhOiAnNycgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVnZXhwL25vLXVzZWxlc3MtZG9sbGFyLXJlcGxhY2VtZW50cyAtLSBmYWxzZSBwb3NpdGl2ZVxuICByZXR1cm4gJycucmVwbGFjZShyZSwgJyQ8YT4nKSAhPT0gJzcnO1xufSk7XG5cbi8vIEBAcmVwbGFjZSBsb2dpY1xuZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMoJ3JlcGxhY2UnLCBmdW5jdGlvbiAoXywgbmF0aXZlUmVwbGFjZSwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHZhciBVTlNBRkVfU1VCU1RJVFVURSA9IFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFID8gJyQnIDogJyQwJztcblxuICByZXR1cm4gW1xuICAgIC8vIGBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlXG4gICAgZnVuY3Rpb24gcmVwbGFjZShzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKSB7XG4gICAgICB2YXIgTyA9IHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcyk7XG4gICAgICB2YXIgcmVwbGFjZXIgPSBpc051bGxPclVuZGVmaW5lZChzZWFyY2hWYWx1ZSkgPyB1bmRlZmluZWQgOiBnZXRNZXRob2Qoc2VhcmNoVmFsdWUsIFJFUExBQ0UpO1xuICAgICAgcmV0dXJuIHJlcGxhY2VyXG4gICAgICAgID8gY2FsbChyZXBsYWNlciwgc2VhcmNoVmFsdWUsIE8sIHJlcGxhY2VWYWx1ZSlcbiAgICAgICAgOiBjYWxsKG5hdGl2ZVJlcGxhY2UsIHRvU3RyaW5nKE8pLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKTtcbiAgICB9LFxuICAgIC8vIGBSZWdFeHAucHJvdG90eXBlW0BAcmVwbGFjZV1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHJlcGxhY2VcbiAgICBmdW5jdGlvbiAoc3RyaW5nLCByZXBsYWNlVmFsdWUpIHtcbiAgICAgIHZhciByeCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgICAgdmFyIFMgPSB0b1N0cmluZyhzdHJpbmcpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiByZXBsYWNlVmFsdWUgPT0gJ3N0cmluZycgJiZcbiAgICAgICAgc3RyaW5nSW5kZXhPZihyZXBsYWNlVmFsdWUsIFVOU0FGRV9TVUJTVElUVVRFKSA9PT0gLTEgJiZcbiAgICAgICAgc3RyaW5nSW5kZXhPZihyZXBsYWNlVmFsdWUsICckPCcpID09PSAtMVxuICAgICAgKSB7XG4gICAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUobmF0aXZlUmVwbGFjZSwgcngsIFMsIHJlcGxhY2VWYWx1ZSk7XG4gICAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIGZ1bmN0aW9uYWxSZXBsYWNlID0gaXNDYWxsYWJsZShyZXBsYWNlVmFsdWUpO1xuICAgICAgaWYgKCFmdW5jdGlvbmFsUmVwbGFjZSkgcmVwbGFjZVZhbHVlID0gdG9TdHJpbmcocmVwbGFjZVZhbHVlKTtcblxuICAgICAgdmFyIGdsb2JhbCA9IHJ4Lmdsb2JhbDtcbiAgICAgIHZhciBmdWxsVW5pY29kZTtcbiAgICAgIGlmIChnbG9iYWwpIHtcbiAgICAgICAgZnVsbFVuaWNvZGUgPSByeC51bmljb2RlO1xuICAgICAgICByeC5sYXN0SW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSBicmVhaztcblxuICAgICAgICBwdXNoKHJlc3VsdHMsIHJlc3VsdCk7XG4gICAgICAgIGlmICghZ2xvYmFsKSBicmVhaztcblxuICAgICAgICB2YXIgbWF0Y2hTdHIgPSB0b1N0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICBpZiAobWF0Y2hTdHIgPT09ICcnKSByeC5sYXN0SW5kZXggPSBhZHZhbmNlU3RyaW5nSW5kZXgoUywgdG9MZW5ndGgocngubGFzdEluZGV4KSwgZnVsbFVuaWNvZGUpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWNjdW11bGF0ZWRSZXN1bHQgPSAnJztcbiAgICAgIHZhciBuZXh0U291cmNlUG9zaXRpb24gPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdHNbaV07XG5cbiAgICAgICAgdmFyIG1hdGNoZWQgPSB0b1N0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICB2YXIgcG9zaXRpb24gPSBtYXgobWluKHRvSW50ZWdlck9ySW5maW5pdHkocmVzdWx0LmluZGV4KSwgUy5sZW5ndGgpLCAwKTtcbiAgICAgICAgdmFyIGNhcHR1cmVzID0gW107XG4gICAgICAgIHZhciByZXBsYWNlbWVudDtcbiAgICAgICAgLy8gTk9URTogVGhpcyBpcyBlcXVpdmFsZW50IHRvXG4gICAgICAgIC8vICAgY2FwdHVyZXMgPSByZXN1bHQuc2xpY2UoMSkubWFwKG1heWJlVG9TdHJpbmcpXG4gICAgICAgIC8vIGJ1dCBmb3Igc29tZSByZWFzb24gYG5hdGl2ZVNsaWNlLmNhbGwocmVzdWx0LCAxLCByZXN1bHQubGVuZ3RoKWAgKGNhbGxlZCBpblxuICAgICAgICAvLyB0aGUgc2xpY2UgcG9seWZpbGwgd2hlbiBzbGljaW5nIG5hdGl2ZSBhcnJheXMpIFwiZG9lc24ndCB3b3JrXCIgaW4gc2FmYXJpIDkgYW5kXG4gICAgICAgIC8vIGNhdXNlcyBhIGNyYXNoIChodHRwczovL3Bhc3RlYmluLmNvbS9OMjFRemVRQSkgd2hlbiB0cnlpbmcgdG8gZGVidWcgaXQuXG4gICAgICAgIGZvciAodmFyIGogPSAxOyBqIDwgcmVzdWx0Lmxlbmd0aDsgaisrKSBwdXNoKGNhcHR1cmVzLCBtYXliZVRvU3RyaW5nKHJlc3VsdFtqXSkpO1xuICAgICAgICB2YXIgbmFtZWRDYXB0dXJlcyA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkge1xuICAgICAgICAgIHZhciByZXBsYWNlckFyZ3MgPSBjb25jYXQoW21hdGNoZWRdLCBjYXB0dXJlcywgcG9zaXRpb24sIFMpO1xuICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVzICE9PSB1bmRlZmluZWQpIHB1c2gocmVwbGFjZXJBcmdzLCBuYW1lZENhcHR1cmVzKTtcbiAgICAgICAgICByZXBsYWNlbWVudCA9IHRvU3RyaW5nKGFwcGx5KHJlcGxhY2VWYWx1ZSwgdW5kZWZpbmVkLCByZXBsYWNlckFyZ3MpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXBsYWNlbWVudCA9IGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBTLCBwb3NpdGlvbiwgY2FwdHVyZXMsIG5hbWVkQ2FwdHVyZXMsIHJlcGxhY2VWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvc2l0aW9uID49IG5leHRTb3VyY2VQb3NpdGlvbikge1xuICAgICAgICAgIGFjY3VtdWxhdGVkUmVzdWx0ICs9IHN0cmluZ1NsaWNlKFMsIG5leHRTb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24pICsgcmVwbGFjZW1lbnQ7XG4gICAgICAgICAgbmV4dFNvdXJjZVBvc2l0aW9uID0gcG9zaXRpb24gKyBtYXRjaGVkLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjdW11bGF0ZWRSZXN1bHQgKyBzdHJpbmdTbGljZShTLCBuZXh0U291cmNlUG9zaXRpb24pO1xuICAgIH1cbiAgXTtcbn0sICFSRVBMQUNFX1NVUFBPUlRTX05BTUVEX0dST1VQUyB8fCAhUkVQTEFDRV9LRUVQU18kMCB8fCBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xuXG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1zdHJpbmctc2xpY2UgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbnZhciBGT1JDRUQgPSAhJycuc3Vic3RyIHx8ICdhYicuc3Vic3RyKC0xKSAhPT0gJ2InO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5zdWJzdHJgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnN1YnN0clxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIHN1YnN0cjogZnVuY3Rpb24gc3Vic3RyKHN0YXJ0LCBsZW5ndGgpIHtcbiAgICB2YXIgdGhhdCA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpO1xuICAgIHZhciBzaXplID0gdGhhdC5sZW5ndGg7XG4gICAgdmFyIGludFN0YXJ0ID0gdG9JbnRlZ2VyT3JJbmZpbml0eShzdGFydCk7XG4gICAgdmFyIGludExlbmd0aCwgaW50RW5kO1xuICAgIGlmIChpbnRTdGFydCA9PT0gSW5maW5pdHkpIGludFN0YXJ0ID0gMDtcbiAgICBpZiAoaW50U3RhcnQgPCAwKSBpbnRTdGFydCA9IG1heChzaXplICsgaW50U3RhcnQsIDApO1xuICAgIGludExlbmd0aCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gc2l6ZSA6IHRvSW50ZWdlck9ySW5maW5pdHkobGVuZ3RoKTtcbiAgICBpZiAoaW50TGVuZ3RoIDw9IDAgfHwgaW50TGVuZ3RoID09PSBJbmZpbml0eSkgcmV0dXJuICcnO1xuICAgIGludEVuZCA9IG1pbihpbnRTdGFydCArIGludExlbmd0aCwgc2l6ZSk7XG4gICAgcmV0dXJuIGludFN0YXJ0ID49IGludEVuZCA/ICcnIDogc3RyaW5nU2xpY2UodGhhdCwgaW50U3RhcnQsIGludEVuZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuYXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmF0XG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdhdCcsIGZ1bmN0aW9uIGF0KGluZGV4KSB7XG4gIHZhciBPID0gYVR5cGVkQXJyYXkodGhpcyk7XG4gIHZhciBsZW4gPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgdmFyIHJlbGF0aXZlSW5kZXggPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgdmFyIGsgPSByZWxhdGl2ZUluZGV4ID49IDAgPyByZWxhdGl2ZUluZGV4IDogbGVuICsgcmVsYXRpdmVJbmRleDtcbiAgcmV0dXJuIChrIDwgMCB8fCBrID49IGxlbikgPyB1bmRlZmluZWQgOiBPW2tdO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJEFycmF5Q29weVdpdGhpbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1jb3B5LXdpdGhpbicpO1xuXG52YXIgdSRBcnJheUNvcHlXaXRoaW4gPSB1bmN1cnJ5VGhpcygkQXJyYXlDb3B5V2l0aGluKTtcbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuY29weVdpdGhpbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuY29weXdpdGhpblxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnY29weVdpdGhpbicsIGZ1bmN0aW9uIGNvcHlXaXRoaW4odGFyZ2V0LCBzdGFydCAvKiAsIGVuZCAqLykge1xuICByZXR1cm4gdSRBcnJheUNvcHlXaXRoaW4oYVR5cGVkQXJyYXkodGhpcyksIHRhcmdldCwgc3RhcnQsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRldmVyeSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5ldmVyeTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5ldmVyeWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuZXZlcnlcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2V2ZXJ5JywgZnVuY3Rpb24gZXZlcnkoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRldmVyeShhVHlwZWRBcnJheSh0aGlzKSwgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGZpbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZmlsbCcpO1xudmFyIHRvQmlnSW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWJpZy1pbnQnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgc2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG5cbi8vIFY4IH4gQ2hyb21lIDwgNTksIFNhZmFyaSA8IDE0LjEsIEZGIDwgNTUsIEVkZ2UgPD0xOFxudmFyIENPTlZFUlNJT05fQlVHID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgY291bnQgPSAwO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tdHlwZWQtYXJyYXlzIC0tIHNhZmVcbiAgbmV3IEludDhBcnJheSgyKS5maWxsKHsgdmFsdWVPZjogZnVuY3Rpb24gKCkgeyByZXR1cm4gY291bnQrKzsgfSB9KTtcbiAgcmV0dXJuIGNvdW50ICE9PSAxO1xufSk7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbGxgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmZpbGxcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2ZpbGwnLCBmdW5jdGlvbiBmaWxsKHZhbHVlIC8qICwgc3RhcnQsIGVuZCAqLykge1xuICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgYVR5cGVkQXJyYXkodGhpcyk7XG4gIHZhciBhY3R1YWxWYWx1ZSA9IHNsaWNlKGNsYXNzb2YodGhpcyksIDAsIDMpID09PSAnQmlnJyA/IHRvQmlnSW50KHZhbHVlKSA6ICt2YWx1ZTtcbiAgcmV0dXJuIGNhbGwoJGZpbGwsIHRoaXMsIGFjdHVhbFZhbHVlLCBsZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCBsZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkKTtcbn0sIENPTlZFUlNJT05fQlVHKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZmlsdGVyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbHRlcjtcbnZhciBmcm9tU3BlY2llc0FuZExpc3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktZnJvbS1zcGVjaWVzLWFuZC1saXN0Jyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuZmlsdGVyYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5maWx0ZXJcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2ZpbHRlcicsIGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICB2YXIgbGlzdCA9ICRmaWx0ZXIoYVR5cGVkQXJyYXkodGhpcyksIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgcmV0dXJuIGZyb21TcGVjaWVzQW5kTGlzdCh0aGlzLCBsaXN0KTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRmaW5kSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmluZEluZGV4O1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbmRJbmRleGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuZmluZGluZGV4XG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdmaW5kSW5kZXgnLCBmdW5jdGlvbiBmaW5kSW5kZXgocHJlZGljYXRlIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJGZpbmRJbmRleChhVHlwZWRBcnJheSh0aGlzKSwgcHJlZGljYXRlLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZmluZExhc3RJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24tZnJvbS1sYXN0JykuZmluZExhc3RJbmRleDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kTGFzdEluZGV4YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5maW5kbGFzdGluZGV4XG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdmaW5kTGFzdEluZGV4JywgZnVuY3Rpb24gZmluZExhc3RJbmRleChwcmVkaWNhdGUgLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZmluZExhc3RJbmRleChhVHlwZWRBcnJheSh0aGlzKSwgcHJlZGljYXRlLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZmluZExhc3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uLWZyb20tbGFzdCcpLmZpbmRMYXN0O1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbmRMYXN0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5maW5kbGFzdFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZmluZExhc3QnLCBmdW5jdGlvbiBmaW5kTGFzdChwcmVkaWNhdGUgLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZmluZExhc3QoYVR5cGVkQXJyYXkodGhpcyksIHByZWRpY2F0ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGZpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmluZDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5maW5kXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdmaW5kJywgZnVuY3Rpb24gZmluZChwcmVkaWNhdGUgLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZmluZChhVHlwZWRBcnJheSh0aGlzKSwgcHJlZGljYXRlLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5mb3JFYWNoO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmZvcmVhY2hcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2ZvckVhY2gnLCBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICRmb3JFYWNoKGFUeXBlZEFycmF5KHRoaXMpLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkaW5jbHVkZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmNsdWRlcztcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5pbmNsdWRlc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuaW5jbHVkZXNcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2luY2x1ZGVzJywgZnVuY3Rpb24gaW5jbHVkZXMoc2VhcmNoRWxlbWVudCAvKiAsIGZyb21JbmRleCAqLykge1xuICByZXR1cm4gJGluY2x1ZGVzKGFUeXBlZEFycmF5KHRoaXMpLCBzZWFyY2hFbGVtZW50LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkaW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pbmNsdWRlcycpLmluZGV4T2Y7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuaW5kZXhPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuaW5kZXhvZlxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnaW5kZXhPZicsIGZ1bmN0aW9uIGluZGV4T2Yoc2VhcmNoRWxlbWVudCAvKiAsIGZyb21JbmRleCAqLykge1xuICByZXR1cm4gJGluZGV4T2YoYVR5cGVkQXJyYXkodGhpcyksIHNlYXJjaEVsZW1lbnQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbFRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsLXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIEFycmF5SXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvcicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgVWludDhBcnJheSA9IGdsb2JhbFRoaXMuVWludDhBcnJheTtcbnZhciBhcnJheVZhbHVlcyA9IHVuY3VycnlUaGlzKEFycmF5SXRlcmF0b3JzLnZhbHVlcyk7XG52YXIgYXJyYXlLZXlzID0gdW5jdXJyeVRoaXMoQXJyYXlJdGVyYXRvcnMua2V5cyk7XG52YXIgYXJyYXlFbnRyaWVzID0gdW5jdXJyeVRoaXMoQXJyYXlJdGVyYXRvcnMuZW50cmllcyk7XG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgVHlwZWRBcnJheVByb3RvdHlwZSA9IFVpbnQ4QXJyYXkgJiYgVWludDhBcnJheS5wcm90b3R5cGU7XG5cbnZhciBHRU5FUklDID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgVHlwZWRBcnJheVByb3RvdHlwZVtJVEVSQVRPUl0uY2FsbChbMV0pO1xufSk7XG5cbnZhciBJVEVSQVRPUl9JU19WQUxVRVMgPSAhIVR5cGVkQXJyYXlQcm90b3R5cGVcbiAgJiYgVHlwZWRBcnJheVByb3RvdHlwZS52YWx1ZXNcbiAgJiYgVHlwZWRBcnJheVByb3RvdHlwZVtJVEVSQVRPUl0gPT09IFR5cGVkQXJyYXlQcm90b3R5cGUudmFsdWVzXG4gICYmIFR5cGVkQXJyYXlQcm90b3R5cGUudmFsdWVzLm5hbWUgPT09ICd2YWx1ZXMnO1xuXG52YXIgdHlwZWRBcnJheVZhbHVlcyA9IGZ1bmN0aW9uIHZhbHVlcygpIHtcbiAgcmV0dXJuIGFycmF5VmFsdWVzKGFUeXBlZEFycmF5KHRoaXMpKTtcbn07XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmVudHJpZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmVudHJpZXNcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2VudHJpZXMnLCBmdW5jdGlvbiBlbnRyaWVzKCkge1xuICByZXR1cm4gYXJyYXlFbnRyaWVzKGFUeXBlZEFycmF5KHRoaXMpKTtcbn0sIEdFTkVSSUMpO1xuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUua2V5c2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUua2V5c1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgna2V5cycsIGZ1bmN0aW9uIGtleXMoKSB7XG4gIHJldHVybiBhcnJheUtleXMoYVR5cGVkQXJyYXkodGhpcykpO1xufSwgR0VORVJJQyk7XG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS52YWx1ZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnZhbHVlc1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgndmFsdWVzJywgdHlwZWRBcnJheVZhbHVlcywgR0VORVJJQyB8fCAhSVRFUkFUT1JfSVNfVkFMVUVTLCB7IG5hbWU6ICd2YWx1ZXMnIH0pO1xuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGVbQEBpdGVyYXRvcl1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLUBAaXRlcmF0b3JcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoSVRFUkFUT1IsIHR5cGVkQXJyYXlWYWx1ZXMsIEdFTkVSSUMgfHwgIUlURVJBVE9SX0lTX1ZBTFVFUywgeyBuYW1lOiAndmFsdWVzJyB9KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyICRqb2luID0gdW5jdXJyeVRoaXMoW10uam9pbik7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmpvaW5gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmpvaW5cbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2pvaW4nLCBmdW5jdGlvbiBqb2luKHNlcGFyYXRvcikge1xuICByZXR1cm4gJGpvaW4oYVR5cGVkQXJyYXkodGhpcyksIHNlcGFyYXRvcik7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBhcHBseSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1hcHBseScpO1xudmFyICRsYXN0SW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1sYXN0LWluZGV4LW9mJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUubGFzdEluZGV4T2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmxhc3RpbmRleG9mXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdsYXN0SW5kZXhPZicsIGZ1bmN0aW9uIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggKi8pIHtcbiAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHJldHVybiBhcHBseSgkbGFzdEluZGV4T2YsIGFUeXBlZEFycmF5KHRoaXMpLCBsZW5ndGggPiAxID8gW3NlYXJjaEVsZW1lbnQsIGFyZ3VtZW50c1sxXV0gOiBbc2VhcmNoRWxlbWVudF0pO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJG1hcCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5tYXA7XG52YXIgdHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUubWFwYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5tYXBcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ21hcCcsIGZ1bmN0aW9uIG1hcChtYXBmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRtYXAoYVR5cGVkQXJyYXkodGhpcyksIG1hcGZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgZnVuY3Rpb24gKE8sIGxlbmd0aCkge1xuICAgIHJldHVybiBuZXcgKHR5cGVkQXJyYXlTcGVjaWVzQ29uc3RydWN0b3IoTykpKGxlbmd0aCk7XG4gIH0pO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJHJlZHVjZVJpZ2h0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXJlZHVjZScpLnJpZ2h0O1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnJlZHVjZVJpZ2h0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5yZWR1Y2VyaWdodFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgncmVkdWNlUmlnaHQnLCBmdW5jdGlvbiByZWR1Y2VSaWdodChjYWxsYmFja2ZuIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICByZXR1cm4gJHJlZHVjZVJpZ2h0KGFUeXBlZEFycmF5KHRoaXMpLCBjYWxsYmFja2ZuLCBsZW5ndGgsIGxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJHJlZHVjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1yZWR1Y2UnKS5sZWZ0O1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnJlZHVjZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUucmVkdWNlXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdyZWR1Y2UnLCBmdW5jdGlvbiByZWR1Y2UoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykge1xuICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgcmV0dXJuICRyZWR1Y2UoYVR5cGVkQXJyYXkodGhpcyksIGNhbGxiYWNrZm4sIGxlbmd0aCwgbGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUucmV2ZXJzZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUucmV2ZXJzZVxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgncmV2ZXJzZScsIGZ1bmN0aW9uIHJldmVyc2UoKSB7XG4gIHZhciB0aGF0ID0gdGhpcztcbiAgdmFyIGxlbmd0aCA9IGFUeXBlZEFycmF5KHRoYXQpLmxlbmd0aDtcbiAgdmFyIG1pZGRsZSA9IGZsb29yKGxlbmd0aCAvIDIpO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgdmFsdWU7XG4gIHdoaWxlIChpbmRleCA8IG1pZGRsZSkge1xuICAgIHZhbHVlID0gdGhhdFtpbmRleF07XG4gICAgdGhhdFtpbmRleCsrXSA9IHRoYXRbLS1sZW5ndGhdO1xuICAgIHRoYXRbbGVuZ3RoXSA9IHZhbHVlO1xuICB9IHJldHVybiB0aGF0O1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgdG9PZmZzZXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2Zmc2V0Jyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBSYW5nZUVycm9yID0gZ2xvYmFsVGhpcy5SYW5nZUVycm9yO1xudmFyIEludDhBcnJheSA9IGdsb2JhbFRoaXMuSW50OEFycmF5O1xudmFyIEludDhBcnJheVByb3RvdHlwZSA9IEludDhBcnJheSAmJiBJbnQ4QXJyYXkucHJvdG90eXBlO1xudmFyICRzZXQgPSBJbnQ4QXJyYXlQcm90b3R5cGUgJiYgSW50OEFycmF5UHJvdG90eXBlLnNldDtcbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxudmFyIFdPUktTX1dJVEhfT0JKRUNUU19BTkRfR0VORVJJQ19PTl9UWVBFRF9BUlJBWVMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMvbm8tdHlwZWQtYXJyYXlzIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHZhciBhcnJheSA9IG5ldyBVaW50OENsYW1wZWRBcnJheSgyKTtcbiAgY2FsbCgkc2V0LCBhcnJheSwgeyBsZW5ndGg6IDEsIDA6IDMgfSwgMSk7XG4gIHJldHVybiBhcnJheVsxXSAhPT0gMztcbn0pO1xuXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0xMTI5NCBhbmQgb3RoZXJcbnZhciBUT19PQkpFQ1RfQlVHID0gV09SS1NfV0lUSF9PQkpFQ1RTX0FORF9HRU5FUklDX09OX1RZUEVEX0FSUkFZUyAmJiBBcnJheUJ1ZmZlclZpZXdDb3JlLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgYXJyYXkgPSBuZXcgSW50OEFycmF5KDIpO1xuICBhcnJheS5zZXQoMSk7XG4gIGFycmF5LnNldCgnMicsIDEpO1xuICByZXR1cm4gYXJyYXlbMF0gIT09IDAgfHwgYXJyYXlbMV0gIT09IDI7XG59KTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuc2V0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zZXRcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3NldCcsIGZ1bmN0aW9uIHNldChhcnJheUxpa2UgLyogLCBvZmZzZXQgKi8pIHtcbiAgYVR5cGVkQXJyYXkodGhpcyk7XG4gIHZhciBvZmZzZXQgPSB0b09mZnNldChhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgMSk7XG4gIHZhciBzcmMgPSB0b0luZGV4ZWRPYmplY3QoYXJyYXlMaWtlKTtcbiAgaWYgKFdPUktTX1dJVEhfT0JKRUNUU19BTkRfR0VORVJJQ19PTl9UWVBFRF9BUlJBWVMpIHJldHVybiBjYWxsKCRzZXQsIHRoaXMsIHNyYywgb2Zmc2V0KTtcbiAgdmFyIGxlbmd0aCA9IHRoaXMubGVuZ3RoO1xuICB2YXIgbGVuID0gbGVuZ3RoT2ZBcnJheUxpa2Uoc3JjKTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgaWYgKGxlbiArIG9mZnNldCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1dyb25nIGxlbmd0aCcpO1xuICB3aGlsZSAoaW5kZXggPCBsZW4pIHRoaXNbb2Zmc2V0ICsgaW5kZXhdID0gc3JjW2luZGV4KytdO1xufSwgIVdPUktTX1dJVEhfT0JKRUNUU19BTkRfR0VORVJJQ19PTl9UWVBFRF9BUlJBWVMgfHwgVE9fT0JKRUNUX0JVRyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgdHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBhcnJheVNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxudmFyIEZPUkNFRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzL25vLXR5cGVkLWFycmF5cyAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICBuZXcgSW50OEFycmF5KDEpLnNsaWNlKCk7XG59KTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuc2xpY2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnNsaWNlXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdzbGljZScsIGZ1bmN0aW9uIHNsaWNlKHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxpc3QgPSBhcnJheVNsaWNlKGFUeXBlZEFycmF5KHRoaXMpLCBzdGFydCwgZW5kKTtcbiAgdmFyIEMgPSB0eXBlZEFycmF5U3BlY2llc0NvbnN0cnVjdG9yKHRoaXMpO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgbGVuZ3RoID0gbGlzdC5sZW5ndGg7XG4gIHZhciByZXN1bHQgPSBuZXcgQyhsZW5ndGgpO1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHJlc3VsdFtpbmRleF0gPSBsaXN0W2luZGV4KytdO1xuICByZXR1cm4gcmVzdWx0O1xufSwgRk9SQ0VEKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkc29tZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5zb21lO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnNvbWVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnNvbWVcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3NvbWUnLCBmdW5jdGlvbiBzb21lKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkc29tZShhVHlwZWRBcnJheSh0aGlzKSwgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy1jbGF1c2UnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGFDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNhbGxhYmxlJyk7XG52YXIgaW50ZXJuYWxTb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNvcnQnKTtcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBGRiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC1mZi12ZXJzaW9uJyk7XG52YXIgSUVfT1JfRURHRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC1pcy1pZS1vci1lZGdlJyk7XG52YXIgVjggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW52aXJvbm1lbnQtdjgtdmVyc2lvbicpO1xudmFyIFdFQktJVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbnZpcm9ubWVudC13ZWJraXQtdmVyc2lvbicpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgVWludDE2QXJyYXkgPSBnbG9iYWxUaGlzLlVpbnQxNkFycmF5O1xudmFyIG5hdGl2ZVNvcnQgPSBVaW50MTZBcnJheSAmJiB1bmN1cnJ5VGhpcyhVaW50MTZBcnJheS5wcm90b3R5cGUuc29ydCk7XG5cbi8vIFdlYktpdFxudmFyIEFDQ0VQVF9JTkNPUlJFQ1RfQVJHVU1FTlRTID0gISFuYXRpdmVTb3J0ICYmICEoZmFpbHMoZnVuY3Rpb24gKCkge1xuICBuYXRpdmVTb3J0KG5ldyBVaW50MTZBcnJheSgyKSwgbnVsbCk7XG59KSAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIG5hdGl2ZVNvcnQobmV3IFVpbnQxNkFycmF5KDIpLCB7fSk7XG59KSk7XG5cbnZhciBTVEFCTEVfU09SVCA9ICEhbmF0aXZlU29ydCAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBmZWF0dXJlIGRldGVjdGlvbiBjYW4gYmUgdG9vIHNsb3csIHNvIGNoZWNrIGVuZ2luZXMgdmVyc2lvbnNcbiAgaWYgKFY4KSByZXR1cm4gVjggPCA3NDtcbiAgaWYgKEZGKSByZXR1cm4gRkYgPCA2NztcbiAgaWYgKElFX09SX0VER0UpIHJldHVybiB0cnVlO1xuICBpZiAoV0VCS0lUKSByZXR1cm4gV0VCS0lUIDwgNjAyO1xuXG4gIHZhciBhcnJheSA9IG5ldyBVaW50MTZBcnJheSg1MTYpO1xuICB2YXIgZXhwZWN0ZWQgPSBBcnJheSg1MTYpO1xuICB2YXIgaW5kZXgsIG1vZDtcblxuICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCA1MTY7IGluZGV4KyspIHtcbiAgICBtb2QgPSBpbmRleCAlIDQ7XG4gICAgYXJyYXlbaW5kZXhdID0gNTE1IC0gaW5kZXg7XG4gICAgZXhwZWN0ZWRbaW5kZXhdID0gaW5kZXggLSAyICogbW9kICsgMztcbiAgfVxuXG4gIG5hdGl2ZVNvcnQoYXJyYXksIGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIChhIC8gNCB8IDApIC0gKGIgLyA0IHwgMCk7XG4gIH0pO1xuXG4gIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IDUxNjsgaW5kZXgrKykge1xuICAgIGlmIChhcnJheVtpbmRleF0gIT09IGV4cGVjdGVkW2luZGV4XSkgcmV0dXJuIHRydWU7XG4gIH1cbn0pO1xuXG52YXIgZ2V0U29ydENvbXBhcmUgPSBmdW5jdGlvbiAoY29tcGFyZWZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoeCwgeSkge1xuICAgIGlmIChjb21wYXJlZm4gIT09IHVuZGVmaW5lZCkgcmV0dXJuICtjb21wYXJlZm4oeCwgeSkgfHwgMDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlIC0tIE5hTiBjaGVja1xuICAgIGlmICh5ICE9PSB5KSByZXR1cm4gLTE7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoeCAhPT0geCkgcmV0dXJuIDE7XG4gICAgaWYgKHggPT09IDAgJiYgeSA9PT0gMCkgcmV0dXJuIDEgLyB4ID4gMCAmJiAxIC8geSA8IDAgPyAxIDogLTE7XG4gICAgcmV0dXJuIHggPiB5O1xuICB9O1xufTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuc29ydGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuc29ydFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnc29ydCcsIGZ1bmN0aW9uIHNvcnQoY29tcGFyZWZuKSB7XG4gIGlmIChjb21wYXJlZm4gIT09IHVuZGVmaW5lZCkgYUNhbGxhYmxlKGNvbXBhcmVmbik7XG4gIGlmIChTVEFCTEVfU09SVCkgcmV0dXJuIG5hdGl2ZVNvcnQodGhpcywgY29tcGFyZWZuKTtcblxuICByZXR1cm4gaW50ZXJuYWxTb3J0KGFUeXBlZEFycmF5KHRoaXMpLCBnZXRTb3J0Q29tcGFyZShjb21wYXJlZm4pKTtcbn0sICFTVEFCTEVfU09SVCB8fCBBQ0NFUFRfSU5DT1JSRUNUX0FSR1VNRU5UUyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgdHlwZWRBcnJheVNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuc3ViYXJyYXlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnN1YmFycmF5XG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdzdWJhcnJheScsIGZ1bmN0aW9uIHN1YmFycmF5KGJlZ2luLCBlbmQpIHtcbiAgdmFyIE8gPSBhVHlwZWRBcnJheSh0aGlzKTtcbiAgdmFyIGxlbmd0aCA9IE8ubGVuZ3RoO1xuICB2YXIgYmVnaW5JbmRleCA9IHRvQWJzb2x1dGVJbmRleChiZWdpbiwgbGVuZ3RoKTtcbiAgdmFyIEMgPSB0eXBlZEFycmF5U3BlY2llc0NvbnN0cnVjdG9yKE8pO1xuICByZXR1cm4gbmV3IEMoXG4gICAgTy5idWZmZXIsXG4gICAgTy5ieXRlT2Zmc2V0ICsgYmVnaW5JbmRleCAqIE8uQllURVNfUEVSX0VMRU1FTlQsXG4gICAgdG9MZW5ndGgoKGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogdG9BYnNvbHV0ZUluZGV4KGVuZCwgbGVuZ3RoKSkgLSBiZWdpbkluZGV4KVxuICApO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBhcnJheVNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG5cbnZhciBJbnQ4QXJyYXkgPSBnbG9iYWxUaGlzLkludDhBcnJheTtcbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcbnZhciAkdG9Mb2NhbGVTdHJpbmcgPSBbXS50b0xvY2FsZVN0cmluZztcblxuLy8gaU9TIFNhZmFyaSA2LnggZmFpbHMgaGVyZVxudmFyIFRPX0xPQ0FMRV9TVFJJTkdfQlVHID0gISFJbnQ4QXJyYXkgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAkdG9Mb2NhbGVTdHJpbmcuY2FsbChuZXcgSW50OEFycmF5KDEpKTtcbn0pO1xuXG52YXIgRk9SQ0VEID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gWzEsIDJdLnRvTG9jYWxlU3RyaW5nKCkgIT09IG5ldyBJbnQ4QXJyYXkoWzEsIDJdKS50b0xvY2FsZVN0cmluZygpO1xufSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgSW50OEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5jYWxsKFsxLCAyXSk7XG59KTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnRvbG9jYWxlc3RyaW5nXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCd0b0xvY2FsZVN0cmluZycsIGZ1bmN0aW9uIHRvTG9jYWxlU3RyaW5nKCkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgJHRvTG9jYWxlU3RyaW5nLFxuICAgIFRPX0xPQ0FMRV9TVFJJTkdfQlVHID8gYXJyYXlTbGljZShhVHlwZWRBcnJheSh0aGlzKSkgOiBhVHlwZWRBcnJheSh0aGlzKSxcbiAgICBhcnJheVNsaWNlKGFyZ3VtZW50cylcbiAgKTtcbn0sIEZPUkNFRCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgYXJyYXlUb1JldmVyc2VkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXRvLXJldmVyc2VkJyk7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcbnZhciBnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUudG9SZXZlcnNlZGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUudG9yZXZlcnNlZFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgndG9SZXZlcnNlZCcsIGZ1bmN0aW9uIHRvUmV2ZXJzZWQoKSB7XG4gIHJldHVybiBhcnJheVRvUmV2ZXJzZWQoYVR5cGVkQXJyYXkodGhpcyksIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcih0aGlzKSk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGFycmF5RnJvbUNvbnN0cnVjdG9yQW5kTGlzdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mcm9tLWNvbnN0cnVjdG9yLWFuZC1saXN0Jyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5nZXRUeXBlZEFycmF5Q29uc3RydWN0b3I7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcbnZhciBzb3J0ID0gdW5jdXJyeVRoaXMoQXJyYXlCdWZmZXJWaWV3Q29yZS5UeXBlZEFycmF5UHJvdG90eXBlLnNvcnQpO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS50b1NvcnRlZGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUudG9zb3J0ZWRcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3RvU29ydGVkJywgZnVuY3Rpb24gdG9Tb3J0ZWQoY29tcGFyZUZuKSB7XG4gIGlmIChjb21wYXJlRm4gIT09IHVuZGVmaW5lZCkgYUNhbGxhYmxlKGNvbXBhcmVGbik7XG4gIHZhciBPID0gYVR5cGVkQXJyYXkodGhpcyk7XG4gIHZhciBBID0gYXJyYXlGcm9tQ29uc3RydWN0b3JBbmRMaXN0KGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcihPKSwgTyk7XG4gIHJldHVybiBzb3J0KEEsIGNvbXBhcmVGbik7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsVGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwtdGhpcycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xuXG52YXIgVWludDhBcnJheSA9IGdsb2JhbFRoaXMuVWludDhBcnJheTtcbnZhciBVaW50OEFycmF5UHJvdG90eXBlID0gVWludDhBcnJheSAmJiBVaW50OEFycmF5LnByb3RvdHlwZSB8fCB7fTtcbnZhciBhcnJheVRvU3RyaW5nID0gW10udG9TdHJpbmc7XG52YXIgam9pbiA9IHVuY3VycnlUaGlzKFtdLmpvaW4pO1xuXG5pZiAoZmFpbHMoZnVuY3Rpb24gKCkgeyBhcnJheVRvU3RyaW5nLmNhbGwoe30pOyB9KSkge1xuICBhcnJheVRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGpvaW4odGhpcyk7XG4gIH07XG59XG5cbnZhciBJU19OT1RfQVJSQVlfTUVUSE9EID0gVWludDhBcnJheVByb3RvdHlwZS50b1N0cmluZyAhPT0gYXJyYXlUb1N0cmluZztcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnRvc3RyaW5nXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCd0b1N0cmluZycsIGFycmF5VG9TdHJpbmcsIElTX05PVF9BUlJBWV9NRVRIT0QpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNyZWF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcicpO1xuXG4vLyBgVWludDhBcnJheWAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdHlwZWRhcnJheS1vYmplY3RzXG5jcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IoJ1VpbnQ4JywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFVpbnQ4QXJyYXkoZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKSB7XG4gICAgcmV0dXJuIGluaXQodGhpcywgZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKTtcbiAgfTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFycmF5V2l0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS13aXRoJyk7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgaXNCaWdJbnRBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1iaWctaW50LWFycmF5Jyk7XG52YXIgdG9JbnRlZ2VyT3JJbmZpbml0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyLW9yLWluZmluaXR5Jyk7XG52YXIgdG9CaWdJbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYmlnLWludCcpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IEFycmF5QnVmZmVyVmlld0NvcmUuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yO1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbnZhciBQUk9QRVJfT1JERVIgPSAhIWZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbCwgZXMvbm8tdHlwZWQtYXJyYXlzLCBlcy9uby1hcnJheS1wcm90b3R5cGUtd2l0aCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICAgIG5ldyBJbnQ4QXJyYXkoMSlbJ3dpdGgnXSgyLCB7IHZhbHVlT2Y6IGZ1bmN0aW9uICgpIHsgdGhyb3cgODsgfSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBzb21lIGVhcmx5IGltcGxlbWVudGF0aW9ucywgbGlrZSBXZWJLaXQsIGRvZXMgbm90IGZvbGxvdyB0aGUgZmluYWwgc2VtYW50aWNcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jaGFuZ2UtYXJyYXktYnktY29weS9wdWxsLzg2XG4gICAgcmV0dXJuIGVycm9yID09PSA4O1xuICB9XG59KCk7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLndpdGhgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLndpdGhcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3dpdGgnLCB7ICd3aXRoJzogZnVuY3Rpb24gKGluZGV4LCB2YWx1ZSkge1xuICB2YXIgTyA9IGFUeXBlZEFycmF5KHRoaXMpO1xuICB2YXIgcmVsYXRpdmVJbmRleCA9IHRvSW50ZWdlck9ySW5maW5pdHkoaW5kZXgpO1xuICB2YXIgYWN0dWFsVmFsdWUgPSBpc0JpZ0ludEFycmF5KE8pID8gdG9CaWdJbnQodmFsdWUpIDogK3ZhbHVlO1xuICByZXR1cm4gYXJyYXlXaXRoKE8sIGdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcihPKSwgcmVsYXRpdmVJbmRleCwgYWN0dWFsVmFsdWUpO1xufSB9Wyd3aXRoJ10sICFQUk9QRVJfT1JERVIpO1xuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiaW1wb3J0IHsgbm9ybWFsUGl4ZWwsIGdldERhdGUsIGZpbmRDb21wb25lbnQsIGlzUGF0Y2hDb21wb25lbnQsIGdldENvbmZpZ09wdGlvbnMgfSBmcm9tICcuL2NvbW1vbi5qcydcblxuZXhwb3J0IGNvbnN0IE1PREUgPSB7XG4gIE9QRVJBVEU6ICdvcGVyYXRlJyxcbiAgREVUQUlMOiAnZGV0YWlsJyxcbiAgTE9HOiAnbG9nJ1xufVxuZXhwb3J0IGNvbnN0IEFSR19GTEFHUyA9IHtcbiAgQ1VSUkVOVF9EQVRFOiAnX2N1cnJlbnREYXRlJyxcbiAgUkVGX1ZBTDogJ19yZWZWYWwnXG59XG5leHBvcnQgY29uc3QgTk9UX0xPR19FRkZFQ1RfVFlQRSA9IFsnQ3VzdG9tQ29tcG9uZW50VGFicycsICdDdXN0b21Db21wb25lbnRUYWJQYW5lJywgJ0N1c3RvbUNvbXBvbmVudEN5Y2xlVGFiUGFuZScsICdDdXN0b21Db21wb25lbnRDb2xsYXBzZScsICdDdXN0b21Db21wb25lbnRUYWJQYW5lSDUnXVxuZXhwb3J0IGNvbnN0IEZPUk1fTUVUQV9UWVBFID0gJ0N1c3RvbUNvbXBvbmVudEZvcm1MYXlvdXQnXG5leHBvcnQgY29uc3QgRk9STV9NRVRBX1RZUEVfSDUgPSAnQ3VzdG9tQ29tcG9uZW50Rm9ybUxheW91dEg1J1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfUEVERElOR19UWVBFID0gWydDdXN0b21Db21wb25lbnREaWFsb2cnXVxuZXhwb3J0IGNvbnN0IE5PVF9ORUVEX0ZPUk1fSVRFTV9NRVRBX1RZUEUgPSBbXG4gICdDdXN0b21Db21wb25lbnRUYWJzJyxcbiAgJ0N1c3RvbUNvbXBvbmVudFRhYlBhbmUnLFxuICAnQ3VzdG9tQ29tcG9uZW50Q3ljbGVUYWJQYW5lJyxcbiAgJ0N1c3RvbUNvbXBvbmVudENvbGxhcHNlJyxcbiAgJ0N1c3RvbUNvbXBvbmVudERpYWxvZycsXG4gICdFbEJ1dHRvbicsXG4gICdDdXN0b21Db21wb25lbnRUYWJsZScsXG4gICdDdXN0b21Db21wb25lbnRSb3cnLFxuICAnQ3VzdG9tQ29tcG9uZW50Q29sJyxcblxuICAnQ3VzdG9tQ29tcG9uZW50Q2FyZEg1JyxcbiAgJ0N1c3RvbUNvbXBvbmVudENvbGxhcHNlSDUnLFxuICAnQ3VzdG9tQ29tcG9uZW50VGFic0g1JyxcbiAgJ0N1c3RvbUNvbXBvbmVudFRhYlBhbmVINScsXG4gICdDdXN0b21Db21wb25lbnRUYWJsZUg1JyxcbiAgJ2NtaS1jZWxsJyxcbiAgJ2NtaS1idXR0b24nLFxuICAnY21pLWxpbmsnLFxuICAnY21pLWRyb3Bkb3duLW1lbnUnLFxuICAnY21pLWRpdmlkZXInXG5dXG5leHBvcnQgY29uc3QgTk9UX05FRURfQ09MX0lURU1fTUVUQV9UWVBFID0gWydDdXN0b21Db21wb25lbnRUYWJQYW5lJywgJ0N1c3RvbUNvbXBvbmVudERpYWxvZycsICdDdXN0b21Db21wb25lbnRDb2wnLCAnQ3VzdG9tQ29tcG9uZW50VGFiUGFuZUg1J11cbmV4cG9ydCBjb25zdCBNVUxUSV9QQUdFX01FVEFfTElTVF9UWVBFUyA9IFsnQ3VzdG9tQ29tcG9uZW50VGFibGUnXVxuZXhwb3J0IGNvbnN0IFNQRUNJQUxfU0VUX0ZVTExfV0lEVEhfSVRFTV9NRVRBX1RZUEUgPSBbJ2VsLXNlbGVjdCcsICdlbC1kYXRlLXBpY2tlcicsICdlbC10aW1lLXBpY2tlcicsICdlbC10aW1lLXNlbGVjdCcsICdlbC1jYXNjYWRlcicsICdlbC1pbnB1dC1udW1iZXInLCAnQ3VzdG9tQ29tcG9uZW50VHJlZScsICdDdXN0b21Db21wb25lbnRTdGVwcyddXG5leHBvcnQgY29uc3QgVEFCTEVfQ09MVU1OX05PVF9SRU5ERVJfTUVUQV9UWVBFID0gWydlbC1zcGFuJ11cbmV4cG9ydCBjb25zdCBQUkVGSVhfRkxBRyA9ICdlbC0nXG5leHBvcnQgY29uc3QgUkVQTEFDRV9QUkVGSVhfRkxBRyA9ICd0LSdcbmV4cG9ydCBjb25zdCBINV9QUkVGSVhfRkxBRyA9ICdjbWktJ1xuZXhwb3J0IGNvbnN0IEg1X1JFUExBQ0VfUFJFRklYX0ZMQUcgPSAnSDUtJ1xuZXhwb3J0IGNvbnN0IERJU1BMQVlfU0hPVyA9ICcxJ1xuZXhwb3J0IGNvbnN0IERJU1BMQVlfSElEREVOID0gJzAnXG5leHBvcnQgY29uc3QgUExBSU5fVFlQRV9BTE9OR19DT0xVTU5TID0gWydFbFRleHQnXVxuZXhwb3J0IGNvbnN0IFBMQUlOX1RZUEVfQ09MVU1OUyA9IFsnRWxJbnB1dCcsICdFbERhdGVQaWNrZXInLCAnRWxJbnB1dE51bWJlciddXG5leHBvcnQgY29uc3QgUExBSU5fVFlQRV9PUFRJT05TX0NPTFVNTlMgPSBbJ0VsU2VsZWN0J11cbmV4cG9ydCBjb25zdCBNQUlMX1NFTkRfVVJMID0gJy9nY3dlYi9FeHRlcm5hbF9NYWlsJ1xuZXhwb3J0IGNvbnN0IGNvbW1vblByb3BzVHlwZSA9IHtcbiAgLy8g6L+Z6L655piv57uE5Lu255qE5L+h5oGvXG4gIGNvbXBJbmZvOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBjb25maWdcbiAgICB9XG4gIH0sXG4gIG1vZGVsVmFsdWU6IHtcbiAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXIsIE9iamVjdCwgQXJyYXksIHVuZGVmaW5lZCwgbnVsbF0sXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIG1vZGVsVmFsdWUudmFsdWVcbiAgICB9XG4gIH0sXG4gIC8vIOi/mei+ueaYr+e7hOS7tueahOS/oeaBr1xuICBjb25maWc6IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH1cbiAgfSxcbiAgLy8g57uE5Lu25a+55bqU55qEcmVm55qE5YC8XG4gIHJlZlZhbHVlOiB7XG4gICAgdHlwZTogW09iamVjdCwgTnVtYmVyLCBTdHJpbmddLFxuICAgIGRlZmF1bHQ6ICcnLFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBtb2RlbFZhbHVlXG4gICAgfVxuICB9LFxuICAvLyDnu4Tku7bmmK/lkKbnpoHnlKhcbiAgZGlzYWJsZWQ6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBjYWxjRGlzYWJsZShjb25maWcsIHByb3BzLm1vZGUpXG4gICAgfVxuICB9LFxuICAvLyDnu4Tku7bmmK/lkKblj6/muIXpmaRcbiAgY2xlYXJhYmxlOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNsZWFyYWJsZUZsYWcgPT09ICcxJ1xuICAgIH1cbiAgfSxcbiAgLy8g57uE5Lu25piv5ZCm5b+F5aGrXG4gIHJlcXVpcmVkOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlKSB7XG4gICAgICByZXR1cm4gY29uZmlnLnJlcXVpcmVkRmxhZyA9PT0gJzEnXG4gICAgfVxuICB9LFxuICAvLyDnu4Tku7bmmK/lkKblsZXnpLrlv4XloavmoIfor4ZcbiAgb25seVJlcXVpcmVkRmxhZzoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5vbmx5UmVxdWlyZWRGbGFnXG4gICAgfVxuICB9LFxuICAvLyDooajmoLzlvJXnlKjliLDnu4Tku7bnmoTml7blgJnvvIzkvJrkvKDlhaXooajmoLzmlbDmja5cbiAgdGFibGVEYXRhOiB7XG4gICAgdHlwZTogQXJyYXksXG4gICAgZGVmYXVsdDogKCkgPT4gW10sXG4gICAgZ2V0VmFsdWUoY29uZmlnLCBwcm9wcywgbW9kZWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIHByb3BzLnRhYmxlRGF0YVxuICAgIH1cbiAgfSxcbiAgLy8g6KGo5qC85byV55So5Yiw57uE5Lu255qE5pe25YCZ77yM5Lya5Lyg5YWlIHJvdyDot58gaW5kZXgg55qE6ZuG5ZCIXG4gIHJvd1Njb3BlOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIHJldHVybiBwcm9wcy5yb3dTY29wZVxuICAgIH1cbiAgfSxcbiAgd2lkdGg6IHtcbiAgICB0eXBlOiBbU3RyaW5nLCBOdW1iZXJdLFxuICAgIGRlZmF1bHQ6ICcnLFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUpIHtcbiAgICAgIGlmICghY29uZmlnLndpZHRoKSByZXR1cm4gbnVsbFxuICAgICAgcmV0dXJuIG5vcm1hbFBpeGVsKGNvbmZpZy53aWR0aClcbiAgICB9XG4gIH0sXG4gIG1vZGU6IHtcbiAgICB0eXBlOiBbU3RyaW5nXSxcbiAgICBkZWZhdWx0OiAnJyxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCkge1xuICAgICAgcmV0dXJuIHByb3BzLm1vZGVcbiAgICB9XG4gIH0sXG4gIG9wdGlvbnM6IHtcbiAgICB0eXBlOiBBcnJheSxcbiAgICBkZWZhdWx0OiAoKSA9PiBbXSxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlLCBzZWxlY3RzKSB7XG4gICAgICByZXR1cm4gZ2V0Q29uZmlnT3B0aW9ucyhjb25maWcsIHNlbGVjdHMpXG4gICAgfVxuICB9LFxuICBwbGFjZWhvbGRlcjoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAoKSA9PiBbXSxcbiAgICBnZXRWYWx1ZShjb25maWcsIHByb3BzLCBtb2RlbFZhbHVlLCBzZWxlY3RzLCBsYW5nKSB7XG4gICAgICByZXR1cm4gKGxhbmc/LmluZGV4T2YoJ3poJykgPiAtMSA/IGNvbmZpZy5kZWZQbGFjZWhvbGQgOiBjb25maWcuZGVmUGxhY2Vob2xkRW4pIHx8ICcnXG4gICAgfVxuICB9LFxuICBwbGFjZWhvbGRlckVuOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICgpID0+IFtdLFxuICAgIGdldFZhbHVlKGNvbmZpZywgcHJvcHMsIG1vZGVsVmFsdWUsIHNlbGVjdHMsIGxhbmcpIHtcbiAgICAgIHJldHVybiBjb25maWcuZGVmUGxhY2Vob2xkRW5cbiAgICB9XG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYWxjRGlzYWJsZShjb25maWcsIG1vZGUpIHtcbiAgY29uc3Qgc3BlY2ljZXNUeXBlID0gW1xuICAgICdDdXN0b21Db21wb25lbnRUYWJzJyxcbiAgICAvLyAnQ3VzdG9tQ29tcG9uZW50VGFiUGFuZScgLy8g5pyJ6ZyA6KaB6ZyA5qC55o2u6YWN572u5p2l6L+b6KGM6YWN572u5piv5ZCm56aB55SoXG4gIF1cbiAgY29uc3QgZmxhZyA9IGlzUGF0Y2hDb21wb25lbnQoc3BlY2ljZXNUeXBlLCBjb25maWcpID9cbiAgICBmYWxzZSA6XG4gICAgbW9kZSA9PT0gTU9ERS5MT0cgP1xuICAgICAgKFxuICAgICAgICBjb25maWcubG9nQWxvbmcgfHwgaXNQYXRjaENvbXBvbmVudChbRk9STV9NRVRBX1RZUEUsIC4uLk5PVF9MT0dfRUZGRUNUX1RZUEVdLCBjb25maWcpID9cbiAgICAgICAgICBjb25maWcuZWRpdEZsYWcgPT09ICcwJyA6XG4gICAgICAgICAgdHJ1ZVxuICAgICAgKSA6XG4gICAgICBtb2RlID09PSBNT0RFLkRFVEFJTCA/XG4gICAgICAgIChjb25maWcuZGV0YWlsQWxvbmcgfHwgaXNQYXRjaENvbXBvbmVudChbRk9STV9NRVRBX1RZUEUsIC4uLk5PVF9MT0dfRUZGRUNUX1RZUEVdLCBjb25maWcpID9cbiAgICAgICAgICBjb25maWcuZWRpdEZsYWcgPT09ICcwJyA6XG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApIDpcbiAgICAgICAgY29uZmlnLmVkaXRGbGFnID09PSAnMCdcbiAgcmV0dXJuIGZsYWdcbn1cblxuZXhwb3J0IGNvbnN0IE1FVEFfVFlQRV9NQVAgPSB7XG4gIHJvdzogJ0N1c3RvbUNvbXBvbmVudFJvdycsXG4gIGdyaWQ6ICdDdXN0b21Db21wb25lbnRSb3cnLFxuICAnZ3JpZC1jb2wnOiAnQ3VzdG9tQ29tcG9uZW50Q29sJyxcbiAgdGFibGU6ICdDdXN0b21Db21wb25lbnRUYWJsZScsXG4gICdjaGVja2JveC10YWJsZSc6ICdDdXN0b21Db21wb25lbnRUYWJsZScsXG4gIHRhYjogJ0N1c3RvbUNvbXBvbmVudFRhYnMnLFxuICAndGFiLXBhbmUnOiAnQ3VzdG9tQ29tcG9uZW50VGFiUGFuZScsXG4gIGNvbGxhcHNlOiAnQ3VzdG9tQ29tcG9uZW50Q29sbGFwc2UnLFxuICAnY2FyZCc6ICdDdXN0b21Db21wb25lbnRDb2xsYXBzZScsXG4gIGN5Y2xlOiAnQ3VzdG9tQ29tcG9uZW50Q3ljbGUnLFxuICAnaW5wdXQnOiAnRWxJbnB1dCcsXG4gICd0ZXh0YXJlYSc6ICdFbElucHV0JyxcbiAgJ2J1dHRvbic6ICdFbEJ1dHRvbicsXG4gICdzdGF0aWMtdGV4dCc6ICdFbFRleHQnLFxuICAnbnVtYmVyJzogJ0VsSW5wdXROdW1iZXInLFxuICAncmFkaW8nOiAnRWxSYWRpbycsXG4gICdjaGVja2JveCc6ICdFbENoZWNrYm94JyxcbiAgJ3NlbGVjdCc6ICdFbFNlbGVjdCcsXG4gICd0aW1lJzogJ0VsVGltZVBpY2tlcicsXG4gICd0aW1lLXJhbmdlJzogJ0VsVGltZVBpY2tlcicsXG4gICdkYXRlJzogJ0VsRGF0ZVBpY2tlcicsXG4gICdkYXRlLXJhbmdlJzogJ0VsRGF0ZVBpY2tlcicsXG4gICdjYXNjYWRlcic6ICdFbENhc2NhZGVyJyxcbiAgJ3NlbGVjdC1lbXBsb3llZXMnOiAnQ3VzdG9tQ29tcG9uZW50U2VsZWN0RW1wbG95ZWVzJyxcbiAgJ3JpY2gtZWRpdG9yJzogJ0N1c3RvbUNvbXBvbmVudEVkaXRvcicsXG4gICdwYWdpbmF0aW9uJzogJ0VsUGFnaW5hdGlvbicsXG4gICd0cmVlJzogJ0N1c3RvbUNvbXBvbmVudFRyZWUnLFxuICAnc3RlcHMnOiAnQ3VzdG9tQ29tcG9uZW50U3RlcHMnLFxuICAnbWFpbC1zZW5kJzogJ0N1c3RvbUNvbXBvbmVudFNlbmRNYWlsJyxcblxuICAnY21pLWNhcmQnOiAnQ3VzdG9tQ29tcG9uZW50Q2FyZEg1JyxcbiAgJ2NtaS1jb2xsYXBzZSc6ICdDdXN0b21Db21wb25lbnRDb2xsYXBzZUg1JyxcbiAgJ2NtaS10YWInOiAnQ3VzdG9tQ29tcG9uZW50VGFic0g1JyxcbiAgJ2NtaS10YWItcGFuZSc6ICdDdXN0b21Db21wb25lbnRUYWJQYW5lSDUnLFxuICAnY21pLXRhYmxlJzogJ0N1c3RvbUNvbXBvbmVudFRhYmxlSDUnLFxuICAnY21pLWRhdGV0aW1lJzogJ0NtaURhdGV0aW1lUGlja2VyJyxcbn1cblxuZXhwb3J0IHtcbiAgY29tbW9uUHJvcHNUeXBlIGFzIGNvbXBvbmVudFByb3BzVHlwZVxufVxuIl0sIm5hbWVzIjpbImNhY2hlZCIsImZuIiwiY2FjaGUiLCJfT2JqZWN0JGNyZWF0ZSIsInN0ciIsIm5vcm1hbFBpeGVsIiwicGl4ZWwiLCJ3aWR0aCIsIk51bWJlciIsImlzTmFOIiwiZW5kRmxhZ3MiLCJmaW5kRmxhZyIsIl9maW5kSW5zdGFuY2VQcm9wZXJ0eSIsImNhbGwiLCJmbGFnIiwiX2VuZHNXaXRoSW5zdGFuY2VQcm9wZXJ0eSIsIl9wYXJzZUludCIsImNhbWVsaXplUkUiLCJjYW1lbGl6ZSIsInJlcGxhY2UiLCJfIiwiYyIsInRvVXBwZXJDYXNlIiwiY2FwaXRhbGl6ZSIsImNoYXJBdCIsIl9zbGljZUluc3RhbmNlUHJvcGVydHkiLCJmaW5kQ29tcG9uZW50IiwiY29tcHMiLCJjb21wIiwicmVzb2x2ZUlkeCIsImNvbXBvbmVudHMiLCJpZCIsImFzc2V0cyIsInVuZGVmaW5lZCIsImNhbWVsaXplZElkIiwiUGFzY2FsQ2FzZUlkIiwicmVzb2x2ZUFzc2V0Q29tcG9uZW50cyIsIl9yZWR1Y2VJbnN0YW5jZVByb3BlcnR5IiwicmV0Iiwia2V5IiwiaWR4IiwiaXNQYXRjaENvbXBvbmVudCIsImNvbmZpZyIsInJlbmRlcmJ5IiwibWV0YVR5cGUiLCJnZXRDb25maWdPcHRpb25zIiwic2VsZWN0cyIsIl9zZWxlY3RzJHZhbHVlIiwiX3NlbGVjdHMkdmFsdWUyIiwiX3NlbGVjdHMkdmFsdWUzIiwicmVmZXJlbmNlT3B0aW9ucyIsInNlbGVjdEtleSIsIm9wdGlvbkl0ZW1zTGlzdCIsIl9jb250ZXh0NSIsIl9tYXBJbnN0YW5jZVByb3BlcnR5IiwiSlNPTiIsInBhcnNlIiwib3B0aW9uSXRlbXMiLCJpdGVtIiwiY29sdW1uVmFsdWUiLCJ2YWx1ZSIsImNvbHVtbkRlc2NfemgiLCJsYWJlbCIsImNvbHVtbkRlc2MiLCJsYWJlbF9lbiIsImNvbHVtblN0YXR1cyIsImVycm9yIiwiY29uY2F0IiwibWV0YUNvZGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsIm1vZHVsZSIsImV4cG9ydHMiLCJwYXRoIiwiQXJyYXkiLCJpc0FycmF5IiwiZ2V0QnVpbHRJblByb3RvdHlwZU1ldGhvZCIsImlzUHJvdG90eXBlT2YiLCJtZXRob2QiLCJBcnJheVByb3RvdHlwZSIsIml0Iiwib3duIiwiU3RyaW5nUHJvdG90eXBlIiwiU3RyaW5nIiwiZW5kc1dpdGgiLCJmaW5kIiwiaW5kZXhPZiIsIm1hcCIsInJlZHVjZSIsInNsaWNlIiwidHJpbSIsIlAiLCJEIiwiY3JlYXRlIiwia2V5cyIsInBhcnNlSW50IiwiaXNDYWxsYWJsZSIsInRyeVRvU3RyaW5nIiwiJFR5cGVFcnJvciIsIlR5cGVFcnJvciIsImFyZ3VtZW50IiwiaXNPYmplY3QiLCIkU3RyaW5nIiwiJGZvckVhY2giLCJTVFJJQ1RfTUVUSE9EIiwiYXJyYXlNZXRob2RJc1N0cmljdCIsImZvckVhY2giLCJjYWxsYmFja2ZuIiwidGhpcyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInRvSW5kZXhlZE9iamVjdCIsInRvQWJzb2x1dGVJbmRleCIsImxlbmd0aE9mQXJyYXlMaWtlIiwiY3JlYXRlTWV0aG9kIiwiSVNfSU5DTFVERVMiLCIkdGhpcyIsImVsIiwiZnJvbUluZGV4IiwiTyIsImluZGV4IiwiaW5jbHVkZXMiLCJiaW5kIiwidW5jdXJyeVRoaXMiLCJJbmRleGVkT2JqZWN0IiwidG9PYmplY3QiLCJhcnJheVNwZWNpZXNDcmVhdGUiLCJwdXNoIiwiVFlQRSIsIklTX01BUCIsIklTX0ZJTFRFUiIsIklTX1NPTUUiLCJJU19FVkVSWSIsIklTX0ZJTkRfSU5ERVgiLCJJU19GSUxURVJfUkVKRUNUIiwiTk9fSE9MRVMiLCJ0aGF0Iiwic3BlY2lmaWNDcmVhdGUiLCJyZXN1bHQiLCJzZWxmIiwiYm91bmRGdW5jdGlvbiIsInRhcmdldCIsImZpbHRlciIsInNvbWUiLCJldmVyeSIsImZpbmRJbmRleCIsImZpbHRlclJlamVjdCIsImZhaWxzIiwid2VsbEtub3duU3ltYm9sIiwiVjhfVkVSU0lPTiIsIlNQRUNJRVMiLCJNRVRIT0RfTkFNRSIsImFycmF5IiwiY29uc3RydWN0b3IiLCJmb28iLCJCb29sZWFuIiwiYUNhbGxhYmxlIiwiUkVEVUNFX0VNUFRZIiwiSVNfUklHSFQiLCJhcmd1bWVudHNMZW5ndGgiLCJtZW1vIiwiaSIsImxlZnQiLCJyaWdodCIsImlzQ29uc3RydWN0b3IiLCIkQXJyYXkiLCJvcmlnaW5hbEFycmF5IiwiQyIsImFycmF5U3BlY2llc0NvbnN0cnVjdG9yIiwidG9TdHJpbmciLCJzdHJpbmdTbGljZSIsIlRPX1NUUklOR19UQUdfU1VQUE9SVCIsImNsYXNzb2ZSYXciLCJUT19TVFJJTkdfVEFHIiwiJE9iamVjdCIsIkNPUlJFQ1RfQVJHVU1FTlRTIiwidGFnIiwidHJ5R2V0IiwiY2FsbGVlIiwiTUFUQ0giLCJyZWdleHAiLCJlcnJvcjEiLCJlcnJvcjIiLCJERVNDUklQVE9SUyIsImRlZmluZVByb3BlcnR5TW9kdWxlIiwiY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yIiwib2JqZWN0IiwiZiIsImJpdG1hcCIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImdsb2JhbFRoaXMiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImRvY3VtZW50IiwiRVhJU1RTIiwiY3JlYXRlRWxlbWVudCIsIkVOVklST05NRU5UIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwibWF0Y2giLCJ2ZXJzaW9uIiwicHJvY2VzcyIsIkRlbm8iLCJ2ZXJzaW9ucyIsInY4Iiwic3BsaXQiLCJjbGFzc29mIiwidXNlckFnZW50U3RhcnRzV2l0aCIsInN0cmluZyIsIkJ1biIsIndpbmRvdyIsImFwcGx5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiaXNGb3JjZWQiLCJjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkiLCJoYXNPd24iLCJ3cmFwQ29uc3RydWN0b3IiLCJOYXRpdmVDb25zdHJ1Y3RvciIsIldyYXBwZXIiLCJhIiwiYiIsIm9wdGlvbnMiLCJzb3VyY2UiLCJGT1JDRUQiLCJVU0VfTkFUSVZFIiwiVklSVFVBTF9QUk9UT1RZUEUiLCJzb3VyY2VQcm9wZXJ0eSIsInRhcmdldFByb3BlcnR5IiwibmF0aXZlUHJvcGVydHkiLCJyZXN1bHRQcm9wZXJ0eSIsImRlc2NyaXB0b3IiLCJUQVJHRVQiLCJHTE9CQUwiLCJnbG9iYWwiLCJTVEFUSUMiLCJzdGF0IiwiUFJPVE8iLCJwcm90byIsIm5hdGl2ZVNvdXJjZSIsInRhcmdldFByb3RvdHlwZSIsImZvcmNlZCIsImRvbnRDYWxsR2V0U2V0Iiwid3JhcCIsInNoYW0iLCJyZWFsIiwiZXhlYyIsIk5BVElWRV9CSU5EIiwiRnVuY3Rpb25Qcm90b3R5cGUiLCJGdW5jdGlvbiIsIlJlZmxlY3QiLCJ0ZXN0IiwiZ2V0RGVzY3JpcHRvciIsIlBST1BFUiIsIm5hbWUiLCJDT05GSUdVUkFCTEUiLCJ1bmN1cnJ5VGhpc1dpdGhCaW5kIiwiQ09OU1RSVUNUT1IiLCJNRVRIT0QiLCJOYW1lc3BhY2UiLCJwdXJlTWV0aG9kIiwiTmF0aXZlUHJvdG90eXBlIiwiYUZ1bmN0aW9uIiwidmFyaWFibGUiLCJuYW1lc3BhY2UiLCJpc051bGxPclVuZGVmaW5lZCIsIlYiLCJmdW5jIiwiY2hlY2siLCJNYXRoIiwiZyIsImdldEJ1aWx0SW4iLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInN0b3JlIiwiZnVuY3Rpb25Ub1N0cmluZyIsImluc3BlY3RTb3VyY2UiLCJkb2N1bWVudEFsbCIsImFsbCIsIm5vb3AiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvclJlZ0V4cCIsIklOQ09SUkVDVF9UT19TVFJJTkciLCJpc0NvbnN0cnVjdG9yTW9kZXJuIiwiaXNDb25zdHJ1Y3RvckxlZ2FjeSIsImNhbGxlZCIsInJlcGxhY2VtZW50IiwiZmVhdHVyZSIsImRldGVjdGlvbiIsImRhdGEiLCJub3JtYWxpemUiLCJQT0xZRklMTCIsIk5BVElWRSIsInRvTG93ZXJDYXNlIiwiaXNSZWdFeHAiLCJVU0VfU1lNQk9MX0FTX1VJRCIsIiRTeW1ib2wiLCJ0b0xlbmd0aCIsIm9iaiIsImNlaWwiLCJmbG9vciIsInRydW5jIiwieCIsIm4iLCJ3aGl0ZXNwYWNlcyIsIiRwYXJzZUludCIsIlN5bWJvbCIsIklURVJBVE9SIiwiaXRlcmF0b3IiLCJoZXgiLCJyYWRpeCIsIlMiLCJhY3RpdmVYRG9jdW1lbnQiLCJhbk9iamVjdCIsImRlZmluZVByb3BlcnRpZXNNb2R1bGUiLCJlbnVtQnVnS2V5cyIsImhpZGRlbktleXMiLCJodG1sIiwiZG9jdW1lbnRDcmVhdGVFbGVtZW50Iiwic2hhcmVkS2V5IiwiUFJPVE9UWVBFIiwiU0NSSVBUIiwiSUVfUFJPVE8iLCJFbXB0eUNvbnN0cnVjdG9yIiwic2NyaXB0VGFnIiwiY29udGVudCIsIkxUIiwiTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCIsIndyaXRlIiwiY2xvc2UiLCJ0ZW1wIiwicGFyZW50V2luZG93IiwiTnVsbFByb3RvT2JqZWN0IiwiQWN0aXZlWE9iamVjdCIsImlmcmFtZURvY3VtZW50IiwiaWZyYW1lIiwiSlMiLCJkb21haW4iLCJzdHlsZSIsImRpc3BsYXkiLCJhcHBlbmRDaGlsZCIsInNyYyIsImNvbnRlbnRXaW5kb3ciLCJvcGVuIiwiRiIsIlByb3BlcnRpZXMiLCJWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyIsIm9iamVjdEtleXMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvcHMiLCJJRThfRE9NX0RFRklORSIsInRvUHJvcGVydHlLZXkiLCIkZGVmaW5lUHJvcGVydHkiLCIkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiRU5VTUVSQUJMRSIsIldSSVRBQkxFIiwiQXR0cmlidXRlcyIsImN1cnJlbnQiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSIsIm5hbWVzIiwiaW50ZXJuYWxPYmplY3RLZXlzIiwiJHByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTkFTSE9STl9CVUciLCJpbnB1dCIsInByZWYiLCJ2YWwiLCJ2YWx1ZU9mIiwic2hhcmVkIiwidWlkIiwiSVNfUFVSRSIsImRlZmluZUdsb2JhbFByb3BlcnR5IiwiU0hBUkVEIiwibW9kZSIsImNvcHlyaWdodCIsImxpY2Vuc2UiLCJQUk9QRVJfRlVOQ1RJT05fTkFNRSIsInJlcXVpcmVPYmplY3RDb2VyY2libGUiLCJsdHJpbSIsIlJlZ0V4cCIsInJ0cmltIiwic3RhcnQiLCJlbmQiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2wiLCJ0b0ludGVnZXJPckluZmluaXR5IiwibWF4IiwibWluIiwiaW50ZWdlciIsIm51bWJlciIsImxlbiIsImlzU3ltYm9sIiwiZ2V0TWV0aG9kIiwib3JkaW5hcnlUb1ByaW1pdGl2ZSIsIlRPX1BSSU1JVElWRSIsImV4b3RpY1RvUHJpbSIsInRvUHJpbWl0aXZlIiwicG9zdGZpeCIsInJhbmRvbSIsIk5BVElWRV9TWU1CT0wiLCJXZWxsS25vd25TeW1ib2xzU3RvcmUiLCJjcmVhdGVXZWxsS25vd25TeW1ib2wiLCJ3aXRob3V0U2V0dGVyIiwiJCIsImRvZXNOb3RFeGNlZWRTYWZlSW50ZWdlciIsImNyZWF0ZVByb3BlcnR5IiwiYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCIsIklTX0NPTkNBVF9TUFJFQURBQkxFIiwiSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCIsImlzQ29uY2F0U3ByZWFkYWJsZSIsInNwcmVhZGFibGUiLCJhcml0eSIsImFyZyIsImsiLCJFIiwiQSIsIiRmaW5kIiwiYWRkVG9VbnNjb3BhYmxlcyIsIkZJTkQiLCJTS0lQU19IT0xFUyIsIiRpbmRleE9mIiwibmF0aXZlSW5kZXhPZiIsIk5FR0FUSVZFX1pFUk8iLCJzZWFyY2hFbGVtZW50IiwiJG1hcCIsIiRyZWR1Y2UiLCJDSFJPTUVfVkVSU0lPTiIsIm5hdGl2ZVNsaWNlIiwiSEFTX1NQRUNJRVNfU1VQUE9SVCIsIkNvbnN0cnVjdG9yIiwiZmluIiwibmF0aXZlS2V5cyIsIm5vdEFSZWdFeHAiLCJjb3JyZWN0SXNSZWdFeHBMb2dpYyIsIkNPUlJFQ1RfSVNfUkVHRVhQX0xPR0lDIiwic2VhcmNoU3RyaW5nIiwiZW5kUG9zaXRpb24iLCJzZWFyY2giLCIkdHJpbSIsImZvcmNlZFN0cmluZ1RyaW1NZXRob2QiLCJwYXJlbnQiLCJET01JdGVyYWJsZXMiLCJET01Ub2tlbkxpc3QiLCJOb2RlTGlzdCIsImlzUG9zc2libGVQcm90b3R5cGUiLCJVTlNDT1BBQkxFUyIsInVuaWNvZGUiLCJQcm90b3R5cGUiLCJBcnJheUJ1ZmZlciIsIkRhdGFWaWV3IiwidW5jdXJyeVRoaXNBY2Nlc3NvciIsImJ5dGVMZW5ndGgiLCJhcnJheUJ1ZmZlckJ5dGVMZW5ndGgiLCJBcnJheUJ1ZmZlclByb3RvdHlwZSIsImlzRGV0YWNoZWQiLCJ0b0luZGV4Iiwibm90RGV0YWNoZWQiLCJkZXRhY2hUcmFuc2ZlcmFibGUiLCJQUk9QRVJfU1RSVUNUVVJFRF9DTE9ORV9UUkFOU0ZFUiIsInN0cnVjdHVyZWRDbG9uZSIsIkRhdGFWaWV3UHJvdG90eXBlIiwiaXNSZXNpemFibGUiLCJtYXhCeXRlTGVuZ3RoIiwiZ2V0SW50OCIsInNldEludDgiLCJhcnJheUJ1ZmZlciIsIm5ld0xlbmd0aCIsInByZXNlcnZlUmVzaXphYmlsaXR5IiwibmV3QnVmZmVyIiwibmV3Qnl0ZUxlbmd0aCIsImZpeGVkTGVuZ3RoIiwidHJhbnNmZXIiLCJjb3B5TGVuZ3RoIiwiTkFNRSIsIk5BVElWRV9BUlJBWV9CVUZGRVIiLCJkZWZpbmVCdWlsdEluIiwiZGVmaW5lQnVpbHRJbkFjY2Vzc29yIiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsIkludGVybmFsU3RhdGVNb2R1bGUiLCJlbmZvcmNlSW50ZXJuYWxTdGF0ZSIsImVuZm9yY2UiLCJnZXRJbnRlcm5hbFN0YXRlIiwiSW50OEFycmF5IiwiSW50OEFycmF5UHJvdG90eXBlIiwiVWludDhDbGFtcGVkQXJyYXkiLCJVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSIsIlR5cGVkQXJyYXkiLCJUeXBlZEFycmF5UHJvdG90eXBlIiwiT2JqZWN0UHJvdG90eXBlIiwiVFlQRURfQVJSQVlfVEFHIiwiVFlQRURfQVJSQVlfQ09OU1RSVUNUT1IiLCJOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTIiwib3BlcmEiLCJUWVBFRF9BUlJBWV9UQUdfUkVRVUlSRUQiLCJUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCIsIlVpbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiVWludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJCaWdJbnRBcnJheUNvbnN0cnVjdG9yc0xpc3QiLCJCaWdJbnQ2NEFycmF5IiwiQmlnVWludDY0QXJyYXkiLCJnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IiLCJzdGF0ZSIsImlzVHlwZWRBcnJheSIsImtsYXNzIiwiYVR5cGVkQXJyYXkiLCJhVHlwZWRBcnJheUNvbnN0cnVjdG9yIiwiZXhwb3J0VHlwZWRBcnJheU1ldGhvZCIsIktFWSIsInByb3BlcnR5IiwiQVJSQVkiLCJUeXBlZEFycmF5Q29uc3RydWN0b3IiLCJleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kIiwiaXNWaWV3IiwiRnVuY3Rpb25OYW1lIiwiZGVmaW5lQnVpbHRJbnMiLCJhbkluc3RhbmNlIiwiZnJvdW5kIiwiSUVFRTc1NCIsImFycmF5RmlsbCIsImFycmF5U2xpY2UiLCJpbmhlcml0SWZSZXF1aXJlZCIsImNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMiLCJzZXRUb1N0cmluZ1RhZyIsIkNPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FIiwiQVJSQVlfQlVGRkVSIiwiREFUQV9WSUVXIiwiV1JPTkdfSU5ERVgiLCJnZXRJbnRlcm5hbEFycmF5QnVmZmVyU3RhdGUiLCJnZXR0ZXJGb3IiLCJnZXRJbnRlcm5hbERhdGFWaWV3U3RhdGUiLCJzZXRJbnRlcm5hbFN0YXRlIiwic2V0IiwiTmF0aXZlQXJyYXlCdWZmZXIiLCIkQXJyYXlCdWZmZXIiLCIkRGF0YVZpZXciLCJSYW5nZUVycm9yIiwiZmlsbCIsInJldmVyc2UiLCJwYWNrSUVFRTc1NCIsInBhY2siLCJ1bnBhY2tJRUVFNzU0IiwidW5wYWNrIiwicGFja0ludDgiLCJwYWNrSW50MTYiLCJwYWNrSW50MzIiLCJ1bnBhY2tJbnQzMiIsImJ1ZmZlciIsInBhY2tGbG9hdDMyIiwicGFja0Zsb2F0NjQiLCJhZGRHZXR0ZXIiLCJ2aWV3IiwiY291bnQiLCJpc0xpdHRsZUVuZGlhbiIsImludEluZGV4IiwiYm9vbElzTGl0dGxlRW5kaWFuIiwiYnl0ZXMiLCJieXRlT2Zmc2V0IiwiY29udmVyc2lvbiIsIklOQ09SUkVDVF9BUlJBWV9CVUZGRVJfTkFNRSIsIk5hTiIsInRlc3RWaWV3IiwiJHNldEludDgiLCJzZXRVaW50OCIsInVuc2FmZSIsInR5cGUiLCJkZXRhY2hlZCIsImJ1ZmZlclN0YXRlIiwiYnVmZmVyTGVuZ3RoIiwib2Zmc2V0IiwiZ2V0VWludDgiLCJnZXRJbnQxNiIsImdldFVpbnQxNiIsImdldEludDMyIiwiZ2V0VWludDMyIiwiZ2V0RmxvYXQzMiIsImdldEZsb2F0NjQiLCJzZXRJbnQxNiIsInNldFVpbnQxNiIsInNldEludDMyIiwic2V0VWludDMyIiwic2V0RmxvYXQzMiIsInNldEZsb2F0NjQiLCJkZWxldGVQcm9wZXJ0eU9yVGhyb3ciLCJjb3B5V2l0aGluIiwidG8iLCJmcm9tIiwiaW5jIiwiZW5kUG9zIiwibGlzdCIsIiRsZW5ndGgiLCJJU19GSU5EX0xBU1RfSU5ERVgiLCJmaW5kTGFzdCIsImZpbmRMYXN0SW5kZXgiLCIkbGFzdEluZGV4T2YiLCJsYXN0SW5kZXhPZiIsInNvcnQiLCJjb21wYXJlZm4iLCJlbGVtZW50IiwiaiIsIm1pZGRsZSIsImxsZW5ndGgiLCJybGVuZ3RoIiwibGluZGV4IiwicmluZGV4IiwiJFJhbmdlRXJyb3IiLCJyZWxhdGl2ZUluZGV4IiwiYWN0dWFsSW5kZXgiLCJTQUZFX0NMT1NJTkciLCJpdGVyYXRvcldpdGhSZXR1cm4iLCJuZXh0IiwiZG9uZSIsIlNLSVBfQ0xPU0lORyIsIklURVJBVElPTl9TVVBQT1JUIiwib3duS2V5cyIsImdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSIsImV4Y2VwdGlvbnMiLCJtYWtlQnVpbHRJbiIsImdldHRlciIsInNldHRlciIsInNpbXBsZSIsIm5vbkNvbmZpZ3VyYWJsZSIsIm5vbldyaXRhYmxlIiwiV29ya2VyVGhyZWFkcyIsImNoYW5uZWwiLCIkZGV0YWNoIiwiZ2V0QnVpbHRJbk5vZGVNb2R1bGUiLCIkTWVzc2FnZUNoYW5uZWwiLCJNZXNzYWdlQ2hhbm5lbCIsImRldGFjaCIsInRyYW5zZmVyYWJsZSIsInBvcnQxIiwicG9zdE1lc3NhZ2UiLCJmaXJlZm94IiwiVUEiLCJ3ZWJraXQiLCIkRXJyb3IiLCJFcnJvciIsIlRFU1QiLCJzdGFjayIsIlY4X09SX0NIQUtSQV9TVEFDS19FTlRSWSIsIklTX1Y4X09SX0NIQUtSQV9TVEFDSyIsImRyb3BFbnRyaWVzIiwicHJlcGFyZVN0YWNrVHJhY2UiLCJjbGVhckVycm9yU3RhY2siLCJFUlJPUl9TVEFDS19JTlNUQUxMQUJMRSIsImNhcHR1cmVTdGFja1RyYWNlIiwibm9ybWFsaXplU3RyaW5nQXJndW1lbnQiLCJuYXRpdmVFcnJvclRvU3RyaW5nIiwibWVzc2FnZSIsInJlZ2V4cEV4ZWMiLCJSZWdFeHBQcm90b3R5cGUiLCJTSEFNIiwiU1lNQk9MIiwiREVMRUdBVEVTX1RPX1NZTUJPTCIsIkRFTEVHQVRFU19UT19FWEVDIiwiZXhlY0NhbGxlZCIsInJlIiwiZmxhZ3MiLCJuYXRpdmVSZWdFeHBNZXRob2QiLCJtZXRob2RzIiwibmF0aXZlTWV0aG9kIiwiYXJnMiIsImZvcmNlU3RyaW5nTWV0aG9kIiwiJGV4ZWMiLCJJU19OT0RFIiwiZ2V0QnVpbHRpbk1vZHVsZSIsIkl0ZXJhdG9ycyIsImdldEl0ZXJhdG9yTWV0aG9kIiwidXNpbmdJdGVyYXRvciIsIml0ZXJhdG9yTWV0aG9kIiwiU1VCU1RJVFVUSU9OX1NZTUJPTFMiLCJTVUJTVElUVVRJT05fU1lNQk9MU19OT19OQU1FRCIsIm1hdGNoZWQiLCJwb3NpdGlvbiIsImNhcHR1cmVzIiwibmFtZWRDYXB0dXJlcyIsInRhaWxQb3MiLCJtIiwic3ltYm9scyIsImNoIiwiY2FwdHVyZSIsImFicyIsInBvdyIsImxvZyIsIkxOMiIsIm1hbnRpc3NhTGVuZ3RoIiwiZXhwb25lbnQiLCJtYW50aXNzYSIsImV4cG9uZW50TGVuZ3RoIiwiZU1heCIsImVCaWFzIiwicnQiLCJzaWduIiwiSW5maW5pdHkiLCJuQml0cyIsImR1bW15IiwiTmV3VGFyZ2V0IiwiTmV3VGFyZ2V0UHJvdG90eXBlIiwiY2F1c2UiLCJoYXMiLCJOQVRJVkVfV0VBS19NQVAiLCJPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCIsIldlYWtNYXAiLCJtZXRhZGF0YSIsImZhY2FkZSIsIlNUQVRFIiwiaXNJbnRlZ2VyIiwiaXNGaW5pdGUiLCJJdGVyYXRvclByb3RvdHlwZSIsInJldHVyblRoaXMiLCJJdGVyYXRvckNvbnN0cnVjdG9yIiwiRU5VTUVSQUJMRV9ORVhUIiwiY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciIsIkl0ZXJhdG9yc0NvcmUiLCJCVUdHWV9TQUZBUklfSVRFUkFUT1JTIiwiS0VZUyIsIlZBTFVFUyIsIkVOVFJJRVMiLCJJdGVyYWJsZSIsIkRFRkFVTFQiLCJJU19TRVQiLCJDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUiLCJnZXRJdGVyYXRpb25NZXRob2QiLCJLSU5EIiwiZGVmYXVsdEl0ZXJhdG9yIiwiSXRlcmFibGVQcm90b3R5cGUiLCJJTkNPUlJFQ1RfVkFMVUVTX05BTUUiLCJuYXRpdmVJdGVyYXRvciIsImFueU5hdGl2ZUl0ZXJhdG9yIiwiZW50cmllcyIsInZhbHVlcyIsIlByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSIsImFycmF5SXRlcmF0b3IiLCJqb2luIiwiQ09ORklHVVJBQkxFX0xFTkdUSCIsIlRFTVBMQVRFIiwiRVBTSUxPTiIsIklOVkVSU0VfRVBTSUxPTiIsIkZMT0FUX0VQU0lMT04iLCJGTE9BVF9NQVhfVkFMVUUiLCJGTE9BVF9NSU5fVkFMVUUiLCJhYnNvbHV0ZSIsInMiLCJyb3VuZFRpZXNUb0V2ZW4iLCJmbG9hdFJvdW5kIiwiJGRlZmF1bHQiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSIiwiYVBvc3NpYmxlUHJvdG90eXBlIiwiQ09SUkVDVF9TRVRURVIiLCJfX3Byb3RvX18iLCJnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlIiwiVGFyZ2V0IiwiU291cmNlIiwiUiIsInJlMSIsInJlMiIsInJlZ2V4cEZsYWdzIiwic3RpY2t5SGVscGVycyIsIlVOU1VQUE9SVEVEX0RPVF9BTEwiLCJVTlNVUFBPUlRFRF9OQ0ciLCJuYXRpdmVSZXBsYWNlIiwibmF0aXZlRXhlYyIsInBhdGNoZWRFeGVjIiwiVVBEQVRFU19MQVNUX0lOREVYX1dST05HIiwibGFzdEluZGV4IiwiVU5TVVBQT1JURURfWSIsIkJST0tFTl9DQVJFVCIsIk5QQ0dfSU5DTFVERUQiLCJyZUNvcHkiLCJncm91cCIsInJhdyIsImdyb3VwcyIsInN0aWNreSIsImNoYXJzQWRkZWQiLCJzdHJDb3B5IiwibXVsdGlsaW5lIiwiaGFzSW5kaWNlcyIsImlnbm9yZUNhc2UiLCJkb3RBbGwiLCJ1bmljb2RlU2V0cyIsInJlZ0V4cEZsYWdzIiwiJFJlZ0V4cCIsIk1JU1NFRF9TVElDS1kiLCJDT05TVFJVQ1RPUl9OQU1FIiwiVEFHIiwiYUNvbnN0cnVjdG9yIiwiZGVmYXVsdENvbnN0cnVjdG9yIiwiY2hhckNvZGVBdCIsIkNPTlZFUlRfVE9fU1RSSU5HIiwicG9zIiwiZmlyc3QiLCJzZWNvbmQiLCJzaXplIiwiY29kZUF0IiwiVjgiLCJjbG9uZSIsInByaW0iLCJCaWdJbnQiLCJ0b1Bvc2l0aXZlSW50ZWdlciIsIkJZVEVTIiwicm91bmQiLCJUWVBFRF9BUlJBWVNfQ09OU1RSVUNUT1JTX1JFUVVJUkVTX1dSQVBQRVJTIiwiQXJyYXlCdWZmZXJWaWV3Q29yZSIsIkFycmF5QnVmZmVyTW9kdWxlIiwiaXNJbnRlZ3JhbE51bWJlciIsInRvT2Zmc2V0IiwidG9VaW50OENsYW1wZWQiLCJ0eXBlZEFycmF5RnJvbSIsInNldFNwZWNpZXMiLCJhcnJheUZyb21Db25zdHJ1Y3RvckFuZExpc3QiLCJuYXRpdmVEZWZpbmVQcm9wZXJ0eSIsIm5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkJZVEVTX1BFUl9FTEVNRU5UIiwiV1JPTkdfTEVOR1RIIiwiaXNBcnJheUJ1ZmZlciIsImlzVHlwZWRBcnJheUluZGV4Iiwid3JhcHBlZEdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIndyYXBwZWREZWZpbmVQcm9wZXJ0eSIsIndyYXBwZXIiLCJDTEFNUEVEIiwiR0VUVEVSIiwiU0VUVEVSIiwiTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yIiwiVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlIiwiZXhwb3J0ZWQiLCJhZGRFbGVtZW50IiwidHlwZWRBcnJheU9mZnNldCIsIiRsZW4iLCJjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24iLCJpdGVyYWJsZSIsInR5cGVkQXJyYXlTcGVjaWVzQ29uc3RydWN0b3IiLCJpbnN0YW5jZSIsImdldEl0ZXJhdG9yIiwiaXNBcnJheUl0ZXJhdG9yTWV0aG9kIiwiaXNCaWdJbnRBcnJheSIsInRvQmlnSW50IiwidGhpc0lzQmlnSW50QXJyYXkiLCJzdGVwIiwibWFwZm4iLCJtYXBwaW5nIiwic3BlY2llc0NvbnN0cnVjdG9yIiwicHJveHlBY2Nlc3NvciIsImluc3RhbGxFcnJvckNhdXNlIiwiaW5zdGFsbEVycm9yU3RhY2siLCJGVUxMX05BTUUiLCJJU19BR0dSRUdBVEVfRVJST1IiLCJTVEFDS19UUkFDRV9MSU1JVCIsIk9QVElPTlNfUE9TSVRJT04iLCJFUlJPUl9OQU1FIiwiT3JpZ2luYWxFcnJvciIsIk9yaWdpbmFsRXJyb3JQcm90b3R5cGUiLCJCYXNlRXJyb3IiLCJXcmFwcGVkRXJyb3IiLCJhcnJheUJ1ZmZlck1vZHVsZSIsIm5hdGl2ZUFycmF5QnVmZmVyU2xpY2UiLCJ2aWV3U291cmNlIiwidmlld1RhcmdldCIsIiR0cmFuc2ZlciIsInRyYW5zZmVyVG9GaXhlZExlbmd0aCIsImRlZmluZUl0ZXJhdG9yIiwiY3JlYXRlSXRlclJlc3VsdE9iamVjdCIsIkFSUkFZX0lURVJBVE9SIiwiaXRlcmF0ZWQiLCJraW5kIiwiQXJndW1lbnRzIiwiRGF0ZVByb3RvdHlwZSIsIkRhdGUiLCJJTlZBTElEX0RBVEUiLCJUT19TVFJJTkciLCJuYXRpdmVEYXRlVG9TdHJpbmciLCJ0aGlzVGltZVZhbHVlIiwiZ2V0VGltZSIsIndyYXBFcnJvckNvbnN0cnVjdG9yV2l0aENhdXNlIiwiV0VCX0FTU0VNQkxZIiwiV2ViQXNzZW1ibHkiLCJleHBvcnRHbG9iYWxFcnJvckNhdXNlV3JhcHBlciIsImV4cG9ydFdlYkFzc2VtYmx5RXJyb3JDYXVzZVdyYXBwZXIiLCJpbml0IiwiZXJyb3JUb1N0cmluZyIsIkVycm9yUHJvdG90eXBlIiwidGhpc051bWJlclZhbHVlIiwiTlVNQkVSIiwiTmF0aXZlTnVtYmVyIiwiUHVyZU51bWJlck5hbWVzcGFjZSIsIk51bWJlclByb3RvdHlwZSIsIk51bWJlcldyYXBwZXIiLCJwcmltVmFsdWUiLCJ0aGlyZCIsIm1heENvZGUiLCJkaWdpdHMiLCJjb2RlIiwidG9OdW1iZXIiLCJ0b051bWVyaWMiLCJnZXRSZWdFeHBGbGFncyIsIk5hdGl2ZVJlZ0V4cCIsIlN5bnRheEVycm9yIiwic3RyaW5nSW5kZXhPZiIsIklTX05DRyIsIkNPUlJFQ1RfTkVXIiwiUmVnRXhwV3JhcHBlciIsInBhdHRlcm4iLCJyYXdGbGFncyIsImhhbmRsZWQiLCJ0aGlzSXNSZWdFeHAiLCJwYXR0ZXJuSXNSZWdFeHAiLCJmbGFnc0FyZVVuZGVmaW5lZCIsInJhd1BhdHRlcm4iLCJjaHIiLCJuYW1lZCIsImJyYWNrZXRzIiwibmNnIiwiZ3JvdXBpZCIsImdyb3VwbmFtZSIsImhhbmRsZU5DRyIsImhhbmRsZURvdEFsbCIsIm5hdGl2ZVRlc3QiLCIkdG9TdHJpbmciLCJuYXRpdmVUb1N0cmluZyIsIk5PVF9HRU5FUklDIiwiSU5DT1JSRUNUX05BTUUiLCJmaXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYyIsImFkdmFuY2VTdHJpbmdJbmRleCIsImdldFN1YnN0aXR1dGlvbiIsInJlZ0V4cEV4ZWMiLCJSRVBMQUNFIiwiUkVQTEFDRV9LRUVQU18kMCIsIlJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFIiwibWF5YmVDYWxsTmF0aXZlIiwiVU5TQUZFX1NVQlNUSVRVVEUiLCJzZWFyY2hWYWx1ZSIsInJlcGxhY2VWYWx1ZSIsInJlcGxhY2VyIiwicngiLCJyZXMiLCJmdW5jdGlvbmFsUmVwbGFjZSIsImZ1bGxVbmljb2RlIiwicmVzdWx0cyIsImFjY3VtdWxhdGVkUmVzdWx0IiwibmV4dFNvdXJjZVBvc2l0aW9uIiwicmVwbGFjZXJBcmdzIiwic3Vic3RyIiwiaW50TGVuZ3RoIiwiaW50RW5kIiwiaW50U3RhcnQiLCJ1JEFycmF5Q29weVdpdGhpbiIsIiRldmVyeSIsIiRmaWxsIiwiYWN0dWFsVmFsdWUiLCIkZmlsdGVyIiwiZnJvbVNwZWNpZXNBbmRMaXN0IiwiJGZpbmRJbmRleCIsInByZWRpY2F0ZSIsIiRmaW5kTGFzdEluZGV4IiwiJGZpbmRMYXN0IiwiJGluY2x1ZGVzIiwiQXJyYXlJdGVyYXRvcnMiLCJhcnJheVZhbHVlcyIsImFycmF5S2V5cyIsImFycmF5RW50cmllcyIsIkdFTkVSSUMiLCJJVEVSQVRPUl9JU19WQUxVRVMiLCJ0eXBlZEFycmF5VmFsdWVzIiwiJGpvaW4iLCJzZXBhcmF0b3IiLCIkcmVkdWNlUmlnaHQiLCIkc2V0IiwiV09SS1NfV0lUSF9PQkpFQ1RTX0FORF9HRU5FUklDX09OX1RZUEVEX0FSUkFZUyIsIlRPX09CSkVDVF9CVUciLCJhcnJheUxpa2UiLCIkc29tZSIsImludGVybmFsU29ydCIsIkZGIiwiSUVfT1JfRURHRSIsIldFQktJVCIsIm5hdGl2ZVNvcnQiLCJBQ0NFUFRfSU5DT1JSRUNUX0FSR1VNRU5UUyIsIlNUQUJMRV9TT1JUIiwibW9kIiwiZXhwZWN0ZWQiLCJ5IiwiZ2V0U29ydENvbXBhcmUiLCJiZWdpbiIsImJlZ2luSW5kZXgiLCIkdG9Mb2NhbGVTdHJpbmciLCJ0b0xvY2FsZVN0cmluZyIsIlRPX0xPQ0FMRV9TVFJJTkdfQlVHIiwiYXJyYXlUb1JldmVyc2VkIiwiY29tcGFyZUZuIiwiVWludDhBcnJheVByb3RvdHlwZSIsImFycmF5VG9TdHJpbmciLCJJU19OT1RfQVJSQVlfTUVUSE9EIiwiY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yIiwiYXJyYXlXaXRoIiwiUFJPUEVSX09SREVSIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsIl9fZXNNb2R1bGUiLCJkIiwiZGVmaW5pdGlvbiIsIm8iLCJlIiwicHJvcCIsIk1PREUiLCJPUEVSQVRFIiwiREVUQUlMIiwiTE9HIiwiQVJHX0ZMQUdTIiwiQ1VSUkVOVF9EQVRFIiwiUkVGX1ZBTCIsIk5PVF9MT0dfRUZGRUNUX1RZUEUiLCJGT1JNX01FVEFfVFlQRSIsIkZPUk1fTUVUQV9UWVBFX0g1IiwiQ09OVEVYVF9QRURESU5HX1RZUEUiLCJOT1RfTkVFRF9GT1JNX0lURU1fTUVUQV9UWVBFIiwiTk9UX05FRURfQ09MX0lURU1fTUVUQV9UWVBFIiwiTVVMVElfUEFHRV9NRVRBX0xJU1RfVFlQRVMiLCJTUEVDSUFMX1NFVF9GVUxMX1dJRFRIX0lURU1fTUVUQV9UWVBFIiwiVEFCTEVfQ09MVU1OX05PVF9SRU5ERVJfTUVUQV9UWVBFIiwiUFJFRklYX0ZMQUciLCJSRVBMQUNFX1BSRUZJWF9GTEFHIiwiSDVfUFJFRklYX0ZMQUciLCJINV9SRVBMQUNFX1BSRUZJWF9GTEFHIiwiRElTUExBWV9TSE9XIiwiRElTUExBWV9ISURERU4iLCJQTEFJTl9UWVBFX0FMT05HX0NPTFVNTlMiLCJQTEFJTl9UWVBFX0NPTFVNTlMiLCJQTEFJTl9UWVBFX09QVElPTlNfQ09MVU1OUyIsIk1BSUxfU0VORF9VUkwiLCJjb21tb25Qcm9wc1R5cGUiLCJjb21wSW5mbyIsImdldFZhbHVlIiwibW9kZWxWYWx1ZSIsInJlZlZhbHVlIiwiZGVmYXVsdCIsImRpc2FibGVkIiwiY2FsY0Rpc2FibGUiLCJjbGVhcmFibGUiLCJjbGVhcmFibGVGbGFnIiwicmVxdWlyZWQiLCJyZXF1aXJlZEZsYWciLCJvbmx5UmVxdWlyZWRGbGFnIiwidGFibGVEYXRhIiwicm93U2NvcGUiLCJwbGFjZWhvbGRlciIsImxhbmciLCJfaW5kZXhPZkluc3RhbmNlUHJvcGVydHkiLCJkZWZQbGFjZWhvbGQiLCJkZWZQbGFjZWhvbGRFbiIsInBsYWNlaG9sZGVyRW4iLCJfY29udGV4dCIsIl9jb250ZXh0MiIsImxvZ0Fsb25nIiwiX2NvbmNhdEluc3RhbmNlUHJvcGVydHkiLCJlZGl0RmxhZyIsImRldGFpbEFsb25nIiwiTUVUQV9UWVBFX01BUCIsInJvdyIsImdyaWQiLCJ0YWJsZSIsInRhYiIsImNvbGxhcHNlIiwiY3ljbGUiXSwic291cmNlUm9vdCI6IiJ9
|
|
1
|
+
var r={48618:(r,t,e)=>{e.d(t,{E1:()=>A,M6:()=>x,fN:()=>T}),e(16280),e(76918),e(54743),e(11745),e(38309),e(16573),e(78100),e(77936),e(23288),e(2892),e(79432),e(26099),e(84864),e(57465),e(27495),e(87745),e(90906),e(38781),e(25440),e(50375),e(21489),e(48140),e(81630),e(72170),e(75044),e(69539),e(31694),e(89955),e(21903),e(91134),e(33206),e(44496),e(66651),e(12887),e(19369),e(66812),e(8995),e(31575),e(36072),e(88747),e(28845),e(29423),e(57301),e(373),e(86614),e(41405),e(37467),e(44732),e(33684),e(79577);var n=e(27681),o=e.n(n),a=e(71426),i=e.n(a),u=e(27124),c=e.n(u),s=e(36586),f=e.n(s),p=e(18979),l=e.n(p),v=e(73363),y=e.n(v),d=(e(86226),e(50697),e(11393),e(66615),e(11265),e(48079)),h=e.n(d);function g(r){var t=o()(null);return function(e){return t[e]||(t[e]=r(e))}}function x(r){if(!r)return null;var t=Number(r);if(isNaN(t)){var e=["px","%","vh","vw","rem","em"],n=i()(e).call(e,(function(t){return null==r?void 0:c()(r).call(r,t)}));return n?f()(r)+n:null}return t+"px"}e(12935);var m=/-(\w)/g,b=g((function(r){return r.replace(m,(function(r,t){return t?t.toUpperCase():""}))})),w=g((function(r){return r.charAt(0).toUpperCase()+l()(r).call(r,1)}));function E(r,t){var e=function(r,t){if("string"!=typeof t)return null;var e=r;if(void 0!==e[t]&&null!==e[t])return e[t];var n=b(t);if(void 0!==e[n]&&null!==e[n])return e[n];var o=w(n);return void 0!==e[o]&&null!==e[o]?e[o]:null}(y()(r).call(r,(function(r,t,e){return r[t]=e,r}),{}),t);return null==e?-1:e}function A(r,t){return-1!==E(r,null==t?void 0:t.renderby)||-1!==E(r,null==t?void 0:t.metaType)}function T(r,t){var e,n,o,a=r.referenceOptions,i=r.selectKey,u=[];try{var c;u=h()(c=JSON.parse((null==r?void 0:r.optionItems)||"[]")).call(c,(function(r){return{columnValue:r.value,columnDesc_zh:r.label,columnDesc:r.label_en||r.label,columnStatus:r.columnStatus}}))}catch(r){u=[]}return(null==t?void 0:t.value)&&(null==t||null===(e=t.value)||void 0===e?void 0:e[i])||(null==t?void 0:t.value)&&(null==t||null===(n=t.value)||void 0===n?void 0:n["".concat(r.metaCode,"ListValue")])||(null==t?void 0:t.value)&&(null==t||null===(o=t.value)||void 0===o?void 0:o[a])||u||[]}Object.prototype.hasOwnProperty},12935:(r,t,e)=>{e(66615),e(76918),e(23288),e(26099),e(27495),e(90906),e(38781),Object.prototype.toString},66615:(r,t,e)=>{e(18402)},11393:(r,t,e)=>{r.exports=e(50530)},27124:(r,t,e)=>{r.exports=e(85837)},71426:(r,t,e)=>{r.exports=e(99617)},86226:(r,t,e)=>{e(24525)},64007:(r,t,e)=>{r.exports=e(77852)},48079:(r,t,e)=>{r.exports=e(98894)},73363:(r,t,e)=>{r.exports=e(79528)},18979:(r,t,e)=>{r.exports=e(6686)},11265:(r,t,e)=>{e(12217)},27681:(r,t,e)=>{r.exports=e(93658)},50697:(r,t,e)=>{e(76490)},36586:(r,t,e)=>{r.exports=e(91921)},13531:(r,t,e)=>{e(92425);var n=e(92046);r.exports=n.Array.isArray},96275:(r,t,e)=>{e(58545);var n=e(61747);r.exports=n("Array","concat")},94668:(r,t,e)=>{e(6290);var n=e(61747);r.exports=n("Array","find")},22092:(r,t,e)=>{e(95650);var n=e(61747);r.exports=n("Array","forEach")},83309:(r,t,e)=>{e(66391);var n=e(61747);r.exports=n("Array","indexOf")},28253:(r,t,e)=>{e(6687);var n=e(61747);r.exports=n("Array","map")},16693:(r,t,e)=>{e(46339);var n=e(61747);r.exports=n("Array","reduce")},75265:(r,t,e)=>{e(62099);var n=e(61747);r.exports=n("Array","slice")},45837:(r,t,e)=>{var n=e(88280),o=e(96275),a=Array.prototype;r.exports=function(r){var t=r.concat;return r===a||n(a,r)&&t===a.concat?o:t}},64048:(r,t,e)=>{var n=e(88280),o=e(48270),a=String.prototype;r.exports=function(r){var t=r.endsWith;return"string"==typeof r||r===a||n(a,r)&&t===a.endsWith?o:t}},63246:(r,t,e)=>{var n=e(88280),o=e(94668),a=Array.prototype;r.exports=function(r){var t=r.find;return r===a||n(a,r)&&t===a.find?o:t}},44507:(r,t,e)=>{var n=e(88280),o=e(83309),a=Array.prototype;r.exports=function(r){var t=r.indexOf;return r===a||n(a,r)&&t===a.indexOf?o:t}},39299:(r,t,e)=>{var n=e(88280),o=e(28253),a=Array.prototype;r.exports=function(r){var t=r.map;return r===a||n(a,r)&&t===a.map?o:t}},28823:(r,t,e)=>{var n=e(88280),o=e(16693),a=Array.prototype;r.exports=function(r){var t=r.reduce;return r===a||n(a,r)&&t===a.reduce?o:t}},40303:(r,t,e)=>{var n=e(88280),o=e(75265),a=Array.prototype;r.exports=function(r){var t=r.slice;return r===a||n(a,r)&&t===a.slice?o:t}},8661:(r,t,e)=>{var n=e(88280),o=e(77511),a=String.prototype;r.exports=function(r){var t=r.trim;return"string"==typeof r||r===a||n(a,r)&&t===a.trim?o:t}},80149:(r,t,e)=>{e(25837);var n=e(92046).Object;r.exports=function(r,t){return n.create(r,t)}},19661:(r,t,e)=>{e(83589);var n=e(92046);r.exports=n.Object.keys},84326:(r,t,e)=>{e(42193);var n=e(92046);r.exports=n.parseInt},48270:(r,t,e)=>{e(80430);var n=e(61747);r.exports=n("String","endsWith")},77511:(r,t,e)=>{e(50727);var n=e(61747);r.exports=n("String","trim")},82159:(r,t,e)=>{var n=e(62250),o=e(4640),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},42156:r=>{r.exports=function(){}},36624:(r,t,e)=>{var n=e(46285),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},22914:(r,t,e)=>{var n=e(70726).forEach,o=e(77623)("forEach");r.exports=o?[].forEach:function(r){return n(this,r,arguments.length>1?arguments[1]:void 0)}},74436:(r,t,e)=>{var n=e(27374),o=e(34849),a=e(20575),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},70726:(r,t,e)=>{var n=e(28311),o=e(1907),a=e(16946),i=e(39298),u=e(20575),c=e(56968),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},59552:(r,t,e)=>{var n=e(98828),o=e(76264),a=e(20798),i=o("species");r.exports=function(r){return a>=51||!n((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[r](Boolean).foo}))}},77623:(r,t,e)=>{var n=e(98828);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},35043:(r,t,e)=>{var n=e(82159),o=e(39298),a=e(16946),i=e(20575),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},93427:(r,t,e)=>{var n=e(1907);r.exports=n([].slice)},64010:(r,t,e)=>{var n=e(11793),o=e(25468),a=e(46285),i=e(76264)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},56968:(r,t,e)=>{var n=e(64010);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},45807:(r,t,e)=>{var n=e(1907),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},73948:(r,t,e)=>{var n=e(52623),o=e(62250),a=e(45807),i=e(76264)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},25735:(r,t,e)=>{var n=e(76264)("match");r.exports=function(r){var t=/./;try{"/./"[r](t)}catch(e){try{return t[n]=!1,"/./"[r](t)}catch(r){}}return!1}},61626:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},75817:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},5543:(r,t,e)=>{var n=e(39447),o=e(74284),a=e(75817);r.exports=function(r,t,e){n?o.f(r,t,a(0,e)):r[t]=e}},2532:(r,t,e)=>{var n=e(45951),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},39447:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},49552:(r,t,e)=>{var n=e(45951),o=e(46285),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88024:r=>{var t=TypeError;r.exports=function(r){if(r>9007199254740991)throw t("Maximum allowed index exceeded");return r}},80376:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},47586:(r,t,e)=>{var n=e(42832);r.exports="NODE"===n},96794:(r,t,e)=>{var n=e(45951).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},20798:(r,t,e)=>{var n,o,a=e(45951),i=e(96794),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},42832:(r,t,e)=>{var n=e(45951),o=e(96794),a=e(45807),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},11091:(r,t,e)=>{var n=e(45951),o=e(76024),a=e(92361),i=e(62250),u=e(13846).f,c=e(7463),s=e(92046),f=e(28311),p=e(61626),l=e(49724);e(36128);var v=function(r){var t=function(e,n,a){if(this instanceof t){switch(arguments.length){case 0:return new r;case 1:return new r(e);case 2:return new r(e,n)}return new r(e,n,a)}return o(r,this,arguments)};return t.prototype=r.prototype,t};r.exports=function(r,t){var e,o,y,d,h,g,x,m,b,w=r.target,E=r.global,A=r.stat,T=r.proto,O=E?n:A?n[w]:n[w]&&n[w].prototype,S=E?s:s[w]||p(s,w,{})[w],C=S.prototype;for(d in t)o=!(e=c(E?d:w+(A?".":"#")+d,r.forced))&&O&&l(O,d),g=S[d],o&&(x=r.dontCallGetSet?(b=u(O,d))&&b.value:O[d]),h=o&&x?x:t[d],(e||T||typeof g!=typeof h)&&(m=r.bind&&o?f(h,n):r.wrap&&o?v(h):T&&i(h)?a(h):h,(r.sham||h&&h.sham||g&&g.sham)&&p(m,"sham",!0),p(S,d,m),T&&(l(s,y=w+"Prototype")||p(s,y,{}),p(s[y],d,h),r.real&&C&&(e||!C[d])&&p(C,d,h)))}},98828:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},76024:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},28311:(r,t,e)=>{var n=e(92361),o=e(82159),a=e(41505),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},41505:(r,t,e)=>{var n=e(98828);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},13930:(r,t,e)=>{var n=e(41505),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},36833:(r,t,e)=>{var n=e(39447),o=e(49724),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},92361:(r,t,e)=>{var n=e(45807),o=e(1907);r.exports=function(r){if("Function"===n(r))return o(r)}},1907:(r,t,e)=>{var n=e(41505),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},61747:(r,t,e)=>{var n=e(45951),o=e(92046);r.exports=function(r,t){var e=o[r+"Prototype"],a=e&&e[t];if(a)return a;var i=n[r],u=i&&i.prototype;return u&&u[t]}},85582:(r,t,e)=>{var n=e(92046),o=e(45951),a=e(62250),i=function(r){return a(r)?r:void 0};r.exports=function(r,t){return arguments.length<2?i(n[r])||i(o[r]):n[r]&&n[r][t]||o[r]&&o[r][t]}},29367:(r,t,e)=>{var n=e(82159),o=e(87136);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},45951:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},49724:(r,t,e)=>{var n=e(1907),o=e(39298),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},38530:r=>{r.exports={}},62416:(r,t,e)=>{var n=e(85582);r.exports=n("document","documentElement")},73648:(r,t,e)=>{var n=e(39447),o=e(98828),a=e(49552);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},16946:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(45807),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},12647:(r,t,e)=>{var n=e(1907),o=e(62250),a=e(36128),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},11793:(r,t,e)=>{var n=e(45807);r.exports=Array.isArray||function(r){return"Array"===n(r)}},62250:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},25468:(r,t,e)=>{var n=e(1907),o=e(98828),a=e(62250),i=e(73948),u=e(85582),c=e(12647),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},7463:(r,t,e)=>{var n=e(98828),o=e(62250),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},87136:r=>{r.exports=function(r){return null==r}},46285:(r,t,e)=>{var n=e(62250);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},7376:r=>{r.exports=!0},72087:(r,t,e)=>{var n=e(46285),o=e(45807),a=e(76264)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},25594:(r,t,e)=>{var n=e(85582),o=e(62250),a=e(88280),i=e(51175),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},20575:(r,t,e)=>{var n=e(3121);r.exports=function(r){return n(r.length)}},41176:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},12074:(r,t,e)=>{var n=e(72087),o=TypeError;r.exports=function(r){if(n(r))throw new o("The method doesn't accept regular expressions");return r}},72778:(r,t,e)=>{var n=e(45951),o=e(98828),a=e(1907),i=e(90160),u=e(65993).trim,c=e(86395),s=n.parseInt,f=n.Symbol,p=f&&f.iterator,l=/^[+-]?0x/i,v=a(l.exec),y=8!==s(c+"08")||22!==s(c+"0x16")||p&&!o((function(){s(Object(p))}));r.exports=y?function(r,t){var e=u(i(r));return s(e,t>>>0||(v(l,e)?16:10))}:s},58075:(r,t,e)=>{var n,o=e(36624),a=e(42220),i=e(80376),u=e(38530),c=e(62416),s=e(49552),f=e(92522),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},42220:(r,t,e)=>{var n=e(39447),o=e(58661),a=e(74284),i=e(36624),u=e(27374),c=e(2875);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},74284:(r,t,e)=>{var n=e(39447),o=e(73648),a=e(58661),i=e(36624),u=e(70470),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},13846:(r,t,e)=>{var n=e(39447),o=e(13930),a=e(22574),i=e(75817),u=e(27374),c=e(70470),s=e(49724),f=e(73648),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},88280:(r,t,e)=>{var n=e(1907);r.exports=n({}.isPrototypeOf)},23045:(r,t,e)=>{var n=e(1907),o=e(49724),a=e(27374),i=e(74436).indexOf,u=e(38530),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},2875:(r,t,e)=>{var n=e(23045),o=e(80376);r.exports=Object.keys||function(r){return n(r,o)}},22574:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},60581:(r,t,e)=>{var n=e(13930),o=e(62250),a=e(46285),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},92046:r=>{r.exports={}},74239:(r,t,e)=>{var n=e(87136),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},92522:(r,t,e)=>{var n=e(85816),o=e(6499),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},36128:(r,t,e)=>{var n=e(7376),o=e(45951),a=e(2532),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},85816:(r,t,e)=>{var n=e(36128);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},95819:(r,t,e)=>{var n=e(36833),o=e(98828),a=e(86395);r.exports=function(r){return o((function(){return!!a[r]()||"
"!=="
"[r]()||n&&a[r].name!==r}))}},65993:(r,t,e)=>{var n=e(1907),o=e(74239),a=e(90160),i=e(86395),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},19846:(r,t,e)=>{var n=e(20798),o=e(98828),a=e(45951).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},34849:(r,t,e)=>{var n=e(65482),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},27374:(r,t,e)=>{var n=e(16946),o=e(74239);r.exports=function(r){return n(o(r))}},65482:(r,t,e)=>{var n=e(41176);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},3121:(r,t,e)=>{var n=e(65482),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},39298:(r,t,e)=>{var n=e(74239),o=Object;r.exports=function(r){return o(n(r))}},46028:(r,t,e)=>{var n=e(13930),o=e(46285),a=e(25594),i=e(29367),u=e(60581),c=e(76264),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},70470:(r,t,e)=>{var n=e(46028),o=e(25594);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},52623:(r,t,e)=>{var n={};n[e(76264)("toStringTag")]="z",r.exports="[object z]"===String(n)},90160:(r,t,e)=>{var n=e(73948),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},4640:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},6499:(r,t,e)=>{var n=e(1907),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},51175:(r,t,e)=>{var n=e(19846);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},58661:(r,t,e)=>{var n=e(39447),o=e(98828);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},76264:(r,t,e)=>{var n=e(45951),o=e(85816),a=e(49724),i=e(6499),u=e(19846),c=e(51175),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},86395:r=>{r.exports="\t\n\v\f\r \u2028\u2029\ufeff"},58545:(r,t,e)=>{var n=e(11091),o=e(98828),a=e(11793),i=e(46285),u=e(39298),c=e(20575),s=e(88024),f=e(5543),p=e(56968),l=e(59552),v=e(76264),y=e(20798),d=v("isConcatSpreadable"),h=y>=51||!o((function(){var r=[];return r[d]=!1,r.concat()[0]!==r})),g=function(r){if(!i(r))return!1;var t=r[d];return void 0!==t?!!t:a(r)};n({target:"Array",proto:!0,arity:1,forced:!h||!l("concat")},{concat:function(r){var t,e,n,o,a,i=u(this),l=p(i,0),v=0;for(t=-1,n=arguments.length;t<n;t++)if(g(a=-1===t?i:arguments[t]))for(o=c(a),s(v+o),e=0;e<o;e++,v++)e in a&&f(l,v,a[e]);else s(v+1),f(l,v++,a);return l.length=v,l}})},6290:(r,t,e)=>{var n=e(11091),o=e(70726).find,a=e(42156),i="find",u=!0;i in[]&&Array(1)[i]((function(){u=!1})),n({target:"Array",proto:!0,forced:u},{find:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}}),a(i)},95650:(r,t,e)=>{var n=e(11091),o=e(22914);n({target:"Array",proto:!0,forced:[].forEach!==o},{forEach:o})},66391:(r,t,e)=>{var n=e(11091),o=e(92361),a=e(74436).indexOf,i=e(77623),u=o([].indexOf),c=!!u&&1/u([1],1,-0)<0;n({target:"Array",proto:!0,forced:c||!i("indexOf")},{indexOf:function(r){var t=arguments.length>1?arguments[1]:void 0;return c?u(this,r,t)||0:a(this,r,t)}})},92425:(r,t,e)=>{e(11091)({target:"Array",stat:!0},{isArray:e(11793)})},6687:(r,t,e)=>{var n=e(11091),o=e(70726).map;n({target:"Array",proto:!0,forced:!e(59552)("map")},{map:function(r){return o(this,r,arguments.length>1?arguments[1]:void 0)}})},46339:(r,t,e)=>{var n=e(11091),o=e(35043).left,a=e(77623),i=e(20798);n({target:"Array",proto:!0,forced:!e(47586)&&i>79&&i<83||!a("reduce")},{reduce:function(r){var t=arguments.length;return o(this,r,t,t>1?arguments[1]:void 0)}})},62099:(r,t,e)=>{var n=e(11091),o=e(11793),a=e(25468),i=e(46285),u=e(34849),c=e(20575),s=e(27374),f=e(5543),p=e(76264),l=e(59552),v=e(93427),y=l("slice"),d=p("species"),h=Array,g=Math.max;n({target:"Array",proto:!0,forced:!y},{slice:function(r,t){var e,n,p,l=s(this),y=c(l),x=u(r,y),m=u(void 0===t?y:t,y);if(o(l)&&(e=l.constructor,(a(e)&&(e===h||o(e.prototype))||i(e)&&null===(e=e[d]))&&(e=void 0),e===h||void 0===e))return v(l,x,m);for(n=new(void 0===e?h:e)(g(m-x,0)),p=0;x<m;x++,p++)x in l&&f(n,p,l[x]);return n.length=p,n}})},25837:(r,t,e)=>{e(11091)({target:"Object",stat:!0,sham:!e(39447)},{create:e(58075)})},83589:(r,t,e)=>{var n=e(11091),o=e(39298),a=e(2875);n({target:"Object",stat:!0,forced:e(98828)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},42193:(r,t,e)=>{var n=e(11091),o=e(72778);n({global:!0,forced:parseInt!==o},{parseInt:o})},80430:(r,t,e)=>{var n,o=e(11091),a=e(92361),i=e(13846).f,u=e(3121),c=e(90160),s=e(12074),f=e(74239),p=e(25735),l=e(7376),v=a("".slice),y=Math.min,d=p("endsWith");o({target:"String",proto:!0,forced:!(!l&&!d&&(n=i(String.prototype,"endsWith"),n&&!n.writable)||d)},{endsWith:function(r){var t=c(f(this));s(r);var e=arguments.length>1?arguments[1]:void 0,n=t.length,o=void 0===e?n:y(u(e),n),a=c(r);return v(t,o-a.length,o)===a}})},50727:(r,t,e)=>{var n=e(11091),o=e(65993).trim;n({target:"String",proto:!0,forced:e(95819)("trim")},{trim:function(){return o(this)}})},60237:()=>{},18402:(r,t,e)=>{var n=e(13531);r.exports=n},41969:(r,t,e)=>{var n=e(22092);r.exports=n},50530:(r,t,e)=>{var n=e(45837);r.exports=n},85837:(r,t,e)=>{var n=e(64048);r.exports=n},99617:(r,t,e)=>{var n=e(63246);r.exports=n},24525:(r,t,e)=>{var n=e(73948),o=e(49724),a=e(88280),i=e(41969);e(60237);var u=Array.prototype,c={DOMTokenList:!0,NodeList:!0};r.exports=function(r){var t=r.forEach;return r===u||a(u,r)&&t===u.forEach||o(c,n(r))?i:t}},77852:(r,t,e)=>{var n=e(44507);r.exports=n},98894:(r,t,e)=>{var n=e(39299);r.exports=n},79528:(r,t,e)=>{var n=e(28823);r.exports=n},6686:(r,t,e)=>{var n=e(40303);r.exports=n},12217:(r,t,e)=>{var n=e(8661);r.exports=n},93658:(r,t,e)=>{var n=e(80149);r.exports=n},76490:(r,t,e)=>{var n=e(19661);r.exports=n},91921:(r,t,e)=>{var n=e(84326);r.exports=n},79306:(r,t,e)=>{var n=e(94901),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a function")}},35548:(r,t,e)=>{var n=e(33517),o=e(16823),a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not a constructor")}},73506:(r,t,e)=>{var n=e(13925),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a("Can't set "+o(r)+" as a prototype")}},6469:(r,t,e)=>{var n=e(78227),o=e(2360),a=e(24913).f,i=n("unscopables"),u=Array.prototype;void 0===u[i]&&a(u,i,{configurable:!0,value:o(null)}),r.exports=function(r){u[i][r]=!0}},57829:(r,t,e)=>{var n=e(68183).charAt;r.exports=function(r,t,e){return t+(e?n(r,t).length:1)}},90679:(r,t,e)=>{var n=e(1625),o=TypeError;r.exports=function(r,t){if(n(t,r))return r;throw new o("Incorrect invocation")}},28551:(r,t,e)=>{var n=e(20034),o=String,a=TypeError;r.exports=function(r){if(n(r))return r;throw new a(o(r)+" is not an object")}},77811:r=>{r.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},67394:(r,t,e)=>{var n=e(44576),o=e(46706),a=e(22195),i=n.ArrayBuffer,u=n.TypeError;r.exports=i&&o(i.prototype,"byteLength","get")||function(r){if("ArrayBuffer"!==a(r))throw new u("ArrayBuffer expected");return r.byteLength}},3238:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(67394),i=n.ArrayBuffer,u=i&&i.prototype,c=u&&o(u.slice);r.exports=function(r){if(0!==a(r))return!1;if(!c)return!1;try{return c(r,0,0),!1}catch(r){return!0}}},55169:(r,t,e)=>{var n=e(3238),o=TypeError;r.exports=function(r){if(n(r))throw new o("ArrayBuffer is detached");return r}},95636:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(46706),i=e(57696),u=e(55169),c=e(67394),s=e(94483),f=e(1548),p=n.structuredClone,l=n.ArrayBuffer,v=n.DataView,y=Math.min,d=l.prototype,h=v.prototype,g=o(d.slice),x=a(d,"resizable","get"),m=a(d,"maxByteLength","get"),b=o(h.getInt8),w=o(h.setInt8);r.exports=(f||s)&&function(r,t,e){var n,o=c(r),a=void 0===t?o:i(t),d=!x||!x(r);if(u(r),f&&(r=p(r,{transfer:[r]}),o===a&&(e||d)))return r;if(o>=a&&(!e||d))n=g(r,0,a);else{var h=e&&!d&&m?{maxByteLength:m(r)}:void 0;n=new l(a,h);for(var E=new v(r),A=new v(n),T=y(a,o),O=0;O<T;O++)w(A,O,b(E,O))}return f||s(r),n}},94644:(r,t,e)=>{var n,o,a,i=e(77811),u=e(43724),c=e(44576),s=e(94901),f=e(20034),p=e(39297),l=e(36955),v=e(16823),y=e(66699),d=e(36840),h=e(62106),g=e(1625),x=e(42787),m=e(52967),b=e(78227),w=e(33392),E=e(91181),A=E.enforce,T=E.get,O=c.Int8Array,S=O&&O.prototype,C=c.Uint8ClampedArray,I=C&&C.prototype,P=O&&x(O),R=S&&x(S),_=Object.prototype,j=c.TypeError,M=b("toStringTag"),L=w("TYPED_ARRAY_TAG"),N="TypedArrayConstructor",D=i&&!!m&&"Opera"!==l(c.opera),F=!1,k={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},B={BigInt64Array:8,BigUint64Array:8},U=function(r){var t=x(r);if(f(t)){var e=T(t);return e&&p(e,N)?e[N]:U(t)}},V=function(r){if(!f(r))return!1;var t=l(r);return p(k,t)||p(B,t)};for(n in k)(a=(o=c[n])&&o.prototype)?A(a)[N]=o:D=!1;for(n in B)(a=(o=c[n])&&o.prototype)&&(A(a)[N]=o);if((!D||!s(P)||P===Function.prototype)&&(P=function(){throw new j("Incorrect invocation")},D))for(n in k)c[n]&&m(c[n],P);if((!D||!R||R===_)&&(R=P.prototype,D))for(n in k)c[n]&&m(c[n].prototype,R);if(D&&x(I)!==R&&m(I,R),u&&!p(R,M))for(n in F=!0,h(R,M,{configurable:!0,get:function(){return f(this)?this[L]:void 0}}),k)c[n]&&y(c[n],L,n);r.exports={NATIVE_ARRAY_BUFFER_VIEWS:D,TYPED_ARRAY_TAG:F&&L,aTypedArray:function(r){if(V(r))return r;throw new j("Target is not a typed array")},aTypedArrayConstructor:function(r){if(s(r)&&(!m||g(P,r)))return r;throw new j(v(r)+" is not a typed array constructor")},exportTypedArrayMethod:function(r,t,e,n){if(u){if(e)for(var o in k){var a=c[o];if(a&&p(a.prototype,r))try{delete a.prototype[r]}catch(e){try{a.prototype[r]=t}catch(r){}}}R[r]&&!e||d(R,r,e?t:D&&S[r]||t,n)}},exportTypedArrayStaticMethod:function(r,t,e){var n,o;if(u){if(m){if(e)for(n in k)if((o=c[n])&&p(o,r))try{delete o[r]}catch(r){}if(P[r]&&!e)return;try{return d(P,r,e?t:D&&P[r]||t)}catch(r){}}for(n in k)!(o=c[n])||o[r]&&!e||d(o,r,t)}},getTypedArrayConstructor:U,isView:function(r){if(!f(r))return!1;var t=l(r);return"DataView"===t||p(k,t)||p(B,t)},isTypedArray:V,TypedArray:P,TypedArrayPrototype:R}},66346:(r,t,e)=>{var n=e(44576),o=e(79504),a=e(43724),i=e(77811),u=e(10350),c=e(66699),s=e(62106),f=e(56279),p=e(79039),l=e(90679),v=e(91291),y=e(18014),d=e(57696),h=e(15617),g=e(88490),x=e(42787),m=e(52967),b=e(84373),w=e(67680),E=e(23167),A=e(77740),T=e(10687),O=e(91181),S=u.PROPER,C=u.CONFIGURABLE,I="ArrayBuffer",P="DataView",R="prototype",_="Wrong index",j=O.getterFor(I),M=O.getterFor(P),L=O.set,N=n[I],D=N,F=D&&D[R],k=n[P],B=k&&k[R],U=Object.prototype,V=n.Array,Y=n.RangeError,W=o(b),G=o([].reverse),H=g.pack,z=g.unpack,$=function(r){return[255&r]},X=function(r){return[255&r,r>>8&255]},q=function(r){return[255&r,r>>8&255,r>>16&255,r>>24&255]},K=function(r){return r[3]<<24|r[2]<<16|r[1]<<8|r[0]},J=function(r){return H(h(r),23,4)},Q=function(r){return H(r,52,8)},Z=function(r,t,e){s(r[R],t,{configurable:!0,get:function(){return e(this)[t]}})},rr=function(r,t,e,n){var o=M(r),a=d(e),i=!!n;if(a+t>o.byteLength)throw new Y(_);var u=o.bytes,c=a+o.byteOffset,s=w(u,c,c+t);return i?s:G(s)},tr=function(r,t,e,n,o,a){var i=M(r),u=d(e),c=n(+o),s=!!a;if(u+t>i.byteLength)throw new Y(_);for(var f=i.bytes,p=u+i.byteOffset,l=0;l<t;l++)f[p+l]=c[s?l:t-l-1]};if(i){var er=S&&N.name!==I;p((function(){N(1)}))&&p((function(){new N(-1)}))&&!p((function(){return new N,new N(1.5),new N(NaN),1!==N.length||er&&!C}))?er&&C&&c(N,"name",I):((D=function(r){return l(this,F),E(new N(d(r)),this,D)})[R]=F,F.constructor=D,A(D,N)),m&&x(B)!==U&&m(B,U);var nr=new k(new D(2)),or=o(B.setInt8);nr.setInt8(0,2147483648),nr.setInt8(1,2147483649),!nr.getInt8(0)&&nr.getInt8(1)||f(B,{setInt8:function(r,t){or(this,r,t<<24>>24)},setUint8:function(r,t){or(this,r,t<<24>>24)}},{unsafe:!0})}else F=(D=function(r){l(this,F);var t=d(r);L(this,{type:I,bytes:W(V(t),0),byteLength:t}),a||(this.byteLength=t,this.detached=!1)})[R],B=(k=function(r,t,e){l(this,B),l(r,F);var n=j(r),o=n.byteLength,i=v(t);if(i<0||i>o)throw new Y("Wrong offset");if(i+(e=void 0===e?o-i:y(e))>o)throw new Y("Wrong length");L(this,{type:P,buffer:r,byteLength:e,byteOffset:i,bytes:n.bytes}),a||(this.buffer=r,this.byteLength=e,this.byteOffset=i)})[R],a&&(Z(D,"byteLength",j),Z(k,"buffer",M),Z(k,"byteLength",M),Z(k,"byteOffset",M)),f(B,{getInt8:function(r){return rr(this,1,r)[0]<<24>>24},getUint8:function(r){return rr(this,1,r)[0]},getInt16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(r){var t=rr(this,2,r,arguments.length>1&&arguments[1]);return t[1]<<8|t[0]},getInt32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))},getUint32:function(r){return K(rr(this,4,r,arguments.length>1&&arguments[1]))>>>0},getFloat32:function(r){return z(rr(this,4,r,arguments.length>1&&arguments[1]),23)},getFloat64:function(r){return z(rr(this,8,r,arguments.length>1&&arguments[1]),52)},setInt8:function(r,t){tr(this,1,r,$,t)},setUint8:function(r,t){tr(this,1,r,$,t)},setInt16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setUint16:function(r,t){tr(this,2,r,X,t,arguments.length>2&&arguments[2])},setInt32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setUint32:function(r,t){tr(this,4,r,q,t,arguments.length>2&&arguments[2])},setFloat32:function(r,t){tr(this,4,r,J,t,arguments.length>2&&arguments[2])},setFloat64:function(r,t){tr(this,8,r,Q,t,arguments.length>2&&arguments[2])}});T(D,I),T(k,P),r.exports={ArrayBuffer:D,DataView:k}},57029:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198),i=e(84606),u=Math.min;r.exports=[].copyWithin||function(r,t){var e=n(this),c=a(e),s=o(r,c),f=o(t,c),p=arguments.length>2?arguments[2]:void 0,l=u((void 0===p?c:o(p,c))-f,c-s),v=1;for(f<s&&s<f+l&&(v=-1,f+=l-1,s+=l-1);l-- >0;)f in e?e[s]=e[f]:i(e,s),s+=v,f+=v;return e}},84373:(r,t,e)=>{var n=e(48981),o=e(35610),a=e(26198);r.exports=function(r){for(var t=n(this),e=a(t),i=arguments.length,u=o(i>1?arguments[1]:void 0,e),c=i>2?arguments[2]:void 0,s=void 0===c?e:o(c,e);s>u;)t[u++]=r;return t}},35370:(r,t,e)=>{var n=e(26198);r.exports=function(r,t,e){for(var o=0,a=arguments.length>2?e:n(t),i=new r(a);a>o;)i[o]=t[o++];return i}},19617:(r,t,e)=>{var n=e(25397),o=e(35610),a=e(26198),i=function(r){return function(t,e,i){var u=n(t),c=a(u);if(0===c)return!r&&-1;var s,f=o(i,c);if(r&&e!=e){for(;c>f;)if((s=u[f++])!=s)return!0}else for(;c>f;f++)if((r||f in u)&&u[f]===e)return r||f||0;return!r&&-1}};r.exports={includes:i(!0),indexOf:i(!1)}},43839:(r,t,e)=>{var n=e(76080),o=e(47055),a=e(48981),i=e(26198),u=function(r){var t=1===r;return function(e,u,c){for(var s,f=a(e),p=o(f),l=i(p),v=n(u,c);l-- >0;)if(v(s=p[l],l,f))switch(r){case 0:return s;case 1:return l}return t?-1:void 0}};r.exports={findLast:u(0),findLastIndex:u(1)}},59213:(r,t,e)=>{var n=e(76080),o=e(79504),a=e(47055),i=e(48981),u=e(26198),c=e(1469),s=o([].push),f=function(r){var t=1===r,e=2===r,o=3===r,f=4===r,p=6===r,l=7===r,v=5===r||p;return function(y,d,h,g){for(var x,m,b=i(y),w=a(b),E=u(w),A=n(d,h),T=0,O=g||c,S=t?O(y,E):e||l?O(y,0):void 0;E>T;T++)if((v||T in w)&&(m=A(x=w[T],T,b),r))if(t)S[T]=m;else if(m)switch(r){case 3:return!0;case 5:return x;case 6:return T;case 2:s(S,x)}else switch(r){case 4:return!1;case 7:s(S,x)}return p?-1:o||f?f:S}};r.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},8379:(r,t,e)=>{var n=e(18745),o=e(25397),a=e(91291),i=e(26198),u=e(34598),c=Math.min,s=[].lastIndexOf,f=!!s&&1/[1].lastIndexOf(1,-0)<0,p=u("lastIndexOf"),l=f||!p;r.exports=l?function(r){if(f)return n(s,this,arguments)||0;var t=o(this),e=i(t);if(0===e)return-1;var u=e-1;for(arguments.length>1&&(u=c(u,a(arguments[1]))),u<0&&(u=e+u);u>=0;u--)if(u in t&&t[u]===r)return u||0;return-1}:s},34598:(r,t,e)=>{var n=e(79039);r.exports=function(r,t){var e=[][r];return!!e&&n((function(){e.call(null,t||function(){return 1},1)}))}},80926:(r,t,e)=>{var n=e(79306),o=e(48981),a=e(47055),i=e(26198),u=TypeError,c="Reduce of empty array with no initial value",s=function(r){return function(t,e,s,f){var p=o(t),l=a(p),v=i(p);if(n(e),0===v&&s<2)throw new u(c);var y=r?v-1:0,d=r?-1:1;if(s<2)for(;;){if(y in l){f=l[y],y+=d;break}if(y+=d,r?y<0:v<=y)throw new u(c)}for(;r?y>=0:v>y;y+=d)y in l&&(f=e(f,l[y],y,p));return f}};r.exports={left:s(!1),right:s(!0)}},67680:(r,t,e)=>{var n=e(79504);r.exports=n([].slice)},74488:(r,t,e)=>{var n=e(67680),o=Math.floor,a=function(r,t){var e=r.length;if(e<8)for(var i,u,c=1;c<e;){for(u=c,i=r[c];u&&t(r[u-1],i)>0;)r[u]=r[--u];u!==c++&&(r[u]=i)}else for(var s=o(e/2),f=a(n(r,0,s),t),p=a(n(r,s),t),l=f.length,v=p.length,y=0,d=0;y<l||d<v;)r[y+d]=y<l&&d<v?t(f[y],p[d])<=0?f[y++]:p[d++]:y<l?f[y++]:p[d++];return r};r.exports=a},87433:(r,t,e)=>{var n=e(34376),o=e(33517),a=e(20034),i=e(78227)("species"),u=Array;r.exports=function(r){var t;return n(r)&&(t=r.constructor,(o(t)&&(t===u||n(t.prototype))||a(t)&&null===(t=t[i]))&&(t=void 0)),void 0===t?u:t}},1469:(r,t,e)=>{var n=e(87433);r.exports=function(r,t){return new(n(r))(0===t?0:t)}},37628:(r,t,e)=>{var n=e(26198);r.exports=function(r,t){for(var e=n(r),o=new t(e),a=0;a<e;a++)o[a]=r[e-a-1];return o}},39928:(r,t,e)=>{var n=e(26198),o=e(91291),a=RangeError;r.exports=function(r,t,e,i){var u=n(r),c=o(e),s=c<0?u+c:c;if(s>=u||s<0)throw new a("Incorrect index");for(var f=new t(u),p=0;p<u;p++)f[p]=p===s?i:r[p];return f}},84428:(r,t,e)=>{var n=e(78227)("iterator"),o=!1;try{var a=0,i={next:function(){return{done:!!a++}},return:function(){o=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(r){}r.exports=function(r,t){try{if(!t&&!o)return!1}catch(r){return!1}var e=!1;try{var a={};a[n]=function(){return{next:function(){return{done:e=!0}}}},r(a)}catch(r){}return e}},22195:(r,t,e)=>{var n=e(79504),o=n({}.toString),a=n("".slice);r.exports=function(r){return a(o(r),8,-1)}},36955:(r,t,e)=>{var n=e(92140),o=e(94901),a=e(22195),i=e(78227)("toStringTag"),u=Object,c="Arguments"===a(function(){return arguments}());r.exports=n?a:function(r){var t,e,n;return void 0===r?"Undefined":null===r?"Null":"string"==typeof(e=function(r,t){try{return r[t]}catch(r){}}(t=u(r),i))?e:c?a(t):"Object"===(n=a(t))&&o(t.callee)?"Arguments":n}},77740:(r,t,e)=>{var n=e(39297),o=e(35031),a=e(77347),i=e(24913);r.exports=function(r,t,e){for(var u=o(t),c=i.f,s=a.f,f=0;f<u.length;f++){var p=u[f];n(r,p)||e&&n(e,p)||c(r,p,s(t,p))}}},12211:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype}))},62529:r=>{r.exports=function(r,t){return{value:r,done:t}}},66699:(r,t,e)=>{var n=e(43724),o=e(24913),a=e(6980);r.exports=n?function(r,t,e){return o.f(r,t,a(1,e))}:function(r,t,e){return r[t]=e,r}},6980:r=>{r.exports=function(r,t){return{enumerable:!(1&r),configurable:!(2&r),writable:!(4&r),value:t}}},62106:(r,t,e)=>{var n=e(50283),o=e(24913);r.exports=function(r,t,e){return e.get&&n(e.get,t,{getter:!0}),e.set&&n(e.set,t,{setter:!0}),o.f(r,t,e)}},36840:(r,t,e)=>{var n=e(94901),o=e(24913),a=e(50283),i=e(39433);r.exports=function(r,t,e,u){u||(u={});var c=u.enumerable,s=void 0!==u.name?u.name:t;if(n(e)&&a(e,s,u),u.global)c?r[t]=e:i(t,e);else{try{u.unsafe?r[t]&&(c=!0):delete r[t]}catch(r){}c?r[t]=e:o.f(r,t,{value:e,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return r}},56279:(r,t,e)=>{var n=e(36840);r.exports=function(r,t,e){for(var o in t)n(r,o,t[o],e);return r}},39433:(r,t,e)=>{var n=e(44576),o=Object.defineProperty;r.exports=function(r,t){try{o(n,r,{value:t,configurable:!0,writable:!0})}catch(e){n[r]=t}return t}},84606:(r,t,e)=>{var n=e(16823),o=TypeError;r.exports=function(r,t){if(!delete r[t])throw new o("Cannot delete property "+n(t)+" of "+n(r))}},43724:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},94483:(r,t,e)=>{var n,o,a,i,u=e(44576),c=e(89429),s=e(1548),f=u.structuredClone,p=u.ArrayBuffer,l=u.MessageChannel,v=!1;if(s)v=function(r){f(r,{transfer:[r]})};else if(p)try{l||(n=c("worker_threads"))&&(l=n.MessageChannel),l&&(o=new l,a=new p(2),i=function(r){o.port1.postMessage(null,[r])},2===a.byteLength&&(i(a),0===a.byteLength&&(v=i)))}catch(r){}r.exports=v},4055:(r,t,e)=>{var n=e(44576),o=e(20034),a=n.document,i=o(a)&&o(a.createElement);r.exports=function(r){return i?a.createElement(r):{}}},88727:r=>{r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},13709:(r,t,e)=>{var n=e(82839).match(/firefox\/(\d+)/i);r.exports=!!n&&+n[1]},13763:(r,t,e)=>{var n=e(82839);r.exports=/MSIE|Trident/.test(n)},38574:(r,t,e)=>{var n=e(84215);r.exports="NODE"===n},82839:(r,t,e)=>{var n=e(44576).navigator,o=n&&n.userAgent;r.exports=o?String(o):""},39519:(r,t,e)=>{var n,o,a=e(44576),i=e(82839),u=a.process,c=a.Deno,s=u&&u.versions||c&&c.version,f=s&&s.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1])),!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]),r.exports=o},3607:(r,t,e)=>{var n=e(82839).match(/AppleWebKit\/(\d+)\./);r.exports=!!n&&+n[1]},84215:(r,t,e)=>{var n=e(44576),o=e(82839),a=e(22195),i=function(r){return o.slice(0,r.length)===r};r.exports=i("Bun/")?"BUN":i("Cloudflare-Workers")?"CLOUDFLARE":i("Deno/")?"DENO":i("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},16193:(r,t,e)=>{var n=e(79504),o=Error,a=n("".replace),i=String(new o("zxcasd").stack),u=/\n\s*at [^:]*:[^\n]*/,c=u.test(i);r.exports=function(r,t){if(c&&"string"==typeof r&&!o.prepareStackTrace)for(;t--;)r=a(r,u,"");return r}},80747:(r,t,e)=>{var n=e(66699),o=e(16193),a=e(24659),i=Error.captureStackTrace;r.exports=function(r,t,e,u){a&&(i?i(r,t):n(r,"stack",o(e,u)))}},24659:(r,t,e)=>{var n=e(79039),o=e(6980);r.exports=!n((function(){var r=new Error("a");return!("stack"in r)||(Object.defineProperty(r,"stack",o(1,7)),7!==r.stack)}))},77536:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(28551),i=e(32603),u=Error.prototype.toString,c=o((function(){if(n){var r=Object.create(Object.defineProperty({},"name",{get:function(){return this===r}}));if("true"!==u.call(r))return!0}return"2: 1"!==u.call({message:1,name:2})||"Error"!==u.call({})}));r.exports=c?function(){var r=a(this),t=i(r.name,"Error"),e=i(r.message);return t?e?t+": "+e:t:e}:u},46518:(r,t,e)=>{var n=e(44576),o=e(77347).f,a=e(66699),i=e(36840),u=e(39433),c=e(77740),s=e(92796);r.exports=function(r,t){var e,f,p,l,v,y=r.target,d=r.global,h=r.stat;if(e=d?n:h?n[y]||u(y,{}):n[y]&&n[y].prototype)for(f in t){if(l=t[f],p=r.dontCallGetSet?(v=o(e,f))&&v.value:e[f],!s(d?f:y+(h?".":"#")+f,r.forced)&&void 0!==p){if(typeof l==typeof p)continue;c(l,p)}(r.sham||p&&p.sham)&&a(l,"sham",!0),i(e,f,l,r)}}},79039:r=>{r.exports=function(r){try{return!!r()}catch(r){return!0}}},89228:(r,t,e)=>{e(27495);var n=e(69565),o=e(36840),a=e(57323),i=e(79039),u=e(78227),c=e(66699),s=u("species"),f=RegExp.prototype;r.exports=function(r,t,e,p){var l=u(r),v=!i((function(){var t={};return t[l]=function(){return 7},7!==""[r](t)})),y=v&&!i((function(){var t=!1,e=/a/;return"split"===r&&((e={}).constructor={},e.constructor[s]=function(){return e},e.flags="",e[l]=/./[l]),e.exec=function(){return t=!0,null},e[l](""),!t}));if(!v||!y||e){var d=/./[l],h=t(l,""[r],(function(r,t,e,o,i){var u=t.exec;return u===a||u===f.exec?v&&!i?{done:!0,value:n(d,t,e,o)}:{done:!0,value:n(r,e,t,o)}:{done:!1}}));o(String.prototype,r,h[0]),o(f,l,h[1])}p&&c(f[l],"sham",!0)}},18745:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.apply,i=o.call;r.exports="object"==typeof Reflect&&Reflect.apply||(n?i.bind(a):function(){return i.apply(a,arguments)})},76080:(r,t,e)=>{var n=e(27476),o=e(79306),a=e(40616),i=n(n.bind);r.exports=function(r,t){return o(r),void 0===t?r:a?i(r,t):function(){return r.apply(t,arguments)}}},40616:(r,t,e)=>{var n=e(79039);r.exports=!n((function(){var r=function(){}.bind();return"function"!=typeof r||r.hasOwnProperty("prototype")}))},69565:(r,t,e)=>{var n=e(40616),o=Function.prototype.call;r.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},10350:(r,t,e)=>{var n=e(43724),o=e(39297),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,u=o(a,"name"),c=u&&"something"===function(){}.name,s=u&&(!n||n&&i(a,"name").configurable);r.exports={EXISTS:u,PROPER:c,CONFIGURABLE:s}},46706:(r,t,e)=>{var n=e(79504),o=e(79306);r.exports=function(r,t,e){try{return n(o(Object.getOwnPropertyDescriptor(r,t)[e]))}catch(r){}}},27476:(r,t,e)=>{var n=e(22195),o=e(79504);r.exports=function(r){if("Function"===n(r))return o(r)}},79504:(r,t,e)=>{var n=e(40616),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);r.exports=n?i:function(r){return function(){return a.apply(r,arguments)}}},89429:(r,t,e)=>{var n=e(44576),o=e(38574);r.exports=function(r){if(o){try{return n.process.getBuiltinModule(r)}catch(r){}try{return Function('return require("'+r+'")')()}catch(r){}}}},97751:(r,t,e)=>{var n=e(44576),o=e(94901);r.exports=function(r,t){return arguments.length<2?(e=n[r],o(e)?e:void 0):n[r]&&n[r][t];var e}},50851:(r,t,e)=>{var n=e(36955),o=e(55966),a=e(64117),i=e(26269),u=e(78227)("iterator");r.exports=function(r){if(!a(r))return o(r,u)||o(r,"@@iterator")||i[n(r)]}},70081:(r,t,e)=>{var n=e(69565),o=e(79306),a=e(28551),i=e(16823),u=e(50851),c=TypeError;r.exports=function(r,t){var e=arguments.length<2?u(r):t;if(o(e))return a(n(e,r));throw new c(i(r)+" is not iterable")}},55966:(r,t,e)=>{var n=e(79306),o=e(64117);r.exports=function(r,t){var e=r[t];return o(e)?void 0:n(e)}},2478:(r,t,e)=>{var n=e(79504),o=e(48981),a=Math.floor,i=n("".charAt),u=n("".replace),c=n("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;r.exports=function(r,t,e,n,p,l){var v=e+r.length,y=n.length,d=f;return void 0!==p&&(p=o(p),d=s),u(l,d,(function(o,u){var s;switch(i(u,0)){case"$":return"$";case"&":return r;case"`":return c(t,0,e);case"'":return c(t,v);case"<":s=p[c(u,1,-1)];break;default:var f=+u;if(0===f)return o;if(f>y){var l=a(f/10);return 0===l?o:l<=y?void 0===n[l-1]?i(u,1):n[l-1]+i(u,1):o}s=n[f-1]}return void 0===s?"":s}))}},44576:function(r,t,e){var n=function(r){return r&&r.Math===Math&&r};r.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e.g&&e.g)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()},39297:(r,t,e)=>{var n=e(79504),o=e(48981),a=n({}.hasOwnProperty);r.exports=Object.hasOwn||function(r,t){return a(o(r),t)}},30421:r=>{r.exports={}},20397:(r,t,e)=>{var n=e(97751);r.exports=n("document","documentElement")},35917:(r,t,e)=>{var n=e(43724),o=e(79039),a=e(4055);r.exports=!n&&!o((function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a}))},88490:r=>{var t=Array,e=Math.abs,n=Math.pow,o=Math.floor,a=Math.log,i=Math.LN2;r.exports={pack:function(r,u,c){var s,f,p,l=t(c),v=8*c-u-1,y=(1<<v)-1,d=y>>1,h=23===u?n(2,-24)-n(2,-77):0,g=r<0||0===r&&1/r<0?1:0,x=0;for((r=e(r))!=r||r===1/0?(f=r!=r?1:0,s=y):(s=o(a(r)/i),r*(p=n(2,-s))<1&&(s--,p*=2),(r+=s+d>=1?h/p:h*n(2,1-d))*p>=2&&(s++,p/=2),s+d>=y?(f=0,s=y):s+d>=1?(f=(r*p-1)*n(2,u),s+=d):(f=r*n(2,d-1)*n(2,u),s=0));u>=8;)l[x++]=255&f,f/=256,u-=8;for(s=s<<u|f,v+=u;v>0;)l[x++]=255&s,s/=256,v-=8;return l[x-1]|=128*g,l},unpack:function(r,t){var e,o=r.length,a=8*o-t-1,i=(1<<a)-1,u=i>>1,c=a-7,s=o-1,f=r[s--],p=127&f;for(f>>=7;c>0;)p=256*p+r[s--],c-=8;for(e=p&(1<<-c)-1,p>>=-c,c+=t;c>0;)e=256*e+r[s--],c-=8;if(0===p)p=1-u;else{if(p===i)return e?NaN:f?-1/0:1/0;e+=n(2,t),p-=u}return(f?-1:1)*e*n(2,p-t)}}},47055:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(22195),i=Object,u=n("".split);r.exports=o((function(){return!i("z").propertyIsEnumerable(0)}))?function(r){return"String"===a(r)?u(r,""):i(r)}:i},23167:(r,t,e)=>{var n=e(94901),o=e(20034),a=e(52967);r.exports=function(r,t,e){var i,u;return a&&n(i=t.constructor)&&i!==e&&o(u=i.prototype)&&u!==e.prototype&&a(r,u),r}},33706:(r,t,e)=>{var n=e(79504),o=e(94901),a=e(77629),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(r){return i(r)}),r.exports=a.inspectSource},77584:(r,t,e)=>{var n=e(20034),o=e(66699);r.exports=function(r,t){n(t)&&"cause"in t&&o(r,"cause",t.cause)}},91181:(r,t,e)=>{var n,o,a,i=e(58622),u=e(44576),c=e(20034),s=e(66699),f=e(39297),p=e(77629),l=e(66119),v=e(30421),y="Object already initialized",d=u.TypeError,h=u.WeakMap;if(i||p.state){var g=p.state||(p.state=new h);g.get=g.get,g.has=g.has,g.set=g.set,n=function(r,t){if(g.has(r))throw new d(y);return t.facade=r,g.set(r,t),t},o=function(r){return g.get(r)||{}},a=function(r){return g.has(r)}}else{var x=l("state");v[x]=!0,n=function(r,t){if(f(r,x))throw new d(y);return t.facade=r,s(r,x,t),t},o=function(r){return f(r,x)?r[x]:{}},a=function(r){return f(r,x)}}r.exports={set:n,get:o,has:a,enforce:function(r){return a(r)?o(r):n(r,{})},getterFor:function(r){return function(t){var e;if(!c(t)||(e=o(t)).type!==r)throw new d("Incompatible receiver, "+r+" required");return e}}}},44209:(r,t,e)=>{var n=e(78227),o=e(26269),a=n("iterator"),i=Array.prototype;r.exports=function(r){return void 0!==r&&(o.Array===r||i[a]===r)}},34376:(r,t,e)=>{var n=e(22195);r.exports=Array.isArray||function(r){return"Array"===n(r)}},18727:(r,t,e)=>{var n=e(36955);r.exports=function(r){var t=n(r);return"BigInt64Array"===t||"BigUint64Array"===t}},94901:r=>{var t="object"==typeof document&&document.all;r.exports=void 0===t&&void 0!==t?function(r){return"function"==typeof r||r===t}:function(r){return"function"==typeof r}},33517:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(36955),u=e(97751),c=e(33706),s=function(){},f=u("Reflect","construct"),p=/^\s*(?:class|function)\b/,l=n(p.exec),v=!p.test(s),y=function(r){if(!a(r))return!1;try{return f(s,[],r),!0}catch(r){return!1}},d=function(r){if(!a(r))return!1;switch(i(r)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!l(p,c(r))}catch(r){return!0}};d.sham=!0,r.exports=!f||o((function(){var r;return y(y.call)||!y(Object)||!y((function(){r=!0}))||r}))?d:y},92796:(r,t,e)=>{var n=e(79039),o=e(94901),a=/#|\.prototype\./,i=function(r,t){var e=c[u(r)];return e===f||e!==s&&(o(t)?n(t):!!t)},u=i.normalize=function(r){return String(r).replace(a,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",f=i.POLYFILL="P";r.exports=i},2087:(r,t,e)=>{var n=e(20034),o=Math.floor;r.exports=Number.isInteger||function(r){return!n(r)&&isFinite(r)&&o(r)===r}},64117:r=>{r.exports=function(r){return null==r}},20034:(r,t,e)=>{var n=e(94901);r.exports=function(r){return"object"==typeof r?null!==r:n(r)}},13925:(r,t,e)=>{var n=e(20034);r.exports=function(r){return n(r)||null===r}},96395:r=>{r.exports=!1},60788:(r,t,e)=>{var n=e(20034),o=e(22195),a=e(78227)("match");r.exports=function(r){var t;return n(r)&&(void 0!==(t=r[a])?!!t:"RegExp"===o(r))}},10757:(r,t,e)=>{var n=e(97751),o=e(94901),a=e(1625),i=e(7040),u=Object;r.exports=i?function(r){return"symbol"==typeof r}:function(r){var t=n("Symbol");return o(t)&&a(t.prototype,u(r))}},33994:(r,t,e)=>{var n=e(57657).IteratorPrototype,o=e(2360),a=e(6980),i=e(10687),u=e(26269),c=function(){return this};r.exports=function(r,t,e,s){var f=t+" Iterator";return r.prototype=o(n,{next:a(+!s,e)}),i(r,f,!1,!0),u[f]=c,r}},51088:(r,t,e)=>{var n=e(46518),o=e(69565),a=e(96395),i=e(10350),u=e(94901),c=e(33994),s=e(42787),f=e(52967),p=e(10687),l=e(66699),v=e(36840),y=e(78227),d=e(26269),h=e(57657),g=i.PROPER,x=i.CONFIGURABLE,m=h.IteratorPrototype,b=h.BUGGY_SAFARI_ITERATORS,w=y("iterator"),E="keys",A="values",T="entries",O=function(){return this};r.exports=function(r,t,e,i,y,h,S){c(e,t,i);var C,I,P,R=function(r){if(r===y&&N)return N;if(!b&&r&&r in M)return M[r];switch(r){case E:case A:case T:return function(){return new e(this,r)}}return function(){return new e(this)}},_=t+" Iterator",j=!1,M=r.prototype,L=M[w]||M["@@iterator"]||y&&M[y],N=!b&&L||R(y),D="Array"===t&&M.entries||L;if(D&&(C=s(D.call(new r)))!==Object.prototype&&C.next&&(a||s(C)===m||(f?f(C,m):u(C[w])||v(C,w,O)),p(C,_,!0,!0),a&&(d[_]=O)),g&&y===A&&L&&L.name!==A&&(!a&&x?l(M,"name",A):(j=!0,N=function(){return o(L,this)})),y)if(I={values:R(A),keys:h?N:R(E),entries:R(T)},S)for(P in I)(b||j||!(P in M))&&v(M,P,I[P]);else n({target:t,proto:!0,forced:b||j},I);return a&&!S||M[w]===N||v(M,w,N,{name:y}),d[t]=N,I}},57657:(r,t,e)=>{var n,o,a,i=e(79039),u=e(94901),c=e(20034),s=e(2360),f=e(42787),p=e(36840),l=e(78227),v=e(96395),y=l("iterator"),d=!1;[].keys&&("next"in(a=[].keys())?(o=f(f(a)))!==Object.prototype&&(n=o):d=!0),!c(n)||i((function(){var r={};return n[y].call(r)!==r}))?n={}:v&&(n=s(n)),u(n[y])||p(n,y,(function(){return this})),r.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:d}},26269:r=>{r.exports={}},26198:(r,t,e)=>{var n=e(18014);r.exports=function(r){return n(r.length)}},50283:(r,t,e)=>{var n=e(79504),o=e(79039),a=e(94901),i=e(39297),u=e(43724),c=e(10350).CONFIGURABLE,s=e(33706),f=e(91181),p=f.enforce,l=f.get,v=String,y=Object.defineProperty,d=n("".slice),h=n("".replace),g=n([].join),x=u&&!o((function(){return 8!==y((function(){}),"length",{value:8}).length})),m=String(String).split("String"),b=r.exports=function(r,t,e){"Symbol("===d(v(t),0,7)&&(t="["+h(v(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),e&&e.getter&&(t="get "+t),e&&e.setter&&(t="set "+t),(!i(r,"name")||c&&r.name!==t)&&(u?y(r,"name",{value:t,configurable:!0}):r.name=t),x&&e&&i(e,"arity")&&r.length!==e.arity&&y(r,"length",{value:e.arity});try{e&&i(e,"constructor")&&e.constructor?u&&y(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch(r){}var n=p(r);return i(n,"source")||(n.source=g(m,"string"==typeof t?t:"")),r};Function.prototype.toString=b((function(){return a(this)&&l(this).source||s(this)}),"toString")},33164:(r,t,e)=>{var n=e(77782),o=Math.abs,a=2220446049250313e-31,i=1/a;r.exports=function(r,t,e,u){var c=+r,s=o(c),f=n(c);if(s<u)return f*function(r){return r+i-i}(s/u/t)*u*t;var p=(1+t/a)*s,l=p-(p-s);return l>e||l!=l?f*(1/0):f*l}},15617:(r,t,e)=>{var n=e(33164);r.exports=Math.fround||function(r){return n(r,1.1920928955078125e-7,34028234663852886e22,11754943508222875e-54)}},77782:r=>{r.exports=Math.sign||function(r){var t=+r;return 0===t||t!=t?t:t<0?-1:1}},80741:r=>{var t=Math.ceil,e=Math.floor;r.exports=Math.trunc||function(r){var n=+r;return(n>0?e:t)(n)}},32603:(r,t,e)=>{var n=e(655);r.exports=function(r,t){return void 0===r?arguments.length<2?"":t:n(r)}},2360:(r,t,e)=>{var n,o=e(28551),a=e(96801),i=e(88727),u=e(30421),c=e(20397),s=e(4055),f=e(66119),p="prototype",l="script",v=f("IE_PROTO"),y=function(){},d=function(r){return"<"+l+">"+r+"</"+l+">"},h=function(r){r.write(d("")),r.close();var t=r.parentWindow.Object;return r=null,t},g=function(){try{n=new ActiveXObject("htmlfile")}catch(r){}var r,t,e;g="undefined"!=typeof document?document.domain&&n?h(n):(t=s("iframe"),e="java"+l+":",t.style.display="none",c.appendChild(t),t.src=String(e),(r=t.contentWindow.document).open(),r.write(d("document.F=Object")),r.close(),r.F):h(n);for(var o=i.length;o--;)delete g[p][i[o]];return g()};u[v]=!0,r.exports=Object.create||function(r,t){var e;return null!==r?(y[p]=o(r),e=new y,y[p]=null,e[v]=r):e=g(),void 0===t?e:a.f(e,t)}},96801:(r,t,e)=>{var n=e(43724),o=e(48686),a=e(24913),i=e(28551),u=e(25397),c=e(71072);t.f=n&&!o?Object.defineProperties:function(r,t){i(r);for(var e,n=u(t),o=c(t),s=o.length,f=0;s>f;)a.f(r,e=o[f++],n[e]);return r}},24913:(r,t,e)=>{var n=e(43724),o=e(35917),a=e(48686),i=e(28551),u=e(56969),c=TypeError,s=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p="enumerable",l="configurable",v="writable";t.f=n?a?function(r,t,e){if(i(r),t=u(t),i(e),"function"==typeof r&&"prototype"===t&&"value"in e&&v in e&&!e[v]){var n=f(r,t);n&&n[v]&&(r[t]=e.value,e={configurable:l in e?e[l]:n[l],enumerable:p in e?e[p]:n[p],writable:!1})}return s(r,t,e)}:s:function(r,t,e){if(i(r),t=u(t),i(e),o)try{return s(r,t,e)}catch(r){}if("get"in e||"set"in e)throw new c("Accessors not supported");return"value"in e&&(r[t]=e.value),r}},77347:(r,t,e)=>{var n=e(43724),o=e(69565),a=e(48773),i=e(6980),u=e(25397),c=e(56969),s=e(39297),f=e(35917),p=Object.getOwnPropertyDescriptor;t.f=n?p:function(r,t){if(r=u(r),t=c(t),f)try{return p(r,t)}catch(r){}if(s(r,t))return i(!o(a.f,r,t),r[t])}},38480:(r,t,e)=>{var n=e(61828),o=e(88727).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(r){return n(r,o)}},33717:(r,t)=>{t.f=Object.getOwnPropertySymbols},42787:(r,t,e)=>{var n=e(39297),o=e(94901),a=e(48981),i=e(66119),u=e(12211),c=i("IE_PROTO"),s=Object,f=s.prototype;r.exports=u?s.getPrototypeOf:function(r){var t=a(r);if(n(t,c))return t[c];var e=t.constructor;return o(e)&&t instanceof e?e.prototype:t instanceof s?f:null}},1625:(r,t,e)=>{var n=e(79504);r.exports=n({}.isPrototypeOf)},61828:(r,t,e)=>{var n=e(79504),o=e(39297),a=e(25397),i=e(19617).indexOf,u=e(30421),c=n([].push);r.exports=function(r,t){var e,n=a(r),s=0,f=[];for(e in n)!o(u,e)&&o(n,e)&&c(f,e);for(;t.length>s;)o(n,e=t[s++])&&(~i(f,e)||c(f,e));return f}},71072:(r,t,e)=>{var n=e(61828),o=e(88727);r.exports=Object.keys||function(r){return n(r,o)}},48773:(r,t)=>{var e={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!e.call({1:2},1);t.f=o?function(r){var t=n(this,r);return!!t&&t.enumerable}:e},52967:(r,t,e)=>{var n=e(46706),o=e(20034),a=e(67750),i=e(73506);r.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r,t=!1,e={};try{(r=n(Object.prototype,"__proto__","set"))(e,[]),t=e instanceof Array}catch(r){}return function(e,n){return a(e),i(n),o(e)?(t?r(e,n):e.__proto__=n,e):e}}():void 0)},53179:(r,t,e)=>{var n=e(92140),o=e(36955);r.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},84270:(r,t,e)=>{var n=e(69565),o=e(94901),a=e(20034),i=TypeError;r.exports=function(r,t){var e,u;if("string"===t&&o(e=r.toString)&&!a(u=n(e,r)))return u;if(o(e=r.valueOf)&&!a(u=n(e,r)))return u;if("string"!==t&&o(e=r.toString)&&!a(u=n(e,r)))return u;throw new i("Can't convert object to primitive value")}},35031:(r,t,e)=>{var n=e(97751),o=e(79504),a=e(38480),i=e(33717),u=e(28551),c=o([].concat);r.exports=n("Reflect","ownKeys")||function(r){var t=a.f(u(r)),e=i.f;return e?c(t,e(r)):t}},19167:(r,t,e)=>{var n=e(44576);r.exports=n},11056:(r,t,e)=>{var n=e(24913).f;r.exports=function(r,t,e){e in r||n(r,e,{configurable:!0,get:function(){return t[e]},set:function(r){t[e]=r}})}},56682:(r,t,e)=>{var n=e(69565),o=e(28551),a=e(94901),i=e(22195),u=e(57323),c=TypeError;r.exports=function(r,t){var e=r.exec;if(a(e)){var s=n(e,r,t);return null!==s&&o(s),s}if("RegExp"===i(r))return n(u,r,t);throw new c("RegExp#exec called on incompatible receiver")}},57323:(r,t,e)=>{var n,o,a=e(69565),i=e(79504),u=e(655),c=e(67979),s=e(58429),f=e(25745),p=e(2360),l=e(91181).get,v=e(83635),y=e(18814),d=f("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,g=h,x=i("".charAt),m=i("".indexOf),b=i("".replace),w=i("".slice),E=(o=/b*/g,a(h,n=/a/,"a"),a(h,o,"a"),0!==n.lastIndex||0!==o.lastIndex),A=s.BROKEN_CARET,T=void 0!==/()??/.exec("")[1];(E||T||A||v||y)&&(g=function(r){var t,e,n,o,i,s,f,v=this,y=l(v),O=u(r),S=y.raw;if(S)return S.lastIndex=v.lastIndex,t=a(g,S,O),v.lastIndex=S.lastIndex,t;var C=y.groups,I=A&&v.sticky,P=a(c,v),R=v.source,_=0,j=O;if(I&&(P=b(P,"y",""),-1===m(P,"g")&&(P+="g"),j=w(O,v.lastIndex),v.lastIndex>0&&(!v.multiline||v.multiline&&"\n"!==x(O,v.lastIndex-1))&&(R="(?: "+R+")",j=" "+j,_++),e=new RegExp("^(?:"+R+")",P)),T&&(e=new RegExp("^"+R+"$(?!\\s)",P)),E&&(n=v.lastIndex),o=a(h,I?e:v,j),I?o?(o.input=w(o.input,_),o[0]=w(o[0],_),o.index=v.lastIndex,v.lastIndex+=o[0].length):v.lastIndex=0:E&&o&&(v.lastIndex=v.global?o.index+o[0].length:n),T&&o&&o.length>1&&a(d,o[0],e,(function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(o[i]=void 0)})),o&&C)for(o.groups=s=p(null),i=0;i<C.length;i++)s[(f=C[i])[0]]=o[f[1]];return o}),r.exports=g},67979:(r,t,e)=>{var n=e(28551);r.exports=function(){var r=n(this),t="";return r.hasIndices&&(t+="d"),r.global&&(t+="g"),r.ignoreCase&&(t+="i"),r.multiline&&(t+="m"),r.dotAll&&(t+="s"),r.unicode&&(t+="u"),r.unicodeSets&&(t+="v"),r.sticky&&(t+="y"),t}},61034:(r,t,e)=>{var n=e(69565),o=e(39297),a=e(1625),i=e(67979),u=RegExp.prototype;r.exports=function(r){var t=r.flags;return void 0!==t||"flags"in u||o(r,"flags")||!a(u,r)?t:n(i,r)}},58429:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp,a=n((function(){var r=o("a","y");return r.lastIndex=2,null!==r.exec("abcd")})),i=a||n((function(){return!o("a","y").sticky})),u=a||n((function(){var r=o("^r","gy");return r.lastIndex=2,null!==r.exec("str")}));r.exports={BROKEN_CARET:u,MISSED_STICKY:i,UNSUPPORTED_Y:a}},83635:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o(".","s");return!(r.dotAll&&r.test("\n")&&"s"===r.flags)}))},18814:(r,t,e)=>{var n=e(79039),o=e(44576).RegExp;r.exports=n((function(){var r=o("(?<a>b)","g");return"b"!==r.exec("b").groups.a||"bc"!=="b".replace(r,"$<a>c")}))},67750:(r,t,e)=>{var n=e(64117),o=TypeError;r.exports=function(r){if(n(r))throw new o("Can't call method on "+r);return r}},87633:(r,t,e)=>{var n=e(97751),o=e(62106),a=e(78227),i=e(43724),u=a("species");r.exports=function(r){var t=n(r);i&&t&&!t[u]&&o(t,u,{configurable:!0,get:function(){return this}})}},10687:(r,t,e)=>{var n=e(24913).f,o=e(39297),a=e(78227)("toStringTag");r.exports=function(r,t,e){r&&!e&&(r=r.prototype),r&&!o(r,a)&&n(r,a,{configurable:!0,value:t})}},66119:(r,t,e)=>{var n=e(25745),o=e(33392),a=n("keys");r.exports=function(r){return a[r]||(a[r]=o(r))}},77629:(r,t,e)=>{var n=e(96395),o=e(44576),a=e(39433),i="__core-js_shared__",u=r.exports=o[i]||a(i,{});(u.versions||(u.versions=[])).push({version:"3.38.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})},25745:(r,t,e)=>{var n=e(77629);r.exports=function(r,t){return n[r]||(n[r]=t||{})}},2293:(r,t,e)=>{var n=e(28551),o=e(35548),a=e(64117),i=e(78227)("species");r.exports=function(r,t){var e,u=n(r).constructor;return void 0===u||a(e=n(u)[i])?t:o(e)}},68183:(r,t,e)=>{var n=e(79504),o=e(91291),a=e(655),i=e(67750),u=n("".charAt),c=n("".charCodeAt),s=n("".slice),f=function(r){return function(t,e){var n,f,p=a(i(t)),l=o(e),v=p.length;return l<0||l>=v?r?"":void 0:(n=c(p,l))<55296||n>56319||l+1===v||(f=c(p,l+1))<56320||f>57343?r?u(p,l):n:r?s(p,l,l+2):f-56320+(n-55296<<10)+65536}};r.exports={codeAt:f(!1),charAt:f(!0)}},43802:(r,t,e)=>{var n=e(79504),o=e(67750),a=e(655),i=e(47452),u=n("".replace),c=RegExp("^["+i+"]+"),s=RegExp("(^|[^"+i+"])["+i+"]+$"),f=function(r){return function(t){var e=a(o(t));return 1&r&&(e=u(e,c,"")),2&r&&(e=u(e,s,"$1")),e}};r.exports={start:f(1),end:f(2),trim:f(3)}},1548:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(39519),i=e(84215),u=n.structuredClone;r.exports=!!u&&!o((function(){if("DENO"===i&&a>92||"NODE"===i&&a>94||"BROWSER"===i&&a>97)return!1;var r=new ArrayBuffer(8),t=u(r,{transfer:[r]});return 0!==r.byteLength||8!==t.byteLength}))},4495:(r,t,e)=>{var n=e(39519),o=e(79039),a=e(44576).String;r.exports=!!Object.getOwnPropertySymbols&&!o((function(){var r=Symbol("symbol detection");return!a(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},31240:(r,t,e)=>{var n=e(79504);r.exports=n(1..valueOf)},35610:(r,t,e)=>{var n=e(91291),o=Math.max,a=Math.min;r.exports=function(r,t){var e=n(r);return e<0?o(e+t,0):a(e,t)}},75854:(r,t,e)=>{var n=e(72777),o=TypeError;r.exports=function(r){var t=n(r,"number");if("number"==typeof t)throw new o("Can't convert number to bigint");return BigInt(t)}},57696:(r,t,e)=>{var n=e(91291),o=e(18014),a=RangeError;r.exports=function(r){if(void 0===r)return 0;var t=n(r),e=o(t);if(t!==e)throw new a("Wrong length or index");return e}},25397:(r,t,e)=>{var n=e(47055),o=e(67750);r.exports=function(r){return n(o(r))}},91291:(r,t,e)=>{var n=e(80741);r.exports=function(r){var t=+r;return t!=t||0===t?0:n(t)}},18014:(r,t,e)=>{var n=e(91291),o=Math.min;r.exports=function(r){var t=n(r);return t>0?o(t,9007199254740991):0}},48981:(r,t,e)=>{var n=e(67750),o=Object;r.exports=function(r){return o(n(r))}},58229:(r,t,e)=>{var n=e(99590),o=RangeError;r.exports=function(r,t){var e=n(r);if(e%t)throw new o("Wrong offset");return e}},99590:(r,t,e)=>{var n=e(91291),o=RangeError;r.exports=function(r){var t=n(r);if(t<0)throw new o("The argument can't be less than 0");return t}},72777:(r,t,e)=>{var n=e(69565),o=e(20034),a=e(10757),i=e(55966),u=e(84270),c=e(78227),s=TypeError,f=c("toPrimitive");r.exports=function(r,t){if(!o(r)||a(r))return r;var e,c=i(r,f);if(c){if(void 0===t&&(t="default"),e=n(c,r,t),!o(e)||a(e))return e;throw new s("Can't convert object to primitive value")}return void 0===t&&(t="number"),u(r,t)}},56969:(r,t,e)=>{var n=e(72777),o=e(10757);r.exports=function(r){var t=n(r,"string");return o(t)?t:t+""}},92140:(r,t,e)=>{var n={};n[e(78227)("toStringTag")]="z",r.exports="[object z]"===String(n)},655:(r,t,e)=>{var n=e(36955),o=String;r.exports=function(r){if("Symbol"===n(r))throw new TypeError("Cannot convert a Symbol value to a string");return o(r)}},58319:r=>{var t=Math.round;r.exports=function(r){var e=t(r);return e<0?0:e>255?255:255&e}},16823:r=>{var t=String;r.exports=function(r){try{return t(r)}catch(r){return"Object"}}},15823:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(69565),i=e(43724),u=e(72805),c=e(94644),s=e(66346),f=e(90679),p=e(6980),l=e(66699),v=e(2087),y=e(18014),d=e(57696),h=e(58229),g=e(58319),x=e(56969),m=e(39297),b=e(36955),w=e(20034),E=e(10757),A=e(2360),T=e(1625),O=e(52967),S=e(38480).f,C=e(43251),I=e(59213).forEach,P=e(87633),R=e(62106),_=e(24913),j=e(77347),M=e(35370),L=e(91181),N=e(23167),D=L.get,F=L.set,k=L.enforce,B=_.f,U=j.f,V=o.RangeError,Y=s.ArrayBuffer,W=Y.prototype,G=s.DataView,H=c.NATIVE_ARRAY_BUFFER_VIEWS,z=c.TYPED_ARRAY_TAG,$=c.TypedArray,X=c.TypedArrayPrototype,q=c.isTypedArray,K="BYTES_PER_ELEMENT",J="Wrong length",Q=function(r,t){R(r,t,{configurable:!0,get:function(){return D(this)[t]}})},Z=function(r){var t;return T(W,r)||"ArrayBuffer"===(t=b(r))||"SharedArrayBuffer"===t},rr=function(r,t){return q(r)&&!E(t)&&t in r&&v(+t)&&t>=0},tr=function(r,t){return t=x(t),rr(r,t)?p(2,r[t]):U(r,t)},er=function(r,t,e){return t=x(t),!(rr(r,t)&&w(e)&&m(e,"value"))||m(e,"get")||m(e,"set")||e.configurable||m(e,"writable")&&!e.writable||m(e,"enumerable")&&!e.enumerable?B(r,t,e):(r[t]=e.value,r)};i?(H||(j.f=tr,_.f=er,Q(X,"buffer"),Q(X,"byteOffset"),Q(X,"byteLength"),Q(X,"length")),n({target:"Object",stat:!0,forced:!H},{getOwnPropertyDescriptor:tr,defineProperty:er}),r.exports=function(r,t,e){var i=r.match(/\d+/)[0]/8,c=r+(e?"Clamped":"")+"Array",s="get"+r,p="set"+r,v=o[c],x=v,m=x&&x.prototype,b={},E=function(r,t){B(r,t,{get:function(){return function(r,t){var e=D(r);return e.view[s](t*i+e.byteOffset,!0)}(this,t)},set:function(r){return function(r,t,n){var o=D(r);o.view[p](t*i+o.byteOffset,e?g(n):n,!0)}(this,t,r)},enumerable:!0})};H?u&&(x=t((function(r,t,e,n){return f(r,m),N(w(t)?Z(t)?void 0!==n?new v(t,h(e,i),n):void 0!==e?new v(t,h(e,i)):new v(t):q(t)?M(x,t):a(C,x,t):new v(d(t)),r,x)})),O&&O(x,$),I(S(v),(function(r){r in x||l(x,r,v[r])})),x.prototype=m):(x=t((function(r,t,e,n){f(r,m);var o,u,c,s=0,p=0;if(w(t)){if(!Z(t))return q(t)?M(x,t):a(C,x,t);o=t,p=h(e,i);var l=t.byteLength;if(void 0===n){if(l%i)throw new V(J);if((u=l-p)<0)throw new V(J)}else if((u=y(n)*i)+p>l)throw new V(J);c=u/i}else c=d(t),o=new Y(u=c*i);for(F(r,{buffer:o,byteOffset:p,byteLength:u,length:c,view:new G(o)});s<c;)E(r,s++)})),O&&O(x,$),m=x.prototype=A(X)),m.constructor!==x&&l(m,"constructor",x),k(m).TypedArrayConstructor=x,z&&l(m,z,c);var T=x!==v;b[c]=x,n({global:!0,constructor:!0,forced:T,sham:!H},b),K in x||l(x,K,i),K in m||l(m,K,i),P(c)}):r.exports=function(){}},72805:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(84428),i=e(94644).NATIVE_ARRAY_BUFFER_VIEWS,u=n.ArrayBuffer,c=n.Int8Array;r.exports=!i||!o((function(){c(1)}))||!o((function(){new c(-1)}))||!a((function(r){new c,new c(null),new c(1.5),new c(r)}),!0)||o((function(){return 1!==new c(new u(2),1,void 0).length}))},26357:(r,t,e)=>{var n=e(35370),o=e(61412);r.exports=function(r,t){return n(o(r),t)}},43251:(r,t,e)=>{var n=e(76080),o=e(69565),a=e(35548),i=e(48981),u=e(26198),c=e(70081),s=e(50851),f=e(44209),p=e(18727),l=e(94644).aTypedArrayConstructor,v=e(75854);r.exports=function(r){var t,e,y,d,h,g,x,m,b=a(this),w=i(r),E=arguments.length,A=E>1?arguments[1]:void 0,T=void 0!==A,O=s(w);if(O&&!f(O))for(m=(x=c(w,O)).next,w=[];!(g=o(m,x)).done;)w.push(g.value);for(T&&E>2&&(A=n(A,arguments[2])),e=u(w),y=new(l(b))(e),d=p(y),t=0;e>t;t++)h=T?A(w[t],t):w[t],y[t]=d?v(h):+h;return y}},61412:(r,t,e)=>{var n=e(94644),o=e(2293),a=n.aTypedArrayConstructor,i=n.getTypedArrayConstructor;r.exports=function(r){return a(o(r,i(r)))}},33392:(r,t,e)=>{var n=e(79504),o=0,a=Math.random(),i=n(1..toString);r.exports=function(r){return"Symbol("+(void 0===r?"":r)+")_"+i(++o+a,36)}},7040:(r,t,e)=>{var n=e(4495);r.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},48686:(r,t,e)=>{var n=e(43724),o=e(79039);r.exports=n&&o((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},58622:(r,t,e)=>{var n=e(44576),o=e(94901),a=n.WeakMap;r.exports=o(a)&&/native code/.test(String(a))},78227:(r,t,e)=>{var n=e(44576),o=e(25745),a=e(39297),i=e(33392),u=e(4495),c=e(7040),s=n.Symbol,f=o("wks"),p=c?s.for||s:s&&s.withoutSetter||i;r.exports=function(r){return a(f,r)||(f[r]=u&&a(s,r)?s[r]:p("Symbol."+r)),f[r]}},47452:r=>{r.exports="\t\n\v\f\r \u2028\u2029\ufeff"},14601:(r,t,e)=>{var n=e(97751),o=e(39297),a=e(66699),i=e(1625),u=e(52967),c=e(77740),s=e(11056),f=e(23167),p=e(32603),l=e(77584),v=e(80747),y=e(43724),d=e(96395);r.exports=function(r,t,e,h){var g="stackTraceLimit",x=h?2:1,m=r.split("."),b=m[m.length-1],w=n.apply(null,m);if(w){var E=w.prototype;if(!d&&o(E,"cause")&&delete E.cause,!e)return w;var A=n("Error"),T=t((function(r,t){var e=p(h?t:r,void 0),n=h?new w(r):new w;return void 0!==e&&a(n,"message",e),v(n,T,n.stack,2),this&&i(E,this)&&f(n,this,T),arguments.length>x&&l(n,arguments[x]),n}));if(T.prototype=E,"Error"!==b?u?u(T,A):c(T,A,{name:!0}):y&&g in w&&(s(T,w,g),s(T,w,"prepareStackTrace")),c(T,w),!d)try{E.name!==b&&a(E,"name",b),E.constructor=T}catch(r){}return T}}},54743:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(66346),i=e(87633),u="ArrayBuffer",c=a[u];n({global:!0,constructor:!0,forced:o[u]!==c},{ArrayBuffer:c}),i(u)},16573:(r,t,e)=>{var n=e(43724),o=e(62106),a=e(3238),i=ArrayBuffer.prototype;n&&!("detached"in i)&&o(i,"detached",{configurable:!0,get:function(){return a(this)}})},11745:(r,t,e)=>{var n=e(46518),o=e(27476),a=e(79039),i=e(66346),u=e(28551),c=e(35610),s=e(18014),f=e(2293),p=i.ArrayBuffer,l=i.DataView,v=l.prototype,y=o(p.prototype.slice),d=o(v.getUint8),h=o(v.setUint8);n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:a((function(){return!new p(2).slice(1,void 0).byteLength}))},{slice:function(r,t){if(y&&void 0===t)return y(u(this),r);for(var e=u(this).byteLength,n=c(r,e),o=c(void 0===t?e:t,e),a=new(f(this,p))(s(o-n)),i=new l(this),v=new l(a),g=0;n<o;)h(v,g++,d(i,n++));return a}})},77936:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transferToFixedLength:function(){return o(this,arguments.length?arguments[0]:void 0,!1)}})},78100:(r,t,e)=>{var n=e(46518),o=e(95636);o&&n({target:"ArrayBuffer",proto:!0},{transfer:function(){return o(this,arguments.length?arguments[0]:void 0,!0)}})},23792:(r,t,e)=>{var n=e(25397),o=e(6469),a=e(26269),i=e(91181),u=e(24913).f,c=e(51088),s=e(62529),f=e(96395),p=e(43724),l="Array Iterator",v=i.set,y=i.getterFor(l);r.exports=c(Array,"Array",(function(r,t){v(this,{type:l,target:n(r),index:0,kind:t})}),(function(){var r=y(this),t=r.target,e=r.index++;if(!t||e>=t.length)return r.target=null,s(void 0,!0);switch(r.kind){case"keys":return s(e,!1);case"values":return s(t[e],!1)}return s([e,t[e]],!1)}),"values");var d=a.Arguments=a.Array;if(o("keys"),o("values"),o("entries"),!f&&p&&"values"!==d.name)try{u(d,"name",{value:"values"})}catch(r){}},24359:(r,t,e)=>{var n=e(46518),o=e(66346);n({global:!0,constructor:!0,forced:!e(77811)},{DataView:o.DataView})},38309:(r,t,e)=>{e(24359)},23288:(r,t,e)=>{var n=e(79504),o=e(36840),a=Date.prototype,i="Invalid Date",u="toString",c=n(a[u]),s=n(a.getTime);String(new Date(NaN))!==i&&o(a,u,(function(){var r=s(this);return r==r?c(this):i}))},16280:(r,t,e)=>{var n=e(46518),o=e(44576),a=e(18745),i=e(14601),u="WebAssembly",c=o[u],s=7!==new Error("e",{cause:7}).cause,f=function(r,t){var e={};e[r]=i(r,t,s),n({global:!0,constructor:!0,arity:1,forced:s},e)},p=function(r,t){if(c&&c[r]){var e={};e[r]=i(u+"."+r,t,s),n({target:u,stat:!0,constructor:!0,arity:1,forced:s},e)}};f("Error",(function(r){return function(t){return a(r,this,arguments)}})),f("EvalError",(function(r){return function(t){return a(r,this,arguments)}})),f("RangeError",(function(r){return function(t){return a(r,this,arguments)}})),f("ReferenceError",(function(r){return function(t){return a(r,this,arguments)}})),f("SyntaxError",(function(r){return function(t){return a(r,this,arguments)}})),f("TypeError",(function(r){return function(t){return a(r,this,arguments)}})),f("URIError",(function(r){return function(t){return a(r,this,arguments)}})),p("CompileError",(function(r){return function(t){return a(r,this,arguments)}})),p("LinkError",(function(r){return function(t){return a(r,this,arguments)}})),p("RuntimeError",(function(r){return function(t){return a(r,this,arguments)}}))},76918:(r,t,e)=>{var n=e(36840),o=e(77536),a=Error.prototype;a.toString!==o&&n(a,"toString",o)},2892:(r,t,e)=>{var n=e(46518),o=e(96395),a=e(43724),i=e(44576),u=e(19167),c=e(79504),s=e(92796),f=e(39297),p=e(23167),l=e(1625),v=e(10757),y=e(72777),d=e(79039),h=e(38480).f,g=e(77347).f,x=e(24913).f,m=e(31240),b=e(43802).trim,w="Number",E=i[w],A=u[w],T=E.prototype,O=i.TypeError,S=c("".slice),C=c("".charCodeAt),I=s(w,!E(" 0o1")||!E("0b1")||E("+0x1")),P=function(r){var t,e=arguments.length<1?0:E(function(r){var t=y(r,"number");return"bigint"==typeof t?t:function(r){var t,e,n,o,a,i,u,c,s=y(r,"number");if(v(s))throw new O("Cannot convert a Symbol value to a number");if("string"==typeof s&&s.length>2)if(s=b(s),43===(t=C(s,0))||45===t){if(88===(e=C(s,2))||120===e)return NaN}else if(48===t){switch(C(s,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+s}for(i=(a=S(s,2)).length,u=0;u<i;u++)if((c=C(a,u))<48||c>o)return NaN;return parseInt(a,n)}return+s}(t)}(r));return l(T,t=this)&&d((function(){m(t)}))?p(Object(e),this,P):e};P.prototype=T,I&&!o&&(T.constructor=P),n({global:!0,constructor:!0,wrap:!0,forced:I},{Number:P});var R=function(r,t){for(var e,n=a?h(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)f(t,e=n[o])&&!f(r,e)&&x(r,e,g(t,e))};o&&A&&R(u[w],A),(I||o)&&R(u[w],E)},79432:(r,t,e)=>{var n=e(46518),o=e(48981),a=e(71072);n({target:"Object",stat:!0,forced:e(79039)((function(){a(1)}))},{keys:function(r){return a(o(r))}})},26099:(r,t,e)=>{var n=e(92140),o=e(36840),a=e(53179);n||o(Object.prototype,"toString",a,{unsafe:!0})},84864:(r,t,e)=>{var n=e(43724),o=e(44576),a=e(79504),i=e(92796),u=e(23167),c=e(66699),s=e(2360),f=e(38480).f,p=e(1625),l=e(60788),v=e(655),y=e(61034),d=e(58429),h=e(11056),g=e(36840),x=e(79039),m=e(39297),b=e(91181).enforce,w=e(87633),E=e(78227),A=e(83635),T=e(18814),O=E("match"),S=o.RegExp,C=S.prototype,I=o.SyntaxError,P=a(C.exec),R=a("".charAt),_=a("".replace),j=a("".indexOf),M=a("".slice),L=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,N=/a/g,D=/a/g,F=new S(N)!==N,k=d.MISSED_STICKY,B=d.UNSUPPORTED_Y;if(i("RegExp",n&&(!F||k||A||T||x((function(){return D[O]=!1,S(N)!==N||S(D)===D||"/a/i"!==String(S(N,"i"))}))))){for(var U=function(r,t){var e,n,o,a,i,f,d=p(C,this),h=l(r),g=void 0===t,x=[],w=r;if(!d&&h&&g&&r.constructor===U)return r;if((h||p(C,r))&&(r=r.source,g&&(t=y(w))),r=void 0===r?"":v(r),t=void 0===t?"":v(t),w=r,A&&"dotAll"in N&&(n=!!t&&j(t,"s")>-1)&&(t=_(t,/s/g,"")),e=t,k&&"sticky"in N&&(o=!!t&&j(t,"y")>-1)&&B&&(t=_(t,/y/g,"")),T&&(a=function(r){for(var t,e=r.length,n=0,o="",a=[],i=s(null),u=!1,c=!1,f=0,p="";n<=e;n++){if("\\"===(t=R(r,n)))t+=R(r,++n);else if("]"===t)u=!1;else if(!u)switch(!0){case"["===t:u=!0;break;case"("===t:if(o+=t,"?:"===M(r,n+1,n+3))continue;P(L,M(r,n+1))&&(n+=2,c=!0),f++;continue;case">"===t&&c:if(""===p||m(i,p))throw new I("Invalid capture group name");i[p]=!0,a[a.length]=[p,f],c=!1,p="";continue}c?p+=t:o+=t}return[o,a]}(r),r=a[0],x=a[1]),i=u(S(r,t),d?this:C,U),(n||o||x.length)&&(f=b(i),n&&(f.dotAll=!0,f.raw=U(function(r){for(var t,e=r.length,n=0,o="",a=!1;n<=e;n++)"\\"!==(t=R(r,n))?a||"."!==t?("["===t?a=!0:"]"===t&&(a=!1),o+=t):o+="[\\s\\S]":o+=t+R(r,++n);return o}(r),e)),o&&(f.sticky=!0),x.length&&(f.groups=x)),r!==w)try{c(i,"source",""===w?"(?:)":w)}catch(r){}return i},V=f(S),Y=0;V.length>Y;)h(U,S,V[Y++]);C.constructor=U,U.prototype=C,g(o,"RegExp",U,{constructor:!0})}w("RegExp")},57465:(r,t,e)=>{var n=e(43724),o=e(83635),a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"dotAll",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).dotAll;throw new s("Incompatible receiver, RegExp required")}}})},27495:(r,t,e)=>{var n=e(46518),o=e(57323);n({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},87745:(r,t,e)=>{var n=e(43724),o=e(58429).MISSED_STICKY,a=e(22195),i=e(62106),u=e(91181).get,c=RegExp.prototype,s=TypeError;n&&o&&i(c,"sticky",{configurable:!0,get:function(){if(this!==c){if("RegExp"===a(this))return!!u(this).sticky;throw new s("Incompatible receiver, RegExp required")}}})},90906:(r,t,e)=>{e(27495);var n,o,a=e(46518),i=e(69565),u=e(94901),c=e(28551),s=e(655),f=(n=!1,(o=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===o.test("abc")&&n),p=/./.test;a({target:"RegExp",proto:!0,forced:!f},{test:function(r){var t=c(this),e=s(r),n=t.exec;if(!u(n))return i(p,t,e);var o=i(n,t,e);return null!==o&&(c(o),!0)}})},38781:(r,t,e)=>{var n=e(10350).PROPER,o=e(36840),a=e(28551),i=e(655),u=e(79039),c=e(61034),s="toString",f=RegExp.prototype,p=f[s],l=u((function(){return"/a/b"!==p.call({source:"a",flags:"b"})})),v=n&&p.name!==s;(l||v)&&o(f,s,(function(){var r=a(this);return"/"+i(r.source)+"/"+i(c(r))}),{unsafe:!0})},25440:(r,t,e)=>{var n=e(18745),o=e(69565),a=e(79504),i=e(89228),u=e(79039),c=e(28551),s=e(94901),f=e(64117),p=e(91291),l=e(18014),v=e(655),y=e(67750),d=e(57829),h=e(55966),g=e(2478),x=e(56682),m=e(78227)("replace"),b=Math.max,w=Math.min,E=a([].concat),A=a([].push),T=a("".indexOf),O=a("".slice),S="$0"==="a".replace(/./,"$0"),C=!!/./[m]&&""===/./[m]("a","$0");i("replace",(function(r,t,e){var a=C?"$":"$0";return[function(r,e){var n=y(this),a=f(r)?void 0:h(r,m);return a?o(a,r,n,e):o(t,v(n),r,e)},function(r,o){var i=c(this),u=v(r);if("string"==typeof o&&-1===T(o,a)&&-1===T(o,"$<")){var f=e(t,i,u,o);if(f.done)return f.value}var y=s(o);y||(o=v(o));var h,m=i.global;m&&(h=i.unicode,i.lastIndex=0);for(var S,C=[];null!==(S=x(i,u))&&(A(C,S),m);)""===v(S[0])&&(i.lastIndex=d(u,l(i.lastIndex),h));for(var I,P="",R=0,_=0;_<C.length;_++){for(var j,M=v((S=C[_])[0]),L=b(w(p(S.index),u.length),0),N=[],D=1;D<S.length;D++)A(N,void 0===(I=S[D])?I:String(I));var F=S.groups;if(y){var k=E([M],N,L,u);void 0!==F&&A(k,F),j=v(n(o,void 0,k))}else j=g(M,u,L,N,F,o);L>=R&&(P+=O(u,R,L)+j,R=L+M.length)}return P+O(u,R)}]}),!!u((function(){var r=/./;return r.exec=function(){var r=[];return r.groups={a:"7"},r},"7"!=="".replace(r,"$<a>")}))||!S||C)},50375:(r,t,e)=>{var n=e(46518),o=e(79504),a=e(67750),i=e(91291),u=e(655),c=o("".slice),s=Math.max,f=Math.min;n({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function(r,t){var e,n,o=u(a(this)),p=o.length,l=i(r);return l===1/0&&(l=0),l<0&&(l=s(p+l,0)),(e=void 0===t?p:i(t))<=0||e===1/0||l>=(n=f(l+e,p))?"":c(o,l,n)}})},48140:(r,t,e)=>{var n=e(94644),o=e(26198),a=e(91291),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("at",(function(r){var t=i(this),e=o(t),n=a(r),u=n>=0?n:e+n;return u<0||u>=e?void 0:t[u]}))},81630:(r,t,e)=>{var n=e(79504),o=e(94644),a=n(e(57029)),i=o.aTypedArray;(0,o.exportTypedArrayMethod)("copyWithin",(function(r,t){return a(i(this),r,t,arguments.length>2?arguments[2]:void 0)}))},72170:(r,t,e)=>{var n=e(94644),o=e(59213).every,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},75044:(r,t,e)=>{var n=e(94644),o=e(84373),a=e(75854),i=e(36955),u=e(69565),c=e(79504),s=e(79039),f=n.aTypedArray,p=n.exportTypedArrayMethod,l=c("".slice);p("fill",(function(r){var t=arguments.length;f(this);var e="Big"===l(i(this),0,3)?a(r):+r;return u(o,this,e,t>1?arguments[1]:void 0,t>2?arguments[2]:void 0)}),s((function(){var r=0;return new Int8Array(2).fill({valueOf:function(){return r++}}),1!==r})))},69539:(r,t,e)=>{var n=e(94644),o=e(59213).filter,a=e(26357),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("filter",(function(r){var t=o(i(this),r,arguments.length>1?arguments[1]:void 0);return a(this,t)}))},89955:(r,t,e)=>{var n=e(94644),o=e(59213).findIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},91134:(r,t,e)=>{var n=e(94644),o=e(43839).findLastIndex,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLastIndex",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},21903:(r,t,e)=>{var n=e(94644),o=e(43839).findLast,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("findLast",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},31694:(r,t,e)=>{var n=e(94644),o=e(59213).find,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},33206:(r,t,e)=>{var n=e(94644),o=e(59213).forEach,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",(function(r){o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},44496:(r,t,e)=>{var n=e(94644),o=e(19617).includes,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},66651:(r,t,e)=>{var n=e(94644),o=e(19617).indexOf,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},12887:(r,t,e)=>{var n=e(44576),o=e(79039),a=e(79504),i=e(94644),u=e(23792),c=e(78227)("iterator"),s=n.Uint8Array,f=a(u.values),p=a(u.keys),l=a(u.entries),v=i.aTypedArray,y=i.exportTypedArrayMethod,d=s&&s.prototype,h=!o((function(){d[c].call([1])})),g=!!d&&d.values&&d[c]===d.values&&"values"===d.values.name,x=function(){return f(v(this))};y("entries",(function(){return l(v(this))}),h),y("keys",(function(){return p(v(this))}),h),y("values",x,h||!g,{name:"values"}),y(c,x,h||!g,{name:"values"})},19369:(r,t,e)=>{var n=e(94644),o=e(79504),a=n.aTypedArray,i=n.exportTypedArrayMethod,u=o([].join);i("join",(function(r){return u(a(this),r)}))},66812:(r,t,e)=>{var n=e(94644),o=e(18745),a=e(8379),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",(function(r){var t=arguments.length;return o(a,i(this),t>1?[r,arguments[1]]:[r])}))},8995:(r,t,e)=>{var n=e(94644),o=e(59213).map,a=e(61412),i=n.aTypedArray;(0,n.exportTypedArrayMethod)("map",(function(r){return o(i(this),r,arguments.length>1?arguments[1]:void 0,(function(r,t){return new(a(r))(t)}))}))},36072:(r,t,e)=>{var n=e(94644),o=e(80926).right,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},31575:(r,t,e)=>{var n=e(94644),o=e(80926).left,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",(function(r){var t=arguments.length;return o(a(this),r,t,t>1?arguments[1]:void 0)}))},88747:(r,t,e)=>{var n=e(94644),o=n.aTypedArray,a=n.exportTypedArrayMethod,i=Math.floor;a("reverse",(function(){for(var r,t=this,e=o(t).length,n=i(e/2),a=0;a<n;)r=t[a],t[a++]=t[--e],t[e]=r;return t}))},28845:(r,t,e)=>{var n=e(44576),o=e(69565),a=e(94644),i=e(26198),u=e(58229),c=e(48981),s=e(79039),f=n.RangeError,p=n.Int8Array,l=p&&p.prototype,v=l&&l.set,y=a.aTypedArray,d=a.exportTypedArrayMethod,h=!s((function(){var r=new Uint8ClampedArray(2);return o(v,r,{length:1,0:3},1),3!==r[1]})),g=h&&a.NATIVE_ARRAY_BUFFER_VIEWS&&s((function(){var r=new p(2);return r.set(1),r.set("2",1),0!==r[0]||2!==r[1]}));d("set",(function(r){y(this);var t=u(arguments.length>1?arguments[1]:void 0,1),e=c(r);if(h)return o(v,this,e,t);var n=this.length,a=i(e),s=0;if(a+t>n)throw new f("Wrong length");for(;s<a;)this[t+s]=e[s++]}),!h||g)},29423:(r,t,e)=>{var n=e(94644),o=e(61412),a=e(79039),i=e(67680),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("slice",(function(r,t){for(var e=i(u(this),r,t),n=o(this),a=0,c=e.length,s=new n(c);c>a;)s[a]=e[a++];return s}),a((function(){new Int8Array(1).slice()})))},57301:(r,t,e)=>{var n=e(94644),o=e(59213).some,a=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",(function(r){return o(a(this),r,arguments.length>1?arguments[1]:void 0)}))},373:(r,t,e)=>{var n=e(44576),o=e(27476),a=e(79039),i=e(79306),u=e(74488),c=e(94644),s=e(13709),f=e(13763),p=e(39519),l=e(3607),v=c.aTypedArray,y=c.exportTypedArrayMethod,d=n.Uint16Array,h=d&&o(d.prototype.sort),g=!(!h||a((function(){h(new d(2),null)}))&&a((function(){h(new d(2),{})}))),x=!!h&&!a((function(){if(p)return p<74;if(s)return s<67;if(f)return!0;if(l)return l<602;var r,t,e=new d(516),n=Array(516);for(r=0;r<516;r++)t=r%4,e[r]=515-r,n[r]=r-2*t+3;for(h(e,(function(r,t){return(r/4|0)-(t/4|0)})),r=0;r<516;r++)if(e[r]!==n[r])return!0}));y("sort",(function(r){return void 0!==r&&i(r),x?h(this,r):u(v(this),function(r){return function(t,e){return void 0!==r?+r(t,e)||0:e!=e?-1:t!=t?1:0===t&&0===e?1/t>0&&1/e<0?1:-1:t>e}}(r))}),!x||g)},86614:(r,t,e)=>{var n=e(94644),o=e(18014),a=e(35610),i=e(61412),u=n.aTypedArray;(0,n.exportTypedArrayMethod)("subarray",(function(r,t){var e=u(this),n=e.length,c=a(r,n);return new(i(e))(e.buffer,e.byteOffset+c*e.BYTES_PER_ELEMENT,o((void 0===t?n:a(t,n))-c))}))},41405:(r,t,e)=>{var n=e(44576),o=e(18745),a=e(94644),i=e(79039),u=e(67680),c=n.Int8Array,s=a.aTypedArray,f=a.exportTypedArrayMethod,p=[].toLocaleString,l=!!c&&i((function(){p.call(new c(1))}));f("toLocaleString",(function(){return o(p,l?u(s(this)):s(this),u(arguments))}),i((function(){return[1,2].toLocaleString()!==new c([1,2]).toLocaleString()}))||!i((function(){c.prototype.toLocaleString.call([1,2])})))},37467:(r,t,e)=>{var n=e(37628),o=e(94644),a=o.aTypedArray,i=o.exportTypedArrayMethod,u=o.getTypedArrayConstructor;i("toReversed",(function(){return n(a(this),u(this))}))},44732:(r,t,e)=>{var n=e(94644),o=e(79504),a=e(79306),i=e(35370),u=n.aTypedArray,c=n.getTypedArrayConstructor,s=n.exportTypedArrayMethod,f=o(n.TypedArrayPrototype.sort);s("toSorted",(function(r){void 0!==r&&a(r);var t=u(this),e=i(c(t),t);return f(e,r)}))},33684:(r,t,e)=>{var n=e(94644).exportTypedArrayMethod,o=e(79039),a=e(44576),i=e(79504),u=a.Uint8Array,c=u&&u.prototype||{},s=[].toString,f=i([].join);o((function(){s.call({})}))&&(s=function(){return f(this)});var p=c.toString!==s;n("toString",s,p)},21489:(r,t,e)=>{e(15823)("Uint8",(function(r){return function(t,e,n){return r(this,t,e,n)}}))},79577:(r,t,e)=>{var n=e(39928),o=e(94644),a=e(18727),i=e(91291),u=e(75854),c=o.aTypedArray,s=o.getTypedArrayConstructor,f=o.exportTypedArrayMethod,p=!!function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(r){return 8===r}}();f("with",{with:function(r,t){var e=c(this),o=i(r),f=a(e)?u(t):+t;return n(e,s(e),o,f)}}.with,!p)}},t={};function e(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}};return r[n].call(a.exports,a,a.exports,e),a.exports}e.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return e.d(t,{a:t}),t},e.d=(r,t)=>{for(var n in t)e.o(t,n)&&!e.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:t[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),e.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t);var n={};e.d(n,{AP:()=>_,Bv:()=>T,DE:()=>f,KD:()=>R,LX:()=>h,Lu:()=>g,MD:()=>b,Nl:()=>y,Op:()=>O,R_:()=>d,UP:()=>m,V6:()=>x,Xj:()=>I,aX:()=>E,dF:()=>P,fH:()=>A,g:()=>s,of:()=>v,pL:()=>w,qT:()=>p,s1:()=>j,ue:()=>C,un:()=>l,yD:()=>S,yz:()=>R});var o=e(64007),a=e.n(o),i=e(11393),u=e.n(i),c=(e(2892),e(48618)),s={OPERATE:"operate",DETAIL:"detail",LOG:"log"},f={CURRENT_DATE:"_currentDate",REF_VAL:"_refVal"},p=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentTabPaneH5"],l="CustomComponentFormLayout",v="CustomComponentFormLayoutH5",y=["CustomComponentDialog"],d=["CustomComponentTabs","CustomComponentTabPane","CustomComponentCycleTabPane","CustomComponentCollapse","CustomComponentDialog","ElButton","CustomComponentTable","CustomComponentRow","CustomComponentCol","CustomComponentCardH5","CustomComponentCollapseH5","CustomComponentTabsH5","CustomComponentTabPaneH5","CustomComponentTableH5","cmi-cell","cmi-button","cmi-link","cmi-dropdown-menu","cmi-divider"],h=["CustomComponentTabPane","CustomComponentDialog","CustomComponentCol","CustomComponentTabPaneH5"],g=["CustomComponentTable"],x=["el-select","el-date-picker","el-time-picker","el-time-select","el-cascader","el-input-number","CustomComponentTree","CustomComponentSteps"],m=["el-span"],b="el-",w="t-",E="cmi-",A="H5-",T="1",O="0",S=["ElText"],C=["ElInput","ElDatePicker","ElInputNumber"],I=["ElSelect"],P="/gcweb/External_Mail",R={compInfo:{type:Object,getValue:function(r,t,e){return r}},modelValue:{type:[String,Number,Object,Array,void 0,null],getValue:function(r,t,e){return e.value}},config:{type:Object,getValue:function(r,t,e){return r}},refValue:{type:[Object,Number,String],default:"",getValue:function(r,t,e){return e}},disabled:{type:Boolean,default:!1,getValue:function(r,t,e){return _(r,t.mode)}},clearable:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.clearableFlag}},required:{type:Boolean,default:!1,getValue:function(r,t,e){return"1"===r.requiredFlag}},onlyRequiredFlag:{type:Boolean,default:!1,getValue:function(r,t,e){return r.onlyRequiredFlag}},tableData:{type:Array,default:function(){return[]},getValue:function(r,t,e){return t.tableData}},rowScope:{type:Object,getValue:function(r,t,e){return t.rowScope}},width:{type:[String,Number],default:"",getValue:function(r,t,e){return r.width?(0,c.M6)(r.width):null}},mode:{type:[String],default:"",getValue:function(r,t){return t.mode}},options:{type:Array,default:function(){return[]},getValue:function(r,t,e,n){return(0,c.fN)(r,n)}},placeholder:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return((null==o?void 0:a()(o).call(o,"zh"))>-1?r.defPlacehold:r.defPlaceholdEn)||""}},placeholderEn:{type:String,default:function(){return[]},getValue:function(r,t,e,n,o){return r.defPlaceholdEn}}};function _(r,t){var e,n;return!(0,c.E1)(["CustomComponentTabs"],r)&&(t===s.LOG?!r.logAlong&&!(0,c.E1)(u()(e=[l]).call(e,p),r)||"0"===r.editFlag:t===s.DETAIL&&!r.detailAlong&&!(0,c.E1)(u()(n=[l]).call(n,p),r)||"0"===r.editFlag)}var j={row:"CustomComponentRow",grid:"CustomComponentRow","grid-col":"CustomComponentCol",table:"CustomComponentTable","checkbox-table":"CustomComponentTable",tab:"CustomComponentTabs","tab-pane":"CustomComponentTabPane",collapse:"CustomComponentCollapse",card:"CustomComponentCollapse",cycle:"CustomComponentCycle",input:"ElInput",textarea:"ElInput",button:"ElButton","static-text":"ElText",number:"ElInputNumber",radio:"ElRadio",checkbox:"ElCheckbox",select:"ElSelect",time:"ElTimePicker","time-range":"ElTimePicker",date:"ElDatePicker","date-range":"ElDatePicker",cascader:"ElCascader","select-employees":"CustomComponentSelectEmployees","rich-editor":"CustomComponentEditor",pagination:"ElPagination",tree:"CustomComponentTree",steps:"CustomComponentSteps","mail-send":"CustomComponentSendMail","cmi-card":"CustomComponentCardH5","cmi-collapse":"CustomComponentCollapseH5","cmi-tab":"CustomComponentTabsH5","cmi-tab-pane":"CustomComponentTabPaneH5","cmi-table":"CustomComponentTableH5","cmi-datetime":"CmiDatetimePicker"},M=n.DE,L=n.Nl,N=n.Op,D=n.Bv,F=n.un,k=n.of,B=n.aX,U=n.fH,V=n.dF,Y=n.s1,W=n.g,G=n.Lu,H=n.qT,z=n.LX,$=n.R_,X=n.yD,q=n.ue,K=n.Xj,J=n.MD,Q=n.pL,Z=n.V6,rr=n.UP,tr=n.AP,er=n.yz,nr=n.KD;export{M as ARG_FLAGS,L as CONTEXT_PEDDING_TYPE,N as DISPLAY_HIDDEN,D as DISPLAY_SHOW,F as FORM_META_TYPE,k as FORM_META_TYPE_H5,B as H5_PREFIX_FLAG,U as H5_REPLACE_PREFIX_FLAG,V as MAIL_SEND_URL,Y as META_TYPE_MAP,W as MODE,G as MULTI_PAGE_META_LIST_TYPES,H as NOT_LOG_EFFECT_TYPE,z as NOT_NEED_COL_ITEM_META_TYPE,$ as NOT_NEED_FORM_ITEM_META_TYPE,X as PLAIN_TYPE_ALONG_COLUMNS,q as PLAIN_TYPE_COLUMNS,K as PLAIN_TYPE_OPTIONS_COLUMNS,J as PREFIX_FLAG,Q as REPLACE_PREFIX_FLAG,Z as SPECIAL_SET_FULL_WIDTH_ITEM_META_TYPE,rr as TABLE_COLUMN_NOT_RENDER_META_TYPE,tr as calcDisable,er as commonPropsType,nr as componentPropsType};
|